aboutsummaryrefslogtreecommitdiffstats
path: root/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language
diff options
context:
space:
mode:
Diffstat (limited to 'Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language')
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java2
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbinbin7164 -> 11842 bytes
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguageStandaloneSetupGenerated.java2
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageAntlrTokenFileProvider.java2
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageParser.java2
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.g4155
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.tokens146
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageLexer.java2175
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java11459
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/scoping/AbstractSolverLanguageScopeProvider.java2
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java1310
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java121
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java3980
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Aggregation.java96
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AggregationOp.java317
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllInstances.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllObjects.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Argument.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Polarity.java)10
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ArgumentList.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PatternBody.java)22
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Assertion.java70
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BasicInterpretation.java84
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryExpression.java96
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryOperator.java455
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanFalse.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanObject.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanSymbol.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanTrue.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanValue.java20
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedMultiplicity.java70
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedScopeDefinition.java70
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/CDInterpretation.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Call.java116
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Case.java70
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClassInterpretation.java97
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Comparison.java96
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ComplexObject.java20
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Conjunction.java38
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Constraint.java109
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Count.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataObject.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataSymbol.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultDefinition.java70
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultInterpretation.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Disjunction.java38
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EmptyIntervalLiteral.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EnumInterpretation.java61
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EqualsSymbol.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Error.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactMultiplicity.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactScopeDefinition.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExistSymbol.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Expression.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Object.java)10
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExpressionArgument.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternMetricDefinition.java73
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternPredicateDefinition.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/False.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/FieldRelationInterpretation.java117
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/GlobalRelationInterpretation.java162
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IfElse.java93
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/InfinityLiteral.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntegerSymbol.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interpretation.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interval.java70
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IrreflexiveClosure.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Literal.java5
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicLiteral.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntObject.java)25
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicValue.java271
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LowerBoundedScopeDefinition.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ManyMultiplicity.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MemberDefinition.java140
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricDefinition.java96
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricType.java225
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Multiplicity.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClosureType.java)10
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MultiplicityDefinition.java94
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedElement.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ModelSymbol.java)17
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedObject.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Negative.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NumericLiteral.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealObject.java)16
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveDefinition.java73
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveKind.java225
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Parameter.java71
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PartialitySymbol.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Positive.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Predicate.java97
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PredicateDefinition.java116
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Problem.java2
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealSymbol.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Reference.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ReflexiveClosure.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ScopeDefinition.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguageFactory.java320
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguagePackage.java4046
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StarArgument.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringSymbol.java)10
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Statement.java81
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringLiteral.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringObject.java)16
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Switch.java38
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Symbol.java20
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/True.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TruthValue.java20
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedArgument.java70
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedStarArgument.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryExpression.java73
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryOp.java317
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Unknown.java19
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedErrorPrediateDefinition.java70
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedObject.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Variable.java47
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AggregationImpl.java343
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PolarityImpl.java)14
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentListImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PatternBodyImpl.java)54
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AssertionImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ParameterImpl.java)130
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BasicInterpretationImpl.java318
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BinaryExpressionImpl.java343
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanFalseImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanSymbolImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanValueImpl.java43
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedMultiplicityImpl.java237
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedScopeDefinitionImpl.java237
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CDInterpretationImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CallImpl.java401
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CaseImpl.java269
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClassInterpretationImpl.java356
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComparisonImpl.java343
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComplexObjectImpl.java43
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConjunctionImpl.java167
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConstraintImpl.java393
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CountImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllInstancesImpl.java)72
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataObjectImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataSymbolImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultDefinitionImpl.java270
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DisjunctionImpl.java167
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EmptyIntervalLiteralImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnknownImpl.java)14
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EnumInterpretationImpl.java244
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EqualsSymbolImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ErrorImpl.java40
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactMultiplicityImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ModelSymbolImpl.java)60
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactScopeDefinitionImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedObjectImpl.java)60
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExistSymbolImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionArgumentImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanObjectImpl.java)72
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FalseImpl.java)14
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternMetricDefinitionImpl.java270
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternPredicateDefinitionImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultInterpretationImpl.java)72
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FieldRelationInterpretationImpl.java418
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/GlobalRelationInterpretationImpl.java563
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IfElseImpl.java342
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InfinityLiteralImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanTrueImpl.java)14
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntegerSymbolImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InterpretationImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntervalImpl.java269
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IrreflexiveClosureImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LiteralImpl.java6
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LogicLiteralImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntObjectImpl.java)41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LowerBoundedScopeDefinitionImpl.java179
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ManyMultiplicityImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllObjectsImpl.java)14
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MemberDefinitionImpl.java463
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MetricDefinitionImpl.java343
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityDefinitionImpl.java296
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClosureTypeImpl.java)14
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedElementImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/VariableImpl.java)27
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NegativeImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NumericLiteralImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealObjectImpl.java)26
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectImpl.java40
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectiveDefinitionImpl.java270
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PartialitySymbolImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PositiveImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateDefinitionImpl.java400
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateImpl.java357
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ProblemImpl.java2
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealSymbolImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReferenceImpl.java175
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReflexiveClosureImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ScopeDefinitionImpl.java175
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguageFactoryImpl.java574
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java1465
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StarArgumentImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringSymbolImpl.java)14
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StatementImpl.java300
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringLiteralImpl.java (renamed from Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringObjectImpl.java)26
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SwitchImpl.java167
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SymbolImpl.java43
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TrueImpl.java41
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TruthValueImpl.java43
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedArgumentImpl.java242
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedStarArgumentImpl.java175
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnaryExpressionImpl.java270
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedErrorPrediateDefinitionImpl.java270
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedObjectImpl.java179
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageAdapterFactory.java614
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageSwitch.java856
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/AbstractSolverLanguageValidator.java2
-rw-r--r--Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/SolverLanguageConfigurableIssueCodesProvider.java2
190 files changed, 32733 insertions, 16276 deletions
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java
index cbf67ff9..5b6118ec 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/AbstractSolverLanguageRuntimeModule.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language; 4package org.eclipse.viatra.solver.language;
5 5
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin
index c999caec..cbdd7c40 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin
Binary files differ
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguageStandaloneSetupGenerated.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguageStandaloneSetupGenerated.java
index 91347850..33c82701 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguageStandaloneSetupGenerated.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguageStandaloneSetupGenerated.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language; 4package org.eclipse.viatra.solver.language;
5 5
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageAntlrTokenFileProvider.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageAntlrTokenFileProvider.java
index 059473c8..9b5fd45d 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageAntlrTokenFileProvider.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageAntlrTokenFileProvider.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.parser.antlr; 4package org.eclipse.viatra.solver.language.parser.antlr;
5 5
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageParser.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageParser.java
index 7155770e..eb746697 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageParser.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/SolverLanguageParser.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.parser.antlr; 4package org.eclipse.viatra.solver.language.parser.antlr;
5 5
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.g b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.g
index 501e2e59..3fac9254 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.g
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.g
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4grammar InternalSolverLanguage; 4grammar InternalSolverLanguage;
5 5
@@ -23,6 +23,7 @@ import org.eclipse.xtext.parser.*;
23import org.eclipse.xtext.parser.impl.*; 23import org.eclipse.xtext.parser.impl.*;
24import org.eclipse.emf.ecore.util.EcoreUtil; 24import org.eclipse.emf.ecore.util.EcoreUtil;
25import org.eclipse.emf.ecore.EObject; 25import org.eclipse.emf.ecore.EObject;
26import org.eclipse.emf.common.util.Enumerator;
26import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; 27import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
27import org.eclipse.xtext.parser.antlr.XtextTokenStream; 28import org.eclipse.xtext.parser.antlr.XtextTokenStream;
28import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; 29import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
@@ -112,35 +113,242 @@ ruleStatement returns [EObject current=null]
112 leaveRule(); 113 leaveRule();
113}: 114}:
114 ( 115 (
116 (
117 {
118 newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0_0());
119 }
120 this_AssertionOrDefinition_0=ruleAssertionOrDefinition
121 {
122 $current = $this_AssertionOrDefinition_0.current;
123 afterParserOrEnumRuleCall();
124 }
125 |
126 {
127 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_0_1());
128 }
129 this_PredicateDefinition_1=rulePredicateDefinition
130 {
131 $current = $this_PredicateDefinition_1.current;
132 afterParserOrEnumRuleCall();
133 }
134 |
135 {
136 newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPrediateDefinitionParserRuleCall_0_2());
137 }
138 this_UnnamedErrorPrediateDefinition_2=ruleUnnamedErrorPrediateDefinition
139 {
140 $current = $this_UnnamedErrorPrediateDefinition_2.current;
141 afterParserOrEnumRuleCall();
142 }
143 |
144 {
145 newCompositeNode(grammarAccess.getStatementAccess().getDefaultDefinitionParserRuleCall_0_3());
146 }
147 this_DefaultDefinition_3=ruleDefaultDefinition
148 {
149 $current = $this_DefaultDefinition_3.current;
150 afterParserOrEnumRuleCall();
151 }
152 |
153 {
154 newCompositeNode(grammarAccess.getStatementAccess().getExternPredicateDefinitionParserRuleCall_0_4());
155 }
156 this_ExternPredicateDefinition_4=ruleExternPredicateDefinition
157 {
158 $current = $this_ExternPredicateDefinition_4.current;
159 afterParserOrEnumRuleCall();
160 }
161 |
162 {
163 newCompositeNode(grammarAccess.getStatementAccess().getMetricDefinitionParserRuleCall_0_5());
164 }
165 this_MetricDefinition_5=ruleMetricDefinition
166 {
167 $current = $this_MetricDefinition_5.current;
168 afterParserOrEnumRuleCall();
169 }
170 |
171 {
172 newCompositeNode(grammarAccess.getStatementAccess().getExternMetricDefinitionParserRuleCall_0_6());
173 }
174 this_ExternMetricDefinition_6=ruleExternMetricDefinition
175 {
176 $current = $this_ExternMetricDefinition_6.current;
177 afterParserOrEnumRuleCall();
178 }
179 |
180 {
181 newCompositeNode(grammarAccess.getStatementAccess().getClassDefinitionParserRuleCall_0_7());
182 }
183 this_ClassDefinition_7=ruleClassDefinition
184 {
185 $current = $this_ClassDefinition_7.current;
186 afterParserOrEnumRuleCall();
187 }
188 |
189 {
190 newCompositeNode(grammarAccess.getStatementAccess().getScopeDefinitionParserRuleCall_0_8());
191 }
192 this_ScopeDefinition_8=ruleScopeDefinition
193 {
194 $current = $this_ScopeDefinition_8.current;
195 afterParserOrEnumRuleCall();
196 }
197 |
198 {
199 newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDefinitionParserRuleCall_0_9());
200 }
201 this_ObjectiveDefinition_9=ruleObjectiveDefinition
202 {
203 $current = $this_ObjectiveDefinition_9.current;
204 afterParserOrEnumRuleCall();
205 }
206 )
207 this_DOT_10=RULE_DOT
115 { 208 {
116 newCompositeNode(grammarAccess.getStatementAccess().getInterpretationParserRuleCall_0()); 209 newLeafNode(this_DOT_10, grammarAccess.getStatementAccess().getDOTTerminalRuleCall_1());
117 }
118 this_Interpretation_0=ruleInterpretation
119 {
120 $current = $this_Interpretation_0.current;
121 afterParserOrEnumRuleCall();
122 } 210 }
123 | 211 )
212;
213
214// Entry rule entryRuleAssertionOrDefinition
215entryRuleAssertionOrDefinition returns [EObject current=null]:
216 { newCompositeNode(grammarAccess.getAssertionOrDefinitionRule()); }
217 iv_ruleAssertionOrDefinition=ruleAssertionOrDefinition
218 { $current=$iv_ruleAssertionOrDefinition.current; }
219 EOF;
220
221// Rule AssertionOrDefinition
222ruleAssertionOrDefinition returns [EObject current=null]
223@init {
224 enterRule();
225}
226@after {
227 leaveRule();
228}:
229 (
124 { 230 {
125 newCompositeNode(grammarAccess.getStatementAccess().getPredicateParserRuleCall_1()); 231 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getExpressionParserRuleCall_0());
126 } 232 }
127 this_Predicate_1=rulePredicate 233 this_Expression_0=ruleExpression
128 { 234 {
129 $current = $this_Predicate_1.current; 235 $current = $this_Expression_0.current;
130 afterParserOrEnumRuleCall(); 236 afterParserOrEnumRuleCall();
131 } 237 }
238 (
239 (
240 (
241 {
242 $current = forceCreateModelElementAndSet(
243 grammarAccess.getAssertionOrDefinitionAccess().getAssertionBodyAction_1_0_0(),
244 $current);
245 }
246 )
247 (
248 otherlv_2=':'
249 {
250 newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1_0());
251 }
252 (
253 (
254 {
255 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_1_1_0());
256 }
257 lv_range_3_0=ruleExpression
258 {
259 if ($current==null) {
260 $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
261 }
262 set(
263 $current,
264 "range",
265 lv_range_3_0,
266 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
267 afterParserOrEnumRuleCall();
268 }
269 )
270 )
271 )?
272 )
273 |
274 (
275 (
276 {
277 $current = forceCreateModelElementAndSet(
278 grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(),
279 $current);
280 }
281 )
282 otherlv_5=':-'
283 {
284 newLeafNode(otherlv_5, grammarAccess.getAssertionOrDefinitionAccess().getColonHyphenMinusKeyword_1_1_1());
285 }
286 (
287 (
288 {
289 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0());
290 }
291 lv_body_6_0=ruleExpression
292 {
293 if ($current==null) {
294 $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
295 }
296 set(
297 $current,
298 "body",
299 lv_body_6_0,
300 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
301 afterParserOrEnumRuleCall();
302 }
303 )
304 )
305 )
306 |
307 (
308 (
309 {
310 $current = forceCreateModelElementAndSet(
311 grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(),
312 $current);
313 }
314 )
315 otherlv_8='='
316 {
317 newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getEqualsSignKeyword_1_2_1());
318 }
319 (
320 (
321 {
322 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0());
323 }
324 lv_body_9_0=ruleExpression
325 {
326 if ($current==null) {
327 $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
328 }
329 set(
330 $current,
331 "body",
332 lv_body_9_0,
333 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
334 afterParserOrEnumRuleCall();
335 }
336 )
337 )
338 )
339 )
132 ) 340 )
133; 341;
134 342
135// Entry rule entryRuleREALLiteral 343// Entry rule entryRulePredicateDefinition
136entryRuleREALLiteral returns [String current=null]: 344entryRulePredicateDefinition returns [EObject current=null]:
137 { newCompositeNode(grammarAccess.getREALLiteralRule()); } 345 { newCompositeNode(grammarAccess.getPredicateDefinitionRule()); }
138 iv_ruleREALLiteral=ruleREALLiteral 346 iv_rulePredicateDefinition=rulePredicateDefinition
139 { $current=$iv_ruleREALLiteral.current.getText(); } 347 { $current=$iv_rulePredicateDefinition.current; }
140 EOF; 348 EOF;
141 349
142// Rule REALLiteral 350// Rule PredicateDefinition
143ruleREALLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 351rulePredicateDefinition returns [EObject current=null]
144@init { 352@init {
145 enterRule(); 353 enterRule();
146} 354}
@@ -149,43 +357,122 @@ ruleREALLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleTok
149}: 357}:
150 ( 358 (
151 ( 359 (
152 kw='-' 360 (
153 { 361 (
154 $current.merge(kw); 362 (
155 newLeafNode(kw, grammarAccess.getREALLiteralAccess().getHyphenMinusKeyword_0()); 363 lv_functional_0_0='functional'
156 } 364 {
157 )? 365 newLeafNode(lv_functional_0_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_0_0_0());
158 this_INT_1=RULE_INT 366 }
159 { 367 {
160 $current.merge(this_INT_1); 368 if ($current==null) {
161 } 369 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
162 { 370 }
163 newLeafNode(this_INT_1, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_1()); 371 setWithLastConsumed($current, "functional", true, "functional");
164 } 372 }
165 kw='.' 373 )
166 { 374 )
167 $current.merge(kw); 375 (
168 newLeafNode(kw, grammarAccess.getREALLiteralAccess().getFullStopKeyword_2()); 376 (
169 } 377 lv_error_1_0='error'
170 this_INT_3=RULE_INT 378 {
171 { 379 newLeafNode(lv_error_1_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_1_0());
172 $current.merge(this_INT_3); 380 }
173 } 381 {
382 if ($current==null) {
383 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
384 }
385 setWithLastConsumed($current, "error", true, "error");
386 }
387 )
388 )?
389 )
390 |
391 (
392 (
393 (
394 lv_error_2_0='error'
395 {
396 newLeafNode(lv_error_2_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_1_0_0());
397 }
398 {
399 if ($current==null) {
400 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
401 }
402 setWithLastConsumed($current, "error", true, "error");
403 }
404 )
405 )
406 (
407 (
408 lv_functional_3_0='functional'
409 {
410 newLeafNode(lv_functional_3_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_1_1_0());
411 }
412 {
413 if ($current==null) {
414 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
415 }
416 setWithLastConsumed($current, "functional", true, "functional");
417 }
418 )
419 )?
420 )
421 )
422 (
423 (
424 {
425 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0());
426 }
427 lv_head_4_0=ruleCall
428 {
429 if ($current==null) {
430 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
431 }
432 set(
433 $current,
434 "head",
435 lv_head_4_0,
436 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
437 afterParserOrEnumRuleCall();
438 }
439 )
440 )
441 otherlv_5=':-'
174 { 442 {
175 newLeafNode(this_INT_3, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_3()); 443 newLeafNode(otherlv_5, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_2());
176 } 444 }
445 (
446 (
447 {
448 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
449 }
450 lv_body_6_0=ruleExpression
451 {
452 if ($current==null) {
453 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
454 }
455 set(
456 $current,
457 "body",
458 lv_body_6_0,
459 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
460 afterParserOrEnumRuleCall();
461 }
462 )
463 )
177 ) 464 )
178; 465;
179 466
180// Entry rule entryRuleINTLiteral 467// Entry rule entryRuleUnnamedErrorPrediateDefinition
181entryRuleINTLiteral returns [String current=null]: 468entryRuleUnnamedErrorPrediateDefinition returns [EObject current=null]:
182 { newCompositeNode(grammarAccess.getINTLiteralRule()); } 469 { newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); }
183 iv_ruleINTLiteral=ruleINTLiteral 470 iv_ruleUnnamedErrorPrediateDefinition=ruleUnnamedErrorPrediateDefinition
184 { $current=$iv_ruleINTLiteral.current.getText(); } 471 { $current=$iv_ruleUnnamedErrorPrediateDefinition.current; }
185 EOF; 472 EOF;
186 473
187// Rule INTLiteral 474// Rule UnnamedErrorPrediateDefinition
188ruleINTLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 475ruleUnnamedErrorPrediateDefinition returns [EObject current=null]
189@init { 476@init {
190 enterRule(); 477 enterRule();
191} 478}
@@ -193,32 +480,64 @@ ruleINTLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToke
193 leaveRule(); 480 leaveRule();
194}: 481}:
195 ( 482 (
196 ( 483 otherlv_0='error'
197 kw='-'
198 {
199 $current.merge(kw);
200 newLeafNode(kw, grammarAccess.getINTLiteralAccess().getHyphenMinusKeyword_0());
201 }
202 )?
203 this_INT_1=RULE_INT
204 { 484 {
205 $current.merge(this_INT_1); 485 newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getErrorKeyword_0());
206 } 486 }
487 (
488 (
489 {
490 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0());
491 }
492 lv_argumentList_1_0=ruleArgumentList
493 {
494 if ($current==null) {
495 $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule());
496 }
497 set(
498 $current,
499 "argumentList",
500 lv_argumentList_1_0,
501 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
502 afterParserOrEnumRuleCall();
503 }
504 )
505 )
506 otherlv_2=':-'
207 { 507 {
208 newLeafNode(this_INT_1, grammarAccess.getINTLiteralAccess().getINTTerminalRuleCall_1()); 508 newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getColonHyphenMinusKeyword_2());
209 } 509 }
510 (
511 (
512 {
513 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
514 }
515 lv_body_3_0=ruleExpression
516 {
517 if ($current==null) {
518 $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule());
519 }
520 set(
521 $current,
522 "body",
523 lv_body_3_0,
524 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
525 afterParserOrEnumRuleCall();
526 }
527 )
528 )
210 ) 529 )
211; 530;
212 531
213// Entry rule entryRuleBooleanValue 532// Entry rule entryRuleDefaultDefinition
214entryRuleBooleanValue returns [EObject current=null]: 533entryRuleDefaultDefinition returns [EObject current=null]:
215 { newCompositeNode(grammarAccess.getBooleanValueRule()); } 534 { newCompositeNode(grammarAccess.getDefaultDefinitionRule()); }
216 iv_ruleBooleanValue=ruleBooleanValue 535 iv_ruleDefaultDefinition=ruleDefaultDefinition
217 { $current=$iv_ruleBooleanValue.current; } 536 { $current=$iv_ruleDefaultDefinition.current; }
218 EOF; 537 EOF;
219 538
220// Rule BooleanValue 539// Rule DefaultDefinition
221ruleBooleanValue returns [EObject current=null] 540ruleDefaultDefinition returns [EObject current=null]
222@init { 541@init {
223 enterRule(); 542 enterRule();
224} 543}
@@ -226,45 +545,64 @@ ruleBooleanValue returns [EObject current=null]
226 leaveRule(); 545 leaveRule();
227}: 546}:
228 ( 547 (
548 otherlv_0='default'
549 {
550 newLeafNode(otherlv_0, grammarAccess.getDefaultDefinitionAccess().getDefaultKeyword_0());
551 }
229 ( 552 (
230 ( 553 (
231 { 554 {
232 $current = forceCreateModelElement( 555 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0());
233 grammarAccess.getBooleanValueAccess().getBooleanTrueAction_0_0(), 556 }
234 $current); 557 lv_head_1_0=ruleCall
558 {
559 if ($current==null) {
560 $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule());
561 }
562 set(
563 $current,
564 "head",
565 lv_head_1_0,
566 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
567 afterParserOrEnumRuleCall();
235 } 568 }
236 ) 569 )
237 otherlv_1='true'
238 {
239 newLeafNode(otherlv_1, grammarAccess.getBooleanValueAccess().getTrueKeyword_0_1());
240 }
241 ) 570 )
242 | 571 otherlv_2=':'
572 {
573 newLeafNode(otherlv_2, grammarAccess.getDefaultDefinitionAccess().getColonKeyword_2());
574 }
243 ( 575 (
244 otherlv_2='false'
245 {
246 newLeafNode(otherlv_2, grammarAccess.getBooleanValueAccess().getFalseKeyword_1_0());
247 }
248 ( 576 (
249 { 577 {
250 $current = forceCreateModelElement( 578 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0());
251 grammarAccess.getBooleanValueAccess().getBooleanFalseAction_1_1(), 579 }
252 $current); 580 lv_range_3_0=ruleExpression
581 {
582 if ($current==null) {
583 $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule());
584 }
585 set(
586 $current,
587 "range",
588 lv_range_3_0,
589 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
590 afterParserOrEnumRuleCall();
253 } 591 }
254 ) 592 )
255 ) 593 )
256 ) 594 )
257; 595;
258 596
259// Entry rule entryRuleTruthValue 597// Entry rule entryRuleExternPredicateDefinition
260entryRuleTruthValue returns [EObject current=null]: 598entryRuleExternPredicateDefinition returns [EObject current=null]:
261 { newCompositeNode(grammarAccess.getTruthValueRule()); } 599 { newCompositeNode(grammarAccess.getExternPredicateDefinitionRule()); }
262 iv_ruleTruthValue=ruleTruthValue 600 iv_ruleExternPredicateDefinition=ruleExternPredicateDefinition
263 { $current=$iv_ruleTruthValue.current; } 601 { $current=$iv_ruleExternPredicateDefinition.current; }
264 EOF; 602 EOF;
265 603
266// Rule TruthValue 604// Rule ExternPredicateDefinition
267ruleTruthValue returns [EObject current=null] 605ruleExternPredicateDefinition returns [EObject current=null]
268@init { 606@init {
269 enterRule(); 607 enterRule();
270} 608}
@@ -272,73 +610,125 @@ ruleTruthValue returns [EObject current=null]
272 leaveRule(); 610 leaveRule();
273}: 611}:
274 ( 612 (
613 otherlv_0='extern'
614 {
615 newLeafNode(otherlv_0, grammarAccess.getExternPredicateDefinitionAccess().getExternKeyword_0());
616 }
275 ( 617 (
276 ( 618 (
277 { 619 {
278 $current = forceCreateModelElement( 620 newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0());
279 grammarAccess.getTruthValueAccess().getTrueAction_0_0(), 621 }
280 $current); 622 lv_head_1_0=ruleCall
623 {
624 if ($current==null) {
625 $current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule());
626 }
627 set(
628 $current,
629 "head",
630 lv_head_1_0,
631 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
632 afterParserOrEnumRuleCall();
281 } 633 }
282 ) 634 )
283 otherlv_1='true'
284 {
285 newLeafNode(otherlv_1, grammarAccess.getTruthValueAccess().getTrueKeyword_0_1());
286 }
287 ) 635 )
288 | 636 otherlv_2='.'
637 {
638 newLeafNode(otherlv_2, grammarAccess.getExternPredicateDefinitionAccess().getFullStopKeyword_2());
639 }
640 )
641;
642
643// Entry rule entryRuleMetricDefinition
644entryRuleMetricDefinition returns [EObject current=null]:
645 { newCompositeNode(grammarAccess.getMetricDefinitionRule()); }
646 iv_ruleMetricDefinition=ruleMetricDefinition
647 { $current=$iv_ruleMetricDefinition.current; }
648 EOF;
649
650// Rule MetricDefinition
651ruleMetricDefinition returns [EObject current=null]
652@init {
653 enterRule();
654}
655@after {
656 leaveRule();
657}:
658 (
289 ( 659 (
290 ( 660 (
291 { 661 {
292 $current = forceCreateModelElement( 662 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_0_0());
293 grammarAccess.getTruthValueAccess().getFalseAction_1_0(), 663 }
294 $current); 664 lv_type_0_0=ruleMetricType
665 {
666 if ($current==null) {
667 $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule());
668 }
669 set(
670 $current,
671 "type",
672 lv_type_0_0,
673 "org.eclipse.viatra.solver.language.SolverLanguage.MetricType");
674 afterParserOrEnumRuleCall();
295 } 675 }
296 ) 676 )
297 otherlv_3='false'
298 {
299 newLeafNode(otherlv_3, grammarAccess.getTruthValueAccess().getFalseKeyword_1_1());
300 }
301 ) 677 )
302 |
303 ( 678 (
304 ( 679 (
305 { 680 {
306 $current = forceCreateModelElement( 681 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getHeadExpressionParserRuleCall_1_0());
307 grammarAccess.getTruthValueAccess().getUnknownAction_2_0(), 682 }
308 $current); 683 lv_head_1_0=ruleExpression
684 {
685 if ($current==null) {
686 $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule());
687 }
688 set(
689 $current,
690 "head",
691 lv_head_1_0,
692 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
693 afterParserOrEnumRuleCall();
309 } 694 }
310 ) 695 )
311 otherlv_5='unknown'
312 {
313 newLeafNode(otherlv_5, grammarAccess.getTruthValueAccess().getUnknownKeyword_2_1());
314 }
315 ) 696 )
316 | 697 otherlv_2='='
698 {
699 newLeafNode(otherlv_2, grammarAccess.getMetricDefinitionAccess().getEqualsSignKeyword_2());
700 }
317 ( 701 (
318 ( 702 (
319 { 703 {
320 $current = forceCreateModelElement( 704 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
321 grammarAccess.getTruthValueAccess().getErrorAction_3_0(), 705 }
322 $current); 706 lv_body_3_0=ruleExpression
707 {
708 if ($current==null) {
709 $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule());
710 }
711 set(
712 $current,
713 "body",
714 lv_body_3_0,
715 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
716 afterParserOrEnumRuleCall();
323 } 717 }
324 ) 718 )
325 otherlv_7='error'
326 {
327 newLeafNode(otherlv_7, grammarAccess.getTruthValueAccess().getErrorKeyword_3_1());
328 }
329 ) 719 )
330 ) 720 )
331; 721;
332 722
333// Entry rule entryRuleInterpretation 723// Entry rule entryRuleExternMetricDefinition
334entryRuleInterpretation returns [EObject current=null]: 724entryRuleExternMetricDefinition returns [EObject current=null]:
335 { newCompositeNode(grammarAccess.getInterpretationRule()); } 725 { newCompositeNode(grammarAccess.getExternMetricDefinitionRule()); }
336 iv_ruleInterpretation=ruleInterpretation 726 iv_ruleExternMetricDefinition=ruleExternMetricDefinition
337 { $current=$iv_ruleInterpretation.current; } 727 { $current=$iv_ruleExternMetricDefinition.current; }
338 EOF; 728 EOF;
339 729
340// Rule Interpretation 730// Rule ExternMetricDefinition
341ruleInterpretation returns [EObject current=null] 731ruleExternMetricDefinition returns [EObject current=null]
342@init { 732@init {
343 enterRule(); 733 enterRule();
344} 734}
@@ -346,44 +736,96 @@ ruleInterpretation returns [EObject current=null]
346 leaveRule(); 736 leaveRule();
347}: 737}:
348 ( 738 (
739 otherlv_0='extern'
349 { 740 {
350 newCompositeNode(grammarAccess.getInterpretationAccess().getBasicInterpretationParserRuleCall_0()); 741 newLeafNode(otherlv_0, grammarAccess.getExternMetricDefinitionAccess().getExternKeyword_0());
351 }
352 this_BasicInterpretation_0=ruleBasicInterpretation
353 {
354 $current = $this_BasicInterpretation_0.current;
355 afterParserOrEnumRuleCall();
356 } 742 }
357 | 743 (
744 (
745 {
746 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_1_0());
747 }
748 lv_type_1_0=ruleMetricType
749 {
750 if ($current==null) {
751 $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule());
752 }
753 set(
754 $current,
755 "type",
756 lv_type_1_0,
757 "org.eclipse.viatra.solver.language.SolverLanguage.MetricType");
758 afterParserOrEnumRuleCall();
759 }
760 )
761 )
762 (
763 (
764 {
765 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getHeadCallParserRuleCall_2_0());
766 }
767 lv_head_2_0=ruleCall
768 {
769 if ($current==null) {
770 $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule());
771 }
772 set(
773 $current,
774 "head",
775 lv_head_2_0,
776 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
777 afterParserOrEnumRuleCall();
778 }
779 )
780 )
781 )
782;
783
784// Entry rule entryRuleExpression
785entryRuleExpression returns [EObject current=null]:
786 { newCompositeNode(grammarAccess.getExpressionRule()); }
787 iv_ruleExpression=ruleExpression
788 { $current=$iv_ruleExpression.current; }
789 EOF;
790
791// Rule Expression
792ruleExpression returns [EObject current=null]
793@init {
794 enterRule();
795}
796@after {
797 leaveRule();
798}:
799 (
358 { 800 {
359 newCompositeNode(grammarAccess.getInterpretationAccess().getDefaultInterpretationParserRuleCall_1()); 801 newCompositeNode(grammarAccess.getExpressionAccess().getIfElseParserRuleCall_0());
360 } 802 }
361 this_DefaultInterpretation_1=ruleDefaultInterpretation 803 this_IfElse_0=ruleIfElse
362 { 804 {
363 $current = $this_DefaultInterpretation_1.current; 805 $current = $this_IfElse_0.current;
364 afterParserOrEnumRuleCall(); 806 afterParserOrEnumRuleCall();
365 } 807 }
366 | 808 |
367 { 809 {
368 newCompositeNode(grammarAccess.getInterpretationAccess().getCDInterpretationParserRuleCall_2()); 810 newCompositeNode(grammarAccess.getExpressionAccess().getDisjunctiveExpressionParserRuleCall_1());
369 } 811 }
370 this_CDInterpretation_2=ruleCDInterpretation 812 this_DisjunctiveExpression_1=ruleDisjunctiveExpression
371 { 813 {
372 $current = $this_CDInterpretation_2.current; 814 $current = $this_DisjunctiveExpression_1.current;
373 afterParserOrEnumRuleCall(); 815 afterParserOrEnumRuleCall();
374 } 816 }
375 ) 817 )
376; 818;
377 819
378// Entry rule entryRuleBasicInterpretation 820// Entry rule entryRuleIfElse
379entryRuleBasicInterpretation returns [EObject current=null]: 821entryRuleIfElse returns [EObject current=null]:
380 { newCompositeNode(grammarAccess.getBasicInterpretationRule()); } 822 { newCompositeNode(grammarAccess.getIfElseRule()); }
381 iv_ruleBasicInterpretation=ruleBasicInterpretation 823 iv_ruleIfElse=ruleIfElse
382 { $current=$iv_ruleBasicInterpretation.current; } 824 { $current=$iv_ruleIfElse.current; }
383 EOF; 825 EOF;
384 826
385// Rule BasicInterpretation 827// Rule IfElse
386ruleBasicInterpretation returns [EObject current=null] 828ruleIfElse returns [EObject current=null]
387@init { 829@init {
388 enterRule(); 830 enterRule();
389} 831}
@@ -391,100 +833,260 @@ ruleBasicInterpretation returns [EObject current=null]
391 leaveRule(); 833 leaveRule();
392}: 834}:
393 ( 835 (
836 otherlv_0='if'
837 {
838 newLeafNode(otherlv_0, grammarAccess.getIfElseAccess().getIfKeyword_0());
839 }
394 ( 840 (
395 ( 841 (
396 { 842 {
397 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getSymbolSymbolParserRuleCall_0_0()); 843 newCompositeNode(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0());
398 } 844 }
399 lv_symbol_0_0=ruleSymbol 845 lv_condition_1_0=ruleExpression
400 { 846 {
401 if ($current==null) { 847 if ($current==null) {
402 $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); 848 $current = createModelElementForParent(grammarAccess.getIfElseRule());
403 } 849 }
404 set( 850 set(
405 $current, 851 $current,
406 "symbol", 852 "condition",
407 lv_symbol_0_0, 853 lv_condition_1_0,
408 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); 854 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
409 afterParserOrEnumRuleCall(); 855 afterParserOrEnumRuleCall();
410 } 856 }
411 ) 857 )
412 ) 858 )
859 otherlv_2='then'
860 {
861 newLeafNode(otherlv_2, grammarAccess.getIfElseAccess().getThenKeyword_2());
862 }
413 ( 863 (
414 otherlv_1='('
415 {
416 newLeafNode(otherlv_1, grammarAccess.getBasicInterpretationAccess().getLeftParenthesisKeyword_1_0());
417 }
418 ( 864 (
865 {
866 newCompositeNode(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0());
867 }
868 lv_then_3_0=ruleExpression
869 {
870 if ($current==null) {
871 $current = createModelElementForParent(grammarAccess.getIfElseRule());
872 }
873 set(
874 $current,
875 "then",
876 lv_then_3_0,
877 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
878 afterParserOrEnumRuleCall();
879 }
880 )
881 )
882 otherlv_4='else'
883 {
884 newLeafNode(otherlv_4, grammarAccess.getIfElseAccess().getElseKeyword_4());
885 }
886 (
887 (
888 {
889 newCompositeNode(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0());
890 }
891 lv_else_5_0=ruleExpression
892 {
893 if ($current==null) {
894 $current = createModelElementForParent(grammarAccess.getIfElseRule());
895 }
896 set(
897 $current,
898 "else",
899 lv_else_5_0,
900 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
901 afterParserOrEnumRuleCall();
902 }
903 )
904 )
905 )
906;
907
908// Entry rule entryRuleDisjunctiveExpression
909entryRuleDisjunctiveExpression returns [EObject current=null]:
910 { newCompositeNode(grammarAccess.getDisjunctiveExpressionRule()); }
911 iv_ruleDisjunctiveExpression=ruleDisjunctiveExpression
912 { $current=$iv_ruleDisjunctiveExpression.current; }
913 EOF;
914
915// Rule DisjunctiveExpression
916ruleDisjunctiveExpression returns [EObject current=null]
917@init {
918 enterRule();
919}
920@after {
921 leaveRule();
922}:
923 (
924 {
925 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getConjunctiveExpressionParserRuleCall_0());
926 }
927 this_ConjunctiveExpression_0=ruleConjunctiveExpression
928 {
929 $current = $this_ConjunctiveExpression_0.current;
930 afterParserOrEnumRuleCall();
931 }
932 (
933 (
934 (
935 {
936 $current = forceCreateModelElementAndAdd(
937 grammarAccess.getDisjunctiveExpressionAccess().getDisjunctionChildrenAction_1_0_0(),
938 $current);
939 }
940 )
941 (
942 otherlv_2=';'
943 {
944 newLeafNode(otherlv_2, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_0_1_0());
945 }
946 (
947 (
948 {
949 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0());
950 }
951 lv_children_3_0=ruleConjunctiveExpression
952 {
953 if ($current==null) {
954 $current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule());
955 }
956 add(
957 $current,
958 "children",
959 lv_children_3_0,
960 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
961 afterParserOrEnumRuleCall();
962 }
963 )
964 )
965 )+
966 )
967 |
968 (
969 (
970 {
971 $current = forceCreateModelElementAndSet(
972 grammarAccess.getDisjunctiveExpressionAccess().getCaseConditionAction_1_1_0(),
973 $current);
974 }
975 )
976 otherlv_5='->'
977 {
978 newLeafNode(otherlv_5, grammarAccess.getDisjunctiveExpressionAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1());
979 }
419 ( 980 (
420 ( 981 (
421 { 982 {
422 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getObjectsComplexObjectParserRuleCall_1_1_0_0()); 983 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0());
423 } 984 }
424 lv_objects_2_0=ruleComplexObject 985 lv_body_6_0=ruleConjunctiveExpression
425 { 986 {
426 if ($current==null) { 987 if ($current==null) {
427 $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); 988 $current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule());
428 } 989 }
429 add( 990 set(
430 $current, 991 $current,
431 "objects", 992 "body",
432 lv_objects_2_0, 993 lv_body_6_0,
433 "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject"); 994 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
434 afterParserOrEnumRuleCall(); 995 afterParserOrEnumRuleCall();
435 } 996 }
436 ) 997 )
437 ) 998 )
438 ( 999 (
439 otherlv_3=','
440 { 1000 {
441 newLeafNode(otherlv_3, grammarAccess.getBasicInterpretationAccess().getCommaKeyword_1_1_1_0()); 1001 $current = forceCreateModelElementAndAdd(
1002 grammarAccess.getDisjunctiveExpressionAccess().getSwitchCasesAction_1_1_3(),
1003 $current);
1004 }
1005 )
1006 (
1007 otherlv_8=';'
1008 {
1009 newLeafNode(otherlv_8, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_1_4_0());
442 } 1010 }
443 ( 1011 (
444 ( 1012 (
445 { 1013 {
446 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getObjectsComplexObjectParserRuleCall_1_1_1_1_0()); 1014 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getCasesCaseParserRuleCall_1_1_4_1_0());
447 } 1015 }
448 lv_objects_4_0=ruleComplexObject 1016 lv_cases_9_0=ruleCase
449 { 1017 {
450 if ($current==null) { 1018 if ($current==null) {
451 $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); 1019 $current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule());
452 } 1020 }
453 add( 1021 add(
454 $current, 1022 $current,
455 "objects", 1023 "cases",
456 lv_objects_4_0, 1024 lv_cases_9_0,
457 "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject"); 1025 "org.eclipse.viatra.solver.language.SolverLanguage.Case");
458 afterParserOrEnumRuleCall(); 1026 afterParserOrEnumRuleCall();
459 } 1027 }
460 ) 1028 )
461 ) 1029 )
462 )* 1030 )*
463 )? 1031 )
464 otherlv_5=')'
465 {
466 newLeafNode(otherlv_5, grammarAccess.getBasicInterpretationAccess().getRightParenthesisKeyword_1_2());
467 }
468 )? 1032 )?
469 otherlv_6=':' 1033 )
1034;
1035
1036// Entry rule entryRuleCase
1037entryRuleCase returns [EObject current=null]:
1038 { newCompositeNode(grammarAccess.getCaseRule()); }
1039 iv_ruleCase=ruleCase
1040 { $current=$iv_ruleCase.current; }
1041 EOF;
1042
1043// Rule Case
1044ruleCase returns [EObject current=null]
1045@init {
1046 enterRule();
1047}
1048@after {
1049 leaveRule();
1050}:
1051 (
1052 (
1053 (
1054 {
1055 newCompositeNode(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0());
1056 }
1057 lv_condition_0_0=ruleConjunctiveExpression
1058 {
1059 if ($current==null) {
1060 $current = createModelElementForParent(grammarAccess.getCaseRule());
1061 }
1062 set(
1063 $current,
1064 "condition",
1065 lv_condition_0_0,
1066 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
1067 afterParserOrEnumRuleCall();
1068 }
1069 )
1070 )
1071 otherlv_1='->'
470 { 1072 {
471 newLeafNode(otherlv_6, grammarAccess.getBasicInterpretationAccess().getColonKeyword_2()); 1073 newLeafNode(otherlv_1, grammarAccess.getCaseAccess().getHyphenMinusGreaterThanSignKeyword_1());
472 } 1074 }
473 ( 1075 (
474 ( 1076 (
475 { 1077 {
476 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getValueTruthValueParserRuleCall_3_0()); 1078 newCompositeNode(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0());
477 } 1079 }
478 lv_value_7_0=ruleTruthValue 1080 lv_body_2_0=ruleConjunctiveExpression
479 { 1081 {
480 if ($current==null) { 1082 if ($current==null) {
481 $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); 1083 $current = createModelElementForParent(grammarAccess.getCaseRule());
482 } 1084 }
483 set( 1085 set(
484 $current, 1086 $current,
485 "value", 1087 "body",
486 lv_value_7_0, 1088 lv_body_2_0,
487 "org.eclipse.viatra.solver.language.SolverLanguage.TruthValue"); 1089 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
488 afterParserOrEnumRuleCall(); 1090 afterParserOrEnumRuleCall();
489 } 1091 }
490 ) 1092 )
@@ -492,15 +1094,15 @@ ruleBasicInterpretation returns [EObject current=null]
492 ) 1094 )
493; 1095;
494 1096
495// Entry rule entryRuleSymbol 1097// Entry rule entryRuleConjunctiveExpression
496entryRuleSymbol returns [EObject current=null]: 1098entryRuleConjunctiveExpression returns [EObject current=null]:
497 { newCompositeNode(grammarAccess.getSymbolRule()); } 1099 { newCompositeNode(grammarAccess.getConjunctiveExpressionRule()); }
498 iv_ruleSymbol=ruleSymbol 1100 iv_ruleConjunctiveExpression=ruleConjunctiveExpression
499 { $current=$iv_ruleSymbol.current; } 1101 { $current=$iv_ruleConjunctiveExpression.current; }
500 EOF; 1102 EOF;
501 1103
502// Rule Symbol 1104// Rule ConjunctiveExpression
503ruleSymbol returns [EObject current=null] 1105ruleConjunctiveExpression returns [EObject current=null]
504@init { 1106@init {
505 enterRule(); 1107 enterRule();
506} 1108}
@@ -509,43 +1111,59 @@ ruleSymbol returns [EObject current=null]
509}: 1111}:
510 ( 1112 (
511 { 1113 {
512 newCompositeNode(grammarAccess.getSymbolAccess().getModelSymbolParserRuleCall_0()); 1114 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getComparisonExpressionParserRuleCall_0());
513 } 1115 }
514 this_ModelSymbol_0=ruleModelSymbol 1116 this_ComparisonExpression_0=ruleComparisonExpression
515 { 1117 {
516 $current = $this_ModelSymbol_0.current; 1118 $current = $this_ComparisonExpression_0.current;
517 afterParserOrEnumRuleCall();
518 }
519 |
520 {
521 newCompositeNode(grammarAccess.getSymbolAccess().getPartialitySymbolParserRuleCall_1());
522 }
523 this_PartialitySymbol_1=rulePartialitySymbol
524 {
525 $current = $this_PartialitySymbol_1.current;
526 afterParserOrEnumRuleCall();
527 }
528 |
529 {
530 newCompositeNode(grammarAccess.getSymbolAccess().getDataSymbolParserRuleCall_2());
531 }
532 this_DataSymbol_2=ruleDataSymbol
533 {
534 $current = $this_DataSymbol_2.current;
535 afterParserOrEnumRuleCall(); 1119 afterParserOrEnumRuleCall();
536 } 1120 }
1121 (
1122 (
1123 {
1124 $current = forceCreateModelElementAndAdd(
1125 grammarAccess.getConjunctiveExpressionAccess().getConjunctionChildrenAction_1_0(),
1126 $current);
1127 }
1128 )
1129 (
1130 otherlv_2=','
1131 {
1132 newLeafNode(otherlv_2, grammarAccess.getConjunctiveExpressionAccess().getCommaKeyword_1_1_0());
1133 }
1134 (
1135 (
1136 {
1137 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getChildrenComparisonExpressionParserRuleCall_1_1_1_0());
1138 }
1139 lv_children_3_0=ruleComparisonExpression
1140 {
1141 if ($current==null) {
1142 $current = createModelElementForParent(grammarAccess.getConjunctiveExpressionRule());
1143 }
1144 add(
1145 $current,
1146 "children",
1147 lv_children_3_0,
1148 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression");
1149 afterParserOrEnumRuleCall();
1150 }
1151 )
1152 )
1153 )+
1154 )?
537 ) 1155 )
538; 1156;
539 1157
540// Entry rule entryRuleModelSymbol 1158// Entry rule entryRuleComparisonExpression
541entryRuleModelSymbol returns [EObject current=null]: 1159entryRuleComparisonExpression returns [EObject current=null]:
542 { newCompositeNode(grammarAccess.getModelSymbolRule()); } 1160 { newCompositeNode(grammarAccess.getComparisonExpressionRule()); }
543 iv_ruleModelSymbol=ruleModelSymbol 1161 iv_ruleComparisonExpression=ruleComparisonExpression
544 { $current=$iv_ruleModelSymbol.current; } 1162 { $current=$iv_ruleComparisonExpression.current; }
545 EOF; 1163 EOF;
546 1164
547// Rule ModelSymbol 1165// Rule ComparisonExpression
548ruleModelSymbol returns [EObject current=null] 1166ruleComparisonExpression returns [EObject current=null]
549@init { 1167@init {
550 enterRule(); 1168 enterRule();
551} 1169}
@@ -553,34 +1171,73 @@ ruleModelSymbol returns [EObject current=null]
553 leaveRule(); 1171 leaveRule();
554}: 1172}:
555 ( 1173 (
1174 {
1175 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getAdditiveExpressionParserRuleCall_0());
1176 }
1177 this_AdditiveExpression_0=ruleAdditiveExpression
1178 {
1179 $current = $this_AdditiveExpression_0.current;
1180 afterParserOrEnumRuleCall();
1181 }
556 ( 1182 (
557 lv_name_0_0=RULE_ID 1183 (
558 { 1184 {
559 newLeafNode(lv_name_0_0, grammarAccess.getModelSymbolAccess().getNameIDTerminalRuleCall_0()); 1185 $current = forceCreateModelElementAndSet(
560 } 1186 grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(),
561 { 1187 $current);
562 if ($current==null) {
563 $current = createModelElement(grammarAccess.getModelSymbolRule());
564 } 1188 }
565 setWithLastConsumed( 1189 )
566 $current, 1190 (
567 "name", 1191 (
568 lv_name_0_0, 1192 {
569 "org.eclipse.xtext.common.Terminals.ID"); 1193 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0());
570 } 1194 }
571 ) 1195 lv_op_2_0=ruleComparisonOperator
1196 {
1197 if ($current==null) {
1198 $current = createModelElementForParent(grammarAccess.getComparisonExpressionRule());
1199 }
1200 set(
1201 $current,
1202 "op",
1203 lv_op_2_0,
1204 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator");
1205 afterParserOrEnumRuleCall();
1206 }
1207 )
1208 )
1209 (
1210 (
1211 {
1212 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0());
1213 }
1214 lv_right_3_0=ruleAdditiveExpression
1215 {
1216 if ($current==null) {
1217 $current = createModelElementForParent(grammarAccess.getComparisonExpressionRule());
1218 }
1219 set(
1220 $current,
1221 "right",
1222 lv_right_3_0,
1223 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
1224 afterParserOrEnumRuleCall();
1225 }
1226 )
1227 )
1228 )?
572 ) 1229 )
573; 1230;
574 1231
575// Entry rule entryRulePartialitySymbol 1232// Entry rule entryRuleAdditiveExpression
576entryRulePartialitySymbol returns [EObject current=null]: 1233entryRuleAdditiveExpression returns [EObject current=null]:
577 { newCompositeNode(grammarAccess.getPartialitySymbolRule()); } 1234 { newCompositeNode(grammarAccess.getAdditiveExpressionRule()); }
578 iv_rulePartialitySymbol=rulePartialitySymbol 1235 iv_ruleAdditiveExpression=ruleAdditiveExpression
579 { $current=$iv_rulePartialitySymbol.current; } 1236 { $current=$iv_ruleAdditiveExpression.current; }
580 EOF; 1237 EOF;
581 1238
582// Rule PartialitySymbol 1239// Rule AdditiveExpression
583rulePartialitySymbol returns [EObject current=null] 1240ruleAdditiveExpression returns [EObject current=null]
584@init { 1241@init {
585 enterRule(); 1242 enterRule();
586} 1243}
@@ -589,34 +1246,146 @@ rulePartialitySymbol returns [EObject current=null]
589}: 1246}:
590 ( 1247 (
591 { 1248 {
592 newCompositeNode(grammarAccess.getPartialitySymbolAccess().getExistSymbolParserRuleCall_0()); 1249 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getMultiplicativeExpressionParserRuleCall_0());
593 } 1250 }
594 this_ExistSymbol_0=ruleExistSymbol 1251 this_MultiplicativeExpression_0=ruleMultiplicativeExpression
595 { 1252 {
596 $current = $this_ExistSymbol_0.current; 1253 $current = $this_MultiplicativeExpression_0.current;
597 afterParserOrEnumRuleCall(); 1254 afterParserOrEnumRuleCall();
598 } 1255 }
599 | 1256 (
1257 (
1258 {
1259 $current = forceCreateModelElementAndSet(
1260 grammarAccess.getAdditiveExpressionAccess().getBinaryExpressionLeftAction_1_0(),
1261 $current);
1262 }
1263 )
1264 (
1265 (
1266 {
1267 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0());
1268 }
1269 lv_op_2_0=ruleAdditiveBinaryOperator
1270 {
1271 if ($current==null) {
1272 $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
1273 }
1274 set(
1275 $current,
1276 "op",
1277 lv_op_2_0,
1278 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator");
1279 afterParserOrEnumRuleCall();
1280 }
1281 )
1282 )
1283 (
1284 (
1285 {
1286 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getRightMultiplicativeExpressionParserRuleCall_1_2_0());
1287 }
1288 lv_right_3_0=ruleMultiplicativeExpression
1289 {
1290 if ($current==null) {
1291 $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
1292 }
1293 set(
1294 $current,
1295 "right",
1296 lv_right_3_0,
1297 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeExpression");
1298 afterParserOrEnumRuleCall();
1299 }
1300 )
1301 )
1302 )*
1303 )
1304;
1305
1306// Entry rule entryRuleMultiplicativeExpression
1307entryRuleMultiplicativeExpression returns [EObject current=null]:
1308 { newCompositeNode(grammarAccess.getMultiplicativeExpressionRule()); }
1309 iv_ruleMultiplicativeExpression=ruleMultiplicativeExpression
1310 { $current=$iv_ruleMultiplicativeExpression.current; }
1311 EOF;
1312
1313// Rule MultiplicativeExpression
1314ruleMultiplicativeExpression returns [EObject current=null]
1315@init {
1316 enterRule();
1317}
1318@after {
1319 leaveRule();
1320}:
1321 (
600 { 1322 {
601 newCompositeNode(grammarAccess.getPartialitySymbolAccess().getEqualsSymbolParserRuleCall_1()); 1323 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExponentialExpressionParserRuleCall_0());
602 } 1324 }
603 this_EqualsSymbol_1=ruleEqualsSymbol 1325 this_ExponentialExpression_0=ruleExponentialExpression
604 { 1326 {
605 $current = $this_EqualsSymbol_1.current; 1327 $current = $this_ExponentialExpression_0.current;
606 afterParserOrEnumRuleCall(); 1328 afterParserOrEnumRuleCall();
607 } 1329 }
1330 (
1331 (
1332 {
1333 $current = forceCreateModelElementAndSet(
1334 grammarAccess.getMultiplicativeExpressionAccess().getBinaryExpressionLeftAction_1_0(),
1335 $current);
1336 }
1337 )
1338 (
1339 (
1340 {
1341 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0());
1342 }
1343 lv_op_2_0=ruleMultiplicativeBinaryOperator
1344 {
1345 if ($current==null) {
1346 $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
1347 }
1348 set(
1349 $current,
1350 "op",
1351 lv_op_2_0,
1352 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator");
1353 afterParserOrEnumRuleCall();
1354 }
1355 )
1356 )
1357 (
1358 (
1359 {
1360 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0());
1361 }
1362 lv_right_3_0=ruleExponentialExpression
1363 {
1364 if ($current==null) {
1365 $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
1366 }
1367 set(
1368 $current,
1369 "right",
1370 lv_right_3_0,
1371 "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression");
1372 afterParserOrEnumRuleCall();
1373 }
1374 )
1375 )
1376 )*
608 ) 1377 )
609; 1378;
610 1379
611// Entry rule entryRuleExistSymbol 1380// Entry rule entryRuleExponentialExpression
612entryRuleExistSymbol returns [EObject current=null]: 1381entryRuleExponentialExpression returns [EObject current=null]:
613 { newCompositeNode(grammarAccess.getExistSymbolRule()); } 1382 { newCompositeNode(grammarAccess.getExponentialExpressionRule()); }
614 iv_ruleExistSymbol=ruleExistSymbol 1383 iv_ruleExponentialExpression=ruleExponentialExpression
615 { $current=$iv_ruleExistSymbol.current; } 1384 { $current=$iv_ruleExponentialExpression.current; }
616 EOF; 1385 EOF;
617 1386
618// Rule ExistSymbol 1387// Rule ExponentialExpression
619ruleExistSymbol returns [EObject current=null] 1388ruleExponentialExpression returns [EObject current=null]
620@init { 1389@init {
621 enterRule(); 1390 enterRule();
622} 1391}
@@ -624,29 +1393,73 @@ ruleExistSymbol returns [EObject current=null]
624 leaveRule(); 1393 leaveRule();
625}: 1394}:
626 ( 1395 (
627 otherlv_0='exists'
628 { 1396 {
629 newLeafNode(otherlv_0, grammarAccess.getExistSymbolAccess().getExistsKeyword_0()); 1397 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getUnaryExpressionParserRuleCall_0());
1398 }
1399 this_UnaryExpression_0=ruleUnaryExpression
1400 {
1401 $current = $this_UnaryExpression_0.current;
1402 afterParserOrEnumRuleCall();
630 } 1403 }
631 ( 1404 (
632 { 1405 (
633 $current = forceCreateModelElement( 1406 {
634 grammarAccess.getExistSymbolAccess().getExistSymbolAction_1(), 1407 $current = forceCreateModelElementAndSet(
635 $current); 1408 grammarAccess.getExponentialExpressionAccess().getBinaryExpressionLeftAction_1_0(),
636 } 1409 $current);
637 ) 1410 }
1411 )
1412 (
1413 (
1414 {
1415 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getOpExponentialOpEnumRuleCall_1_1_0());
1416 }
1417 lv_op_2_0=ruleExponentialOp
1418 {
1419 if ($current==null) {
1420 $current = createModelElementForParent(grammarAccess.getExponentialExpressionRule());
1421 }
1422 set(
1423 $current,
1424 "op",
1425 lv_op_2_0,
1426 "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp");
1427 afterParserOrEnumRuleCall();
1428 }
1429 )
1430 )
1431 (
1432 (
1433 {
1434 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0());
1435 }
1436 lv_right_3_0=ruleExponentialExpression
1437 {
1438 if ($current==null) {
1439 $current = createModelElementForParent(grammarAccess.getExponentialExpressionRule());
1440 }
1441 set(
1442 $current,
1443 "right",
1444 lv_right_3_0,
1445 "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression");
1446 afterParserOrEnumRuleCall();
1447 }
1448 )
1449 )
1450 )?
638 ) 1451 )
639; 1452;
640 1453
641// Entry rule entryRuleEqualsSymbol 1454// Entry rule entryRuleUnaryExpression
642entryRuleEqualsSymbol returns [EObject current=null]: 1455entryRuleUnaryExpression returns [EObject current=null]:
643 { newCompositeNode(grammarAccess.getEqualsSymbolRule()); } 1456 { newCompositeNode(grammarAccess.getUnaryExpressionRule()); }
644 iv_ruleEqualsSymbol=ruleEqualsSymbol 1457 iv_ruleUnaryExpression=ruleUnaryExpression
645 { $current=$iv_ruleEqualsSymbol.current; } 1458 { $current=$iv_ruleUnaryExpression.current; }
646 EOF; 1459 EOF;
647 1460
648// Rule EqualsSymbol 1461// Rule UnaryExpression
649ruleEqualsSymbol returns [EObject current=null] 1462ruleUnaryExpression returns [EObject current=null]
650@init { 1463@init {
651 enterRule(); 1464 enterRule();
652} 1465}
@@ -654,29 +1467,74 @@ ruleEqualsSymbol returns [EObject current=null]
654 leaveRule(); 1467 leaveRule();
655}: 1468}:
656 ( 1469 (
657 otherlv_0='equals'
658 { 1470 {
659 newLeafNode(otherlv_0, grammarAccess.getEqualsSymbolAccess().getEqualsKeyword_0()); 1471 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getAggregationExpressionParserRuleCall_0());
660 } 1472 }
1473 this_AggregationExpression_0=ruleAggregationExpression
1474 {
1475 $current = $this_AggregationExpression_0.current;
1476 afterParserOrEnumRuleCall();
1477 }
1478 |
661 ( 1479 (
662 { 1480 (
663 $current = forceCreateModelElement( 1481 {
664 grammarAccess.getEqualsSymbolAccess().getEqualsSymbolAction_1(), 1482 $current = forceCreateModelElement(
665 $current); 1483 grammarAccess.getUnaryExpressionAccess().getUnaryExpressionAction_1_0(),
666 } 1484 $current);
1485 }
1486 )
1487 (
1488 (
1489 {
1490 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0());
1491 }
1492 lv_op_2_0=ruleUnaryOp
1493 {
1494 if ($current==null) {
1495 $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
1496 }
1497 set(
1498 $current,
1499 "op",
1500 lv_op_2_0,
1501 "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp");
1502 afterParserOrEnumRuleCall();
1503 }
1504 )
1505 )
1506 (
1507 (
1508 {
1509 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0());
1510 }
1511 lv_body_3_0=ruleAggregationExpression
1512 {
1513 if ($current==null) {
1514 $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
1515 }
1516 set(
1517 $current,
1518 "body",
1519 lv_body_3_0,
1520 "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression");
1521 afterParserOrEnumRuleCall();
1522 }
1523 )
1524 )
667 ) 1525 )
668 ) 1526 )
669; 1527;
670 1528
671// Entry rule entryRuleDataSymbol 1529// Entry rule entryRuleAggregationExpression
672entryRuleDataSymbol returns [EObject current=null]: 1530entryRuleAggregationExpression returns [EObject current=null]:
673 { newCompositeNode(grammarAccess.getDataSymbolRule()); } 1531 { newCompositeNode(grammarAccess.getAggregationExpressionRule()); }
674 iv_ruleDataSymbol=ruleDataSymbol 1532 iv_ruleAggregationExpression=ruleAggregationExpression
675 { $current=$iv_ruleDataSymbol.current; } 1533 { $current=$iv_ruleAggregationExpression.current; }
676 EOF; 1534 EOF;
677 1535
678// Rule DataSymbol 1536// Rule AggregationExpression
679ruleDataSymbol returns [EObject current=null] 1537ruleAggregationExpression returns [EObject current=null]
680@init { 1538@init {
681 enterRule(); 1539 enterRule();
682} 1540}
@@ -685,52 +1543,93 @@ ruleDataSymbol returns [EObject current=null]
685}: 1543}:
686 ( 1544 (
687 { 1545 {
688 newCompositeNode(grammarAccess.getDataSymbolAccess().getBooleanSymbolParserRuleCall_0()); 1546 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAtomicExpressionParserRuleCall_0());
689 } 1547 }
690 this_BooleanSymbol_0=ruleBooleanSymbol 1548 this_AtomicExpression_0=ruleAtomicExpression
691 { 1549 {
692 $current = $this_BooleanSymbol_0.current; 1550 $current = $this_AtomicExpression_0.current;
693 afterParserOrEnumRuleCall(); 1551 afterParserOrEnumRuleCall();
694 } 1552 }
695 | 1553 |
696 { 1554 {
697 newCompositeNode(grammarAccess.getDataSymbolAccess().getIntegerSymbolParserRuleCall_1()); 1555 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getCountParserRuleCall_1());
698 } 1556 }
699 this_IntegerSymbol_1=ruleIntegerSymbol 1557 this_Count_1=ruleCount
700 { 1558 {
701 $current = $this_IntegerSymbol_1.current; 1559 $current = $this_Count_1.current;
702 afterParserOrEnumRuleCall(); 1560 afterParserOrEnumRuleCall();
703 } 1561 }
704 | 1562 |
705 { 1563 {
706 newCompositeNode(grammarAccess.getDataSymbolAccess().getRealSymbolParserRuleCall_2()); 1564 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAggregationParserRuleCall_2());
707 } 1565 }
708 this_RealSymbol_2=ruleRealSymbol 1566 this_Aggregation_2=ruleAggregation
709 { 1567 {
710 $current = $this_RealSymbol_2.current; 1568 $current = $this_Aggregation_2.current;
711 afterParserOrEnumRuleCall(); 1569 afterParserOrEnumRuleCall();
712 } 1570 }
713 | 1571 )
1572;
1573
1574// Entry rule entryRuleCount
1575entryRuleCount returns [EObject current=null]:
1576 { newCompositeNode(grammarAccess.getCountRule()); }
1577 iv_ruleCount=ruleCount
1578 { $current=$iv_ruleCount.current; }
1579 EOF;
1580
1581// Rule Count
1582ruleCount returns [EObject current=null]
1583@init {
1584 enterRule();
1585}
1586@after {
1587 leaveRule();
1588}:
1589 (
1590 otherlv_0='count'
714 { 1591 {
715 newCompositeNode(grammarAccess.getDataSymbolAccess().getStringSymbolParserRuleCall_3()); 1592 newLeafNode(otherlv_0, grammarAccess.getCountAccess().getCountKeyword_0());
716 } 1593 }
717 this_StringSymbol_3=ruleStringSymbol 1594 otherlv_1='{'
718 { 1595 {
719 $current = $this_StringSymbol_3.current; 1596 newLeafNode(otherlv_1, grammarAccess.getCountAccess().getLeftCurlyBracketKeyword_1());
720 afterParserOrEnumRuleCall(); 1597 }
1598 (
1599 (
1600 {
1601 newCompositeNode(grammarAccess.getCountAccess().getBodyExpressionParserRuleCall_2_0());
1602 }
1603 lv_body_2_0=ruleExpression
1604 {
1605 if ($current==null) {
1606 $current = createModelElementForParent(grammarAccess.getCountRule());
1607 }
1608 set(
1609 $current,
1610 "body",
1611 lv_body_2_0,
1612 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1613 afterParserOrEnumRuleCall();
1614 }
1615 )
1616 )
1617 otherlv_3='}'
1618 {
1619 newLeafNode(otherlv_3, grammarAccess.getCountAccess().getRightCurlyBracketKeyword_3());
721 } 1620 }
722 ) 1621 )
723; 1622;
724 1623
725// Entry rule entryRuleBooleanSymbol 1624// Entry rule entryRuleAggregation
726entryRuleBooleanSymbol returns [EObject current=null]: 1625entryRuleAggregation returns [EObject current=null]:
727 { newCompositeNode(grammarAccess.getBooleanSymbolRule()); } 1626 { newCompositeNode(grammarAccess.getAggregationRule()); }
728 iv_ruleBooleanSymbol=ruleBooleanSymbol 1627 iv_ruleAggregation=ruleAggregation
729 { $current=$iv_ruleBooleanSymbol.current; } 1628 { $current=$iv_ruleAggregation.current; }
730 EOF; 1629 EOF;
731 1630
732// Rule BooleanSymbol 1631// Rule Aggregation
733ruleBooleanSymbol returns [EObject current=null] 1632ruleAggregation returns [EObject current=null]
734@init { 1633@init {
735 enterRule(); 1634 enterRule();
736} 1635}
@@ -738,29 +1637,87 @@ ruleBooleanSymbol returns [EObject current=null]
738 leaveRule(); 1637 leaveRule();
739}: 1638}:
740 ( 1639 (
741 otherlv_0='bool' 1640 (
1641 (
1642 {
1643 newCompositeNode(grammarAccess.getAggregationAccess().getOpAggregationOpEnumRuleCall_0_0());
1644 }
1645 lv_op_0_0=ruleAggregationOp
1646 {
1647 if ($current==null) {
1648 $current = createModelElementForParent(grammarAccess.getAggregationRule());
1649 }
1650 set(
1651 $current,
1652 "op",
1653 lv_op_0_0,
1654 "org.eclipse.viatra.solver.language.SolverLanguage.AggregationOp");
1655 afterParserOrEnumRuleCall();
1656 }
1657 )
1658 )
1659 otherlv_1='{'
742 { 1660 {
743 newLeafNode(otherlv_0, grammarAccess.getBooleanSymbolAccess().getBoolKeyword_0()); 1661 newLeafNode(otherlv_1, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_1());
744 } 1662 }
745 ( 1663 (
746 { 1664 (
747 $current = forceCreateModelElement( 1665 {
748 grammarAccess.getBooleanSymbolAccess().getBooleanSymbolAction_1(), 1666 newCompositeNode(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_2_0());
749 $current); 1667 }
750 } 1668 lv_body_2_0=ruleExpression
1669 {
1670 if ($current==null) {
1671 $current = createModelElementForParent(grammarAccess.getAggregationRule());
1672 }
1673 set(
1674 $current,
1675 "body",
1676 lv_body_2_0,
1677 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1678 afterParserOrEnumRuleCall();
1679 }
1680 )
1681 )
1682 otherlv_3='|'
1683 {
1684 newLeafNode(otherlv_3, grammarAccess.getAggregationAccess().getVerticalLineKeyword_3());
1685 }
1686 (
1687 (
1688 {
1689 newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0());
1690 }
1691 lv_condition_4_0=ruleExpression
1692 {
1693 if ($current==null) {
1694 $current = createModelElementForParent(grammarAccess.getAggregationRule());
1695 }
1696 set(
1697 $current,
1698 "condition",
1699 lv_condition_4_0,
1700 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1701 afterParserOrEnumRuleCall();
1702 }
1703 )
751 ) 1704 )
1705 otherlv_5='}'
1706 {
1707 newLeafNode(otherlv_5, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5());
1708 }
752 ) 1709 )
753; 1710;
754 1711
755// Entry rule entryRuleIntegerSymbol 1712// Entry rule entryRuleAtomicExpression
756entryRuleIntegerSymbol returns [EObject current=null]: 1713entryRuleAtomicExpression returns [EObject current=null]:
757 { newCompositeNode(grammarAccess.getIntegerSymbolRule()); } 1714 { newCompositeNode(grammarAccess.getAtomicExpressionRule()); }
758 iv_ruleIntegerSymbol=ruleIntegerSymbol 1715 iv_ruleAtomicExpression=ruleAtomicExpression
759 { $current=$iv_ruleIntegerSymbol.current; } 1716 { $current=$iv_ruleAtomicExpression.current; }
760 EOF; 1717 EOF;
761 1718
762// Rule IntegerSymbol 1719// Rule AtomicExpression
763ruleIntegerSymbol returns [EObject current=null] 1720ruleAtomicExpression returns [EObject current=null]
764@init { 1721@init {
765 enterRule(); 1722 enterRule();
766} 1723}
@@ -768,29 +1725,94 @@ ruleIntegerSymbol returns [EObject current=null]
768 leaveRule(); 1725 leaveRule();
769}: 1726}:
770 ( 1727 (
771 otherlv_0='int' 1728 (
1729 {
1730 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceParserRuleCall_0_0());
1731 }
1732 this_Reference_0=ruleReference
1733 {
1734 $current = $this_Reference_0.current;
1735 afterParserOrEnumRuleCall();
1736 }
1737 (
1738 (
1739 {
1740 $current = forceCreateModelElementAndSet(
1741 grammarAccess.getAtomicExpressionAccess().getCallFunctorAction_0_1_0(),
1742 $current);
1743 }
1744 )
1745 (
1746 ('(')=>
1747 (
1748 {
1749 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getArgumentListArgumentListParserRuleCall_0_1_1_0());
1750 }
1751 lv_argumentList_2_0=ruleArgumentList
1752 {
1753 if ($current==null) {
1754 $current = createModelElementForParent(grammarAccess.getAtomicExpressionRule());
1755 }
1756 set(
1757 $current,
1758 "argumentList",
1759 lv_argumentList_2_0,
1760 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
1761 afterParserOrEnumRuleCall();
1762 }
1763 )
1764 )
1765 )?
1766 )
1767 |
1768 {
1769 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIntervalParserRuleCall_1());
1770 }
1771 this_Interval_3=ruleInterval
772 { 1772 {
773 newLeafNode(otherlv_0, grammarAccess.getIntegerSymbolAccess().getIntKeyword_0()); 1773 $current = $this_Interval_3.current;
1774 afterParserOrEnumRuleCall();
774 } 1775 }
1776 |
1777 {
1778 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralParserRuleCall_2());
1779 }
1780 this_Literal_4=ruleLiteral
1781 {
1782 $current = $this_Literal_4.current;
1783 afterParserOrEnumRuleCall();
1784 }
1785 |
775 ( 1786 (
1787 otherlv_5='('
776 { 1788 {
777 $current = forceCreateModelElement( 1789 newLeafNode(otherlv_5, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_3_0());
778 grammarAccess.getIntegerSymbolAccess().getIntegerSymbolAction_1(), 1790 }
779 $current); 1791 {
1792 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_3_1());
1793 }
1794 this_Expression_6=ruleExpression
1795 {
1796 $current = $this_Expression_6.current;
1797 afterParserOrEnumRuleCall();
1798 }
1799 otherlv_7=')'
1800 {
1801 newLeafNode(otherlv_7, grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_3_2());
780 } 1802 }
781 ) 1803 )
782 ) 1804 )
783; 1805;
784 1806
785// Entry rule entryRuleRealSymbol 1807// Entry rule entryRuleCall
786entryRuleRealSymbol returns [EObject current=null]: 1808entryRuleCall returns [EObject current=null]:
787 { newCompositeNode(grammarAccess.getRealSymbolRule()); } 1809 { newCompositeNode(grammarAccess.getCallRule()); }
788 iv_ruleRealSymbol=ruleRealSymbol 1810 iv_ruleCall=ruleCall
789 { $current=$iv_ruleRealSymbol.current; } 1811 { $current=$iv_ruleCall.current; }
790 EOF; 1812 EOF;
791 1813
792// Rule RealSymbol 1814// Rule Call
793ruleRealSymbol returns [EObject current=null] 1815ruleCall returns [EObject current=null]
794@init { 1816@init {
795 enterRule(); 1817 enterRule();
796} 1818}
@@ -798,29 +1820,95 @@ ruleRealSymbol returns [EObject current=null]
798 leaveRule(); 1820 leaveRule();
799}: 1821}:
800 ( 1822 (
801 otherlv_0='real'
802 {
803 newLeafNode(otherlv_0, grammarAccess.getRealSymbolAccess().getRealKeyword_0());
804 }
805 ( 1823 (
806 { 1824 (
807 $current = forceCreateModelElement( 1825 {
808 grammarAccess.getRealSymbolAccess().getRealSymbolAction_1(), 1826 newCompositeNode(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0());
809 $current); 1827 }
810 } 1828 lv_functor_0_0=ruleReference
1829 {
1830 if ($current==null) {
1831 $current = createModelElementForParent(grammarAccess.getCallRule());
1832 }
1833 set(
1834 $current,
1835 "functor",
1836 lv_functor_0_0,
1837 "org.eclipse.viatra.solver.language.SolverLanguage.Reference");
1838 afterParserOrEnumRuleCall();
1839 }
1840 )
1841 )
1842 (
1843 (
1844 (
1845 lv_transitiveClosure_1_0=RULE_STAR
1846 {
1847 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getCallAccess().getTransitiveClosureSTARTerminalRuleCall_1_0_0());
1848 }
1849 {
1850 if ($current==null) {
1851 $current = createModelElement(grammarAccess.getCallRule());
1852 }
1853 setWithLastConsumed(
1854 $current,
1855 "transitiveClosure",
1856 true,
1857 "org.eclipse.viatra.solver.language.SolverLanguage.STAR");
1858 }
1859 )
1860 )
1861 |
1862 (
1863 (
1864 lv_reflexiveTransitiveClosure_2_0=RULE_PLUS
1865 {
1866 newLeafNode(lv_reflexiveTransitiveClosure_2_0, grammarAccess.getCallAccess().getReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0());
1867 }
1868 {
1869 if ($current==null) {
1870 $current = createModelElement(grammarAccess.getCallRule());
1871 }
1872 setWithLastConsumed(
1873 $current,
1874 "reflexiveTransitiveClosure",
1875 true,
1876 "org.eclipse.viatra.solver.language.SolverLanguage.PLUS");
1877 }
1878 )
1879 )
1880 )?
1881 (
1882 (
1883 {
1884 newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_2_0());
1885 }
1886 lv_argumentList_3_0=ruleArgumentList
1887 {
1888 if ($current==null) {
1889 $current = createModelElementForParent(grammarAccess.getCallRule());
1890 }
1891 set(
1892 $current,
1893 "argumentList",
1894 lv_argumentList_3_0,
1895 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
1896 afterParserOrEnumRuleCall();
1897 }
1898 )
811 ) 1899 )
812 ) 1900 )
813; 1901;
814 1902
815// Entry rule entryRuleStringSymbol 1903// Entry rule entryRuleArgumentList
816entryRuleStringSymbol returns [EObject current=null]: 1904entryRuleArgumentList returns [EObject current=null]:
817 { newCompositeNode(grammarAccess.getStringSymbolRule()); } 1905 { newCompositeNode(grammarAccess.getArgumentListRule()); }
818 iv_ruleStringSymbol=ruleStringSymbol 1906 iv_ruleArgumentList=ruleArgumentList
819 { $current=$iv_ruleStringSymbol.current; } 1907 { $current=$iv_ruleArgumentList.current; }
820 EOF; 1908 EOF;
821 1909
822// Rule StringSymbol 1910// Rule ArgumentList
823ruleStringSymbol returns [EObject current=null] 1911ruleArgumentList returns [EObject current=null]
824@init { 1912@init {
825 enterRule(); 1913 enterRule();
826} 1914}
@@ -828,29 +1916,79 @@ ruleStringSymbol returns [EObject current=null]
828 leaveRule(); 1916 leaveRule();
829}: 1917}:
830 ( 1918 (
831 otherlv_0='string'
832 {
833 newLeafNode(otherlv_0, grammarAccess.getStringSymbolAccess().getStringKeyword_0());
834 }
835 ( 1919 (
836 { 1920 {
837 $current = forceCreateModelElement( 1921 $current = forceCreateModelElement(
838 grammarAccess.getStringSymbolAccess().getStringSymbolAction_1(), 1922 grammarAccess.getArgumentListAccess().getArgumentListAction_0(),
839 $current); 1923 $current);
840 } 1924 }
841 ) 1925 )
1926 otherlv_1='('
1927 {
1928 newLeafNode(otherlv_1, grammarAccess.getArgumentListAccess().getLeftParenthesisKeyword_1());
1929 }
1930 (
1931 (
1932 (
1933 {
1934 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_0_0());
1935 }
1936 lv_arguments_2_0=ruleArgument
1937 {
1938 if ($current==null) {
1939 $current = createModelElementForParent(grammarAccess.getArgumentListRule());
1940 }
1941 add(
1942 $current,
1943 "arguments",
1944 lv_arguments_2_0,
1945 "org.eclipse.viatra.solver.language.SolverLanguage.Argument");
1946 afterParserOrEnumRuleCall();
1947 }
1948 )
1949 )
1950 (
1951 otherlv_3=','
1952 {
1953 newLeafNode(otherlv_3, grammarAccess.getArgumentListAccess().getCommaKeyword_2_1_0());
1954 }
1955 (
1956 (
1957 {
1958 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_1_1_0());
1959 }
1960 lv_arguments_4_0=ruleArgument
1961 {
1962 if ($current==null) {
1963 $current = createModelElementForParent(grammarAccess.getArgumentListRule());
1964 }
1965 add(
1966 $current,
1967 "arguments",
1968 lv_arguments_4_0,
1969 "org.eclipse.viatra.solver.language.SolverLanguage.Argument");
1970 afterParserOrEnumRuleCall();
1971 }
1972 )
1973 )
1974 )*
1975 )?
1976 otherlv_5=')'
1977 {
1978 newLeafNode(otherlv_5, grammarAccess.getArgumentListAccess().getRightParenthesisKeyword_3());
1979 }
842 ) 1980 )
843; 1981;
844 1982
845// Entry rule entryRuleComplexObject 1983// Entry rule entryRuleArgument
846entryRuleComplexObject returns [EObject current=null]: 1984entryRuleArgument returns [EObject current=null]:
847 { newCompositeNode(grammarAccess.getComplexObjectRule()); } 1985 { newCompositeNode(grammarAccess.getArgumentRule()); }
848 iv_ruleComplexObject=ruleComplexObject 1986 iv_ruleArgument=ruleArgument
849 { $current=$iv_ruleComplexObject.current; } 1987 { $current=$iv_ruleArgument.current; }
850 EOF; 1988 EOF;
851 1989
852// Rule ComplexObject 1990// Rule Argument
853ruleComplexObject returns [EObject current=null] 1991ruleArgument returns [EObject current=null]
854@init { 1992@init {
855 enterRule(); 1993 enterRule();
856} 1994}
@@ -859,43 +1997,52 @@ ruleComplexObject returns [EObject current=null]
859}: 1997}:
860 ( 1998 (
861 { 1999 {
862 newCompositeNode(grammarAccess.getComplexObjectAccess().getObjectParserRuleCall_0()); 2000 newCompositeNode(grammarAccess.getArgumentAccess().getExpressionArgumentParserRuleCall_0());
863 } 2001 }
864 this_Object_0=ruleObject 2002 this_ExpressionArgument_0=ruleExpressionArgument
865 { 2003 {
866 $current = $this_Object_0.current; 2004 $current = $this_ExpressionArgument_0.current;
867 afterParserOrEnumRuleCall(); 2005 afterParserOrEnumRuleCall();
868 } 2006 }
869 | 2007 |
870 { 2008 {
871 newCompositeNode(grammarAccess.getComplexObjectAccess().getAllInstancesParserRuleCall_1()); 2009 newCompositeNode(grammarAccess.getArgumentAccess().getStarArgumentParserRuleCall_1());
872 } 2010 }
873 this_AllInstances_1=ruleAllInstances 2011 this_StarArgument_1=ruleStarArgument
874 { 2012 {
875 $current = $this_AllInstances_1.current; 2013 $current = $this_StarArgument_1.current;
876 afterParserOrEnumRuleCall(); 2014 afterParserOrEnumRuleCall();
877 } 2015 }
878 | 2016 |
879 { 2017 {
880 newCompositeNode(grammarAccess.getComplexObjectAccess().getAllObjectsParserRuleCall_2()); 2018 newCompositeNode(grammarAccess.getArgumentAccess().getTypedArgumentParserRuleCall_2());
881 } 2019 }
882 this_AllObjects_2=ruleAllObjects 2020 this_TypedArgument_2=ruleTypedArgument
883 { 2021 {
884 $current = $this_AllObjects_2.current; 2022 $current = $this_TypedArgument_2.current;
2023 afterParserOrEnumRuleCall();
2024 }
2025 |
2026 {
2027 newCompositeNode(grammarAccess.getArgumentAccess().getTypedStarArgumentParserRuleCall_3());
2028 }
2029 this_TypedStarArgument_3=ruleTypedStarArgument
2030 {
2031 $current = $this_TypedStarArgument_3.current;
885 afterParserOrEnumRuleCall(); 2032 afterParserOrEnumRuleCall();
886 } 2033 }
887 ) 2034 )
888; 2035;
889 2036
890// Entry rule entryRuleObject 2037// Entry rule entryRuleExpressionArgument
891entryRuleObject returns [EObject current=null]: 2038entryRuleExpressionArgument returns [EObject current=null]:
892 { newCompositeNode(grammarAccess.getObjectRule()); } 2039 { newCompositeNode(grammarAccess.getExpressionArgumentRule()); }
893 iv_ruleObject=ruleObject 2040 iv_ruleExpressionArgument=ruleExpressionArgument
894 { $current=$iv_ruleObject.current; } 2041 { $current=$iv_ruleExpressionArgument.current; }
895 EOF; 2042 EOF;
896 2043
897// Rule Object 2044// Rule ExpressionArgument
898ruleObject returns [EObject current=null] 2045ruleExpressionArgument returns [EObject current=null]
899@init { 2046@init {
900 enterRule(); 2047 enterRule();
901} 2048}
@@ -903,44 +2050,35 @@ ruleObject returns [EObject current=null]
903 leaveRule(); 2050 leaveRule();
904}: 2051}:
905 ( 2052 (
906 { 2053 (
907 newCompositeNode(grammarAccess.getObjectAccess().getNamedObjectParserRuleCall_0()); 2054 {
908 } 2055 newCompositeNode(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0());
909 this_NamedObject_0=ruleNamedObject 2056 }
910 { 2057 lv_body_0_0=ruleComparisonExpression
911 $current = $this_NamedObject_0.current; 2058 {
912 afterParserOrEnumRuleCall(); 2059 if ($current==null) {
913 } 2060 $current = createModelElementForParent(grammarAccess.getExpressionArgumentRule());
914 | 2061 }
915 { 2062 set(
916 newCompositeNode(grammarAccess.getObjectAccess().getUnnamedObjectParserRuleCall_1()); 2063 $current,
917 } 2064 "body",
918 this_UnnamedObject_1=ruleUnnamedObject 2065 lv_body_0_0,
919 { 2066 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression");
920 $current = $this_UnnamedObject_1.current; 2067 afterParserOrEnumRuleCall();
921 afterParserOrEnumRuleCall(); 2068 }
922 } 2069 )
923 |
924 {
925 newCompositeNode(grammarAccess.getObjectAccess().getDataObjectParserRuleCall_2());
926 }
927 this_DataObject_2=ruleDataObject
928 {
929 $current = $this_DataObject_2.current;
930 afterParserOrEnumRuleCall();
931 }
932 ) 2070 )
933; 2071;
934 2072
935// Entry rule entryRuleNamedObject 2073// Entry rule entryRuleStarArgument
936entryRuleNamedObject returns [EObject current=null]: 2074entryRuleStarArgument returns [EObject current=null]:
937 { newCompositeNode(grammarAccess.getNamedObjectRule()); } 2075 { newCompositeNode(grammarAccess.getStarArgumentRule()); }
938 iv_ruleNamedObject=ruleNamedObject 2076 iv_ruleStarArgument=ruleStarArgument
939 { $current=$iv_ruleNamedObject.current; } 2077 { $current=$iv_ruleStarArgument.current; }
940 EOF; 2078 EOF;
941 2079
942// Rule NamedObject 2080// Rule StarArgument
943ruleNamedObject returns [EObject current=null] 2081ruleStarArgument returns [EObject current=null]
944@init { 2082@init {
945 enterRule(); 2083 enterRule();
946} 2084}
@@ -948,44 +2086,119 @@ ruleNamedObject returns [EObject current=null]
948 leaveRule(); 2086 leaveRule();
949}: 2087}:
950 ( 2088 (
951 otherlv_0='\'' 2089 (
2090 {
2091 $current = forceCreateModelElement(
2092 grammarAccess.getStarArgumentAccess().getStarArgumentAction_0(),
2093 $current);
2094 }
2095 )
2096 otherlv_1='*'
952 { 2097 {
953 newLeafNode(otherlv_0, grammarAccess.getNamedObjectAccess().getApostropheKeyword_0()); 2098 newLeafNode(otherlv_1, grammarAccess.getStarArgumentAccess().getAsteriskKeyword_1());
954 } 2099 }
2100 )
2101;
2102
2103// Entry rule entryRuleTypedArgument
2104entryRuleTypedArgument returns [EObject current=null]:
2105 { newCompositeNode(grammarAccess.getTypedArgumentRule()); }
2106 iv_ruleTypedArgument=ruleTypedArgument
2107 { $current=$iv_ruleTypedArgument.current; }
2108 EOF;
2109
2110// Rule TypedArgument
2111ruleTypedArgument returns [EObject current=null]
2112@init {
2113 enterRule();
2114}
2115@after {
2116 leaveRule();
2117}:
2118 (
955 ( 2119 (
956 ( 2120 (
957 lv_name_1_0=RULE_ID
958 { 2121 {
959 newLeafNode(lv_name_1_0, grammarAccess.getNamedObjectAccess().getNameIDTerminalRuleCall_1_0()); 2122 if ($current==null) {
2123 $current = createModelElement(grammarAccess.getTypedArgumentRule());
2124 }
960 } 2125 }
961 { 2126 {
2127 newCompositeNode(grammarAccess.getTypedArgumentAccess().getTypeNamedElementCrossReference_0_0());
2128 }
2129 ruleQualifiedName
2130 {
2131 afterParserOrEnumRuleCall();
2132 }
2133 )
2134 )
2135 (
2136 (
2137 {
962 if ($current==null) { 2138 if ($current==null) {
963 $current = createModelElement(grammarAccess.getNamedObjectRule()); 2139 $current = createModelElement(grammarAccess.getTypedArgumentRule());
964 } 2140 }
965 setWithLastConsumed( 2141 }
966 $current, 2142 {
967 "name", 2143 newCompositeNode(grammarAccess.getTypedArgumentAccess().getVariableNamedElementCrossReference_1_0());
968 lv_name_1_0, 2144 }
969 "org.eclipse.xtext.common.Terminals.ID"); 2145 ruleQualifiedName
2146 {
2147 afterParserOrEnumRuleCall();
970 } 2148 }
971 ) 2149 )
972 ) 2150 )
973 otherlv_2='\'' 2151 )
2152;
2153
2154// Entry rule entryRuleTypedStarArgument
2155entryRuleTypedStarArgument returns [EObject current=null]:
2156 { newCompositeNode(grammarAccess.getTypedStarArgumentRule()); }
2157 iv_ruleTypedStarArgument=ruleTypedStarArgument
2158 { $current=$iv_ruleTypedStarArgument.current; }
2159 EOF;
2160
2161// Rule TypedStarArgument
2162ruleTypedStarArgument returns [EObject current=null]
2163@init {
2164 enterRule();
2165}
2166@after {
2167 leaveRule();
2168}:
2169 (
2170 (
2171 (
2172 {
2173 if ($current==null) {
2174 $current = createModelElement(grammarAccess.getTypedStarArgumentRule());
2175 }
2176 }
2177 {
2178 newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementCrossReference_0_0());
2179 }
2180 ruleQualifiedName
2181 {
2182 afterParserOrEnumRuleCall();
2183 }
2184 )
2185 )
2186 otherlv_1='*'
974 { 2187 {
975 newLeafNode(otherlv_2, grammarAccess.getNamedObjectAccess().getApostropheKeyword_2()); 2188 newLeafNode(otherlv_1, grammarAccess.getTypedStarArgumentAccess().getAsteriskKeyword_1());
976 } 2189 }
977 ) 2190 )
978; 2191;
979 2192
980// Entry rule entryRuleUnnamedObject 2193// Entry rule entryRuleReference
981entryRuleUnnamedObject returns [EObject current=null]: 2194entryRuleReference returns [EObject current=null]:
982 { newCompositeNode(grammarAccess.getUnnamedObjectRule()); } 2195 { newCompositeNode(grammarAccess.getReferenceRule()); }
983 iv_ruleUnnamedObject=ruleUnnamedObject 2196 iv_ruleReference=ruleReference
984 { $current=$iv_ruleUnnamedObject.current; } 2197 { $current=$iv_ruleReference.current; }
985 EOF; 2198 EOF;
986 2199
987// Rule UnnamedObject 2200// Rule Reference
988ruleUnnamedObject returns [EObject current=null] 2201ruleReference returns [EObject current=null]
989@init { 2202@init {
990 enterRule(); 2203 enterRule();
991} 2204}
@@ -994,33 +2207,31 @@ ruleUnnamedObject returns [EObject current=null]
994}: 2207}:
995 ( 2208 (
996 ( 2209 (
997 lv_name_0_0=RULE_ID
998 {
999 newLeafNode(lv_name_0_0, grammarAccess.getUnnamedObjectAccess().getNameIDTerminalRuleCall_0());
1000 }
1001 { 2210 {
1002 if ($current==null) { 2211 if ($current==null) {
1003 $current = createModelElement(grammarAccess.getUnnamedObjectRule()); 2212 $current = createModelElement(grammarAccess.getReferenceRule());
1004 } 2213 }
1005 setWithLastConsumed( 2214 }
1006 $current, 2215 {
1007 "name", 2216 newCompositeNode(grammarAccess.getReferenceAccess().getReferredNamedElementCrossReference_0());
1008 lv_name_0_0, 2217 }
1009 "org.eclipse.xtext.common.Terminals.ID"); 2218 ruleQualifiedName
2219 {
2220 afterParserOrEnumRuleCall();
1010 } 2221 }
1011 ) 2222 )
1012 ) 2223 )
1013; 2224;
1014 2225
1015// Entry rule entryRuleDataObject 2226// Entry rule entryRuleInterval
1016entryRuleDataObject returns [EObject current=null]: 2227entryRuleInterval returns [EObject current=null]:
1017 { newCompositeNode(grammarAccess.getDataObjectRule()); } 2228 { newCompositeNode(grammarAccess.getIntervalRule()); }
1018 iv_ruleDataObject=ruleDataObject 2229 iv_ruleInterval=ruleInterval
1019 { $current=$iv_ruleDataObject.current; } 2230 { $current=$iv_ruleInterval.current; }
1020 EOF; 2231 EOF;
1021 2232
1022// Rule DataObject 2233// Rule Interval
1023ruleDataObject returns [EObject current=null] 2234ruleInterval returns [EObject current=null]
1024@init { 2235@init {
1025 enterRule(); 2236 enterRule();
1026} 2237}
@@ -1028,53 +2239,131 @@ ruleDataObject returns [EObject current=null]
1028 leaveRule(); 2239 leaveRule();
1029}: 2240}:
1030 ( 2241 (
2242 otherlv_0='['
2243 {
2244 newLeafNode(otherlv_0, grammarAccess.getIntervalAccess().getLeftSquareBracketKeyword_0());
2245 }
2246 (
2247 (
2248 {
2249 newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0());
2250 }
2251 lv_lowerBound_1_0=ruleExpression
2252 {
2253 if ($current==null) {
2254 $current = createModelElementForParent(grammarAccess.getIntervalRule());
2255 }
2256 set(
2257 $current,
2258 "lowerBound",
2259 lv_lowerBound_1_0,
2260 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2261 afterParserOrEnumRuleCall();
2262 }
2263 )
2264 )
2265 otherlv_2='..'
1031 { 2266 {
1032 newCompositeNode(grammarAccess.getDataObjectAccess().getBooleanObjectParserRuleCall_0()); 2267 newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2());
1033 } 2268 }
1034 this_BooleanObject_0=ruleBooleanObject 2269 (
2270 (
2271 {
2272 newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0());
2273 }
2274 lv_upperBound_3_0=ruleExpression
2275 {
2276 if ($current==null) {
2277 $current = createModelElementForParent(grammarAccess.getIntervalRule());
2278 }
2279 set(
2280 $current,
2281 "upperBound",
2282 lv_upperBound_3_0,
2283 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2284 afterParserOrEnumRuleCall();
2285 }
2286 )
2287 )
2288 otherlv_4=']'
1035 { 2289 {
1036 $current = $this_BooleanObject_0.current; 2290 newLeafNode(otherlv_4, grammarAccess.getIntervalAccess().getRightSquareBracketKeyword_4());
2291 }
2292 )
2293;
2294
2295// Entry rule entryRuleLiteral
2296entryRuleLiteral returns [EObject current=null]:
2297 { newCompositeNode(grammarAccess.getLiteralRule()); }
2298 iv_ruleLiteral=ruleLiteral
2299 { $current=$iv_ruleLiteral.current; }
2300 EOF;
2301
2302// Rule Literal
2303ruleLiteral returns [EObject current=null]
2304@init {
2305 enterRule();
2306}
2307@after {
2308 leaveRule();
2309}:
2310 (
2311 {
2312 newCompositeNode(grammarAccess.getLiteralAccess().getLogicLiteralParserRuleCall_0());
2313 }
2314 this_LogicLiteral_0=ruleLogicLiteral
2315 {
2316 $current = $this_LogicLiteral_0.current;
2317 afterParserOrEnumRuleCall();
2318 }
2319 |
2320 {
2321 newCompositeNode(grammarAccess.getLiteralAccess().getNumericLiteralParserRuleCall_1());
2322 }
2323 this_NumericLiteral_1=ruleNumericLiteral
2324 {
2325 $current = $this_NumericLiteral_1.current;
1037 afterParserOrEnumRuleCall(); 2326 afterParserOrEnumRuleCall();
1038 } 2327 }
1039 | 2328 |
1040 { 2329 {
1041 newCompositeNode(grammarAccess.getDataObjectAccess().getIntObjectParserRuleCall_1()); 2330 newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_2());
1042 } 2331 }
1043 this_IntObject_1=ruleIntObject 2332 this_InfinityLiteral_2=ruleInfinityLiteral
1044 { 2333 {
1045 $current = $this_IntObject_1.current; 2334 $current = $this_InfinityLiteral_2.current;
1046 afterParserOrEnumRuleCall(); 2335 afterParserOrEnumRuleCall();
1047 } 2336 }
1048 | 2337 |
1049 { 2338 {
1050 newCompositeNode(grammarAccess.getDataObjectAccess().getRealObjectParserRuleCall_2()); 2339 newCompositeNode(grammarAccess.getLiteralAccess().getEmptyIntervalLiteralParserRuleCall_3());
1051 } 2340 }
1052 this_RealObject_2=ruleRealObject 2341 this_EmptyIntervalLiteral_3=ruleEmptyIntervalLiteral
1053 { 2342 {
1054 $current = $this_RealObject_2.current; 2343 $current = $this_EmptyIntervalLiteral_3.current;
1055 afterParserOrEnumRuleCall(); 2344 afterParserOrEnumRuleCall();
1056 } 2345 }
1057 | 2346 |
1058 { 2347 {
1059 newCompositeNode(grammarAccess.getDataObjectAccess().getStringObjectParserRuleCall_3()); 2348 newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_4());
1060 } 2349 }
1061 this_StringObject_3=ruleStringObject 2350 this_StringLiteral_4=ruleStringLiteral
1062 { 2351 {
1063 $current = $this_StringObject_3.current; 2352 $current = $this_StringLiteral_4.current;
1064 afterParserOrEnumRuleCall(); 2353 afterParserOrEnumRuleCall();
1065 } 2354 }
1066 ) 2355 )
1067; 2356;
1068 2357
1069// Entry rule entryRuleBooleanObject 2358// Entry rule entryRuleLogicLiteral
1070entryRuleBooleanObject returns [EObject current=null]: 2359entryRuleLogicLiteral returns [EObject current=null]:
1071 { newCompositeNode(grammarAccess.getBooleanObjectRule()); } 2360 { newCompositeNode(grammarAccess.getLogicLiteralRule()); }
1072 iv_ruleBooleanObject=ruleBooleanObject 2361 iv_ruleLogicLiteral=ruleLogicLiteral
1073 { $current=$iv_ruleBooleanObject.current; } 2362 { $current=$iv_ruleLogicLiteral.current; }
1074 EOF; 2363 EOF;
1075 2364
1076// Rule BooleanObject 2365// Rule LogicLiteral
1077ruleBooleanObject returns [EObject current=null] 2366ruleLogicLiteral returns [EObject current=null]
1078@init { 2367@init {
1079 enterRule(); 2368 enterRule();
1080} 2369}
@@ -1084,33 +2373,33 @@ ruleBooleanObject returns [EObject current=null]
1084 ( 2373 (
1085 ( 2374 (
1086 { 2375 {
1087 newCompositeNode(grammarAccess.getBooleanObjectAccess().getValueBooleanValueParserRuleCall_0()); 2376 newCompositeNode(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0());
1088 } 2377 }
1089 lv_value_0_0=ruleBooleanValue 2378 lv_value_0_0=ruleLogicValue
1090 { 2379 {
1091 if ($current==null) { 2380 if ($current==null) {
1092 $current = createModelElementForParent(grammarAccess.getBooleanObjectRule()); 2381 $current = createModelElementForParent(grammarAccess.getLogicLiteralRule());
1093 } 2382 }
1094 set( 2383 set(
1095 $current, 2384 $current,
1096 "value", 2385 "value",
1097 lv_value_0_0, 2386 lv_value_0_0,
1098 "org.eclipse.viatra.solver.language.SolverLanguage.BooleanValue"); 2387 "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue");
1099 afterParserOrEnumRuleCall(); 2388 afterParserOrEnumRuleCall();
1100 } 2389 }
1101 ) 2390 )
1102 ) 2391 )
1103; 2392;
1104 2393
1105// Entry rule entryRuleIntObject 2394// Entry rule entryRuleNumericLiteral
1106entryRuleIntObject returns [EObject current=null]: 2395entryRuleNumericLiteral returns [EObject current=null]:
1107 { newCompositeNode(grammarAccess.getIntObjectRule()); } 2396 { newCompositeNode(grammarAccess.getNumericLiteralRule()); }
1108 iv_ruleIntObject=ruleIntObject 2397 iv_ruleNumericLiteral=ruleNumericLiteral
1109 { $current=$iv_ruleIntObject.current; } 2398 { $current=$iv_ruleNumericLiteral.current; }
1110 EOF; 2399 EOF;
1111 2400
1112// Rule IntObject 2401// Rule NumericLiteral
1113ruleIntObject returns [EObject current=null] 2402ruleNumericLiteral returns [EObject current=null]
1114@init { 2403@init {
1115 enterRule(); 2404 enterRule();
1116} 2405}
@@ -1120,33 +2409,33 @@ ruleIntObject returns [EObject current=null]
1120 ( 2409 (
1121 ( 2410 (
1122 { 2411 {
1123 newCompositeNode(grammarAccess.getIntObjectAccess().getValueINTLiteralParserRuleCall_0()); 2412 newCompositeNode(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0());
1124 } 2413 }
1125 lv_value_0_0=ruleINTLiteral 2414 lv_value_0_0=ruleReal
1126 { 2415 {
1127 if ($current==null) { 2416 if ($current==null) {
1128 $current = createModelElementForParent(grammarAccess.getIntObjectRule()); 2417 $current = createModelElementForParent(grammarAccess.getNumericLiteralRule());
1129 } 2418 }
1130 set( 2419 set(
1131 $current, 2420 $current,
1132 "value", 2421 "value",
1133 lv_value_0_0, 2422 lv_value_0_0,
1134 "org.eclipse.viatra.solver.language.SolverLanguage.INTLiteral"); 2423 "org.eclipse.viatra.solver.language.SolverLanguage.Real");
1135 afterParserOrEnumRuleCall(); 2424 afterParserOrEnumRuleCall();
1136 } 2425 }
1137 ) 2426 )
1138 ) 2427 )
1139; 2428;
1140 2429
1141// Entry rule entryRuleRealObject 2430// Entry rule entryRuleInfinityLiteral
1142entryRuleRealObject returns [EObject current=null]: 2431entryRuleInfinityLiteral returns [EObject current=null]:
1143 { newCompositeNode(grammarAccess.getRealObjectRule()); } 2432 { newCompositeNode(grammarAccess.getInfinityLiteralRule()); }
1144 iv_ruleRealObject=ruleRealObject 2433 iv_ruleInfinityLiteral=ruleInfinityLiteral
1145 { $current=$iv_ruleRealObject.current; } 2434 { $current=$iv_ruleInfinityLiteral.current; }
1146 EOF; 2435 EOF;
1147 2436
1148// Rule RealObject 2437// Rule InfinityLiteral
1149ruleRealObject returns [EObject current=null] 2438ruleInfinityLiteral returns [EObject current=null]
1150@init { 2439@init {
1151 enterRule(); 2440 enterRule();
1152} 2441}
@@ -1156,33 +2445,57 @@ ruleRealObject returns [EObject current=null]
1156 ( 2445 (
1157 ( 2446 (
1158 { 2447 {
1159 newCompositeNode(grammarAccess.getRealObjectAccess().getValueREALLiteralParserRuleCall_0()); 2448 $current = forceCreateModelElement(
2449 grammarAccess.getInfinityLiteralAccess().getInfinityLiteralAction_0(),
2450 $current);
1160 } 2451 }
1161 lv_value_0_0=ruleREALLiteral 2452 )
2453 otherlv_1='inf'
2454 {
2455 newLeafNode(otherlv_1, grammarAccess.getInfinityLiteralAccess().getInfKeyword_1());
2456 }
2457 )
2458;
2459
2460// Entry rule entryRuleEmptyIntervalLiteral
2461entryRuleEmptyIntervalLiteral returns [EObject current=null]:
2462 { newCompositeNode(grammarAccess.getEmptyIntervalLiteralRule()); }
2463 iv_ruleEmptyIntervalLiteral=ruleEmptyIntervalLiteral
2464 { $current=$iv_ruleEmptyIntervalLiteral.current; }
2465 EOF;
2466
2467// Rule EmptyIntervalLiteral
2468ruleEmptyIntervalLiteral returns [EObject current=null]
2469@init {
2470 enterRule();
2471}
2472@after {
2473 leaveRule();
2474}:
2475 (
2476 (
1162 { 2477 {
1163 if ($current==null) { 2478 $current = forceCreateModelElement(
1164 $current = createModelElementForParent(grammarAccess.getRealObjectRule()); 2479 grammarAccess.getEmptyIntervalLiteralAccess().getEmptyIntervalLiteralAction_0(),
1165 } 2480 $current);
1166 set(
1167 $current,
1168 "value",
1169 lv_value_0_0,
1170 "org.eclipse.viatra.solver.language.SolverLanguage.REALLiteral");
1171 afterParserOrEnumRuleCall();
1172 } 2481 }
1173 ) 2482 )
2483 otherlv_1='empty'
2484 {
2485 newLeafNode(otherlv_1, grammarAccess.getEmptyIntervalLiteralAccess().getEmptyKeyword_1());
2486 }
1174 ) 2487 )
1175; 2488;
1176 2489
1177// Entry rule entryRuleStringObject 2490// Entry rule entryRuleStringLiteral
1178entryRuleStringObject returns [EObject current=null]: 2491entryRuleStringLiteral returns [EObject current=null]:
1179 { newCompositeNode(grammarAccess.getStringObjectRule()); } 2492 { newCompositeNode(grammarAccess.getStringLiteralRule()); }
1180 iv_ruleStringObject=ruleStringObject 2493 iv_ruleStringLiteral=ruleStringLiteral
1181 { $current=$iv_ruleStringObject.current; } 2494 { $current=$iv_ruleStringLiteral.current; }
1182 EOF; 2495 EOF;
1183 2496
1184// Rule StringObject 2497// Rule StringLiteral
1185ruleStringObject returns [EObject current=null] 2498ruleStringLiteral returns [EObject current=null]
1186@init { 2499@init {
1187 enterRule(); 2500 enterRule();
1188} 2501}
@@ -1193,11 +2506,11 @@ ruleStringObject returns [EObject current=null]
1193 ( 2506 (
1194 lv_value_0_0=RULE_STRING 2507 lv_value_0_0=RULE_STRING
1195 { 2508 {
1196 newLeafNode(lv_value_0_0, grammarAccess.getStringObjectAccess().getValueSTRINGTerminalRuleCall_0()); 2509 newLeafNode(lv_value_0_0, grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_0());
1197 } 2510 }
1198 { 2511 {
1199 if ($current==null) { 2512 if ($current==null) {
1200 $current = createModelElement(grammarAccess.getStringObjectRule()); 2513 $current = createModelElement(grammarAccess.getStringLiteralRule());
1201 } 2514 }
1202 setWithLastConsumed( 2515 setWithLastConsumed(
1203 $current, 2516 $current,
@@ -1209,15 +2522,15 @@ ruleStringObject returns [EObject current=null]
1209 ) 2522 )
1210; 2523;
1211 2524
1212// Entry rule entryRulePredicate 2525// Entry rule entryRuleClassDefinition
1213entryRulePredicate returns [EObject current=null]: 2526entryRuleClassDefinition returns [EObject current=null]:
1214 { newCompositeNode(grammarAccess.getPredicateRule()); } 2527 { newCompositeNode(grammarAccess.getClassDefinitionRule()); }
1215 iv_rulePredicate=rulePredicate 2528 iv_ruleClassDefinition=ruleClassDefinition
1216 { $current=$iv_rulePredicate.current; } 2529 { $current=$iv_ruleClassDefinition.current; }
1217 EOF; 2530 EOF;
1218 2531
1219// Rule Predicate 2532// Rule ClassDefinition
1220rulePredicate returns [EObject current=null] 2533ruleClassDefinition returns [EObject current=null]
1221@init { 2534@init {
1222 enterRule(); 2535 enterRule();
1223} 2536}
@@ -1227,166 +2540,123 @@ rulePredicate returns [EObject current=null]
1227 ( 2540 (
1228 ( 2541 (
1229 ( 2542 (
1230 lv_isError_0_0='error' 2543 lv_abstract_0_0='abstract'
1231 { 2544 {
1232 newLeafNode(lv_isError_0_0, grammarAccess.getPredicateAccess().getIsErrorErrorKeyword_0_0()); 2545 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDefinitionAccess().getAbstractAbstractKeyword_0_0());
1233 } 2546 }
1234 { 2547 {
1235 if ($current==null) { 2548 if ($current==null) {
1236 $current = createModelElement(grammarAccess.getPredicateRule()); 2549 $current = createModelElement(grammarAccess.getClassDefinitionRule());
1237 } 2550 }
1238 setWithLastConsumed($current, "isError", true, "error"); 2551 setWithLastConsumed($current, "abstract", true, "abstract");
1239 } 2552 }
1240 ) 2553 )
1241 )? 2554 )?
2555 otherlv_1='class'
2556 {
2557 newLeafNode(otherlv_1, grammarAccess.getClassDefinitionAccess().getClassKeyword_1());
2558 }
1242 ( 2559 (
1243 ( 2560 (
2561 lv_name_2_0=RULE_ID
1244 { 2562 {
1245 newCompositeNode(grammarAccess.getPredicateAccess().getSymbolModelSymbolParserRuleCall_1_0()); 2563 newLeafNode(lv_name_2_0, grammarAccess.getClassDefinitionAccess().getNameIDTerminalRuleCall_2_0());
1246 } 2564 }
1247 lv_symbol_1_0=ruleModelSymbol
1248 { 2565 {
1249 if ($current==null) { 2566 if ($current==null) {
1250 $current = createModelElementForParent(grammarAccess.getPredicateRule()); 2567 $current = createModelElement(grammarAccess.getClassDefinitionRule());
1251 } 2568 }
1252 set( 2569 setWithLastConsumed(
1253 $current, 2570 $current,
1254 "symbol", 2571 "name",
1255 lv_symbol_1_0, 2572 lv_name_2_0,
1256 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); 2573 "org.eclipse.xtext.common.Terminals.ID");
1257 afterParserOrEnumRuleCall();
1258 } 2574 }
1259 ) 2575 )
1260 ) 2576 )
1261 ( 2577 (
1262 otherlv_2='(' 2578 otherlv_3='extends'
1263 { 2579 {
1264 newLeafNode(otherlv_2, grammarAccess.getPredicateAccess().getLeftParenthesisKeyword_2_0()); 2580 newLeafNode(otherlv_3, grammarAccess.getClassDefinitionAccess().getExtendsKeyword_3_0());
1265 } 2581 }
1266 ( 2582 (
1267 ( 2583 (
1268 ( 2584 {
1269 { 2585 if ($current==null) {
1270 newCompositeNode(grammarAccess.getPredicateAccess().getParametersParameterParserRuleCall_2_1_0_0()); 2586 $current = createModelElement(grammarAccess.getClassDefinitionRule());
1271 }
1272 lv_parameters_3_0=ruleParameter
1273 {
1274 if ($current==null) {
1275 $current = createModelElementForParent(grammarAccess.getPredicateRule());
1276 }
1277 add(
1278 $current,
1279 "parameters",
1280 lv_parameters_3_0,
1281 "org.eclipse.viatra.solver.language.SolverLanguage.Parameter");
1282 afterParserOrEnumRuleCall();
1283 } 2587 }
1284 ) 2588 }
1285 )
1286 (
1287 otherlv_4=','
1288 { 2589 {
1289 newLeafNode(otherlv_4, grammarAccess.getPredicateAccess().getCommaKeyword_2_1_1_0()); 2590 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_1_0());
1290 } 2591 }
1291 ( 2592 ruleQualifiedName
1292 ( 2593 {
1293 { 2594 afterParserOrEnumRuleCall();
1294 newCompositeNode(grammarAccess.getPredicateAccess().getParametersParameterParserRuleCall_2_1_1_1_0()); 2595 }
1295 } 2596 )
1296 lv_parameters_5_0=ruleParameter 2597 )
1297 {
1298 if ($current==null) {
1299 $current = createModelElementForParent(grammarAccess.getPredicateRule());
1300 }
1301 add(
1302 $current,
1303 "parameters",
1304 lv_parameters_5_0,
1305 "org.eclipse.viatra.solver.language.SolverLanguage.Parameter");
1306 afterParserOrEnumRuleCall();
1307 }
1308 )
1309 )
1310 )*
1311 )?
1312 otherlv_6=')'
1313 {
1314 newLeafNode(otherlv_6, grammarAccess.getPredicateAccess().getRightParenthesisKeyword_2_2());
1315 }
1316 )?
1317 otherlv_7=':-'
1318 {
1319 newLeafNode(otherlv_7, grammarAccess.getPredicateAccess().getColonHyphenMinusKeyword_3());
1320 }
1321 (
1322 otherlv_8='false'
1323 {
1324 newLeafNode(otherlv_8, grammarAccess.getPredicateAccess().getFalseKeyword_4_0());
1325 }
1326 |
1327 ( 2598 (
2599 otherlv_5=','
2600 {
2601 newLeafNode(otherlv_5, grammarAccess.getClassDefinitionAccess().getCommaKeyword_3_2_0());
2602 }
1328 ( 2603 (
1329 ( 2604 (
1330 { 2605 {
1331 newCompositeNode(grammarAccess.getPredicateAccess().getBodiesPatternBodyParserRuleCall_4_1_0_0());
1332 }
1333 lv_bodies_9_0=rulePatternBody
1334 {
1335 if ($current==null) { 2606 if ($current==null) {
1336 $current = createModelElementForParent(grammarAccess.getPredicateRule()); 2607 $current = createModelElement(grammarAccess.getClassDefinitionRule());
1337 } 2608 }
1338 add( 2609 }
1339 $current, 2610 {
1340 "bodies", 2611 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_2_1_0());
1341 lv_bodies_9_0, 2612 }
1342 "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody"); 2613 ruleQualifiedName
2614 {
1343 afterParserOrEnumRuleCall(); 2615 afterParserOrEnumRuleCall();
1344 } 2616 }
1345 ) 2617 )
1346 ) 2618 )
1347 ( 2619 )*
1348 otherlv_10='|' 2620 )?
1349 { 2621 otherlv_7='{'
1350 newLeafNode(otherlv_10, grammarAccess.getPredicateAccess().getVerticalLineKeyword_4_1_1_0()); 2622 {
2623 newLeafNode(otherlv_7, grammarAccess.getClassDefinitionAccess().getLeftCurlyBracketKeyword_4());
2624 }
2625 (
2626 (
2627 {
2628 newCompositeNode(grammarAccess.getClassDefinitionAccess().getMembersMemberDefinitionParserRuleCall_5_0());
2629 }
2630 lv_members_8_0=ruleMemberDefinition
2631 {
2632 if ($current==null) {
2633 $current = createModelElementForParent(grammarAccess.getClassDefinitionRule());
1351 } 2634 }
1352 ( 2635 add(
1353 ( 2636 $current,
1354 { 2637 "members",
1355 newCompositeNode(grammarAccess.getPredicateAccess().getBodiesPatternBodyParserRuleCall_4_1_1_1_0()); 2638 lv_members_8_0,
1356 } 2639 "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition");
1357 lv_bodies_11_0=rulePatternBody 2640 afterParserOrEnumRuleCall();
1358 { 2641 }
1359 if ($current==null) {
1360 $current = createModelElementForParent(grammarAccess.getPredicateRule());
1361 }
1362 add(
1363 $current,
1364 "bodies",
1365 lv_bodies_11_0,
1366 "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody");
1367 afterParserOrEnumRuleCall();
1368 }
1369 )
1370 )
1371 )*
1372 ) 2642 )
1373 ) 2643 )*
1374 otherlv_12='.' 2644 otherlv_9='}'
1375 { 2645 {
1376 newLeafNode(otherlv_12, grammarAccess.getPredicateAccess().getFullStopKeyword_5()); 2646 newLeafNode(otherlv_9, grammarAccess.getClassDefinitionAccess().getRightCurlyBracketKeyword_6());
1377 } 2647 }
1378 ) 2648 )
1379; 2649;
1380 2650
1381// Entry rule entryRuleParameter 2651// Entry rule entryRuleMemberDefinition
1382entryRuleParameter returns [EObject current=null]: 2652entryRuleMemberDefinition returns [EObject current=null]:
1383 { newCompositeNode(grammarAccess.getParameterRule()); } 2653 { newCompositeNode(grammarAccess.getMemberDefinitionRule()); }
1384 iv_ruleParameter=ruleParameter 2654 iv_ruleMemberDefinition=ruleMemberDefinition
1385 { $current=$iv_ruleParameter.current; } 2655 { $current=$iv_ruleMemberDefinition.current; }
1386 EOF; 2656 EOF;
1387 2657
1388// Rule Parameter 2658// Rule MemberDefinition
1389ruleParameter returns [EObject current=null] 2659ruleMemberDefinition returns [EObject current=null]
1390@init { 2660@init {
1391 enterRule(); 2661 enterRule();
1392} 2662}
@@ -1396,60 +2666,156 @@ ruleParameter returns [EObject current=null]
1396 ( 2666 (
1397 ( 2667 (
1398 ( 2668 (
2669 lv_containment_0_0='contains'
2670 {
2671 newLeafNode(lv_containment_0_0, grammarAccess.getMemberDefinitionAccess().getContainmentContainsKeyword_0_0());
2672 }
1399 { 2673 {
1400 newCompositeNode(grammarAccess.getParameterAccess().getVariableVariableParserRuleCall_0_0()); 2674 if ($current==null) {
2675 $current = createModelElement(grammarAccess.getMemberDefinitionRule());
2676 }
2677 setWithLastConsumed($current, "containment", true, "contains");
1401 } 2678 }
1402 lv_variable_0_0=ruleVariable 2679 )
2680 )?
2681 (
2682 (
1403 { 2683 {
1404 if ($current==null) { 2684 if ($current==null) {
1405 $current = createModelElementForParent(grammarAccess.getParameterRule()); 2685 $current = createModelElement(grammarAccess.getMemberDefinitionRule());
2686 }
2687 }
2688 {
2689 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getTypeNamedElementCrossReference_1_0());
2690 }
2691 ruleQualifiedName
2692 {
2693 afterParserOrEnumRuleCall();
2694 }
2695 )
2696 )
2697 (
2698 (
2699 {
2700 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
2701 }
2702 lv_multiplicity_2_0=ruleMultiplicity
2703 {
2704 if ($current==null) {
2705 $current = createModelElementForParent(grammarAccess.getMemberDefinitionRule());
1406 } 2706 }
1407 set( 2707 set(
1408 $current, 2708 $current,
1409 "variable", 2709 "multiplicity",
1410 lv_variable_0_0, 2710 lv_multiplicity_2_0,
1411 "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); 2711 "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity");
1412 afterParserOrEnumRuleCall(); 2712 afterParserOrEnumRuleCall();
1413 } 2713 }
1414 ) 2714 )
2715 )?
2716 (
2717 (
2718 lv_name_3_0=RULE_ID
2719 {
2720 newLeafNode(lv_name_3_0, grammarAccess.getMemberDefinitionAccess().getNameIDTerminalRuleCall_3_0());
2721 }
2722 {
2723 if ($current==null) {
2724 $current = createModelElement(grammarAccess.getMemberDefinitionRule());
2725 }
2726 setWithLastConsumed(
2727 $current,
2728 "name",
2729 lv_name_3_0,
2730 "org.eclipse.xtext.common.Terminals.ID");
2731 }
2732 )
1415 ) 2733 )
1416 ( 2734 (
1417 otherlv_1=':' 2735 otherlv_4='opposite'
1418 { 2736 {
1419 newLeafNode(otherlv_1, grammarAccess.getParameterAccess().getColonKeyword_1_0()); 2737 newLeafNode(otherlv_4, grammarAccess.getMemberDefinitionAccess().getOppositeKeyword_4_0());
1420 } 2738 }
1421 ( 2739 (
1422 ( 2740 (
1423 { 2741 {
1424 newCompositeNode(grammarAccess.getParameterAccess().getTypeSymbolParserRuleCall_1_1_0());
1425 }
1426 lv_type_2_0=ruleSymbol
1427 {
1428 if ($current==null) { 2742 if ($current==null) {
1429 $current = createModelElementForParent(grammarAccess.getParameterRule()); 2743 $current = createModelElement(grammarAccess.getMemberDefinitionRule());
1430 } 2744 }
1431 set( 2745 }
1432 $current, 2746 {
1433 "type", 2747 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getOppositeNamedElementCrossReference_4_1_0());
1434 lv_type_2_0, 2748 }
1435 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); 2749 ruleQualifiedName
2750 {
1436 afterParserOrEnumRuleCall(); 2751 afterParserOrEnumRuleCall();
1437 } 2752 }
1438 ) 2753 )
1439 ) 2754 )
1440 )? 2755 )?
2756 (
2757 otherlv_6=';'
2758 {
2759 newLeafNode(otherlv_6, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5());
2760 }
2761 )?
1441 ) 2762 )
1442; 2763;
1443 2764
1444// Entry rule entryRulePatternBody 2765// Entry rule entryRuleMultiplicity
1445entryRulePatternBody returns [EObject current=null]: 2766entryRuleMultiplicity returns [EObject current=null]:
1446 { newCompositeNode(grammarAccess.getPatternBodyRule()); } 2767 { newCompositeNode(grammarAccess.getMultiplicityRule()); }
1447 iv_rulePatternBody=rulePatternBody 2768 iv_ruleMultiplicity=ruleMultiplicity
1448 { $current=$iv_rulePatternBody.current; } 2769 { $current=$iv_ruleMultiplicity.current; }
1449 EOF; 2770 EOF;
1450 2771
1451// Rule PatternBody 2772// Rule Multiplicity
1452rulePatternBody returns [EObject current=null] 2773ruleMultiplicity returns [EObject current=null]
2774@init {
2775 enterRule();
2776}
2777@after {
2778 leaveRule();
2779}:
2780 (
2781 {
2782 newCompositeNode(grammarAccess.getMultiplicityAccess().getManyMultiplicityParserRuleCall_0());
2783 }
2784 this_ManyMultiplicity_0=ruleManyMultiplicity
2785 {
2786 $current = $this_ManyMultiplicity_0.current;
2787 afterParserOrEnumRuleCall();
2788 }
2789 |
2790 {
2791 newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
2792 }
2793 this_ExactMultiplicity_1=ruleExactMultiplicity
2794 {
2795 $current = $this_ExactMultiplicity_1.current;
2796 afterParserOrEnumRuleCall();
2797 }
2798 |
2799 {
2800 newCompositeNode(grammarAccess.getMultiplicityAccess().getBoundedMultiplicityParserRuleCall_2());
2801 }
2802 this_BoundedMultiplicity_2=ruleBoundedMultiplicity
2803 {
2804 $current = $this_BoundedMultiplicity_2.current;
2805 afterParserOrEnumRuleCall();
2806 }
2807 )
2808;
2809
2810// Entry rule entryRuleManyMultiplicity
2811entryRuleManyMultiplicity returns [EObject current=null]:
2812 { newCompositeNode(grammarAccess.getManyMultiplicityRule()); }
2813 iv_ruleManyMultiplicity=ruleManyMultiplicity
2814 { $current=$iv_ruleManyMultiplicity.current; }
2815 EOF;
2816
2817// Rule ManyMultiplicity
2818ruleManyMultiplicity returns [EObject current=null]
1453@init { 2819@init {
1454 enterRule(); 2820 enterRule();
1455} 2821}
@@ -1460,48 +2826,76 @@ rulePatternBody returns [EObject current=null]
1460 ( 2826 (
1461 { 2827 {
1462 $current = forceCreateModelElement( 2828 $current = forceCreateModelElement(
1463 grammarAccess.getPatternBodyAccess().getPatternBodyAction_0(), 2829 grammarAccess.getManyMultiplicityAccess().getManyMultiplicityAction_0(),
1464 $current); 2830 $current);
1465 } 2831 }
1466 ) 2832 )
2833 otherlv_1='['
2834 {
2835 newLeafNode(otherlv_1, grammarAccess.getManyMultiplicityAccess().getLeftSquareBracketKeyword_1());
2836 }
2837 otherlv_2=']'
2838 {
2839 newLeafNode(otherlv_2, grammarAccess.getManyMultiplicityAccess().getRightSquareBracketKeyword_2());
2840 }
2841 )
2842;
2843
2844// Entry rule entryRuleExactMultiplicity
2845entryRuleExactMultiplicity returns [EObject current=null]:
2846 { newCompositeNode(grammarAccess.getExactMultiplicityRule()); }
2847 iv_ruleExactMultiplicity=ruleExactMultiplicity
2848 { $current=$iv_ruleExactMultiplicity.current; }
2849 EOF;
2850
2851// Rule ExactMultiplicity
2852ruleExactMultiplicity returns [EObject current=null]
2853@init {
2854 enterRule();
2855}
2856@after {
2857 leaveRule();
2858}:
2859 (
2860 otherlv_0='['
2861 {
2862 newLeafNode(otherlv_0, grammarAccess.getExactMultiplicityAccess().getLeftSquareBracketKeyword_0());
2863 }
1467 ( 2864 (
1468 otherlv_1='true'
1469 {
1470 newLeafNode(otherlv_1, grammarAccess.getPatternBodyAccess().getTrueKeyword_1_0());
1471 }
1472 |
1473 ( 2865 (
1474 ( 2866 {
1475 { 2867 newCompositeNode(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0());
1476 newCompositeNode(grammarAccess.getPatternBodyAccess().getConstraintsConstraintParserRuleCall_1_1_0()); 2868 }
1477 } 2869 lv_multiplicity_1_0=ruleUpperMultiplicty
1478 lv_constraints_2_0=ruleConstraint 2870 {
1479 { 2871 if ($current==null) {
1480 if ($current==null) { 2872 $current = createModelElementForParent(grammarAccess.getExactMultiplicityRule());
1481 $current = createModelElementForParent(grammarAccess.getPatternBodyRule());
1482 }
1483 add(
1484 $current,
1485 "constraints",
1486 lv_constraints_2_0,
1487 "org.eclipse.viatra.solver.language.SolverLanguage.Constraint");
1488 afterParserOrEnumRuleCall();
1489 } 2873 }
1490 ) 2874 set(
1491 )* 2875 $current,
2876 "multiplicity",
2877 lv_multiplicity_1_0,
2878 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
2879 afterParserOrEnumRuleCall();
2880 }
2881 )
1492 ) 2882 )
2883 otherlv_2=']'
2884 {
2885 newLeafNode(otherlv_2, grammarAccess.getExactMultiplicityAccess().getRightSquareBracketKeyword_2());
2886 }
1493 ) 2887 )
1494; 2888;
1495 2889
1496// Entry rule entryRulePolarity 2890// Entry rule entryRuleBoundedMultiplicity
1497entryRulePolarity returns [EObject current=null]: 2891entryRuleBoundedMultiplicity returns [EObject current=null]:
1498 { newCompositeNode(grammarAccess.getPolarityRule()); } 2892 { newCompositeNode(grammarAccess.getBoundedMultiplicityRule()); }
1499 iv_rulePolarity=rulePolarity 2893 iv_ruleBoundedMultiplicity=ruleBoundedMultiplicity
1500 { $current=$iv_rulePolarity.current; } 2894 { $current=$iv_ruleBoundedMultiplicity.current; }
1501 EOF; 2895 EOF;
1502 2896
1503// Rule Polarity 2897// Rule BoundedMultiplicity
1504rulePolarity returns [EObject current=null] 2898ruleBoundedMultiplicity returns [EObject current=null]
1505@init { 2899@init {
1506 enterRule(); 2900 enterRule();
1507} 2901}
@@ -1509,45 +2903,173 @@ rulePolarity returns [EObject current=null]
1509 leaveRule(); 2903 leaveRule();
1510}: 2904}:
1511 ( 2905 (
2906 otherlv_0='['
2907 {
2908 newLeafNode(otherlv_0, grammarAccess.getBoundedMultiplicityAccess().getLeftSquareBracketKeyword_0());
2909 }
1512 ( 2910 (
1513 ( 2911 (
2912 lv_lowerBound_1_0=RULE_INT
1514 { 2913 {
1515 $current = forceCreateModelElement( 2914 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0());
1516 grammarAccess.getPolarityAccess().getPositiveAction_0_0(), 2915 }
1517 $current); 2916 {
2917 if ($current==null) {
2918 $current = createModelElement(grammarAccess.getBoundedMultiplicityRule());
2919 }
2920 setWithLastConsumed(
2921 $current,
2922 "lowerBound",
2923 lv_lowerBound_1_0,
2924 "org.eclipse.xtext.common.Terminals.INT");
1518 } 2925 }
1519 ) 2926 )
1520 otherlv_1='+'
1521 {
1522 newLeafNode(otherlv_1, grammarAccess.getPolarityAccess().getPlusSignKeyword_0_1());
1523 }
1524 ) 2927 )
2928 otherlv_2='..'
2929 {
2930 newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getFullStopFullStopKeyword_2());
2931 }
2932 (
2933 (
2934 {
2935 newCompositeNode(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0());
2936 }
2937 lv_upperBound_3_0=ruleUpperMultiplicty
2938 {
2939 if ($current==null) {
2940 $current = createModelElementForParent(grammarAccess.getBoundedMultiplicityRule());
2941 }
2942 set(
2943 $current,
2944 "upperBound",
2945 lv_upperBound_3_0,
2946 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
2947 afterParserOrEnumRuleCall();
2948 }
2949 )
2950 )
2951 otherlv_4=']'
2952 {
2953 newLeafNode(otherlv_4, grammarAccess.getBoundedMultiplicityAccess().getRightSquareBracketKeyword_4());
2954 }
2955 )
2956;
2957
2958// Entry rule entryRuleScopeDefinition
2959entryRuleScopeDefinition returns [EObject current=null]:
2960 { newCompositeNode(grammarAccess.getScopeDefinitionRule()); }
2961 iv_ruleScopeDefinition=ruleScopeDefinition
2962 { $current=$iv_ruleScopeDefinition.current; }
2963 EOF;
2964
2965// Rule ScopeDefinition
2966ruleScopeDefinition returns [EObject current=null]
2967@init {
2968 enterRule();
2969}
2970@after {
2971 leaveRule();
2972}:
2973 (
2974 {
2975 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getExactScopeDefinitionParserRuleCall_0());
2976 }
2977 this_ExactScopeDefinition_0=ruleExactScopeDefinition
2978 {
2979 $current = $this_ExactScopeDefinition_0.current;
2980 afterParserOrEnumRuleCall();
2981 }
2982 |
2983 {
2984 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getBoundedScopeDefinitionParserRuleCall_1());
2985 }
2986 this_BoundedScopeDefinition_1=ruleBoundedScopeDefinition
2987 {
2988 $current = $this_BoundedScopeDefinition_1.current;
2989 afterParserOrEnumRuleCall();
2990 }
1525 | 2991 |
2992 {
2993 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getLowerBoundedScopeDefinitionParserRuleCall_2());
2994 }
2995 this_LowerBoundedScopeDefinition_2=ruleLowerBoundedScopeDefinition
2996 {
2997 $current = $this_LowerBoundedScopeDefinition_2.current;
2998 afterParserOrEnumRuleCall();
2999 }
3000 )
3001;
3002
3003// Entry rule entryRuleExactScopeDefinition
3004entryRuleExactScopeDefinition returns [EObject current=null]:
3005 { newCompositeNode(grammarAccess.getExactScopeDefinitionRule()); }
3006 iv_ruleExactScopeDefinition=ruleExactScopeDefinition
3007 { $current=$iv_ruleExactScopeDefinition.current; }
3008 EOF;
3009
3010// Rule ExactScopeDefinition
3011ruleExactScopeDefinition returns [EObject current=null]
3012@init {
3013 enterRule();
3014}
3015@after {
3016 leaveRule();
3017}:
3018 (
3019 otherlv_0='scope'
3020 {
3021 newLeafNode(otherlv_0, grammarAccess.getExactScopeDefinitionAccess().getScopeKeyword_0());
3022 }
1526 ( 3023 (
1527 ( 3024 (
1528 { 3025 {
1529 $current = forceCreateModelElement( 3026 if ($current==null) {
1530 grammarAccess.getPolarityAccess().getNegativeAction_1_0(), 3027 $current = createModelElement(grammarAccess.getExactScopeDefinitionRule());
1531 $current); 3028 }
3029 }
3030 {
3031 newCompositeNode(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0());
3032 }
3033 ruleQualifiedName
3034 {
3035 afterParserOrEnumRuleCall();
3036 }
3037 )
3038 )
3039 otherlv_2='=='
3040 {
3041 newLeafNode(otherlv_2, grammarAccess.getExactScopeDefinitionAccess().getEqualsSignEqualsSignKeyword_2());
3042 }
3043 (
3044 (
3045 lv_exactScope_3_0=RULE_INT
3046 {
3047 newLeafNode(lv_exactScope_3_0, grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0());
3048 }
3049 {
3050 if ($current==null) {
3051 $current = createModelElement(grammarAccess.getExactScopeDefinitionRule());
3052 }
3053 setWithLastConsumed(
3054 $current,
3055 "exactScope",
3056 lv_exactScope_3_0,
3057 "org.eclipse.xtext.common.Terminals.INT");
1532 } 3058 }
1533 ) 3059 )
1534 otherlv_3='-'
1535 {
1536 newLeafNode(otherlv_3, grammarAccess.getPolarityAccess().getHyphenMinusKeyword_1_1());
1537 }
1538 ) 3060 )
1539 ) 3061 )
1540; 3062;
1541 3063
1542// Entry rule entryRuleConstraint 3064// Entry rule entryRuleBoundedScopeDefinition
1543entryRuleConstraint returns [EObject current=null]: 3065entryRuleBoundedScopeDefinition returns [EObject current=null]:
1544 { newCompositeNode(grammarAccess.getConstraintRule()); } 3066 { newCompositeNode(grammarAccess.getBoundedScopeDefinitionRule()); }
1545 iv_ruleConstraint=ruleConstraint 3067 iv_ruleBoundedScopeDefinition=ruleBoundedScopeDefinition
1546 { $current=$iv_ruleConstraint.current; } 3068 { $current=$iv_ruleBoundedScopeDefinition.current; }
1547 EOF; 3069 EOF;
1548 3070
1549// Rule Constraint 3071// Rule BoundedScopeDefinition
1550ruleConstraint returns [EObject current=null] 3072ruleBoundedScopeDefinition returns [EObject current=null]
1551@init { 3073@init {
1552 enterRule(); 3074 enterRule();
1553} 3075}
@@ -1555,186 +3077,267 @@ ruleConstraint returns [EObject current=null]
1555 leaveRule(); 3077 leaveRule();
1556}: 3078}:
1557 ( 3079 (
3080 otherlv_0='scope'
3081 {
3082 newLeafNode(otherlv_0, grammarAccess.getBoundedScopeDefinitionAccess().getScopeKeyword_0());
3083 }
1558 ( 3084 (
1559 ( 3085 (
1560 ( 3086 (
3087 (
3088 (
3089 lv_lowerBound_1_0=RULE_INT
3090 {
3091 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0());
3092 }
3093 {
3094 if ($current==null) {
3095 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
3096 }
3097 setWithLastConsumed(
3098 $current,
3099 "lowerBound",
3100 lv_lowerBound_1_0,
3101 "org.eclipse.xtext.common.Terminals.INT");
3102 }
3103 )
3104 )
3105 otherlv_2='<='
1561 { 3106 {
1562 newCompositeNode(grammarAccess.getConstraintAccess().getPolarityPolarityParserRuleCall_0_0_0()); 3107 newLeafNode(otherlv_2, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_0_1());
1563 } 3108 }
1564 lv_polarity_0_0=rulePolarity 3109 )?
1565 { 3110 (
1566 if ($current==null) { 3111 (
1567 $current = createModelElementForParent(grammarAccess.getConstraintRule()); 3112 {
3113 if ($current==null) {
3114 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
3115 }
1568 } 3116 }
1569 set( 3117 {
1570 $current, 3118 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_1_0());
1571 "polarity", 3119 }
1572 lv_polarity_0_0, 3120 ruleQualifiedName
1573 "org.eclipse.viatra.solver.language.SolverLanguage.Polarity"); 3121 {
1574 afterParserOrEnumRuleCall(); 3122 afterParserOrEnumRuleCall();
1575 } 3123 }
3124 )
1576 ) 3125 )
1577 )? 3126 otherlv_4='<='
1578 ( 3127 {
3128 newLeafNode(otherlv_4, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_2());
3129 }
1579 ( 3130 (
1580 { 3131 (
1581 newCompositeNode(grammarAccess.getConstraintAccess().getSymbolModelSymbolParserRuleCall_0_1_0()); 3132 lv_upperBound_5_0=RULE_INT
1582 } 3133 {
1583 lv_symbol_1_0=ruleModelSymbol 3134 newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0());
1584 {
1585 if ($current==null) {
1586 $current = createModelElementForParent(grammarAccess.getConstraintRule());
1587 } 3135 }
1588 set( 3136 {
1589 $current, 3137 if ($current==null) {
1590 "symbol", 3138 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
1591 lv_symbol_1_0, 3139 }
1592 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); 3140 setWithLastConsumed(
1593 afterParserOrEnumRuleCall(); 3141 $current,
1594 } 3142 "upperBound",
3143 lv_upperBound_5_0,
3144 "org.eclipse.xtext.common.Terminals.INT");
3145 }
3146 )
1595 ) 3147 )
1596 ) 3148 )
3149 |
1597 ( 3150 (
1598 otherlv_2='('
1599 {
1600 newLeafNode(otherlv_2, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_0_2_0());
1601 }
1602 ( 3151 (
1603 ( 3152 (
3153 lv_upperBound_6_0=RULE_INT
1604 { 3154 {
1605 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_0_2_1_0()); 3155 newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0());
1606 } 3156 }
1607 lv_params_3_0=ruleLiteral
1608 { 3157 {
1609 if ($current==null) { 3158 if ($current==null) {
1610 $current = createModelElementForParent(grammarAccess.getConstraintRule()); 3159 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
1611 } 3160 }
1612 add( 3161 setWithLastConsumed(
1613 $current, 3162 $current,
1614 "params", 3163 "upperBound",
1615 lv_params_3_0, 3164 lv_upperBound_6_0,
1616 "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); 3165 "org.eclipse.xtext.common.Terminals.INT");
3166 }
3167 )
3168 )
3169 otherlv_7='>='
3170 {
3171 newLeafNode(otherlv_7, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
3172 }
3173 (
3174 (
3175 {
3176 if ($current==null) {
3177 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
3178 }
3179 }
3180 {
3181 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_2_0());
3182 }
3183 ruleQualifiedName
3184 {
1617 afterParserOrEnumRuleCall(); 3185 afterParserOrEnumRuleCall();
1618 } 3186 }
1619 ) 3187 )
1620 )? 3188 )
1621 ( 3189 (
1622 otherlv_4=',' 3190 otherlv_9='>='
1623 { 3191 {
1624 newLeafNode(otherlv_4, grammarAccess.getConstraintAccess().getCommaKeyword_0_2_2_0()); 3192 newLeafNode(otherlv_9, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0());
1625 } 3193 }
1626 ( 3194 (
1627 ( 3195 (
3196 lv_lowerBound_10_0=RULE_INT
1628 { 3197 {
1629 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_0_2_2_1_0()); 3198 newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0());
1630 } 3199 }
1631 lv_params_5_0=ruleLiteral
1632 { 3200 {
1633 if ($current==null) { 3201 if ($current==null) {
1634 $current = createModelElementForParent(grammarAccess.getConstraintRule()); 3202 $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
1635 } 3203 }
1636 add( 3204 setWithLastConsumed(
1637 $current, 3205 $current,
1638 "params", 3206 "lowerBound",
1639 lv_params_5_0, 3207 lv_lowerBound_10_0,
1640 "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); 3208 "org.eclipse.xtext.common.Terminals.INT");
1641 afterParserOrEnumRuleCall();
1642 } 3209 }
1643 ) 3210 )
1644 ) 3211 )
1645 )* 3212 )?
1646 otherlv_6=')' 3213 )
1647 {
1648 newLeafNode(otherlv_6, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_0_2_3());
1649 }
1650 )?
1651 ) 3214 )
1652 | 3215 otherlv_11='.'
3216 {
3217 newLeafNode(otherlv_11, grammarAccess.getBoundedScopeDefinitionAccess().getFullStopKeyword_2());
3218 }
3219 )
3220;
3221
3222// Entry rule entryRuleLowerBoundedScopeDefinition
3223entryRuleLowerBoundedScopeDefinition returns [EObject current=null]:
3224 { newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionRule()); }
3225 iv_ruleLowerBoundedScopeDefinition=ruleLowerBoundedScopeDefinition
3226 { $current=$iv_ruleLowerBoundedScopeDefinition.current; }
3227 EOF;
3228
3229// Rule LowerBoundedScopeDefinition
3230ruleLowerBoundedScopeDefinition returns [EObject current=null]
3231@init {
3232 enterRule();
3233}
3234@after {
3235 leaveRule();
3236}:
3237 (
3238 otherlv_0='scope'
3239 {
3240 newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getScopeKeyword_0());
3241 }
1653 ( 3242 (
1654 ( 3243 (
1655 ( 3244 (
1656 { 3245 (
1657 newCompositeNode(grammarAccess.getConstraintAccess().getClosureTypeClosureTypeParserRuleCall_1_0_0()); 3246 lv_lowerBound_1_0=RULE_INT
1658 } 3247 {
1659 lv_closureType_7_0=ruleClosureType 3248 newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0());
1660 {
1661 if ($current==null) {
1662 $current = createModelElementForParent(grammarAccess.getConstraintRule());
1663 } 3249 }
1664 set( 3250 {
1665 $current, 3251 if ($current==null) {
1666 "closureType", 3252 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
1667 lv_closureType_7_0, 3253 }
1668 "org.eclipse.viatra.solver.language.SolverLanguage.ClosureType"); 3254 setWithLastConsumed(
1669 afterParserOrEnumRuleCall(); 3255 $current,
1670 } 3256 "lowerBound",
3257 lv_lowerBound_1_0,
3258 "org.eclipse.xtext.common.Terminals.INT");
3259 }
3260 )
3261 )
3262 otherlv_2='<='
3263 {
3264 newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_1());
3265 }
3266 (
3267 (
3268 {
3269 if ($current==null) {
3270 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
3271 }
3272 }
3273 {
3274 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_2_0());
3275 }
3276 ruleQualifiedName
3277 {
3278 afterParserOrEnumRuleCall();
3279 }
3280 )
1671 ) 3281 )
1672 ) 3282 )
1673 otherlv_8='(' 3283 |
1674 {
1675 newLeafNode(otherlv_8, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_1_1());
1676 }
1677 ( 3284 (
1678 ( 3285 (
1679 { 3286 (
1680 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_1_2_0()); 3287 {
1681 } 3288 if ($current==null) {
1682 lv_params_9_0=ruleLiteral 3289 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
1683 { 3290 }
1684 if ($current==null) {
1685 $current = createModelElementForParent(grammarAccess.getConstraintRule());
1686 } 3291 }
1687 add( 3292 {
1688 $current, 3293 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_0_0());
1689 "params", 3294 }
1690 lv_params_9_0, 3295 ruleQualifiedName
1691 "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); 3296 {
1692 afterParserOrEnumRuleCall(); 3297 afterParserOrEnumRuleCall();
1693 } 3298 }
3299 )
1694 ) 3300 )
1695 )? 3301 otherlv_5='>='
1696 (
1697 otherlv_10=','
1698 { 3302 {
1699 newLeafNode(otherlv_10, grammarAccess.getConstraintAccess().getCommaKeyword_1_3_0()); 3303 newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
1700 } 3304 }
1701 ( 3305 (
1702 ( 3306 (
3307 lv_lowerBound_6_0=RULE_INT
1703 { 3308 {
1704 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_1_3_1_0()); 3309 newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0());
1705 } 3310 }
1706 lv_params_11_0=ruleLiteral
1707 { 3311 {
1708 if ($current==null) { 3312 if ($current==null) {
1709 $current = createModelElementForParent(grammarAccess.getConstraintRule()); 3313 $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
1710 } 3314 }
1711 add( 3315 setWithLastConsumed(
1712 $current, 3316 $current,
1713 "params", 3317 "lowerBound",
1714 lv_params_11_0, 3318 lv_lowerBound_6_0,
1715 "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); 3319 "org.eclipse.xtext.common.Terminals.INT");
1716 afterParserOrEnumRuleCall();
1717 } 3320 }
1718 ) 3321 )
1719 ) 3322 )
1720 )* 3323 )
1721 otherlv_12=')'
1722 {
1723 newLeafNode(otherlv_12, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_1_4());
1724 }
1725 ) 3324 )
3325 otherlv_7='.'
3326 {
3327 newLeafNode(otherlv_7, grammarAccess.getLowerBoundedScopeDefinitionAccess().getFullStopKeyword_2());
3328 }
1726 ) 3329 )
1727; 3330;
1728 3331
1729// Entry rule entryRuleClosureType 3332// Entry rule entryRuleObjectiveDefinition
1730entryRuleClosureType returns [EObject current=null]: 3333entryRuleObjectiveDefinition returns [EObject current=null]:
1731 { newCompositeNode(grammarAccess.getClosureTypeRule()); } 3334 { newCompositeNode(grammarAccess.getObjectiveDefinitionRule()); }
1732 iv_ruleClosureType=ruleClosureType 3335 iv_ruleObjectiveDefinition=ruleObjectiveDefinition
1733 { $current=$iv_ruleClosureType.current; } 3336 { $current=$iv_ruleObjectiveDefinition.current; }
1734 EOF; 3337 EOF;
1735 3338
1736// Rule ClosureType 3339// Rule ObjectiveDefinition
1737ruleClosureType returns [EObject current=null] 3340ruleObjectiveDefinition returns [EObject current=null]
1738@init { 3341@init {
1739 enterRule(); 3342 enterRule();
1740} 3343}
@@ -1745,42 +3348,53 @@ ruleClosureType returns [EObject current=null]
1745 ( 3348 (
1746 ( 3349 (
1747 { 3350 {
1748 $current = forceCreateModelElement( 3351 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0());
1749 grammarAccess.getClosureTypeAccess().getReflexiveClosureAction_0_0(), 3352 }
1750 $current); 3353 lv_kind_0_0=ruleObjectiveKind
3354 {
3355 if ($current==null) {
3356 $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule());
3357 }
3358 set(
3359 $current,
3360 "kind",
3361 lv_kind_0_0,
3362 "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind");
3363 afterParserOrEnumRuleCall();
1751 } 3364 }
1752 ) 3365 )
1753 otherlv_1='*'
1754 {
1755 newLeafNode(otherlv_1, grammarAccess.getClosureTypeAccess().getAsteriskKeyword_0_1());
1756 }
1757 ) 3366 )
1758 |
1759 ( 3367 (
1760 ( 3368 (
1761 { 3369 {
1762 $current = forceCreateModelElement( 3370 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0());
1763 grammarAccess.getClosureTypeAccess().getIrreflexiveClosureAction_1_0(), 3371 }
1764 $current); 3372 lv_objective_1_0=ruleExpression
3373 {
3374 if ($current==null) {
3375 $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule());
3376 }
3377 set(
3378 $current,
3379 "objective",
3380 lv_objective_1_0,
3381 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
3382 afterParserOrEnumRuleCall();
1765 } 3383 }
1766 ) 3384 )
1767 otherlv_3='+'
1768 {
1769 newLeafNode(otherlv_3, grammarAccess.getClosureTypeAccess().getPlusSignKeyword_1_1());
1770 }
1771 ) 3385 )
1772 ) 3386 )
1773; 3387;
1774 3388
1775// Entry rule entryRuleLiteral 3389// Entry rule entryRuleUpperMultiplicty
1776entryRuleLiteral returns [EObject current=null]: 3390entryRuleUpperMultiplicty returns [String current=null]:
1777 { newCompositeNode(grammarAccess.getLiteralRule()); } 3391 { newCompositeNode(grammarAccess.getUpperMultiplictyRule()); }
1778 iv_ruleLiteral=ruleLiteral 3392 iv_ruleUpperMultiplicty=ruleUpperMultiplicty
1779 { $current=$iv_ruleLiteral.current; } 3393 { $current=$iv_ruleUpperMultiplicty.current.getText(); }
1780 EOF; 3394 EOF;
1781 3395
1782// Rule Literal 3396// Rule UpperMultiplicty
1783ruleLiteral returns [EObject current=null] 3397ruleUpperMultiplicty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1784@init { 3398@init {
1785 enterRule(); 3399 enterRule();
1786} 3400}
@@ -1788,121 +3402,132 @@ ruleLiteral returns [EObject current=null]
1788 leaveRule(); 3402 leaveRule();
1789}: 3403}:
1790 ( 3404 (
3405 this_INT_0=RULE_INT
1791 { 3406 {
1792 newCompositeNode(grammarAccess.getLiteralAccess().getVariableParserRuleCall_0()); 3407 $current.merge(this_INT_0);
1793 } 3408 }
1794 this_Variable_0=ruleVariable
1795 { 3409 {
1796 $current = $this_Variable_0.current; 3410 newLeafNode(this_INT_0, grammarAccess.getUpperMultiplictyAccess().getINTTerminalRuleCall_0());
1797 afterParserOrEnumRuleCall();
1798 } 3411 }
1799 | 3412 |
3413 kw='*'
1800 { 3414 {
1801 newCompositeNode(grammarAccess.getLiteralAccess().getDataObjectParserRuleCall_1()); 3415 $current.merge(kw);
1802 } 3416 newLeafNode(kw, grammarAccess.getUpperMultiplictyAccess().getAsteriskKeyword_1());
1803 this_DataObject_1=ruleDataObject
1804 {
1805 $current = $this_DataObject_1.current;
1806 afterParserOrEnumRuleCall();
1807 }
1808 |
1809 {
1810 newCompositeNode(grammarAccess.getLiteralAccess().getNamedObjectParserRuleCall_2());
1811 }
1812 this_NamedObject_2=ruleNamedObject
1813 {
1814 $current = $this_NamedObject_2.current;
1815 afterParserOrEnumRuleCall();
1816 } 3417 }
1817 ) 3418 )
1818; 3419;
1819 3420
1820// Entry rule entryRuleVariable 3421// Entry rule entryRuleReal
1821entryRuleVariable returns [EObject current=null]: 3422entryRuleReal returns [String current=null]@init {
1822 { newCompositeNode(grammarAccess.getVariableRule()); } 3423 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
1823 iv_ruleVariable=ruleVariable 3424}:
1824 { $current=$iv_ruleVariable.current; } 3425 { newCompositeNode(grammarAccess.getRealRule()); }
3426 iv_ruleReal=ruleReal
3427 { $current=$iv_ruleReal.current.getText(); }
1825 EOF; 3428 EOF;
3429finally {
3430 myHiddenTokenState.restore();
3431}
1826 3432
1827// Rule Variable 3433// Rule Real
1828ruleVariable returns [EObject current=null] 3434ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1829@init { 3435@init {
1830 enterRule(); 3436 enterRule();
3437 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
1831} 3438}
1832@after { 3439@after {
1833 leaveRule(); 3440 leaveRule();
1834}: 3441}:
1835 ( 3442 (
3443 this_INT_0=RULE_INT
3444 {
3445 $current.merge(this_INT_0);
3446 }
3447 {
3448 newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0());
3449 }
1836 ( 3450 (
1837 lv_name_0_0=RULE_ID 3451 kw='.'
1838 { 3452 {
1839 newLeafNode(lv_name_0_0, grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_0()); 3453 $current.merge(kw);
3454 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_0());
1840 } 3455 }
3456 this_INT_2=RULE_INT
1841 { 3457 {
1842 if ($current==null) { 3458 $current.merge(this_INT_2);
1843 $current = createModelElement(grammarAccess.getVariableRule());
1844 }
1845 setWithLastConsumed(
1846 $current,
1847 "name",
1848 lv_name_0_0,
1849 "org.eclipse.xtext.common.Terminals.ID");
1850 } 3459 }
1851 ) 3460 {
3461 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1());
3462 }
3463 )?
1852 ) 3464 )
1853; 3465;
3466finally {
3467 myHiddenTokenState.restore();
3468}
1854 3469
1855// Entry rule entryRuleAllInstances 3470// Entry rule entryRuleQualifiedName
1856entryRuleAllInstances returns [EObject current=null]: 3471entryRuleQualifiedName returns [String current=null]@init {
1857 { newCompositeNode(grammarAccess.getAllInstancesRule()); } 3472 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
1858 iv_ruleAllInstances=ruleAllInstances 3473}:
1859 { $current=$iv_ruleAllInstances.current; } 3474 { newCompositeNode(grammarAccess.getQualifiedNameRule()); }
3475 iv_ruleQualifiedName=ruleQualifiedName
3476 { $current=$iv_ruleQualifiedName.current.getText(); }
1860 EOF; 3477 EOF;
3478finally {
3479 myHiddenTokenState.restore();
3480}
1861 3481
1862// Rule AllInstances 3482// Rule QualifiedName
1863ruleAllInstances returns [EObject current=null] 3483ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1864@init { 3484@init {
1865 enterRule(); 3485 enterRule();
3486 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
1866} 3487}
1867@after { 3488@after {
1868 leaveRule(); 3489 leaveRule();
1869}: 3490}:
1870 ( 3491 (
1871 otherlv_0=':'
1872 {
1873 newLeafNode(otherlv_0, grammarAccess.getAllInstancesAccess().getColonKeyword_0());
1874 }
1875 ( 3492 (
3493 this_ID_0=RULE_ID
3494 {
3495 $current.merge(this_ID_0);
3496 }
3497 {
3498 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_0());
3499 }
1876 ( 3500 (
3501 kw='.'
1877 { 3502 {
1878 newCompositeNode(grammarAccess.getAllInstancesAccess().getSymbolSymbolParserRuleCall_1_0()); 3503 $current.merge(kw);
3504 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_0_1_0());
1879 } 3505 }
1880 lv_symbol_1_0=ruleSymbol 3506 this_ID_2=RULE_ID
1881 { 3507 {
1882 if ($current==null) { 3508 $current.merge(this_ID_2);
1883 $current = createModelElementForParent(grammarAccess.getAllInstancesRule());
1884 }
1885 set(
1886 $current,
1887 "symbol",
1888 lv_symbol_1_0,
1889 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
1890 afterParserOrEnumRuleCall();
1891 } 3509 }
1892 ) 3510 {
3511 newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_1_1());
3512 }
3513 )*
1893 ) 3514 )
3515 |
3516 this_QUOTED_ID_3=RULE_QUOTED_ID
3517 {
3518 $current.merge(this_QUOTED_ID_3);
3519 }
3520 {
3521 newLeafNode(this_QUOTED_ID_3, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1());
3522 }
1894 ) 3523 )
1895; 3524;
3525finally {
3526 myHiddenTokenState.restore();
3527}
1896 3528
1897// Entry rule entryRuleAllObjects 3529// Rule MetricType
1898entryRuleAllObjects returns [EObject current=null]: 3530ruleMetricType returns [Enumerator current=null]
1899 { newCompositeNode(grammarAccess.getAllObjectsRule()); }
1900 iv_ruleAllObjects=ruleAllObjects
1901 { $current=$iv_ruleAllObjects.current; }
1902 EOF;
1903
1904// Rule AllObjects
1905ruleAllObjects returns [EObject current=null]
1906@init { 3531@init {
1907 enterRule(); 3532 enterRule();
1908} 3533}
@@ -1911,28 +3536,25 @@ ruleAllObjects returns [EObject current=null]
1911}: 3536}:
1912 ( 3537 (
1913 ( 3538 (
3539 enumLiteral_0='int'
1914 { 3540 {
1915 $current = forceCreateModelElement( 3541 $current = grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
1916 grammarAccess.getAllObjectsAccess().getAllObjectsAction_0(), 3542 newLeafNode(enumLiteral_0, grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0());
1917 $current); 3543 }
3544 )
3545 |
3546 (
3547 enumLiteral_1='real'
3548 {
3549 $current = grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3550 newLeafNode(enumLiteral_1, grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1());
1918 } 3551 }
1919 ) 3552 )
1920 otherlv_1='*'
1921 {
1922 newLeafNode(otherlv_1, grammarAccess.getAllObjectsAccess().getAsteriskKeyword_1());
1923 }
1924 ) 3553 )
1925; 3554;
1926 3555
1927// Entry rule entryRuleDefaultInterpretation 3556// Rule ComparisonOperator
1928entryRuleDefaultInterpretation returns [EObject current=null]: 3557ruleComparisonOperator returns [Enumerator current=null]
1929 { newCompositeNode(grammarAccess.getDefaultInterpretationRule()); }
1930 iv_ruleDefaultInterpretation=ruleDefaultInterpretation
1931 { $current=$iv_ruleDefaultInterpretation.current; }
1932 EOF;
1933
1934// Rule DefaultInterpretation
1935ruleDefaultInterpretation returns [EObject current=null]
1936@init { 3558@init {
1937 enterRule(); 3559 enterRule();
1938} 3560}
@@ -1940,41 +3562,66 @@ ruleDefaultInterpretation returns [EObject current=null]
1940 leaveRule(); 3562 leaveRule();
1941}: 3563}:
1942 ( 3564 (
1943 otherlv_0='default'
1944 {
1945 newLeafNode(otherlv_0, grammarAccess.getDefaultInterpretationAccess().getDefaultKeyword_0());
1946 }
1947 ( 3565 (
1948 ( 3566 enumLiteral_0='=='
1949 { 3567 {
1950 newCompositeNode(grammarAccess.getDefaultInterpretationAccess().getInterpretationBasicInterpretationParserRuleCall_1_0()); 3568 $current = grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
1951 } 3569 newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0());
1952 lv_interpretation_1_0=ruleBasicInterpretation 3570 }
1953 { 3571 )
1954 if ($current==null) { 3572 |
1955 $current = createModelElementForParent(grammarAccess.getDefaultInterpretationRule()); 3573 (
1956 } 3574 enumLiteral_1='!='
1957 set( 3575 {
1958 $current, 3576 $current = grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
1959 "interpretation", 3577 newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1());
1960 lv_interpretation_1_0, 3578 }
1961 "org.eclipse.viatra.solver.language.SolverLanguage.BasicInterpretation"); 3579 )
1962 afterParserOrEnumRuleCall(); 3580 |
1963 } 3581 (
1964 ) 3582 enumLiteral_2='<'
3583 {
3584 $current = grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
3585 newLeafNode(enumLiteral_2, grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2());
3586 }
3587 )
3588 |
3589 (
3590 enumLiteral_3='<='
3591 {
3592 $current = grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
3593 newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3());
3594 }
3595 )
3596 |
3597 (
3598 enumLiteral_4='>'
3599 {
3600 $current = grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4().getEnumLiteral().getInstance();
3601 newLeafNode(enumLiteral_4, grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4());
3602 }
3603 )
3604 |
3605 (
3606 enumLiteral_5='>='
3607 {
3608 $current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
3609 newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5());
3610 }
3611 )
3612 |
3613 (
3614 enumLiteral_6='in'
3615 {
3616 $current = grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
3617 newLeafNode(enumLiteral_6, grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6());
3618 }
1965 ) 3619 )
1966 ) 3620 )
1967; 3621;
1968 3622
1969// Entry rule entryRuleCDInterpretation 3623// Rule AdditiveBinaryOperator
1970entryRuleCDInterpretation returns [EObject current=null]: 3624ruleAdditiveBinaryOperator returns [Enumerator current=null]
1971 { newCompositeNode(grammarAccess.getCDInterpretationRule()); }
1972 iv_ruleCDInterpretation=ruleCDInterpretation
1973 { $current=$iv_ruleCDInterpretation.current; }
1974 EOF;
1975
1976// Rule CDInterpretation
1977ruleCDInterpretation returns [EObject current=null]
1978@init { 3625@init {
1979 enterRule(); 3626 enterRule();
1980} 3627}
@@ -1982,44 +3629,26 @@ ruleCDInterpretation returns [EObject current=null]
1982 leaveRule(); 3629 leaveRule();
1983}: 3630}:
1984 ( 3631 (
1985 { 3632 (
1986 newCompositeNode(grammarAccess.getCDInterpretationAccess().getClassInterpretationParserRuleCall_0()); 3633 enumLiteral_0='+'
1987 } 3634 {
1988 this_ClassInterpretation_0=ruleClassInterpretation 3635 $current = grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
1989 { 3636 newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0());
1990 $current = $this_ClassInterpretation_0.current; 3637 }
1991 afterParserOrEnumRuleCall(); 3638 )
1992 }
1993 |
1994 {
1995 newCompositeNode(grammarAccess.getCDInterpretationAccess().getEnumInterpretationParserRuleCall_1());
1996 }
1997 this_EnumInterpretation_1=ruleEnumInterpretation
1998 {
1999 $current = $this_EnumInterpretation_1.current;
2000 afterParserOrEnumRuleCall();
2001 }
2002 | 3639 |
2003 { 3640 (
2004 newCompositeNode(grammarAccess.getCDInterpretationAccess().getGlobalRelationInterpretationParserRuleCall_2()); 3641 enumLiteral_1='-'
2005 } 3642 {
2006 this_GlobalRelationInterpretation_2=ruleGlobalRelationInterpretation 3643 $current = grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
2007 { 3644 newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1());
2008 $current = $this_GlobalRelationInterpretation_2.current; 3645 }
2009 afterParserOrEnumRuleCall(); 3646 )
2010 }
2011 ) 3647 )
2012; 3648;
2013 3649
2014// Entry rule entryRuleClassInterpretation 3650// Rule MultiplicativeBinaryOperator
2015entryRuleClassInterpretation returns [EObject current=null]: 3651ruleMultiplicativeBinaryOperator returns [Enumerator current=null]
2016 { newCompositeNode(grammarAccess.getClassInterpretationRule()); }
2017 iv_ruleClassInterpretation=ruleClassInterpretation
2018 { $current=$iv_ruleClassInterpretation.current; }
2019 EOF;
2020
2021// Rule ClassInterpretation
2022ruleClassInterpretation returns [EObject current=null]
2023@init { 3652@init {
2024 enterRule(); 3653 enterRule();
2025} 3654}
@@ -2028,106 +3657,25 @@ ruleClassInterpretation returns [EObject current=null]
2028}: 3657}:
2029 ( 3658 (
2030 ( 3659 (
2031 ( 3660 enumLiteral_0='*'
2032 lv_abstract_0_0='abstract' 3661 {
2033 { 3662 $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
2034 newLeafNode(lv_abstract_0_0, grammarAccess.getClassInterpretationAccess().getAbstractAbstractKeyword_0_0()); 3663 newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0());
2035 } 3664 }
2036 {
2037 if ($current==null) {
2038 $current = createModelElement(grammarAccess.getClassInterpretationRule());
2039 }
2040 setWithLastConsumed($current, "abstract", true, "abstract");
2041 }
2042 )
2043 )?
2044 otherlv_1='class'
2045 {
2046 newLeafNode(otherlv_1, grammarAccess.getClassInterpretationAccess().getClassKeyword_1());
2047 }
2048 (
2049 (
2050 {
2051 newCompositeNode(grammarAccess.getClassInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0());
2052 }
2053 lv_symbol_2_0=ruleModelSymbol
2054 {
2055 if ($current==null) {
2056 $current = createModelElementForParent(grammarAccess.getClassInterpretationRule());
2057 }
2058 set(
2059 $current,
2060 "symbol",
2061 lv_symbol_2_0,
2062 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2063 afterParserOrEnumRuleCall();
2064 }
2065 )
2066 ) 3665 )
3666 |
2067 ( 3667 (
2068 otherlv_3='extends' 3668 enumLiteral_1='/'
2069 { 3669 {
2070 newLeafNode(otherlv_3, grammarAccess.getClassInterpretationAccess().getExtendsKeyword_3_0()); 3670 $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3671 newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1());
2071 } 3672 }
2072 ( 3673 )
2073 (
2074 {
2075 newCompositeNode(grammarAccess.getClassInterpretationAccess().getSupertypesModelSymbolParserRuleCall_3_1_0());
2076 }
2077 lv_supertypes_4_0=ruleModelSymbol
2078 {
2079 if ($current==null) {
2080 $current = createModelElementForParent(grammarAccess.getClassInterpretationRule());
2081 }
2082 add(
2083 $current,
2084 "supertypes",
2085 lv_supertypes_4_0,
2086 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2087 afterParserOrEnumRuleCall();
2088 }
2089 )
2090 )+
2091 )?
2092 otherlv_5='{'
2093 {
2094 newLeafNode(otherlv_5, grammarAccess.getClassInterpretationAccess().getLeftCurlyBracketKeyword_4());
2095 }
2096 (
2097 (
2098 {
2099 newCompositeNode(grammarAccess.getClassInterpretationAccess().getFieltFieldRelationInterpretationParserRuleCall_5_0());
2100 }
2101 lv_fielt_6_0=ruleFieldRelationInterpretation
2102 {
2103 if ($current==null) {
2104 $current = createModelElementForParent(grammarAccess.getClassInterpretationRule());
2105 }
2106 add(
2107 $current,
2108 "fielt",
2109 lv_fielt_6_0,
2110 "org.eclipse.viatra.solver.language.SolverLanguage.FieldRelationInterpretation");
2111 afterParserOrEnumRuleCall();
2112 }
2113 )
2114 )*
2115 otherlv_7='}'
2116 {
2117 newLeafNode(otherlv_7, grammarAccess.getClassInterpretationAccess().getRightCurlyBracketKeyword_6());
2118 }
2119 ) 3674 )
2120; 3675;
2121 3676
2122// Entry rule entryRuleEnumInterpretation 3677// Rule ExponentialOp
2123entryRuleEnumInterpretation returns [EObject current=null]: 3678ruleExponentialOp returns [Enumerator current=null]
2124 { newCompositeNode(grammarAccess.getEnumInterpretationRule()); }
2125 iv_ruleEnumInterpretation=ruleEnumInterpretation
2126 { $current=$iv_ruleEnumInterpretation.current; }
2127 EOF;
2128
2129// Rule EnumInterpretation
2130ruleEnumInterpretation returns [EObject current=null]
2131@init { 3679@init {
2132 enterRule(); 3680 enterRule();
2133} 3681}
@@ -2135,68 +3683,16 @@ ruleEnumInterpretation returns [EObject current=null]
2135 leaveRule(); 3683 leaveRule();
2136}: 3684}:
2137 ( 3685 (
2138 otherlv_0='enum' 3686 enumLiteral_0='^'
2139 {
2140 newLeafNode(otherlv_0, grammarAccess.getEnumInterpretationAccess().getEnumKeyword_0());
2141 }
2142 (
2143 (
2144 {
2145 newCompositeNode(grammarAccess.getEnumInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0());
2146 }
2147 lv_Symbol_1_0=ruleModelSymbol
2148 {
2149 if ($current==null) {
2150 $current = createModelElementForParent(grammarAccess.getEnumInterpretationRule());
2151 }
2152 set(
2153 $current,
2154 "Symbol",
2155 lv_Symbol_1_0,
2156 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2157 afterParserOrEnumRuleCall();
2158 }
2159 )
2160 )
2161 otherlv_2='{'
2162 {
2163 newLeafNode(otherlv_2, grammarAccess.getEnumInterpretationAccess().getLeftCurlyBracketKeyword_2());
2164 }
2165 (
2166 (
2167 {
2168 newCompositeNode(grammarAccess.getEnumInterpretationAccess().getObjectsNamedObjectParserRuleCall_3_0());
2169 }
2170 lv_objects_3_0=ruleNamedObject
2171 {
2172 if ($current==null) {
2173 $current = createModelElementForParent(grammarAccess.getEnumInterpretationRule());
2174 }
2175 add(
2176 $current,
2177 "objects",
2178 lv_objects_3_0,
2179 "org.eclipse.viatra.solver.language.SolverLanguage.NamedObject");
2180 afterParserOrEnumRuleCall();
2181 }
2182 )
2183 )+
2184 otherlv_4='}'
2185 { 3687 {
2186 newLeafNode(otherlv_4, grammarAccess.getEnumInterpretationAccess().getRightCurlyBracketKeyword_4()); 3688 $current = grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration().getEnumLiteral().getInstance();
3689 newLeafNode(enumLiteral_0, grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration());
2187 } 3690 }
2188 ) 3691 )
2189; 3692;
2190 3693
2191// Entry rule entryRuleFieldRelationInterpretation 3694// Rule UnaryOp
2192entryRuleFieldRelationInterpretation returns [EObject current=null]: 3695ruleUnaryOp returns [Enumerator current=null]
2193 { newCompositeNode(grammarAccess.getFieldRelationInterpretationRule()); }
2194 iv_ruleFieldRelationInterpretation=ruleFieldRelationInterpretation
2195 { $current=$iv_ruleFieldRelationInterpretation.current; }
2196 EOF;
2197
2198// Rule FieldRelationInterpretation
2199ruleFieldRelationInterpretation returns [EObject current=null]
2200@init { 3696@init {
2201 enterRule(); 3697 enterRule();
2202} 3698}
@@ -2205,92 +3701,57 @@ ruleFieldRelationInterpretation returns [EObject current=null]
2205}: 3701}:
2206 ( 3702 (
2207 ( 3703 (
2208 ( 3704 enumLiteral_0='!'
2209 lv_containment_0_0='containment' 3705 {
2210 { 3706 $current = grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
2211 newLeafNode(lv_containment_0_0, grammarAccess.getFieldRelationInterpretationAccess().getContainmentContainmentKeyword_0_0()); 3707 newLeafNode(enumLiteral_0, grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0());
2212 } 3708 }
2213 { 3709 )
2214 if ($current==null) { 3710 |
2215 $current = createModelElement(grammarAccess.getFieldRelationInterpretationRule());
2216 }
2217 setWithLastConsumed($current, "containment", true, "containment");
2218 }
2219 )
2220 )?
2221 ( 3711 (
2222 ( 3712 enumLiteral_1='+'
2223 { 3713 {
2224 newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0()); 3714 $current = grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
2225 } 3715 newLeafNode(enumLiteral_1, grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1());
2226 lv_symbol_1_0=ruleModelSymbol 3716 }
2227 {
2228 if ($current==null) {
2229 $current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule());
2230 }
2231 set(
2232 $current,
2233 "symbol",
2234 lv_symbol_1_0,
2235 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2236 afterParserOrEnumRuleCall();
2237 }
2238 )
2239 ) 3717 )
2240 otherlv_2=':' 3718 |
2241 {
2242 newLeafNode(otherlv_2, grammarAccess.getFieldRelationInterpretationAccess().getColonKeyword_2());
2243 }
2244 ( 3719 (
2245 ( 3720 enumLiteral_2='-'
2246 { 3721 {
2247 newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getMultiplicityMultiplicityDefinitionParserRuleCall_3_0()); 3722 $current = grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
2248 } 3723 newLeafNode(enumLiteral_2, grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2());
2249 lv_multiplicity_3_0=ruleMultiplicityDefinition 3724 }
2250 { 3725 )
2251 if ($current==null) { 3726 |
2252 $current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule());
2253 }
2254 set(
2255 $current,
2256 "multiplicity",
2257 lv_multiplicity_3_0,
2258 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition");
2259 afterParserOrEnumRuleCall();
2260 }
2261 )
2262 )?
2263 ( 3727 (
2264 ( 3728 enumLiteral_3='may'
2265 { 3729 {
2266 newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getTargetSymbolParserRuleCall_4_0()); 3730 $current = grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
2267 } 3731 newLeafNode(enumLiteral_3, grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3());
2268 lv_target_4_0=ruleSymbol 3732 }
2269 { 3733 )
2270 if ($current==null) { 3734 |
2271 $current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule()); 3735 (
2272 } 3736 enumLiteral_4='must'
2273 set( 3737 {
2274 $current, 3738 $current = grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
2275 "target", 3739 newLeafNode(enumLiteral_4, grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4());
2276 lv_target_4_0, 3740 }
2277 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); 3741 )
2278 afterParserOrEnumRuleCall(); 3742 |
2279 } 3743 (
2280 ) 3744 enumLiteral_5='current'
3745 {
3746 $current = grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
3747 newLeafNode(enumLiteral_5, grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5());
3748 }
2281 ) 3749 )
2282 ) 3750 )
2283; 3751;
2284 3752
2285// Entry rule entryRuleGlobalRelationInterpretation 3753// Rule AggregationOp
2286entryRuleGlobalRelationInterpretation returns [EObject current=null]: 3754ruleAggregationOp returns [Enumerator current=null]
2287 { newCompositeNode(grammarAccess.getGlobalRelationInterpretationRule()); }
2288 iv_ruleGlobalRelationInterpretation=ruleGlobalRelationInterpretation
2289 { $current=$iv_ruleGlobalRelationInterpretation.current; }
2290 EOF;
2291
2292// Rule GlobalRelationInterpretation
2293ruleGlobalRelationInterpretation returns [EObject current=null]
2294@init { 3755@init {
2295 enterRule(); 3756 enterRule();
2296} 3757}
@@ -2299,134 +3760,100 @@ ruleGlobalRelationInterpretation returns [EObject current=null]
2299}: 3760}:
2300 ( 3761 (
2301 ( 3762 (
2302 ( 3763 enumLiteral_0='only'
2303 lv_containment_0_0='containment' 3764 {
2304 { 3765 $current = grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
2305 newLeafNode(lv_containment_0_0, grammarAccess.getGlobalRelationInterpretationAccess().getContainmentContainmentKeyword_0_0()); 3766 newLeafNode(enumLiteral_0, grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0());
2306 } 3767 }
2307 { 3768 )
2308 if ($current==null) { 3769 |
2309 $current = createModelElement(grammarAccess.getGlobalRelationInterpretationRule());
2310 }
2311 setWithLastConsumed($current, "containment", true, "containment");
2312 }
2313 )
2314 )?
2315 otherlv_1='relation'
2316 {
2317 newLeafNode(otherlv_1, grammarAccess.getGlobalRelationInterpretationAccess().getRelationKeyword_1());
2318 }
2319 ( 3770 (
2320 ( 3771 enumLiteral_1='sum'
2321 { 3772 {
2322 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0()); 3773 $current = grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
2323 } 3774 newLeafNode(enumLiteral_1, grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1());
2324 lv_symbol_2_0=ruleModelSymbol 3775 }
2325 {
2326 if ($current==null) {
2327 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2328 }
2329 set(
2330 $current,
2331 "symbol",
2332 lv_symbol_2_0,
2333 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
2334 afterParserOrEnumRuleCall();
2335 }
2336 )
2337 ) 3776 )
2338 otherlv_3=':' 3777 |
2339 {
2340 newLeafNode(otherlv_3, grammarAccess.getGlobalRelationInterpretationAccess().getColonKeyword_3());
2341 }
2342 ( 3778 (
2343 ( 3779 enumLiteral_2='prod'
2344 { 3780 {
2345 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0()); 3781 $current = grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
2346 } 3782 newLeafNode(enumLiteral_2, grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2());
2347 lv_sourceMultiplicity_4_0=ruleMultiplicityDefinition 3783 }
2348 { 3784 )
2349 if ($current==null) { 3785 |
2350 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2351 }
2352 set(
2353 $current,
2354 "sourceMultiplicity",
2355 lv_sourceMultiplicity_4_0,
2356 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition");
2357 afterParserOrEnumRuleCall();
2358 }
2359 )
2360 )?
2361 ( 3786 (
2362 ( 3787 enumLiteral_3='avg'
2363 { 3788 {
2364 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceSymbolParserRuleCall_5_0()); 3789 $current = grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
2365 } 3790 newLeafNode(enumLiteral_3, grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3());
2366 lv_source_5_0=ruleSymbol 3791 }
2367 {
2368 if ($current==null) {
2369 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2370 }
2371 set(
2372 $current,
2373 "source",
2374 lv_source_5_0,
2375 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
2376 afterParserOrEnumRuleCall();
2377 }
2378 )
2379 ) 3792 )
3793 |
2380 ( 3794 (
2381 ( 3795 enumLiteral_4='min'
2382 { 3796 {
2383 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0()); 3797 $current = grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
2384 } 3798 newLeafNode(enumLiteral_4, grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4());
2385 lv_targetMultiplicity_6_0=ruleMultiplicityDefinition 3799 }
2386 { 3800 )
2387 if ($current==null) { 3801 |
2388 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2389 }
2390 set(
2391 $current,
2392 "targetMultiplicity",
2393 lv_targetMultiplicity_6_0,
2394 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition");
2395 afterParserOrEnumRuleCall();
2396 }
2397 )
2398 )?
2399 ( 3802 (
2400 ( 3803 enumLiteral_5='max'
2401 { 3804 {
2402 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetSymbolParserRuleCall_7_0()); 3805 $current = grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
2403 } 3806 newLeafNode(enumLiteral_5, grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5());
2404 lv_target_7_0=ruleSymbol 3807 }
2405 {
2406 if ($current==null) {
2407 $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
2408 }
2409 set(
2410 $current,
2411 "target",
2412 lv_target_7_0,
2413 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
2414 afterParserOrEnumRuleCall();
2415 }
2416 )
2417 ) 3808 )
2418 ) 3809 )
2419; 3810;
2420 3811
2421// Entry rule entryRuleMultiplicityDefinition 3812// Rule LogicValue
2422entryRuleMultiplicityDefinition returns [EObject current=null]: 3813ruleLogicValue returns [Enumerator current=null]
2423 { newCompositeNode(grammarAccess.getMultiplicityDefinitionRule()); } 3814@init {
2424 iv_ruleMultiplicityDefinition=ruleMultiplicityDefinition 3815 enterRule();
2425 { $current=$iv_ruleMultiplicityDefinition.current; } 3816}
2426 EOF; 3817@after {
3818 leaveRule();
3819}:
3820 (
3821 (
3822 enumLiteral_0='true'
3823 {
3824 $current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3825 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
3826 }
3827 )
3828 |
3829 (
3830 enumLiteral_1='false'
3831 {
3832 $current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3833 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
3834 }
3835 )
3836 |
3837 (
3838 enumLiteral_2='unknown'
3839 {
3840 $current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
3841 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
3842 }
3843 )
3844 |
3845 (
3846 enumLiteral_3='error'
3847 {
3848 $current = grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3().getEnumLiteral().getInstance();
3849 newLeafNode(enumLiteral_3, grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3());
3850 }
3851 )
3852 )
3853;
2427 3854
2428// Rule MultiplicityDefinition 3855// Rule ObjectiveKind
2429ruleMultiplicityDefinition returns [EObject current=null] 3856ruleObjectiveKind returns [Enumerator current=null]
2430@init { 3857@init {
2431 enterRule(); 3858 enterRule();
2432} 3859}
@@ -2435,67 +3862,33 @@ ruleMultiplicityDefinition returns [EObject current=null]
2435}: 3862}:
2436 ( 3863 (
2437 ( 3864 (
2438 ( 3865 enumLiteral_0='minimize'
2439 lv_lower_0_0=RULE_INT 3866 {
2440 { 3867 $current = grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
2441 newLeafNode(lv_lower_0_0, grammarAccess.getMultiplicityDefinitionAccess().getLowerINTTerminalRuleCall_0_0()); 3868 newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0());
2442 } 3869 }
2443 {
2444 if ($current==null) {
2445 $current = createModelElement(grammarAccess.getMultiplicityDefinitionRule());
2446 }
2447 setWithLastConsumed(
2448 $current,
2449 "lower",
2450 lv_lower_0_0,
2451 "org.eclipse.xtext.common.Terminals.INT");
2452 }
2453 )
2454 ) 3870 )
2455 otherlv_1='..' 3871 |
2456 {
2457 newLeafNode(otherlv_1, grammarAccess.getMultiplicityDefinitionAccess().getFullStopFullStopKeyword_1());
2458 }
2459 ( 3872 (
2460 ( 3873 enumLiteral_1='maximize'
2461 ( 3874 {
2462 lv_upper_2_0=RULE_INT 3875 $current = grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
2463 { 3876 newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1());
2464 newLeafNode(lv_upper_2_0, grammarAccess.getMultiplicityDefinitionAccess().getUpperINTTerminalRuleCall_2_0_0()); 3877 }
2465 }
2466 {
2467 if ($current==null) {
2468 $current = createModelElement(grammarAccess.getMultiplicityDefinitionRule());
2469 }
2470 setWithLastConsumed(
2471 $current,
2472 "upper",
2473 lv_upper_2_0,
2474 "org.eclipse.xtext.common.Terminals.INT");
2475 }
2476 )
2477 )
2478 |
2479 (
2480 (
2481 lv_unlimitedUpper_3_0='*'
2482 {
2483 newLeafNode(lv_unlimitedUpper_3_0, grammarAccess.getMultiplicityDefinitionAccess().getUnlimitedUpperAsteriskKeyword_2_1_0());
2484 }
2485 {
2486 if ($current==null) {
2487 $current = createModelElement(grammarAccess.getMultiplicityDefinitionRule());
2488 }
2489 setWithLastConsumed($current, "unlimitedUpper", true, "*");
2490 }
2491 )
2492 )
2493 ) 3878 )
2494 ) 3879 )
2495; 3880;
2496 3881
2497RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"'; 3882RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"';
2498 3883
3884RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\'';
3885
3886RULE_PLUS : 'synthetic::plus';
3887
3888RULE_STAR : 'synthetic::star';
3889
3890RULE_DOT : 'synthetic::dot';
3891
2499RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; 3892RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
2500 3893
2501RULE_INT : ('0'..'9')+; 3894RULE_INT : ('0'..'9')+;
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.tokens b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.tokens
index 5054ccc5..1cf5b64f 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.tokens
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguage.tokens
@@ -1,45 +1,74 @@
1'('=17 1'!'=60
2')'=19 2'!='=52
3'*'=31 3'('=33
4'+'=30 4')'=34
5','=18 5'*'=35
6'-'=11 6'+'=56
7'.'=12 7','=28
8'..'=41 8'-'=57
9':'=20 9'->'=27
10':-'=28 10'.'=22
11'\''=27 11'..'=37
12'abstract'=33 12'/'=58
13'bool'=23 13':'=15
14'class'=34 14':-'=16
15'containment'=39 15';'=26
16'default'=32 16'<'=53
17'enum'=38 17'<='=48
18'equals'=22 18'='=17
19'error'=16 19'=='=47
20'exists'=21 20'>'=54
21'extends'=35 21'>='=49
22'false'=14 22'['=36
23'int'=24 23']'=38
24'real'=25 24'^'=59
25'relation'=40 25'abstract'=41
26'string'=26 26'avg'=67
27'true'=13 27'class'=42
28'unknown'=15 28'contains'=44
29'{'=36 29'count'=29
30'|'=29 30'current'=63
31'}'=37 31'default'=20
32RULE_ANY_OTHER=10 32'else'=25
33RULE_ID=5 33'empty'=40
34RULE_INT=4 34'error'=19
35RULE_ML_COMMENT=7 35'extends'=43
36RULE_SL_COMMENT=8 36'extern'=21
37RULE_STRING=6 37'false'=71
38RULE_WS=9 38'functional'=18
39T__11=11 39'if'=23
40T__12=12 40'in'=55
41T__13=13 41'inf'=39
42T__14=14 42'int'=50
43'max'=69
44'maximize'=74
45'may'=61
46'min'=68
47'minimize'=73
48'must'=62
49'only'=64
50'opposite'=45
51'prod'=66
52'real'=51
53'scope'=46
54'sum'=65
55'then'=24
56'true'=70
57'unknown'=72
58'{'=30
59'|'=32
60'}'=31
61RULE_ANY_OTHER=14
62RULE_DOT=4
63RULE_ID=8
64RULE_INT=9
65RULE_ML_COMMENT=11
66RULE_PLUS=6
67RULE_QUOTED_ID=10
68RULE_SL_COMMENT=12
69RULE_STAR=5
70RULE_STRING=7
71RULE_WS=13
43T__15=15 72T__15=15
44T__16=16 73T__16=16
45T__17=17 74T__17=17
@@ -67,3 +96,36 @@ T__38=38
67T__39=39 96T__39=39
68T__40=40 97T__40=40
69T__41=41 98T__41=41
99T__42=42
100T__43=43
101T__44=44
102T__45=45
103T__46=46
104T__47=47
105T__48=48
106T__49=49
107T__50=50
108T__51=51
109T__52=52
110T__53=53
111T__54=54
112T__55=55
113T__56=56
114T__57=57
115T__58=58
116T__59=59
117T__60=60
118T__61=61
119T__62=62
120T__63=63
121T__64=64
122T__65=65
123T__66=66
124T__67=67
125T__68=68
126T__69=69
127T__70=70
128T__71=71
129T__72=72
130T__73=73
131T__74=74
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageLexer.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageLexer.java
index 53c80216..21e5bac9 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageLexer.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageLexer.java
@@ -12,45 +12,78 @@ import java.util.ArrayList;
12 12
13@SuppressWarnings("all") 13@SuppressWarnings("all")
14public class InternalSolverLanguageLexer extends Lexer { 14public class InternalSolverLanguageLexer extends Lexer {
15 public static final int RULE_STRING=6; 15 public static final int T__50=50;
16 public static final int RULE_SL_COMMENT=8;
17 public static final int T__19=19; 16 public static final int T__19=19;
18 public static final int T__15=15; 17 public static final int T__15=15;
19 public static final int T__37=37; 18 public static final int T__59=59;
20 public static final int T__16=16; 19 public static final int T__16=16;
21 public static final int T__38=38;
22 public static final int T__17=17; 20 public static final int T__17=17;
23 public static final int T__39=39;
24 public static final int T__18=18; 21 public static final int T__18=18;
25 public static final int T__11=11; 22 public static final int T__55=55;
26 public static final int T__33=33; 23 public static final int T__56=56;
27 public static final int T__12=12; 24 public static final int T__57=57;
28 public static final int T__34=34; 25 public static final int T__58=58;
29 public static final int T__13=13; 26 public static final int T__51=51;
30 public static final int T__35=35; 27 public static final int RULE_STAR=5;
31 public static final int T__14=14; 28 public static final int T__52=52;
32 public static final int T__36=36; 29 public static final int T__53=53;
33 public static final int EOF=-1; 30 public static final int T__54=54;
34 public static final int T__30=30; 31 public static final int T__60=60;
35 public static final int T__31=31; 32 public static final int T__61=61;
36 public static final int T__32=32; 33 public static final int RULE_ID=8;
37 public static final int RULE_ID=5; 34 public static final int RULE_QUOTED_ID=10;
38 public static final int RULE_WS=9;
39 public static final int RULE_ANY_OTHER=10;
40 public static final int T__26=26; 35 public static final int T__26=26;
41 public static final int T__27=27; 36 public static final int T__27=27;
42 public static final int T__28=28; 37 public static final int T__28=28;
43 public static final int RULE_INT=4; 38 public static final int RULE_INT=9;
44 public static final int T__29=29; 39 public static final int T__29=29;
45 public static final int T__22=22; 40 public static final int T__22=22;
46 public static final int RULE_ML_COMMENT=7; 41 public static final int T__66=66;
42 public static final int RULE_ML_COMMENT=11;
47 public static final int T__23=23; 43 public static final int T__23=23;
44 public static final int T__67=67;
48 public static final int T__24=24; 45 public static final int T__24=24;
46 public static final int T__68=68;
49 public static final int T__25=25; 47 public static final int T__25=25;
50 public static final int T__40=40; 48 public static final int T__69=69;
51 public static final int T__41=41; 49 public static final int T__62=62;
50 public static final int T__63=63;
52 public static final int T__20=20; 51 public static final int T__20=20;
52 public static final int T__64=64;
53 public static final int T__21=21; 53 public static final int T__21=21;
54 public static final int T__65=65;
55 public static final int T__70=70;
56 public static final int T__71=71;
57 public static final int T__72=72;
58 public static final int RULE_STRING=7;
59 public static final int RULE_SL_COMMENT=12;
60 public static final int T__37=37;
61 public static final int T__38=38;
62 public static final int T__39=39;
63 public static final int T__33=33;
64 public static final int T__34=34;
65 public static final int T__35=35;
66 public static final int RULE_PLUS=6;
67 public static final int T__36=36;
68 public static final int T__73=73;
69 public static final int RULE_DOT=4;
70 public static final int EOF=-1;
71 public static final int T__30=30;
72 public static final int T__74=74;
73 public static final int T__31=31;
74 public static final int T__32=32;
75 public static final int RULE_WS=13;
76 public static final int RULE_ANY_OTHER=14;
77 public static final int T__48=48;
78 public static final int T__49=49;
79 public static final int T__44=44;
80 public static final int T__45=45;
81 public static final int T__46=46;
82 public static final int T__47=47;
83 public static final int T__40=40;
84 public static final int T__41=41;
85 public static final int T__42=42;
86 public static final int T__43=43;
54 87
55 // delegates 88 // delegates
56 // delegators 89 // delegators
@@ -65,98 +98,15 @@ public class InternalSolverLanguageLexer extends Lexer {
65 } 98 }
66 public String getGrammarFileName() { return "InternalSolverLanguage.g"; } 99 public String getGrammarFileName() { return "InternalSolverLanguage.g"; }
67 100
68 // $ANTLR start "T__11"
69 public final void mT__11() throws RecognitionException {
70 try {
71 int _type = T__11;
72 int _channel = DEFAULT_TOKEN_CHANNEL;
73 // InternalSolverLanguage.g:11:7: ( '-' )
74 // InternalSolverLanguage.g:11:9: '-'
75 {
76 match('-');
77
78 }
79
80 state.type = _type;
81 state.channel = _channel;
82 }
83 finally {
84 }
85 }
86 // $ANTLR end "T__11"
87
88 // $ANTLR start "T__12"
89 public final void mT__12() throws RecognitionException {
90 try {
91 int _type = T__12;
92 int _channel = DEFAULT_TOKEN_CHANNEL;
93 // InternalSolverLanguage.g:12:7: ( '.' )
94 // InternalSolverLanguage.g:12:9: '.'
95 {
96 match('.');
97
98 }
99
100 state.type = _type;
101 state.channel = _channel;
102 }
103 finally {
104 }
105 }
106 // $ANTLR end "T__12"
107
108 // $ANTLR start "T__13"
109 public final void mT__13() throws RecognitionException {
110 try {
111 int _type = T__13;
112 int _channel = DEFAULT_TOKEN_CHANNEL;
113 // InternalSolverLanguage.g:13:7: ( 'true' )
114 // InternalSolverLanguage.g:13:9: 'true'
115 {
116 match("true");
117
118
119 }
120
121 state.type = _type;
122 state.channel = _channel;
123 }
124 finally {
125 }
126 }
127 // $ANTLR end "T__13"
128
129 // $ANTLR start "T__14"
130 public final void mT__14() throws RecognitionException {
131 try {
132 int _type = T__14;
133 int _channel = DEFAULT_TOKEN_CHANNEL;
134 // InternalSolverLanguage.g:14:7: ( 'false' )
135 // InternalSolverLanguage.g:14:9: 'false'
136 {
137 match("false");
138
139
140 }
141
142 state.type = _type;
143 state.channel = _channel;
144 }
145 finally {
146 }
147 }
148 // $ANTLR end "T__14"
149
150 // $ANTLR start "T__15" 101 // $ANTLR start "T__15"
151 public final void mT__15() throws RecognitionException { 102 public final void mT__15() throws RecognitionException {
152 try { 103 try {
153 int _type = T__15; 104 int _type = T__15;
154 int _channel = DEFAULT_TOKEN_CHANNEL; 105 int _channel = DEFAULT_TOKEN_CHANNEL;
155 // InternalSolverLanguage.g:15:7: ( 'unknown' ) 106 // InternalSolverLanguage.g:11:7: ( ':' )
156 // InternalSolverLanguage.g:15:9: 'unknown' 107 // InternalSolverLanguage.g:11:9: ':'
157 { 108 {
158 match("unknown"); 109 match(':');
159
160 110
161 } 111 }
162 112
@@ -173,10 +123,10 @@ public class InternalSolverLanguageLexer extends Lexer {
173 try { 123 try {
174 int _type = T__16; 124 int _type = T__16;
175 int _channel = DEFAULT_TOKEN_CHANNEL; 125 int _channel = DEFAULT_TOKEN_CHANNEL;
176 // InternalSolverLanguage.g:16:7: ( 'error' ) 126 // InternalSolverLanguage.g:12:7: ( ':-' )
177 // InternalSolverLanguage.g:16:9: 'error' 127 // InternalSolverLanguage.g:12:9: ':-'
178 { 128 {
179 match("error"); 129 match(":-");
180 130
181 131
182 } 132 }
@@ -194,10 +144,10 @@ public class InternalSolverLanguageLexer extends Lexer {
194 try { 144 try {
195 int _type = T__17; 145 int _type = T__17;
196 int _channel = DEFAULT_TOKEN_CHANNEL; 146 int _channel = DEFAULT_TOKEN_CHANNEL;
197 // InternalSolverLanguage.g:17:7: ( '(' ) 147 // InternalSolverLanguage.g:13:7: ( '=' )
198 // InternalSolverLanguage.g:17:9: '(' 148 // InternalSolverLanguage.g:13:9: '='
199 { 149 {
200 match('('); 150 match('=');
201 151
202 } 152 }
203 153
@@ -214,10 +164,11 @@ public class InternalSolverLanguageLexer extends Lexer {
214 try { 164 try {
215 int _type = T__18; 165 int _type = T__18;
216 int _channel = DEFAULT_TOKEN_CHANNEL; 166 int _channel = DEFAULT_TOKEN_CHANNEL;
217 // InternalSolverLanguage.g:18:7: ( ',' ) 167 // InternalSolverLanguage.g:14:7: ( 'functional' )
218 // InternalSolverLanguage.g:18:9: ',' 168 // InternalSolverLanguage.g:14:9: 'functional'
219 { 169 {
220 match(','); 170 match("functional");
171
221 172
222 } 173 }
223 174
@@ -234,10 +185,11 @@ public class InternalSolverLanguageLexer extends Lexer {
234 try { 185 try {
235 int _type = T__19; 186 int _type = T__19;
236 int _channel = DEFAULT_TOKEN_CHANNEL; 187 int _channel = DEFAULT_TOKEN_CHANNEL;
237 // InternalSolverLanguage.g:19:7: ( ')' ) 188 // InternalSolverLanguage.g:15:7: ( 'error' )
238 // InternalSolverLanguage.g:19:9: ')' 189 // InternalSolverLanguage.g:15:9: 'error'
239 { 190 {
240 match(')'); 191 match("error");
192
241 193
242 } 194 }
243 195
@@ -254,10 +206,11 @@ public class InternalSolverLanguageLexer extends Lexer {
254 try { 206 try {
255 int _type = T__20; 207 int _type = T__20;
256 int _channel = DEFAULT_TOKEN_CHANNEL; 208 int _channel = DEFAULT_TOKEN_CHANNEL;
257 // InternalSolverLanguage.g:20:7: ( ':' ) 209 // InternalSolverLanguage.g:16:7: ( 'default' )
258 // InternalSolverLanguage.g:20:9: ':' 210 // InternalSolverLanguage.g:16:9: 'default'
259 { 211 {
260 match(':'); 212 match("default");
213
261 214
262 } 215 }
263 216
@@ -274,10 +227,10 @@ public class InternalSolverLanguageLexer extends Lexer {
274 try { 227 try {
275 int _type = T__21; 228 int _type = T__21;
276 int _channel = DEFAULT_TOKEN_CHANNEL; 229 int _channel = DEFAULT_TOKEN_CHANNEL;
277 // InternalSolverLanguage.g:21:7: ( 'exists' ) 230 // InternalSolverLanguage.g:17:7: ( 'extern' )
278 // InternalSolverLanguage.g:21:9: 'exists' 231 // InternalSolverLanguage.g:17:9: 'extern'
279 { 232 {
280 match("exists"); 233 match("extern");
281 234
282 235
283 } 236 }
@@ -295,11 +248,10 @@ public class InternalSolverLanguageLexer extends Lexer {
295 try { 248 try {
296 int _type = T__22; 249 int _type = T__22;
297 int _channel = DEFAULT_TOKEN_CHANNEL; 250 int _channel = DEFAULT_TOKEN_CHANNEL;
298 // InternalSolverLanguage.g:22:7: ( 'equals' ) 251 // InternalSolverLanguage.g:18:7: ( '.' )
299 // InternalSolverLanguage.g:22:9: 'equals' 252 // InternalSolverLanguage.g:18:9: '.'
300 { 253 {
301 match("equals"); 254 match('.');
302
303 255
304 } 256 }
305 257
@@ -316,10 +268,10 @@ public class InternalSolverLanguageLexer extends Lexer {
316 try { 268 try {
317 int _type = T__23; 269 int _type = T__23;
318 int _channel = DEFAULT_TOKEN_CHANNEL; 270 int _channel = DEFAULT_TOKEN_CHANNEL;
319 // InternalSolverLanguage.g:23:7: ( 'bool' ) 271 // InternalSolverLanguage.g:19:7: ( 'if' )
320 // InternalSolverLanguage.g:23:9: 'bool' 272 // InternalSolverLanguage.g:19:9: 'if'
321 { 273 {
322 match("bool"); 274 match("if");
323 275
324 276
325 } 277 }
@@ -337,10 +289,10 @@ public class InternalSolverLanguageLexer extends Lexer {
337 try { 289 try {
338 int _type = T__24; 290 int _type = T__24;
339 int _channel = DEFAULT_TOKEN_CHANNEL; 291 int _channel = DEFAULT_TOKEN_CHANNEL;
340 // InternalSolverLanguage.g:24:7: ( 'int' ) 292 // InternalSolverLanguage.g:20:7: ( 'then' )
341 // InternalSolverLanguage.g:24:9: 'int' 293 // InternalSolverLanguage.g:20:9: 'then'
342 { 294 {
343 match("int"); 295 match("then");
344 296
345 297
346 } 298 }
@@ -358,10 +310,10 @@ public class InternalSolverLanguageLexer extends Lexer {
358 try { 310 try {
359 int _type = T__25; 311 int _type = T__25;
360 int _channel = DEFAULT_TOKEN_CHANNEL; 312 int _channel = DEFAULT_TOKEN_CHANNEL;
361 // InternalSolverLanguage.g:25:7: ( 'real' ) 313 // InternalSolverLanguage.g:21:7: ( 'else' )
362 // InternalSolverLanguage.g:25:9: 'real' 314 // InternalSolverLanguage.g:21:9: 'else'
363 { 315 {
364 match("real"); 316 match("else");
365 317
366 318
367 } 319 }
@@ -379,11 +331,10 @@ public class InternalSolverLanguageLexer extends Lexer {
379 try { 331 try {
380 int _type = T__26; 332 int _type = T__26;
381 int _channel = DEFAULT_TOKEN_CHANNEL; 333 int _channel = DEFAULT_TOKEN_CHANNEL;
382 // InternalSolverLanguage.g:26:7: ( 'string' ) 334 // InternalSolverLanguage.g:22:7: ( ';' )
383 // InternalSolverLanguage.g:26:9: 'string' 335 // InternalSolverLanguage.g:22:9: ';'
384 { 336 {
385 match("string"); 337 match(';');
386
387 338
388 } 339 }
389 340
@@ -400,10 +351,11 @@ public class InternalSolverLanguageLexer extends Lexer {
400 try { 351 try {
401 int _type = T__27; 352 int _type = T__27;
402 int _channel = DEFAULT_TOKEN_CHANNEL; 353 int _channel = DEFAULT_TOKEN_CHANNEL;
403 // InternalSolverLanguage.g:27:7: ( '\\'' ) 354 // InternalSolverLanguage.g:23:7: ( '->' )
404 // InternalSolverLanguage.g:27:9: '\\'' 355 // InternalSolverLanguage.g:23:9: '->'
405 { 356 {
406 match('\''); 357 match("->");
358
407 359
408 } 360 }
409 361
@@ -420,11 +372,10 @@ public class InternalSolverLanguageLexer extends Lexer {
420 try { 372 try {
421 int _type = T__28; 373 int _type = T__28;
422 int _channel = DEFAULT_TOKEN_CHANNEL; 374 int _channel = DEFAULT_TOKEN_CHANNEL;
423 // InternalSolverLanguage.g:28:7: ( ':-' ) 375 // InternalSolverLanguage.g:24:7: ( ',' )
424 // InternalSolverLanguage.g:28:9: ':-' 376 // InternalSolverLanguage.g:24:9: ','
425 { 377 {
426 match(":-"); 378 match(',');
427
428 379
429 } 380 }
430 381
@@ -441,10 +392,11 @@ public class InternalSolverLanguageLexer extends Lexer {
441 try { 392 try {
442 int _type = T__29; 393 int _type = T__29;
443 int _channel = DEFAULT_TOKEN_CHANNEL; 394 int _channel = DEFAULT_TOKEN_CHANNEL;
444 // InternalSolverLanguage.g:29:7: ( '|' ) 395 // InternalSolverLanguage.g:25:7: ( 'count' )
445 // InternalSolverLanguage.g:29:9: '|' 396 // InternalSolverLanguage.g:25:9: 'count'
446 { 397 {
447 match('|'); 398 match("count");
399
448 400
449 } 401 }
450 402
@@ -461,10 +413,10 @@ public class InternalSolverLanguageLexer extends Lexer {
461 try { 413 try {
462 int _type = T__30; 414 int _type = T__30;
463 int _channel = DEFAULT_TOKEN_CHANNEL; 415 int _channel = DEFAULT_TOKEN_CHANNEL;
464 // InternalSolverLanguage.g:30:7: ( '+' ) 416 // InternalSolverLanguage.g:26:7: ( '{' )
465 // InternalSolverLanguage.g:30:9: '+' 417 // InternalSolverLanguage.g:26:9: '{'
466 { 418 {
467 match('+'); 419 match('{');
468 420
469 } 421 }
470 422
@@ -481,10 +433,10 @@ public class InternalSolverLanguageLexer extends Lexer {
481 try { 433 try {
482 int _type = T__31; 434 int _type = T__31;
483 int _channel = DEFAULT_TOKEN_CHANNEL; 435 int _channel = DEFAULT_TOKEN_CHANNEL;
484 // InternalSolverLanguage.g:31:7: ( '*' ) 436 // InternalSolverLanguage.g:27:7: ( '}' )
485 // InternalSolverLanguage.g:31:9: '*' 437 // InternalSolverLanguage.g:27:9: '}'
486 { 438 {
487 match('*'); 439 match('}');
488 440
489 } 441 }
490 442
@@ -501,11 +453,10 @@ public class InternalSolverLanguageLexer extends Lexer {
501 try { 453 try {
502 int _type = T__32; 454 int _type = T__32;
503 int _channel = DEFAULT_TOKEN_CHANNEL; 455 int _channel = DEFAULT_TOKEN_CHANNEL;
504 // InternalSolverLanguage.g:32:7: ( 'default' ) 456 // InternalSolverLanguage.g:28:7: ( '|' )
505 // InternalSolverLanguage.g:32:9: 'default' 457 // InternalSolverLanguage.g:28:9: '|'
506 { 458 {
507 match("default"); 459 match('|');
508
509 460
510 } 461 }
511 462
@@ -522,11 +473,10 @@ public class InternalSolverLanguageLexer extends Lexer {
522 try { 473 try {
523 int _type = T__33; 474 int _type = T__33;
524 int _channel = DEFAULT_TOKEN_CHANNEL; 475 int _channel = DEFAULT_TOKEN_CHANNEL;
525 // InternalSolverLanguage.g:33:7: ( 'abstract' ) 476 // InternalSolverLanguage.g:29:7: ( '(' )
526 // InternalSolverLanguage.g:33:9: 'abstract' 477 // InternalSolverLanguage.g:29:9: '('
527 { 478 {
528 match("abstract"); 479 match('(');
529
530 480
531 } 481 }
532 482
@@ -543,11 +493,10 @@ public class InternalSolverLanguageLexer extends Lexer {
543 try { 493 try {
544 int _type = T__34; 494 int _type = T__34;
545 int _channel = DEFAULT_TOKEN_CHANNEL; 495 int _channel = DEFAULT_TOKEN_CHANNEL;
546 // InternalSolverLanguage.g:34:7: ( 'class' ) 496 // InternalSolverLanguage.g:30:7: ( ')' )
547 // InternalSolverLanguage.g:34:9: 'class' 497 // InternalSolverLanguage.g:30:9: ')'
548 { 498 {
549 match("class"); 499 match(')');
550
551 500
552 } 501 }
553 502
@@ -564,11 +513,10 @@ public class InternalSolverLanguageLexer extends Lexer {
564 try { 513 try {
565 int _type = T__35; 514 int _type = T__35;
566 int _channel = DEFAULT_TOKEN_CHANNEL; 515 int _channel = DEFAULT_TOKEN_CHANNEL;
567 // InternalSolverLanguage.g:35:7: ( 'extends' ) 516 // InternalSolverLanguage.g:31:7: ( '*' )
568 // InternalSolverLanguage.g:35:9: 'extends' 517 // InternalSolverLanguage.g:31:9: '*'
569 { 518 {
570 match("extends"); 519 match('*');
571
572 520
573 } 521 }
574 522
@@ -585,10 +533,10 @@ public class InternalSolverLanguageLexer extends Lexer {
585 try { 533 try {
586 int _type = T__36; 534 int _type = T__36;
587 int _channel = DEFAULT_TOKEN_CHANNEL; 535 int _channel = DEFAULT_TOKEN_CHANNEL;
588 // InternalSolverLanguage.g:36:7: ( '{' ) 536 // InternalSolverLanguage.g:32:7: ( '[' )
589 // InternalSolverLanguage.g:36:9: '{' 537 // InternalSolverLanguage.g:32:9: '['
590 { 538 {
591 match('{'); 539 match('[');
592 540
593 } 541 }
594 542
@@ -605,10 +553,11 @@ public class InternalSolverLanguageLexer extends Lexer {
605 try { 553 try {
606 int _type = T__37; 554 int _type = T__37;
607 int _channel = DEFAULT_TOKEN_CHANNEL; 555 int _channel = DEFAULT_TOKEN_CHANNEL;
608 // InternalSolverLanguage.g:37:7: ( '}' ) 556 // InternalSolverLanguage.g:33:7: ( '..' )
609 // InternalSolverLanguage.g:37:9: '}' 557 // InternalSolverLanguage.g:33:9: '..'
610 { 558 {
611 match('}'); 559 match("..");
560
612 561
613 } 562 }
614 563
@@ -625,11 +574,10 @@ public class InternalSolverLanguageLexer extends Lexer {
625 try { 574 try {
626 int _type = T__38; 575 int _type = T__38;
627 int _channel = DEFAULT_TOKEN_CHANNEL; 576 int _channel = DEFAULT_TOKEN_CHANNEL;
628 // InternalSolverLanguage.g:38:7: ( 'enum' ) 577 // InternalSolverLanguage.g:34:7: ( ']' )
629 // InternalSolverLanguage.g:38:9: 'enum' 578 // InternalSolverLanguage.g:34:9: ']'
630 { 579 {
631 match("enum"); 580 match(']');
632
633 581
634 } 582 }
635 583
@@ -646,10 +594,10 @@ public class InternalSolverLanguageLexer extends Lexer {
646 try { 594 try {
647 int _type = T__39; 595 int _type = T__39;
648 int _channel = DEFAULT_TOKEN_CHANNEL; 596 int _channel = DEFAULT_TOKEN_CHANNEL;
649 // InternalSolverLanguage.g:39:7: ( 'containment' ) 597 // InternalSolverLanguage.g:35:7: ( 'inf' )
650 // InternalSolverLanguage.g:39:9: 'containment' 598 // InternalSolverLanguage.g:35:9: 'inf'
651 { 599 {
652 match("containment"); 600 match("inf");
653 601
654 602
655 } 603 }
@@ -667,10 +615,10 @@ public class InternalSolverLanguageLexer extends Lexer {
667 try { 615 try {
668 int _type = T__40; 616 int _type = T__40;
669 int _channel = DEFAULT_TOKEN_CHANNEL; 617 int _channel = DEFAULT_TOKEN_CHANNEL;
670 // InternalSolverLanguage.g:40:7: ( 'relation' ) 618 // InternalSolverLanguage.g:36:7: ( 'empty' )
671 // InternalSolverLanguage.g:40:9: 'relation' 619 // InternalSolverLanguage.g:36:9: 'empty'
672 { 620 {
673 match("relation"); 621 match("empty");
674 622
675 623
676 } 624 }
@@ -688,10 +636,10 @@ public class InternalSolverLanguageLexer extends Lexer {
688 try { 636 try {
689 int _type = T__41; 637 int _type = T__41;
690 int _channel = DEFAULT_TOKEN_CHANNEL; 638 int _channel = DEFAULT_TOKEN_CHANNEL;
691 // InternalSolverLanguage.g:41:7: ( '..' ) 639 // InternalSolverLanguage.g:37:7: ( 'abstract' )
692 // InternalSolverLanguage.g:41:9: '..' 640 // InternalSolverLanguage.g:37:9: 'abstract'
693 { 641 {
694 match(".."); 642 match("abstract");
695 643
696 644
697 } 645 }
@@ -704,16 +652,702 @@ public class InternalSolverLanguageLexer extends Lexer {
704 } 652 }
705 // $ANTLR end "T__41" 653 // $ANTLR end "T__41"
706 654
655 // $ANTLR start "T__42"
656 public final void mT__42() throws RecognitionException {
657 try {
658 int _type = T__42;
659 int _channel = DEFAULT_TOKEN_CHANNEL;
660 // InternalSolverLanguage.g:38:7: ( 'class' )
661 // InternalSolverLanguage.g:38:9: 'class'
662 {
663 match("class");
664
665
666 }
667
668 state.type = _type;
669 state.channel = _channel;
670 }
671 finally {
672 }
673 }
674 // $ANTLR end "T__42"
675
676 // $ANTLR start "T__43"
677 public final void mT__43() throws RecognitionException {
678 try {
679 int _type = T__43;
680 int _channel = DEFAULT_TOKEN_CHANNEL;
681 // InternalSolverLanguage.g:39:7: ( 'extends' )
682 // InternalSolverLanguage.g:39:9: 'extends'
683 {
684 match("extends");
685
686
687 }
688
689 state.type = _type;
690 state.channel = _channel;
691 }
692 finally {
693 }
694 }
695 // $ANTLR end "T__43"
696
697 // $ANTLR start "T__44"
698 public final void mT__44() throws RecognitionException {
699 try {
700 int _type = T__44;
701 int _channel = DEFAULT_TOKEN_CHANNEL;
702 // InternalSolverLanguage.g:40:7: ( 'contains' )
703 // InternalSolverLanguage.g:40:9: 'contains'
704 {
705 match("contains");
706
707
708 }
709
710 state.type = _type;
711 state.channel = _channel;
712 }
713 finally {
714 }
715 }
716 // $ANTLR end "T__44"
717
718 // $ANTLR start "T__45"
719 public final void mT__45() throws RecognitionException {
720 try {
721 int _type = T__45;
722 int _channel = DEFAULT_TOKEN_CHANNEL;
723 // InternalSolverLanguage.g:41:7: ( 'opposite' )
724 // InternalSolverLanguage.g:41:9: 'opposite'
725 {
726 match("opposite");
727
728
729 }
730
731 state.type = _type;
732 state.channel = _channel;
733 }
734 finally {
735 }
736 }
737 // $ANTLR end "T__45"
738
739 // $ANTLR start "T__46"
740 public final void mT__46() throws RecognitionException {
741 try {
742 int _type = T__46;
743 int _channel = DEFAULT_TOKEN_CHANNEL;
744 // InternalSolverLanguage.g:42:7: ( 'scope' )
745 // InternalSolverLanguage.g:42:9: 'scope'
746 {
747 match("scope");
748
749
750 }
751
752 state.type = _type;
753 state.channel = _channel;
754 }
755 finally {
756 }
757 }
758 // $ANTLR end "T__46"
759
760 // $ANTLR start "T__47"
761 public final void mT__47() throws RecognitionException {
762 try {
763 int _type = T__47;
764 int _channel = DEFAULT_TOKEN_CHANNEL;
765 // InternalSolverLanguage.g:43:7: ( '==' )
766 // InternalSolverLanguage.g:43:9: '=='
767 {
768 match("==");
769
770
771 }
772
773 state.type = _type;
774 state.channel = _channel;
775 }
776 finally {
777 }
778 }
779 // $ANTLR end "T__47"
780
781 // $ANTLR start "T__48"
782 public final void mT__48() throws RecognitionException {
783 try {
784 int _type = T__48;
785 int _channel = DEFAULT_TOKEN_CHANNEL;
786 // InternalSolverLanguage.g:44:7: ( '<=' )
787 // InternalSolverLanguage.g:44:9: '<='
788 {
789 match("<=");
790
791
792 }
793
794 state.type = _type;
795 state.channel = _channel;
796 }
797 finally {
798 }
799 }
800 // $ANTLR end "T__48"
801
802 // $ANTLR start "T__49"
803 public final void mT__49() throws RecognitionException {
804 try {
805 int _type = T__49;
806 int _channel = DEFAULT_TOKEN_CHANNEL;
807 // InternalSolverLanguage.g:45:7: ( '>=' )
808 // InternalSolverLanguage.g:45:9: '>='
809 {
810 match(">=");
811
812
813 }
814
815 state.type = _type;
816 state.channel = _channel;
817 }
818 finally {
819 }
820 }
821 // $ANTLR end "T__49"
822
823 // $ANTLR start "T__50"
824 public final void mT__50() throws RecognitionException {
825 try {
826 int _type = T__50;
827 int _channel = DEFAULT_TOKEN_CHANNEL;
828 // InternalSolverLanguage.g:46:7: ( 'int' )
829 // InternalSolverLanguage.g:46:9: 'int'
830 {
831 match("int");
832
833
834 }
835
836 state.type = _type;
837 state.channel = _channel;
838 }
839 finally {
840 }
841 }
842 // $ANTLR end "T__50"
843
844 // $ANTLR start "T__51"
845 public final void mT__51() throws RecognitionException {
846 try {
847 int _type = T__51;
848 int _channel = DEFAULT_TOKEN_CHANNEL;
849 // InternalSolverLanguage.g:47:7: ( 'real' )
850 // InternalSolverLanguage.g:47:9: 'real'
851 {
852 match("real");
853
854
855 }
856
857 state.type = _type;
858 state.channel = _channel;
859 }
860 finally {
861 }
862 }
863 // $ANTLR end "T__51"
864
865 // $ANTLR start "T__52"
866 public final void mT__52() throws RecognitionException {
867 try {
868 int _type = T__52;
869 int _channel = DEFAULT_TOKEN_CHANNEL;
870 // InternalSolverLanguage.g:48:7: ( '!=' )
871 // InternalSolverLanguage.g:48:9: '!='
872 {
873 match("!=");
874
875
876 }
877
878 state.type = _type;
879 state.channel = _channel;
880 }
881 finally {
882 }
883 }
884 // $ANTLR end "T__52"
885
886 // $ANTLR start "T__53"
887 public final void mT__53() throws RecognitionException {
888 try {
889 int _type = T__53;
890 int _channel = DEFAULT_TOKEN_CHANNEL;
891 // InternalSolverLanguage.g:49:7: ( '<' )
892 // InternalSolverLanguage.g:49:9: '<'
893 {
894 match('<');
895
896 }
897
898 state.type = _type;
899 state.channel = _channel;
900 }
901 finally {
902 }
903 }
904 // $ANTLR end "T__53"
905
906 // $ANTLR start "T__54"
907 public final void mT__54() throws RecognitionException {
908 try {
909 int _type = T__54;
910 int _channel = DEFAULT_TOKEN_CHANNEL;
911 // InternalSolverLanguage.g:50:7: ( '>' )
912 // InternalSolverLanguage.g:50:9: '>'
913 {
914 match('>');
915
916 }
917
918 state.type = _type;
919 state.channel = _channel;
920 }
921 finally {
922 }
923 }
924 // $ANTLR end "T__54"
925
926 // $ANTLR start "T__55"
927 public final void mT__55() throws RecognitionException {
928 try {
929 int _type = T__55;
930 int _channel = DEFAULT_TOKEN_CHANNEL;
931 // InternalSolverLanguage.g:51:7: ( 'in' )
932 // InternalSolverLanguage.g:51:9: 'in'
933 {
934 match("in");
935
936
937 }
938
939 state.type = _type;
940 state.channel = _channel;
941 }
942 finally {
943 }
944 }
945 // $ANTLR end "T__55"
946
947 // $ANTLR start "T__56"
948 public final void mT__56() throws RecognitionException {
949 try {
950 int _type = T__56;
951 int _channel = DEFAULT_TOKEN_CHANNEL;
952 // InternalSolverLanguage.g:52:7: ( '+' )
953 // InternalSolverLanguage.g:52:9: '+'
954 {
955 match('+');
956
957 }
958
959 state.type = _type;
960 state.channel = _channel;
961 }
962 finally {
963 }
964 }
965 // $ANTLR end "T__56"
966
967 // $ANTLR start "T__57"
968 public final void mT__57() throws RecognitionException {
969 try {
970 int _type = T__57;
971 int _channel = DEFAULT_TOKEN_CHANNEL;
972 // InternalSolverLanguage.g:53:7: ( '-' )
973 // InternalSolverLanguage.g:53:9: '-'
974 {
975 match('-');
976
977 }
978
979 state.type = _type;
980 state.channel = _channel;
981 }
982 finally {
983 }
984 }
985 // $ANTLR end "T__57"
986
987 // $ANTLR start "T__58"
988 public final void mT__58() throws RecognitionException {
989 try {
990 int _type = T__58;
991 int _channel = DEFAULT_TOKEN_CHANNEL;
992 // InternalSolverLanguage.g:54:7: ( '/' )
993 // InternalSolverLanguage.g:54:9: '/'
994 {
995 match('/');
996
997 }
998
999 state.type = _type;
1000 state.channel = _channel;
1001 }
1002 finally {
1003 }
1004 }
1005 // $ANTLR end "T__58"
1006
1007 // $ANTLR start "T__59"
1008 public final void mT__59() throws RecognitionException {
1009 try {
1010 int _type = T__59;
1011 int _channel = DEFAULT_TOKEN_CHANNEL;
1012 // InternalSolverLanguage.g:55:7: ( '^' )
1013 // InternalSolverLanguage.g:55:9: '^'
1014 {
1015 match('^');
1016
1017 }
1018
1019 state.type = _type;
1020 state.channel = _channel;
1021 }
1022 finally {
1023 }
1024 }
1025 // $ANTLR end "T__59"
1026
1027 // $ANTLR start "T__60"
1028 public final void mT__60() throws RecognitionException {
1029 try {
1030 int _type = T__60;
1031 int _channel = DEFAULT_TOKEN_CHANNEL;
1032 // InternalSolverLanguage.g:56:7: ( '!' )
1033 // InternalSolverLanguage.g:56:9: '!'
1034 {
1035 match('!');
1036
1037 }
1038
1039 state.type = _type;
1040 state.channel = _channel;
1041 }
1042 finally {
1043 }
1044 }
1045 // $ANTLR end "T__60"
1046
1047 // $ANTLR start "T__61"
1048 public final void mT__61() throws RecognitionException {
1049 try {
1050 int _type = T__61;
1051 int _channel = DEFAULT_TOKEN_CHANNEL;
1052 // InternalSolverLanguage.g:57:7: ( 'may' )
1053 // InternalSolverLanguage.g:57:9: 'may'
1054 {
1055 match("may");
1056
1057
1058 }
1059
1060 state.type = _type;
1061 state.channel = _channel;
1062 }
1063 finally {
1064 }
1065 }
1066 // $ANTLR end "T__61"
1067
1068 // $ANTLR start "T__62"
1069 public final void mT__62() throws RecognitionException {
1070 try {
1071 int _type = T__62;
1072 int _channel = DEFAULT_TOKEN_CHANNEL;
1073 // InternalSolverLanguage.g:58:7: ( 'must' )
1074 // InternalSolverLanguage.g:58:9: 'must'
1075 {
1076 match("must");
1077
1078
1079 }
1080
1081 state.type = _type;
1082 state.channel = _channel;
1083 }
1084 finally {
1085 }
1086 }
1087 // $ANTLR end "T__62"
1088
1089 // $ANTLR start "T__63"
1090 public final void mT__63() throws RecognitionException {
1091 try {
1092 int _type = T__63;
1093 int _channel = DEFAULT_TOKEN_CHANNEL;
1094 // InternalSolverLanguage.g:59:7: ( 'current' )
1095 // InternalSolverLanguage.g:59:9: 'current'
1096 {
1097 match("current");
1098
1099
1100 }
1101
1102 state.type = _type;
1103 state.channel = _channel;
1104 }
1105 finally {
1106 }
1107 }
1108 // $ANTLR end "T__63"
1109
1110 // $ANTLR start "T__64"
1111 public final void mT__64() throws RecognitionException {
1112 try {
1113 int _type = T__64;
1114 int _channel = DEFAULT_TOKEN_CHANNEL;
1115 // InternalSolverLanguage.g:60:7: ( 'only' )
1116 // InternalSolverLanguage.g:60:9: 'only'
1117 {
1118 match("only");
1119
1120
1121 }
1122
1123 state.type = _type;
1124 state.channel = _channel;
1125 }
1126 finally {
1127 }
1128 }
1129 // $ANTLR end "T__64"
1130
1131 // $ANTLR start "T__65"
1132 public final void mT__65() throws RecognitionException {
1133 try {
1134 int _type = T__65;
1135 int _channel = DEFAULT_TOKEN_CHANNEL;
1136 // InternalSolverLanguage.g:61:7: ( 'sum' )
1137 // InternalSolverLanguage.g:61:9: 'sum'
1138 {
1139 match("sum");
1140
1141
1142 }
1143
1144 state.type = _type;
1145 state.channel = _channel;
1146 }
1147 finally {
1148 }
1149 }
1150 // $ANTLR end "T__65"
1151
1152 // $ANTLR start "T__66"
1153 public final void mT__66() throws RecognitionException {
1154 try {
1155 int _type = T__66;
1156 int _channel = DEFAULT_TOKEN_CHANNEL;
1157 // InternalSolverLanguage.g:62:7: ( 'prod' )
1158 // InternalSolverLanguage.g:62:9: 'prod'
1159 {
1160 match("prod");
1161
1162
1163 }
1164
1165 state.type = _type;
1166 state.channel = _channel;
1167 }
1168 finally {
1169 }
1170 }
1171 // $ANTLR end "T__66"
1172
1173 // $ANTLR start "T__67"
1174 public final void mT__67() throws RecognitionException {
1175 try {
1176 int _type = T__67;
1177 int _channel = DEFAULT_TOKEN_CHANNEL;
1178 // InternalSolverLanguage.g:63:7: ( 'avg' )
1179 // InternalSolverLanguage.g:63:9: 'avg'
1180 {
1181 match("avg");
1182
1183
1184 }
1185
1186 state.type = _type;
1187 state.channel = _channel;
1188 }
1189 finally {
1190 }
1191 }
1192 // $ANTLR end "T__67"
1193
1194 // $ANTLR start "T__68"
1195 public final void mT__68() throws RecognitionException {
1196 try {
1197 int _type = T__68;
1198 int _channel = DEFAULT_TOKEN_CHANNEL;
1199 // InternalSolverLanguage.g:64:7: ( 'min' )
1200 // InternalSolverLanguage.g:64:9: 'min'
1201 {
1202 match("min");
1203
1204
1205 }
1206
1207 state.type = _type;
1208 state.channel = _channel;
1209 }
1210 finally {
1211 }
1212 }
1213 // $ANTLR end "T__68"
1214
1215 // $ANTLR start "T__69"
1216 public final void mT__69() throws RecognitionException {
1217 try {
1218 int _type = T__69;
1219 int _channel = DEFAULT_TOKEN_CHANNEL;
1220 // InternalSolverLanguage.g:65:7: ( 'max' )
1221 // InternalSolverLanguage.g:65:9: 'max'
1222 {
1223 match("max");
1224
1225
1226 }
1227
1228 state.type = _type;
1229 state.channel = _channel;
1230 }
1231 finally {
1232 }
1233 }
1234 // $ANTLR end "T__69"
1235
1236 // $ANTLR start "T__70"
1237 public final void mT__70() throws RecognitionException {
1238 try {
1239 int _type = T__70;
1240 int _channel = DEFAULT_TOKEN_CHANNEL;
1241 // InternalSolverLanguage.g:66:7: ( 'true' )
1242 // InternalSolverLanguage.g:66:9: 'true'
1243 {
1244 match("true");
1245
1246
1247 }
1248
1249 state.type = _type;
1250 state.channel = _channel;
1251 }
1252 finally {
1253 }
1254 }
1255 // $ANTLR end "T__70"
1256
1257 // $ANTLR start "T__71"
1258 public final void mT__71() throws RecognitionException {
1259 try {
1260 int _type = T__71;
1261 int _channel = DEFAULT_TOKEN_CHANNEL;
1262 // InternalSolverLanguage.g:67:7: ( 'false' )
1263 // InternalSolverLanguage.g:67:9: 'false'
1264 {
1265 match("false");
1266
1267
1268 }
1269
1270 state.type = _type;
1271 state.channel = _channel;
1272 }
1273 finally {
1274 }
1275 }
1276 // $ANTLR end "T__71"
1277
1278 // $ANTLR start "T__72"
1279 public final void mT__72() throws RecognitionException {
1280 try {
1281 int _type = T__72;
1282 int _channel = DEFAULT_TOKEN_CHANNEL;
1283 // InternalSolverLanguage.g:68:7: ( 'unknown' )
1284 // InternalSolverLanguage.g:68:9: 'unknown'
1285 {
1286 match("unknown");
1287
1288
1289 }
1290
1291 state.type = _type;
1292 state.channel = _channel;
1293 }
1294 finally {
1295 }
1296 }
1297 // $ANTLR end "T__72"
1298
1299 // $ANTLR start "T__73"
1300 public final void mT__73() throws RecognitionException {
1301 try {
1302 int _type = T__73;
1303 int _channel = DEFAULT_TOKEN_CHANNEL;
1304 // InternalSolverLanguage.g:69:7: ( 'minimize' )
1305 // InternalSolverLanguage.g:69:9: 'minimize'
1306 {
1307 match("minimize");
1308
1309
1310 }
1311
1312 state.type = _type;
1313 state.channel = _channel;
1314 }
1315 finally {
1316 }
1317 }
1318 // $ANTLR end "T__73"
1319
1320 // $ANTLR start "T__74"
1321 public final void mT__74() throws RecognitionException {
1322 try {
1323 int _type = T__74;
1324 int _channel = DEFAULT_TOKEN_CHANNEL;
1325 // InternalSolverLanguage.g:70:7: ( 'maximize' )
1326 // InternalSolverLanguage.g:70:9: 'maximize'
1327 {
1328 match("maximize");
1329
1330
1331 }
1332
1333 state.type = _type;
1334 state.channel = _channel;
1335 }
1336 finally {
1337 }
1338 }
1339 // $ANTLR end "T__74"
1340
707 // $ANTLR start "RULE_STRING" 1341 // $ANTLR start "RULE_STRING"
708 public final void mRULE_STRING() throws RecognitionException { 1342 public final void mRULE_STRING() throws RecognitionException {
709 try { 1343 try {
710 int _type = RULE_STRING; 1344 int _type = RULE_STRING;
711 int _channel = DEFAULT_TOKEN_CHANNEL; 1345 int _channel = DEFAULT_TOKEN_CHANNEL;
712 // InternalSolverLanguage.g:2497:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) 1346 // InternalSolverLanguage.g:3882:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
713 // InternalSolverLanguage.g:2497:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' 1347 // InternalSolverLanguage.g:3882:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
714 { 1348 {
715 match('\"'); 1349 match('\"');
716 // InternalSolverLanguage.g:2497:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* 1350 // InternalSolverLanguage.g:3882:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
717 loop1: 1351 loop1:
718 do { 1352 do {
719 int alt1=3; 1353 int alt1=3;
@@ -729,7 +1363,7 @@ public class InternalSolverLanguageLexer extends Lexer {
729 1363
730 switch (alt1) { 1364 switch (alt1) {
731 case 1 : 1365 case 1 :
732 // InternalSolverLanguage.g:2497:20: '\\\\' . 1366 // InternalSolverLanguage.g:3882:20: '\\\\' .
733 { 1367 {
734 match('\\'); 1368 match('\\');
735 matchAny(); 1369 matchAny();
@@ -737,7 +1371,7 @@ public class InternalSolverLanguageLexer extends Lexer {
737 } 1371 }
738 break; 1372 break;
739 case 2 : 1373 case 2 :
740 // InternalSolverLanguage.g:2497:27: ~ ( ( '\\\\' | '\"' ) ) 1374 // InternalSolverLanguage.g:3882:27: ~ ( ( '\\\\' | '\"' ) )
741 { 1375 {
742 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 1376 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
743 input.consume(); 1377 input.consume();
@@ -769,24 +1403,152 @@ public class InternalSolverLanguageLexer extends Lexer {
769 } 1403 }
770 // $ANTLR end "RULE_STRING" 1404 // $ANTLR end "RULE_STRING"
771 1405
1406 // $ANTLR start "RULE_QUOTED_ID"
1407 public final void mRULE_QUOTED_ID() throws RecognitionException {
1408 try {
1409 int _type = RULE_QUOTED_ID;
1410 int _channel = DEFAULT_TOKEN_CHANNEL;
1411 // InternalSolverLanguage.g:3884:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
1412 // InternalSolverLanguage.g:3884:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
1413 {
1414 match('\'');
1415 // InternalSolverLanguage.g:3884:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
1416 loop2:
1417 do {
1418 int alt2=3;
1419 int LA2_0 = input.LA(1);
1420
1421 if ( (LA2_0=='\\') ) {
1422 alt2=1;
1423 }
1424 else if ( ((LA2_0>='\u0000' && LA2_0<='&')||(LA2_0>='(' && LA2_0<='[')||(LA2_0>=']' && LA2_0<='\uFFFF')) ) {
1425 alt2=2;
1426 }
1427
1428
1429 switch (alt2) {
1430 case 1 :
1431 // InternalSolverLanguage.g:3884:24: '\\\\' .
1432 {
1433 match('\\');
1434 matchAny();
1435
1436 }
1437 break;
1438 case 2 :
1439 // InternalSolverLanguage.g:3884:31: ~ ( ( '\\\\' | '\\'' ) )
1440 {
1441 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
1442 input.consume();
1443
1444 }
1445 else {
1446 MismatchedSetException mse = new MismatchedSetException(null,input);
1447 recover(mse);
1448 throw mse;}
1449
1450
1451 }
1452 break;
1453
1454 default :
1455 break loop2;
1456 }
1457 } while (true);
1458
1459 match('\'');
1460
1461 }
1462
1463 state.type = _type;
1464 state.channel = _channel;
1465 }
1466 finally {
1467 }
1468 }
1469 // $ANTLR end "RULE_QUOTED_ID"
1470
1471 // $ANTLR start "RULE_PLUS"
1472 public final void mRULE_PLUS() throws RecognitionException {
1473 try {
1474 int _type = RULE_PLUS;
1475 int _channel = DEFAULT_TOKEN_CHANNEL;
1476 // InternalSolverLanguage.g:3886:11: ( 'synthetic::plus' )
1477 // InternalSolverLanguage.g:3886:13: 'synthetic::plus'
1478 {
1479 match("synthetic::plus");
1480
1481
1482 }
1483
1484 state.type = _type;
1485 state.channel = _channel;
1486 }
1487 finally {
1488 }
1489 }
1490 // $ANTLR end "RULE_PLUS"
1491
1492 // $ANTLR start "RULE_STAR"
1493 public final void mRULE_STAR() throws RecognitionException {
1494 try {
1495 int _type = RULE_STAR;
1496 int _channel = DEFAULT_TOKEN_CHANNEL;
1497 // InternalSolverLanguage.g:3888:11: ( 'synthetic::star' )
1498 // InternalSolverLanguage.g:3888:13: 'synthetic::star'
1499 {
1500 match("synthetic::star");
1501
1502
1503 }
1504
1505 state.type = _type;
1506 state.channel = _channel;
1507 }
1508 finally {
1509 }
1510 }
1511 // $ANTLR end "RULE_STAR"
1512
1513 // $ANTLR start "RULE_DOT"
1514 public final void mRULE_DOT() throws RecognitionException {
1515 try {
1516 int _type = RULE_DOT;
1517 int _channel = DEFAULT_TOKEN_CHANNEL;
1518 // InternalSolverLanguage.g:3890:10: ( 'synthetic::dot' )
1519 // InternalSolverLanguage.g:3890:12: 'synthetic::dot'
1520 {
1521 match("synthetic::dot");
1522
1523
1524 }
1525
1526 state.type = _type;
1527 state.channel = _channel;
1528 }
1529 finally {
1530 }
1531 }
1532 // $ANTLR end "RULE_DOT"
1533
772 // $ANTLR start "RULE_ID" 1534 // $ANTLR start "RULE_ID"
773 public final void mRULE_ID() throws RecognitionException { 1535 public final void mRULE_ID() throws RecognitionException {
774 try { 1536 try {
775 int _type = RULE_ID; 1537 int _type = RULE_ID;
776 int _channel = DEFAULT_TOKEN_CHANNEL; 1538 int _channel = DEFAULT_TOKEN_CHANNEL;
777 // InternalSolverLanguage.g:2499:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) 1539 // InternalSolverLanguage.g:3892:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
778 // InternalSolverLanguage.g:2499:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 1540 // InternalSolverLanguage.g:3892:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
779 { 1541 {
780 // InternalSolverLanguage.g:2499:11: ( '^' )? 1542 // InternalSolverLanguage.g:3892:11: ( '^' )?
781 int alt2=2; 1543 int alt3=2;
782 int LA2_0 = input.LA(1); 1544 int LA3_0 = input.LA(1);
783 1545
784 if ( (LA2_0=='^') ) { 1546 if ( (LA3_0=='^') ) {
785 alt2=1; 1547 alt3=1;
786 } 1548 }
787 switch (alt2) { 1549 switch (alt3) {
788 case 1 : 1550 case 1 :
789 // InternalSolverLanguage.g:2499:11: '^' 1551 // InternalSolverLanguage.g:3892:11: '^'
790 { 1552 {
791 match('^'); 1553 match('^');
792 1554
@@ -804,18 +1566,18 @@ public class InternalSolverLanguageLexer extends Lexer {
804 recover(mse); 1566 recover(mse);
805 throw mse;} 1567 throw mse;}
806 1568
807 // InternalSolverLanguage.g:2499:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 1569 // InternalSolverLanguage.g:3892:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
808 loop3: 1570 loop4:
809 do { 1571 do {
810 int alt3=2; 1572 int alt4=2;
811 int LA3_0 = input.LA(1); 1573 int LA4_0 = input.LA(1);
812 1574
813 if ( ((LA3_0>='0' && LA3_0<='9')||(LA3_0>='A' && LA3_0<='Z')||LA3_0=='_'||(LA3_0>='a' && LA3_0<='z')) ) { 1575 if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) {
814 alt3=1; 1576 alt4=1;
815 } 1577 }
816 1578
817 1579
818 switch (alt3) { 1580 switch (alt4) {
819 case 1 : 1581 case 1 :
820 // InternalSolverLanguage.g: 1582 // InternalSolverLanguage.g:
821 { 1583 {
@@ -833,7 +1595,7 @@ public class InternalSolverLanguageLexer extends Lexer {
833 break; 1595 break;
834 1596
835 default : 1597 default :
836 break loop3; 1598 break loop4;
837 } 1599 }
838 } while (true); 1600 } while (true);
839 1601
@@ -853,24 +1615,24 @@ public class InternalSolverLanguageLexer extends Lexer {
853 try { 1615 try {
854 int _type = RULE_INT; 1616 int _type = RULE_INT;
855 int _channel = DEFAULT_TOKEN_CHANNEL; 1617 int _channel = DEFAULT_TOKEN_CHANNEL;
856 // InternalSolverLanguage.g:2501:10: ( ( '0' .. '9' )+ ) 1618 // InternalSolverLanguage.g:3894:10: ( ( '0' .. '9' )+ )
857 // InternalSolverLanguage.g:2501:12: ( '0' .. '9' )+ 1619 // InternalSolverLanguage.g:3894:12: ( '0' .. '9' )+
858 { 1620 {
859 // InternalSolverLanguage.g:2501:12: ( '0' .. '9' )+ 1621 // InternalSolverLanguage.g:3894:12: ( '0' .. '9' )+
860 int cnt4=0; 1622 int cnt5=0;
861 loop4: 1623 loop5:
862 do { 1624 do {
863 int alt4=2; 1625 int alt5=2;
864 int LA4_0 = input.LA(1); 1626 int LA5_0 = input.LA(1);
865 1627
866 if ( ((LA4_0>='0' && LA4_0<='9')) ) { 1628 if ( ((LA5_0>='0' && LA5_0<='9')) ) {
867 alt4=1; 1629 alt5=1;
868 } 1630 }
869 1631
870 1632
871 switch (alt4) { 1633 switch (alt5) {
872 case 1 : 1634 case 1 :
873 // InternalSolverLanguage.g:2501:13: '0' .. '9' 1635 // InternalSolverLanguage.g:3894:13: '0' .. '9'
874 { 1636 {
875 matchRange('0','9'); 1637 matchRange('0','9');
876 1638
@@ -878,12 +1640,12 @@ public class InternalSolverLanguageLexer extends Lexer {
878 break; 1640 break;
879 1641
880 default : 1642 default :
881 if ( cnt4 >= 1 ) break loop4; 1643 if ( cnt5 >= 1 ) break loop5;
882 EarlyExitException eee = 1644 EarlyExitException eee =
883 new EarlyExitException(4, input); 1645 new EarlyExitException(5, input);
884 throw eee; 1646 throw eee;
885 } 1647 }
886 cnt4++; 1648 cnt5++;
887 } while (true); 1649 } while (true);
888 1650
889 1651
@@ -902,37 +1664,37 @@ public class InternalSolverLanguageLexer extends Lexer {
902 try { 1664 try {
903 int _type = RULE_ML_COMMENT; 1665 int _type = RULE_ML_COMMENT;
904 int _channel = DEFAULT_TOKEN_CHANNEL; 1666 int _channel = DEFAULT_TOKEN_CHANNEL;
905 // InternalSolverLanguage.g:2503:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 1667 // InternalSolverLanguage.g:3896:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
906 // InternalSolverLanguage.g:2503:19: '/*' ( options {greedy=false; } : . )* '*/' 1668 // InternalSolverLanguage.g:3896:19: '/*' ( options {greedy=false; } : . )* '*/'
907 { 1669 {
908 match("/*"); 1670 match("/*");
909 1671
910 // InternalSolverLanguage.g:2503:24: ( options {greedy=false; } : . )* 1672 // InternalSolverLanguage.g:3896:24: ( options {greedy=false; } : . )*
911 loop5: 1673 loop6:
912 do { 1674 do {
913 int alt5=2; 1675 int alt6=2;
914 int LA5_0 = input.LA(1); 1676 int LA6_0 = input.LA(1);
915 1677
916 if ( (LA5_0=='*') ) { 1678 if ( (LA6_0=='*') ) {
917 int LA5_1 = input.LA(2); 1679 int LA6_1 = input.LA(2);
918 1680
919 if ( (LA5_1=='/') ) { 1681 if ( (LA6_1=='/') ) {
920 alt5=2; 1682 alt6=2;
921 } 1683 }
922 else if ( ((LA5_1>='\u0000' && LA5_1<='.')||(LA5_1>='0' && LA5_1<='\uFFFF')) ) { 1684 else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) {
923 alt5=1; 1685 alt6=1;
924 } 1686 }
925 1687
926 1688
927 } 1689 }
928 else if ( ((LA5_0>='\u0000' && LA5_0<=')')||(LA5_0>='+' && LA5_0<='\uFFFF')) ) { 1690 else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) {
929 alt5=1; 1691 alt6=1;
930 } 1692 }
931 1693
932 1694
933 switch (alt5) { 1695 switch (alt6) {
934 case 1 : 1696 case 1 :
935 // InternalSolverLanguage.g:2503:52: . 1697 // InternalSolverLanguage.g:3896:52: .
936 { 1698 {
937 matchAny(); 1699 matchAny();
938 1700
@@ -940,7 +1702,7 @@ public class InternalSolverLanguageLexer extends Lexer {
940 break; 1702 break;
941 1703
942 default : 1704 default :
943 break loop5; 1705 break loop6;
944 } 1706 }
945 } while (true); 1707 } while (true);
946 1708
@@ -962,25 +1724,25 @@ public class InternalSolverLanguageLexer extends Lexer {
962 try { 1724 try {
963 int _type = RULE_SL_COMMENT; 1725 int _type = RULE_SL_COMMENT;
964 int _channel = DEFAULT_TOKEN_CHANNEL; 1726 int _channel = DEFAULT_TOKEN_CHANNEL;
965 // InternalSolverLanguage.g:2505:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 1727 // InternalSolverLanguage.g:3898:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
966 // InternalSolverLanguage.g:2505:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 1728 // InternalSolverLanguage.g:3898:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
967 { 1729 {
968 match("//"); 1730 match("//");
969 1731
970 // InternalSolverLanguage.g:2505:24: (~ ( ( '\\n' | '\\r' ) ) )* 1732 // InternalSolverLanguage.g:3898:24: (~ ( ( '\\n' | '\\r' ) ) )*
971 loop6: 1733 loop7:
972 do { 1734 do {
973 int alt6=2; 1735 int alt7=2;
974 int LA6_0 = input.LA(1); 1736 int LA7_0 = input.LA(1);
975 1737
976 if ( ((LA6_0>='\u0000' && LA6_0<='\t')||(LA6_0>='\u000B' && LA6_0<='\f')||(LA6_0>='\u000E' && LA6_0<='\uFFFF')) ) { 1738 if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) {
977 alt6=1; 1739 alt7=1;
978 } 1740 }
979 1741
980 1742
981 switch (alt6) { 1743 switch (alt7) {
982 case 1 : 1744 case 1 :
983 // InternalSolverLanguage.g:2505:24: ~ ( ( '\\n' | '\\r' ) ) 1745 // InternalSolverLanguage.g:3898:24: ~ ( ( '\\n' | '\\r' ) )
984 { 1746 {
985 if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { 1747 if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
986 input.consume(); 1748 input.consume();
@@ -996,31 +1758,31 @@ public class InternalSolverLanguageLexer extends Lexer {
996 break; 1758 break;
997 1759
998 default : 1760 default :
999 break loop6; 1761 break loop7;
1000 } 1762 }
1001 } while (true); 1763 } while (true);
1002 1764
1003 // InternalSolverLanguage.g:2505:40: ( ( '\\r' )? '\\n' )? 1765 // InternalSolverLanguage.g:3898:40: ( ( '\\r' )? '\\n' )?
1004 int alt8=2; 1766 int alt9=2;
1005 int LA8_0 = input.LA(1); 1767 int LA9_0 = input.LA(1);
1006 1768
1007 if ( (LA8_0=='\n'||LA8_0=='\r') ) { 1769 if ( (LA9_0=='\n'||LA9_0=='\r') ) {
1008 alt8=1; 1770 alt9=1;
1009 } 1771 }
1010 switch (alt8) { 1772 switch (alt9) {
1011 case 1 : 1773 case 1 :
1012 // InternalSolverLanguage.g:2505:41: ( '\\r' )? '\\n' 1774 // InternalSolverLanguage.g:3898:41: ( '\\r' )? '\\n'
1013 { 1775 {
1014 // InternalSolverLanguage.g:2505:41: ( '\\r' )? 1776 // InternalSolverLanguage.g:3898:41: ( '\\r' )?
1015 int alt7=2; 1777 int alt8=2;
1016 int LA7_0 = input.LA(1); 1778 int LA8_0 = input.LA(1);
1017 1779
1018 if ( (LA7_0=='\r') ) { 1780 if ( (LA8_0=='\r') ) {
1019 alt7=1; 1781 alt8=1;
1020 } 1782 }
1021 switch (alt7) { 1783 switch (alt8) {
1022 case 1 : 1784 case 1 :
1023 // InternalSolverLanguage.g:2505:41: '\\r' 1785 // InternalSolverLanguage.g:3898:41: '\\r'
1024 { 1786 {
1025 match('\r'); 1787 match('\r');
1026 1788
@@ -1052,22 +1814,22 @@ public class InternalSolverLanguageLexer extends Lexer {
1052 try { 1814 try {
1053 int _type = RULE_WS; 1815 int _type = RULE_WS;
1054 int _channel = DEFAULT_TOKEN_CHANNEL; 1816 int _channel = DEFAULT_TOKEN_CHANNEL;
1055 // InternalSolverLanguage.g:2507:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) 1817 // InternalSolverLanguage.g:3900:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1056 // InternalSolverLanguage.g:2507:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1818 // InternalSolverLanguage.g:3900:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1057 { 1819 {
1058 // InternalSolverLanguage.g:2507:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1820 // InternalSolverLanguage.g:3900:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1059 int cnt9=0; 1821 int cnt10=0;
1060 loop9: 1822 loop10:
1061 do { 1823 do {
1062 int alt9=2; 1824 int alt10=2;
1063 int LA9_0 = input.LA(1); 1825 int LA10_0 = input.LA(1);
1064 1826
1065 if ( ((LA9_0>='\t' && LA9_0<='\n')||LA9_0=='\r'||LA9_0==' ') ) { 1827 if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) {
1066 alt9=1; 1828 alt10=1;
1067 } 1829 }
1068 1830
1069 1831
1070 switch (alt9) { 1832 switch (alt10) {
1071 case 1 : 1833 case 1 :
1072 // InternalSolverLanguage.g: 1834 // InternalSolverLanguage.g:
1073 { 1835 {
@@ -1085,12 +1847,12 @@ public class InternalSolverLanguageLexer extends Lexer {
1085 break; 1847 break;
1086 1848
1087 default : 1849 default :
1088 if ( cnt9 >= 1 ) break loop9; 1850 if ( cnt10 >= 1 ) break loop10;
1089 EarlyExitException eee = 1851 EarlyExitException eee =
1090 new EarlyExitException(9, input); 1852 new EarlyExitException(10, input);
1091 throw eee; 1853 throw eee;
1092 } 1854 }
1093 cnt9++; 1855 cnt10++;
1094 } while (true); 1856 } while (true);
1095 1857
1096 1858
@@ -1109,8 +1871,8 @@ public class InternalSolverLanguageLexer extends Lexer {
1109 try { 1871 try {
1110 int _type = RULE_ANY_OTHER; 1872 int _type = RULE_ANY_OTHER;
1111 int _channel = DEFAULT_TOKEN_CHANNEL; 1873 int _channel = DEFAULT_TOKEN_CHANNEL;
1112 // InternalSolverLanguage.g:2509:16: ( . ) 1874 // InternalSolverLanguage.g:3902:16: ( . )
1113 // InternalSolverLanguage.g:2509:18: . 1875 // InternalSolverLanguage.g:3902:18: .
1114 { 1876 {
1115 matchAny(); 1877 matchAny();
1116 1878
@@ -1125,271 +1887,502 @@ public class InternalSolverLanguageLexer extends Lexer {
1125 // $ANTLR end "RULE_ANY_OTHER" 1887 // $ANTLR end "RULE_ANY_OTHER"
1126 1888
1127 public void mTokens() throws RecognitionException { 1889 public void mTokens() throws RecognitionException {
1128 // InternalSolverLanguage.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | RULE_STRING | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) 1890 // InternalSolverLanguage.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | RULE_STRING | RULE_QUOTED_ID | RULE_PLUS | RULE_STAR | RULE_DOT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
1129 int alt10=38; 1891 int alt11=71;
1130 alt10 = dfa10.predict(input); 1892 alt11 = dfa11.predict(input);
1131 switch (alt10) { 1893 switch (alt11) {
1132 case 1 : 1894 case 1 :
1133 // InternalSolverLanguage.g:1:10: T__11 1895 // InternalSolverLanguage.g:1:10: T__15
1134 { 1896 {
1135 mT__11(); 1897 mT__15();
1136 1898
1137 } 1899 }
1138 break; 1900 break;
1139 case 2 : 1901 case 2 :
1140 // InternalSolverLanguage.g:1:16: T__12 1902 // InternalSolverLanguage.g:1:16: T__16
1141 { 1903 {
1142 mT__12(); 1904 mT__16();
1143 1905
1144 } 1906 }
1145 break; 1907 break;
1146 case 3 : 1908 case 3 :
1147 // InternalSolverLanguage.g:1:22: T__13 1909 // InternalSolverLanguage.g:1:22: T__17
1148 { 1910 {
1149 mT__13(); 1911 mT__17();
1150 1912
1151 } 1913 }
1152 break; 1914 break;
1153 case 4 : 1915 case 4 :
1154 // InternalSolverLanguage.g:1:28: T__14 1916 // InternalSolverLanguage.g:1:28: T__18
1155 { 1917 {
1156 mT__14(); 1918 mT__18();
1157 1919
1158 } 1920 }
1159 break; 1921 break;
1160 case 5 : 1922 case 5 :
1161 // InternalSolverLanguage.g:1:34: T__15 1923 // InternalSolverLanguage.g:1:34: T__19
1162 { 1924 {
1163 mT__15(); 1925 mT__19();
1164 1926
1165 } 1927 }
1166 break; 1928 break;
1167 case 6 : 1929 case 6 :
1168 // InternalSolverLanguage.g:1:40: T__16 1930 // InternalSolverLanguage.g:1:40: T__20
1169 { 1931 {
1170 mT__16(); 1932 mT__20();
1171 1933
1172 } 1934 }
1173 break; 1935 break;
1174 case 7 : 1936 case 7 :
1175 // InternalSolverLanguage.g:1:46: T__17 1937 // InternalSolverLanguage.g:1:46: T__21
1176 { 1938 {
1177 mT__17(); 1939 mT__21();
1178 1940
1179 } 1941 }
1180 break; 1942 break;
1181 case 8 : 1943 case 8 :
1182 // InternalSolverLanguage.g:1:52: T__18 1944 // InternalSolverLanguage.g:1:52: T__22
1183 { 1945 {
1184 mT__18(); 1946 mT__22();
1185 1947
1186 } 1948 }
1187 break; 1949 break;
1188 case 9 : 1950 case 9 :
1189 // InternalSolverLanguage.g:1:58: T__19 1951 // InternalSolverLanguage.g:1:58: T__23
1190 { 1952 {
1191 mT__19(); 1953 mT__23();
1192 1954
1193 } 1955 }
1194 break; 1956 break;
1195 case 10 : 1957 case 10 :
1196 // InternalSolverLanguage.g:1:64: T__20 1958 // InternalSolverLanguage.g:1:64: T__24
1197 { 1959 {
1198 mT__20(); 1960 mT__24();
1199 1961
1200 } 1962 }
1201 break; 1963 break;
1202 case 11 : 1964 case 11 :
1203 // InternalSolverLanguage.g:1:70: T__21 1965 // InternalSolverLanguage.g:1:70: T__25
1204 { 1966 {
1205 mT__21(); 1967 mT__25();
1206 1968
1207 } 1969 }
1208 break; 1970 break;
1209 case 12 : 1971 case 12 :
1210 // InternalSolverLanguage.g:1:76: T__22 1972 // InternalSolverLanguage.g:1:76: T__26
1211 { 1973 {
1212 mT__22(); 1974 mT__26();
1213 1975
1214 } 1976 }
1215 break; 1977 break;
1216 case 13 : 1978 case 13 :
1217 // InternalSolverLanguage.g:1:82: T__23 1979 // InternalSolverLanguage.g:1:82: T__27
1218 { 1980 {
1219 mT__23(); 1981 mT__27();
1220 1982
1221 } 1983 }
1222 break; 1984 break;
1223 case 14 : 1985 case 14 :
1224 // InternalSolverLanguage.g:1:88: T__24 1986 // InternalSolverLanguage.g:1:88: T__28
1225 { 1987 {
1226 mT__24(); 1988 mT__28();
1227 1989
1228 } 1990 }
1229 break; 1991 break;
1230 case 15 : 1992 case 15 :
1231 // InternalSolverLanguage.g:1:94: T__25 1993 // InternalSolverLanguage.g:1:94: T__29
1232 { 1994 {
1233 mT__25(); 1995 mT__29();
1234 1996
1235 } 1997 }
1236 break; 1998 break;
1237 case 16 : 1999 case 16 :
1238 // InternalSolverLanguage.g:1:100: T__26 2000 // InternalSolverLanguage.g:1:100: T__30
1239 { 2001 {
1240 mT__26(); 2002 mT__30();
1241 2003
1242 } 2004 }
1243 break; 2005 break;
1244 case 17 : 2006 case 17 :
1245 // InternalSolverLanguage.g:1:106: T__27 2007 // InternalSolverLanguage.g:1:106: T__31
1246 { 2008 {
1247 mT__27(); 2009 mT__31();
1248 2010
1249 } 2011 }
1250 break; 2012 break;
1251 case 18 : 2013 case 18 :
1252 // InternalSolverLanguage.g:1:112: T__28 2014 // InternalSolverLanguage.g:1:112: T__32
1253 { 2015 {
1254 mT__28(); 2016 mT__32();
1255 2017
1256 } 2018 }
1257 break; 2019 break;
1258 case 19 : 2020 case 19 :
1259 // InternalSolverLanguage.g:1:118: T__29 2021 // InternalSolverLanguage.g:1:118: T__33
1260 { 2022 {
1261 mT__29(); 2023 mT__33();
1262 2024
1263 } 2025 }
1264 break; 2026 break;
1265 case 20 : 2027 case 20 :
1266 // InternalSolverLanguage.g:1:124: T__30 2028 // InternalSolverLanguage.g:1:124: T__34
1267 { 2029 {
1268 mT__30(); 2030 mT__34();
1269 2031
1270 } 2032 }
1271 break; 2033 break;
1272 case 21 : 2034 case 21 :
1273 // InternalSolverLanguage.g:1:130: T__31 2035 // InternalSolverLanguage.g:1:130: T__35
1274 { 2036 {
1275 mT__31(); 2037 mT__35();
1276 2038
1277 } 2039 }
1278 break; 2040 break;
1279 case 22 : 2041 case 22 :
1280 // InternalSolverLanguage.g:1:136: T__32 2042 // InternalSolverLanguage.g:1:136: T__36
1281 { 2043 {
1282 mT__32(); 2044 mT__36();
1283 2045
1284 } 2046 }
1285 break; 2047 break;
1286 case 23 : 2048 case 23 :
1287 // InternalSolverLanguage.g:1:142: T__33 2049 // InternalSolverLanguage.g:1:142: T__37
1288 { 2050 {
1289 mT__33(); 2051 mT__37();
1290 2052
1291 } 2053 }
1292 break; 2054 break;
1293 case 24 : 2055 case 24 :
1294 // InternalSolverLanguage.g:1:148: T__34 2056 // InternalSolverLanguage.g:1:148: T__38
1295 { 2057 {
1296 mT__34(); 2058 mT__38();
1297 2059
1298 } 2060 }
1299 break; 2061 break;
1300 case 25 : 2062 case 25 :
1301 // InternalSolverLanguage.g:1:154: T__35 2063 // InternalSolverLanguage.g:1:154: T__39
1302 { 2064 {
1303 mT__35(); 2065 mT__39();
1304 2066
1305 } 2067 }
1306 break; 2068 break;
1307 case 26 : 2069 case 26 :
1308 // InternalSolverLanguage.g:1:160: T__36 2070 // InternalSolverLanguage.g:1:160: T__40
1309 { 2071 {
1310 mT__36(); 2072 mT__40();
1311 2073
1312 } 2074 }
1313 break; 2075 break;
1314 case 27 : 2076 case 27 :
1315 // InternalSolverLanguage.g:1:166: T__37 2077 // InternalSolverLanguage.g:1:166: T__41
1316 { 2078 {
1317 mT__37(); 2079 mT__41();
1318 2080
1319 } 2081 }
1320 break; 2082 break;
1321 case 28 : 2083 case 28 :
1322 // InternalSolverLanguage.g:1:172: T__38 2084 // InternalSolverLanguage.g:1:172: T__42
1323 { 2085 {
1324 mT__38(); 2086 mT__42();
1325 2087
1326 } 2088 }
1327 break; 2089 break;
1328 case 29 : 2090 case 29 :
1329 // InternalSolverLanguage.g:1:178: T__39 2091 // InternalSolverLanguage.g:1:178: T__43
1330 { 2092 {
1331 mT__39(); 2093 mT__43();
1332 2094
1333 } 2095 }
1334 break; 2096 break;
1335 case 30 : 2097 case 30 :
1336 // InternalSolverLanguage.g:1:184: T__40 2098 // InternalSolverLanguage.g:1:184: T__44
1337 { 2099 {
1338 mT__40(); 2100 mT__44();
1339 2101
1340 } 2102 }
1341 break; 2103 break;
1342 case 31 : 2104 case 31 :
1343 // InternalSolverLanguage.g:1:190: T__41 2105 // InternalSolverLanguage.g:1:190: T__45
1344 { 2106 {
1345 mT__41(); 2107 mT__45();
1346 2108
1347 } 2109 }
1348 break; 2110 break;
1349 case 32 : 2111 case 32 :
1350 // InternalSolverLanguage.g:1:196: RULE_STRING 2112 // InternalSolverLanguage.g:1:196: T__46
1351 { 2113 {
1352 mRULE_STRING(); 2114 mT__46();
1353 2115
1354 } 2116 }
1355 break; 2117 break;
1356 case 33 : 2118 case 33 :
1357 // InternalSolverLanguage.g:1:208: RULE_ID 2119 // InternalSolverLanguage.g:1:202: T__47
1358 { 2120 {
1359 mRULE_ID(); 2121 mT__47();
1360 2122
1361 } 2123 }
1362 break; 2124 break;
1363 case 34 : 2125 case 34 :
1364 // InternalSolverLanguage.g:1:216: RULE_INT 2126 // InternalSolverLanguage.g:1:208: T__48
1365 { 2127 {
1366 mRULE_INT(); 2128 mT__48();
1367 2129
1368 } 2130 }
1369 break; 2131 break;
1370 case 35 : 2132 case 35 :
1371 // InternalSolverLanguage.g:1:225: RULE_ML_COMMENT 2133 // InternalSolverLanguage.g:1:214: T__49
1372 { 2134 {
1373 mRULE_ML_COMMENT(); 2135 mT__49();
1374 2136
1375 } 2137 }
1376 break; 2138 break;
1377 case 36 : 2139 case 36 :
1378 // InternalSolverLanguage.g:1:241: RULE_SL_COMMENT 2140 // InternalSolverLanguage.g:1:220: T__50
1379 { 2141 {
1380 mRULE_SL_COMMENT(); 2142 mT__50();
1381 2143
1382 } 2144 }
1383 break; 2145 break;
1384 case 37 : 2146 case 37 :
1385 // InternalSolverLanguage.g:1:257: RULE_WS 2147 // InternalSolverLanguage.g:1:226: T__51
1386 { 2148 {
1387 mRULE_WS(); 2149 mT__51();
1388 2150
1389 } 2151 }
1390 break; 2152 break;
1391 case 38 : 2153 case 38 :
1392 // InternalSolverLanguage.g:1:265: RULE_ANY_OTHER 2154 // InternalSolverLanguage.g:1:232: T__52
2155 {
2156 mT__52();
2157
2158 }
2159 break;
2160 case 39 :
2161 // InternalSolverLanguage.g:1:238: T__53
2162 {
2163 mT__53();
2164
2165 }
2166 break;
2167 case 40 :
2168 // InternalSolverLanguage.g:1:244: T__54
2169 {
2170 mT__54();
2171
2172 }
2173 break;
2174 case 41 :
2175 // InternalSolverLanguage.g:1:250: T__55
2176 {
2177 mT__55();
2178
2179 }
2180 break;
2181 case 42 :
2182 // InternalSolverLanguage.g:1:256: T__56
2183 {
2184 mT__56();
2185
2186 }
2187 break;
2188 case 43 :
2189 // InternalSolverLanguage.g:1:262: T__57
2190 {
2191 mT__57();
2192
2193 }
2194 break;
2195 case 44 :
2196 // InternalSolverLanguage.g:1:268: T__58
2197 {
2198 mT__58();
2199
2200 }
2201 break;
2202 case 45 :
2203 // InternalSolverLanguage.g:1:274: T__59
2204 {
2205 mT__59();
2206
2207 }
2208 break;
2209 case 46 :
2210 // InternalSolverLanguage.g:1:280: T__60
2211 {
2212 mT__60();
2213
2214 }
2215 break;
2216 case 47 :
2217 // InternalSolverLanguage.g:1:286: T__61
2218 {
2219 mT__61();
2220
2221 }
2222 break;
2223 case 48 :
2224 // InternalSolverLanguage.g:1:292: T__62
2225 {
2226 mT__62();
2227
2228 }
2229 break;
2230 case 49 :
2231 // InternalSolverLanguage.g:1:298: T__63
2232 {
2233 mT__63();
2234
2235 }
2236 break;
2237 case 50 :
2238 // InternalSolverLanguage.g:1:304: T__64
2239 {
2240 mT__64();
2241
2242 }
2243 break;
2244 case 51 :
2245 // InternalSolverLanguage.g:1:310: T__65
2246 {
2247 mT__65();
2248
2249 }
2250 break;
2251 case 52 :
2252 // InternalSolverLanguage.g:1:316: T__66
2253 {
2254 mT__66();
2255
2256 }
2257 break;
2258 case 53 :
2259 // InternalSolverLanguage.g:1:322: T__67
2260 {
2261 mT__67();
2262
2263 }
2264 break;
2265 case 54 :
2266 // InternalSolverLanguage.g:1:328: T__68
2267 {
2268 mT__68();
2269
2270 }
2271 break;
2272 case 55 :
2273 // InternalSolverLanguage.g:1:334: T__69
2274 {
2275 mT__69();
2276
2277 }
2278 break;
2279 case 56 :
2280 // InternalSolverLanguage.g:1:340: T__70
2281 {
2282 mT__70();
2283
2284 }
2285 break;
2286 case 57 :
2287 // InternalSolverLanguage.g:1:346: T__71
2288 {
2289 mT__71();
2290
2291 }
2292 break;
2293 case 58 :
2294 // InternalSolverLanguage.g:1:352: T__72
2295 {
2296 mT__72();
2297
2298 }
2299 break;
2300 case 59 :
2301 // InternalSolverLanguage.g:1:358: T__73
2302 {
2303 mT__73();
2304
2305 }
2306 break;
2307 case 60 :
2308 // InternalSolverLanguage.g:1:364: T__74
2309 {
2310 mT__74();
2311
2312 }
2313 break;
2314 case 61 :
2315 // InternalSolverLanguage.g:1:370: RULE_STRING
2316 {
2317 mRULE_STRING();
2318
2319 }
2320 break;
2321 case 62 :
2322 // InternalSolverLanguage.g:1:382: RULE_QUOTED_ID
2323 {
2324 mRULE_QUOTED_ID();
2325
2326 }
2327 break;
2328 case 63 :
2329 // InternalSolverLanguage.g:1:397: RULE_PLUS
2330 {
2331 mRULE_PLUS();
2332
2333 }
2334 break;
2335 case 64 :
2336 // InternalSolverLanguage.g:1:407: RULE_STAR
2337 {
2338 mRULE_STAR();
2339
2340 }
2341 break;
2342 case 65 :
2343 // InternalSolverLanguage.g:1:417: RULE_DOT
2344 {
2345 mRULE_DOT();
2346
2347 }
2348 break;
2349 case 66 :
2350 // InternalSolverLanguage.g:1:426: RULE_ID
2351 {
2352 mRULE_ID();
2353
2354 }
2355 break;
2356 case 67 :
2357 // InternalSolverLanguage.g:1:434: RULE_INT
2358 {
2359 mRULE_INT();
2360
2361 }
2362 break;
2363 case 68 :
2364 // InternalSolverLanguage.g:1:443: RULE_ML_COMMENT
2365 {
2366 mRULE_ML_COMMENT();
2367
2368 }
2369 break;
2370 case 69 :
2371 // InternalSolverLanguage.g:1:459: RULE_SL_COMMENT
2372 {
2373 mRULE_SL_COMMENT();
2374
2375 }
2376 break;
2377 case 70 :
2378 // InternalSolverLanguage.g:1:475: RULE_WS
2379 {
2380 mRULE_WS();
2381
2382 }
2383 break;
2384 case 71 :
2385 // InternalSolverLanguage.g:1:483: RULE_ANY_OTHER
1393 { 2386 {
1394 mRULE_ANY_OTHER(); 2387 mRULE_ANY_OTHER();
1395 2388
@@ -1401,286 +2394,408 @@ public class InternalSolverLanguageLexer extends Lexer {
1401 } 2394 }
1402 2395
1403 2396
1404 protected DFA10 dfa10 = new DFA10(this); 2397 protected DFA11 dfa11 = new DFA11(this);
1405 static final String DFA10_eotS = 2398 static final String DFA11_eotS =
1406 "\2\uffff\1\41\4\43\3\uffff\1\56\4\43\4\uffff\3\43\2\uffff\2\36\2\uffff\1\36\5\uffff\1\43\1\uffff\6\43\5\uffff\4\43\4\uffff\4\43\7\uffff\11\43\1\134\7\43\1\144\6\43\1\153\1\154\1\uffff\1\155\6\43\1\uffff\1\164\1\43\1\166\3\43\3\uffff\4\43\1\176\1\43\1\uffff\1\43\1\uffff\1\u0081\1\43\1\u0083\1\43\1\u0085\2\43\1\uffff\1\43\1\u0089\1\uffff\1\u008a\1\uffff\1\43\1\uffff\1\u008c\2\43\2\uffff\1\u008f\1\uffff\1\u0090\1\43\2\uffff\2\43\1\u0094\1\uffff"; 2399 "\1\uffff\1\51\1\53\3\56\1\65\2\56\1\uffff\1\74\1\uffff\1\56\10\uffff\3\56\1\121\1\123\1\56\1\126\1\uffff\1\132\1\133\3\56\2\47\10\uffff\2\56\1\uffff\5\56\2\uffff\1\154\1\157\2\56\4\uffff\3\56\10\uffff\7\56\4\uffff\1\56\7\uffff\5\56\4\uffff\7\56\1\uffff\1\u008b\1\u008c\1\uffff\7\56\1\u0094\3\56\1\u0098\2\56\1\u009b\1\u009d\1\56\1\u00a0\6\56\1\u00a8\2\56\2\uffff\1\u00ab\1\u00ac\5\56\1\uffff\1\56\1\u00b3\1\56\1\uffff\1\56\1\u00b6\1\uffff\1\56\1\uffff\1\u00b8\1\56\1\uffff\1\u00ba\2\56\1\u00bd\1\u00be\2\56\1\uffff\1\u00c1\1\56\2\uffff\1\u00c3\1\56\1\u00c5\3\56\1\uffff\1\u00c9\1\56\1\uffff\1\56\1\uffff\1\56\1\uffff\2\56\2\uffff\1\u00cf\1\56\1\uffff\1\56\1\uffff\1\56\1\uffff\3\56\1\uffff\5\56\1\uffff\1\u00db\1\u00dc\1\56\1\u00de\5\56\1\u00e4\1\56\2\uffff\1\u00e6\1\uffff\1\u00e7\1\u00e8\1\56\1\u00ea\1\u00eb\1\uffff\1\56\3\uffff\1\56\2\uffff\1\u00ee\6\uffff";
1407 static final String DFA10_eofS = 2400 static final String DFA11_eofS =
1408 "\u0095\uffff"; 2401 "\u00f3\uffff";
1409 static final String DFA10_minS = 2402 static final String DFA11_minS =
1410 "\1\0\1\uffff\1\56\1\162\1\141\2\156\3\uffff\1\55\1\157\1\156\1\145\1\164\4\uffff\1\145\1\142\1\154\2\uffff\1\0\1\101\2\uffff\1\52\5\uffff\1\165\1\uffff\1\154\1\153\1\162\1\151\2\165\5\uffff\1\157\1\164\1\141\1\162\4\uffff\1\146\1\163\1\141\1\156\7\uffff\1\145\1\163\1\156\1\157\1\163\1\145\1\141\1\155\1\154\1\60\1\154\1\141\1\151\1\141\1\164\1\163\1\164\1\60\1\145\1\157\1\162\1\164\1\156\1\154\2\60\1\uffff\1\60\1\164\1\156\1\165\1\162\1\163\1\141\1\uffff\1\60\1\167\1\60\1\163\1\144\1\163\3\uffff\1\151\1\147\1\154\1\141\1\60\1\151\1\uffff\1\156\1\uffff\1\60\1\163\1\60\1\157\1\60\1\164\1\143\1\uffff\1\156\1\60\1\uffff\1\60\1\uffff\1\156\1\uffff\1\60\1\164\1\155\2\uffff\1\60\1\uffff\1\60\1\145\2\uffff\1\156\1\164\1\60\1\uffff"; 2403 "\1\0\1\55\1\75\1\141\1\154\1\145\1\56\1\146\1\150\1\uffff\1\76\1\uffff\1\154\10\uffff\1\142\1\156\1\143\2\75\1\145\1\75\1\uffff\1\52\1\101\1\141\1\162\1\156\2\0\10\uffff\1\156\1\154\1\uffff\1\162\1\164\1\163\1\160\1\146\2\uffff\2\60\1\145\1\165\4\uffff\1\156\1\141\1\162\10\uffff\1\163\1\147\1\160\1\154\1\157\1\155\1\156\4\uffff\1\141\7\uffff\1\170\1\163\1\156\1\157\1\153\4\uffff\1\143\1\163\1\157\2\145\1\164\1\141\1\uffff\2\60\1\uffff\1\156\1\145\1\156\1\164\1\163\1\162\1\164\1\60\1\157\1\171\1\160\1\60\1\164\1\154\2\60\1\164\1\60\1\144\1\156\1\164\1\145\1\162\1\156\1\60\1\171\1\165\2\uffff\2\60\1\164\1\141\1\163\1\145\1\162\1\uffff\1\163\1\60\1\145\1\uffff\1\150\1\60\1\uffff\1\155\1\uffff\1\60\1\155\1\uffff\1\60\1\157\1\151\2\60\1\156\1\144\1\uffff\1\60\1\154\2\uffff\1\60\1\151\1\60\1\156\1\141\1\151\1\uffff\1\60\1\145\1\uffff\1\151\1\uffff\1\151\1\uffff\1\167\1\157\2\uffff\1\60\1\163\1\uffff\1\164\1\uffff\1\156\1\uffff\1\164\1\143\1\164\1\uffff\1\164\2\172\2\156\1\uffff\2\60\1\163\1\60\1\164\1\145\1\151\2\145\1\60\1\141\2\uffff\1\60\1\uffff\2\60\1\143\2\60\1\uffff\1\154\3\uffff\1\72\2\uffff\1\60\1\72\1\uffff\1\144\3\uffff";
1411 static final String DFA10_maxS = 2404 static final String DFA11_maxS =
1412 "\1\uffff\1\uffff\1\56\1\162\1\141\1\156\1\170\3\uffff\1\55\1\157\1\156\1\145\1\164\4\uffff\1\145\1\142\1\157\2\uffff\1\uffff\1\172\2\uffff\1\57\5\uffff\1\165\1\uffff\1\154\1\153\1\162\1\164\2\165\5\uffff\1\157\1\164\1\154\1\162\4\uffff\1\146\1\163\1\141\1\156\7\uffff\1\145\1\163\1\156\1\157\1\163\1\145\1\141\1\155\1\154\1\172\1\154\1\141\1\151\1\141\1\164\1\163\1\164\1\172\1\145\1\157\1\162\1\164\1\156\1\154\2\172\1\uffff\1\172\1\164\1\156\1\165\1\162\1\163\1\141\1\uffff\1\172\1\167\1\172\1\163\1\144\1\163\3\uffff\1\151\1\147\1\154\1\141\1\172\1\151\1\uffff\1\156\1\uffff\1\172\1\163\1\172\1\157\1\172\1\164\1\143\1\uffff\1\156\1\172\1\uffff\1\172\1\uffff\1\156\1\uffff\1\172\1\164\1\155\2\uffff\1\172\1\uffff\1\172\1\145\2\uffff\1\156\1\164\1\172\1\uffff"; 2405 "\1\uffff\1\55\1\75\1\165\1\170\1\145\1\56\1\156\1\162\1\uffff\1\76\1\uffff\1\165\10\uffff\1\166\1\160\1\171\2\75\1\145\1\75\1\uffff\1\57\1\172\1\165\1\162\1\156\2\uffff\10\uffff\1\156\1\154\1\uffff\1\162\1\164\1\163\1\160\1\146\2\uffff\2\172\1\145\1\165\4\uffff\1\165\1\141\1\162\10\uffff\1\163\1\147\1\160\1\154\1\157\1\155\1\156\4\uffff\1\141\7\uffff\1\171\1\163\1\156\1\157\1\153\4\uffff\1\143\1\163\1\157\2\145\1\164\1\141\1\uffff\2\172\1\uffff\1\156\1\145\1\156\1\164\1\163\1\162\1\164\1\172\1\157\1\171\1\160\1\172\1\164\1\154\2\172\1\164\1\172\1\144\1\156\1\164\1\145\2\162\1\172\1\171\1\165\2\uffff\2\172\1\164\1\141\1\163\1\145\1\162\1\uffff\1\163\1\172\1\145\1\uffff\1\150\1\172\1\uffff\1\155\1\uffff\1\172\1\155\1\uffff\1\172\1\157\1\151\2\172\1\156\1\144\1\uffff\1\172\1\154\2\uffff\1\172\1\151\1\172\1\156\1\141\1\151\1\uffff\1\172\1\145\1\uffff\1\151\1\uffff\1\151\1\uffff\1\167\1\157\2\uffff\1\172\1\163\1\uffff\1\164\1\uffff\1\156\1\uffff\1\164\1\143\1\164\1\uffff\1\164\2\172\2\156\1\uffff\2\172\1\163\1\172\1\164\1\145\1\151\2\145\1\172\1\141\2\uffff\1\172\1\uffff\2\172\1\143\2\172\1\uffff\1\154\3\uffff\1\72\2\uffff\1\172\1\72\1\uffff\1\163\3\uffff";
1413 static final String DFA10_acceptS = 2406 static final String DFA11_acceptS =
1414 "\1\uffff\1\1\5\uffff\1\7\1\10\1\11\5\uffff\1\21\1\23\1\24\1\25\3\uffff\1\32\1\33\2\uffff\1\41\1\42\1\uffff\1\45\1\46\1\1\1\37\1\2\1\uffff\1\41\6\uffff\1\7\1\10\1\11\1\22\1\12\4\uffff\1\21\1\23\1\24\1\25\4\uffff\1\32\1\33\1\40\1\42\1\43\1\44\1\45\32\uffff\1\16\7\uffff\1\3\6\uffff\1\34\1\15\1\17\6\uffff\1\4\1\uffff\1\6\7\uffff\1\30\2\uffff\1\13\1\uffff\1\14\1\uffff\1\20\3\uffff\1\5\1\31\1\uffff\1\26\2\uffff\1\36\1\27\3\uffff\1\35"; 2407 "\11\uffff\1\14\1\uffff\1\16\1\uffff\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\30\7\uffff\1\52\7\uffff\1\102\1\103\1\106\1\107\1\2\1\1\1\41\1\3\2\uffff\1\102\5\uffff\1\27\1\10\4\uffff\1\14\1\15\1\53\1\16\3\uffff\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\30\7\uffff\1\42\1\47\1\43\1\50\1\uffff\1\46\1\56\1\52\1\104\1\105\1\54\1\55\5\uffff\1\75\1\76\1\103\1\106\7\uffff\1\11\2\uffff\1\51\33\uffff\1\31\1\44\7\uffff\1\65\3\uffff\1\63\2\uffff\1\57\1\uffff\1\67\2\uffff\1\66\7\uffff\1\13\2\uffff\1\12\1\70\6\uffff\1\62\2\uffff\1\45\1\uffff\1\60\1\uffff\1\64\2\uffff\1\71\1\5\2\uffff\1\32\1\uffff\1\17\1\uffff\1\34\3\uffff\1\40\5\uffff\1\7\13\uffff\1\35\1\6\1\uffff\1\61\5\uffff\1\72\1\uffff\1\36\1\33\1\37\1\uffff\1\74\1\73\2\uffff\1\4\1\uffff\1\77\1\100\1\101";
1415 static final String DFA10_specialS = 2408 static final String DFA11_specialS =
1416 "\1\0\27\uffff\1\1\174\uffff}>"; 2409 "\1\1\41\uffff\1\2\1\0\u00cf\uffff}>";
1417 static final String[] DFA10_transitionS = { 2410 static final String[] DFA11_transitionS = {
1418 "\11\36\2\35\2\36\1\35\22\36\1\35\1\36\1\30\4\36\1\17\1\7\1\11\1\22\1\21\1\10\1\1\1\2\1\34\12\33\1\12\6\36\32\32\3\36\1\31\1\32\1\36\1\24\1\13\1\25\1\23\1\6\1\4\2\32\1\14\10\32\1\15\1\16\1\3\1\5\5\32\1\26\1\20\1\27\uff82\36", 2411 "\11\47\2\46\2\47\1\46\22\47\1\46\1\33\1\42\4\47\1\43\1\20\1\21\1\22\1\34\1\13\1\12\1\6\1\35\12\45\1\1\1\11\1\30\1\2\1\31\2\47\32\44\1\23\1\47\1\24\1\36\1\44\1\47\1\25\1\44\1\14\1\5\1\4\1\3\2\44\1\7\3\44\1\37\1\44\1\26\1\40\1\44\1\32\1\27\1\10\1\41\5\44\1\15\1\17\1\16\uff82\47",
2412 "\1\50",
2413 "\1\52",
2414 "\1\55\23\uffff\1\54",
2415 "\1\61\1\62\4\uffff\1\57\5\uffff\1\60",
2416 "\1\63",
2417 "\1\64",
2418 "\1\66\7\uffff\1\67",
2419 "\1\70\11\uffff\1\71",
1419 "", 2420 "",
1420 "\1\40", 2421 "\1\73",
1421 "\1\42",
1422 "\1\44",
1423 "\1\45",
1424 "\1\51\2\uffff\1\50\1\46\5\uffff\1\47",
1425 "", 2422 "",
2423 "\1\77\2\uffff\1\76\5\uffff\1\100",
1426 "", 2424 "",
1427 "", 2425 "",
1428 "\1\55",
1429 "\1\57",
1430 "\1\60",
1431 "\1\61",
1432 "\1\62",
1433 "", 2426 "",
1434 "", 2427 "",
1435 "", 2428 "",
1436 "", 2429 "",
1437 "\1\67",
1438 "\1\70",
1439 "\1\71\2\uffff\1\72",
1440 "", 2430 "",
1441 "", 2431 "",
1442 "\0\75", 2432 "\1\111\23\uffff\1\112",
1443 "\32\43\4\uffff\1\43\1\uffff\32\43", 2433 "\1\114\1\uffff\1\113",
1444 "", 2434 "\1\115\21\uffff\1\116\3\uffff\1\117",
1445 "", 2435 "\1\120",
1446 "\1\77\4\uffff\1\100", 2436 "\1\122",
2437 "\1\124",
2438 "\1\125",
1447 "", 2439 "",
2440 "\1\130\4\uffff\1\131",
2441 "\32\56\4\uffff\1\56\1\uffff\32\56",
2442 "\1\134\7\uffff\1\136\13\uffff\1\135",
2443 "\1\137",
2444 "\1\140",
2445 "\0\141",
2446 "\0\142",
1448 "", 2447 "",
1449 "", 2448 "",
1450 "", 2449 "",
1451 "", 2450 "",
1452 "\1\102",
1453 "", 2451 "",
1454 "\1\103",
1455 "\1\104",
1456 "\1\105",
1457 "\1\106\12\uffff\1\107",
1458 "\1\110",
1459 "\1\111",
1460 "", 2452 "",
1461 "", 2453 "",
1462 "", 2454 "",
2455 "\1\145",
2456 "\1\146",
1463 "", 2457 "",
2458 "\1\147",
2459 "\1\150",
2460 "\1\151",
2461 "\1\152",
2462 "\1\153",
1464 "", 2463 "",
1465 "\1\112",
1466 "\1\113",
1467 "\1\114\12\uffff\1\115",
1468 "\1\116",
1469 "", 2464 "",
2465 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2466 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\5\56\1\155\15\56\1\156\6\56",
2467 "\1\160",
2468 "\1\161",
1470 "", 2469 "",
1471 "", 2470 "",
1472 "", 2471 "",
1473 "\1\117",
1474 "\1\120",
1475 "\1\121",
1476 "\1\122",
1477 "", 2472 "",
2473 "\1\163\6\uffff\1\162",
2474 "\1\164",
2475 "\1\165",
1478 "", 2476 "",
1479 "", 2477 "",
1480 "", 2478 "",
1481 "", 2479 "",
1482 "", 2480 "",
1483 "", 2481 "",
1484 "\1\123",
1485 "\1\124",
1486 "\1\125",
1487 "\1\126",
1488 "\1\127",
1489 "\1\130",
1490 "\1\131",
1491 "\1\132",
1492 "\1\133",
1493 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1494 "\1\135",
1495 "\1\136",
1496 "\1\137",
1497 "\1\140",
1498 "\1\141",
1499 "\1\142",
1500 "\1\143",
1501 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1502 "\1\145",
1503 "\1\146",
1504 "\1\147",
1505 "\1\150",
1506 "\1\151",
1507 "\1\152",
1508 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1509 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1510 "", 2482 "",
1511 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1512 "\1\156",
1513 "\1\157",
1514 "\1\160",
1515 "\1\161",
1516 "\1\162",
1517 "\1\163",
1518 "", 2483 "",
1519 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 2484 "\1\166",
1520 "\1\165",
1521 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1522 "\1\167", 2485 "\1\167",
1523 "\1\170", 2486 "\1\170",
1524 "\1\171", 2487 "\1\171",
1525 "",
1526 "",
1527 "",
1528 "\1\172", 2488 "\1\172",
1529 "\1\173", 2489 "\1\173",
1530 "\1\174", 2490 "\1\174",
2491 "",
2492 "",
2493 "",
2494 "",
1531 "\1\175", 2495 "\1\175",
1532 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1533 "\1\177",
1534 "", 2496 "",
1535 "\1\u0080",
1536 "", 2497 "",
1537 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 2498 "",
2499 "",
2500 "",
2501 "",
2502 "",
2503 "\1\177\1\176",
2504 "\1\u0080",
2505 "\1\u0081",
1538 "\1\u0082", 2506 "\1\u0082",
1539 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 2507 "\1\u0083",
2508 "",
2509 "",
2510 "",
2511 "",
1540 "\1\u0084", 2512 "\1\u0084",
1541 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 2513 "\1\u0085",
1542 "\1\u0086", 2514 "\1\u0086",
1543 "\1\u0087", 2515 "\1\u0087",
1544 "",
1545 "\1\u0088", 2516 "\1\u0088",
1546 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 2517 "\1\u0089",
1547 "", 2518 "\1\u008a",
1548 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1549 "", 2519 "",
1550 "\1\u008b", 2520 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2521 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
1551 "", 2522 "",
1552 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1553 "\1\u008d", 2523 "\1\u008d",
1554 "\1\u008e", 2524 "\1\u008e",
2525 "\1\u008f",
2526 "\1\u0090",
2527 "\1\u0091",
2528 "\1\u0092",
2529 "\1\u0093",
2530 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2531 "\1\u0095",
2532 "\1\u0096",
2533 "\1\u0097",
2534 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2535 "\1\u0099",
2536 "\1\u009a",
2537 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2538 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\10\56\1\u009c\21\56",
2539 "\1\u009e",
2540 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\10\56\1\u009f\21\56",
2541 "\1\u00a1",
2542 "\1\u00a2",
2543 "\1\u00a3",
2544 "\1\u00a4",
2545 "\1\u00a5",
2546 "\1\u00a7\3\uffff\1\u00a6",
2547 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2548 "\1\u00a9",
2549 "\1\u00aa",
1555 "", 2550 "",
1556 "", 2551 "",
1557 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 2552 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2553 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2554 "\1\u00ad",
2555 "\1\u00ae",
2556 "\1\u00af",
2557 "\1\u00b0",
2558 "\1\u00b1",
1558 "", 2559 "",
1559 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 2560 "\1\u00b2",
1560 "\1\u0091", 2561 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2562 "\1\u00b4",
2563 "",
2564 "\1\u00b5",
2565 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2566 "",
2567 "\1\u00b7",
2568 "",
2569 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2570 "\1\u00b9",
2571 "",
2572 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2573 "\1\u00bb",
2574 "\1\u00bc",
2575 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2576 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2577 "\1\u00bf",
2578 "\1\u00c0",
2579 "",
2580 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2581 "\1\u00c2",
2582 "",
2583 "",
2584 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2585 "\1\u00c4",
2586 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2587 "\1\u00c6",
2588 "\1\u00c7",
2589 "\1\u00c8",
2590 "",
2591 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2592 "\1\u00ca",
2593 "",
2594 "\1\u00cb",
2595 "",
2596 "\1\u00cc",
2597 "",
2598 "\1\u00cd",
2599 "\1\u00ce",
2600 "",
2601 "",
2602 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2603 "\1\u00d0",
2604 "",
2605 "\1\u00d1",
2606 "",
2607 "\1\u00d2",
2608 "",
2609 "\1\u00d3",
2610 "\1\u00d4",
2611 "\1\u00d5",
2612 "",
2613 "\1\u00d6",
2614 "\1\u00d7",
2615 "\1\u00d8",
2616 "\1\u00d9",
2617 "\1\u00da",
2618 "",
2619 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2620 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2621 "\1\u00dd",
2622 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2623 "\1\u00df",
2624 "\1\u00e0",
2625 "\1\u00e1",
2626 "\1\u00e2",
2627 "\1\u00e3",
2628 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2629 "\1\u00e5",
2630 "",
2631 "",
2632 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2633 "",
2634 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2635 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2636 "\1\u00e9",
2637 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2638 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2639 "",
2640 "\1\u00ec",
2641 "",
2642 "",
2643 "",
2644 "\1\u00ed",
2645 "",
2646 "",
2647 "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56",
2648 "\1\u00ef",
2649 "",
2650 "\1\u00f2\13\uffff\1\u00f0\2\uffff\1\u00f1",
1561 "", 2651 "",
1562 "", 2652 "",
1563 "\1\u0092",
1564 "\1\u0093",
1565 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1566 "" 2653 ""
1567 }; 2654 };
1568 2655
1569 static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS); 2656 static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS);
1570 static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS); 2657 static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS);
1571 static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS); 2658 static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS);
1572 static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS); 2659 static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS);
1573 static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS); 2660 static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS);
1574 static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS); 2661 static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS);
1575 static final short[][] DFA10_transition; 2662 static final short[][] DFA11_transition;
1576 2663
1577 static { 2664 static {
1578 int numStates = DFA10_transitionS.length; 2665 int numStates = DFA11_transitionS.length;
1579 DFA10_transition = new short[numStates][]; 2666 DFA11_transition = new short[numStates][];
1580 for (int i=0; i<numStates; i++) { 2667 for (int i=0; i<numStates; i++) {
1581 DFA10_transition[i] = DFA.unpackEncodedString(DFA10_transitionS[i]); 2668 DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]);
1582 } 2669 }
1583 } 2670 }
1584 2671
1585 class DFA10 extends DFA { 2672 class DFA11 extends DFA {
1586 2673
1587 public DFA10(BaseRecognizer recognizer) { 2674 public DFA11(BaseRecognizer recognizer) {
1588 this.recognizer = recognizer; 2675 this.recognizer = recognizer;
1589 this.decisionNumber = 10; 2676 this.decisionNumber = 11;
1590 this.eot = DFA10_eot; 2677 this.eot = DFA11_eot;
1591 this.eof = DFA10_eof; 2678 this.eof = DFA11_eof;
1592 this.min = DFA10_min; 2679 this.min = DFA11_min;
1593 this.max = DFA10_max; 2680 this.max = DFA11_max;
1594 this.accept = DFA10_accept; 2681 this.accept = DFA11_accept;
1595 this.special = DFA10_special; 2682 this.special = DFA11_special;
1596 this.transition = DFA10_transition; 2683 this.transition = DFA11_transition;
1597 } 2684 }
1598 public String getDescription() { 2685 public String getDescription() {
1599 return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | RULE_STRING | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; 2686 return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | RULE_STRING | RULE_QUOTED_ID | RULE_PLUS | RULE_STAR | RULE_DOT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
1600 } 2687 }
1601 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 2688 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1602 IntStream input = _input; 2689 IntStream input = _input;
1603 int _s = s; 2690 int _s = s;
1604 switch ( s ) { 2691 switch ( s ) {
1605 case 0 : 2692 case 0 :
1606 int LA10_0 = input.LA(1); 2693 int LA11_35 = input.LA(1);
1607 2694
1608 s = -1; 2695 s = -1;
1609 if ( (LA10_0=='-') ) {s = 1;} 2696 if ( ((LA11_35>='\u0000' && LA11_35<='\uFFFF')) ) {s = 98;}
1610 2697
1611 else if ( (LA10_0=='.') ) {s = 2;} 2698 else s = 39;
1612 2699
1613 else if ( (LA10_0=='t') ) {s = 3;} 2700 if ( s>=0 ) return s;
2701 break;
2702 case 1 :
2703 int LA11_0 = input.LA(1);
2704
2705 s = -1;
2706 if ( (LA11_0==':') ) {s = 1;}
2707
2708 else if ( (LA11_0=='=') ) {s = 2;}
2709
2710 else if ( (LA11_0=='f') ) {s = 3;}
2711
2712 else if ( (LA11_0=='e') ) {s = 4;}
2713
2714 else if ( (LA11_0=='d') ) {s = 5;}
2715
2716 else if ( (LA11_0=='.') ) {s = 6;}
1614 2717
1615 else if ( (LA10_0=='f') ) {s = 4;} 2718 else if ( (LA11_0=='i') ) {s = 7;}
1616 2719
1617 else if ( (LA10_0=='u') ) {s = 5;} 2720 else if ( (LA11_0=='t') ) {s = 8;}
1618 2721
1619 else if ( (LA10_0=='e') ) {s = 6;} 2722 else if ( (LA11_0==';') ) {s = 9;}
1620 2723
1621 else if ( (LA10_0=='(') ) {s = 7;} 2724 else if ( (LA11_0=='-') ) {s = 10;}
1622 2725
1623 else if ( (LA10_0==',') ) {s = 8;} 2726 else if ( (LA11_0==',') ) {s = 11;}
1624 2727
1625 else if ( (LA10_0==')') ) {s = 9;} 2728 else if ( (LA11_0=='c') ) {s = 12;}
1626 2729
1627 else if ( (LA10_0==':') ) {s = 10;} 2730 else if ( (LA11_0=='{') ) {s = 13;}
1628 2731
1629 else if ( (LA10_0=='b') ) {s = 11;} 2732 else if ( (LA11_0=='}') ) {s = 14;}
1630 2733
1631 else if ( (LA10_0=='i') ) {s = 12;} 2734 else if ( (LA11_0=='|') ) {s = 15;}
1632 2735
1633 else if ( (LA10_0=='r') ) {s = 13;} 2736 else if ( (LA11_0=='(') ) {s = 16;}
1634 2737
1635 else if ( (LA10_0=='s') ) {s = 14;} 2738 else if ( (LA11_0==')') ) {s = 17;}
1636 2739
1637 else if ( (LA10_0=='\'') ) {s = 15;} 2740 else if ( (LA11_0=='*') ) {s = 18;}
1638 2741
1639 else if ( (LA10_0=='|') ) {s = 16;} 2742 else if ( (LA11_0=='[') ) {s = 19;}
1640 2743
1641 else if ( (LA10_0=='+') ) {s = 17;} 2744 else if ( (LA11_0==']') ) {s = 20;}
1642 2745
1643 else if ( (LA10_0=='*') ) {s = 18;} 2746 else if ( (LA11_0=='a') ) {s = 21;}
1644 2747
1645 else if ( (LA10_0=='d') ) {s = 19;} 2748 else if ( (LA11_0=='o') ) {s = 22;}
1646 2749
1647 else if ( (LA10_0=='a') ) {s = 20;} 2750 else if ( (LA11_0=='s') ) {s = 23;}
1648 2751
1649 else if ( (LA10_0=='c') ) {s = 21;} 2752 else if ( (LA11_0=='<') ) {s = 24;}
1650 2753
1651 else if ( (LA10_0=='{') ) {s = 22;} 2754 else if ( (LA11_0=='>') ) {s = 25;}
1652 2755
1653 else if ( (LA10_0=='}') ) {s = 23;} 2756 else if ( (LA11_0=='r') ) {s = 26;}
1654 2757
1655 else if ( (LA10_0=='\"') ) {s = 24;} 2758 else if ( (LA11_0=='!') ) {s = 27;}
1656 2759
1657 else if ( (LA10_0=='^') ) {s = 25;} 2760 else if ( (LA11_0=='+') ) {s = 28;}
1658 2761
1659 else if ( ((LA10_0>='A' && LA10_0<='Z')||LA10_0=='_'||(LA10_0>='g' && LA10_0<='h')||(LA10_0>='j' && LA10_0<='q')||(LA10_0>='v' && LA10_0<='z')) ) {s = 26;} 2762 else if ( (LA11_0=='/') ) {s = 29;}
1660 2763
1661 else if ( ((LA10_0>='0' && LA10_0<='9')) ) {s = 27;} 2764 else if ( (LA11_0=='^') ) {s = 30;}
1662 2765
1663 else if ( (LA10_0=='/') ) {s = 28;} 2766 else if ( (LA11_0=='m') ) {s = 31;}
1664 2767
1665 else if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) {s = 29;} 2768 else if ( (LA11_0=='p') ) {s = 32;}
1666 2769
1667 else if ( ((LA10_0>='\u0000' && LA10_0<='\b')||(LA10_0>='\u000B' && LA10_0<='\f')||(LA10_0>='\u000E' && LA10_0<='\u001F')||LA10_0=='!'||(LA10_0>='#' && LA10_0<='&')||(LA10_0>=';' && LA10_0<='@')||(LA10_0>='[' && LA10_0<=']')||LA10_0=='`'||(LA10_0>='~' && LA10_0<='\uFFFF')) ) {s = 30;} 2770 else if ( (LA11_0=='u') ) {s = 33;}
2771
2772 else if ( (LA11_0=='\"') ) {s = 34;}
2773
2774 else if ( (LA11_0=='\'') ) {s = 35;}
2775
2776 else if ( ((LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||LA11_0=='b'||(LA11_0>='g' && LA11_0<='h')||(LA11_0>='j' && LA11_0<='l')||LA11_0=='n'||LA11_0=='q'||(LA11_0>='v' && LA11_0<='z')) ) {s = 36;}
2777
2778 else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 37;}
2779
2780 else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 38;}
2781
2782 else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='#' && LA11_0<='&')||(LA11_0>='?' && LA11_0<='@')||LA11_0=='\\'||LA11_0=='`'||(LA11_0>='~' && LA11_0<='\uFFFF')) ) {s = 39;}
1668 2783
1669 if ( s>=0 ) return s; 2784 if ( s>=0 ) return s;
1670 break; 2785 break;
1671 case 1 : 2786 case 2 :
1672 int LA10_24 = input.LA(1); 2787 int LA11_34 = input.LA(1);
1673 2788
1674 s = -1; 2789 s = -1;
1675 if ( ((LA10_24>='\u0000' && LA10_24<='\uFFFF')) ) {s = 61;} 2790 if ( ((LA11_34>='\u0000' && LA11_34<='\uFFFF')) ) {s = 97;}
1676 2791
1677 else s = 30; 2792 else s = 39;
1678 2793
1679 if ( s>=0 ) return s; 2794 if ( s>=0 ) return s;
1680 break; 2795 break;
1681 } 2796 }
1682 NoViableAltException nvae = 2797 NoViableAltException nvae =
1683 new NoViableAltException(getDescription(), 10, _s, input); 2798 new NoViableAltException(getDescription(), 11, _s, input);
1684 error(nvae); 2799 error(nvae);
1685 throw nvae; 2800 throw nvae;
1686 } 2801 }
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java
index 1d449e49..ee2f6175 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalSolverLanguageParser.java
@@ -5,6 +5,7 @@ import org.eclipse.xtext.parser.*;
5import org.eclipse.xtext.parser.impl.*; 5import org.eclipse.xtext.parser.impl.*;
6import org.eclipse.emf.ecore.util.EcoreUtil; 6import org.eclipse.emf.ecore.util.EcoreUtil;
7import org.eclipse.emf.ecore.EObject; 7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.common.util.Enumerator;
8import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; 9import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
9import org.eclipse.xtext.parser.antlr.XtextTokenStream; 10import org.eclipse.xtext.parser.antlr.XtextTokenStream;
10import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; 11import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
@@ -17,51 +18,85 @@ import org.antlr.runtime.*;
17import java.util.Stack; 18import java.util.Stack;
18import java.util.List; 19import java.util.List;
19import java.util.ArrayList; 20import java.util.ArrayList;
20 21import java.util.Map;
22import java.util.HashMap;
21@SuppressWarnings("all") 23@SuppressWarnings("all")
22public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { 24public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
23 public static final String[] tokenNames = new String[] { 25 public static final String[] tokenNames = new String[] {
24 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'-'", "'.'", "'true'", "'false'", "'unknown'", "'error'", "'('", "','", "')'", "':'", "'exists'", "'equals'", "'bool'", "'int'", "'real'", "'string'", "'\\''", "':-'", "'|'", "'+'", "'*'", "'default'", "'abstract'", "'class'", "'extends'", "'{'", "'}'", "'enum'", "'containment'", "'relation'", "'..'" 26 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DOT", "RULE_STAR", "RULE_PLUS", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_QUOTED_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "':'", "':-'", "'='", "'functional'", "'error'", "'default'", "'extern'", "'.'", "'if'", "'then'", "'else'", "';'", "'->'", "','", "'count'", "'{'", "'}'", "'|'", "'('", "')'", "'*'", "'['", "'..'", "']'", "'inf'", "'empty'", "'abstract'", "'class'", "'extends'", "'contains'", "'opposite'", "'scope'", "'=='", "'<='", "'>='", "'int'", "'real'", "'!='", "'<'", "'>'", "'in'", "'+'", "'-'", "'/'", "'^'", "'!'", "'may'", "'must'", "'current'", "'only'", "'sum'", "'prod'", "'avg'", "'min'", "'max'", "'true'", "'false'", "'unknown'", "'minimize'", "'maximize'"
25 }; 27 };
26 public static final int RULE_STRING=6; 28 public static final int T__50=50;
27 public static final int RULE_SL_COMMENT=8;
28 public static final int T__19=19; 29 public static final int T__19=19;
29 public static final int T__15=15; 30 public static final int T__15=15;
30 public static final int T__37=37; 31 public static final int T__59=59;
31 public static final int T__16=16; 32 public static final int T__16=16;
32 public static final int T__38=38;
33 public static final int T__17=17; 33 public static final int T__17=17;
34 public static final int T__39=39;
35 public static final int T__18=18; 34 public static final int T__18=18;
36 public static final int T__11=11; 35 public static final int T__55=55;
37 public static final int T__33=33; 36 public static final int T__56=56;
38 public static final int T__12=12; 37 public static final int T__57=57;
39 public static final int T__34=34; 38 public static final int T__58=58;
40 public static final int T__13=13; 39 public static final int T__51=51;
41 public static final int T__35=35; 40 public static final int RULE_STAR=5;
42 public static final int T__14=14; 41 public static final int T__52=52;
43 public static final int T__36=36; 42 public static final int T__53=53;
44 public static final int EOF=-1; 43 public static final int T__54=54;
45 public static final int T__30=30; 44 public static final int T__60=60;
46 public static final int T__31=31; 45 public static final int T__61=61;
47 public static final int T__32=32; 46 public static final int RULE_ID=8;
48 public static final int RULE_ID=5; 47 public static final int RULE_QUOTED_ID=10;
49 public static final int RULE_WS=9;
50 public static final int RULE_ANY_OTHER=10;
51 public static final int T__26=26; 48 public static final int T__26=26;
52 public static final int T__27=27; 49 public static final int T__27=27;
53 public static final int T__28=28; 50 public static final int T__28=28;
54 public static final int RULE_INT=4; 51 public static final int RULE_INT=9;
55 public static final int T__29=29; 52 public static final int T__29=29;
56 public static final int T__22=22; 53 public static final int T__22=22;
57 public static final int RULE_ML_COMMENT=7; 54 public static final int T__66=66;
55 public static final int RULE_ML_COMMENT=11;
58 public static final int T__23=23; 56 public static final int T__23=23;
57 public static final int T__67=67;
59 public static final int T__24=24; 58 public static final int T__24=24;
59 public static final int T__68=68;
60 public static final int T__25=25; 60 public static final int T__25=25;
61 public static final int T__40=40; 61 public static final int T__69=69;
62 public static final int T__41=41; 62 public static final int T__62=62;
63 public static final int T__63=63;
63 public static final int T__20=20; 64 public static final int T__20=20;
65 public static final int T__64=64;
64 public static final int T__21=21; 66 public static final int T__21=21;
67 public static final int T__65=65;
68 public static final int T__70=70;
69 public static final int T__71=71;
70 public static final int T__72=72;
71 public static final int RULE_STRING=7;
72 public static final int RULE_SL_COMMENT=12;
73 public static final int T__37=37;
74 public static final int T__38=38;
75 public static final int T__39=39;
76 public static final int T__33=33;
77 public static final int T__34=34;
78 public static final int T__35=35;
79 public static final int RULE_PLUS=6;
80 public static final int T__36=36;
81 public static final int T__73=73;
82 public static final int RULE_DOT=4;
83 public static final int EOF=-1;
84 public static final int T__30=30;
85 public static final int T__74=74;
86 public static final int T__31=31;
87 public static final int T__32=32;
88 public static final int RULE_WS=13;
89 public static final int RULE_ANY_OTHER=14;
90 public static final int T__48=48;
91 public static final int T__49=49;
92 public static final int T__44=44;
93 public static final int T__45=45;
94 public static final int T__46=46;
95 public static final int T__47=47;
96 public static final int T__40=40;
97 public static final int T__41=41;
98 public static final int T__42=42;
99 public static final int T__43=43;
65 100
66 // delegates 101 // delegates
67 // delegators 102 // delegators
@@ -103,7 +138,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
103 138
104 139
105 // $ANTLR start "entryRuleProblem" 140 // $ANTLR start "entryRuleProblem"
106 // InternalSolverLanguage.g:64:1: entryRuleProblem returns [EObject current=null] : iv_ruleProblem= ruleProblem EOF ; 141 // InternalSolverLanguage.g:65:1: entryRuleProblem returns [EObject current=null] : iv_ruleProblem= ruleProblem EOF ;
107 public final EObject entryRuleProblem() throws RecognitionException { 142 public final EObject entryRuleProblem() throws RecognitionException {
108 EObject current = null; 143 EObject current = null;
109 144
@@ -111,17 +146,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
111 146
112 147
113 try { 148 try {
114 // InternalSolverLanguage.g:64:48: (iv_ruleProblem= ruleProblem EOF ) 149 // InternalSolverLanguage.g:65:48: (iv_ruleProblem= ruleProblem EOF )
115 // InternalSolverLanguage.g:65:2: iv_ruleProblem= ruleProblem EOF 150 // InternalSolverLanguage.g:66:2: iv_ruleProblem= ruleProblem EOF
116 { 151 {
117 newCompositeNode(grammarAccess.getProblemRule()); 152 if ( state.backtracking==0 ) {
153 newCompositeNode(grammarAccess.getProblemRule());
154 }
118 pushFollow(FOLLOW_1); 155 pushFollow(FOLLOW_1);
119 iv_ruleProblem=ruleProblem(); 156 iv_ruleProblem=ruleProblem();
120 157
121 state._fsp--; 158 state._fsp--;
122 159 if (state.failed) return current;
123 current =iv_ruleProblem; 160 if ( state.backtracking==0 ) {
124 match(input,EOF,FOLLOW_2); 161 current =iv_ruleProblem;
162 }
163 match(input,EOF,FOLLOW_2); if (state.failed) return current;
125 164
126 } 165 }
127 166
@@ -139,7 +178,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
139 178
140 179
141 // $ANTLR start "ruleProblem" 180 // $ANTLR start "ruleProblem"
142 // InternalSolverLanguage.g:71:1: ruleProblem returns [EObject current=null] : ( (lv_statements_0_0= ruleStatement ) )* ; 181 // InternalSolverLanguage.g:72:1: ruleProblem returns [EObject current=null] : ( (lv_statements_0_0= ruleStatement ) )* ;
143 public final EObject ruleProblem() throws RecognitionException { 182 public final EObject ruleProblem() throws RecognitionException {
144 EObject current = null; 183 EObject current = null;
145 184
@@ -150,46 +189,50 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
150 enterRule(); 189 enterRule();
151 190
152 try { 191 try {
153 // InternalSolverLanguage.g:77:2: ( ( (lv_statements_0_0= ruleStatement ) )* ) 192 // InternalSolverLanguage.g:78:2: ( ( (lv_statements_0_0= ruleStatement ) )* )
154 // InternalSolverLanguage.g:78:2: ( (lv_statements_0_0= ruleStatement ) )* 193 // InternalSolverLanguage.g:79:2: ( (lv_statements_0_0= ruleStatement ) )*
155 { 194 {
156 // InternalSolverLanguage.g:78:2: ( (lv_statements_0_0= ruleStatement ) )* 195 // InternalSolverLanguage.g:79:2: ( (lv_statements_0_0= ruleStatement ) )*
157 loop1: 196 loop1:
158 do { 197 do {
159 int alt1=2; 198 int alt1=2;
160 int LA1_0 = input.LA(1); 199 int LA1_0 = input.LA(1);
161 200
162 if ( (LA1_0==RULE_ID||LA1_0==16||(LA1_0>=21 && LA1_0<=26)||(LA1_0>=32 && LA1_0<=34)||(LA1_0>=38 && LA1_0<=40)) ) { 201 if ( ((LA1_0>=RULE_STRING && LA1_0<=RULE_QUOTED_ID)||(LA1_0>=18 && LA1_0<=21)||LA1_0==23||LA1_0==29||LA1_0==33||LA1_0==36||(LA1_0>=39 && LA1_0<=42)||LA1_0==46||(LA1_0>=50 && LA1_0<=51)||(LA1_0>=56 && LA1_0<=57)||(LA1_0>=60 && LA1_0<=74)) ) {
163 alt1=1; 202 alt1=1;
164 } 203 }
165 204
166 205
167 switch (alt1) { 206 switch (alt1) {
168 case 1 : 207 case 1 :
169 // InternalSolverLanguage.g:79:3: (lv_statements_0_0= ruleStatement ) 208 // InternalSolverLanguage.g:80:3: (lv_statements_0_0= ruleStatement )
170 { 209 {
171 // InternalSolverLanguage.g:79:3: (lv_statements_0_0= ruleStatement ) 210 // InternalSolverLanguage.g:80:3: (lv_statements_0_0= ruleStatement )
172 // InternalSolverLanguage.g:80:4: lv_statements_0_0= ruleStatement 211 // InternalSolverLanguage.g:81:4: lv_statements_0_0= ruleStatement
173 { 212 {
213 if ( state.backtracking==0 ) {
174 214
175 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0()); 215 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0());
176 216
217 }
177 pushFollow(FOLLOW_3); 218 pushFollow(FOLLOW_3);
178 lv_statements_0_0=ruleStatement(); 219 lv_statements_0_0=ruleStatement();
179 220
180 state._fsp--; 221 state._fsp--;
181 222 if (state.failed) return current;
182 223 if ( state.backtracking==0 ) {
183 if (current==null) { 224
184 current = createModelElementForParent(grammarAccess.getProblemRule()); 225 if (current==null) {
185 } 226 current = createModelElementForParent(grammarAccess.getProblemRule());
186 add( 227 }
187 current, 228 add(
188 "statements", 229 current,
189 lv_statements_0_0, 230 "statements",
190 "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); 231 lv_statements_0_0,
191 afterParserOrEnumRuleCall(); 232 "org.eclipse.viatra.solver.language.SolverLanguage.Statement");
192 233 afterParserOrEnumRuleCall();
234
235 }
193 236
194 } 237 }
195 238
@@ -205,9 +248,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
205 248
206 } 249 }
207 250
251 if ( state.backtracking==0 ) {
208 252
209 leaveRule(); 253 leaveRule();
210 254
255 }
211 } 256 }
212 257
213 catch (RecognitionException re) { 258 catch (RecognitionException re) {
@@ -222,7 +267,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
222 267
223 268
224 // $ANTLR start "entryRuleStatement" 269 // $ANTLR start "entryRuleStatement"
225 // InternalSolverLanguage.g:100:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ; 270 // InternalSolverLanguage.g:101:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ;
226 public final EObject entryRuleStatement() throws RecognitionException { 271 public final EObject entryRuleStatement() throws RecognitionException {
227 EObject current = null; 272 EObject current = null;
228 273
@@ -230,17 +275,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
230 275
231 276
232 try { 277 try {
233 // InternalSolverLanguage.g:100:50: (iv_ruleStatement= ruleStatement EOF ) 278 // InternalSolverLanguage.g:101:50: (iv_ruleStatement= ruleStatement EOF )
234 // InternalSolverLanguage.g:101:2: iv_ruleStatement= ruleStatement EOF 279 // InternalSolverLanguage.g:102:2: iv_ruleStatement= ruleStatement EOF
235 { 280 {
236 newCompositeNode(grammarAccess.getStatementRule()); 281 if ( state.backtracking==0 ) {
282 newCompositeNode(grammarAccess.getStatementRule());
283 }
237 pushFollow(FOLLOW_1); 284 pushFollow(FOLLOW_1);
238 iv_ruleStatement=ruleStatement(); 285 iv_ruleStatement=ruleStatement();
239 286
240 state._fsp--; 287 state._fsp--;
241 288 if (state.failed) return current;
242 current =iv_ruleStatement; 289 if ( state.backtracking==0 ) {
243 match(input,EOF,FOLLOW_2); 290 current =iv_ruleStatement;
291 }
292 match(input,EOF,FOLLOW_2); if (state.failed) return current;
244 293
245 } 294 }
246 295
@@ -258,189 +307,286 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
258 307
259 308
260 // $ANTLR start "ruleStatement" 309 // $ANTLR start "ruleStatement"
261 // InternalSolverLanguage.g:107:1: ruleStatement returns [EObject current=null] : (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate ) ; 310 // InternalSolverLanguage.g:108:1: ruleStatement returns [EObject current=null] : ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_ExternPredicateDefinition_4= ruleExternPredicateDefinition | this_MetricDefinition_5= ruleMetricDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ClassDefinition_7= ruleClassDefinition | this_ScopeDefinition_8= ruleScopeDefinition | this_ObjectiveDefinition_9= ruleObjectiveDefinition ) this_DOT_10= RULE_DOT ) ;
262 public final EObject ruleStatement() throws RecognitionException { 311 public final EObject ruleStatement() throws RecognitionException {
263 EObject current = null; 312 EObject current = null;
264 313
265 EObject this_Interpretation_0 = null; 314 Token this_DOT_10=null;
315 EObject this_AssertionOrDefinition_0 = null;
316
317 EObject this_PredicateDefinition_1 = null;
318
319 EObject this_UnnamedErrorPrediateDefinition_2 = null;
320
321 EObject this_DefaultDefinition_3 = null;
322
323 EObject this_ExternPredicateDefinition_4 = null;
324
325 EObject this_MetricDefinition_5 = null;
326
327 EObject this_ExternMetricDefinition_6 = null;
328
329 EObject this_ClassDefinition_7 = null;
266 330
267 EObject this_Predicate_1 = null; 331 EObject this_ScopeDefinition_8 = null;
332
333 EObject this_ObjectiveDefinition_9 = null;
268 334
269 335
270 336
271 enterRule(); 337 enterRule();
272 338
273 try { 339 try {
274 // InternalSolverLanguage.g:113:2: ( (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate ) ) 340 // InternalSolverLanguage.g:114:2: ( ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_ExternPredicateDefinition_4= ruleExternPredicateDefinition | this_MetricDefinition_5= ruleMetricDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ClassDefinition_7= ruleClassDefinition | this_ScopeDefinition_8= ruleScopeDefinition | this_ObjectiveDefinition_9= ruleObjectiveDefinition ) this_DOT_10= RULE_DOT ) )
275 // InternalSolverLanguage.g:114:2: (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate ) 341 // InternalSolverLanguage.g:115:2: ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_ExternPredicateDefinition_4= ruleExternPredicateDefinition | this_MetricDefinition_5= ruleMetricDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ClassDefinition_7= ruleClassDefinition | this_ScopeDefinition_8= ruleScopeDefinition | this_ObjectiveDefinition_9= ruleObjectiveDefinition ) this_DOT_10= RULE_DOT )
342 {
343 // InternalSolverLanguage.g:115:2: ( (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_ExternPredicateDefinition_4= ruleExternPredicateDefinition | this_MetricDefinition_5= ruleMetricDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ClassDefinition_7= ruleClassDefinition | this_ScopeDefinition_8= ruleScopeDefinition | this_ObjectiveDefinition_9= ruleObjectiveDefinition ) this_DOT_10= RULE_DOT )
344 // InternalSolverLanguage.g:116:3: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_ExternPredicateDefinition_4= ruleExternPredicateDefinition | this_MetricDefinition_5= ruleMetricDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ClassDefinition_7= ruleClassDefinition | this_ScopeDefinition_8= ruleScopeDefinition | this_ObjectiveDefinition_9= ruleObjectiveDefinition ) this_DOT_10= RULE_DOT
276 { 345 {
277 // InternalSolverLanguage.g:114:2: (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate ) 346 // InternalSolverLanguage.g:116:3: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_ExternPredicateDefinition_4= ruleExternPredicateDefinition | this_MetricDefinition_5= ruleMetricDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ClassDefinition_7= ruleClassDefinition | this_ScopeDefinition_8= ruleScopeDefinition | this_ObjectiveDefinition_9= ruleObjectiveDefinition )
278 int alt2=2; 347 int alt2=10;
279 alt2 = dfa2.predict(input); 348 alt2 = dfa2.predict(input);
280 switch (alt2) { 349 switch (alt2) {
281 case 1 : 350 case 1 :
282 // InternalSolverLanguage.g:115:3: this_Interpretation_0= ruleInterpretation 351 // InternalSolverLanguage.g:117:4: this_AssertionOrDefinition_0= ruleAssertionOrDefinition
283 { 352 {
353 if ( state.backtracking==0 ) {
284 354
285 newCompositeNode(grammarAccess.getStatementAccess().getInterpretationParserRuleCall_0()); 355 newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0_0());
286 356
287 pushFollow(FOLLOW_2); 357 }
288 this_Interpretation_0=ruleInterpretation(); 358 pushFollow(FOLLOW_4);
359 this_AssertionOrDefinition_0=ruleAssertionOrDefinition();
289 360
290 state._fsp--; 361 state._fsp--;
362 if (state.failed) return current;
363 if ( state.backtracking==0 ) {
291 364
292 365 current = this_AssertionOrDefinition_0;
293 current = this_Interpretation_0; 366 afterParserOrEnumRuleCall();
294 afterParserOrEnumRuleCall(); 367
295 368 }
296 369
297 } 370 }
298 break; 371 break;
299 case 2 : 372 case 2 :
300 // InternalSolverLanguage.g:124:3: this_Predicate_1= rulePredicate 373 // InternalSolverLanguage.g:126:4: this_PredicateDefinition_1= rulePredicateDefinition
301 { 374 {
375 if ( state.backtracking==0 ) {
302 376
303 newCompositeNode(grammarAccess.getStatementAccess().getPredicateParserRuleCall_1()); 377 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_0_1());
304 378
305 pushFollow(FOLLOW_2); 379 }
306 this_Predicate_1=rulePredicate(); 380 pushFollow(FOLLOW_4);
381 this_PredicateDefinition_1=rulePredicateDefinition();
307 382
308 state._fsp--; 383 state._fsp--;
384 if (state.failed) return current;
385 if ( state.backtracking==0 ) {
309 386
310 387 current = this_PredicateDefinition_1;
311 current = this_Predicate_1; 388 afterParserOrEnumRuleCall();
312 afterParserOrEnumRuleCall(); 389
313 390 }
314 391
315 } 392 }
316 break; 393 break;
394 case 3 :
395 // InternalSolverLanguage.g:135:4: this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition
396 {
397 if ( state.backtracking==0 ) {
317 398
318 } 399 newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPrediateDefinitionParserRuleCall_0_2());
400
401 }
402 pushFollow(FOLLOW_4);
403 this_UnnamedErrorPrediateDefinition_2=ruleUnnamedErrorPrediateDefinition();
319 404
405 state._fsp--;
406 if (state.failed) return current;
407 if ( state.backtracking==0 ) {
320 408
321 } 409 current = this_UnnamedErrorPrediateDefinition_2;
410 afterParserOrEnumRuleCall();
411
412 }
322 413
414 }
415 break;
416 case 4 :
417 // InternalSolverLanguage.g:144:4: this_DefaultDefinition_3= ruleDefaultDefinition
418 {
419 if ( state.backtracking==0 ) {
323 420
324 leaveRule(); 421 newCompositeNode(grammarAccess.getStatementAccess().getDefaultDefinitionParserRuleCall_0_3());
422
423 }
424 pushFollow(FOLLOW_4);
425 this_DefaultDefinition_3=ruleDefaultDefinition();
325 426
326 } 427 state._fsp--;
428 if (state.failed) return current;
429 if ( state.backtracking==0 ) {
327 430
328 catch (RecognitionException re) { 431 current = this_DefaultDefinition_3;
329 recover(input,re); 432 afterParserOrEnumRuleCall();
330 appendSkippedTokens(); 433
331 } 434 }
332 finally {
333 }
334 return current;
335 }
336 // $ANTLR end "ruleStatement"
337 435
436 }
437 break;
438 case 5 :
439 // InternalSolverLanguage.g:153:4: this_ExternPredicateDefinition_4= ruleExternPredicateDefinition
440 {
441 if ( state.backtracking==0 ) {
338 442
339 // $ANTLR start "entryRuleREALLiteral" 443 newCompositeNode(grammarAccess.getStatementAccess().getExternPredicateDefinitionParserRuleCall_0_4());
340 // InternalSolverLanguage.g:136:1: entryRuleREALLiteral returns [String current=null] : iv_ruleREALLiteral= ruleREALLiteral EOF ; 444
341 public final String entryRuleREALLiteral() throws RecognitionException { 445 }
342 String current = null; 446 pushFollow(FOLLOW_4);
447 this_ExternPredicateDefinition_4=ruleExternPredicateDefinition();
343 448
344 AntlrDatatypeRuleToken iv_ruleREALLiteral = null; 449 state._fsp--;
450 if (state.failed) return current;
451 if ( state.backtracking==0 ) {
345 452
453 current = this_ExternPredicateDefinition_4;
454 afterParserOrEnumRuleCall();
455
456 }
346 457
347 try { 458 }
348 // InternalSolverLanguage.g:136:51: (iv_ruleREALLiteral= ruleREALLiteral EOF ) 459 break;
349 // InternalSolverLanguage.g:137:2: iv_ruleREALLiteral= ruleREALLiteral EOF 460 case 6 :
350 { 461 // InternalSolverLanguage.g:162:4: this_MetricDefinition_5= ruleMetricDefinition
351 newCompositeNode(grammarAccess.getREALLiteralRule()); 462 {
352 pushFollow(FOLLOW_1); 463 if ( state.backtracking==0 ) {
353 iv_ruleREALLiteral=ruleREALLiteral();
354 464
355 state._fsp--; 465 newCompositeNode(grammarAccess.getStatementAccess().getMetricDefinitionParserRuleCall_0_5());
466
467 }
468 pushFollow(FOLLOW_4);
469 this_MetricDefinition_5=ruleMetricDefinition();
356 470
357 current =iv_ruleREALLiteral.getText(); 471 state._fsp--;
358 match(input,EOF,FOLLOW_2); 472 if (state.failed) return current;
473 if ( state.backtracking==0 ) {
359 474
360 } 475 current = this_MetricDefinition_5;
476 afterParserOrEnumRuleCall();
477
478 }
361 479
362 } 480 }
481 break;
482 case 7 :
483 // InternalSolverLanguage.g:171:4: this_ExternMetricDefinition_6= ruleExternMetricDefinition
484 {
485 if ( state.backtracking==0 ) {
363 486
364 catch (RecognitionException re) { 487 newCompositeNode(grammarAccess.getStatementAccess().getExternMetricDefinitionParserRuleCall_0_6());
365 recover(input,re); 488
366 appendSkippedTokens(); 489 }
367 } 490 pushFollow(FOLLOW_4);
368 finally { 491 this_ExternMetricDefinition_6=ruleExternMetricDefinition();
369 }
370 return current;
371 }
372 // $ANTLR end "entryRuleREALLiteral"
373 492
493 state._fsp--;
494 if (state.failed) return current;
495 if ( state.backtracking==0 ) {
374 496
375 // $ANTLR start "ruleREALLiteral" 497 current = this_ExternMetricDefinition_6;
376 // InternalSolverLanguage.g:143:1: ruleREALLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT ) ; 498 afterParserOrEnumRuleCall();
377 public final AntlrDatatypeRuleToken ruleREALLiteral() throws RecognitionException { 499
378 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 500 }
379 501
380 Token kw=null; 502 }
381 Token this_INT_1=null; 503 break;
382 Token this_INT_3=null; 504 case 8 :
505 // InternalSolverLanguage.g:180:4: this_ClassDefinition_7= ruleClassDefinition
506 {
507 if ( state.backtracking==0 ) {
383 508
509 newCompositeNode(grammarAccess.getStatementAccess().getClassDefinitionParserRuleCall_0_7());
510
511 }
512 pushFollow(FOLLOW_4);
513 this_ClassDefinition_7=ruleClassDefinition();
384 514
385 enterRule(); 515 state._fsp--;
516 if (state.failed) return current;
517 if ( state.backtracking==0 ) {
386 518
387 try { 519 current = this_ClassDefinition_7;
388 // InternalSolverLanguage.g:149:2: ( ( (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT ) ) 520 afterParserOrEnumRuleCall();
389 // InternalSolverLanguage.g:150:2: ( (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT ) 521
390 { 522 }
391 // InternalSolverLanguage.g:150:2: ( (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT )
392 // InternalSolverLanguage.g:151:3: (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT
393 {
394 // InternalSolverLanguage.g:151:3: (kw= '-' )?
395 int alt3=2;
396 int LA3_0 = input.LA(1);
397 523
398 if ( (LA3_0==11) ) { 524 }
399 alt3=1; 525 break;
400 } 526 case 9 :
401 switch (alt3) { 527 // InternalSolverLanguage.g:189:4: this_ScopeDefinition_8= ruleScopeDefinition
402 case 1 :
403 // InternalSolverLanguage.g:152:4: kw= '-'
404 { 528 {
405 kw=(Token)match(input,11,FOLLOW_4); 529 if ( state.backtracking==0 ) {
406 530
407 current.merge(kw); 531 newCompositeNode(grammarAccess.getStatementAccess().getScopeDefinitionParserRuleCall_0_8());
408 newLeafNode(kw, grammarAccess.getREALLiteralAccess().getHyphenMinusKeyword_0()); 532
409 533 }
534 pushFollow(FOLLOW_4);
535 this_ScopeDefinition_8=ruleScopeDefinition();
536
537 state._fsp--;
538 if (state.failed) return current;
539 if ( state.backtracking==0 ) {
540
541 current = this_ScopeDefinition_8;
542 afterParserOrEnumRuleCall();
543
544 }
410 545
411 } 546 }
412 break; 547 break;
548 case 10 :
549 // InternalSolverLanguage.g:198:4: this_ObjectiveDefinition_9= ruleObjectiveDefinition
550 {
551 if ( state.backtracking==0 ) {
413 552
414 } 553 newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDefinitionParserRuleCall_0_9());
554
555 }
556 pushFollow(FOLLOW_4);
557 this_ObjectiveDefinition_9=ruleObjectiveDefinition();
415 558
416 this_INT_1=(Token)match(input,RULE_INT,FOLLOW_5); 559 state._fsp--;
560 if (state.failed) return current;
561 if ( state.backtracking==0 ) {
417 562
418 current.merge(this_INT_1); 563 current = this_ObjectiveDefinition_9;
419 564 afterParserOrEnumRuleCall();
565
566 }
420 567
421 newLeafNode(this_INT_1, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_1()); 568 }
422 569 break;
423 kw=(Token)match(input,12,FOLLOW_4);
424 570
425 current.merge(kw); 571 }
426 newLeafNode(kw, grammarAccess.getREALLiteralAccess().getFullStopKeyword_2());
427
428 this_INT_3=(Token)match(input,RULE_INT,FOLLOW_2);
429 572
430 current.merge(this_INT_3); 573 this_DOT_10=(Token)match(input,RULE_DOT,FOLLOW_2); if (state.failed) return current;
431 574 if ( state.backtracking==0 ) {
432 575
433 newLeafNode(this_INT_3, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_3()); 576 newLeafNode(this_DOT_10, grammarAccess.getStatementAccess().getDOTTerminalRuleCall_1());
434 577
578 }
435 579
436 } 580 }
437 581
438 582
439 } 583 }
440 584
585 if ( state.backtracking==0 ) {
441 586
442 leaveRule(); 587 leaveRule();
443 588
589 }
444 } 590 }
445 591
446 catch (RecognitionException re) { 592 catch (RecognitionException re) {
@@ -451,29 +597,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
451 } 597 }
452 return current; 598 return current;
453 } 599 }
454 // $ANTLR end "ruleREALLiteral" 600 // $ANTLR end "ruleStatement"
455 601
456 602
457 // $ANTLR start "entryRuleINTLiteral" 603 // $ANTLR start "entryRuleAssertionOrDefinition"
458 // InternalSolverLanguage.g:181:1: entryRuleINTLiteral returns [String current=null] : iv_ruleINTLiteral= ruleINTLiteral EOF ; 604 // InternalSolverLanguage.g:215:1: entryRuleAssertionOrDefinition returns [EObject current=null] : iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ;
459 public final String entryRuleINTLiteral() throws RecognitionException { 605 public final EObject entryRuleAssertionOrDefinition() throws RecognitionException {
460 String current = null; 606 EObject current = null;
461 607
462 AntlrDatatypeRuleToken iv_ruleINTLiteral = null; 608 EObject iv_ruleAssertionOrDefinition = null;
463 609
464 610
465 try { 611 try {
466 // InternalSolverLanguage.g:181:50: (iv_ruleINTLiteral= ruleINTLiteral EOF ) 612 // InternalSolverLanguage.g:215:62: (iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF )
467 // InternalSolverLanguage.g:182:2: iv_ruleINTLiteral= ruleINTLiteral EOF 613 // InternalSolverLanguage.g:216:2: iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF
468 { 614 {
469 newCompositeNode(grammarAccess.getINTLiteralRule()); 615 if ( state.backtracking==0 ) {
616 newCompositeNode(grammarAccess.getAssertionOrDefinitionRule());
617 }
470 pushFollow(FOLLOW_1); 618 pushFollow(FOLLOW_1);
471 iv_ruleINTLiteral=ruleINTLiteral(); 619 iv_ruleAssertionOrDefinition=ruleAssertionOrDefinition();
472 620
473 state._fsp--; 621 state._fsp--;
474 622 if (state.failed) return current;
475 current =iv_ruleINTLiteral.getText(); 623 if ( state.backtracking==0 ) {
476 match(input,EOF,FOLLOW_2); 624 current =iv_ruleAssertionOrDefinition;
625 }
626 match(input,EOF,FOLLOW_2); if (state.failed) return current;
477 627
478 } 628 }
479 629
@@ -487,191 +637,287 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
487 } 637 }
488 return current; 638 return current;
489 } 639 }
490 // $ANTLR end "entryRuleINTLiteral" 640 // $ANTLR end "entryRuleAssertionOrDefinition"
491 641
492 642
493 // $ANTLR start "ruleINTLiteral" 643 // $ANTLR start "ruleAssertionOrDefinition"
494 // InternalSolverLanguage.g:188:1: ruleINTLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ; 644 // InternalSolverLanguage.g:222:1: ruleAssertionOrDefinition returns [EObject current=null] : (this_Expression_0= ruleExpression ( ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) ) ) ) ;
495 public final AntlrDatatypeRuleToken ruleINTLiteral() throws RecognitionException { 645 public final EObject ruleAssertionOrDefinition() throws RecognitionException {
496 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 646 EObject current = null;
647
648 Token otherlv_2=null;
649 Token otherlv_5=null;
650 Token otherlv_8=null;
651 EObject this_Expression_0 = null;
652
653 EObject lv_range_3_0 = null;
654
655 EObject lv_body_6_0 = null;
656
657 EObject lv_body_9_0 = null;
497 658
498 Token kw=null;
499 Token this_INT_1=null;
500 659
501 660
502 enterRule(); 661 enterRule();
503 662
504 try { 663 try {
505 // InternalSolverLanguage.g:194:2: ( ( (kw= '-' )? this_INT_1= RULE_INT ) ) 664 // InternalSolverLanguage.g:228:2: ( (this_Expression_0= ruleExpression ( ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) ) ) ) )
506 // InternalSolverLanguage.g:195:2: ( (kw= '-' )? this_INT_1= RULE_INT ) 665 // InternalSolverLanguage.g:229:2: (this_Expression_0= ruleExpression ( ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) ) ) )
507 { 666 {
508 // InternalSolverLanguage.g:195:2: ( (kw= '-' )? this_INT_1= RULE_INT ) 667 // InternalSolverLanguage.g:229:2: (this_Expression_0= ruleExpression ( ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) ) ) )
509 // InternalSolverLanguage.g:196:3: (kw= '-' )? this_INT_1= RULE_INT 668 // InternalSolverLanguage.g:230:3: this_Expression_0= ruleExpression ( ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) ) )
510 { 669 {
511 // InternalSolverLanguage.g:196:3: (kw= '-' )? 670 if ( state.backtracking==0 ) {
512 int alt4=2; 671
513 int LA4_0 = input.LA(1); 672 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getExpressionParserRuleCall_0());
673
674 }
675 pushFollow(FOLLOW_5);
676 this_Expression_0=ruleExpression();
514 677
515 if ( (LA4_0==11) ) { 678 state._fsp--;
679 if (state.failed) return current;
680 if ( state.backtracking==0 ) {
681
682 current = this_Expression_0;
683 afterParserOrEnumRuleCall();
684
685 }
686 // InternalSolverLanguage.g:238:3: ( ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? ) | ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) | ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) ) )
687 int alt4=3;
688 switch ( input.LA(1) ) {
689 case EOF:
690 case RULE_DOT:
691 case 15:
692 {
516 alt4=1; 693 alt4=1;
694 }
695 break;
696 case 16:
697 {
698 alt4=2;
699 }
700 break;
701 case 17:
702 {
703 alt4=3;
704 }
705 break;
706 default:
707 if (state.backtracking>0) {state.failed=true; return current;}
708 NoViableAltException nvae =
709 new NoViableAltException("", 4, 0, input);
710
711 throw nvae;
517 } 712 }
713
518 switch (alt4) { 714 switch (alt4) {
519 case 1 : 715 case 1 :
520 // InternalSolverLanguage.g:197:4: kw= '-' 716 // InternalSolverLanguage.g:239:4: ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? )
521 { 717 {
522 kw=(Token)match(input,11,FOLLOW_4); 718 // InternalSolverLanguage.g:239:4: ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? )
523 719 // InternalSolverLanguage.g:240:5: () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )?
524 current.merge(kw); 720 {
525 newLeafNode(kw, grammarAccess.getINTLiteralAccess().getHyphenMinusKeyword_0()); 721 // InternalSolverLanguage.g:240:5: ()
526 722 // InternalSolverLanguage.g:241:6:
723 {
724 if ( state.backtracking==0 ) {
527 725
726 current = forceCreateModelElementAndSet(
727 grammarAccess.getAssertionOrDefinitionAccess().getAssertionBodyAction_1_0_0(),
728 current);
729
528 } 730 }
529 break;
530 731
531 } 732 }
532 733
533 this_INT_1=(Token)match(input,RULE_INT,FOLLOW_2); 734 // InternalSolverLanguage.g:247:5: (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )?
735 int alt3=2;
736 int LA3_0 = input.LA(1);
534 737
535 current.merge(this_INT_1); 738 if ( (LA3_0==15) ) {
536 739 alt3=1;
740 }
741 switch (alt3) {
742 case 1 :
743 // InternalSolverLanguage.g:248:6: otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) )
744 {
745 otherlv_2=(Token)match(input,15,FOLLOW_6); if (state.failed) return current;
746 if ( state.backtracking==0 ) {
537 747
538 newLeafNode(this_INT_1, grammarAccess.getINTLiteralAccess().getINTTerminalRuleCall_1()); 748 newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1_0());
539 749
750 }
751 // InternalSolverLanguage.g:252:6: ( (lv_range_3_0= ruleExpression ) )
752 // InternalSolverLanguage.g:253:7: (lv_range_3_0= ruleExpression )
753 {
754 // InternalSolverLanguage.g:253:7: (lv_range_3_0= ruleExpression )
755 // InternalSolverLanguage.g:254:8: lv_range_3_0= ruleExpression
756 {
757 if ( state.backtracking==0 ) {
540 758
541 } 759 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_1_1_0());
760
761 }
762 pushFollow(FOLLOW_2);
763 lv_range_3_0=ruleExpression();
542 764
765 state._fsp--;
766 if (state.failed) return current;
767 if ( state.backtracking==0 ) {
768
769 if (current==null) {
770 current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
771 }
772 set(
773 current,
774 "range",
775 lv_range_3_0,
776 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
777 afterParserOrEnumRuleCall();
778
779 }
543 780
544 } 781 }
545 782
546 783
547 leaveRule(); 784 }
548 785
549 }
550 786
551 catch (RecognitionException re) { 787 }
552 recover(input,re); 788 break;
553 appendSkippedTokens();
554 }
555 finally {
556 }
557 return current;
558 }
559 // $ANTLR end "ruleINTLiteral"
560 789
790 }
561 791
562 // $ANTLR start "entryRuleBooleanValue"
563 // InternalSolverLanguage.g:214:1: entryRuleBooleanValue returns [EObject current=null] : iv_ruleBooleanValue= ruleBooleanValue EOF ;
564 public final EObject entryRuleBooleanValue() throws RecognitionException {
565 EObject current = null;
566 792
567 EObject iv_ruleBooleanValue = null; 793 }
568 794
569 795
570 try { 796 }
571 // InternalSolverLanguage.g:214:53: (iv_ruleBooleanValue= ruleBooleanValue EOF ) 797 break;
572 // InternalSolverLanguage.g:215:2: iv_ruleBooleanValue= ruleBooleanValue EOF 798 case 2 :
573 { 799 // InternalSolverLanguage.g:274:4: ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) )
574 newCompositeNode(grammarAccess.getBooleanValueRule()); 800 {
575 pushFollow(FOLLOW_1); 801 // InternalSolverLanguage.g:274:4: ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) )
576 iv_ruleBooleanValue=ruleBooleanValue(); 802 // InternalSolverLanguage.g:275:5: () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) )
803 {
804 // InternalSolverLanguage.g:275:5: ()
805 // InternalSolverLanguage.g:276:6:
806 {
807 if ( state.backtracking==0 ) {
577 808
578 state._fsp--; 809 current = forceCreateModelElementAndSet(
810 grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(),
811 current);
812
813 }
579 814
580 current =iv_ruleBooleanValue; 815 }
581 match(input,EOF,FOLLOW_2);
582 816
583 } 817 otherlv_5=(Token)match(input,16,FOLLOW_6); if (state.failed) return current;
818 if ( state.backtracking==0 ) {
584 819
585 } 820 newLeafNode(otherlv_5, grammarAccess.getAssertionOrDefinitionAccess().getColonHyphenMinusKeyword_1_1_1());
821
822 }
823 // InternalSolverLanguage.g:286:5: ( (lv_body_6_0= ruleExpression ) )
824 // InternalSolverLanguage.g:287:6: (lv_body_6_0= ruleExpression )
825 {
826 // InternalSolverLanguage.g:287:6: (lv_body_6_0= ruleExpression )
827 // InternalSolverLanguage.g:288:7: lv_body_6_0= ruleExpression
828 {
829 if ( state.backtracking==0 ) {
586 830
587 catch (RecognitionException re) { 831 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0());
588 recover(input,re); 832
589 appendSkippedTokens(); 833 }
590 } 834 pushFollow(FOLLOW_2);
591 finally { 835 lv_body_6_0=ruleExpression();
592 }
593 return current;
594 }
595 // $ANTLR end "entryRuleBooleanValue"
596 836
837 state._fsp--;
838 if (state.failed) return current;
839 if ( state.backtracking==0 ) {
840
841 if (current==null) {
842 current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
843 }
844 set(
845 current,
846 "body",
847 lv_body_6_0,
848 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
849 afterParserOrEnumRuleCall();
850
851 }
597 852
598 // $ANTLR start "ruleBooleanValue" 853 }
599 // InternalSolverLanguage.g:221:1: ruleBooleanValue returns [EObject current=null] : ( ( () otherlv_1= 'true' ) | (otherlv_2= 'false' () ) ) ;
600 public final EObject ruleBooleanValue() throws RecognitionException {
601 EObject current = null;
602 854
603 Token otherlv_1=null;
604 Token otherlv_2=null;
605 855
856 }
606 857
607 enterRule();
608 858
609 try { 859 }
610 // InternalSolverLanguage.g:227:2: ( ( ( () otherlv_1= 'true' ) | (otherlv_2= 'false' () ) ) )
611 // InternalSolverLanguage.g:228:2: ( ( () otherlv_1= 'true' ) | (otherlv_2= 'false' () ) )
612 {
613 // InternalSolverLanguage.g:228:2: ( ( () otherlv_1= 'true' ) | (otherlv_2= 'false' () ) )
614 int alt5=2;
615 int LA5_0 = input.LA(1);
616 860
617 if ( (LA5_0==13) ) {
618 alt5=1;
619 }
620 else if ( (LA5_0==14) ) {
621 alt5=2;
622 }
623 else {
624 NoViableAltException nvae =
625 new NoViableAltException("", 5, 0, input);
626 861
627 throw nvae; 862 }
628 } 863 break;
629 switch (alt5) { 864 case 3 :
630 case 1 : 865 // InternalSolverLanguage.g:307:4: ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) )
631 // InternalSolverLanguage.g:229:3: ( () otherlv_1= 'true' )
632 { 866 {
633 // InternalSolverLanguage.g:229:3: ( () otherlv_1= 'true' ) 867 // InternalSolverLanguage.g:307:4: ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) )
634 // InternalSolverLanguage.g:230:4: () otherlv_1= 'true' 868 // InternalSolverLanguage.g:308:5: () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) )
635 { 869 {
636 // InternalSolverLanguage.g:230:4: () 870 // InternalSolverLanguage.g:308:5: ()
637 // InternalSolverLanguage.g:231:5: 871 // InternalSolverLanguage.g:309:6:
638 { 872 {
873 if ( state.backtracking==0 ) {
639 874
640 current = forceCreateModelElement( 875 current = forceCreateModelElementAndSet(
641 grammarAccess.getBooleanValueAccess().getBooleanTrueAction_0_0(), 876 grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(),
642 current); 877 current);
643 878
644
645 } 879 }
646 880
647 otherlv_1=(Token)match(input,13,FOLLOW_2);
648
649 newLeafNode(otherlv_1, grammarAccess.getBooleanValueAccess().getTrueKeyword_0_1());
650
651
652 } 881 }
653 882
883 otherlv_8=(Token)match(input,17,FOLLOW_6); if (state.failed) return current;
884 if ( state.backtracking==0 ) {
654 885
886 newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getEqualsSignKeyword_1_2_1());
887
655 } 888 }
656 break; 889 // InternalSolverLanguage.g:319:5: ( (lv_body_9_0= ruleExpression ) )
657 case 2 : 890 // InternalSolverLanguage.g:320:6: (lv_body_9_0= ruleExpression )
658 // InternalSolverLanguage.g:243:3: (otherlv_2= 'false' () )
659 { 891 {
660 // InternalSolverLanguage.g:243:3: (otherlv_2= 'false' () ) 892 // InternalSolverLanguage.g:320:6: (lv_body_9_0= ruleExpression )
661 // InternalSolverLanguage.g:244:4: otherlv_2= 'false' () 893 // InternalSolverLanguage.g:321:7: lv_body_9_0= ruleExpression
662 { 894 {
663 otherlv_2=(Token)match(input,14,FOLLOW_2); 895 if ( state.backtracking==0 ) {
664 896
665 newLeafNode(otherlv_2, grammarAccess.getBooleanValueAccess().getFalseKeyword_1_0()); 897 newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0());
666 898
667 // InternalSolverLanguage.g:248:4: () 899 }
668 // InternalSolverLanguage.g:249:5: 900 pushFollow(FOLLOW_2);
669 { 901 lv_body_9_0=ruleExpression();
902
903 state._fsp--;
904 if (state.failed) return current;
905 if ( state.backtracking==0 ) {
906
907 if (current==null) {
908 current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule());
909 }
910 set(
911 current,
912 "body",
913 lv_body_9_0,
914 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
915 afterParserOrEnumRuleCall();
916
917 }
918
919 }
670 920
671 current = forceCreateModelElement(
672 grammarAccess.getBooleanValueAccess().getBooleanFalseAction_1_1(),
673 current);
674
675 921
676 } 922 }
677 923
@@ -688,8 +934,13 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
688 } 934 }
689 935
690 936
691 leaveRule(); 937 }
938
939 if ( state.backtracking==0 ) {
692 940
941 leaveRule();
942
943 }
693 } 944 }
694 945
695 catch (RecognitionException re) { 946 catch (RecognitionException re) {
@@ -700,29 +951,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
700 } 951 }
701 return current; 952 return current;
702 } 953 }
703 // $ANTLR end "ruleBooleanValue" 954 // $ANTLR end "ruleAssertionOrDefinition"
704 955
705 956
706 // $ANTLR start "entryRuleTruthValue" 957 // $ANTLR start "entryRulePredicateDefinition"
707 // InternalSolverLanguage.g:260:1: entryRuleTruthValue returns [EObject current=null] : iv_ruleTruthValue= ruleTruthValue EOF ; 958 // InternalSolverLanguage.g:344:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ;
708 public final EObject entryRuleTruthValue() throws RecognitionException { 959 public final EObject entryRulePredicateDefinition() throws RecognitionException {
709 EObject current = null; 960 EObject current = null;
710 961
711 EObject iv_ruleTruthValue = null; 962 EObject iv_rulePredicateDefinition = null;
712 963
713 964
714 try { 965 try {
715 // InternalSolverLanguage.g:260:51: (iv_ruleTruthValue= ruleTruthValue EOF ) 966 // InternalSolverLanguage.g:344:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF )
716 // InternalSolverLanguage.g:261:2: iv_ruleTruthValue= ruleTruthValue EOF 967 // InternalSolverLanguage.g:345:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF
717 { 968 {
718 newCompositeNode(grammarAccess.getTruthValueRule()); 969 if ( state.backtracking==0 ) {
970 newCompositeNode(grammarAccess.getPredicateDefinitionRule());
971 }
719 pushFollow(FOLLOW_1); 972 pushFollow(FOLLOW_1);
720 iv_ruleTruthValue=ruleTruthValue(); 973 iv_rulePredicateDefinition=rulePredicateDefinition();
721 974
722 state._fsp--; 975 state._fsp--;
723 976 if (state.failed) return current;
724 current =iv_ruleTruthValue; 977 if ( state.backtracking==0 ) {
725 match(input,EOF,FOLLOW_2); 978 current =iv_rulePredicateDefinition;
979 }
980 match(input,EOF,FOLLOW_2); if (state.failed) return current;
726 981
727 } 982 }
728 983
@@ -736,159 +991,196 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
736 } 991 }
737 return current; 992 return current;
738 } 993 }
739 // $ANTLR end "entryRuleTruthValue" 994 // $ANTLR end "entryRulePredicateDefinition"
740 995
741 996
742 // $ANTLR start "ruleTruthValue" 997 // $ANTLR start "rulePredicateDefinition"
743 // InternalSolverLanguage.g:267:1: ruleTruthValue returns [EObject current=null] : ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) | ( () otherlv_5= 'unknown' ) | ( () otherlv_7= 'error' ) ) ; 998 // InternalSolverLanguage.g:351:1: rulePredicateDefinition returns [EObject current=null] : ( ( ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? ) | ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) ;
744 public final EObject ruleTruthValue() throws RecognitionException { 999 public final EObject rulePredicateDefinition() throws RecognitionException {
745 EObject current = null; 1000 EObject current = null;
746 1001
747 Token otherlv_1=null; 1002 Token lv_functional_0_0=null;
748 Token otherlv_3=null; 1003 Token lv_error_1_0=null;
1004 Token lv_error_2_0=null;
1005 Token lv_functional_3_0=null;
749 Token otherlv_5=null; 1006 Token otherlv_5=null;
750 Token otherlv_7=null; 1007 EObject lv_head_4_0 = null;
1008
1009 EObject lv_body_6_0 = null;
1010
751 1011
752 1012
753 enterRule(); 1013 enterRule();
754 1014
755 try { 1015 try {
756 // InternalSolverLanguage.g:273:2: ( ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) | ( () otherlv_5= 'unknown' ) | ( () otherlv_7= 'error' ) ) ) 1016 // InternalSolverLanguage.g:357:2: ( ( ( ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? ) | ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) )
757 // InternalSolverLanguage.g:274:2: ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) | ( () otherlv_5= 'unknown' ) | ( () otherlv_7= 'error' ) ) 1017 // InternalSolverLanguage.g:358:2: ( ( ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? ) | ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) )
758 { 1018 {
759 // InternalSolverLanguage.g:274:2: ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) | ( () otherlv_5= 'unknown' ) | ( () otherlv_7= 'error' ) ) 1019 // InternalSolverLanguage.g:358:2: ( ( ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? ) | ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) )
760 int alt6=4; 1020 // InternalSolverLanguage.g:359:3: ( ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? ) | ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? ) ) ( (lv_head_4_0= ruleCall ) ) otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) )
761 switch ( input.LA(1) ) { 1021 {
762 case 13: 1022 // InternalSolverLanguage.g:359:3: ( ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? ) | ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? ) )
763 { 1023 int alt7=2;
764 alt6=1; 1024 int LA7_0 = input.LA(1);
765 } 1025
766 break; 1026 if ( (LA7_0==18) ) {
767 case 14: 1027 alt7=1;
768 { 1028 }
769 alt6=2; 1029 else if ( (LA7_0==19) ) {
770 } 1030 alt7=2;
771 break; 1031 }
772 case 15: 1032 else {
773 { 1033 if (state.backtracking>0) {state.failed=true; return current;}
774 alt6=3;
775 }
776 break;
777 case 16:
778 {
779 alt6=4;
780 }
781 break;
782 default:
783 NoViableAltException nvae = 1034 NoViableAltException nvae =
784 new NoViableAltException("", 6, 0, input); 1035 new NoViableAltException("", 7, 0, input);
785 1036
786 throw nvae; 1037 throw nvae;
787 } 1038 }
788 1039 switch (alt7) {
789 switch (alt6) {
790 case 1 : 1040 case 1 :
791 // InternalSolverLanguage.g:275:3: ( () otherlv_1= 'true' ) 1041 // InternalSolverLanguage.g:360:4: ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? )
1042 {
1043 // InternalSolverLanguage.g:360:4: ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? )
1044 // InternalSolverLanguage.g:361:5: ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )?
792 { 1045 {
793 // InternalSolverLanguage.g:275:3: ( () otherlv_1= 'true' ) 1046 // InternalSolverLanguage.g:361:5: ( (lv_functional_0_0= 'functional' ) )
794 // InternalSolverLanguage.g:276:4: () otherlv_1= 'true' 1047 // InternalSolverLanguage.g:362:6: (lv_functional_0_0= 'functional' )
795 { 1048 {
796 // InternalSolverLanguage.g:276:4: () 1049 // InternalSolverLanguage.g:362:6: (lv_functional_0_0= 'functional' )
797 // InternalSolverLanguage.g:277:5: 1050 // InternalSolverLanguage.g:363:7: lv_functional_0_0= 'functional'
798 { 1051 {
1052 lv_functional_0_0=(Token)match(input,18,FOLLOW_7); if (state.failed) return current;
1053 if ( state.backtracking==0 ) {
799 1054
800 current = forceCreateModelElement( 1055 newLeafNode(lv_functional_0_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_0_0_0());
801 grammarAccess.getTruthValueAccess().getTrueAction_0_0(), 1056
802 current); 1057 }
803 1058 if ( state.backtracking==0 ) {
804 1059
1060 if (current==null) {
1061 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1062 }
1063 setWithLastConsumed(current, "functional", true, "functional");
1064
805 } 1065 }
806 1066
807 otherlv_1=(Token)match(input,13,FOLLOW_2); 1067 }
808 1068
809 newLeafNode(otherlv_1, grammarAccess.getTruthValueAccess().getTrueKeyword_0_1());
810
811 1069
812 } 1070 }
813 1071
1072 // InternalSolverLanguage.g:375:5: ( (lv_error_1_0= 'error' ) )?
1073 int alt5=2;
1074 int LA5_0 = input.LA(1);
814 1075
1076 if ( (LA5_0==19) ) {
1077 alt5=1;
815 } 1078 }
816 break; 1079 switch (alt5) {
817 case 2 : 1080 case 1 :
818 // InternalSolverLanguage.g:289:3: ( () otherlv_3= 'false' ) 1081 // InternalSolverLanguage.g:376:6: (lv_error_1_0= 'error' )
819 { 1082 {
820 // InternalSolverLanguage.g:289:3: ( () otherlv_3= 'false' ) 1083 // InternalSolverLanguage.g:376:6: (lv_error_1_0= 'error' )
821 // InternalSolverLanguage.g:290:4: () otherlv_3= 'false' 1084 // InternalSolverLanguage.g:377:7: lv_error_1_0= 'error'
822 { 1085 {
823 // InternalSolverLanguage.g:290:4: () 1086 lv_error_1_0=(Token)match(input,19,FOLLOW_7); if (state.failed) return current;
824 // InternalSolverLanguage.g:291:5: 1087 if ( state.backtracking==0 ) {
825 {
826 1088
827 current = forceCreateModelElement( 1089 newLeafNode(lv_error_1_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_1_0());
828 grammarAccess.getTruthValueAccess().getFalseAction_1_0(), 1090
829 current); 1091 }
830 1092 if ( state.backtracking==0 ) {
831 1093
832 } 1094 if (current==null) {
1095 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1096 }
1097 setWithLastConsumed(current, "error", true, "error");
1098
1099 }
833 1100
834 otherlv_3=(Token)match(input,14,FOLLOW_2); 1101 }
1102
1103
1104 }
1105 break;
1106
1107 }
835 1108
836 newLeafNode(otherlv_3, grammarAccess.getTruthValueAccess().getFalseKeyword_1_1());
837
838 1109
839 } 1110 }
840 1111
841 1112
842 } 1113 }
843 break; 1114 break;
844 case 3 : 1115 case 2 :
845 // InternalSolverLanguage.g:303:3: ( () otherlv_5= 'unknown' ) 1116 // InternalSolverLanguage.g:391:4: ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? )
1117 {
1118 // InternalSolverLanguage.g:391:4: ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? )
1119 // InternalSolverLanguage.g:392:5: ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )?
846 { 1120 {
847 // InternalSolverLanguage.g:303:3: ( () otherlv_5= 'unknown' ) 1121 // InternalSolverLanguage.g:392:5: ( (lv_error_2_0= 'error' ) )
848 // InternalSolverLanguage.g:304:4: () otherlv_5= 'unknown' 1122 // InternalSolverLanguage.g:393:6: (lv_error_2_0= 'error' )
849 { 1123 {
850 // InternalSolverLanguage.g:304:4: () 1124 // InternalSolverLanguage.g:393:6: (lv_error_2_0= 'error' )
851 // InternalSolverLanguage.g:305:5: 1125 // InternalSolverLanguage.g:394:7: lv_error_2_0= 'error'
852 { 1126 {
1127 lv_error_2_0=(Token)match(input,19,FOLLOW_8); if (state.failed) return current;
1128 if ( state.backtracking==0 ) {
853 1129
854 current = forceCreateModelElement( 1130 newLeafNode(lv_error_2_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_1_0_0());
855 grammarAccess.getTruthValueAccess().getUnknownAction_2_0(), 1131
856 current); 1132 }
857 1133 if ( state.backtracking==0 ) {
858 1134
1135 if (current==null) {
1136 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1137 }
1138 setWithLastConsumed(current, "error", true, "error");
1139
859 } 1140 }
860 1141
861 otherlv_5=(Token)match(input,15,FOLLOW_2); 1142 }
862 1143
863 newLeafNode(otherlv_5, grammarAccess.getTruthValueAccess().getUnknownKeyword_2_1());
864
865 1144
866 } 1145 }
867 1146
1147 // InternalSolverLanguage.g:406:5: ( (lv_functional_3_0= 'functional' ) )?
1148 int alt6=2;
1149 int LA6_0 = input.LA(1);
868 1150
1151 if ( (LA6_0==18) ) {
1152 alt6=1;
869 } 1153 }
870 break; 1154 switch (alt6) {
871 case 4 : 1155 case 1 :
872 // InternalSolverLanguage.g:317:3: ( () otherlv_7= 'error' ) 1156 // InternalSolverLanguage.g:407:6: (lv_functional_3_0= 'functional' )
873 { 1157 {
874 // InternalSolverLanguage.g:317:3: ( () otherlv_7= 'error' ) 1158 // InternalSolverLanguage.g:407:6: (lv_functional_3_0= 'functional' )
875 // InternalSolverLanguage.g:318:4: () otherlv_7= 'error' 1159 // InternalSolverLanguage.g:408:7: lv_functional_3_0= 'functional'
876 { 1160 {
877 // InternalSolverLanguage.g:318:4: () 1161 lv_functional_3_0=(Token)match(input,18,FOLLOW_7); if (state.failed) return current;
878 // InternalSolverLanguage.g:319:5: 1162 if ( state.backtracking==0 ) {
879 {
880 1163
881 current = forceCreateModelElement( 1164 newLeafNode(lv_functional_3_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_1_1_0());
882 grammarAccess.getTruthValueAccess().getErrorAction_3_0(), 1165
883 current); 1166 }
884 1167 if ( state.backtracking==0 ) {
885 1168
886 } 1169 if (current==null) {
1170 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1171 }
1172 setWithLastConsumed(current, "functional", true, "functional");
1173
1174 }
1175
1176 }
887 1177
888 otherlv_7=(Token)match(input,16,FOLLOW_2);
889 1178
890 newLeafNode(otherlv_7, grammarAccess.getTruthValueAccess().getErrorKeyword_3_1()); 1179 }
891 1180 break;
1181
1182 }
1183
892 1184
893 } 1185 }
894 1186
@@ -898,12 +1190,93 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
898 1190
899 } 1191 }
900 1192
1193 // InternalSolverLanguage.g:422:3: ( (lv_head_4_0= ruleCall ) )
1194 // InternalSolverLanguage.g:423:4: (lv_head_4_0= ruleCall )
1195 {
1196 // InternalSolverLanguage.g:423:4: (lv_head_4_0= ruleCall )
1197 // InternalSolverLanguage.g:424:5: lv_head_4_0= ruleCall
1198 {
1199 if ( state.backtracking==0 ) {
1200
1201 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0());
1202
1203 }
1204 pushFollow(FOLLOW_9);
1205 lv_head_4_0=ruleCall();
1206
1207 state._fsp--;
1208 if (state.failed) return current;
1209 if ( state.backtracking==0 ) {
1210
1211 if (current==null) {
1212 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1213 }
1214 set(
1215 current,
1216 "head",
1217 lv_head_4_0,
1218 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
1219 afterParserOrEnumRuleCall();
1220
1221 }
1222
1223 }
1224
1225
1226 }
1227
1228 otherlv_5=(Token)match(input,16,FOLLOW_6); if (state.failed) return current;
1229 if ( state.backtracking==0 ) {
1230
1231 newLeafNode(otherlv_5, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_2());
1232
1233 }
1234 // InternalSolverLanguage.g:445:3: ( (lv_body_6_0= ruleExpression ) )
1235 // InternalSolverLanguage.g:446:4: (lv_body_6_0= ruleExpression )
1236 {
1237 // InternalSolverLanguage.g:446:4: (lv_body_6_0= ruleExpression )
1238 // InternalSolverLanguage.g:447:5: lv_body_6_0= ruleExpression
1239 {
1240 if ( state.backtracking==0 ) {
1241
1242 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
1243
1244 }
1245 pushFollow(FOLLOW_2);
1246 lv_body_6_0=ruleExpression();
1247
1248 state._fsp--;
1249 if (state.failed) return current;
1250 if ( state.backtracking==0 ) {
1251
1252 if (current==null) {
1253 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1254 }
1255 set(
1256 current,
1257 "body",
1258 lv_body_6_0,
1259 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1260 afterParserOrEnumRuleCall();
1261
1262 }
1263
1264 }
1265
1266
1267 }
1268
901 1269
902 } 1270 }
903 1271
904 1272
905 leaveRule(); 1273 }
1274
1275 if ( state.backtracking==0 ) {
906 1276
1277 leaveRule();
1278
1279 }
907 } 1280 }
908 1281
909 catch (RecognitionException re) { 1282 catch (RecognitionException re) {
@@ -914,29 +1287,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
914 } 1287 }
915 return current; 1288 return current;
916 } 1289 }
917 // $ANTLR end "ruleTruthValue" 1290 // $ANTLR end "rulePredicateDefinition"
918 1291
919 1292
920 // $ANTLR start "entryRuleInterpretation" 1293 // $ANTLR start "entryRuleUnnamedErrorPrediateDefinition"
921 // InternalSolverLanguage.g:334:1: entryRuleInterpretation returns [EObject current=null] : iv_ruleInterpretation= ruleInterpretation EOF ; 1294 // InternalSolverLanguage.g:468:1: entryRuleUnnamedErrorPrediateDefinition returns [EObject current=null] : iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF ;
922 public final EObject entryRuleInterpretation() throws RecognitionException { 1295 public final EObject entryRuleUnnamedErrorPrediateDefinition() throws RecognitionException {
923 EObject current = null; 1296 EObject current = null;
924 1297
925 EObject iv_ruleInterpretation = null; 1298 EObject iv_ruleUnnamedErrorPrediateDefinition = null;
926 1299
927 1300
928 try { 1301 try {
929 // InternalSolverLanguage.g:334:55: (iv_ruleInterpretation= ruleInterpretation EOF ) 1302 // InternalSolverLanguage.g:468:71: (iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF )
930 // InternalSolverLanguage.g:335:2: iv_ruleInterpretation= ruleInterpretation EOF 1303 // InternalSolverLanguage.g:469:2: iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF
931 { 1304 {
932 newCompositeNode(grammarAccess.getInterpretationRule()); 1305 if ( state.backtracking==0 ) {
1306 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionRule());
1307 }
933 pushFollow(FOLLOW_1); 1308 pushFollow(FOLLOW_1);
934 iv_ruleInterpretation=ruleInterpretation(); 1309 iv_ruleUnnamedErrorPrediateDefinition=ruleUnnamedErrorPrediateDefinition();
935 1310
936 state._fsp--; 1311 state._fsp--;
937 1312 if (state.failed) return current;
938 current =iv_ruleInterpretation; 1313 if ( state.backtracking==0 ) {
939 match(input,EOF,FOLLOW_2); 1314 current =iv_ruleUnnamedErrorPrediateDefinition;
1315 }
1316 match(input,EOF,FOLLOW_2); if (state.failed) return current;
940 1317
941 } 1318 }
942 1319
@@ -950,127 +1327,124 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
950 } 1327 }
951 return current; 1328 return current;
952 } 1329 }
953 // $ANTLR end "entryRuleInterpretation" 1330 // $ANTLR end "entryRuleUnnamedErrorPrediateDefinition"
954 1331
955 1332
956 // $ANTLR start "ruleInterpretation" 1333 // $ANTLR start "ruleUnnamedErrorPrediateDefinition"
957 // InternalSolverLanguage.g:341:1: ruleInterpretation returns [EObject current=null] : (this_BasicInterpretation_0= ruleBasicInterpretation | this_DefaultInterpretation_1= ruleDefaultInterpretation | this_CDInterpretation_2= ruleCDInterpretation ) ; 1334 // InternalSolverLanguage.g:475:1: ruleUnnamedErrorPrediateDefinition returns [EObject current=null] : (otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) ) ) ;
958 public final EObject ruleInterpretation() throws RecognitionException { 1335 public final EObject ruleUnnamedErrorPrediateDefinition() throws RecognitionException {
959 EObject current = null; 1336 EObject current = null;
960 1337
961 EObject this_BasicInterpretation_0 = null; 1338 Token otherlv_0=null;
962 1339 Token otherlv_2=null;
963 EObject this_DefaultInterpretation_1 = null; 1340 EObject lv_argumentList_1_0 = null;
964 1341
965 EObject this_CDInterpretation_2 = null; 1342 EObject lv_body_3_0 = null;
966 1343
967 1344
968 1345
969 enterRule(); 1346 enterRule();
970 1347
971 try { 1348 try {
972 // InternalSolverLanguage.g:347:2: ( (this_BasicInterpretation_0= ruleBasicInterpretation | this_DefaultInterpretation_1= ruleDefaultInterpretation | this_CDInterpretation_2= ruleCDInterpretation ) ) 1349 // InternalSolverLanguage.g:481:2: ( (otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) ) ) )
973 // InternalSolverLanguage.g:348:2: (this_BasicInterpretation_0= ruleBasicInterpretation | this_DefaultInterpretation_1= ruleDefaultInterpretation | this_CDInterpretation_2= ruleCDInterpretation ) 1350 // InternalSolverLanguage.g:482:2: (otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) ) )
974 { 1351 {
975 // InternalSolverLanguage.g:348:2: (this_BasicInterpretation_0= ruleBasicInterpretation | this_DefaultInterpretation_1= ruleDefaultInterpretation | this_CDInterpretation_2= ruleCDInterpretation ) 1352 // InternalSolverLanguage.g:482:2: (otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) ) )
976 int alt7=3; 1353 // InternalSolverLanguage.g:483:3: otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) )
977 switch ( input.LA(1) ) { 1354 {
978 case RULE_ID: 1355 otherlv_0=(Token)match(input,19,FOLLOW_10); if (state.failed) return current;
979 case 21: 1356 if ( state.backtracking==0 ) {
980 case 22:
981 case 23:
982 case 24:
983 case 25:
984 case 26:
985 {
986 alt7=1;
987 }
988 break;
989 case 32:
990 {
991 alt7=2;
992 }
993 break;
994 case 33:
995 case 34:
996 case 38:
997 case 39:
998 case 40:
999 {
1000 alt7=3;
1001 }
1002 break;
1003 default:
1004 NoViableAltException nvae =
1005 new NoViableAltException("", 7, 0, input);
1006 1357
1007 throw nvae; 1358 newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getErrorKeyword_0());
1359
1008 } 1360 }
1361 // InternalSolverLanguage.g:487:3: ( (lv_argumentList_1_0= ruleArgumentList ) )
1362 // InternalSolverLanguage.g:488:4: (lv_argumentList_1_0= ruleArgumentList )
1363 {
1364 // InternalSolverLanguage.g:488:4: (lv_argumentList_1_0= ruleArgumentList )
1365 // InternalSolverLanguage.g:489:5: lv_argumentList_1_0= ruleArgumentList
1366 {
1367 if ( state.backtracking==0 ) {
1009 1368
1010 switch (alt7) { 1369 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0());
1011 case 1 : 1370
1012 // InternalSolverLanguage.g:349:3: this_BasicInterpretation_0= ruleBasicInterpretation 1371 }
1013 { 1372 pushFollow(FOLLOW_9);
1014 1373 lv_argumentList_1_0=ruleArgumentList();
1015 newCompositeNode(grammarAccess.getInterpretationAccess().getBasicInterpretationParserRuleCall_0());
1016
1017 pushFollow(FOLLOW_2);
1018 this_BasicInterpretation_0=ruleBasicInterpretation();
1019 1374
1020 state._fsp--; 1375 state._fsp--;
1376 if (state.failed) return current;
1377 if ( state.backtracking==0 ) {
1021 1378
1379 if (current==null) {
1380 current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule());
1381 }
1382 set(
1383 current,
1384 "argumentList",
1385 lv_argumentList_1_0,
1386 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
1387 afterParserOrEnumRuleCall();
1388
1389 }
1022 1390
1023 current = this_BasicInterpretation_0; 1391 }
1024 afterParserOrEnumRuleCall();
1025
1026 1392
1027 }
1028 break;
1029 case 2 :
1030 // InternalSolverLanguage.g:358:3: this_DefaultInterpretation_1= ruleDefaultInterpretation
1031 {
1032 1393
1033 newCompositeNode(grammarAccess.getInterpretationAccess().getDefaultInterpretationParserRuleCall_1()); 1394 }
1034
1035 pushFollow(FOLLOW_2);
1036 this_DefaultInterpretation_1=ruleDefaultInterpretation();
1037 1395
1038 state._fsp--; 1396 otherlv_2=(Token)match(input,16,FOLLOW_6); if (state.failed) return current;
1397 if ( state.backtracking==0 ) {
1039 1398
1399 newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getColonHyphenMinusKeyword_2());
1400
1401 }
1402 // InternalSolverLanguage.g:510:3: ( (lv_body_3_0= ruleExpression ) )
1403 // InternalSolverLanguage.g:511:4: (lv_body_3_0= ruleExpression )
1404 {
1405 // InternalSolverLanguage.g:511:4: (lv_body_3_0= ruleExpression )
1406 // InternalSolverLanguage.g:512:5: lv_body_3_0= ruleExpression
1407 {
1408 if ( state.backtracking==0 ) {
1040 1409
1041 current = this_DefaultInterpretation_1; 1410 newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
1042 afterParserOrEnumRuleCall(); 1411
1043 1412 }
1413 pushFollow(FOLLOW_2);
1414 lv_body_3_0=ruleExpression();
1044 1415
1045 } 1416 state._fsp--;
1046 break; 1417 if (state.failed) return current;
1047 case 3 : 1418 if ( state.backtracking==0 ) {
1048 // InternalSolverLanguage.g:367:3: this_CDInterpretation_2= ruleCDInterpretation
1049 {
1050 1419
1051 newCompositeNode(grammarAccess.getInterpretationAccess().getCDInterpretationParserRuleCall_2()); 1420 if (current==null) {
1052 1421 current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule());
1053 pushFollow(FOLLOW_2); 1422 }
1054 this_CDInterpretation_2=ruleCDInterpretation(); 1423 set(
1424 current,
1425 "body",
1426 lv_body_3_0,
1427 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1428 afterParserOrEnumRuleCall();
1429
1430 }
1055 1431
1056 state._fsp--; 1432 }
1057 1433
1058 1434
1059 current = this_CDInterpretation_2; 1435 }
1060 afterParserOrEnumRuleCall();
1061
1062 1436
1063 }
1064 break;
1065 1437
1066 } 1438 }
1067 1439
1068 1440
1069 } 1441 }
1070 1442
1443 if ( state.backtracking==0 ) {
1071 1444
1072 leaveRule(); 1445 leaveRule();
1073 1446
1447 }
1074 } 1448 }
1075 1449
1076 catch (RecognitionException re) { 1450 catch (RecognitionException re) {
@@ -1081,29 +1455,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1081 } 1455 }
1082 return current; 1456 return current;
1083 } 1457 }
1084 // $ANTLR end "ruleInterpretation" 1458 // $ANTLR end "ruleUnnamedErrorPrediateDefinition"
1085 1459
1086 1460
1087 // $ANTLR start "entryRuleBasicInterpretation" 1461 // $ANTLR start "entryRuleDefaultDefinition"
1088 // InternalSolverLanguage.g:379:1: entryRuleBasicInterpretation returns [EObject current=null] : iv_ruleBasicInterpretation= ruleBasicInterpretation EOF ; 1462 // InternalSolverLanguage.g:533:1: entryRuleDefaultDefinition returns [EObject current=null] : iv_ruleDefaultDefinition= ruleDefaultDefinition EOF ;
1089 public final EObject entryRuleBasicInterpretation() throws RecognitionException { 1463 public final EObject entryRuleDefaultDefinition() throws RecognitionException {
1090 EObject current = null; 1464 EObject current = null;
1091 1465
1092 EObject iv_ruleBasicInterpretation = null; 1466 EObject iv_ruleDefaultDefinition = null;
1093 1467
1094 1468
1095 try { 1469 try {
1096 // InternalSolverLanguage.g:379:60: (iv_ruleBasicInterpretation= ruleBasicInterpretation EOF ) 1470 // InternalSolverLanguage.g:533:58: (iv_ruleDefaultDefinition= ruleDefaultDefinition EOF )
1097 // InternalSolverLanguage.g:380:2: iv_ruleBasicInterpretation= ruleBasicInterpretation EOF 1471 // InternalSolverLanguage.g:534:2: iv_ruleDefaultDefinition= ruleDefaultDefinition EOF
1098 { 1472 {
1099 newCompositeNode(grammarAccess.getBasicInterpretationRule()); 1473 if ( state.backtracking==0 ) {
1474 newCompositeNode(grammarAccess.getDefaultDefinitionRule());
1475 }
1100 pushFollow(FOLLOW_1); 1476 pushFollow(FOLLOW_1);
1101 iv_ruleBasicInterpretation=ruleBasicInterpretation(); 1477 iv_ruleDefaultDefinition=ruleDefaultDefinition();
1102 1478
1103 state._fsp--; 1479 state._fsp--;
1104 1480 if (state.failed) return current;
1105 current =iv_ruleBasicInterpretation; 1481 if ( state.backtracking==0 ) {
1106 match(input,EOF,FOLLOW_2); 1482 current =iv_ruleDefaultDefinition;
1483 }
1484 match(input,EOF,FOLLOW_2); if (state.failed) return current;
1107 1485
1108 } 1486 }
1109 1487
@@ -1117,244 +1495,255 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1117 } 1495 }
1118 return current; 1496 return current;
1119 } 1497 }
1120 // $ANTLR end "entryRuleBasicInterpretation" 1498 // $ANTLR end "entryRuleDefaultDefinition"
1121 1499
1122 1500
1123 // $ANTLR start "ruleBasicInterpretation" 1501 // $ANTLR start "ruleDefaultDefinition"
1124 // InternalSolverLanguage.g:386:1: ruleBasicInterpretation returns [EObject current=null] : ( ( (lv_symbol_0_0= ruleSymbol ) ) (otherlv_1= '(' ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? otherlv_5= ')' )? otherlv_6= ':' ( (lv_value_7_0= ruleTruthValue ) ) ) ; 1502 // InternalSolverLanguage.g:540:1: ruleDefaultDefinition returns [EObject current=null] : (otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) ) ;
1125 public final EObject ruleBasicInterpretation() throws RecognitionException { 1503 public final EObject ruleDefaultDefinition() throws RecognitionException {
1126 EObject current = null; 1504 EObject current = null;
1127 1505
1128 Token otherlv_1=null; 1506 Token otherlv_0=null;
1129 Token otherlv_3=null; 1507 Token otherlv_2=null;
1130 Token otherlv_5=null; 1508 EObject lv_head_1_0 = null;
1131 Token otherlv_6=null;
1132 EObject lv_symbol_0_0 = null;
1133
1134 EObject lv_objects_2_0 = null;
1135
1136 EObject lv_objects_4_0 = null;
1137 1509
1138 EObject lv_value_7_0 = null; 1510 EObject lv_range_3_0 = null;
1139 1511
1140 1512
1141 1513
1142 enterRule(); 1514 enterRule();
1143 1515
1144 try { 1516 try {
1145 // InternalSolverLanguage.g:392:2: ( ( ( (lv_symbol_0_0= ruleSymbol ) ) (otherlv_1= '(' ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? otherlv_5= ')' )? otherlv_6= ':' ( (lv_value_7_0= ruleTruthValue ) ) ) ) 1517 // InternalSolverLanguage.g:546:2: ( (otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) ) )
1146 // InternalSolverLanguage.g:393:2: ( ( (lv_symbol_0_0= ruleSymbol ) ) (otherlv_1= '(' ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? otherlv_5= ')' )? otherlv_6= ':' ( (lv_value_7_0= ruleTruthValue ) ) ) 1518 // InternalSolverLanguage.g:547:2: (otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )
1147 { 1519 {
1148 // InternalSolverLanguage.g:393:2: ( ( (lv_symbol_0_0= ruleSymbol ) ) (otherlv_1= '(' ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? otherlv_5= ')' )? otherlv_6= ':' ( (lv_value_7_0= ruleTruthValue ) ) ) 1520 // InternalSolverLanguage.g:547:2: (otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )
1149 // InternalSolverLanguage.g:394:3: ( (lv_symbol_0_0= ruleSymbol ) ) (otherlv_1= '(' ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? otherlv_5= ')' )? otherlv_6= ':' ( (lv_value_7_0= ruleTruthValue ) ) 1521 // InternalSolverLanguage.g:548:3: otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) )
1150 { 1522 {
1151 // InternalSolverLanguage.g:394:3: ( (lv_symbol_0_0= ruleSymbol ) ) 1523 otherlv_0=(Token)match(input,20,FOLLOW_7); if (state.failed) return current;
1152 // InternalSolverLanguage.g:395:4: (lv_symbol_0_0= ruleSymbol ) 1524 if ( state.backtracking==0 ) {
1525
1526 newLeafNode(otherlv_0, grammarAccess.getDefaultDefinitionAccess().getDefaultKeyword_0());
1527
1528 }
1529 // InternalSolverLanguage.g:552:3: ( (lv_head_1_0= ruleCall ) )
1530 // InternalSolverLanguage.g:553:4: (lv_head_1_0= ruleCall )
1153 { 1531 {
1154 // InternalSolverLanguage.g:395:4: (lv_symbol_0_0= ruleSymbol ) 1532 // InternalSolverLanguage.g:553:4: (lv_head_1_0= ruleCall )
1155 // InternalSolverLanguage.g:396:5: lv_symbol_0_0= ruleSymbol 1533 // InternalSolverLanguage.g:554:5: lv_head_1_0= ruleCall
1156 { 1534 {
1535 if ( state.backtracking==0 ) {
1157 1536
1158 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getSymbolSymbolParserRuleCall_0_0()); 1537 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0());
1159 1538
1160 pushFollow(FOLLOW_6); 1539 }
1161 lv_symbol_0_0=ruleSymbol(); 1540 pushFollow(FOLLOW_11);
1541 lv_head_1_0=ruleCall();
1162 1542
1163 state._fsp--; 1543 state._fsp--;
1544 if (state.failed) return current;
1545 if ( state.backtracking==0 ) {
1164 1546
1165 1547 if (current==null) {
1166 if (current==null) { 1548 current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule());
1167 current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); 1549 }
1168 } 1550 set(
1169 set( 1551 current,
1170 current, 1552 "head",
1171 "symbol", 1553 lv_head_1_0,
1172 lv_symbol_0_0, 1554 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
1173 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); 1555 afterParserOrEnumRuleCall();
1174 afterParserOrEnumRuleCall(); 1556
1175 1557 }
1176 1558
1177 } 1559 }
1178 1560
1179 1561
1180 } 1562 }
1181 1563
1182 // InternalSolverLanguage.g:413:3: (otherlv_1= '(' ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? otherlv_5= ')' )? 1564 otherlv_2=(Token)match(input,15,FOLLOW_6); if (state.failed) return current;
1183 int alt10=2; 1565 if ( state.backtracking==0 ) {
1184 int LA10_0 = input.LA(1);
1185 1566
1186 if ( (LA10_0==17) ) { 1567 newLeafNode(otherlv_2, grammarAccess.getDefaultDefinitionAccess().getColonKeyword_2());
1187 alt10=1; 1568
1188 } 1569 }
1189 switch (alt10) { 1570 // InternalSolverLanguage.g:575:3: ( (lv_range_3_0= ruleExpression ) )
1190 case 1 : 1571 // InternalSolverLanguage.g:576:4: (lv_range_3_0= ruleExpression )
1191 // InternalSolverLanguage.g:414:4: otherlv_1= '(' ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? otherlv_5= ')' 1572 {
1192 { 1573 // InternalSolverLanguage.g:576:4: (lv_range_3_0= ruleExpression )
1193 otherlv_1=(Token)match(input,17,FOLLOW_7); 1574 // InternalSolverLanguage.g:577:5: lv_range_3_0= ruleExpression
1575 {
1576 if ( state.backtracking==0 ) {
1194 1577
1195 newLeafNode(otherlv_1, grammarAccess.getBasicInterpretationAccess().getLeftParenthesisKeyword_1_0()); 1578 newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0());
1196 1579
1197 // InternalSolverLanguage.g:418:4: ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? 1580 }
1198 int alt9=2; 1581 pushFollow(FOLLOW_2);
1199 int LA9_0 = input.LA(1); 1582 lv_range_3_0=ruleExpression();
1200 1583
1201 if ( ((LA9_0>=RULE_INT && LA9_0<=RULE_STRING)||LA9_0==11||(LA9_0>=13 && LA9_0<=14)||LA9_0==20||LA9_0==27||LA9_0==31) ) { 1584 state._fsp--;
1202 alt9=1; 1585 if (state.failed) return current;
1203 } 1586 if ( state.backtracking==0 ) {
1204 switch (alt9) {
1205 case 1 :
1206 // InternalSolverLanguage.g:419:5: ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )*
1207 {
1208 // InternalSolverLanguage.g:419:5: ( (lv_objects_2_0= ruleComplexObject ) )
1209 // InternalSolverLanguage.g:420:6: (lv_objects_2_0= ruleComplexObject )
1210 {
1211 // InternalSolverLanguage.g:420:6: (lv_objects_2_0= ruleComplexObject )
1212 // InternalSolverLanguage.g:421:7: lv_objects_2_0= ruleComplexObject
1213 {
1214 1587
1215 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getObjectsComplexObjectParserRuleCall_1_1_0_0()); 1588 if (current==null) {
1216 1589 current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule());
1217 pushFollow(FOLLOW_8); 1590 }
1218 lv_objects_2_0=ruleComplexObject(); 1591 set(
1592 current,
1593 "range",
1594 lv_range_3_0,
1595 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1596 afterParserOrEnumRuleCall();
1597
1598 }
1219 1599
1220 state._fsp--; 1600 }
1221 1601
1222 1602
1223 if (current==null) { 1603 }
1224 current = createModelElementForParent(grammarAccess.getBasicInterpretationRule());
1225 }
1226 add(
1227 current,
1228 "objects",
1229 lv_objects_2_0,
1230 "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject");
1231 afterParserOrEnumRuleCall();
1232
1233 1604
1234 }
1235 1605
1606 }
1236 1607
1237 }
1238 1608
1239 // InternalSolverLanguage.g:438:5: (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* 1609 }
1240 loop8:
1241 do {
1242 int alt8=2;
1243 int LA8_0 = input.LA(1);
1244 1610
1245 if ( (LA8_0==18) ) { 1611 if ( state.backtracking==0 ) {
1246 alt8=1;
1247 }
1248 1612
1613 leaveRule();
1249 1614
1250 switch (alt8) { 1615 }
1251 case 1 : 1616 }
1252 // InternalSolverLanguage.g:439:6: otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) )
1253 {
1254 otherlv_3=(Token)match(input,18,FOLLOW_9);
1255 1617
1256 newLeafNode(otherlv_3, grammarAccess.getBasicInterpretationAccess().getCommaKeyword_1_1_1_0()); 1618 catch (RecognitionException re) {
1257 1619 recover(input,re);
1258 // InternalSolverLanguage.g:443:6: ( (lv_objects_4_0= ruleComplexObject ) ) 1620 appendSkippedTokens();
1259 // InternalSolverLanguage.g:444:7: (lv_objects_4_0= ruleComplexObject ) 1621 }
1260 { 1622 finally {
1261 // InternalSolverLanguage.g:444:7: (lv_objects_4_0= ruleComplexObject ) 1623 }
1262 // InternalSolverLanguage.g:445:8: lv_objects_4_0= ruleComplexObject 1624 return current;
1263 { 1625 }
1626 // $ANTLR end "ruleDefaultDefinition"
1264 1627
1265 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getObjectsComplexObjectParserRuleCall_1_1_1_1_0());
1266
1267 pushFollow(FOLLOW_8);
1268 lv_objects_4_0=ruleComplexObject();
1269 1628
1270 state._fsp--; 1629 // $ANTLR start "entryRuleExternPredicateDefinition"
1630 // InternalSolverLanguage.g:598:1: entryRuleExternPredicateDefinition returns [EObject current=null] : iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF ;
1631 public final EObject entryRuleExternPredicateDefinition() throws RecognitionException {
1632 EObject current = null;
1271 1633
1634 EObject iv_ruleExternPredicateDefinition = null;
1272 1635
1273 if (current==null) {
1274 current = createModelElementForParent(grammarAccess.getBasicInterpretationRule());
1275 }
1276 add(
1277 current,
1278 "objects",
1279 lv_objects_4_0,
1280 "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject");
1281 afterParserOrEnumRuleCall();
1282
1283 1636
1284 } 1637 try {
1638 // InternalSolverLanguage.g:598:66: (iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF )
1639 // InternalSolverLanguage.g:599:2: iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF
1640 {
1641 if ( state.backtracking==0 ) {
1642 newCompositeNode(grammarAccess.getExternPredicateDefinitionRule());
1643 }
1644 pushFollow(FOLLOW_1);
1645 iv_ruleExternPredicateDefinition=ruleExternPredicateDefinition();
1285 1646
1647 state._fsp--;
1648 if (state.failed) return current;
1649 if ( state.backtracking==0 ) {
1650 current =iv_ruleExternPredicateDefinition;
1651 }
1652 match(input,EOF,FOLLOW_2); if (state.failed) return current;
1286 1653
1287 } 1654 }
1288 1655
1656 }
1289 1657
1290 } 1658 catch (RecognitionException re) {
1291 break; 1659 recover(input,re);
1660 appendSkippedTokens();
1661 }
1662 finally {
1663 }
1664 return current;
1665 }
1666 // $ANTLR end "entryRuleExternPredicateDefinition"
1292 1667
1293 default :
1294 break loop8;
1295 }
1296 } while (true);
1297 1668
1669 // $ANTLR start "ruleExternPredicateDefinition"
1670 // InternalSolverLanguage.g:605:1: ruleExternPredicateDefinition returns [EObject current=null] : (otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.' ) ;
1671 public final EObject ruleExternPredicateDefinition() throws RecognitionException {
1672 EObject current = null;
1298 1673
1299 } 1674 Token otherlv_0=null;
1300 break; 1675 Token otherlv_2=null;
1676 EObject lv_head_1_0 = null;
1301 1677
1302 }
1303 1678
1304 otherlv_5=(Token)match(input,19,FOLLOW_10);
1305 1679
1306 newLeafNode(otherlv_5, grammarAccess.getBasicInterpretationAccess().getRightParenthesisKeyword_1_2()); 1680 enterRule();
1307
1308 1681
1309 } 1682 try {
1310 break; 1683 // InternalSolverLanguage.g:611:2: ( (otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.' ) )
1684 // InternalSolverLanguage.g:612:2: (otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.' )
1685 {
1686 // InternalSolverLanguage.g:612:2: (otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.' )
1687 // InternalSolverLanguage.g:613:3: otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.'
1688 {
1689 otherlv_0=(Token)match(input,21,FOLLOW_7); if (state.failed) return current;
1690 if ( state.backtracking==0 ) {
1311 1691
1692 newLeafNode(otherlv_0, grammarAccess.getExternPredicateDefinitionAccess().getExternKeyword_0());
1693
1312 } 1694 }
1313 1695 // InternalSolverLanguage.g:617:3: ( (lv_head_1_0= ruleCall ) )
1314 otherlv_6=(Token)match(input,20,FOLLOW_11); 1696 // InternalSolverLanguage.g:618:4: (lv_head_1_0= ruleCall )
1315
1316 newLeafNode(otherlv_6, grammarAccess.getBasicInterpretationAccess().getColonKeyword_2());
1317
1318 // InternalSolverLanguage.g:473:3: ( (lv_value_7_0= ruleTruthValue ) )
1319 // InternalSolverLanguage.g:474:4: (lv_value_7_0= ruleTruthValue )
1320 { 1697 {
1321 // InternalSolverLanguage.g:474:4: (lv_value_7_0= ruleTruthValue ) 1698 // InternalSolverLanguage.g:618:4: (lv_head_1_0= ruleCall )
1322 // InternalSolverLanguage.g:475:5: lv_value_7_0= ruleTruthValue 1699 // InternalSolverLanguage.g:619:5: lv_head_1_0= ruleCall
1323 { 1700 {
1701 if ( state.backtracking==0 ) {
1324 1702
1325 newCompositeNode(grammarAccess.getBasicInterpretationAccess().getValueTruthValueParserRuleCall_3_0()); 1703 newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0());
1326 1704
1327 pushFollow(FOLLOW_2); 1705 }
1328 lv_value_7_0=ruleTruthValue(); 1706 pushFollow(FOLLOW_12);
1707 lv_head_1_0=ruleCall();
1329 1708
1330 state._fsp--; 1709 state._fsp--;
1710 if (state.failed) return current;
1711 if ( state.backtracking==0 ) {
1331 1712
1332 1713 if (current==null) {
1333 if (current==null) { 1714 current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule());
1334 current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); 1715 }
1335 } 1716 set(
1336 set( 1717 current,
1337 current, 1718 "head",
1338 "value", 1719 lv_head_1_0,
1339 lv_value_7_0, 1720 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
1340 "org.eclipse.viatra.solver.language.SolverLanguage.TruthValue"); 1721 afterParserOrEnumRuleCall();
1341 afterParserOrEnumRuleCall(); 1722
1342 1723 }
1343 1724
1344 } 1725 }
1345 1726
1346 1727
1347 } 1728 }
1348 1729
1730 otherlv_2=(Token)match(input,22,FOLLOW_2); if (state.failed) return current;
1731 if ( state.backtracking==0 ) {
1732
1733 newLeafNode(otherlv_2, grammarAccess.getExternPredicateDefinitionAccess().getFullStopKeyword_2());
1734
1735 }
1349 1736
1350 } 1737 }
1351 1738
1352 1739
1353 } 1740 }
1354 1741
1742 if ( state.backtracking==0 ) {
1355 1743
1356 leaveRule(); 1744 leaveRule();
1357 1745
1746 }
1358 } 1747 }
1359 1748
1360 catch (RecognitionException re) { 1749 catch (RecognitionException re) {
@@ -1365,29 +1754,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1365 } 1754 }
1366 return current; 1755 return current;
1367 } 1756 }
1368 // $ANTLR end "ruleBasicInterpretation" 1757 // $ANTLR end "ruleExternPredicateDefinition"
1369 1758
1370 1759
1371 // $ANTLR start "entryRuleSymbol" 1760 // $ANTLR start "entryRuleMetricDefinition"
1372 // InternalSolverLanguage.g:496:1: entryRuleSymbol returns [EObject current=null] : iv_ruleSymbol= ruleSymbol EOF ; 1761 // InternalSolverLanguage.g:644:1: entryRuleMetricDefinition returns [EObject current=null] : iv_ruleMetricDefinition= ruleMetricDefinition EOF ;
1373 public final EObject entryRuleSymbol() throws RecognitionException { 1762 public final EObject entryRuleMetricDefinition() throws RecognitionException {
1374 EObject current = null; 1763 EObject current = null;
1375 1764
1376 EObject iv_ruleSymbol = null; 1765 EObject iv_ruleMetricDefinition = null;
1377 1766
1378 1767
1379 try { 1768 try {
1380 // InternalSolverLanguage.g:496:47: (iv_ruleSymbol= ruleSymbol EOF ) 1769 // InternalSolverLanguage.g:644:57: (iv_ruleMetricDefinition= ruleMetricDefinition EOF )
1381 // InternalSolverLanguage.g:497:2: iv_ruleSymbol= ruleSymbol EOF 1770 // InternalSolverLanguage.g:645:2: iv_ruleMetricDefinition= ruleMetricDefinition EOF
1382 { 1771 {
1383 newCompositeNode(grammarAccess.getSymbolRule()); 1772 if ( state.backtracking==0 ) {
1773 newCompositeNode(grammarAccess.getMetricDefinitionRule());
1774 }
1384 pushFollow(FOLLOW_1); 1775 pushFollow(FOLLOW_1);
1385 iv_ruleSymbol=ruleSymbol(); 1776 iv_ruleMetricDefinition=ruleMetricDefinition();
1386 1777
1387 state._fsp--; 1778 state._fsp--;
1388 1779 if (state.failed) return current;
1389 current =iv_ruleSymbol; 1780 if ( state.backtracking==0 ) {
1390 match(input,EOF,FOLLOW_2); 1781 current =iv_ruleMetricDefinition;
1782 }
1783 match(input,EOF,FOLLOW_2); if (state.failed) return current;
1391 1784
1392 } 1785 }
1393 1786
@@ -1401,112 +1794,137 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1401 } 1794 }
1402 return current; 1795 return current;
1403 } 1796 }
1404 // $ANTLR end "entryRuleSymbol" 1797 // $ANTLR end "entryRuleMetricDefinition"
1405 1798
1406 1799
1407 // $ANTLR start "ruleSymbol" 1800 // $ANTLR start "ruleMetricDefinition"
1408 // InternalSolverLanguage.g:503:1: ruleSymbol returns [EObject current=null] : (this_ModelSymbol_0= ruleModelSymbol | this_PartialitySymbol_1= rulePartialitySymbol | this_DataSymbol_2= ruleDataSymbol ) ; 1801 // InternalSolverLanguage.g:651:1: ruleMetricDefinition returns [EObject current=null] : ( ( (lv_type_0_0= ruleMetricType ) ) ( (lv_head_1_0= ruleExpression ) ) otherlv_2= '=' ( (lv_body_3_0= ruleExpression ) ) ) ;
1409 public final EObject ruleSymbol() throws RecognitionException { 1802 public final EObject ruleMetricDefinition() throws RecognitionException {
1410 EObject current = null; 1803 EObject current = null;
1411 1804
1412 EObject this_ModelSymbol_0 = null; 1805 Token otherlv_2=null;
1806 Enumerator lv_type_0_0 = null;
1413 1807
1414 EObject this_PartialitySymbol_1 = null; 1808 EObject lv_head_1_0 = null;
1415 1809
1416 EObject this_DataSymbol_2 = null; 1810 EObject lv_body_3_0 = null;
1417 1811
1418 1812
1419 1813
1420 enterRule(); 1814 enterRule();
1421 1815
1422 try { 1816 try {
1423 // InternalSolverLanguage.g:509:2: ( (this_ModelSymbol_0= ruleModelSymbol | this_PartialitySymbol_1= rulePartialitySymbol | this_DataSymbol_2= ruleDataSymbol ) ) 1817 // InternalSolverLanguage.g:657:2: ( ( ( (lv_type_0_0= ruleMetricType ) ) ( (lv_head_1_0= ruleExpression ) ) otherlv_2= '=' ( (lv_body_3_0= ruleExpression ) ) ) )
1424 // InternalSolverLanguage.g:510:2: (this_ModelSymbol_0= ruleModelSymbol | this_PartialitySymbol_1= rulePartialitySymbol | this_DataSymbol_2= ruleDataSymbol ) 1818 // InternalSolverLanguage.g:658:2: ( ( (lv_type_0_0= ruleMetricType ) ) ( (lv_head_1_0= ruleExpression ) ) otherlv_2= '=' ( (lv_body_3_0= ruleExpression ) ) )
1425 { 1819 {
1426 // InternalSolverLanguage.g:510:2: (this_ModelSymbol_0= ruleModelSymbol | this_PartialitySymbol_1= rulePartialitySymbol | this_DataSymbol_2= ruleDataSymbol ) 1820 // InternalSolverLanguage.g:658:2: ( ( (lv_type_0_0= ruleMetricType ) ) ( (lv_head_1_0= ruleExpression ) ) otherlv_2= '=' ( (lv_body_3_0= ruleExpression ) ) )
1427 int alt11=3; 1821 // InternalSolverLanguage.g:659:3: ( (lv_type_0_0= ruleMetricType ) ) ( (lv_head_1_0= ruleExpression ) ) otherlv_2= '=' ( (lv_body_3_0= ruleExpression ) )
1428 switch ( input.LA(1) ) { 1822 {
1429 case RULE_ID: 1823 // InternalSolverLanguage.g:659:3: ( (lv_type_0_0= ruleMetricType ) )
1430 { 1824 // InternalSolverLanguage.g:660:4: (lv_type_0_0= ruleMetricType )
1431 alt11=1; 1825 {
1432 } 1826 // InternalSolverLanguage.g:660:4: (lv_type_0_0= ruleMetricType )
1433 break; 1827 // InternalSolverLanguage.g:661:5: lv_type_0_0= ruleMetricType
1434 case 21: 1828 {
1435 case 22: 1829 if ( state.backtracking==0 ) {
1436 {
1437 alt11=2;
1438 }
1439 break;
1440 case 23:
1441 case 24:
1442 case 25:
1443 case 26:
1444 {
1445 alt11=3;
1446 }
1447 break;
1448 default:
1449 NoViableAltException nvae =
1450 new NoViableAltException("", 11, 0, input);
1451 1830
1452 throw nvae; 1831 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_0_0());
1832
1453 } 1833 }
1834 pushFollow(FOLLOW_6);
1835 lv_type_0_0=ruleMetricType();
1454 1836
1455 switch (alt11) { 1837 state._fsp--;
1456 case 1 : 1838 if (state.failed) return current;
1457 // InternalSolverLanguage.g:511:3: this_ModelSymbol_0= ruleModelSymbol 1839 if ( state.backtracking==0 ) {
1458 {
1459 1840
1460 newCompositeNode(grammarAccess.getSymbolAccess().getModelSymbolParserRuleCall_0()); 1841 if (current==null) {
1461 1842 current = createModelElementForParent(grammarAccess.getMetricDefinitionRule());
1462 pushFollow(FOLLOW_2); 1843 }
1463 this_ModelSymbol_0=ruleModelSymbol(); 1844 set(
1845 current,
1846 "type",
1847 lv_type_0_0,
1848 "org.eclipse.viatra.solver.language.SolverLanguage.MetricType");
1849 afterParserOrEnumRuleCall();
1850
1851 }
1464 1852
1465 state._fsp--; 1853 }
1466 1854
1467 1855
1468 current = this_ModelSymbol_0; 1856 }
1469 afterParserOrEnumRuleCall();
1470
1471 1857
1472 } 1858 // InternalSolverLanguage.g:678:3: ( (lv_head_1_0= ruleExpression ) )
1473 break; 1859 // InternalSolverLanguage.g:679:4: (lv_head_1_0= ruleExpression )
1474 case 2 : 1860 {
1475 // InternalSolverLanguage.g:520:3: this_PartialitySymbol_1= rulePartialitySymbol 1861 // InternalSolverLanguage.g:679:4: (lv_head_1_0= ruleExpression )
1476 { 1862 // InternalSolverLanguage.g:680:5: lv_head_1_0= ruleExpression
1863 {
1864 if ( state.backtracking==0 ) {
1477 1865
1478 newCompositeNode(grammarAccess.getSymbolAccess().getPartialitySymbolParserRuleCall_1()); 1866 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getHeadExpressionParserRuleCall_1_0());
1479 1867
1480 pushFollow(FOLLOW_2); 1868 }
1481 this_PartialitySymbol_1=rulePartialitySymbol(); 1869 pushFollow(FOLLOW_13);
1870 lv_head_1_0=ruleExpression();
1482 1871
1483 state._fsp--; 1872 state._fsp--;
1873 if (state.failed) return current;
1874 if ( state.backtracking==0 ) {
1484 1875
1876 if (current==null) {
1877 current = createModelElementForParent(grammarAccess.getMetricDefinitionRule());
1878 }
1879 set(
1880 current,
1881 "head",
1882 lv_head_1_0,
1883 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1884 afterParserOrEnumRuleCall();
1885
1886 }
1485 1887
1486 current = this_PartialitySymbol_1; 1888 }
1487 afterParserOrEnumRuleCall();
1488
1489 1889
1490 }
1491 break;
1492 case 3 :
1493 // InternalSolverLanguage.g:529:3: this_DataSymbol_2= ruleDataSymbol
1494 {
1495 1890
1496 newCompositeNode(grammarAccess.getSymbolAccess().getDataSymbolParserRuleCall_2()); 1891 }
1497
1498 pushFollow(FOLLOW_2);
1499 this_DataSymbol_2=ruleDataSymbol();
1500 1892
1501 state._fsp--; 1893 otherlv_2=(Token)match(input,17,FOLLOW_6); if (state.failed) return current;
1894 if ( state.backtracking==0 ) {
1895
1896 newLeafNode(otherlv_2, grammarAccess.getMetricDefinitionAccess().getEqualsSignKeyword_2());
1897
1898 }
1899 // InternalSolverLanguage.g:701:3: ( (lv_body_3_0= ruleExpression ) )
1900 // InternalSolverLanguage.g:702:4: (lv_body_3_0= ruleExpression )
1901 {
1902 // InternalSolverLanguage.g:702:4: (lv_body_3_0= ruleExpression )
1903 // InternalSolverLanguage.g:703:5: lv_body_3_0= ruleExpression
1904 {
1905 if ( state.backtracking==0 ) {
1502 1906
1907 newCompositeNode(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0());
1908
1909 }
1910 pushFollow(FOLLOW_2);
1911 lv_body_3_0=ruleExpression();
1503 1912
1504 current = this_DataSymbol_2; 1913 state._fsp--;
1505 afterParserOrEnumRuleCall(); 1914 if (state.failed) return current;
1506 1915 if ( state.backtracking==0 ) {
1507 1916
1508 } 1917 if (current==null) {
1509 break; 1918 current = createModelElementForParent(grammarAccess.getMetricDefinitionRule());
1919 }
1920 set(
1921 current,
1922 "body",
1923 lv_body_3_0,
1924 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
1925 afterParserOrEnumRuleCall();
1926
1927 }
1510 1928
1511 } 1929 }
1512 1930
@@ -1514,8 +1932,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1514 } 1932 }
1515 1933
1516 1934
1517 leaveRule(); 1935 }
1936
1937
1938 }
1518 1939
1940 if ( state.backtracking==0 ) {
1941
1942 leaveRule();
1943
1944 }
1519 } 1945 }
1520 1946
1521 catch (RecognitionException re) { 1947 catch (RecognitionException re) {
@@ -1526,29 +1952,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1526 } 1952 }
1527 return current; 1953 return current;
1528 } 1954 }
1529 // $ANTLR end "ruleSymbol" 1955 // $ANTLR end "ruleMetricDefinition"
1530 1956
1531 1957
1532 // $ANTLR start "entryRuleModelSymbol" 1958 // $ANTLR start "entryRuleExternMetricDefinition"
1533 // InternalSolverLanguage.g:541:1: entryRuleModelSymbol returns [EObject current=null] : iv_ruleModelSymbol= ruleModelSymbol EOF ; 1959 // InternalSolverLanguage.g:724:1: entryRuleExternMetricDefinition returns [EObject current=null] : iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF ;
1534 public final EObject entryRuleModelSymbol() throws RecognitionException { 1960 public final EObject entryRuleExternMetricDefinition() throws RecognitionException {
1535 EObject current = null; 1961 EObject current = null;
1536 1962
1537 EObject iv_ruleModelSymbol = null; 1963 EObject iv_ruleExternMetricDefinition = null;
1538 1964
1539 1965
1540 try { 1966 try {
1541 // InternalSolverLanguage.g:541:52: (iv_ruleModelSymbol= ruleModelSymbol EOF ) 1967 // InternalSolverLanguage.g:724:63: (iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF )
1542 // InternalSolverLanguage.g:542:2: iv_ruleModelSymbol= ruleModelSymbol EOF 1968 // InternalSolverLanguage.g:725:2: iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF
1543 { 1969 {
1544 newCompositeNode(grammarAccess.getModelSymbolRule()); 1970 if ( state.backtracking==0 ) {
1971 newCompositeNode(grammarAccess.getExternMetricDefinitionRule());
1972 }
1545 pushFollow(FOLLOW_1); 1973 pushFollow(FOLLOW_1);
1546 iv_ruleModelSymbol=ruleModelSymbol(); 1974 iv_ruleExternMetricDefinition=ruleExternMetricDefinition();
1547 1975
1548 state._fsp--; 1976 state._fsp--;
1549 1977 if (state.failed) return current;
1550 current =iv_ruleModelSymbol; 1978 if ( state.backtracking==0 ) {
1551 match(input,EOF,FOLLOW_2); 1979 current =iv_ruleExternMetricDefinition;
1980 }
1981 match(input,EOF,FOLLOW_2); if (state.failed) return current;
1552 1982
1553 } 1983 }
1554 1984
@@ -1562,43 +1992,103 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1562 } 1992 }
1563 return current; 1993 return current;
1564 } 1994 }
1565 // $ANTLR end "entryRuleModelSymbol" 1995 // $ANTLR end "entryRuleExternMetricDefinition"
1566 1996
1567 1997
1568 // $ANTLR start "ruleModelSymbol" 1998 // $ANTLR start "ruleExternMetricDefinition"
1569 // InternalSolverLanguage.g:548:1: ruleModelSymbol returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; 1999 // InternalSolverLanguage.g:731:1: ruleExternMetricDefinition returns [EObject current=null] : (otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) ) ) ;
1570 public final EObject ruleModelSymbol() throws RecognitionException { 2000 public final EObject ruleExternMetricDefinition() throws RecognitionException {
1571 EObject current = null; 2001 EObject current = null;
1572 2002
1573 Token lv_name_0_0=null; 2003 Token otherlv_0=null;
2004 Enumerator lv_type_1_0 = null;
2005
2006 EObject lv_head_2_0 = null;
2007
1574 2008
1575 2009
1576 enterRule(); 2010 enterRule();
1577 2011
1578 try { 2012 try {
1579 // InternalSolverLanguage.g:554:2: ( ( (lv_name_0_0= RULE_ID ) ) ) 2013 // InternalSolverLanguage.g:737:2: ( (otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) ) ) )
1580 // InternalSolverLanguage.g:555:2: ( (lv_name_0_0= RULE_ID ) ) 2014 // InternalSolverLanguage.g:738:2: (otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) ) )
1581 { 2015 {
1582 // InternalSolverLanguage.g:555:2: ( (lv_name_0_0= RULE_ID ) ) 2016 // InternalSolverLanguage.g:738:2: (otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) ) )
1583 // InternalSolverLanguage.g:556:3: (lv_name_0_0= RULE_ID ) 2017 // InternalSolverLanguage.g:739:3: otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) )
2018 {
2019 otherlv_0=(Token)match(input,21,FOLLOW_14); if (state.failed) return current;
2020 if ( state.backtracking==0 ) {
2021
2022 newLeafNode(otherlv_0, grammarAccess.getExternMetricDefinitionAccess().getExternKeyword_0());
2023
2024 }
2025 // InternalSolverLanguage.g:743:3: ( (lv_type_1_0= ruleMetricType ) )
2026 // InternalSolverLanguage.g:744:4: (lv_type_1_0= ruleMetricType )
2027 {
2028 // InternalSolverLanguage.g:744:4: (lv_type_1_0= ruleMetricType )
2029 // InternalSolverLanguage.g:745:5: lv_type_1_0= ruleMetricType
2030 {
2031 if ( state.backtracking==0 ) {
2032
2033 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_1_0());
2034
2035 }
2036 pushFollow(FOLLOW_7);
2037 lv_type_1_0=ruleMetricType();
2038
2039 state._fsp--;
2040 if (state.failed) return current;
2041 if ( state.backtracking==0 ) {
2042
2043 if (current==null) {
2044 current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule());
2045 }
2046 set(
2047 current,
2048 "type",
2049 lv_type_1_0,
2050 "org.eclipse.viatra.solver.language.SolverLanguage.MetricType");
2051 afterParserOrEnumRuleCall();
2052
2053 }
2054
2055 }
2056
2057
2058 }
2059
2060 // InternalSolverLanguage.g:762:3: ( (lv_head_2_0= ruleCall ) )
2061 // InternalSolverLanguage.g:763:4: (lv_head_2_0= ruleCall )
1584 { 2062 {
1585 // InternalSolverLanguage.g:556:3: (lv_name_0_0= RULE_ID ) 2063 // InternalSolverLanguage.g:763:4: (lv_head_2_0= ruleCall )
1586 // InternalSolverLanguage.g:557:4: lv_name_0_0= RULE_ID 2064 // InternalSolverLanguage.g:764:5: lv_head_2_0= ruleCall
1587 { 2065 {
1588 lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_2); 2066 if ( state.backtracking==0 ) {
2067
2068 newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getHeadCallParserRuleCall_2_0());
2069
2070 }
2071 pushFollow(FOLLOW_2);
2072 lv_head_2_0=ruleCall();
2073
2074 state._fsp--;
2075 if (state.failed) return current;
2076 if ( state.backtracking==0 ) {
2077
2078 if (current==null) {
2079 current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule());
2080 }
2081 set(
2082 current,
2083 "head",
2084 lv_head_2_0,
2085 "org.eclipse.viatra.solver.language.SolverLanguage.Call");
2086 afterParserOrEnumRuleCall();
2087
2088 }
1589 2089
1590 newLeafNode(lv_name_0_0, grammarAccess.getModelSymbolAccess().getNameIDTerminalRuleCall_0()); 2090 }
1591
1592 2091
1593 if (current==null) {
1594 current = createModelElement(grammarAccess.getModelSymbolRule());
1595 }
1596 setWithLastConsumed(
1597 current,
1598 "name",
1599 lv_name_0_0,
1600 "org.eclipse.xtext.common.Terminals.ID");
1601
1602 2092
1603 } 2093 }
1604 2094
@@ -1608,9 +2098,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1608 2098
1609 } 2099 }
1610 2100
2101 if ( state.backtracking==0 ) {
1611 2102
1612 leaveRule(); 2103 leaveRule();
1613 2104
2105 }
1614 } 2106 }
1615 2107
1616 catch (RecognitionException re) { 2108 catch (RecognitionException re) {
@@ -1621,29 +2113,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1621 } 2113 }
1622 return current; 2114 return current;
1623 } 2115 }
1624 // $ANTLR end "ruleModelSymbol" 2116 // $ANTLR end "ruleExternMetricDefinition"
1625 2117
1626 2118
1627 // $ANTLR start "entryRulePartialitySymbol" 2119 // $ANTLR start "entryRuleExpression"
1628 // InternalSolverLanguage.g:576:1: entryRulePartialitySymbol returns [EObject current=null] : iv_rulePartialitySymbol= rulePartialitySymbol EOF ; 2120 // InternalSolverLanguage.g:785:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ;
1629 public final EObject entryRulePartialitySymbol() throws RecognitionException { 2121 public final EObject entryRuleExpression() throws RecognitionException {
1630 EObject current = null; 2122 EObject current = null;
1631 2123
1632 EObject iv_rulePartialitySymbol = null; 2124 EObject iv_ruleExpression = null;
1633 2125
1634 2126
1635 try { 2127 try {
1636 // InternalSolverLanguage.g:576:57: (iv_rulePartialitySymbol= rulePartialitySymbol EOF ) 2128 // InternalSolverLanguage.g:785:51: (iv_ruleExpression= ruleExpression EOF )
1637 // InternalSolverLanguage.g:577:2: iv_rulePartialitySymbol= rulePartialitySymbol EOF 2129 // InternalSolverLanguage.g:786:2: iv_ruleExpression= ruleExpression EOF
1638 { 2130 {
1639 newCompositeNode(grammarAccess.getPartialitySymbolRule()); 2131 if ( state.backtracking==0 ) {
2132 newCompositeNode(grammarAccess.getExpressionRule());
2133 }
1640 pushFollow(FOLLOW_1); 2134 pushFollow(FOLLOW_1);
1641 iv_rulePartialitySymbol=rulePartialitySymbol(); 2135 iv_ruleExpression=ruleExpression();
1642 2136
1643 state._fsp--; 2137 state._fsp--;
1644 2138 if (state.failed) return current;
1645 current =iv_rulePartialitySymbol; 2139 if ( state.backtracking==0 ) {
1646 match(input,EOF,FOLLOW_2); 2140 current =iv_ruleExpression;
2141 }
2142 match(input,EOF,FOLLOW_2); if (state.failed) return current;
1647 2143
1648 } 2144 }
1649 2145
@@ -1657,76 +2153,85 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1657 } 2153 }
1658 return current; 2154 return current;
1659 } 2155 }
1660 // $ANTLR end "entryRulePartialitySymbol" 2156 // $ANTLR end "entryRuleExpression"
1661 2157
1662 2158
1663 // $ANTLR start "rulePartialitySymbol" 2159 // $ANTLR start "ruleExpression"
1664 // InternalSolverLanguage.g:583:1: rulePartialitySymbol returns [EObject current=null] : (this_ExistSymbol_0= ruleExistSymbol | this_EqualsSymbol_1= ruleEqualsSymbol ) ; 2160 // InternalSolverLanguage.g:792:1: ruleExpression returns [EObject current=null] : (this_IfElse_0= ruleIfElse | this_DisjunctiveExpression_1= ruleDisjunctiveExpression ) ;
1665 public final EObject rulePartialitySymbol() throws RecognitionException { 2161 public final EObject ruleExpression() throws RecognitionException {
1666 EObject current = null; 2162 EObject current = null;
1667 2163
1668 EObject this_ExistSymbol_0 = null; 2164 EObject this_IfElse_0 = null;
1669 2165
1670 EObject this_EqualsSymbol_1 = null; 2166 EObject this_DisjunctiveExpression_1 = null;
1671 2167
1672 2168
1673 2169
1674 enterRule(); 2170 enterRule();
1675 2171
1676 try { 2172 try {
1677 // InternalSolverLanguage.g:589:2: ( (this_ExistSymbol_0= ruleExistSymbol | this_EqualsSymbol_1= ruleEqualsSymbol ) ) 2173 // InternalSolverLanguage.g:798:2: ( (this_IfElse_0= ruleIfElse | this_DisjunctiveExpression_1= ruleDisjunctiveExpression ) )
1678 // InternalSolverLanguage.g:590:2: (this_ExistSymbol_0= ruleExistSymbol | this_EqualsSymbol_1= ruleEqualsSymbol ) 2174 // InternalSolverLanguage.g:799:2: (this_IfElse_0= ruleIfElse | this_DisjunctiveExpression_1= ruleDisjunctiveExpression )
1679 { 2175 {
1680 // InternalSolverLanguage.g:590:2: (this_ExistSymbol_0= ruleExistSymbol | this_EqualsSymbol_1= ruleEqualsSymbol ) 2176 // InternalSolverLanguage.g:799:2: (this_IfElse_0= ruleIfElse | this_DisjunctiveExpression_1= ruleDisjunctiveExpression )
1681 int alt12=2; 2177 int alt8=2;
1682 int LA12_0 = input.LA(1); 2178 int LA8_0 = input.LA(1);
1683 2179
1684 if ( (LA12_0==21) ) { 2180 if ( (LA8_0==23) ) {
1685 alt12=1; 2181 alt8=1;
1686 } 2182 }
1687 else if ( (LA12_0==22) ) { 2183 else if ( ((LA8_0>=RULE_STRING && LA8_0<=RULE_QUOTED_ID)||LA8_0==19||LA8_0==29||LA8_0==33||LA8_0==36||(LA8_0>=39 && LA8_0<=40)||(LA8_0>=56 && LA8_0<=57)||(LA8_0>=60 && LA8_0<=72)) ) {
1688 alt12=2; 2184 alt8=2;
1689 } 2185 }
1690 else { 2186 else {
2187 if (state.backtracking>0) {state.failed=true; return current;}
1691 NoViableAltException nvae = 2188 NoViableAltException nvae =
1692 new NoViableAltException("", 12, 0, input); 2189 new NoViableAltException("", 8, 0, input);
1693 2190
1694 throw nvae; 2191 throw nvae;
1695 } 2192 }
1696 switch (alt12) { 2193 switch (alt8) {
1697 case 1 : 2194 case 1 :
1698 // InternalSolverLanguage.g:591:3: this_ExistSymbol_0= ruleExistSymbol 2195 // InternalSolverLanguage.g:800:3: this_IfElse_0= ruleIfElse
1699 { 2196 {
2197 if ( state.backtracking==0 ) {
1700 2198
1701 newCompositeNode(grammarAccess.getPartialitySymbolAccess().getExistSymbolParserRuleCall_0()); 2199 newCompositeNode(grammarAccess.getExpressionAccess().getIfElseParserRuleCall_0());
1702 2200
2201 }
1703 pushFollow(FOLLOW_2); 2202 pushFollow(FOLLOW_2);
1704 this_ExistSymbol_0=ruleExistSymbol(); 2203 this_IfElse_0=ruleIfElse();
1705 2204
1706 state._fsp--; 2205 state._fsp--;
2206 if (state.failed) return current;
2207 if ( state.backtracking==0 ) {
1707 2208
1708 2209 current = this_IfElse_0;
1709 current = this_ExistSymbol_0; 2210 afterParserOrEnumRuleCall();
1710 afterParserOrEnumRuleCall(); 2211
1711 2212 }
1712 2213
1713 } 2214 }
1714 break; 2215 break;
1715 case 2 : 2216 case 2 :
1716 // InternalSolverLanguage.g:600:3: this_EqualsSymbol_1= ruleEqualsSymbol 2217 // InternalSolverLanguage.g:809:3: this_DisjunctiveExpression_1= ruleDisjunctiveExpression
1717 { 2218 {
2219 if ( state.backtracking==0 ) {
1718 2220
1719 newCompositeNode(grammarAccess.getPartialitySymbolAccess().getEqualsSymbolParserRuleCall_1()); 2221 newCompositeNode(grammarAccess.getExpressionAccess().getDisjunctiveExpressionParserRuleCall_1());
1720 2222
2223 }
1721 pushFollow(FOLLOW_2); 2224 pushFollow(FOLLOW_2);
1722 this_EqualsSymbol_1=ruleEqualsSymbol(); 2225 this_DisjunctiveExpression_1=ruleDisjunctiveExpression();
1723 2226
1724 state._fsp--; 2227 state._fsp--;
2228 if (state.failed) return current;
2229 if ( state.backtracking==0 ) {
1725 2230
1726 2231 current = this_DisjunctiveExpression_1;
1727 current = this_EqualsSymbol_1; 2232 afterParserOrEnumRuleCall();
1728 afterParserOrEnumRuleCall(); 2233
1729 2234 }
1730 2235
1731 } 2236 }
1732 break; 2237 break;
@@ -1736,9 +2241,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1736 2241
1737 } 2242 }
1738 2243
2244 if ( state.backtracking==0 ) {
1739 2245
1740 leaveRule(); 2246 leaveRule();
1741 2247
2248 }
1742 } 2249 }
1743 2250
1744 catch (RecognitionException re) { 2251 catch (RecognitionException re) {
@@ -1749,29 +2256,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1749 } 2256 }
1750 return current; 2257 return current;
1751 } 2258 }
1752 // $ANTLR end "rulePartialitySymbol" 2259 // $ANTLR end "ruleExpression"
1753 2260
1754 2261
1755 // $ANTLR start "entryRuleExistSymbol" 2262 // $ANTLR start "entryRuleIfElse"
1756 // InternalSolverLanguage.g:612:1: entryRuleExistSymbol returns [EObject current=null] : iv_ruleExistSymbol= ruleExistSymbol EOF ; 2263 // InternalSolverLanguage.g:821:1: entryRuleIfElse returns [EObject current=null] : iv_ruleIfElse= ruleIfElse EOF ;
1757 public final EObject entryRuleExistSymbol() throws RecognitionException { 2264 public final EObject entryRuleIfElse() throws RecognitionException {
1758 EObject current = null; 2265 EObject current = null;
1759 2266
1760 EObject iv_ruleExistSymbol = null; 2267 EObject iv_ruleIfElse = null;
1761 2268
1762 2269
1763 try { 2270 try {
1764 // InternalSolverLanguage.g:612:52: (iv_ruleExistSymbol= ruleExistSymbol EOF ) 2271 // InternalSolverLanguage.g:821:47: (iv_ruleIfElse= ruleIfElse EOF )
1765 // InternalSolverLanguage.g:613:2: iv_ruleExistSymbol= ruleExistSymbol EOF 2272 // InternalSolverLanguage.g:822:2: iv_ruleIfElse= ruleIfElse EOF
1766 { 2273 {
1767 newCompositeNode(grammarAccess.getExistSymbolRule()); 2274 if ( state.backtracking==0 ) {
2275 newCompositeNode(grammarAccess.getIfElseRule());
2276 }
1768 pushFollow(FOLLOW_1); 2277 pushFollow(FOLLOW_1);
1769 iv_ruleExistSymbol=ruleExistSymbol(); 2278 iv_ruleIfElse=ruleIfElse();
1770 2279
1771 state._fsp--; 2280 state._fsp--;
1772 2281 if (state.failed) return current;
1773 current =iv_ruleExistSymbol; 2282 if ( state.backtracking==0 ) {
1774 match(input,EOF,FOLLOW_2); 2283 current =iv_ruleIfElse;
2284 }
2285 match(input,EOF,FOLLOW_2); if (state.failed) return current;
1775 2286
1776 } 2287 }
1777 2288
@@ -1785,50 +2296,168 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1785 } 2296 }
1786 return current; 2297 return current;
1787 } 2298 }
1788 // $ANTLR end "entryRuleExistSymbol" 2299 // $ANTLR end "entryRuleIfElse"
1789 2300
1790 2301
1791 // $ANTLR start "ruleExistSymbol" 2302 // $ANTLR start "ruleIfElse"
1792 // InternalSolverLanguage.g:619:1: ruleExistSymbol returns [EObject current=null] : (otherlv_0= 'exists' () ) ; 2303 // InternalSolverLanguage.g:828:1: ruleIfElse returns [EObject current=null] : (otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleExpression ) ) otherlv_4= 'else' ( (lv_else_5_0= ruleExpression ) ) ) ;
1793 public final EObject ruleExistSymbol() throws RecognitionException { 2304 public final EObject ruleIfElse() throws RecognitionException {
1794 EObject current = null; 2305 EObject current = null;
1795 2306
1796 Token otherlv_0=null; 2307 Token otherlv_0=null;
2308 Token otherlv_2=null;
2309 Token otherlv_4=null;
2310 EObject lv_condition_1_0 = null;
2311
2312 EObject lv_then_3_0 = null;
2313
2314 EObject lv_else_5_0 = null;
2315
1797 2316
1798 2317
1799 enterRule(); 2318 enterRule();
1800 2319
1801 try { 2320 try {
1802 // InternalSolverLanguage.g:625:2: ( (otherlv_0= 'exists' () ) ) 2321 // InternalSolverLanguage.g:834:2: ( (otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleExpression ) ) otherlv_4= 'else' ( (lv_else_5_0= ruleExpression ) ) ) )
1803 // InternalSolverLanguage.g:626:2: (otherlv_0= 'exists' () ) 2322 // InternalSolverLanguage.g:835:2: (otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleExpression ) ) otherlv_4= 'else' ( (lv_else_5_0= ruleExpression ) ) )
1804 { 2323 {
1805 // InternalSolverLanguage.g:626:2: (otherlv_0= 'exists' () ) 2324 // InternalSolverLanguage.g:835:2: (otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleExpression ) ) otherlv_4= 'else' ( (lv_else_5_0= ruleExpression ) ) )
1806 // InternalSolverLanguage.g:627:3: otherlv_0= 'exists' () 2325 // InternalSolverLanguage.g:836:3: otherlv_0= 'if' ( (lv_condition_1_0= ruleExpression ) ) otherlv_2= 'then' ( (lv_then_3_0= ruleExpression ) ) otherlv_4= 'else' ( (lv_else_5_0= ruleExpression ) )
1807 { 2326 {
1808 otherlv_0=(Token)match(input,21,FOLLOW_2); 2327 otherlv_0=(Token)match(input,23,FOLLOW_6); if (state.failed) return current;
2328 if ( state.backtracking==0 ) {
1809 2329
1810 newLeafNode(otherlv_0, grammarAccess.getExistSymbolAccess().getExistsKeyword_0()); 2330 newLeafNode(otherlv_0, grammarAccess.getIfElseAccess().getIfKeyword_0());
1811 2331
1812 // InternalSolverLanguage.g:631:3: () 2332 }
1813 // InternalSolverLanguage.g:632:4: 2333 // InternalSolverLanguage.g:840:3: ( (lv_condition_1_0= ruleExpression ) )
2334 // InternalSolverLanguage.g:841:4: (lv_condition_1_0= ruleExpression )
1814 { 2335 {
2336 // InternalSolverLanguage.g:841:4: (lv_condition_1_0= ruleExpression )
2337 // InternalSolverLanguage.g:842:5: lv_condition_1_0= ruleExpression
2338 {
2339 if ( state.backtracking==0 ) {
2340
2341 newCompositeNode(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0());
2342
2343 }
2344 pushFollow(FOLLOW_15);
2345 lv_condition_1_0=ruleExpression();
2346
2347 state._fsp--;
2348 if (state.failed) return current;
2349 if ( state.backtracking==0 ) {
2350
2351 if (current==null) {
2352 current = createModelElementForParent(grammarAccess.getIfElseRule());
2353 }
2354 set(
2355 current,
2356 "condition",
2357 lv_condition_1_0,
2358 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2359 afterParserOrEnumRuleCall();
2360
2361 }
2362
2363 }
1815 2364
1816 current = forceCreateModelElement(
1817 grammarAccess.getExistSymbolAccess().getExistSymbolAction_1(),
1818 current);
1819
1820 2365
1821 } 2366 }
1822 2367
2368 otherlv_2=(Token)match(input,24,FOLLOW_6); if (state.failed) return current;
2369 if ( state.backtracking==0 ) {
1823 2370
2371 newLeafNode(otherlv_2, grammarAccess.getIfElseAccess().getThenKeyword_2());
2372
1824 } 2373 }
2374 // InternalSolverLanguage.g:863:3: ( (lv_then_3_0= ruleExpression ) )
2375 // InternalSolverLanguage.g:864:4: (lv_then_3_0= ruleExpression )
2376 {
2377 // InternalSolverLanguage.g:864:4: (lv_then_3_0= ruleExpression )
2378 // InternalSolverLanguage.g:865:5: lv_then_3_0= ruleExpression
2379 {
2380 if ( state.backtracking==0 ) {
2381
2382 newCompositeNode(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0());
2383
2384 }
2385 pushFollow(FOLLOW_16);
2386 lv_then_3_0=ruleExpression();
1825 2387
2388 state._fsp--;
2389 if (state.failed) return current;
2390 if ( state.backtracking==0 ) {
2391
2392 if (current==null) {
2393 current = createModelElementForParent(grammarAccess.getIfElseRule());
2394 }
2395 set(
2396 current,
2397 "then",
2398 lv_then_3_0,
2399 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2400 afterParserOrEnumRuleCall();
2401
2402 }
1826 2403
1827 } 2404 }
1828 2405
1829 2406
1830 leaveRule(); 2407 }
1831 2408
2409 otherlv_4=(Token)match(input,25,FOLLOW_6); if (state.failed) return current;
2410 if ( state.backtracking==0 ) {
2411
2412 newLeafNode(otherlv_4, grammarAccess.getIfElseAccess().getElseKeyword_4());
2413
2414 }
2415 // InternalSolverLanguage.g:886:3: ( (lv_else_5_0= ruleExpression ) )
2416 // InternalSolverLanguage.g:887:4: (lv_else_5_0= ruleExpression )
2417 {
2418 // InternalSolverLanguage.g:887:4: (lv_else_5_0= ruleExpression )
2419 // InternalSolverLanguage.g:888:5: lv_else_5_0= ruleExpression
2420 {
2421 if ( state.backtracking==0 ) {
2422
2423 newCompositeNode(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0());
2424
2425 }
2426 pushFollow(FOLLOW_2);
2427 lv_else_5_0=ruleExpression();
2428
2429 state._fsp--;
2430 if (state.failed) return current;
2431 if ( state.backtracking==0 ) {
2432
2433 if (current==null) {
2434 current = createModelElementForParent(grammarAccess.getIfElseRule());
2435 }
2436 set(
2437 current,
2438 "else",
2439 lv_else_5_0,
2440 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
2441 afterParserOrEnumRuleCall();
2442
2443 }
2444
2445 }
2446
2447
2448 }
2449
2450
2451 }
2452
2453
2454 }
2455
2456 if ( state.backtracking==0 ) {
2457
2458 leaveRule();
2459
2460 }
1832 } 2461 }
1833 2462
1834 catch (RecognitionException re) { 2463 catch (RecognitionException re) {
@@ -1839,29 +2468,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1839 } 2468 }
1840 return current; 2469 return current;
1841 } 2470 }
1842 // $ANTLR end "ruleExistSymbol" 2471 // $ANTLR end "ruleIfElse"
1843 2472
1844 2473
1845 // $ANTLR start "entryRuleEqualsSymbol" 2474 // $ANTLR start "entryRuleDisjunctiveExpression"
1846 // InternalSolverLanguage.g:642:1: entryRuleEqualsSymbol returns [EObject current=null] : iv_ruleEqualsSymbol= ruleEqualsSymbol EOF ; 2475 // InternalSolverLanguage.g:909:1: entryRuleDisjunctiveExpression returns [EObject current=null] : iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ;
1847 public final EObject entryRuleEqualsSymbol() throws RecognitionException { 2476 public final EObject entryRuleDisjunctiveExpression() throws RecognitionException {
1848 EObject current = null; 2477 EObject current = null;
1849 2478
1850 EObject iv_ruleEqualsSymbol = null; 2479 EObject iv_ruleDisjunctiveExpression = null;
1851 2480
1852 2481
1853 try { 2482 try {
1854 // InternalSolverLanguage.g:642:53: (iv_ruleEqualsSymbol= ruleEqualsSymbol EOF ) 2483 // InternalSolverLanguage.g:909:62: (iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF )
1855 // InternalSolverLanguage.g:643:2: iv_ruleEqualsSymbol= ruleEqualsSymbol EOF 2484 // InternalSolverLanguage.g:910:2: iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF
1856 { 2485 {
1857 newCompositeNode(grammarAccess.getEqualsSymbolRule()); 2486 if ( state.backtracking==0 ) {
2487 newCompositeNode(grammarAccess.getDisjunctiveExpressionRule());
2488 }
1858 pushFollow(FOLLOW_1); 2489 pushFollow(FOLLOW_1);
1859 iv_ruleEqualsSymbol=ruleEqualsSymbol(); 2490 iv_ruleDisjunctiveExpression=ruleDisjunctiveExpression();
1860 2491
1861 state._fsp--; 2492 state._fsp--;
1862 2493 if (state.failed) return current;
1863 current =iv_ruleEqualsSymbol; 2494 if ( state.backtracking==0 ) {
1864 match(input,EOF,FOLLOW_2); 2495 current =iv_ruleDisjunctiveExpression;
2496 }
2497 match(input,EOF,FOLLOW_2); if (state.failed) return current;
1865 2498
1866 } 2499 }
1867 2500
@@ -1875,38 +2508,303 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1875 } 2508 }
1876 return current; 2509 return current;
1877 } 2510 }
1878 // $ANTLR end "entryRuleEqualsSymbol" 2511 // $ANTLR end "entryRuleDisjunctiveExpression"
1879 2512
1880 2513
1881 // $ANTLR start "ruleEqualsSymbol" 2514 // $ANTLR start "ruleDisjunctiveExpression"
1882 // InternalSolverLanguage.g:649:1: ruleEqualsSymbol returns [EObject current=null] : (otherlv_0= 'equals' () ) ; 2515 // InternalSolverLanguage.g:916:1: ruleDisjunctiveExpression returns [EObject current=null] : (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) ;
1883 public final EObject ruleEqualsSymbol() throws RecognitionException { 2516 public final EObject ruleDisjunctiveExpression() throws RecognitionException {
1884 EObject current = null; 2517 EObject current = null;
1885 2518
1886 Token otherlv_0=null; 2519 Token otherlv_2=null;
2520 Token otherlv_5=null;
2521 Token otherlv_8=null;
2522 EObject this_ConjunctiveExpression_0 = null;
2523
2524 EObject lv_children_3_0 = null;
2525
2526 EObject lv_body_6_0 = null;
2527
2528 EObject lv_cases_9_0 = null;
2529
1887 2530
1888 2531
1889 enterRule(); 2532 enterRule();
1890 2533
1891 try { 2534 try {
1892 // InternalSolverLanguage.g:655:2: ( (otherlv_0= 'equals' () ) ) 2535 // InternalSolverLanguage.g:922:2: ( (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* ) )? ) )
1893 // InternalSolverLanguage.g:656:2: (otherlv_0= 'equals' () ) 2536 // InternalSolverLanguage.g:923:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* ) )? )
1894 { 2537 {
1895 // InternalSolverLanguage.g:656:2: (otherlv_0= 'equals' () ) 2538 // InternalSolverLanguage.g:923:2: (this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* ) )? )
1896 // InternalSolverLanguage.g:657:3: otherlv_0= 'equals' () 2539 // InternalSolverLanguage.g:924:3: this_ConjunctiveExpression_0= ruleConjunctiveExpression ( ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* ) )?
1897 { 2540 {
1898 otherlv_0=(Token)match(input,22,FOLLOW_2); 2541 if ( state.backtracking==0 ) {
1899 2542
1900 newLeafNode(otherlv_0, grammarAccess.getEqualsSymbolAccess().getEqualsKeyword_0()); 2543 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getConjunctiveExpressionParserRuleCall_0());
1901 2544
1902 // InternalSolverLanguage.g:661:3: () 2545 }
1903 // InternalSolverLanguage.g:662:4: 2546 pushFollow(FOLLOW_17);
1904 { 2547 this_ConjunctiveExpression_0=ruleConjunctiveExpression();
2548
2549 state._fsp--;
2550 if (state.failed) return current;
2551 if ( state.backtracking==0 ) {
2552
2553 current = this_ConjunctiveExpression_0;
2554 afterParserOrEnumRuleCall();
2555
2556 }
2557 // InternalSolverLanguage.g:932:3: ( ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) | ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* ) )?
2558 int alt11=3;
2559 int LA11_0 = input.LA(1);
2560
2561 if ( (LA11_0==26) ) {
2562 alt11=1;
2563 }
2564 else if ( (LA11_0==27) ) {
2565 alt11=2;
2566 }
2567 switch (alt11) {
2568 case 1 :
2569 // InternalSolverLanguage.g:933:4: ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ )
2570 {
2571 // InternalSolverLanguage.g:933:4: ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ )
2572 // InternalSolverLanguage.g:934:5: () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+
2573 {
2574 // InternalSolverLanguage.g:934:5: ()
2575 // InternalSolverLanguage.g:935:6:
2576 {
2577 if ( state.backtracking==0 ) {
2578
2579 current = forceCreateModelElementAndAdd(
2580 grammarAccess.getDisjunctiveExpressionAccess().getDisjunctionChildrenAction_1_0_0(),
2581 current);
2582
2583 }
2584
2585 }
2586
2587 // InternalSolverLanguage.g:941:5: (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+
2588 int cnt9=0;
2589 loop9:
2590 do {
2591 int alt9=2;
2592 int LA9_0 = input.LA(1);
2593
2594 if ( (LA9_0==26) ) {
2595 alt9=1;
2596 }
2597
2598
2599 switch (alt9) {
2600 case 1 :
2601 // InternalSolverLanguage.g:942:6: otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) )
2602 {
2603 otherlv_2=(Token)match(input,26,FOLLOW_6); if (state.failed) return current;
2604 if ( state.backtracking==0 ) {
2605
2606 newLeafNode(otherlv_2, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_0_1_0());
2607
2608 }
2609 // InternalSolverLanguage.g:946:6: ( (lv_children_3_0= ruleConjunctiveExpression ) )
2610 // InternalSolverLanguage.g:947:7: (lv_children_3_0= ruleConjunctiveExpression )
2611 {
2612 // InternalSolverLanguage.g:947:7: (lv_children_3_0= ruleConjunctiveExpression )
2613 // InternalSolverLanguage.g:948:8: lv_children_3_0= ruleConjunctiveExpression
2614 {
2615 if ( state.backtracking==0 ) {
2616
2617 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0());
2618
2619 }
2620 pushFollow(FOLLOW_18);
2621 lv_children_3_0=ruleConjunctiveExpression();
2622
2623 state._fsp--;
2624 if (state.failed) return current;
2625 if ( state.backtracking==0 ) {
2626
2627 if (current==null) {
2628 current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule());
2629 }
2630 add(
2631 current,
2632 "children",
2633 lv_children_3_0,
2634 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
2635 afterParserOrEnumRuleCall();
2636
2637 }
2638
2639 }
2640
2641
2642 }
2643
2644
2645 }
2646 break;
2647
2648 default :
2649 if ( cnt9 >= 1 ) break loop9;
2650 if (state.backtracking>0) {state.failed=true; return current;}
2651 EarlyExitException eee =
2652 new EarlyExitException(9, input);
2653 throw eee;
2654 }
2655 cnt9++;
2656 } while (true);
2657
2658
2659 }
2660
2661
2662 }
2663 break;
2664 case 2 :
2665 // InternalSolverLanguage.g:968:4: ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* )
2666 {
2667 // InternalSolverLanguage.g:968:4: ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* )
2668 // InternalSolverLanguage.g:969:5: () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )*
2669 {
2670 // InternalSolverLanguage.g:969:5: ()
2671 // InternalSolverLanguage.g:970:6:
2672 {
2673 if ( state.backtracking==0 ) {
2674
2675 current = forceCreateModelElementAndSet(
2676 grammarAccess.getDisjunctiveExpressionAccess().getCaseConditionAction_1_1_0(),
2677 current);
2678
2679 }
2680
2681 }
2682
2683 otherlv_5=(Token)match(input,27,FOLLOW_6); if (state.failed) return current;
2684 if ( state.backtracking==0 ) {
2685
2686 newLeafNode(otherlv_5, grammarAccess.getDisjunctiveExpressionAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1());
2687
2688 }
2689 // InternalSolverLanguage.g:980:5: ( (lv_body_6_0= ruleConjunctiveExpression ) )
2690 // InternalSolverLanguage.g:981:6: (lv_body_6_0= ruleConjunctiveExpression )
2691 {
2692 // InternalSolverLanguage.g:981:6: (lv_body_6_0= ruleConjunctiveExpression )
2693 // InternalSolverLanguage.g:982:7: lv_body_6_0= ruleConjunctiveExpression
2694 {
2695 if ( state.backtracking==0 ) {
2696
2697 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0());
2698
2699 }
2700 pushFollow(FOLLOW_18);
2701 lv_body_6_0=ruleConjunctiveExpression();
2702
2703 state._fsp--;
2704 if (state.failed) return current;
2705 if ( state.backtracking==0 ) {
2706
2707 if (current==null) {
2708 current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule());
2709 }
2710 set(
2711 current,
2712 "body",
2713 lv_body_6_0,
2714 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
2715 afterParserOrEnumRuleCall();
2716
2717 }
2718
2719 }
2720
2721
2722 }
2723
2724 // InternalSolverLanguage.g:999:5: ()
2725 // InternalSolverLanguage.g:1000:6:
2726 {
2727 if ( state.backtracking==0 ) {
2728
2729 current = forceCreateModelElementAndAdd(
2730 grammarAccess.getDisjunctiveExpressionAccess().getSwitchCasesAction_1_1_3(),
2731 current);
2732
2733 }
2734
2735 }
2736
2737 // InternalSolverLanguage.g:1006:5: (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )*
2738 loop10:
2739 do {
2740 int alt10=2;
2741 int LA10_0 = input.LA(1);
2742
2743 if ( (LA10_0==26) ) {
2744 alt10=1;
2745 }
2746
2747
2748 switch (alt10) {
2749 case 1 :
2750 // InternalSolverLanguage.g:1007:6: otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) )
2751 {
2752 otherlv_8=(Token)match(input,26,FOLLOW_6); if (state.failed) return current;
2753 if ( state.backtracking==0 ) {
2754
2755 newLeafNode(otherlv_8, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_1_4_0());
2756
2757 }
2758 // InternalSolverLanguage.g:1011:6: ( (lv_cases_9_0= ruleCase ) )
2759 // InternalSolverLanguage.g:1012:7: (lv_cases_9_0= ruleCase )
2760 {
2761 // InternalSolverLanguage.g:1012:7: (lv_cases_9_0= ruleCase )
2762 // InternalSolverLanguage.g:1013:8: lv_cases_9_0= ruleCase
2763 {
2764 if ( state.backtracking==0 ) {
2765
2766 newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getCasesCaseParserRuleCall_1_1_4_1_0());
2767
2768 }
2769 pushFollow(FOLLOW_18);
2770 lv_cases_9_0=ruleCase();
2771
2772 state._fsp--;
2773 if (state.failed) return current;
2774 if ( state.backtracking==0 ) {
2775
2776 if (current==null) {
2777 current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule());
2778 }
2779 add(
2780 current,
2781 "cases",
2782 lv_cases_9_0,
2783 "org.eclipse.viatra.solver.language.SolverLanguage.Case");
2784 afterParserOrEnumRuleCall();
2785
2786 }
2787
2788 }
2789
2790
2791 }
2792
2793
2794 }
2795 break;
2796
2797 default :
2798 break loop10;
2799 }
2800 } while (true);
1905 2801
1906 current = forceCreateModelElement( 2802
1907 grammarAccess.getEqualsSymbolAccess().getEqualsSymbolAction_1(), 2803 }
1908 current); 2804
1909 2805
2806 }
2807 break;
1910 2808
1911 } 2809 }
1912 2810
@@ -1916,9 +2814,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1916 2814
1917 } 2815 }
1918 2816
2817 if ( state.backtracking==0 ) {
1919 2818
1920 leaveRule(); 2819 leaveRule();
1921 2820
2821 }
1922 } 2822 }
1923 2823
1924 catch (RecognitionException re) { 2824 catch (RecognitionException re) {
@@ -1929,32 +2829,157 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1929 } 2829 }
1930 return current; 2830 return current;
1931 } 2831 }
1932 // $ANTLR end "ruleEqualsSymbol" 2832 // $ANTLR end "ruleDisjunctiveExpression"
1933 2833
1934 2834
1935 // $ANTLR start "entryRuleDataSymbol" 2835 // $ANTLR start "entryRuleCase"
1936 // InternalSolverLanguage.g:672:1: entryRuleDataSymbol returns [EObject current=null] : iv_ruleDataSymbol= ruleDataSymbol EOF ; 2836 // InternalSolverLanguage.g:1037:1: entryRuleCase returns [EObject current=null] : iv_ruleCase= ruleCase EOF ;
1937 public final EObject entryRuleDataSymbol() throws RecognitionException { 2837 public final EObject entryRuleCase() throws RecognitionException {
1938 EObject current = null; 2838 EObject current = null;
1939 2839
1940 EObject iv_ruleDataSymbol = null; 2840 EObject iv_ruleCase = null;
1941 2841
1942 2842
1943 try { 2843 try {
1944 // InternalSolverLanguage.g:672:51: (iv_ruleDataSymbol= ruleDataSymbol EOF ) 2844 // InternalSolverLanguage.g:1037:45: (iv_ruleCase= ruleCase EOF )
1945 // InternalSolverLanguage.g:673:2: iv_ruleDataSymbol= ruleDataSymbol EOF 2845 // InternalSolverLanguage.g:1038:2: iv_ruleCase= ruleCase EOF
1946 { 2846 {
1947 newCompositeNode(grammarAccess.getDataSymbolRule()); 2847 if ( state.backtracking==0 ) {
2848 newCompositeNode(grammarAccess.getCaseRule());
2849 }
1948 pushFollow(FOLLOW_1); 2850 pushFollow(FOLLOW_1);
1949 iv_ruleDataSymbol=ruleDataSymbol(); 2851 iv_ruleCase=ruleCase();
2852
2853 state._fsp--;
2854 if (state.failed) return current;
2855 if ( state.backtracking==0 ) {
2856 current =iv_ruleCase;
2857 }
2858 match(input,EOF,FOLLOW_2); if (state.failed) return current;
2859
2860 }
2861
2862 }
2863
2864 catch (RecognitionException re) {
2865 recover(input,re);
2866 appendSkippedTokens();
2867 }
2868 finally {
2869 }
2870 return current;
2871 }
2872 // $ANTLR end "entryRuleCase"
2873
2874
2875 // $ANTLR start "ruleCase"
2876 // InternalSolverLanguage.g:1044:1: ruleCase returns [EObject current=null] : ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ;
2877 public final EObject ruleCase() throws RecognitionException {
2878 EObject current = null;
2879
2880 Token otherlv_1=null;
2881 EObject lv_condition_0_0 = null;
2882
2883 EObject lv_body_2_0 = null;
2884
2885
2886
2887 enterRule();
2888
2889 try {
2890 // InternalSolverLanguage.g:1050:2: ( ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) )
2891 // InternalSolverLanguage.g:1051:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) ) )
2892 {
2893 // InternalSolverLanguage.g:1051:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) ) )
2894 // InternalSolverLanguage.g:1052:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) )
2895 {
2896 // InternalSolverLanguage.g:1052:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) )
2897 // InternalSolverLanguage.g:1053:4: (lv_condition_0_0= ruleConjunctiveExpression )
2898 {
2899 // InternalSolverLanguage.g:1053:4: (lv_condition_0_0= ruleConjunctiveExpression )
2900 // InternalSolverLanguage.g:1054:5: lv_condition_0_0= ruleConjunctiveExpression
2901 {
2902 if ( state.backtracking==0 ) {
2903
2904 newCompositeNode(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0());
2905
2906 }
2907 pushFollow(FOLLOW_19);
2908 lv_condition_0_0=ruleConjunctiveExpression();
1950 2909
1951 state._fsp--; 2910 state._fsp--;
2911 if (state.failed) return current;
2912 if ( state.backtracking==0 ) {
2913
2914 if (current==null) {
2915 current = createModelElementForParent(grammarAccess.getCaseRule());
2916 }
2917 set(
2918 current,
2919 "condition",
2920 lv_condition_0_0,
2921 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
2922 afterParserOrEnumRuleCall();
2923
2924 }
2925
2926 }
2927
2928
2929 }
1952 2930
1953 current =iv_ruleDataSymbol; 2931 otherlv_1=(Token)match(input,27,FOLLOW_6); if (state.failed) return current;
1954 match(input,EOF,FOLLOW_2); 2932 if ( state.backtracking==0 ) {
1955 2933
2934 newLeafNode(otherlv_1, grammarAccess.getCaseAccess().getHyphenMinusGreaterThanSignKeyword_1());
2935
1956 } 2936 }
2937 // InternalSolverLanguage.g:1075:3: ( (lv_body_2_0= ruleConjunctiveExpression ) )
2938 // InternalSolverLanguage.g:1076:4: (lv_body_2_0= ruleConjunctiveExpression )
2939 {
2940 // InternalSolverLanguage.g:1076:4: (lv_body_2_0= ruleConjunctiveExpression )
2941 // InternalSolverLanguage.g:1077:5: lv_body_2_0= ruleConjunctiveExpression
2942 {
2943 if ( state.backtracking==0 ) {
2944
2945 newCompositeNode(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0());
2946
2947 }
2948 pushFollow(FOLLOW_2);
2949 lv_body_2_0=ruleConjunctiveExpression();
2950
2951 state._fsp--;
2952 if (state.failed) return current;
2953 if ( state.backtracking==0 ) {
1957 2954
2955 if (current==null) {
2956 current = createModelElementForParent(grammarAccess.getCaseRule());
2957 }
2958 set(
2959 current,
2960 "body",
2961 lv_body_2_0,
2962 "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
2963 afterParserOrEnumRuleCall();
2964
2965 }
2966
2967 }
2968
2969
2970 }
2971
2972
2973 }
2974
2975
2976 }
2977
2978 if ( state.backtracking==0 ) {
2979
2980 leaveRule();
2981
2982 }
1958 } 2983 }
1959 2984
1960 catch (RecognitionException re) { 2985 catch (RecognitionException re) {
@@ -1965,130 +2990,181 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
1965 } 2990 }
1966 return current; 2991 return current;
1967 } 2992 }
1968 // $ANTLR end "entryRuleDataSymbol" 2993 // $ANTLR end "ruleCase"
1969 2994
1970 2995
1971 // $ANTLR start "ruleDataSymbol" 2996 // $ANTLR start "entryRuleConjunctiveExpression"
1972 // InternalSolverLanguage.g:679:1: ruleDataSymbol returns [EObject current=null] : (this_BooleanSymbol_0= ruleBooleanSymbol | this_IntegerSymbol_1= ruleIntegerSymbol | this_RealSymbol_2= ruleRealSymbol | this_StringSymbol_3= ruleStringSymbol ) ; 2997 // InternalSolverLanguage.g:1098:1: entryRuleConjunctiveExpression returns [EObject current=null] : iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ;
1973 public final EObject ruleDataSymbol() throws RecognitionException { 2998 public final EObject entryRuleConjunctiveExpression() throws RecognitionException {
1974 EObject current = null; 2999 EObject current = null;
1975 3000
1976 EObject this_BooleanSymbol_0 = null; 3001 EObject iv_ruleConjunctiveExpression = null;
1977 3002
1978 EObject this_IntegerSymbol_1 = null;
1979 3003
1980 EObject this_RealSymbol_2 = null; 3004 try {
3005 // InternalSolverLanguage.g:1098:62: (iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF )
3006 // InternalSolverLanguage.g:1099:2: iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF
3007 {
3008 if ( state.backtracking==0 ) {
3009 newCompositeNode(grammarAccess.getConjunctiveExpressionRule());
3010 }
3011 pushFollow(FOLLOW_1);
3012 iv_ruleConjunctiveExpression=ruleConjunctiveExpression();
1981 3013
1982 EObject this_StringSymbol_3 = null; 3014 state._fsp--;
3015 if (state.failed) return current;
3016 if ( state.backtracking==0 ) {
3017 current =iv_ruleConjunctiveExpression;
3018 }
3019 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3020
3021 }
3022
3023 }
3024
3025 catch (RecognitionException re) {
3026 recover(input,re);
3027 appendSkippedTokens();
3028 }
3029 finally {
3030 }
3031 return current;
3032 }
3033 // $ANTLR end "entryRuleConjunctiveExpression"
3034
3035
3036 // $ANTLR start "ruleConjunctiveExpression"
3037 // InternalSolverLanguage.g:1105:1: ruleConjunctiveExpression returns [EObject current=null] : (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ;
3038 public final EObject ruleConjunctiveExpression() throws RecognitionException {
3039 EObject current = null;
3040
3041 Token otherlv_2=null;
3042 EObject this_ComparisonExpression_0 = null;
3043
3044 EObject lv_children_3_0 = null;
1983 3045
1984 3046
1985 3047
1986 enterRule(); 3048 enterRule();
1987 3049
1988 try { 3050 try {
1989 // InternalSolverLanguage.g:685:2: ( (this_BooleanSymbol_0= ruleBooleanSymbol | this_IntegerSymbol_1= ruleIntegerSymbol | this_RealSymbol_2= ruleRealSymbol | this_StringSymbol_3= ruleStringSymbol ) ) 3051 // InternalSolverLanguage.g:1111:2: ( (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) )
1990 // InternalSolverLanguage.g:686:2: (this_BooleanSymbol_0= ruleBooleanSymbol | this_IntegerSymbol_1= ruleIntegerSymbol | this_RealSymbol_2= ruleRealSymbol | this_StringSymbol_3= ruleStringSymbol ) 3052 // InternalSolverLanguage.g:1112:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? )
1991 { 3053 {
1992 // InternalSolverLanguage.g:686:2: (this_BooleanSymbol_0= ruleBooleanSymbol | this_IntegerSymbol_1= ruleIntegerSymbol | this_RealSymbol_2= ruleRealSymbol | this_StringSymbol_3= ruleStringSymbol ) 3054 // InternalSolverLanguage.g:1112:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? )
1993 int alt13=4; 3055 // InternalSolverLanguage.g:1113:3: this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )?
1994 switch ( input.LA(1) ) { 3056 {
1995 case 23: 3057 if ( state.backtracking==0 ) {
1996 {
1997 alt13=1;
1998 }
1999 break;
2000 case 24:
2001 {
2002 alt13=2;
2003 }
2004 break;
2005 case 25:
2006 {
2007 alt13=3;
2008 }
2009 break;
2010 case 26:
2011 {
2012 alt13=4;
2013 }
2014 break;
2015 default:
2016 NoViableAltException nvae =
2017 new NoViableAltException("", 13, 0, input);
2018 3058
2019 throw nvae; 3059 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getComparisonExpressionParserRuleCall_0());
3060
2020 } 3061 }
3062 pushFollow(FOLLOW_20);
3063 this_ComparisonExpression_0=ruleComparisonExpression();
3064
3065 state._fsp--;
3066 if (state.failed) return current;
3067 if ( state.backtracking==0 ) {
3068
3069 current = this_ComparisonExpression_0;
3070 afterParserOrEnumRuleCall();
3071
3072 }
3073 // InternalSolverLanguage.g:1121:3: ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )?
3074 int alt13=2;
3075 int LA13_0 = input.LA(1);
2021 3076
3077 if ( (LA13_0==28) ) {
3078 alt13=1;
3079 }
2022 switch (alt13) { 3080 switch (alt13) {
2023 case 1 : 3081 case 1 :
2024 // InternalSolverLanguage.g:687:3: this_BooleanSymbol_0= ruleBooleanSymbol 3082 // InternalSolverLanguage.g:1122:4: () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+
2025 { 3083 {
3084 // InternalSolverLanguage.g:1122:4: ()
3085 // InternalSolverLanguage.g:1123:5:
3086 {
3087 if ( state.backtracking==0 ) {
2026 3088
2027 newCompositeNode(grammarAccess.getDataSymbolAccess().getBooleanSymbolParserRuleCall_0()); 3089 current = forceCreateModelElementAndAdd(
2028 3090 grammarAccess.getConjunctiveExpressionAccess().getConjunctionChildrenAction_1_0(),
2029 pushFollow(FOLLOW_2); 3091 current);
2030 this_BooleanSymbol_0=ruleBooleanSymbol(); 3092
2031 3093 }
2032 state._fsp--;
2033
2034
2035 current = this_BooleanSymbol_0;
2036 afterParserOrEnumRuleCall();
2037
2038 3094
2039 } 3095 }
2040 break;
2041 case 2 :
2042 // InternalSolverLanguage.g:696:3: this_IntegerSymbol_1= ruleIntegerSymbol
2043 {
2044 3096
2045 newCompositeNode(grammarAccess.getDataSymbolAccess().getIntegerSymbolParserRuleCall_1()); 3097 // InternalSolverLanguage.g:1129:4: (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+
2046 3098 int cnt12=0;
2047 pushFollow(FOLLOW_2); 3099 loop12:
2048 this_IntegerSymbol_1=ruleIntegerSymbol(); 3100 do {
3101 int alt12=2;
3102 int LA12_0 = input.LA(1);
2049 3103
2050 state._fsp--; 3104 if ( (LA12_0==28) ) {
3105 alt12=1;
3106 }
2051 3107
2052 3108
2053 current = this_IntegerSymbol_1; 3109 switch (alt12) {
2054 afterParserOrEnumRuleCall(); 3110 case 1 :
2055 3111 // InternalSolverLanguage.g:1130:5: otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) )
3112 {
3113 otherlv_2=(Token)match(input,28,FOLLOW_6); if (state.failed) return current;
3114 if ( state.backtracking==0 ) {
2056 3115
2057 } 3116 newLeafNode(otherlv_2, grammarAccess.getConjunctiveExpressionAccess().getCommaKeyword_1_1_0());
2058 break; 3117
2059 case 3 : 3118 }
2060 // InternalSolverLanguage.g:705:3: this_RealSymbol_2= ruleRealSymbol 3119 // InternalSolverLanguage.g:1134:5: ( (lv_children_3_0= ruleComparisonExpression ) )
2061 { 3120 // InternalSolverLanguage.g:1135:6: (lv_children_3_0= ruleComparisonExpression )
3121 {
3122 // InternalSolverLanguage.g:1135:6: (lv_children_3_0= ruleComparisonExpression )
3123 // InternalSolverLanguage.g:1136:7: lv_children_3_0= ruleComparisonExpression
3124 {
3125 if ( state.backtracking==0 ) {
2062 3126
2063 newCompositeNode(grammarAccess.getDataSymbolAccess().getRealSymbolParserRuleCall_2()); 3127 newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getChildrenComparisonExpressionParserRuleCall_1_1_1_0());
2064 3128
2065 pushFollow(FOLLOW_2); 3129 }
2066 this_RealSymbol_2=ruleRealSymbol(); 3130 pushFollow(FOLLOW_20);
3131 lv_children_3_0=ruleComparisonExpression();
2067 3132
2068 state._fsp--; 3133 state._fsp--;
3134 if (state.failed) return current;
3135 if ( state.backtracking==0 ) {
3136
3137 if (current==null) {
3138 current = createModelElementForParent(grammarAccess.getConjunctiveExpressionRule());
3139 }
3140 add(
3141 current,
3142 "children",
3143 lv_children_3_0,
3144 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression");
3145 afterParserOrEnumRuleCall();
3146
3147 }
2069 3148
3149 }
2070 3150
2071 current = this_RealSymbol_2;
2072 afterParserOrEnumRuleCall();
2073
2074 3151
2075 } 3152 }
2076 break;
2077 case 4 :
2078 // InternalSolverLanguage.g:714:3: this_StringSymbol_3= ruleStringSymbol
2079 {
2080 3153
2081 newCompositeNode(grammarAccess.getDataSymbolAccess().getStringSymbolParserRuleCall_3());
2082
2083 pushFollow(FOLLOW_2);
2084 this_StringSymbol_3=ruleStringSymbol();
2085 3154
2086 state._fsp--; 3155 }
3156 break;
2087 3157
3158 default :
3159 if ( cnt12 >= 1 ) break loop12;
3160 if (state.backtracking>0) {state.failed=true; return current;}
3161 EarlyExitException eee =
3162 new EarlyExitException(12, input);
3163 throw eee;
3164 }
3165 cnt12++;
3166 } while (true);
2088 3167
2089 current = this_StringSymbol_3;
2090 afterParserOrEnumRuleCall();
2091
2092 3168
2093 } 3169 }
2094 break; 3170 break;
@@ -2099,8 +3175,13 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2099 } 3175 }
2100 3176
2101 3177
2102 leaveRule(); 3178 }
3179
3180 if ( state.backtracking==0 ) {
3181
3182 leaveRule();
2103 3183
3184 }
2104 } 3185 }
2105 3186
2106 catch (RecognitionException re) { 3187 catch (RecognitionException re) {
@@ -2111,29 +3192,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2111 } 3192 }
2112 return current; 3193 return current;
2113 } 3194 }
2114 // $ANTLR end "ruleDataSymbol" 3195 // $ANTLR end "ruleConjunctiveExpression"
2115 3196
2116 3197
2117 // $ANTLR start "entryRuleBooleanSymbol" 3198 // $ANTLR start "entryRuleComparisonExpression"
2118 // InternalSolverLanguage.g:726:1: entryRuleBooleanSymbol returns [EObject current=null] : iv_ruleBooleanSymbol= ruleBooleanSymbol EOF ; 3199 // InternalSolverLanguage.g:1159:1: entryRuleComparisonExpression returns [EObject current=null] : iv_ruleComparisonExpression= ruleComparisonExpression EOF ;
2119 public final EObject entryRuleBooleanSymbol() throws RecognitionException { 3200 public final EObject entryRuleComparisonExpression() throws RecognitionException {
2120 EObject current = null; 3201 EObject current = null;
2121 3202
2122 EObject iv_ruleBooleanSymbol = null; 3203 EObject iv_ruleComparisonExpression = null;
2123 3204
2124 3205
2125 try { 3206 try {
2126 // InternalSolverLanguage.g:726:54: (iv_ruleBooleanSymbol= ruleBooleanSymbol EOF ) 3207 // InternalSolverLanguage.g:1159:61: (iv_ruleComparisonExpression= ruleComparisonExpression EOF )
2127 // InternalSolverLanguage.g:727:2: iv_ruleBooleanSymbol= ruleBooleanSymbol EOF 3208 // InternalSolverLanguage.g:1160:2: iv_ruleComparisonExpression= ruleComparisonExpression EOF
2128 { 3209 {
2129 newCompositeNode(grammarAccess.getBooleanSymbolRule()); 3210 if ( state.backtracking==0 ) {
3211 newCompositeNode(grammarAccess.getComparisonExpressionRule());
3212 }
2130 pushFollow(FOLLOW_1); 3213 pushFollow(FOLLOW_1);
2131 iv_ruleBooleanSymbol=ruleBooleanSymbol(); 3214 iv_ruleComparisonExpression=ruleComparisonExpression();
2132 3215
2133 state._fsp--; 3216 state._fsp--;
2134 3217 if (state.failed) return current;
2135 current =iv_ruleBooleanSymbol; 3218 if ( state.backtracking==0 ) {
2136 match(input,EOF,FOLLOW_2); 3219 current =iv_ruleComparisonExpression;
3220 }
3221 match(input,EOF,FOLLOW_2); if (state.failed) return current;
2137 3222
2138 } 3223 }
2139 3224
@@ -2147,41 +3232,144 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2147 } 3232 }
2148 return current; 3233 return current;
2149 } 3234 }
2150 // $ANTLR end "entryRuleBooleanSymbol" 3235 // $ANTLR end "entryRuleComparisonExpression"
2151 3236
2152 3237
2153 // $ANTLR start "ruleBooleanSymbol" 3238 // $ANTLR start "ruleComparisonExpression"
2154 // InternalSolverLanguage.g:733:1: ruleBooleanSymbol returns [EObject current=null] : (otherlv_0= 'bool' () ) ; 3239 // InternalSolverLanguage.g:1166:1: ruleComparisonExpression returns [EObject current=null] : (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ;
2155 public final EObject ruleBooleanSymbol() throws RecognitionException { 3240 public final EObject ruleComparisonExpression() throws RecognitionException {
2156 EObject current = null; 3241 EObject current = null;
2157 3242
2158 Token otherlv_0=null; 3243 EObject this_AdditiveExpression_0 = null;
3244
3245 Enumerator lv_op_2_0 = null;
3246
3247 EObject lv_right_3_0 = null;
3248
2159 3249
2160 3250
2161 enterRule(); 3251 enterRule();
2162 3252
2163 try { 3253 try {
2164 // InternalSolverLanguage.g:739:2: ( (otherlv_0= 'bool' () ) ) 3254 // InternalSolverLanguage.g:1172:2: ( (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) )
2165 // InternalSolverLanguage.g:740:2: (otherlv_0= 'bool' () ) 3255 // InternalSolverLanguage.g:1173:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? )
2166 { 3256 {
2167 // InternalSolverLanguage.g:740:2: (otherlv_0= 'bool' () ) 3257 // InternalSolverLanguage.g:1173:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? )
2168 // InternalSolverLanguage.g:741:3: otherlv_0= 'bool' () 3258 // InternalSolverLanguage.g:1174:3: this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )?
2169 { 3259 {
2170 otherlv_0=(Token)match(input,23,FOLLOW_2); 3260 if ( state.backtracking==0 ) {
2171 3261
2172 newLeafNode(otherlv_0, grammarAccess.getBooleanSymbolAccess().getBoolKeyword_0()); 3262 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getAdditiveExpressionParserRuleCall_0());
2173 3263
2174 // InternalSolverLanguage.g:745:3: () 3264 }
2175 // InternalSolverLanguage.g:746:4: 3265 pushFollow(FOLLOW_21);
2176 { 3266 this_AdditiveExpression_0=ruleAdditiveExpression();
3267
3268 state._fsp--;
3269 if (state.failed) return current;
3270 if ( state.backtracking==0 ) {
2177 3271
2178 current = forceCreateModelElement( 3272 current = this_AdditiveExpression_0;
2179 grammarAccess.getBooleanSymbolAccess().getBooleanSymbolAction_1(), 3273 afterParserOrEnumRuleCall();
2180 current); 3274
2181 3275 }
3276 // InternalSolverLanguage.g:1182:3: ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )?
3277 int alt14=2;
3278 int LA14_0 = input.LA(1);
2182 3279
3280 if ( ((LA14_0>=47 && LA14_0<=49)||(LA14_0>=52 && LA14_0<=55)) ) {
3281 alt14=1;
2183 } 3282 }
3283 switch (alt14) {
3284 case 1 :
3285 // InternalSolverLanguage.g:1183:4: () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) )
3286 {
3287 // InternalSolverLanguage.g:1183:4: ()
3288 // InternalSolverLanguage.g:1184:5:
3289 {
3290 if ( state.backtracking==0 ) {
3291
3292 current = forceCreateModelElementAndSet(
3293 grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(),
3294 current);
3295
3296 }
3297
3298 }
2184 3299
3300 // InternalSolverLanguage.g:1190:4: ( (lv_op_2_0= ruleComparisonOperator ) )
3301 // InternalSolverLanguage.g:1191:5: (lv_op_2_0= ruleComparisonOperator )
3302 {
3303 // InternalSolverLanguage.g:1191:5: (lv_op_2_0= ruleComparisonOperator )
3304 // InternalSolverLanguage.g:1192:6: lv_op_2_0= ruleComparisonOperator
3305 {
3306 if ( state.backtracking==0 ) {
3307
3308 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0());
3309
3310 }
3311 pushFollow(FOLLOW_6);
3312 lv_op_2_0=ruleComparisonOperator();
3313
3314 state._fsp--;
3315 if (state.failed) return current;
3316 if ( state.backtracking==0 ) {
3317
3318 if (current==null) {
3319 current = createModelElementForParent(grammarAccess.getComparisonExpressionRule());
3320 }
3321 set(
3322 current,
3323 "op",
3324 lv_op_2_0,
3325 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator");
3326 afterParserOrEnumRuleCall();
3327
3328 }
3329
3330 }
3331
3332
3333 }
3334
3335 // InternalSolverLanguage.g:1209:4: ( (lv_right_3_0= ruleAdditiveExpression ) )
3336 // InternalSolverLanguage.g:1210:5: (lv_right_3_0= ruleAdditiveExpression )
3337 {
3338 // InternalSolverLanguage.g:1210:5: (lv_right_3_0= ruleAdditiveExpression )
3339 // InternalSolverLanguage.g:1211:6: lv_right_3_0= ruleAdditiveExpression
3340 {
3341 if ( state.backtracking==0 ) {
3342
3343 newCompositeNode(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0());
3344
3345 }
3346 pushFollow(FOLLOW_2);
3347 lv_right_3_0=ruleAdditiveExpression();
3348
3349 state._fsp--;
3350 if (state.failed) return current;
3351 if ( state.backtracking==0 ) {
3352
3353 if (current==null) {
3354 current = createModelElementForParent(grammarAccess.getComparisonExpressionRule());
3355 }
3356 set(
3357 current,
3358 "right",
3359 lv_right_3_0,
3360 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
3361 afterParserOrEnumRuleCall();
3362
3363 }
3364
3365 }
3366
3367
3368 }
3369
3370
3371 }
3372 break;
2185 3373
2186 } 3374 }
2187 3375
@@ -2189,8 +3377,13 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2189 } 3377 }
2190 3378
2191 3379
2192 leaveRule(); 3380 }
3381
3382 if ( state.backtracking==0 ) {
2193 3383
3384 leaveRule();
3385
3386 }
2194 } 3387 }
2195 3388
2196 catch (RecognitionException re) { 3389 catch (RecognitionException re) {
@@ -2201,29 +3394,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2201 } 3394 }
2202 return current; 3395 return current;
2203 } 3396 }
2204 // $ANTLR end "ruleBooleanSymbol" 3397 // $ANTLR end "ruleComparisonExpression"
2205 3398
2206 3399
2207 // $ANTLR start "entryRuleIntegerSymbol" 3400 // $ANTLR start "entryRuleAdditiveExpression"
2208 // InternalSolverLanguage.g:756:1: entryRuleIntegerSymbol returns [EObject current=null] : iv_ruleIntegerSymbol= ruleIntegerSymbol EOF ; 3401 // InternalSolverLanguage.g:1233:1: entryRuleAdditiveExpression returns [EObject current=null] : iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ;
2209 public final EObject entryRuleIntegerSymbol() throws RecognitionException { 3402 public final EObject entryRuleAdditiveExpression() throws RecognitionException {
2210 EObject current = null; 3403 EObject current = null;
2211 3404
2212 EObject iv_ruleIntegerSymbol = null; 3405 EObject iv_ruleAdditiveExpression = null;
2213 3406
2214 3407
2215 try { 3408 try {
2216 // InternalSolverLanguage.g:756:54: (iv_ruleIntegerSymbol= ruleIntegerSymbol EOF ) 3409 // InternalSolverLanguage.g:1233:59: (iv_ruleAdditiveExpression= ruleAdditiveExpression EOF )
2217 // InternalSolverLanguage.g:757:2: iv_ruleIntegerSymbol= ruleIntegerSymbol EOF 3410 // InternalSolverLanguage.g:1234:2: iv_ruleAdditiveExpression= ruleAdditiveExpression EOF
2218 { 3411 {
2219 newCompositeNode(grammarAccess.getIntegerSymbolRule()); 3412 if ( state.backtracking==0 ) {
3413 newCompositeNode(grammarAccess.getAdditiveExpressionRule());
3414 }
2220 pushFollow(FOLLOW_1); 3415 pushFollow(FOLLOW_1);
2221 iv_ruleIntegerSymbol=ruleIntegerSymbol(); 3416 iv_ruleAdditiveExpression=ruleAdditiveExpression();
2222 3417
2223 state._fsp--; 3418 state._fsp--;
2224 3419 if (state.failed) return current;
2225 current =iv_ruleIntegerSymbol; 3420 if ( state.backtracking==0 ) {
2226 match(input,EOF,FOLLOW_2); 3421 current =iv_ruleAdditiveExpression;
3422 }
3423 match(input,EOF,FOLLOW_2); if (state.failed) return current;
2227 3424
2228 } 3425 }
2229 3426
@@ -2237,40 +3434,153 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2237 } 3434 }
2238 return current; 3435 return current;
2239 } 3436 }
2240 // $ANTLR end "entryRuleIntegerSymbol" 3437 // $ANTLR end "entryRuleAdditiveExpression"
2241 3438
2242 3439
2243 // $ANTLR start "ruleIntegerSymbol" 3440 // $ANTLR start "ruleAdditiveExpression"
2244 // InternalSolverLanguage.g:763:1: ruleIntegerSymbol returns [EObject current=null] : (otherlv_0= 'int' () ) ; 3441 // InternalSolverLanguage.g:1240:1: ruleAdditiveExpression returns [EObject current=null] : (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ;
2245 public final EObject ruleIntegerSymbol() throws RecognitionException { 3442 public final EObject ruleAdditiveExpression() throws RecognitionException {
2246 EObject current = null; 3443 EObject current = null;
2247 3444
2248 Token otherlv_0=null; 3445 EObject this_MultiplicativeExpression_0 = null;
3446
3447 Enumerator lv_op_2_0 = null;
3448
3449 EObject lv_right_3_0 = null;
3450
2249 3451
2250 3452
2251 enterRule(); 3453 enterRule();
2252 3454
2253 try { 3455 try {
2254 // InternalSolverLanguage.g:769:2: ( (otherlv_0= 'int' () ) ) 3456 // InternalSolverLanguage.g:1246:2: ( (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) )
2255 // InternalSolverLanguage.g:770:2: (otherlv_0= 'int' () ) 3457 // InternalSolverLanguage.g:1247:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* )
2256 { 3458 {
2257 // InternalSolverLanguage.g:770:2: (otherlv_0= 'int' () ) 3459 // InternalSolverLanguage.g:1247:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* )
2258 // InternalSolverLanguage.g:771:3: otherlv_0= 'int' () 3460 // InternalSolverLanguage.g:1248:3: this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )*
2259 { 3461 {
2260 otherlv_0=(Token)match(input,24,FOLLOW_2); 3462 if ( state.backtracking==0 ) {
2261 3463
2262 newLeafNode(otherlv_0, grammarAccess.getIntegerSymbolAccess().getIntKeyword_0()); 3464 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getMultiplicativeExpressionParserRuleCall_0());
2263 3465
2264 // InternalSolverLanguage.g:775:3: () 3466 }
2265 // InternalSolverLanguage.g:776:4: 3467 pushFollow(FOLLOW_22);
2266 { 3468 this_MultiplicativeExpression_0=ruleMultiplicativeExpression();
2267 3469
2268 current = forceCreateModelElement( 3470 state._fsp--;
2269 grammarAccess.getIntegerSymbolAccess().getIntegerSymbolAction_1(), 3471 if (state.failed) return current;
2270 current); 3472 if ( state.backtracking==0 ) {
2271
2272 3473
3474 current = this_MultiplicativeExpression_0;
3475 afterParserOrEnumRuleCall();
3476
2273 } 3477 }
3478 // InternalSolverLanguage.g:1256:3: ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )*
3479 loop15:
3480 do {
3481 int alt15=2;
3482 int LA15_0 = input.LA(1);
3483
3484 if ( ((LA15_0>=56 && LA15_0<=57)) ) {
3485 alt15=1;
3486 }
3487
3488
3489 switch (alt15) {
3490 case 1 :
3491 // InternalSolverLanguage.g:1257:4: () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) )
3492 {
3493 // InternalSolverLanguage.g:1257:4: ()
3494 // InternalSolverLanguage.g:1258:5:
3495 {
3496 if ( state.backtracking==0 ) {
3497
3498 current = forceCreateModelElementAndSet(
3499 grammarAccess.getAdditiveExpressionAccess().getBinaryExpressionLeftAction_1_0(),
3500 current);
3501
3502 }
3503
3504 }
3505
3506 // InternalSolverLanguage.g:1264:4: ( (lv_op_2_0= ruleAdditiveBinaryOperator ) )
3507 // InternalSolverLanguage.g:1265:5: (lv_op_2_0= ruleAdditiveBinaryOperator )
3508 {
3509 // InternalSolverLanguage.g:1265:5: (lv_op_2_0= ruleAdditiveBinaryOperator )
3510 // InternalSolverLanguage.g:1266:6: lv_op_2_0= ruleAdditiveBinaryOperator
3511 {
3512 if ( state.backtracking==0 ) {
3513
3514 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0());
3515
3516 }
3517 pushFollow(FOLLOW_6);
3518 lv_op_2_0=ruleAdditiveBinaryOperator();
3519
3520 state._fsp--;
3521 if (state.failed) return current;
3522 if ( state.backtracking==0 ) {
3523
3524 if (current==null) {
3525 current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
3526 }
3527 set(
3528 current,
3529 "op",
3530 lv_op_2_0,
3531 "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator");
3532 afterParserOrEnumRuleCall();
3533
3534 }
3535
3536 }
3537
3538
3539 }
3540
3541 // InternalSolverLanguage.g:1283:4: ( (lv_right_3_0= ruleMultiplicativeExpression ) )
3542 // InternalSolverLanguage.g:1284:5: (lv_right_3_0= ruleMultiplicativeExpression )
3543 {
3544 // InternalSolverLanguage.g:1284:5: (lv_right_3_0= ruleMultiplicativeExpression )
3545 // InternalSolverLanguage.g:1285:6: lv_right_3_0= ruleMultiplicativeExpression
3546 {
3547 if ( state.backtracking==0 ) {
3548
3549 newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getRightMultiplicativeExpressionParserRuleCall_1_2_0());
3550
3551 }
3552 pushFollow(FOLLOW_22);
3553 lv_right_3_0=ruleMultiplicativeExpression();
3554
3555 state._fsp--;
3556 if (state.failed) return current;
3557 if ( state.backtracking==0 ) {
3558
3559 if (current==null) {
3560 current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule());
3561 }
3562 set(
3563 current,
3564 "right",
3565 lv_right_3_0,
3566 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeExpression");
3567 afterParserOrEnumRuleCall();
3568
3569 }
3570
3571 }
3572
3573
3574 }
3575
3576
3577 }
3578 break;
3579
3580 default :
3581 break loop15;
3582 }
3583 } while (true);
2274 3584
2275 3585
2276 } 3586 }
@@ -2278,9 +3588,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2278 3588
2279 } 3589 }
2280 3590
3591 if ( state.backtracking==0 ) {
2281 3592
2282 leaveRule(); 3593 leaveRule();
2283 3594
3595 }
2284 } 3596 }
2285 3597
2286 catch (RecognitionException re) { 3598 catch (RecognitionException re) {
@@ -2291,29 +3603,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2291 } 3603 }
2292 return current; 3604 return current;
2293 } 3605 }
2294 // $ANTLR end "ruleIntegerSymbol" 3606 // $ANTLR end "ruleAdditiveExpression"
2295 3607
2296 3608
2297 // $ANTLR start "entryRuleRealSymbol" 3609 // $ANTLR start "entryRuleMultiplicativeExpression"
2298 // InternalSolverLanguage.g:786:1: entryRuleRealSymbol returns [EObject current=null] : iv_ruleRealSymbol= ruleRealSymbol EOF ; 3610 // InternalSolverLanguage.g:1307:1: entryRuleMultiplicativeExpression returns [EObject current=null] : iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ;
2299 public final EObject entryRuleRealSymbol() throws RecognitionException { 3611 public final EObject entryRuleMultiplicativeExpression() throws RecognitionException {
2300 EObject current = null; 3612 EObject current = null;
2301 3613
2302 EObject iv_ruleRealSymbol = null; 3614 EObject iv_ruleMultiplicativeExpression = null;
2303 3615
2304 3616
2305 try { 3617 try {
2306 // InternalSolverLanguage.g:786:51: (iv_ruleRealSymbol= ruleRealSymbol EOF ) 3618 // InternalSolverLanguage.g:1307:65: (iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF )
2307 // InternalSolverLanguage.g:787:2: iv_ruleRealSymbol= ruleRealSymbol EOF 3619 // InternalSolverLanguage.g:1308:2: iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF
2308 { 3620 {
2309 newCompositeNode(grammarAccess.getRealSymbolRule()); 3621 if ( state.backtracking==0 ) {
3622 newCompositeNode(grammarAccess.getMultiplicativeExpressionRule());
3623 }
2310 pushFollow(FOLLOW_1); 3624 pushFollow(FOLLOW_1);
2311 iv_ruleRealSymbol=ruleRealSymbol(); 3625 iv_ruleMultiplicativeExpression=ruleMultiplicativeExpression();
2312 3626
2313 state._fsp--; 3627 state._fsp--;
2314 3628 if (state.failed) return current;
2315 current =iv_ruleRealSymbol; 3629 if ( state.backtracking==0 ) {
2316 match(input,EOF,FOLLOW_2); 3630 current =iv_ruleMultiplicativeExpression;
3631 }
3632 match(input,EOF,FOLLOW_2); if (state.failed) return current;
2317 3633
2318 } 3634 }
2319 3635
@@ -2327,40 +3643,153 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2327 } 3643 }
2328 return current; 3644 return current;
2329 } 3645 }
2330 // $ANTLR end "entryRuleRealSymbol" 3646 // $ANTLR end "entryRuleMultiplicativeExpression"
2331 3647
2332 3648
2333 // $ANTLR start "ruleRealSymbol" 3649 // $ANTLR start "ruleMultiplicativeExpression"
2334 // InternalSolverLanguage.g:793:1: ruleRealSymbol returns [EObject current=null] : (otherlv_0= 'real' () ) ; 3650 // InternalSolverLanguage.g:1314:1: ruleMultiplicativeExpression returns [EObject current=null] : (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ;
2335 public final EObject ruleRealSymbol() throws RecognitionException { 3651 public final EObject ruleMultiplicativeExpression() throws RecognitionException {
2336 EObject current = null; 3652 EObject current = null;
2337 3653
2338 Token otherlv_0=null; 3654 EObject this_ExponentialExpression_0 = null;
3655
3656 Enumerator lv_op_2_0 = null;
3657
3658 EObject lv_right_3_0 = null;
3659
2339 3660
2340 3661
2341 enterRule(); 3662 enterRule();
2342 3663
2343 try { 3664 try {
2344 // InternalSolverLanguage.g:799:2: ( (otherlv_0= 'real' () ) ) 3665 // InternalSolverLanguage.g:1320:2: ( (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) )
2345 // InternalSolverLanguage.g:800:2: (otherlv_0= 'real' () ) 3666 // InternalSolverLanguage.g:1321:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* )
2346 { 3667 {
2347 // InternalSolverLanguage.g:800:2: (otherlv_0= 'real' () ) 3668 // InternalSolverLanguage.g:1321:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* )
2348 // InternalSolverLanguage.g:801:3: otherlv_0= 'real' () 3669 // InternalSolverLanguage.g:1322:3: this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )*
2349 { 3670 {
2350 otherlv_0=(Token)match(input,25,FOLLOW_2); 3671 if ( state.backtracking==0 ) {
2351 3672
2352 newLeafNode(otherlv_0, grammarAccess.getRealSymbolAccess().getRealKeyword_0()); 3673 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExponentialExpressionParserRuleCall_0());
2353 3674
2354 // InternalSolverLanguage.g:805:3: () 3675 }
2355 // InternalSolverLanguage.g:806:4: 3676 pushFollow(FOLLOW_23);
2356 { 3677 this_ExponentialExpression_0=ruleExponentialExpression();
2357 3678
2358 current = forceCreateModelElement( 3679 state._fsp--;
2359 grammarAccess.getRealSymbolAccess().getRealSymbolAction_1(), 3680 if (state.failed) return current;
2360 current); 3681 if ( state.backtracking==0 ) {
2361
2362 3682
3683 current = this_ExponentialExpression_0;
3684 afterParserOrEnumRuleCall();
3685
2363 } 3686 }
3687 // InternalSolverLanguage.g:1330:3: ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )*
3688 loop16:
3689 do {
3690 int alt16=2;
3691 int LA16_0 = input.LA(1);
3692
3693 if ( (LA16_0==35||LA16_0==58) ) {
3694 alt16=1;
3695 }
3696
3697
3698 switch (alt16) {
3699 case 1 :
3700 // InternalSolverLanguage.g:1331:4: () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) )
3701 {
3702 // InternalSolverLanguage.g:1331:4: ()
3703 // InternalSolverLanguage.g:1332:5:
3704 {
3705 if ( state.backtracking==0 ) {
3706
3707 current = forceCreateModelElementAndSet(
3708 grammarAccess.getMultiplicativeExpressionAccess().getBinaryExpressionLeftAction_1_0(),
3709 current);
3710
3711 }
3712
3713 }
3714
3715 // InternalSolverLanguage.g:1338:4: ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) )
3716 // InternalSolverLanguage.g:1339:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator )
3717 {
3718 // InternalSolverLanguage.g:1339:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator )
3719 // InternalSolverLanguage.g:1340:6: lv_op_2_0= ruleMultiplicativeBinaryOperator
3720 {
3721 if ( state.backtracking==0 ) {
3722
3723 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0());
3724
3725 }
3726 pushFollow(FOLLOW_6);
3727 lv_op_2_0=ruleMultiplicativeBinaryOperator();
3728
3729 state._fsp--;
3730 if (state.failed) return current;
3731 if ( state.backtracking==0 ) {
3732
3733 if (current==null) {
3734 current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
3735 }
3736 set(
3737 current,
3738 "op",
3739 lv_op_2_0,
3740 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator");
3741 afterParserOrEnumRuleCall();
3742
3743 }
3744
3745 }
3746
3747
3748 }
3749
3750 // InternalSolverLanguage.g:1357:4: ( (lv_right_3_0= ruleExponentialExpression ) )
3751 // InternalSolverLanguage.g:1358:5: (lv_right_3_0= ruleExponentialExpression )
3752 {
3753 // InternalSolverLanguage.g:1358:5: (lv_right_3_0= ruleExponentialExpression )
3754 // InternalSolverLanguage.g:1359:6: lv_right_3_0= ruleExponentialExpression
3755 {
3756 if ( state.backtracking==0 ) {
3757
3758 newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0());
3759
3760 }
3761 pushFollow(FOLLOW_23);
3762 lv_right_3_0=ruleExponentialExpression();
3763
3764 state._fsp--;
3765 if (state.failed) return current;
3766 if ( state.backtracking==0 ) {
3767
3768 if (current==null) {
3769 current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule());
3770 }
3771 set(
3772 current,
3773 "right",
3774 lv_right_3_0,
3775 "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression");
3776 afterParserOrEnumRuleCall();
3777
3778 }
3779
3780 }
3781
3782
3783 }
3784
3785
3786 }
3787 break;
3788
3789 default :
3790 break loop16;
3791 }
3792 } while (true);
2364 3793
2365 3794
2366 } 3795 }
@@ -2368,9 +3797,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2368 3797
2369 } 3798 }
2370 3799
3800 if ( state.backtracking==0 ) {
2371 3801
2372 leaveRule(); 3802 leaveRule();
2373 3803
3804 }
2374 } 3805 }
2375 3806
2376 catch (RecognitionException re) { 3807 catch (RecognitionException re) {
@@ -2381,29 +3812,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2381 } 3812 }
2382 return current; 3813 return current;
2383 } 3814 }
2384 // $ANTLR end "ruleRealSymbol" 3815 // $ANTLR end "ruleMultiplicativeExpression"
2385 3816
2386 3817
2387 // $ANTLR start "entryRuleStringSymbol" 3818 // $ANTLR start "entryRuleExponentialExpression"
2388 // InternalSolverLanguage.g:816:1: entryRuleStringSymbol returns [EObject current=null] : iv_ruleStringSymbol= ruleStringSymbol EOF ; 3819 // InternalSolverLanguage.g:1381:1: entryRuleExponentialExpression returns [EObject current=null] : iv_ruleExponentialExpression= ruleExponentialExpression EOF ;
2389 public final EObject entryRuleStringSymbol() throws RecognitionException { 3820 public final EObject entryRuleExponentialExpression() throws RecognitionException {
2390 EObject current = null; 3821 EObject current = null;
2391 3822
2392 EObject iv_ruleStringSymbol = null; 3823 EObject iv_ruleExponentialExpression = null;
2393 3824
2394 3825
2395 try { 3826 try {
2396 // InternalSolverLanguage.g:816:53: (iv_ruleStringSymbol= ruleStringSymbol EOF ) 3827 // InternalSolverLanguage.g:1381:62: (iv_ruleExponentialExpression= ruleExponentialExpression EOF )
2397 // InternalSolverLanguage.g:817:2: iv_ruleStringSymbol= ruleStringSymbol EOF 3828 // InternalSolverLanguage.g:1382:2: iv_ruleExponentialExpression= ruleExponentialExpression EOF
2398 { 3829 {
2399 newCompositeNode(grammarAccess.getStringSymbolRule()); 3830 if ( state.backtracking==0 ) {
3831 newCompositeNode(grammarAccess.getExponentialExpressionRule());
3832 }
2400 pushFollow(FOLLOW_1); 3833 pushFollow(FOLLOW_1);
2401 iv_ruleStringSymbol=ruleStringSymbol(); 3834 iv_ruleExponentialExpression=ruleExponentialExpression();
2402 3835
2403 state._fsp--; 3836 state._fsp--;
2404 3837 if (state.failed) return current;
2405 current =iv_ruleStringSymbol; 3838 if ( state.backtracking==0 ) {
2406 match(input,EOF,FOLLOW_2); 3839 current =iv_ruleExponentialExpression;
3840 }
3841 match(input,EOF,FOLLOW_2); if (state.failed) return current;
2407 3842
2408 } 3843 }
2409 3844
@@ -2417,38 +3852,144 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2417 } 3852 }
2418 return current; 3853 return current;
2419 } 3854 }
2420 // $ANTLR end "entryRuleStringSymbol" 3855 // $ANTLR end "entryRuleExponentialExpression"
2421 3856
2422 3857
2423 // $ANTLR start "ruleStringSymbol" 3858 // $ANTLR start "ruleExponentialExpression"
2424 // InternalSolverLanguage.g:823:1: ruleStringSymbol returns [EObject current=null] : (otherlv_0= 'string' () ) ; 3859 // InternalSolverLanguage.g:1388:1: ruleExponentialExpression returns [EObject current=null] : (this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? ) ;
2425 public final EObject ruleStringSymbol() throws RecognitionException { 3860 public final EObject ruleExponentialExpression() throws RecognitionException {
2426 EObject current = null; 3861 EObject current = null;
2427 3862
2428 Token otherlv_0=null; 3863 EObject this_UnaryExpression_0 = null;
3864
3865 Enumerator lv_op_2_0 = null;
3866
3867 EObject lv_right_3_0 = null;
3868
2429 3869
2430 3870
2431 enterRule(); 3871 enterRule();
2432 3872
2433 try { 3873 try {
2434 // InternalSolverLanguage.g:829:2: ( (otherlv_0= 'string' () ) ) 3874 // InternalSolverLanguage.g:1394:2: ( (this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? ) )
2435 // InternalSolverLanguage.g:830:2: (otherlv_0= 'string' () ) 3875 // InternalSolverLanguage.g:1395:2: (this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? )
2436 { 3876 {
2437 // InternalSolverLanguage.g:830:2: (otherlv_0= 'string' () ) 3877 // InternalSolverLanguage.g:1395:2: (this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? )
2438 // InternalSolverLanguage.g:831:3: otherlv_0= 'string' () 3878 // InternalSolverLanguage.g:1396:3: this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )?
2439 { 3879 {
2440 otherlv_0=(Token)match(input,26,FOLLOW_2); 3880 if ( state.backtracking==0 ) {
2441 3881
2442 newLeafNode(otherlv_0, grammarAccess.getStringSymbolAccess().getStringKeyword_0()); 3882 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getUnaryExpressionParserRuleCall_0());
2443 3883
2444 // InternalSolverLanguage.g:835:3: () 3884 }
2445 // InternalSolverLanguage.g:836:4: 3885 pushFollow(FOLLOW_24);
2446 { 3886 this_UnaryExpression_0=ruleUnaryExpression();
3887
3888 state._fsp--;
3889 if (state.failed) return current;
3890 if ( state.backtracking==0 ) {
3891
3892 current = this_UnaryExpression_0;
3893 afterParserOrEnumRuleCall();
3894
3895 }
3896 // InternalSolverLanguage.g:1404:3: ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )?
3897 int alt17=2;
3898 int LA17_0 = input.LA(1);
3899
3900 if ( (LA17_0==59) ) {
3901 alt17=1;
3902 }
3903 switch (alt17) {
3904 case 1 :
3905 // InternalSolverLanguage.g:1405:4: () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) )
3906 {
3907 // InternalSolverLanguage.g:1405:4: ()
3908 // InternalSolverLanguage.g:1406:5:
3909 {
3910 if ( state.backtracking==0 ) {
3911
3912 current = forceCreateModelElementAndSet(
3913 grammarAccess.getExponentialExpressionAccess().getBinaryExpressionLeftAction_1_0(),
3914 current);
3915
3916 }
3917
3918 }
3919
3920 // InternalSolverLanguage.g:1412:4: ( (lv_op_2_0= ruleExponentialOp ) )
3921 // InternalSolverLanguage.g:1413:5: (lv_op_2_0= ruleExponentialOp )
3922 {
3923 // InternalSolverLanguage.g:1413:5: (lv_op_2_0= ruleExponentialOp )
3924 // InternalSolverLanguage.g:1414:6: lv_op_2_0= ruleExponentialOp
3925 {
3926 if ( state.backtracking==0 ) {
3927
3928 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getOpExponentialOpEnumRuleCall_1_1_0());
3929
3930 }
3931 pushFollow(FOLLOW_6);
3932 lv_op_2_0=ruleExponentialOp();
3933
3934 state._fsp--;
3935 if (state.failed) return current;
3936 if ( state.backtracking==0 ) {
3937
3938 if (current==null) {
3939 current = createModelElementForParent(grammarAccess.getExponentialExpressionRule());
3940 }
3941 set(
3942 current,
3943 "op",
3944 lv_op_2_0,
3945 "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp");
3946 afterParserOrEnumRuleCall();
3947
3948 }
3949
3950 }
3951
3952
3953 }
3954
3955 // InternalSolverLanguage.g:1431:4: ( (lv_right_3_0= ruleExponentialExpression ) )
3956 // InternalSolverLanguage.g:1432:5: (lv_right_3_0= ruleExponentialExpression )
3957 {
3958 // InternalSolverLanguage.g:1432:5: (lv_right_3_0= ruleExponentialExpression )
3959 // InternalSolverLanguage.g:1433:6: lv_right_3_0= ruleExponentialExpression
3960 {
3961 if ( state.backtracking==0 ) {
3962
3963 newCompositeNode(grammarAccess.getExponentialExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0());
3964
3965 }
3966 pushFollow(FOLLOW_2);
3967 lv_right_3_0=ruleExponentialExpression();
3968
3969 state._fsp--;
3970 if (state.failed) return current;
3971 if ( state.backtracking==0 ) {
3972
3973 if (current==null) {
3974 current = createModelElementForParent(grammarAccess.getExponentialExpressionRule());
3975 }
3976 set(
3977 current,
3978 "right",
3979 lv_right_3_0,
3980 "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression");
3981 afterParserOrEnumRuleCall();
3982
3983 }
3984
3985 }
3986
3987
3988 }
2447 3989
2448 current = forceCreateModelElement( 3990
2449 grammarAccess.getStringSymbolAccess().getStringSymbolAction_1(), 3991 }
2450 current); 3992 break;
2451
2452 3993
2453 } 3994 }
2454 3995
@@ -2458,9 +3999,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2458 3999
2459 } 4000 }
2460 4001
4002 if ( state.backtracking==0 ) {
2461 4003
2462 leaveRule(); 4004 leaveRule();
2463 4005
4006 }
2464 } 4007 }
2465 4008
2466 catch (RecognitionException re) { 4009 catch (RecognitionException re) {
@@ -2471,29 +4014,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2471 } 4014 }
2472 return current; 4015 return current;
2473 } 4016 }
2474 // $ANTLR end "ruleStringSymbol" 4017 // $ANTLR end "ruleExponentialExpression"
2475 4018
2476 4019
2477 // $ANTLR start "entryRuleComplexObject" 4020 // $ANTLR start "entryRuleUnaryExpression"
2478 // InternalSolverLanguage.g:846:1: entryRuleComplexObject returns [EObject current=null] : iv_ruleComplexObject= ruleComplexObject EOF ; 4021 // InternalSolverLanguage.g:1455:1: entryRuleUnaryExpression returns [EObject current=null] : iv_ruleUnaryExpression= ruleUnaryExpression EOF ;
2479 public final EObject entryRuleComplexObject() throws RecognitionException { 4022 public final EObject entryRuleUnaryExpression() throws RecognitionException {
2480 EObject current = null; 4023 EObject current = null;
2481 4024
2482 EObject iv_ruleComplexObject = null; 4025 EObject iv_ruleUnaryExpression = null;
2483 4026
2484 4027
2485 try { 4028 try {
2486 // InternalSolverLanguage.g:846:54: (iv_ruleComplexObject= ruleComplexObject EOF ) 4029 // InternalSolverLanguage.g:1455:56: (iv_ruleUnaryExpression= ruleUnaryExpression EOF )
2487 // InternalSolverLanguage.g:847:2: iv_ruleComplexObject= ruleComplexObject EOF 4030 // InternalSolverLanguage.g:1456:2: iv_ruleUnaryExpression= ruleUnaryExpression EOF
2488 { 4031 {
2489 newCompositeNode(grammarAccess.getComplexObjectRule()); 4032 if ( state.backtracking==0 ) {
4033 newCompositeNode(grammarAccess.getUnaryExpressionRule());
4034 }
2490 pushFollow(FOLLOW_1); 4035 pushFollow(FOLLOW_1);
2491 iv_ruleComplexObject=ruleComplexObject(); 4036 iv_ruleUnaryExpression=ruleUnaryExpression();
2492 4037
2493 state._fsp--; 4038 state._fsp--;
2494 4039 if (state.failed) return current;
2495 current =iv_ruleComplexObject; 4040 if ( state.backtracking==0 ) {
2496 match(input,EOF,FOLLOW_2); 4041 current =iv_ruleUnaryExpression;
4042 }
4043 match(input,EOF,FOLLOW_2); if (state.failed) return current;
2497 4044
2498 } 4045 }
2499 4046
@@ -2507,111 +4054,160 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2507 } 4054 }
2508 return current; 4055 return current;
2509 } 4056 }
2510 // $ANTLR end "entryRuleComplexObject" 4057 // $ANTLR end "entryRuleUnaryExpression"
2511 4058
2512 4059
2513 // $ANTLR start "ruleComplexObject" 4060 // $ANTLR start "ruleUnaryExpression"
2514 // InternalSolverLanguage.g:853:1: ruleComplexObject returns [EObject current=null] : (this_Object_0= ruleObject | this_AllInstances_1= ruleAllInstances | this_AllObjects_2= ruleAllObjects ) ; 4061 // InternalSolverLanguage.g:1462:1: ruleUnaryExpression returns [EObject current=null] : (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) ;
2515 public final EObject ruleComplexObject() throws RecognitionException { 4062 public final EObject ruleUnaryExpression() throws RecognitionException {
2516 EObject current = null; 4063 EObject current = null;
2517 4064
2518 EObject this_Object_0 = null; 4065 EObject this_AggregationExpression_0 = null;
2519 4066
2520 EObject this_AllInstances_1 = null; 4067 Enumerator lv_op_2_0 = null;
2521 4068
2522 EObject this_AllObjects_2 = null; 4069 EObject lv_body_3_0 = null;
2523 4070
2524 4071
2525 4072
2526 enterRule(); 4073 enterRule();
2527 4074
2528 try { 4075 try {
2529 // InternalSolverLanguage.g:859:2: ( (this_Object_0= ruleObject | this_AllInstances_1= ruleAllInstances | this_AllObjects_2= ruleAllObjects ) ) 4076 // InternalSolverLanguage.g:1468:2: ( (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) )
2530 // InternalSolverLanguage.g:860:2: (this_Object_0= ruleObject | this_AllInstances_1= ruleAllInstances | this_AllObjects_2= ruleAllObjects ) 4077 // InternalSolverLanguage.g:1469:2: (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) )
2531 { 4078 {
2532 // InternalSolverLanguage.g:860:2: (this_Object_0= ruleObject | this_AllInstances_1= ruleAllInstances | this_AllObjects_2= ruleAllObjects ) 4079 // InternalSolverLanguage.g:1469:2: (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) )
2533 int alt14=3; 4080 int alt18=2;
2534 switch ( input.LA(1) ) { 4081 int LA18_0 = input.LA(1);
2535 case RULE_INT: 4082
2536 case RULE_ID: 4083 if ( ((LA18_0>=RULE_STRING && LA18_0<=RULE_QUOTED_ID)||LA18_0==19||LA18_0==29||LA18_0==33||LA18_0==36||(LA18_0>=39 && LA18_0<=40)||(LA18_0>=64 && LA18_0<=72)) ) {
2537 case RULE_STRING: 4084 alt18=1;
2538 case 11: 4085 }
2539 case 13: 4086 else if ( ((LA18_0>=56 && LA18_0<=57)||(LA18_0>=60 && LA18_0<=63)) ) {
2540 case 14: 4087 alt18=2;
2541 case 27: 4088 }
2542 { 4089 else {
2543 alt14=1; 4090 if (state.backtracking>0) {state.failed=true; return current;}
2544 }
2545 break;
2546 case 20:
2547 {
2548 alt14=2;
2549 }
2550 break;
2551 case 31:
2552 {
2553 alt14=3;
2554 }
2555 break;
2556 default:
2557 NoViableAltException nvae = 4091 NoViableAltException nvae =
2558 new NoViableAltException("", 14, 0, input); 4092 new NoViableAltException("", 18, 0, input);
2559 4093
2560 throw nvae; 4094 throw nvae;
2561 } 4095 }
2562 4096 switch (alt18) {
2563 switch (alt14) {
2564 case 1 : 4097 case 1 :
2565 // InternalSolverLanguage.g:861:3: this_Object_0= ruleObject 4098 // InternalSolverLanguage.g:1470:3: this_AggregationExpression_0= ruleAggregationExpression
2566 { 4099 {
4100 if ( state.backtracking==0 ) {
2567 4101
2568 newCompositeNode(grammarAccess.getComplexObjectAccess().getObjectParserRuleCall_0()); 4102 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getAggregationExpressionParserRuleCall_0());
2569 4103
4104 }
2570 pushFollow(FOLLOW_2); 4105 pushFollow(FOLLOW_2);
2571 this_Object_0=ruleObject(); 4106 this_AggregationExpression_0=ruleAggregationExpression();
2572 4107
2573 state._fsp--; 4108 state._fsp--;
4109 if (state.failed) return current;
4110 if ( state.backtracking==0 ) {
2574 4111
2575 4112 current = this_AggregationExpression_0;
2576 current = this_Object_0; 4113 afterParserOrEnumRuleCall();
2577 afterParserOrEnumRuleCall(); 4114
2578 4115 }
2579 4116
2580 } 4117 }
2581 break; 4118 break;
2582 case 2 : 4119 case 2 :
2583 // InternalSolverLanguage.g:870:3: this_AllInstances_1= ruleAllInstances 4120 // InternalSolverLanguage.g:1479:3: ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) )
4121 {
4122 // InternalSolverLanguage.g:1479:3: ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) )
4123 // InternalSolverLanguage.g:1480:4: () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) )
2584 { 4124 {
4125 // InternalSolverLanguage.g:1480:4: ()
4126 // InternalSolverLanguage.g:1481:5:
4127 {
4128 if ( state.backtracking==0 ) {
2585 4129
2586 newCompositeNode(grammarAccess.getComplexObjectAccess().getAllInstancesParserRuleCall_1()); 4130 current = forceCreateModelElement(
2587 4131 grammarAccess.getUnaryExpressionAccess().getUnaryExpressionAction_1_0(),
2588 pushFollow(FOLLOW_2); 4132 current);
2589 this_AllInstances_1=ruleAllInstances(); 4133
4134 }
4135
4136 }
4137
4138 // InternalSolverLanguage.g:1487:4: ( (lv_op_2_0= ruleUnaryOp ) )
4139 // InternalSolverLanguage.g:1488:5: (lv_op_2_0= ruleUnaryOp )
4140 {
4141 // InternalSolverLanguage.g:1488:5: (lv_op_2_0= ruleUnaryOp )
4142 // InternalSolverLanguage.g:1489:6: lv_op_2_0= ruleUnaryOp
4143 {
4144 if ( state.backtracking==0 ) {
4145
4146 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0());
4147
4148 }
4149 pushFollow(FOLLOW_25);
4150 lv_op_2_0=ruleUnaryOp();
2590 4151
2591 state._fsp--; 4152 state._fsp--;
4153 if (state.failed) return current;
4154 if ( state.backtracking==0 ) {
4155
4156 if (current==null) {
4157 current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
4158 }
4159 set(
4160 current,
4161 "op",
4162 lv_op_2_0,
4163 "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp");
4164 afterParserOrEnumRuleCall();
4165
4166 }
2592 4167
4168 }
2593 4169
2594 current = this_AllInstances_1;
2595 afterParserOrEnumRuleCall();
2596
2597 4170
2598 } 4171 }
2599 break; 4172
2600 case 3 : 4173 // InternalSolverLanguage.g:1506:4: ( (lv_body_3_0= ruleAggregationExpression ) )
2601 // InternalSolverLanguage.g:879:3: this_AllObjects_2= ruleAllObjects 4174 // InternalSolverLanguage.g:1507:5: (lv_body_3_0= ruleAggregationExpression )
2602 { 4175 {
4176 // InternalSolverLanguage.g:1507:5: (lv_body_3_0= ruleAggregationExpression )
4177 // InternalSolverLanguage.g:1508:6: lv_body_3_0= ruleAggregationExpression
4178 {
4179 if ( state.backtracking==0 ) {
2603 4180
2604 newCompositeNode(grammarAccess.getComplexObjectAccess().getAllObjectsParserRuleCall_2()); 4181 newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0());
2605 4182
4183 }
2606 pushFollow(FOLLOW_2); 4184 pushFollow(FOLLOW_2);
2607 this_AllObjects_2=ruleAllObjects(); 4185 lv_body_3_0=ruleAggregationExpression();
2608 4186
2609 state._fsp--; 4187 state._fsp--;
4188 if (state.failed) return current;
4189 if ( state.backtracking==0 ) {
4190
4191 if (current==null) {
4192 current = createModelElementForParent(grammarAccess.getUnaryExpressionRule());
4193 }
4194 set(
4195 current,
4196 "body",
4197 lv_body_3_0,
4198 "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression");
4199 afterParserOrEnumRuleCall();
4200
4201 }
2610 4202
4203 }
4204
4205
4206 }
4207
4208
4209 }
2611 4210
2612 current = this_AllObjects_2;
2613 afterParserOrEnumRuleCall();
2614
2615 4211
2616 } 4212 }
2617 break; 4213 break;
@@ -2621,9 +4217,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2621 4217
2622 } 4218 }
2623 4219
4220 if ( state.backtracking==0 ) {
2624 4221
2625 leaveRule(); 4222 leaveRule();
2626 4223
4224 }
2627 } 4225 }
2628 4226
2629 catch (RecognitionException re) { 4227 catch (RecognitionException re) {
@@ -2634,29 +4232,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2634 } 4232 }
2635 return current; 4233 return current;
2636 } 4234 }
2637 // $ANTLR end "ruleComplexObject" 4235 // $ANTLR end "ruleUnaryExpression"
2638 4236
2639 4237
2640 // $ANTLR start "entryRuleObject" 4238 // $ANTLR start "entryRuleAggregationExpression"
2641 // InternalSolverLanguage.g:891:1: entryRuleObject returns [EObject current=null] : iv_ruleObject= ruleObject EOF ; 4239 // InternalSolverLanguage.g:1530:1: entryRuleAggregationExpression returns [EObject current=null] : iv_ruleAggregationExpression= ruleAggregationExpression EOF ;
2642 public final EObject entryRuleObject() throws RecognitionException { 4240 public final EObject entryRuleAggregationExpression() throws RecognitionException {
2643 EObject current = null; 4241 EObject current = null;
2644 4242
2645 EObject iv_ruleObject = null; 4243 EObject iv_ruleAggregationExpression = null;
2646 4244
2647 4245
2648 try { 4246 try {
2649 // InternalSolverLanguage.g:891:47: (iv_ruleObject= ruleObject EOF ) 4247 // InternalSolverLanguage.g:1530:62: (iv_ruleAggregationExpression= ruleAggregationExpression EOF )
2650 // InternalSolverLanguage.g:892:2: iv_ruleObject= ruleObject EOF 4248 // InternalSolverLanguage.g:1531:2: iv_ruleAggregationExpression= ruleAggregationExpression EOF
2651 { 4249 {
2652 newCompositeNode(grammarAccess.getObjectRule()); 4250 if ( state.backtracking==0 ) {
4251 newCompositeNode(grammarAccess.getAggregationExpressionRule());
4252 }
2653 pushFollow(FOLLOW_1); 4253 pushFollow(FOLLOW_1);
2654 iv_ruleObject=ruleObject(); 4254 iv_ruleAggregationExpression=ruleAggregationExpression();
2655 4255
2656 state._fsp--; 4256 state._fsp--;
2657 4257 if (state.failed) return current;
2658 current =iv_ruleObject; 4258 if ( state.backtracking==0 ) {
2659 match(input,EOF,FOLLOW_2); 4259 current =iv_ruleAggregationExpression;
4260 }
4261 match(input,EOF,FOLLOW_2); if (state.failed) return current;
2660 4262
2661 } 4263 }
2662 4264
@@ -2670,109 +4272,134 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2670 } 4272 }
2671 return current; 4273 return current;
2672 } 4274 }
2673 // $ANTLR end "entryRuleObject" 4275 // $ANTLR end "entryRuleAggregationExpression"
2674 4276
2675 4277
2676 // $ANTLR start "ruleObject" 4278 // $ANTLR start "ruleAggregationExpression"
2677 // InternalSolverLanguage.g:898:1: ruleObject returns [EObject current=null] : (this_NamedObject_0= ruleNamedObject | this_UnnamedObject_1= ruleUnnamedObject | this_DataObject_2= ruleDataObject ) ; 4279 // InternalSolverLanguage.g:1537:1: ruleAggregationExpression returns [EObject current=null] : (this_AtomicExpression_0= ruleAtomicExpression | this_Count_1= ruleCount | this_Aggregation_2= ruleAggregation ) ;
2678 public final EObject ruleObject() throws RecognitionException { 4280 public final EObject ruleAggregationExpression() throws RecognitionException {
2679 EObject current = null; 4281 EObject current = null;
2680 4282
2681 EObject this_NamedObject_0 = null; 4283 EObject this_AtomicExpression_0 = null;
2682 4284
2683 EObject this_UnnamedObject_1 = null; 4285 EObject this_Count_1 = null;
2684 4286
2685 EObject this_DataObject_2 = null; 4287 EObject this_Aggregation_2 = null;
2686 4288
2687 4289
2688 4290
2689 enterRule(); 4291 enterRule();
2690 4292
2691 try { 4293 try {
2692 // InternalSolverLanguage.g:904:2: ( (this_NamedObject_0= ruleNamedObject | this_UnnamedObject_1= ruleUnnamedObject | this_DataObject_2= ruleDataObject ) ) 4294 // InternalSolverLanguage.g:1543:2: ( (this_AtomicExpression_0= ruleAtomicExpression | this_Count_1= ruleCount | this_Aggregation_2= ruleAggregation ) )
2693 // InternalSolverLanguage.g:905:2: (this_NamedObject_0= ruleNamedObject | this_UnnamedObject_1= ruleUnnamedObject | this_DataObject_2= ruleDataObject ) 4295 // InternalSolverLanguage.g:1544:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Count_1= ruleCount | this_Aggregation_2= ruleAggregation )
2694 { 4296 {
2695 // InternalSolverLanguage.g:905:2: (this_NamedObject_0= ruleNamedObject | this_UnnamedObject_1= ruleUnnamedObject | this_DataObject_2= ruleDataObject ) 4297 // InternalSolverLanguage.g:1544:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Count_1= ruleCount | this_Aggregation_2= ruleAggregation )
2696 int alt15=3; 4298 int alt19=3;
2697 switch ( input.LA(1) ) { 4299 switch ( input.LA(1) ) {
2698 case 27: 4300 case RULE_STRING:
4301 case RULE_ID:
4302 case RULE_INT:
4303 case RULE_QUOTED_ID:
4304 case 19:
4305 case 33:
4306 case 36:
4307 case 39:
4308 case 40:
4309 case 70:
4310 case 71:
4311 case 72:
2699 { 4312 {
2700 alt15=1; 4313 alt19=1;
2701 } 4314 }
2702 break; 4315 break;
2703 case RULE_ID: 4316 case 29:
2704 { 4317 {
2705 alt15=2; 4318 alt19=2;
2706 } 4319 }
2707 break; 4320 break;
2708 case RULE_INT: 4321 case 64:
2709 case RULE_STRING: 4322 case 65:
2710 case 11: 4323 case 66:
2711 case 13: 4324 case 67:
2712 case 14: 4325 case 68:
4326 case 69:
2713 { 4327 {
2714 alt15=3; 4328 alt19=3;
2715 } 4329 }
2716 break; 4330 break;
2717 default: 4331 default:
4332 if (state.backtracking>0) {state.failed=true; return current;}
2718 NoViableAltException nvae = 4333 NoViableAltException nvae =
2719 new NoViableAltException("", 15, 0, input); 4334 new NoViableAltException("", 19, 0, input);
2720 4335
2721 throw nvae; 4336 throw nvae;
2722 } 4337 }
2723 4338
2724 switch (alt15) { 4339 switch (alt19) {
2725 case 1 : 4340 case 1 :
2726 // InternalSolverLanguage.g:906:3: this_NamedObject_0= ruleNamedObject 4341 // InternalSolverLanguage.g:1545:3: this_AtomicExpression_0= ruleAtomicExpression
2727 { 4342 {
4343 if ( state.backtracking==0 ) {
2728 4344
2729 newCompositeNode(grammarAccess.getObjectAccess().getNamedObjectParserRuleCall_0()); 4345 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAtomicExpressionParserRuleCall_0());
2730 4346
4347 }
2731 pushFollow(FOLLOW_2); 4348 pushFollow(FOLLOW_2);
2732 this_NamedObject_0=ruleNamedObject(); 4349 this_AtomicExpression_0=ruleAtomicExpression();
2733 4350
2734 state._fsp--; 4351 state._fsp--;
4352 if (state.failed) return current;
4353 if ( state.backtracking==0 ) {
2735 4354
2736 4355 current = this_AtomicExpression_0;
2737 current = this_NamedObject_0; 4356 afterParserOrEnumRuleCall();
2738 afterParserOrEnumRuleCall(); 4357
2739 4358 }
2740 4359
2741 } 4360 }
2742 break; 4361 break;
2743 case 2 : 4362 case 2 :
2744 // InternalSolverLanguage.g:915:3: this_UnnamedObject_1= ruleUnnamedObject 4363 // InternalSolverLanguage.g:1554:3: this_Count_1= ruleCount
2745 { 4364 {
4365 if ( state.backtracking==0 ) {
2746 4366
2747 newCompositeNode(grammarAccess.getObjectAccess().getUnnamedObjectParserRuleCall_1()); 4367 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getCountParserRuleCall_1());
2748 4368
4369 }
2749 pushFollow(FOLLOW_2); 4370 pushFollow(FOLLOW_2);
2750 this_UnnamedObject_1=ruleUnnamedObject(); 4371 this_Count_1=ruleCount();
2751 4372
2752 state._fsp--; 4373 state._fsp--;
4374 if (state.failed) return current;
4375 if ( state.backtracking==0 ) {
2753 4376
2754 4377 current = this_Count_1;
2755 current = this_UnnamedObject_1; 4378 afterParserOrEnumRuleCall();
2756 afterParserOrEnumRuleCall(); 4379
2757 4380 }
2758 4381
2759 } 4382 }
2760 break; 4383 break;
2761 case 3 : 4384 case 3 :
2762 // InternalSolverLanguage.g:924:3: this_DataObject_2= ruleDataObject 4385 // InternalSolverLanguage.g:1563:3: this_Aggregation_2= ruleAggregation
2763 { 4386 {
4387 if ( state.backtracking==0 ) {
2764 4388
2765 newCompositeNode(grammarAccess.getObjectAccess().getDataObjectParserRuleCall_2()); 4389 newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAggregationParserRuleCall_2());
2766 4390
4391 }
2767 pushFollow(FOLLOW_2); 4392 pushFollow(FOLLOW_2);
2768 this_DataObject_2=ruleDataObject(); 4393 this_Aggregation_2=ruleAggregation();
2769 4394
2770 state._fsp--; 4395 state._fsp--;
4396 if (state.failed) return current;
4397 if ( state.backtracking==0 ) {
2771 4398
2772 4399 current = this_Aggregation_2;
2773 current = this_DataObject_2; 4400 afterParserOrEnumRuleCall();
2774 afterParserOrEnumRuleCall(); 4401
2775 4402 }
2776 4403
2777 } 4404 }
2778 break; 4405 break;
@@ -2782,9 +4409,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2782 4409
2783 } 4410 }
2784 4411
4412 if ( state.backtracking==0 ) {
2785 4413
2786 leaveRule(); 4414 leaveRule();
2787 4415
4416 }
2788 } 4417 }
2789 4418
2790 catch (RecognitionException re) { 4419 catch (RecognitionException re) {
@@ -2795,29 +4424,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2795 } 4424 }
2796 return current; 4425 return current;
2797 } 4426 }
2798 // $ANTLR end "ruleObject" 4427 // $ANTLR end "ruleAggregationExpression"
2799 4428
2800 4429
2801 // $ANTLR start "entryRuleNamedObject" 4430 // $ANTLR start "entryRuleCount"
2802 // InternalSolverLanguage.g:936:1: entryRuleNamedObject returns [EObject current=null] : iv_ruleNamedObject= ruleNamedObject EOF ; 4431 // InternalSolverLanguage.g:1575:1: entryRuleCount returns [EObject current=null] : iv_ruleCount= ruleCount EOF ;
2803 public final EObject entryRuleNamedObject() throws RecognitionException { 4432 public final EObject entryRuleCount() throws RecognitionException {
2804 EObject current = null; 4433 EObject current = null;
2805 4434
2806 EObject iv_ruleNamedObject = null; 4435 EObject iv_ruleCount = null;
2807 4436
2808 4437
2809 try { 4438 try {
2810 // InternalSolverLanguage.g:936:52: (iv_ruleNamedObject= ruleNamedObject EOF ) 4439 // InternalSolverLanguage.g:1575:46: (iv_ruleCount= ruleCount EOF )
2811 // InternalSolverLanguage.g:937:2: iv_ruleNamedObject= ruleNamedObject EOF 4440 // InternalSolverLanguage.g:1576:2: iv_ruleCount= ruleCount EOF
2812 { 4441 {
2813 newCompositeNode(grammarAccess.getNamedObjectRule()); 4442 if ( state.backtracking==0 ) {
4443 newCompositeNode(grammarAccess.getCountRule());
4444 }
2814 pushFollow(FOLLOW_1); 4445 pushFollow(FOLLOW_1);
2815 iv_ruleNamedObject=ruleNamedObject(); 4446 iv_ruleCount=ruleCount();
2816 4447
2817 state._fsp--; 4448 state._fsp--;
2818 4449 if (state.failed) return current;
2819 current =iv_ruleNamedObject; 4450 if ( state.backtracking==0 ) {
2820 match(input,EOF,FOLLOW_2); 4451 current =iv_ruleCount;
4452 }
4453 match(input,EOF,FOLLOW_2); if (state.failed) return current;
2821 4454
2822 } 4455 }
2823 4456
@@ -2831,71 +4464,94 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2831 } 4464 }
2832 return current; 4465 return current;
2833 } 4466 }
2834 // $ANTLR end "entryRuleNamedObject" 4467 // $ANTLR end "entryRuleCount"
2835 4468
2836 4469
2837 // $ANTLR start "ruleNamedObject" 4470 // $ANTLR start "ruleCount"
2838 // InternalSolverLanguage.g:943:1: ruleNamedObject returns [EObject current=null] : (otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' ) ; 4471 // InternalSolverLanguage.g:1582:1: ruleCount returns [EObject current=null] : (otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}' ) ;
2839 public final EObject ruleNamedObject() throws RecognitionException { 4472 public final EObject ruleCount() throws RecognitionException {
2840 EObject current = null; 4473 EObject current = null;
2841 4474
2842 Token otherlv_0=null; 4475 Token otherlv_0=null;
2843 Token lv_name_1_0=null; 4476 Token otherlv_1=null;
2844 Token otherlv_2=null; 4477 Token otherlv_3=null;
4478 EObject lv_body_2_0 = null;
4479
2845 4480
2846 4481
2847 enterRule(); 4482 enterRule();
2848 4483
2849 try { 4484 try {
2850 // InternalSolverLanguage.g:949:2: ( (otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' ) ) 4485 // InternalSolverLanguage.g:1588:2: ( (otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}' ) )
2851 // InternalSolverLanguage.g:950:2: (otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' ) 4486 // InternalSolverLanguage.g:1589:2: (otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}' )
2852 { 4487 {
2853 // InternalSolverLanguage.g:950:2: (otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' ) 4488 // InternalSolverLanguage.g:1589:2: (otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}' )
2854 // InternalSolverLanguage.g:951:3: otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' 4489 // InternalSolverLanguage.g:1590:3: otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}'
2855 { 4490 {
2856 otherlv_0=(Token)match(input,27,FOLLOW_12); 4491 otherlv_0=(Token)match(input,29,FOLLOW_26); if (state.failed) return current;
4492 if ( state.backtracking==0 ) {
4493
4494 newLeafNode(otherlv_0, grammarAccess.getCountAccess().getCountKeyword_0());
4495
4496 }
4497 otherlv_1=(Token)match(input,30,FOLLOW_6); if (state.failed) return current;
4498 if ( state.backtracking==0 ) {
2857 4499
2858 newLeafNode(otherlv_0, grammarAccess.getNamedObjectAccess().getApostropheKeyword_0()); 4500 newLeafNode(otherlv_1, grammarAccess.getCountAccess().getLeftCurlyBracketKeyword_1());
2859 4501
2860 // InternalSolverLanguage.g:955:3: ( (lv_name_1_0= RULE_ID ) ) 4502 }
2861 // InternalSolverLanguage.g:956:4: (lv_name_1_0= RULE_ID ) 4503 // InternalSolverLanguage.g:1598:3: ( (lv_body_2_0= ruleExpression ) )
4504 // InternalSolverLanguage.g:1599:4: (lv_body_2_0= ruleExpression )
2862 { 4505 {
2863 // InternalSolverLanguage.g:956:4: (lv_name_1_0= RULE_ID ) 4506 // InternalSolverLanguage.g:1599:4: (lv_body_2_0= ruleExpression )
2864 // InternalSolverLanguage.g:957:5: lv_name_1_0= RULE_ID 4507 // InternalSolverLanguage.g:1600:5: lv_body_2_0= ruleExpression
2865 { 4508 {
2866 lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_13); 4509 if ( state.backtracking==0 ) {
2867 4510
2868 newLeafNode(lv_name_1_0, grammarAccess.getNamedObjectAccess().getNameIDTerminalRuleCall_1_0()); 4511 newCompositeNode(grammarAccess.getCountAccess().getBodyExpressionParserRuleCall_2_0());
2869 4512
4513 }
4514 pushFollow(FOLLOW_27);
4515 lv_body_2_0=ruleExpression();
2870 4516
2871 if (current==null) { 4517 state._fsp--;
2872 current = createModelElement(grammarAccess.getNamedObjectRule()); 4518 if (state.failed) return current;
2873 } 4519 if ( state.backtracking==0 ) {
2874 setWithLastConsumed( 4520
2875 current, 4521 if (current==null) {
2876 "name", 4522 current = createModelElementForParent(grammarAccess.getCountRule());
2877 lv_name_1_0, 4523 }
2878 "org.eclipse.xtext.common.Terminals.ID"); 4524 set(
2879 4525 current,
4526 "body",
4527 lv_body_2_0,
4528 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
4529 afterParserOrEnumRuleCall();
4530
4531 }
2880 4532
2881 } 4533 }
2882 4534
2883 4535
2884 } 4536 }
2885 4537
2886 otherlv_2=(Token)match(input,27,FOLLOW_2); 4538 otherlv_3=(Token)match(input,31,FOLLOW_2); if (state.failed) return current;
4539 if ( state.backtracking==0 ) {
2887 4540
2888 newLeafNode(otherlv_2, grammarAccess.getNamedObjectAccess().getApostropheKeyword_2()); 4541 newLeafNode(otherlv_3, grammarAccess.getCountAccess().getRightCurlyBracketKeyword_3());
2889 4542
4543 }
2890 4544
2891 } 4545 }
2892 4546
2893 4547
2894 } 4548 }
2895 4549
4550 if ( state.backtracking==0 ) {
2896 4551
2897 leaveRule(); 4552 leaveRule();
2898 4553
4554 }
2899 } 4555 }
2900 4556
2901 catch (RecognitionException re) { 4557 catch (RecognitionException re) {
@@ -2906,29 +4562,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2906 } 4562 }
2907 return current; 4563 return current;
2908 } 4564 }
2909 // $ANTLR end "ruleNamedObject" 4565 // $ANTLR end "ruleCount"
2910 4566
2911 4567
2912 // $ANTLR start "entryRuleUnnamedObject" 4568 // $ANTLR start "entryRuleAggregation"
2913 // InternalSolverLanguage.g:981:1: entryRuleUnnamedObject returns [EObject current=null] : iv_ruleUnnamedObject= ruleUnnamedObject EOF ; 4569 // InternalSolverLanguage.g:1625:1: entryRuleAggregation returns [EObject current=null] : iv_ruleAggregation= ruleAggregation EOF ;
2914 public final EObject entryRuleUnnamedObject() throws RecognitionException { 4570 public final EObject entryRuleAggregation() throws RecognitionException {
2915 EObject current = null; 4571 EObject current = null;
2916 4572
2917 EObject iv_ruleUnnamedObject = null; 4573 EObject iv_ruleAggregation = null;
2918 4574
2919 4575
2920 try { 4576 try {
2921 // InternalSolverLanguage.g:981:54: (iv_ruleUnnamedObject= ruleUnnamedObject EOF ) 4577 // InternalSolverLanguage.g:1625:52: (iv_ruleAggregation= ruleAggregation EOF )
2922 // InternalSolverLanguage.g:982:2: iv_ruleUnnamedObject= ruleUnnamedObject EOF 4578 // InternalSolverLanguage.g:1626:2: iv_ruleAggregation= ruleAggregation EOF
2923 { 4579 {
2924 newCompositeNode(grammarAccess.getUnnamedObjectRule()); 4580 if ( state.backtracking==0 ) {
4581 newCompositeNode(grammarAccess.getAggregationRule());
4582 }
2925 pushFollow(FOLLOW_1); 4583 pushFollow(FOLLOW_1);
2926 iv_ruleUnnamedObject=ruleUnnamedObject(); 4584 iv_ruleAggregation=ruleAggregation();
2927 4585
2928 state._fsp--; 4586 state._fsp--;
2929 4587 if (state.failed) return current;
2930 current =iv_ruleUnnamedObject; 4588 if ( state.backtracking==0 ) {
2931 match(input,EOF,FOLLOW_2); 4589 current =iv_ruleAggregation;
4590 }
4591 match(input,EOF,FOLLOW_2); if (state.failed) return current;
2932 4592
2933 } 4593 }
2934 4594
@@ -2942,55 +4602,168 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
2942 } 4602 }
2943 return current; 4603 return current;
2944 } 4604 }
2945 // $ANTLR end "entryRuleUnnamedObject" 4605 // $ANTLR end "entryRuleAggregation"
2946 4606
2947 4607
2948 // $ANTLR start "ruleUnnamedObject" 4608 // $ANTLR start "ruleAggregation"
2949 // InternalSolverLanguage.g:988:1: ruleUnnamedObject returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; 4609 // InternalSolverLanguage.g:1632:1: ruleAggregation returns [EObject current=null] : ( ( (lv_op_0_0= ruleAggregationOp ) ) otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '|' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= '}' ) ;
2950 public final EObject ruleUnnamedObject() throws RecognitionException { 4610 public final EObject ruleAggregation() throws RecognitionException {
2951 EObject current = null; 4611 EObject current = null;
2952 4612
2953 Token lv_name_0_0=null; 4613 Token otherlv_1=null;
4614 Token otherlv_3=null;
4615 Token otherlv_5=null;
4616 Enumerator lv_op_0_0 = null;
4617
4618 EObject lv_body_2_0 = null;
4619
4620 EObject lv_condition_4_0 = null;
4621
2954 4622
2955 4623
2956 enterRule(); 4624 enterRule();
2957 4625
2958 try { 4626 try {
2959 // InternalSolverLanguage.g:994:2: ( ( (lv_name_0_0= RULE_ID ) ) ) 4627 // InternalSolverLanguage.g:1638:2: ( ( ( (lv_op_0_0= ruleAggregationOp ) ) otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '|' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= '}' ) )
2960 // InternalSolverLanguage.g:995:2: ( (lv_name_0_0= RULE_ID ) ) 4628 // InternalSolverLanguage.g:1639:2: ( ( (lv_op_0_0= ruleAggregationOp ) ) otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '|' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= '}' )
4629 {
4630 // InternalSolverLanguage.g:1639:2: ( ( (lv_op_0_0= ruleAggregationOp ) ) otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '|' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= '}' )
4631 // InternalSolverLanguage.g:1640:3: ( (lv_op_0_0= ruleAggregationOp ) ) otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '|' ( (lv_condition_4_0= ruleExpression ) ) otherlv_5= '}'
4632 {
4633 // InternalSolverLanguage.g:1640:3: ( (lv_op_0_0= ruleAggregationOp ) )
4634 // InternalSolverLanguage.g:1641:4: (lv_op_0_0= ruleAggregationOp )
4635 {
4636 // InternalSolverLanguage.g:1641:4: (lv_op_0_0= ruleAggregationOp )
4637 // InternalSolverLanguage.g:1642:5: lv_op_0_0= ruleAggregationOp
2961 { 4638 {
2962 // InternalSolverLanguage.g:995:2: ( (lv_name_0_0= RULE_ID ) ) 4639 if ( state.backtracking==0 ) {
2963 // InternalSolverLanguage.g:996:3: (lv_name_0_0= RULE_ID ) 4640
4641 newCompositeNode(grammarAccess.getAggregationAccess().getOpAggregationOpEnumRuleCall_0_0());
4642
4643 }
4644 pushFollow(FOLLOW_26);
4645 lv_op_0_0=ruleAggregationOp();
4646
4647 state._fsp--;
4648 if (state.failed) return current;
4649 if ( state.backtracking==0 ) {
4650
4651 if (current==null) {
4652 current = createModelElementForParent(grammarAccess.getAggregationRule());
4653 }
4654 set(
4655 current,
4656 "op",
4657 lv_op_0_0,
4658 "org.eclipse.viatra.solver.language.SolverLanguage.AggregationOp");
4659 afterParserOrEnumRuleCall();
4660
4661 }
4662
4663 }
4664
4665
4666 }
4667
4668 otherlv_1=(Token)match(input,30,FOLLOW_6); if (state.failed) return current;
4669 if ( state.backtracking==0 ) {
4670
4671 newLeafNode(otherlv_1, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_1());
4672
4673 }
4674 // InternalSolverLanguage.g:1663:3: ( (lv_body_2_0= ruleExpression ) )
4675 // InternalSolverLanguage.g:1664:4: (lv_body_2_0= ruleExpression )
2964 { 4676 {
2965 // InternalSolverLanguage.g:996:3: (lv_name_0_0= RULE_ID ) 4677 // InternalSolverLanguage.g:1664:4: (lv_body_2_0= ruleExpression )
2966 // InternalSolverLanguage.g:997:4: lv_name_0_0= RULE_ID 4678 // InternalSolverLanguage.g:1665:5: lv_body_2_0= ruleExpression
2967 { 4679 {
2968 lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_2); 4680 if ( state.backtracking==0 ) {
4681
4682 newCompositeNode(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_2_0());
4683
4684 }
4685 pushFollow(FOLLOW_28);
4686 lv_body_2_0=ruleExpression();
4687
4688 state._fsp--;
4689 if (state.failed) return current;
4690 if ( state.backtracking==0 ) {
4691
4692 if (current==null) {
4693 current = createModelElementForParent(grammarAccess.getAggregationRule());
4694 }
4695 set(
4696 current,
4697 "body",
4698 lv_body_2_0,
4699 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
4700 afterParserOrEnumRuleCall();
4701
4702 }
2969 4703
2970 newLeafNode(lv_name_0_0, grammarAccess.getUnnamedObjectAccess().getNameIDTerminalRuleCall_0()); 4704 }
2971
2972 4705
2973 if (current==null) {
2974 current = createModelElement(grammarAccess.getUnnamedObjectRule());
2975 }
2976 setWithLastConsumed(
2977 current,
2978 "name",
2979 lv_name_0_0,
2980 "org.eclipse.xtext.common.Terminals.ID");
2981
2982 4706
2983 } 4707 }
2984 4708
4709 otherlv_3=(Token)match(input,32,FOLLOW_6); if (state.failed) return current;
4710 if ( state.backtracking==0 ) {
2985 4711
4712 newLeafNode(otherlv_3, grammarAccess.getAggregationAccess().getVerticalLineKeyword_3());
4713
2986 } 4714 }
4715 // InternalSolverLanguage.g:1686:3: ( (lv_condition_4_0= ruleExpression ) )
4716 // InternalSolverLanguage.g:1687:4: (lv_condition_4_0= ruleExpression )
4717 {
4718 // InternalSolverLanguage.g:1687:4: (lv_condition_4_0= ruleExpression )
4719 // InternalSolverLanguage.g:1688:5: lv_condition_4_0= ruleExpression
4720 {
4721 if ( state.backtracking==0 ) {
2987 4722
4723 newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0());
4724
4725 }
4726 pushFollow(FOLLOW_27);
4727 lv_condition_4_0=ruleExpression();
4728
4729 state._fsp--;
4730 if (state.failed) return current;
4731 if ( state.backtracking==0 ) {
4732
4733 if (current==null) {
4734 current = createModelElementForParent(grammarAccess.getAggregationRule());
4735 }
4736 set(
4737 current,
4738 "condition",
4739 lv_condition_4_0,
4740 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
4741 afterParserOrEnumRuleCall();
4742
4743 }
2988 4744
2989 } 4745 }
2990 4746
2991 4747
2992 leaveRule(); 4748 }
4749
4750 otherlv_5=(Token)match(input,31,FOLLOW_2); if (state.failed) return current;
4751 if ( state.backtracking==0 ) {
4752
4753 newLeafNode(otherlv_5, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5());
4754
4755 }
2993 4756
4757 }
4758
4759
4760 }
4761
4762 if ( state.backtracking==0 ) {
4763
4764 leaveRule();
4765
4766 }
2994 } 4767 }
2995 4768
2996 catch (RecognitionException re) { 4769 catch (RecognitionException re) {
@@ -3001,29 +4774,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3001 } 4774 }
3002 return current; 4775 return current;
3003 } 4776 }
3004 // $ANTLR end "ruleUnnamedObject" 4777 // $ANTLR end "ruleAggregation"
3005 4778
3006 4779
3007 // $ANTLR start "entryRuleDataObject" 4780 // $ANTLR start "entryRuleAtomicExpression"
3008 // InternalSolverLanguage.g:1016:1: entryRuleDataObject returns [EObject current=null] : iv_ruleDataObject= ruleDataObject EOF ; 4781 // InternalSolverLanguage.g:1713:1: entryRuleAtomicExpression returns [EObject current=null] : iv_ruleAtomicExpression= ruleAtomicExpression EOF ;
3009 public final EObject entryRuleDataObject() throws RecognitionException { 4782 public final EObject entryRuleAtomicExpression() throws RecognitionException {
3010 EObject current = null; 4783 EObject current = null;
3011 4784
3012 EObject iv_ruleDataObject = null; 4785 EObject iv_ruleAtomicExpression = null;
3013 4786
3014 4787
3015 try { 4788 try {
3016 // InternalSolverLanguage.g:1016:51: (iv_ruleDataObject= ruleDataObject EOF ) 4789 // InternalSolverLanguage.g:1713:57: (iv_ruleAtomicExpression= ruleAtomicExpression EOF )
3017 // InternalSolverLanguage.g:1017:2: iv_ruleDataObject= ruleDataObject EOF 4790 // InternalSolverLanguage.g:1714:2: iv_ruleAtomicExpression= ruleAtomicExpression EOF
3018 { 4791 {
3019 newCompositeNode(grammarAccess.getDataObjectRule()); 4792 if ( state.backtracking==0 ) {
4793 newCompositeNode(grammarAccess.getAtomicExpressionRule());
4794 }
3020 pushFollow(FOLLOW_1); 4795 pushFollow(FOLLOW_1);
3021 iv_ruleDataObject=ruleDataObject(); 4796 iv_ruleAtomicExpression=ruleAtomicExpression();
3022 4797
3023 state._fsp--; 4798 state._fsp--;
3024 4799 if (state.failed) return current;
3025 current =iv_ruleDataObject; 4800 if ( state.backtracking==0 ) {
3026 match(input,EOF,FOLLOW_2); 4801 current =iv_ruleAtomicExpression;
4802 }
4803 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3027 4804
3028 } 4805 }
3029 4806
@@ -3037,167 +4814,248 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3037 } 4814 }
3038 return current; 4815 return current;
3039 } 4816 }
3040 // $ANTLR end "entryRuleDataObject" 4817 // $ANTLR end "entryRuleAtomicExpression"
3041 4818
3042 4819
3043 // $ANTLR start "ruleDataObject" 4820 // $ANTLR start "ruleAtomicExpression"
3044 // InternalSolverLanguage.g:1023:1: ruleDataObject returns [EObject current=null] : (this_BooleanObject_0= ruleBooleanObject | this_IntObject_1= ruleIntObject | this_RealObject_2= ruleRealObject | this_StringObject_3= ruleStringObject ) ; 4821 // InternalSolverLanguage.g:1720:1: ruleAtomicExpression returns [EObject current=null] : ( (this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? ) | this_Interval_3= ruleInterval | this_Literal_4= ruleLiteral | (otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')' ) ) ;
3045 public final EObject ruleDataObject() throws RecognitionException { 4822 public final EObject ruleAtomicExpression() throws RecognitionException {
3046 EObject current = null; 4823 EObject current = null;
3047 4824
3048 EObject this_BooleanObject_0 = null; 4825 Token otherlv_5=null;
4826 Token otherlv_7=null;
4827 EObject this_Reference_0 = null;
4828
4829 EObject lv_argumentList_2_0 = null;
3049 4830
3050 EObject this_IntObject_1 = null; 4831 EObject this_Interval_3 = null;
3051 4832
3052 EObject this_RealObject_2 = null; 4833 EObject this_Literal_4 = null;
3053 4834
3054 EObject this_StringObject_3 = null; 4835 EObject this_Expression_6 = null;
3055 4836
3056 4837
3057 4838
3058 enterRule(); 4839 enterRule();
3059 4840
3060 try { 4841 try {
3061 // InternalSolverLanguage.g:1029:2: ( (this_BooleanObject_0= ruleBooleanObject | this_IntObject_1= ruleIntObject | this_RealObject_2= ruleRealObject | this_StringObject_3= ruleStringObject ) ) 4842 // InternalSolverLanguage.g:1726:2: ( ( (this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? ) | this_Interval_3= ruleInterval | this_Literal_4= ruleLiteral | (otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')' ) ) )
3062 // InternalSolverLanguage.g:1030:2: (this_BooleanObject_0= ruleBooleanObject | this_IntObject_1= ruleIntObject | this_RealObject_2= ruleRealObject | this_StringObject_3= ruleStringObject ) 4843 // InternalSolverLanguage.g:1727:2: ( (this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? ) | this_Interval_3= ruleInterval | this_Literal_4= ruleLiteral | (otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')' ) )
3063 { 4844 {
3064 // InternalSolverLanguage.g:1030:2: (this_BooleanObject_0= ruleBooleanObject | this_IntObject_1= ruleIntObject | this_RealObject_2= ruleRealObject | this_StringObject_3= ruleStringObject ) 4845 // InternalSolverLanguage.g:1727:2: ( (this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? ) | this_Interval_3= ruleInterval | this_Literal_4= ruleLiteral | (otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')' ) )
3065 int alt16=4; 4846 int alt21=4;
3066 switch ( input.LA(1) ) { 4847 switch ( input.LA(1) ) {
3067 case 13: 4848 case RULE_ID:
3068 case 14: 4849 case RULE_QUOTED_ID:
3069 { 4850 {
3070 alt16=1; 4851 alt21=1;
3071 } 4852 }
3072 break; 4853 break;
3073 case 11: 4854 case 36:
3074 { 4855 {
3075 int LA16_2 = input.LA(2); 4856 alt21=2;
3076
3077 if ( (LA16_2==RULE_INT) ) {
3078 int LA16_3 = input.LA(3);
3079
3080 if ( (LA16_3==12) ) {
3081 alt16=3;
3082 }
3083 else if ( (LA16_3==EOF||(LA16_3>=18 && LA16_3<=19)) ) {
3084 alt16=2;
3085 }
3086 else {
3087 NoViableAltException nvae =
3088 new NoViableAltException("", 16, 3, input);
3089
3090 throw nvae;
3091 }
3092 }
3093 else {
3094 NoViableAltException nvae =
3095 new NoViableAltException("", 16, 2, input);
3096
3097 throw nvae;
3098 }
3099 } 4857 }
3100 break; 4858 break;
4859 case RULE_STRING:
3101 case RULE_INT: 4860 case RULE_INT:
4861 case 19:
4862 case 39:
4863 case 40:
4864 case 70:
4865 case 71:
4866 case 72:
3102 { 4867 {
3103 int LA16_3 = input.LA(2); 4868 alt21=3;
3104
3105 if ( (LA16_3==12) ) {
3106 alt16=3;
3107 }
3108 else if ( (LA16_3==EOF||(LA16_3>=18 && LA16_3<=19)) ) {
3109 alt16=2;
3110 }
3111 else {
3112 NoViableAltException nvae =
3113 new NoViableAltException("", 16, 3, input);
3114
3115 throw nvae;
3116 }
3117 } 4869 }
3118 break; 4870 break;
3119 case RULE_STRING: 4871 case 33:
3120 { 4872 {
3121 alt16=4; 4873 alt21=4;
3122 } 4874 }
3123 break; 4875 break;
3124 default: 4876 default:
4877 if (state.backtracking>0) {state.failed=true; return current;}
3125 NoViableAltException nvae = 4878 NoViableAltException nvae =
3126 new NoViableAltException("", 16, 0, input); 4879 new NoViableAltException("", 21, 0, input);
3127 4880
3128 throw nvae; 4881 throw nvae;
3129 } 4882 }
3130 4883
3131 switch (alt16) { 4884 switch (alt21) {
3132 case 1 : 4885 case 1 :
3133 // InternalSolverLanguage.g:1031:3: this_BooleanObject_0= ruleBooleanObject 4886 // InternalSolverLanguage.g:1728:3: (this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? )
4887 {
4888 // InternalSolverLanguage.g:1728:3: (this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? )
4889 // InternalSolverLanguage.g:1729:4: this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )?
3134 { 4890 {
4891 if ( state.backtracking==0 ) {
3135 4892
3136 newCompositeNode(grammarAccess.getDataObjectAccess().getBooleanObjectParserRuleCall_0()); 4893 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceParserRuleCall_0_0());
3137 4894
3138 pushFollow(FOLLOW_2); 4895 }
3139 this_BooleanObject_0=ruleBooleanObject(); 4896 pushFollow(FOLLOW_29);
4897 this_Reference_0=ruleReference();
3140 4898
3141 state._fsp--; 4899 state._fsp--;
4900 if (state.failed) return current;
4901 if ( state.backtracking==0 ) {
4902
4903 current = this_Reference_0;
4904 afterParserOrEnumRuleCall();
4905
4906 }
4907 // InternalSolverLanguage.g:1737:4: ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )?
4908 int alt20=2;
4909 int LA20_0 = input.LA(1);
4910
4911 if ( (LA20_0==33) ) {
4912 alt20=1;
4913 }
4914 switch (alt20) {
4915 case 1 :
4916 // InternalSolverLanguage.g:1738:5: () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) )
4917 {
4918 // InternalSolverLanguage.g:1738:5: ()
4919 // InternalSolverLanguage.g:1739:6:
4920 {
4921 if ( state.backtracking==0 ) {
4922
4923 current = forceCreateModelElementAndSet(
4924 grammarAccess.getAtomicExpressionAccess().getCallFunctorAction_0_1_0(),
4925 current);
4926
4927 }
4928
4929 }
4930
4931 // InternalSolverLanguage.g:1745:5: ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) )
4932 // InternalSolverLanguage.g:1746:6: ( '(' )=> (lv_argumentList_2_0= ruleArgumentList )
4933 {
4934 // InternalSolverLanguage.g:1747:6: (lv_argumentList_2_0= ruleArgumentList )
4935 // InternalSolverLanguage.g:1748:7: lv_argumentList_2_0= ruleArgumentList
4936 {
4937 if ( state.backtracking==0 ) {
4938
4939 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getArgumentListArgumentListParserRuleCall_0_1_1_0());
4940
4941 }
4942 pushFollow(FOLLOW_2);
4943 lv_argumentList_2_0=ruleArgumentList();
4944
4945 state._fsp--;
4946 if (state.failed) return current;
4947 if ( state.backtracking==0 ) {
4948
4949 if (current==null) {
4950 current = createModelElementForParent(grammarAccess.getAtomicExpressionRule());
4951 }
4952 set(
4953 current,
4954 "argumentList",
4955 lv_argumentList_2_0,
4956 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
4957 afterParserOrEnumRuleCall();
4958
4959 }
4960
4961 }
4962
4963
4964 }
4965
4966
4967 }
4968 break;
3142 4969
4970 }
4971
4972
4973 }
3143 4974
3144 current = this_BooleanObject_0;
3145 afterParserOrEnumRuleCall();
3146
3147 4975
3148 } 4976 }
3149 break; 4977 break;
3150 case 2 : 4978 case 2 :
3151 // InternalSolverLanguage.g:1040:3: this_IntObject_1= ruleIntObject 4979 // InternalSolverLanguage.g:1768:3: this_Interval_3= ruleInterval
3152 { 4980 {
4981 if ( state.backtracking==0 ) {
3153 4982
3154 newCompositeNode(grammarAccess.getDataObjectAccess().getIntObjectParserRuleCall_1()); 4983 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIntervalParserRuleCall_1());
3155 4984
4985 }
3156 pushFollow(FOLLOW_2); 4986 pushFollow(FOLLOW_2);
3157 this_IntObject_1=ruleIntObject(); 4987 this_Interval_3=ruleInterval();
3158 4988
3159 state._fsp--; 4989 state._fsp--;
4990 if (state.failed) return current;
4991 if ( state.backtracking==0 ) {
3160 4992
3161 4993 current = this_Interval_3;
3162 current = this_IntObject_1; 4994 afterParserOrEnumRuleCall();
3163 afterParserOrEnumRuleCall(); 4995
3164 4996 }
3165 4997
3166 } 4998 }
3167 break; 4999 break;
3168 case 3 : 5000 case 3 :
3169 // InternalSolverLanguage.g:1049:3: this_RealObject_2= ruleRealObject 5001 // InternalSolverLanguage.g:1777:3: this_Literal_4= ruleLiteral
3170 { 5002 {
5003 if ( state.backtracking==0 ) {
3171 5004
3172 newCompositeNode(grammarAccess.getDataObjectAccess().getRealObjectParserRuleCall_2()); 5005 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralParserRuleCall_2());
3173 5006
5007 }
3174 pushFollow(FOLLOW_2); 5008 pushFollow(FOLLOW_2);
3175 this_RealObject_2=ruleRealObject(); 5009 this_Literal_4=ruleLiteral();
3176 5010
3177 state._fsp--; 5011 state._fsp--;
5012 if (state.failed) return current;
5013 if ( state.backtracking==0 ) {
3178 5014
3179 5015 current = this_Literal_4;
3180 current = this_RealObject_2; 5016 afterParserOrEnumRuleCall();
3181 afterParserOrEnumRuleCall(); 5017
3182 5018 }
3183 5019
3184 } 5020 }
3185 break; 5021 break;
3186 case 4 : 5022 case 4 :
3187 // InternalSolverLanguage.g:1058:3: this_StringObject_3= ruleStringObject 5023 // InternalSolverLanguage.g:1786:3: (otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')' )
3188 { 5024 {
5025 // InternalSolverLanguage.g:1786:3: (otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')' )
5026 // InternalSolverLanguage.g:1787:4: otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')'
5027 {
5028 otherlv_5=(Token)match(input,33,FOLLOW_6); if (state.failed) return current;
5029 if ( state.backtracking==0 ) {
3189 5030
3190 newCompositeNode(grammarAccess.getDataObjectAccess().getStringObjectParserRuleCall_3()); 5031 newLeafNode(otherlv_5, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_3_0());
3191 5032
3192 pushFollow(FOLLOW_2); 5033 }
3193 this_StringObject_3=ruleStringObject(); 5034 if ( state.backtracking==0 ) {
5035
5036 newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_3_1());
5037
5038 }
5039 pushFollow(FOLLOW_30);
5040 this_Expression_6=ruleExpression();
3194 5041
3195 state._fsp--; 5042 state._fsp--;
5043 if (state.failed) return current;
5044 if ( state.backtracking==0 ) {
3196 5045
5046 current = this_Expression_6;
5047 afterParserOrEnumRuleCall();
5048
5049 }
5050 otherlv_7=(Token)match(input,34,FOLLOW_2); if (state.failed) return current;
5051 if ( state.backtracking==0 ) {
5052
5053 newLeafNode(otherlv_7, grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_3_2());
5054
5055 }
5056
5057 }
3197 5058
3198 current = this_StringObject_3;
3199 afterParserOrEnumRuleCall();
3200
3201 5059
3202 } 5060 }
3203 break; 5061 break;
@@ -3207,9 +5065,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3207 5065
3208 } 5066 }
3209 5067
5068 if ( state.backtracking==0 ) {
3210 5069
3211 leaveRule(); 5070 leaveRule();
3212 5071
5072 }
3213 } 5073 }
3214 5074
3215 catch (RecognitionException re) { 5075 catch (RecognitionException re) {
@@ -3220,29 +5080,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3220 } 5080 }
3221 return current; 5081 return current;
3222 } 5082 }
3223 // $ANTLR end "ruleDataObject" 5083 // $ANTLR end "ruleAtomicExpression"
3224 5084
3225 5085
3226 // $ANTLR start "entryRuleBooleanObject" 5086 // $ANTLR start "entryRuleCall"
3227 // InternalSolverLanguage.g:1070:1: entryRuleBooleanObject returns [EObject current=null] : iv_ruleBooleanObject= ruleBooleanObject EOF ; 5087 // InternalSolverLanguage.g:1808:1: entryRuleCall returns [EObject current=null] : iv_ruleCall= ruleCall EOF ;
3228 public final EObject entryRuleBooleanObject() throws RecognitionException { 5088 public final EObject entryRuleCall() throws RecognitionException {
3229 EObject current = null; 5089 EObject current = null;
3230 5090
3231 EObject iv_ruleBooleanObject = null; 5091 EObject iv_ruleCall = null;
3232 5092
3233 5093
3234 try { 5094 try {
3235 // InternalSolverLanguage.g:1070:54: (iv_ruleBooleanObject= ruleBooleanObject EOF ) 5095 // InternalSolverLanguage.g:1808:45: (iv_ruleCall= ruleCall EOF )
3236 // InternalSolverLanguage.g:1071:2: iv_ruleBooleanObject= ruleBooleanObject EOF 5096 // InternalSolverLanguage.g:1809:2: iv_ruleCall= ruleCall EOF
3237 { 5097 {
3238 newCompositeNode(grammarAccess.getBooleanObjectRule()); 5098 if ( state.backtracking==0 ) {
5099 newCompositeNode(grammarAccess.getCallRule());
5100 }
3239 pushFollow(FOLLOW_1); 5101 pushFollow(FOLLOW_1);
3240 iv_ruleBooleanObject=ruleBooleanObject(); 5102 iv_ruleCall=ruleCall();
3241 5103
3242 state._fsp--; 5104 state._fsp--;
3243 5105 if (state.failed) return current;
3244 current =iv_ruleBooleanObject; 5106 if ( state.backtracking==0 ) {
3245 match(input,EOF,FOLLOW_2); 5107 current =iv_ruleCall;
5108 }
5109 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3246 5110
3247 } 5111 }
3248 5112
@@ -3256,49 +5120,184 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3256 } 5120 }
3257 return current; 5121 return current;
3258 } 5122 }
3259 // $ANTLR end "entryRuleBooleanObject" 5123 // $ANTLR end "entryRuleCall"
3260 5124
3261 5125
3262 // $ANTLR start "ruleBooleanObject" 5126 // $ANTLR start "ruleCall"
3263 // InternalSolverLanguage.g:1077:1: ruleBooleanObject returns [EObject current=null] : ( (lv_value_0_0= ruleBooleanValue ) ) ; 5127 // InternalSolverLanguage.g:1815:1: ruleCall returns [EObject current=null] : ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_STAR ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) ;
3264 public final EObject ruleBooleanObject() throws RecognitionException { 5128 public final EObject ruleCall() throws RecognitionException {
3265 EObject current = null; 5129 EObject current = null;
3266 5130
3267 EObject lv_value_0_0 = null; 5131 Token lv_transitiveClosure_1_0=null;
5132 Token lv_reflexiveTransitiveClosure_2_0=null;
5133 EObject lv_functor_0_0 = null;
5134
5135 EObject lv_argumentList_3_0 = null;
3268 5136
3269 5137
3270 5138
3271 enterRule(); 5139 enterRule();
3272 5140
3273 try { 5141 try {
3274 // InternalSolverLanguage.g:1083:2: ( ( (lv_value_0_0= ruleBooleanValue ) ) ) 5142 // InternalSolverLanguage.g:1821:2: ( ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_STAR ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) ) )
3275 // InternalSolverLanguage.g:1084:2: ( (lv_value_0_0= ruleBooleanValue ) ) 5143 // InternalSolverLanguage.g:1822:2: ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_STAR ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) )
3276 { 5144 {
3277 // InternalSolverLanguage.g:1084:2: ( (lv_value_0_0= ruleBooleanValue ) ) 5145 // InternalSolverLanguage.g:1822:2: ( ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_STAR ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) ) )
3278 // InternalSolverLanguage.g:1085:3: (lv_value_0_0= ruleBooleanValue ) 5146 // InternalSolverLanguage.g:1823:3: ( (lv_functor_0_0= ruleReference ) ) ( ( (lv_transitiveClosure_1_0= RULE_STAR ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) ) )? ( (lv_argumentList_3_0= ruleArgumentList ) )
3279 { 5147 {
3280 // InternalSolverLanguage.g:1085:3: (lv_value_0_0= ruleBooleanValue ) 5148 // InternalSolverLanguage.g:1823:3: ( (lv_functor_0_0= ruleReference ) )
3281 // InternalSolverLanguage.g:1086:4: lv_value_0_0= ruleBooleanValue 5149 // InternalSolverLanguage.g:1824:4: (lv_functor_0_0= ruleReference )
3282 { 5150 {
5151 // InternalSolverLanguage.g:1824:4: (lv_functor_0_0= ruleReference )
5152 // InternalSolverLanguage.g:1825:5: lv_functor_0_0= ruleReference
5153 {
5154 if ( state.backtracking==0 ) {
5155
5156 newCompositeNode(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0());
5157
5158 }
5159 pushFollow(FOLLOW_31);
5160 lv_functor_0_0=ruleReference();
5161
5162 state._fsp--;
5163 if (state.failed) return current;
5164 if ( state.backtracking==0 ) {
5165
5166 if (current==null) {
5167 current = createModelElementForParent(grammarAccess.getCallRule());
5168 }
5169 set(
5170 current,
5171 "functor",
5172 lv_functor_0_0,
5173 "org.eclipse.viatra.solver.language.SolverLanguage.Reference");
5174 afterParserOrEnumRuleCall();
5175
5176 }
5177
5178 }
5179
5180
5181 }
3283 5182
3284 newCompositeNode(grammarAccess.getBooleanObjectAccess().getValueBooleanValueParserRuleCall_0()); 5183 // InternalSolverLanguage.g:1842:3: ( ( (lv_transitiveClosure_1_0= RULE_STAR ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) ) )?
3285 5184 int alt22=3;
5185 int LA22_0 = input.LA(1);
5186
5187 if ( (LA22_0==RULE_STAR) ) {
5188 alt22=1;
5189 }
5190 else if ( (LA22_0==RULE_PLUS) ) {
5191 alt22=2;
5192 }
5193 switch (alt22) {
5194 case 1 :
5195 // InternalSolverLanguage.g:1843:4: ( (lv_transitiveClosure_1_0= RULE_STAR ) )
5196 {
5197 // InternalSolverLanguage.g:1843:4: ( (lv_transitiveClosure_1_0= RULE_STAR ) )
5198 // InternalSolverLanguage.g:1844:5: (lv_transitiveClosure_1_0= RULE_STAR )
5199 {
5200 // InternalSolverLanguage.g:1844:5: (lv_transitiveClosure_1_0= RULE_STAR )
5201 // InternalSolverLanguage.g:1845:6: lv_transitiveClosure_1_0= RULE_STAR
5202 {
5203 lv_transitiveClosure_1_0=(Token)match(input,RULE_STAR,FOLLOW_10); if (state.failed) return current;
5204 if ( state.backtracking==0 ) {
5205
5206 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getCallAccess().getTransitiveClosureSTARTerminalRuleCall_1_0_0());
5207
5208 }
5209 if ( state.backtracking==0 ) {
5210
5211 if (current==null) {
5212 current = createModelElement(grammarAccess.getCallRule());
5213 }
5214 setWithLastConsumed(
5215 current,
5216 "transitiveClosure",
5217 true,
5218 "org.eclipse.viatra.solver.language.SolverLanguage.STAR");
5219
5220 }
5221
5222 }
5223
5224
5225 }
5226
5227
5228 }
5229 break;
5230 case 2 :
5231 // InternalSolverLanguage.g:1862:4: ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) )
5232 {
5233 // InternalSolverLanguage.g:1862:4: ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) )
5234 // InternalSolverLanguage.g:1863:5: (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS )
5235 {
5236 // InternalSolverLanguage.g:1863:5: (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS )
5237 // InternalSolverLanguage.g:1864:6: lv_reflexiveTransitiveClosure_2_0= RULE_PLUS
5238 {
5239 lv_reflexiveTransitiveClosure_2_0=(Token)match(input,RULE_PLUS,FOLLOW_10); if (state.failed) return current;
5240 if ( state.backtracking==0 ) {
5241
5242 newLeafNode(lv_reflexiveTransitiveClosure_2_0, grammarAccess.getCallAccess().getReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0());
5243
5244 }
5245 if ( state.backtracking==0 ) {
5246
5247 if (current==null) {
5248 current = createModelElement(grammarAccess.getCallRule());
5249 }
5250 setWithLastConsumed(
5251 current,
5252 "reflexiveTransitiveClosure",
5253 true,
5254 "org.eclipse.viatra.solver.language.SolverLanguage.PLUS");
5255
5256 }
5257
5258 }
5259
5260
5261 }
5262
5263
5264 }
5265 break;
5266
5267 }
5268
5269 // InternalSolverLanguage.g:1881:3: ( (lv_argumentList_3_0= ruleArgumentList ) )
5270 // InternalSolverLanguage.g:1882:4: (lv_argumentList_3_0= ruleArgumentList )
5271 {
5272 // InternalSolverLanguage.g:1882:4: (lv_argumentList_3_0= ruleArgumentList )
5273 // InternalSolverLanguage.g:1883:5: lv_argumentList_3_0= ruleArgumentList
5274 {
5275 if ( state.backtracking==0 ) {
5276
5277 newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_2_0());
5278
5279 }
3286 pushFollow(FOLLOW_2); 5280 pushFollow(FOLLOW_2);
3287 lv_value_0_0=ruleBooleanValue(); 5281 lv_argumentList_3_0=ruleArgumentList();
3288 5282
3289 state._fsp--; 5283 state._fsp--;
5284 if (state.failed) return current;
5285 if ( state.backtracking==0 ) {
5286
5287 if (current==null) {
5288 current = createModelElementForParent(grammarAccess.getCallRule());
5289 }
5290 set(
5291 current,
5292 "argumentList",
5293 lv_argumentList_3_0,
5294 "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
5295 afterParserOrEnumRuleCall();
5296
5297 }
3290 5298
5299 }
3291 5300
3292 if (current==null) {
3293 current = createModelElementForParent(grammarAccess.getBooleanObjectRule());
3294 }
3295 set(
3296 current,
3297 "value",
3298 lv_value_0_0,
3299 "org.eclipse.viatra.solver.language.SolverLanguage.BooleanValue");
3300 afterParserOrEnumRuleCall();
3301
3302 5301
3303 } 5302 }
3304 5303
@@ -3308,9 +5307,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3308 5307
3309 } 5308 }
3310 5309
5310 if ( state.backtracking==0 ) {
3311 5311
3312 leaveRule(); 5312 leaveRule();
3313 5313
5314 }
3314 } 5315 }
3315 5316
3316 catch (RecognitionException re) { 5317 catch (RecognitionException re) {
@@ -3321,29 +5322,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3321 } 5322 }
3322 return current; 5323 return current;
3323 } 5324 }
3324 // $ANTLR end "ruleBooleanObject" 5325 // $ANTLR end "ruleCall"
3325 5326
3326 5327
3327 // $ANTLR start "entryRuleIntObject" 5328 // $ANTLR start "entryRuleArgumentList"
3328 // InternalSolverLanguage.g:1106:1: entryRuleIntObject returns [EObject current=null] : iv_ruleIntObject= ruleIntObject EOF ; 5329 // InternalSolverLanguage.g:1904:1: entryRuleArgumentList returns [EObject current=null] : iv_ruleArgumentList= ruleArgumentList EOF ;
3329 public final EObject entryRuleIntObject() throws RecognitionException { 5330 public final EObject entryRuleArgumentList() throws RecognitionException {
3330 EObject current = null; 5331 EObject current = null;
3331 5332
3332 EObject iv_ruleIntObject = null; 5333 EObject iv_ruleArgumentList = null;
3333 5334
3334 5335
3335 try { 5336 try {
3336 // InternalSolverLanguage.g:1106:50: (iv_ruleIntObject= ruleIntObject EOF ) 5337 // InternalSolverLanguage.g:1904:53: (iv_ruleArgumentList= ruleArgumentList EOF )
3337 // InternalSolverLanguage.g:1107:2: iv_ruleIntObject= ruleIntObject EOF 5338 // InternalSolverLanguage.g:1905:2: iv_ruleArgumentList= ruleArgumentList EOF
3338 { 5339 {
3339 newCompositeNode(grammarAccess.getIntObjectRule()); 5340 if ( state.backtracking==0 ) {
5341 newCompositeNode(grammarAccess.getArgumentListRule());
5342 }
3340 pushFollow(FOLLOW_1); 5343 pushFollow(FOLLOW_1);
3341 iv_ruleIntObject=ruleIntObject(); 5344 iv_ruleArgumentList=ruleArgumentList();
3342 5345
3343 state._fsp--; 5346 state._fsp--;
3344 5347 if (state.failed) return current;
3345 current =iv_ruleIntObject; 5348 if ( state.backtracking==0 ) {
3346 match(input,EOF,FOLLOW_2); 5349 current =iv_ruleArgumentList;
5350 }
5351 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3347 5352
3348 } 5353 }
3349 5354
@@ -3357,61 +5362,185 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3357 } 5362 }
3358 return current; 5363 return current;
3359 } 5364 }
3360 // $ANTLR end "entryRuleIntObject" 5365 // $ANTLR end "entryRuleArgumentList"
3361 5366
3362 5367
3363 // $ANTLR start "ruleIntObject" 5368 // $ANTLR start "ruleArgumentList"
3364 // InternalSolverLanguage.g:1113:1: ruleIntObject returns [EObject current=null] : ( (lv_value_0_0= ruleINTLiteral ) ) ; 5369 // InternalSolverLanguage.g:1911:1: ruleArgumentList returns [EObject current=null] : ( () otherlv_1= '(' ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= ')' ) ;
3365 public final EObject ruleIntObject() throws RecognitionException { 5370 public final EObject ruleArgumentList() throws RecognitionException {
3366 EObject current = null; 5371 EObject current = null;
3367 5372
3368 AntlrDatatypeRuleToken lv_value_0_0 = null; 5373 Token otherlv_1=null;
5374 Token otherlv_3=null;
5375 Token otherlv_5=null;
5376 EObject lv_arguments_2_0 = null;
5377
5378 EObject lv_arguments_4_0 = null;
3369 5379
3370 5380
3371 5381
3372 enterRule(); 5382 enterRule();
3373 5383
3374 try { 5384 try {
3375 // InternalSolverLanguage.g:1119:2: ( ( (lv_value_0_0= ruleINTLiteral ) ) ) 5385 // InternalSolverLanguage.g:1917:2: ( ( () otherlv_1= '(' ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= ')' ) )
3376 // InternalSolverLanguage.g:1120:2: ( (lv_value_0_0= ruleINTLiteral ) ) 5386 // InternalSolverLanguage.g:1918:2: ( () otherlv_1= '(' ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= ')' )
3377 { 5387 {
3378 // InternalSolverLanguage.g:1120:2: ( (lv_value_0_0= ruleINTLiteral ) ) 5388 // InternalSolverLanguage.g:1918:2: ( () otherlv_1= '(' ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= ')' )
3379 // InternalSolverLanguage.g:1121:3: (lv_value_0_0= ruleINTLiteral ) 5389 // InternalSolverLanguage.g:1919:3: () otherlv_1= '(' ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= ')'
3380 { 5390 {
3381 // InternalSolverLanguage.g:1121:3: (lv_value_0_0= ruleINTLiteral ) 5391 // InternalSolverLanguage.g:1919:3: ()
3382 // InternalSolverLanguage.g:1122:4: lv_value_0_0= ruleINTLiteral 5392 // InternalSolverLanguage.g:1920:4:
3383 { 5393 {
5394 if ( state.backtracking==0 ) {
3384 5395
3385 newCompositeNode(grammarAccess.getIntObjectAccess().getValueINTLiteralParserRuleCall_0()); 5396 current = forceCreateModelElement(
3386 5397 grammarAccess.getArgumentListAccess().getArgumentListAction_0(),
3387 pushFollow(FOLLOW_2); 5398 current);
3388 lv_value_0_0=ruleINTLiteral(); 5399
5400 }
3389 5401
3390 state._fsp--; 5402 }
5403
5404 otherlv_1=(Token)match(input,33,FOLLOW_32); if (state.failed) return current;
5405 if ( state.backtracking==0 ) {
5406
5407 newLeafNode(otherlv_1, grammarAccess.getArgumentListAccess().getLeftParenthesisKeyword_1());
5408
5409 }
5410 // InternalSolverLanguage.g:1930:3: ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )?
5411 int alt24=2;
5412 int LA24_0 = input.LA(1);
5413
5414 if ( ((LA24_0>=RULE_STRING && LA24_0<=RULE_QUOTED_ID)||LA24_0==19||LA24_0==29||LA24_0==33||(LA24_0>=35 && LA24_0<=36)||(LA24_0>=39 && LA24_0<=40)||(LA24_0>=56 && LA24_0<=57)||(LA24_0>=60 && LA24_0<=72)) ) {
5415 alt24=1;
5416 }
5417 switch (alt24) {
5418 case 1 :
5419 // InternalSolverLanguage.g:1931:4: ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )*
5420 {
5421 // InternalSolverLanguage.g:1931:4: ( (lv_arguments_2_0= ruleArgument ) )
5422 // InternalSolverLanguage.g:1932:5: (lv_arguments_2_0= ruleArgument )
5423 {
5424 // InternalSolverLanguage.g:1932:5: (lv_arguments_2_0= ruleArgument )
5425 // InternalSolverLanguage.g:1933:6: lv_arguments_2_0= ruleArgument
5426 {
5427 if ( state.backtracking==0 ) {
5428
5429 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_0_0());
5430
5431 }
5432 pushFollow(FOLLOW_33);
5433 lv_arguments_2_0=ruleArgument();
5434
5435 state._fsp--;
5436 if (state.failed) return current;
5437 if ( state.backtracking==0 ) {
5438
5439 if (current==null) {
5440 current = createModelElementForParent(grammarAccess.getArgumentListRule());
5441 }
5442 add(
5443 current,
5444 "arguments",
5445 lv_arguments_2_0,
5446 "org.eclipse.viatra.solver.language.SolverLanguage.Argument");
5447 afterParserOrEnumRuleCall();
5448
5449 }
5450
5451 }
5452
5453
5454 }
5455
5456 // InternalSolverLanguage.g:1950:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )*
5457 loop23:
5458 do {
5459 int alt23=2;
5460 int LA23_0 = input.LA(1);
5461
5462 if ( (LA23_0==28) ) {
5463 alt23=1;
5464 }
5465
5466
5467 switch (alt23) {
5468 case 1 :
5469 // InternalSolverLanguage.g:1951:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) )
5470 {
5471 otherlv_3=(Token)match(input,28,FOLLOW_34); if (state.failed) return current;
5472 if ( state.backtracking==0 ) {
5473
5474 newLeafNode(otherlv_3, grammarAccess.getArgumentListAccess().getCommaKeyword_2_1_0());
5475
5476 }
5477 // InternalSolverLanguage.g:1955:5: ( (lv_arguments_4_0= ruleArgument ) )
5478 // InternalSolverLanguage.g:1956:6: (lv_arguments_4_0= ruleArgument )
5479 {
5480 // InternalSolverLanguage.g:1956:6: (lv_arguments_4_0= ruleArgument )
5481 // InternalSolverLanguage.g:1957:7: lv_arguments_4_0= ruleArgument
5482 {
5483 if ( state.backtracking==0 ) {
5484
5485 newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_1_1_0());
5486
5487 }
5488 pushFollow(FOLLOW_33);
5489 lv_arguments_4_0=ruleArgument();
5490
5491 state._fsp--;
5492 if (state.failed) return current;
5493 if ( state.backtracking==0 ) {
5494
5495 if (current==null) {
5496 current = createModelElementForParent(grammarAccess.getArgumentListRule());
5497 }
5498 add(
5499 current,
5500 "arguments",
5501 lv_arguments_4_0,
5502 "org.eclipse.viatra.solver.language.SolverLanguage.Argument");
5503 afterParserOrEnumRuleCall();
5504
5505 }
5506
5507 }
5508
5509
5510 }
5511
5512
5513 }
5514 break;
5515
5516 default :
5517 break loop23;
5518 }
5519 } while (true);
3391 5520
3392 5521
3393 if (current==null) { 5522 }
3394 current = createModelElementForParent(grammarAccess.getIntObjectRule()); 5523 break;
3395 }
3396 set(
3397 current,
3398 "value",
3399 lv_value_0_0,
3400 "org.eclipse.viatra.solver.language.SolverLanguage.INTLiteral");
3401 afterParserOrEnumRuleCall();
3402
3403 5524
3404 } 5525 }
3405 5526
5527 otherlv_5=(Token)match(input,34,FOLLOW_2); if (state.failed) return current;
5528 if ( state.backtracking==0 ) {
5529
5530 newLeafNode(otherlv_5, grammarAccess.getArgumentListAccess().getRightParenthesisKeyword_3());
5531
5532 }
3406 5533
3407 } 5534 }
3408 5535
3409 5536
3410 } 5537 }
3411 5538
5539 if ( state.backtracking==0 ) {
3412 5540
3413 leaveRule(); 5541 leaveRule();
3414 5542
5543 }
3415 } 5544 }
3416 5545
3417 catch (RecognitionException re) { 5546 catch (RecognitionException re) {
@@ -3422,29 +5551,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3422 } 5551 }
3423 return current; 5552 return current;
3424 } 5553 }
3425 // $ANTLR end "ruleIntObject" 5554 // $ANTLR end "ruleArgumentList"
3426 5555
3427 5556
3428 // $ANTLR start "entryRuleRealObject" 5557 // $ANTLR start "entryRuleArgument"
3429 // InternalSolverLanguage.g:1142:1: entryRuleRealObject returns [EObject current=null] : iv_ruleRealObject= ruleRealObject EOF ; 5558 // InternalSolverLanguage.g:1984:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ;
3430 public final EObject entryRuleRealObject() throws RecognitionException { 5559 public final EObject entryRuleArgument() throws RecognitionException {
3431 EObject current = null; 5560 EObject current = null;
3432 5561
3433 EObject iv_ruleRealObject = null; 5562 EObject iv_ruleArgument = null;
3434 5563
3435 5564
3436 try { 5565 try {
3437 // InternalSolverLanguage.g:1142:51: (iv_ruleRealObject= ruleRealObject EOF ) 5566 // InternalSolverLanguage.g:1984:49: (iv_ruleArgument= ruleArgument EOF )
3438 // InternalSolverLanguage.g:1143:2: iv_ruleRealObject= ruleRealObject EOF 5567 // InternalSolverLanguage.g:1985:2: iv_ruleArgument= ruleArgument EOF
3439 { 5568 {
3440 newCompositeNode(grammarAccess.getRealObjectRule()); 5569 if ( state.backtracking==0 ) {
5570 newCompositeNode(grammarAccess.getArgumentRule());
5571 }
3441 pushFollow(FOLLOW_1); 5572 pushFollow(FOLLOW_1);
3442 iv_ruleRealObject=ruleRealObject(); 5573 iv_ruleArgument=ruleArgument();
3443 5574
3444 state._fsp--; 5575 state._fsp--;
3445 5576 if (state.failed) return current;
3446 current =iv_ruleRealObject; 5577 if ( state.backtracking==0 ) {
3447 match(input,EOF,FOLLOW_2); 5578 current =iv_ruleArgument;
5579 }
5580 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3448 5581
3449 } 5582 }
3450 5583
@@ -3458,61 +5591,133 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3458 } 5591 }
3459 return current; 5592 return current;
3460 } 5593 }
3461 // $ANTLR end "entryRuleRealObject" 5594 // $ANTLR end "entryRuleArgument"
3462 5595
3463 5596
3464 // $ANTLR start "ruleRealObject" 5597 // $ANTLR start "ruleArgument"
3465 // InternalSolverLanguage.g:1149:1: ruleRealObject returns [EObject current=null] : ( (lv_value_0_0= ruleREALLiteral ) ) ; 5598 // InternalSolverLanguage.g:1991:1: ruleArgument returns [EObject current=null] : (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) ;
3466 public final EObject ruleRealObject() throws RecognitionException { 5599 public final EObject ruleArgument() throws RecognitionException {
3467 EObject current = null; 5600 EObject current = null;
3468 5601
3469 AntlrDatatypeRuleToken lv_value_0_0 = null; 5602 EObject this_ExpressionArgument_0 = null;
5603
5604 EObject this_StarArgument_1 = null;
5605
5606 EObject this_TypedArgument_2 = null;
5607
5608 EObject this_TypedStarArgument_3 = null;
3470 5609
3471 5610
3472 5611
3473 enterRule(); 5612 enterRule();
3474 5613
3475 try { 5614 try {
3476 // InternalSolverLanguage.g:1155:2: ( ( (lv_value_0_0= ruleREALLiteral ) ) ) 5615 // InternalSolverLanguage.g:1997:2: ( (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) )
3477 // InternalSolverLanguage.g:1156:2: ( (lv_value_0_0= ruleREALLiteral ) ) 5616 // InternalSolverLanguage.g:1998:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument )
3478 {
3479 // InternalSolverLanguage.g:1156:2: ( (lv_value_0_0= ruleREALLiteral ) )
3480 // InternalSolverLanguage.g:1157:3: (lv_value_0_0= ruleREALLiteral )
3481 {
3482 // InternalSolverLanguage.g:1157:3: (lv_value_0_0= ruleREALLiteral )
3483 // InternalSolverLanguage.g:1158:4: lv_value_0_0= ruleREALLiteral
3484 { 5617 {
5618 // InternalSolverLanguage.g:1998:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument )
5619 int alt25=4;
5620 alt25 = dfa25.predict(input);
5621 switch (alt25) {
5622 case 1 :
5623 // InternalSolverLanguage.g:1999:3: this_ExpressionArgument_0= ruleExpressionArgument
5624 {
5625 if ( state.backtracking==0 ) {
3485 5626
3486 newCompositeNode(grammarAccess.getRealObjectAccess().getValueREALLiteralParserRuleCall_0()); 5627 newCompositeNode(grammarAccess.getArgumentAccess().getExpressionArgumentParserRuleCall_0());
3487 5628
3488 pushFollow(FOLLOW_2); 5629 }
3489 lv_value_0_0=ruleREALLiteral(); 5630 pushFollow(FOLLOW_2);
5631 this_ExpressionArgument_0=ruleExpressionArgument();
3490 5632
3491 state._fsp--; 5633 state._fsp--;
5634 if (state.failed) return current;
5635 if ( state.backtracking==0 ) {
3492 5636
5637 current = this_ExpressionArgument_0;
5638 afterParserOrEnumRuleCall();
5639
5640 }
3493 5641
3494 if (current==null) { 5642 }
3495 current = createModelElementForParent(grammarAccess.getRealObjectRule()); 5643 break;
3496 } 5644 case 2 :
3497 set( 5645 // InternalSolverLanguage.g:2008:3: this_StarArgument_1= ruleStarArgument
3498 current, 5646 {
3499 "value", 5647 if ( state.backtracking==0 ) {
3500 lv_value_0_0,
3501 "org.eclipse.viatra.solver.language.SolverLanguage.REALLiteral");
3502 afterParserOrEnumRuleCall();
3503
3504 5648
3505 } 5649 newCompositeNode(grammarAccess.getArgumentAccess().getStarArgumentParserRuleCall_1());
5650
5651 }
5652 pushFollow(FOLLOW_2);
5653 this_StarArgument_1=ruleStarArgument();
3506 5654
5655 state._fsp--;
5656 if (state.failed) return current;
5657 if ( state.backtracking==0 ) {
5658
5659 current = this_StarArgument_1;
5660 afterParserOrEnumRuleCall();
5661
5662 }
5663
5664 }
5665 break;
5666 case 3 :
5667 // InternalSolverLanguage.g:2017:3: this_TypedArgument_2= ruleTypedArgument
5668 {
5669 if ( state.backtracking==0 ) {
5670
5671 newCompositeNode(grammarAccess.getArgumentAccess().getTypedArgumentParserRuleCall_2());
5672
5673 }
5674 pushFollow(FOLLOW_2);
5675 this_TypedArgument_2=ruleTypedArgument();
5676
5677 state._fsp--;
5678 if (state.failed) return current;
5679 if ( state.backtracking==0 ) {
5680
5681 current = this_TypedArgument_2;
5682 afterParserOrEnumRuleCall();
5683
5684 }
5685
5686 }
5687 break;
5688 case 4 :
5689 // InternalSolverLanguage.g:2026:3: this_TypedStarArgument_3= ruleTypedStarArgument
5690 {
5691 if ( state.backtracking==0 ) {
5692
5693 newCompositeNode(grammarAccess.getArgumentAccess().getTypedStarArgumentParserRuleCall_3());
5694
5695 }
5696 pushFollow(FOLLOW_2);
5697 this_TypedStarArgument_3=ruleTypedStarArgument();
5698
5699 state._fsp--;
5700 if (state.failed) return current;
5701 if ( state.backtracking==0 ) {
5702
5703 current = this_TypedStarArgument_3;
5704 afterParserOrEnumRuleCall();
5705
5706 }
5707
5708 }
5709 break;
3507 5710
3508 } 5711 }
3509 5712
3510 5713
3511 } 5714 }
3512 5715
5716 if ( state.backtracking==0 ) {
3513 5717
3514 leaveRule(); 5718 leaveRule();
3515 5719
5720 }
3516 } 5721 }
3517 5722
3518 catch (RecognitionException re) { 5723 catch (RecognitionException re) {
@@ -3523,29 +5728,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3523 } 5728 }
3524 return current; 5729 return current;
3525 } 5730 }
3526 // $ANTLR end "ruleRealObject" 5731 // $ANTLR end "ruleArgument"
3527 5732
3528 5733
3529 // $ANTLR start "entryRuleStringObject" 5734 // $ANTLR start "entryRuleExpressionArgument"
3530 // InternalSolverLanguage.g:1178:1: entryRuleStringObject returns [EObject current=null] : iv_ruleStringObject= ruleStringObject EOF ; 5735 // InternalSolverLanguage.g:2038:1: entryRuleExpressionArgument returns [EObject current=null] : iv_ruleExpressionArgument= ruleExpressionArgument EOF ;
3531 public final EObject entryRuleStringObject() throws RecognitionException { 5736 public final EObject entryRuleExpressionArgument() throws RecognitionException {
3532 EObject current = null; 5737 EObject current = null;
3533 5738
3534 EObject iv_ruleStringObject = null; 5739 EObject iv_ruleExpressionArgument = null;
3535 5740
3536 5741
3537 try { 5742 try {
3538 // InternalSolverLanguage.g:1178:53: (iv_ruleStringObject= ruleStringObject EOF ) 5743 // InternalSolverLanguage.g:2038:59: (iv_ruleExpressionArgument= ruleExpressionArgument EOF )
3539 // InternalSolverLanguage.g:1179:2: iv_ruleStringObject= ruleStringObject EOF 5744 // InternalSolverLanguage.g:2039:2: iv_ruleExpressionArgument= ruleExpressionArgument EOF
3540 { 5745 {
3541 newCompositeNode(grammarAccess.getStringObjectRule()); 5746 if ( state.backtracking==0 ) {
5747 newCompositeNode(grammarAccess.getExpressionArgumentRule());
5748 }
3542 pushFollow(FOLLOW_1); 5749 pushFollow(FOLLOW_1);
3543 iv_ruleStringObject=ruleStringObject(); 5750 iv_ruleExpressionArgument=ruleExpressionArgument();
3544 5751
3545 state._fsp--; 5752 state._fsp--;
3546 5753 if (state.failed) return current;
3547 current =iv_ruleStringObject; 5754 if ( state.backtracking==0 ) {
3548 match(input,EOF,FOLLOW_2); 5755 current =iv_ruleExpressionArgument;
5756 }
5757 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3549 5758
3550 } 5759 }
3551 5760
@@ -3559,43 +5768,53 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3559 } 5768 }
3560 return current; 5769 return current;
3561 } 5770 }
3562 // $ANTLR end "entryRuleStringObject" 5771 // $ANTLR end "entryRuleExpressionArgument"
3563 5772
3564 5773
3565 // $ANTLR start "ruleStringObject" 5774 // $ANTLR start "ruleExpressionArgument"
3566 // InternalSolverLanguage.g:1185:1: ruleStringObject returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ; 5775 // InternalSolverLanguage.g:2045:1: ruleExpressionArgument returns [EObject current=null] : ( (lv_body_0_0= ruleComparisonExpression ) ) ;
3567 public final EObject ruleStringObject() throws RecognitionException { 5776 public final EObject ruleExpressionArgument() throws RecognitionException {
3568 EObject current = null; 5777 EObject current = null;
3569 5778
3570 Token lv_value_0_0=null; 5779 EObject lv_body_0_0 = null;
5780
3571 5781
3572 5782
3573 enterRule(); 5783 enterRule();
3574 5784
3575 try { 5785 try {
3576 // InternalSolverLanguage.g:1191:2: ( ( (lv_value_0_0= RULE_STRING ) ) ) 5786 // InternalSolverLanguage.g:2051:2: ( ( (lv_body_0_0= ruleComparisonExpression ) ) )
3577 // InternalSolverLanguage.g:1192:2: ( (lv_value_0_0= RULE_STRING ) ) 5787 // InternalSolverLanguage.g:2052:2: ( (lv_body_0_0= ruleComparisonExpression ) )
3578 { 5788 {
3579 // InternalSolverLanguage.g:1192:2: ( (lv_value_0_0= RULE_STRING ) ) 5789 // InternalSolverLanguage.g:2052:2: ( (lv_body_0_0= ruleComparisonExpression ) )
3580 // InternalSolverLanguage.g:1193:3: (lv_value_0_0= RULE_STRING ) 5790 // InternalSolverLanguage.g:2053:3: (lv_body_0_0= ruleComparisonExpression )
3581 { 5791 {
3582 // InternalSolverLanguage.g:1193:3: (lv_value_0_0= RULE_STRING ) 5792 // InternalSolverLanguage.g:2053:3: (lv_body_0_0= ruleComparisonExpression )
3583 // InternalSolverLanguage.g:1194:4: lv_value_0_0= RULE_STRING 5793 // InternalSolverLanguage.g:2054:4: lv_body_0_0= ruleComparisonExpression
3584 { 5794 {
3585 lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); 5795 if ( state.backtracking==0 ) {
5796
5797 newCompositeNode(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0());
5798
5799 }
5800 pushFollow(FOLLOW_2);
5801 lv_body_0_0=ruleComparisonExpression();
3586 5802
3587 newLeafNode(lv_value_0_0, grammarAccess.getStringObjectAccess().getValueSTRINGTerminalRuleCall_0()); 5803 state._fsp--;
3588 5804 if (state.failed) return current;
5805 if ( state.backtracking==0 ) {
3589 5806
3590 if (current==null) { 5807 if (current==null) {
3591 current = createModelElement(grammarAccess.getStringObjectRule()); 5808 current = createModelElementForParent(grammarAccess.getExpressionArgumentRule());
3592 } 5809 }
3593 setWithLastConsumed( 5810 set(
3594 current, 5811 current,
3595 "value", 5812 "body",
3596 lv_value_0_0, 5813 lv_body_0_0,
3597 "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); 5814 "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression");
3598 5815 afterParserOrEnumRuleCall();
5816
5817 }
3599 5818
3600 } 5819 }
3601 5820
@@ -3605,9 +5824,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3605 5824
3606 } 5825 }
3607 5826
5827 if ( state.backtracking==0 ) {
3608 5828
3609 leaveRule(); 5829 leaveRule();
3610 5830
5831 }
3611 } 5832 }
3612 5833
3613 catch (RecognitionException re) { 5834 catch (RecognitionException re) {
@@ -3618,29 +5839,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3618 } 5839 }
3619 return current; 5840 return current;
3620 } 5841 }
3621 // $ANTLR end "ruleStringObject" 5842 // $ANTLR end "ruleExpressionArgument"
3622 5843
3623 5844
3624 // $ANTLR start "entryRulePredicate" 5845 // $ANTLR start "entryRuleStarArgument"
3625 // InternalSolverLanguage.g:1213:1: entryRulePredicate returns [EObject current=null] : iv_rulePredicate= rulePredicate EOF ; 5846 // InternalSolverLanguage.g:2074:1: entryRuleStarArgument returns [EObject current=null] : iv_ruleStarArgument= ruleStarArgument EOF ;
3626 public final EObject entryRulePredicate() throws RecognitionException { 5847 public final EObject entryRuleStarArgument() throws RecognitionException {
3627 EObject current = null; 5848 EObject current = null;
3628 5849
3629 EObject iv_rulePredicate = null; 5850 EObject iv_ruleStarArgument = null;
3630 5851
3631 5852
3632 try { 5853 try {
3633 // InternalSolverLanguage.g:1213:50: (iv_rulePredicate= rulePredicate EOF ) 5854 // InternalSolverLanguage.g:2074:53: (iv_ruleStarArgument= ruleStarArgument EOF )
3634 // InternalSolverLanguage.g:1214:2: iv_rulePredicate= rulePredicate EOF 5855 // InternalSolverLanguage.g:2075:2: iv_ruleStarArgument= ruleStarArgument EOF
3635 { 5856 {
3636 newCompositeNode(grammarAccess.getPredicateRule()); 5857 if ( state.backtracking==0 ) {
5858 newCompositeNode(grammarAccess.getStarArgumentRule());
5859 }
3637 pushFollow(FOLLOW_1); 5860 pushFollow(FOLLOW_1);
3638 iv_rulePredicate=rulePredicate(); 5861 iv_ruleStarArgument=ruleStarArgument();
3639 5862
3640 state._fsp--; 5863 state._fsp--;
3641 5864 if (state.failed) return current;
3642 current =iv_rulePredicate; 5865 if ( state.backtracking==0 ) {
3643 match(input,EOF,FOLLOW_2); 5866 current =iv_ruleStarArgument;
5867 }
5868 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3644 5869
3645 } 5870 }
3646 5871
@@ -3654,388 +5879,431 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
3654 } 5879 }
3655 return current; 5880 return current;
3656 } 5881 }
3657 // $ANTLR end "entryRulePredicate" 5882 // $ANTLR end "entryRuleStarArgument"
3658 5883
3659 5884
3660 // $ANTLR start "rulePredicate" 5885 // $ANTLR start "ruleStarArgument"
3661 // InternalSolverLanguage.g:1220:1: rulePredicate returns [EObject current=null] : ( ( (lv_isError_0_0= 'error' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? otherlv_6= ')' )? otherlv_7= ':-' (otherlv_8= 'false' | ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* ) ) otherlv_12= '.' ) ; 5886 // InternalSolverLanguage.g:2081:1: ruleStarArgument returns [EObject current=null] : ( () otherlv_1= '*' ) ;
3662 public final EObject rulePredicate() throws RecognitionException { 5887 public final EObject ruleStarArgument() throws RecognitionException {
3663 EObject current = null; 5888 EObject current = null;
3664 5889
3665 Token lv_isError_0_0=null; 5890 Token otherlv_1=null;
3666 Token otherlv_2=null;
3667 Token otherlv_4=null;
3668 Token otherlv_6=null;
3669 Token otherlv_7=null;
3670 Token otherlv_8=null;
3671 Token otherlv_10=null;
3672 Token otherlv_12=null;
3673 EObject lv_symbol_1_0 = null;
3674 5891
3675 EObject lv_parameters_3_0 = null;
3676 5892
3677 EObject lv_parameters_5_0 = null; 5893 enterRule();
3678 5894
3679 EObject lv_bodies_9_0 = null; 5895 try {
5896 // InternalSolverLanguage.g:2087:2: ( ( () otherlv_1= '*' ) )
5897 // InternalSolverLanguage.g:2088:2: ( () otherlv_1= '*' )
5898 {
5899 // InternalSolverLanguage.g:2088:2: ( () otherlv_1= '*' )
5900 // InternalSolverLanguage.g:2089:3: () otherlv_1= '*'
5901 {
5902 // InternalSolverLanguage.g:2089:3: ()
5903 // InternalSolverLanguage.g:2090:4:
5904 {
5905 if ( state.backtracking==0 ) {
3680 5906
3681 EObject lv_bodies_11_0 = null; 5907 current = forceCreateModelElement(
5908 grammarAccess.getStarArgumentAccess().getStarArgumentAction_0(),
5909 current);
5910
5911 }
3682 5912
5913 }
3683 5914
5915 otherlv_1=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
5916 if ( state.backtracking==0 ) {
5917
5918 newLeafNode(otherlv_1, grammarAccess.getStarArgumentAccess().getAsteriskKeyword_1());
5919
5920 }
5921
5922 }
5923
5924
5925 }
5926
5927 if ( state.backtracking==0 ) {
5928
5929 leaveRule();
5930
5931 }
5932 }
5933
5934 catch (RecognitionException re) {
5935 recover(input,re);
5936 appendSkippedTokens();
5937 }
5938 finally {
5939 }
5940 return current;
5941 }
5942 // $ANTLR end "ruleStarArgument"
5943
5944
5945 // $ANTLR start "entryRuleTypedArgument"
5946 // InternalSolverLanguage.g:2104:1: entryRuleTypedArgument returns [EObject current=null] : iv_ruleTypedArgument= ruleTypedArgument EOF ;
5947 public final EObject entryRuleTypedArgument() throws RecognitionException {
5948 EObject current = null;
5949
5950 EObject iv_ruleTypedArgument = null;
3684 5951
3685 enterRule();
3686 5952
3687 try { 5953 try {
3688 // InternalSolverLanguage.g:1226:2: ( ( ( (lv_isError_0_0= 'error' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? otherlv_6= ')' )? otherlv_7= ':-' (otherlv_8= 'false' | ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* ) ) otherlv_12= '.' ) ) 5954 // InternalSolverLanguage.g:2104:54: (iv_ruleTypedArgument= ruleTypedArgument EOF )
3689 // InternalSolverLanguage.g:1227:2: ( ( (lv_isError_0_0= 'error' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? otherlv_6= ')' )? otherlv_7= ':-' (otherlv_8= 'false' | ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* ) ) otherlv_12= '.' ) 5955 // InternalSolverLanguage.g:2105:2: iv_ruleTypedArgument= ruleTypedArgument EOF
3690 { 5956 {
3691 // InternalSolverLanguage.g:1227:2: ( ( (lv_isError_0_0= 'error' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? otherlv_6= ')' )? otherlv_7= ':-' (otherlv_8= 'false' | ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* ) ) otherlv_12= '.' ) 5957 if ( state.backtracking==0 ) {
3692 // InternalSolverLanguage.g:1228:3: ( (lv_isError_0_0= 'error' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? otherlv_6= ')' )? otherlv_7= ':-' (otherlv_8= 'false' | ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* ) ) otherlv_12= '.' 5958 newCompositeNode(grammarAccess.getTypedArgumentRule());
3693 { 5959 }
3694 // InternalSolverLanguage.g:1228:3: ( (lv_isError_0_0= 'error' ) )? 5960 pushFollow(FOLLOW_1);
3695 int alt17=2; 5961 iv_ruleTypedArgument=ruleTypedArgument();
3696 int LA17_0 = input.LA(1);
3697 5962
3698 if ( (LA17_0==16) ) { 5963 state._fsp--;
3699 alt17=1; 5964 if (state.failed) return current;
5965 if ( state.backtracking==0 ) {
5966 current =iv_ruleTypedArgument;
3700 } 5967 }
3701 switch (alt17) { 5968 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3702 case 1 :
3703 // InternalSolverLanguage.g:1229:4: (lv_isError_0_0= 'error' )
3704 {
3705 // InternalSolverLanguage.g:1229:4: (lv_isError_0_0= 'error' )
3706 // InternalSolverLanguage.g:1230:5: lv_isError_0_0= 'error'
3707 {
3708 lv_isError_0_0=(Token)match(input,16,FOLLOW_12);
3709 5969
3710 newLeafNode(lv_isError_0_0, grammarAccess.getPredicateAccess().getIsErrorErrorKeyword_0_0()); 5970 }
3711
3712 5971
3713 if (current==null) { 5972 }
3714 current = createModelElement(grammarAccess.getPredicateRule());
3715 }
3716 setWithLastConsumed(current, "isError", true, "error");
3717
3718 5973
3719 } 5974 catch (RecognitionException re) {
5975 recover(input,re);
5976 appendSkippedTokens();
5977 }
5978 finally {
5979 }
5980 return current;
5981 }
5982 // $ANTLR end "entryRuleTypedArgument"
3720 5983
3721 5984
3722 } 5985 // $ANTLR start "ruleTypedArgument"
3723 break; 5986 // InternalSolverLanguage.g:2111:1: ruleTypedArgument returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) ;
5987 public final EObject ruleTypedArgument() throws RecognitionException {
5988 EObject current = null;
3724 5989
3725 }
3726 5990
3727 // InternalSolverLanguage.g:1242:3: ( (lv_symbol_1_0= ruleModelSymbol ) ) 5991 enterRule();
3728 // InternalSolverLanguage.g:1243:4: (lv_symbol_1_0= ruleModelSymbol ) 5992
5993 try {
5994 // InternalSolverLanguage.g:2117:2: ( ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) )
5995 // InternalSolverLanguage.g:2118:2: ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) )
5996 {
5997 // InternalSolverLanguage.g:2118:2: ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) )
5998 // InternalSolverLanguage.g:2119:3: ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) )
3729 { 5999 {
3730 // InternalSolverLanguage.g:1243:4: (lv_symbol_1_0= ruleModelSymbol ) 6000 // InternalSolverLanguage.g:2119:3: ( ( ruleQualifiedName ) )
3731 // InternalSolverLanguage.g:1244:5: lv_symbol_1_0= ruleModelSymbol 6001 // InternalSolverLanguage.g:2120:4: ( ruleQualifiedName )
3732 { 6002 {
6003 // InternalSolverLanguage.g:2120:4: ( ruleQualifiedName )
6004 // InternalSolverLanguage.g:2121:5: ruleQualifiedName
6005 {
6006 if ( state.backtracking==0 ) {
3733 6007
3734 newCompositeNode(grammarAccess.getPredicateAccess().getSymbolModelSymbolParserRuleCall_1_0()); 6008 if (current==null) {
3735 6009 current = createModelElement(grammarAccess.getTypedArgumentRule());
3736 pushFollow(FOLLOW_14); 6010 }
3737 lv_symbol_1_0=ruleModelSymbol(); 6011
6012 }
6013 if ( state.backtracking==0 ) {
3738 6014
3739 state._fsp--; 6015 newCompositeNode(grammarAccess.getTypedArgumentAccess().getTypeNamedElementCrossReference_0_0());
6016
6017 }
6018 pushFollow(FOLLOW_35);
6019 ruleQualifiedName();
3740 6020
6021 state._fsp--;
6022 if (state.failed) return current;
6023 if ( state.backtracking==0 ) {
3741 6024
3742 if (current==null) { 6025 afterParserOrEnumRuleCall();
3743 current = createModelElementForParent(grammarAccess.getPredicateRule()); 6026
3744 } 6027 }
3745 set(
3746 current,
3747 "symbol",
3748 lv_symbol_1_0,
3749 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
3750 afterParserOrEnumRuleCall();
3751
3752 6028
3753 } 6029 }
3754 6030
3755 6031
3756 } 6032 }
3757 6033
3758 // InternalSolverLanguage.g:1261:3: (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? otherlv_6= ')' )? 6034 // InternalSolverLanguage.g:2135:3: ( ( ruleQualifiedName ) )
3759 int alt20=2; 6035 // InternalSolverLanguage.g:2136:4: ( ruleQualifiedName )
3760 int LA20_0 = input.LA(1); 6036 {
6037 // InternalSolverLanguage.g:2136:4: ( ruleQualifiedName )
6038 // InternalSolverLanguage.g:2137:5: ruleQualifiedName
6039 {
6040 if ( state.backtracking==0 ) {
3761 6041
3762 if ( (LA20_0==17) ) { 6042 if (current==null) {
3763 alt20=1; 6043 current = createModelElement(grammarAccess.getTypedArgumentRule());
6044 }
6045
3764 } 6046 }
3765 switch (alt20) { 6047 if ( state.backtracking==0 ) {
3766 case 1 :
3767 // InternalSolverLanguage.g:1262:4: otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? otherlv_6= ')'
3768 {
3769 otherlv_2=(Token)match(input,17,FOLLOW_15);
3770
3771 newLeafNode(otherlv_2, grammarAccess.getPredicateAccess().getLeftParenthesisKeyword_2_0());
3772
3773 // InternalSolverLanguage.g:1266:4: ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )?
3774 int alt19=2;
3775 int LA19_0 = input.LA(1);
3776 6048
3777 if ( (LA19_0==RULE_ID) ) { 6049 newCompositeNode(grammarAccess.getTypedArgumentAccess().getVariableNamedElementCrossReference_1_0());
3778 alt19=1; 6050
3779 } 6051 }
3780 switch (alt19) { 6052 pushFollow(FOLLOW_2);
3781 case 1 : 6053 ruleQualifiedName();
3782 // InternalSolverLanguage.g:1267:5: ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )*
3783 {
3784 // InternalSolverLanguage.g:1267:5: ( (lv_parameters_3_0= ruleParameter ) )
3785 // InternalSolverLanguage.g:1268:6: (lv_parameters_3_0= ruleParameter )
3786 {
3787 // InternalSolverLanguage.g:1268:6: (lv_parameters_3_0= ruleParameter )
3788 // InternalSolverLanguage.g:1269:7: lv_parameters_3_0= ruleParameter
3789 {
3790 6054
3791 newCompositeNode(grammarAccess.getPredicateAccess().getParametersParameterParserRuleCall_2_1_0_0()); 6055 state._fsp--;
3792 6056 if (state.failed) return current;
3793 pushFollow(FOLLOW_8); 6057 if ( state.backtracking==0 ) {
3794 lv_parameters_3_0=ruleParameter();
3795 6058
3796 state._fsp--; 6059 afterParserOrEnumRuleCall();
6060
6061 }
3797 6062
6063 }
3798 6064
3799 if (current==null) {
3800 current = createModelElementForParent(grammarAccess.getPredicateRule());
3801 }
3802 add(
3803 current,
3804 "parameters",
3805 lv_parameters_3_0,
3806 "org.eclipse.viatra.solver.language.SolverLanguage.Parameter");
3807 afterParserOrEnumRuleCall();
3808
3809 6065
3810 } 6066 }
3811 6067
3812 6068
3813 } 6069 }
3814 6070
3815 // InternalSolverLanguage.g:1286:5: (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )*
3816 loop18:
3817 do {
3818 int alt18=2;
3819 int LA18_0 = input.LA(1);
3820 6071
3821 if ( (LA18_0==18) ) { 6072 }
3822 alt18=1;
3823 }
3824 6073
6074 if ( state.backtracking==0 ) {
3825 6075
3826 switch (alt18) { 6076 leaveRule();
3827 case 1 :
3828 // InternalSolverLanguage.g:1287:6: otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) )
3829 {
3830 otherlv_4=(Token)match(input,18,FOLLOW_12);
3831 6077
3832 newLeafNode(otherlv_4, grammarAccess.getPredicateAccess().getCommaKeyword_2_1_1_0()); 6078 }
3833 6079 }
3834 // InternalSolverLanguage.g:1291:6: ( (lv_parameters_5_0= ruleParameter ) )
3835 // InternalSolverLanguage.g:1292:7: (lv_parameters_5_0= ruleParameter )
3836 {
3837 // InternalSolverLanguage.g:1292:7: (lv_parameters_5_0= ruleParameter )
3838 // InternalSolverLanguage.g:1293:8: lv_parameters_5_0= ruleParameter
3839 {
3840 6080
3841 newCompositeNode(grammarAccess.getPredicateAccess().getParametersParameterParserRuleCall_2_1_1_1_0()); 6081 catch (RecognitionException re) {
3842 6082 recover(input,re);
3843 pushFollow(FOLLOW_8); 6083 appendSkippedTokens();
3844 lv_parameters_5_0=ruleParameter(); 6084 }
6085 finally {
6086 }
6087 return current;
6088 }
6089 // $ANTLR end "ruleTypedArgument"
3845 6090
3846 state._fsp--;
3847 6091
6092 // $ANTLR start "entryRuleTypedStarArgument"
6093 // InternalSolverLanguage.g:2155:1: entryRuleTypedStarArgument returns [EObject current=null] : iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ;
6094 public final EObject entryRuleTypedStarArgument() throws RecognitionException {
6095 EObject current = null;
3848 6096
3849 if (current==null) { 6097 EObject iv_ruleTypedStarArgument = null;
3850 current = createModelElementForParent(grammarAccess.getPredicateRule());
3851 }
3852 add(
3853 current,
3854 "parameters",
3855 lv_parameters_5_0,
3856 "org.eclipse.viatra.solver.language.SolverLanguage.Parameter");
3857 afterParserOrEnumRuleCall();
3858
3859 6098
3860 }
3861 6099
6100 try {
6101 // InternalSolverLanguage.g:2155:58: (iv_ruleTypedStarArgument= ruleTypedStarArgument EOF )
6102 // InternalSolverLanguage.g:2156:2: iv_ruleTypedStarArgument= ruleTypedStarArgument EOF
6103 {
6104 if ( state.backtracking==0 ) {
6105 newCompositeNode(grammarAccess.getTypedStarArgumentRule());
6106 }
6107 pushFollow(FOLLOW_1);
6108 iv_ruleTypedStarArgument=ruleTypedStarArgument();
3862 6109
3863 } 6110 state._fsp--;
6111 if (state.failed) return current;
6112 if ( state.backtracking==0 ) {
6113 current =iv_ruleTypedStarArgument;
6114 }
6115 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3864 6116
6117 }
3865 6118
3866 } 6119 }
3867 break;
3868 6120
3869 default : 6121 catch (RecognitionException re) {
3870 break loop18; 6122 recover(input,re);
3871 } 6123 appendSkippedTokens();
3872 } while (true); 6124 }
6125 finally {
6126 }
6127 return current;
6128 }
6129 // $ANTLR end "entryRuleTypedStarArgument"
3873 6130
3874 6131
3875 } 6132 // $ANTLR start "ruleTypedStarArgument"
3876 break; 6133 // InternalSolverLanguage.g:2162:1: ruleTypedStarArgument returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) otherlv_1= '*' ) ;
6134 public final EObject ruleTypedStarArgument() throws RecognitionException {
6135 EObject current = null;
3877 6136
3878 } 6137 Token otherlv_1=null;
3879 6138
3880 otherlv_6=(Token)match(input,19,FOLLOW_16);
3881 6139
3882 newLeafNode(otherlv_6, grammarAccess.getPredicateAccess().getRightParenthesisKeyword_2_2()); 6140 enterRule();
3883
3884 6141
3885 } 6142 try {
3886 break; 6143 // InternalSolverLanguage.g:2168:2: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '*' ) )
6144 // InternalSolverLanguage.g:2169:2: ( ( ( ruleQualifiedName ) ) otherlv_1= '*' )
6145 {
6146 // InternalSolverLanguage.g:2169:2: ( ( ( ruleQualifiedName ) ) otherlv_1= '*' )
6147 // InternalSolverLanguage.g:2170:3: ( ( ruleQualifiedName ) ) otherlv_1= '*'
6148 {
6149 // InternalSolverLanguage.g:2170:3: ( ( ruleQualifiedName ) )
6150 // InternalSolverLanguage.g:2171:4: ( ruleQualifiedName )
6151 {
6152 // InternalSolverLanguage.g:2171:4: ( ruleQualifiedName )
6153 // InternalSolverLanguage.g:2172:5: ruleQualifiedName
6154 {
6155 if ( state.backtracking==0 ) {
3887 6156
6157 if (current==null) {
6158 current = createModelElement(grammarAccess.getTypedStarArgumentRule());
6159 }
6160
3888 } 6161 }
6162 if ( state.backtracking==0 ) {
3889 6163
3890 otherlv_7=(Token)match(input,28,FOLLOW_17); 6164 newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementCrossReference_0_0());
6165
6166 }
6167 pushFollow(FOLLOW_36);
6168 ruleQualifiedName();
3891 6169
3892 newLeafNode(otherlv_7, grammarAccess.getPredicateAccess().getColonHyphenMinusKeyword_3()); 6170 state._fsp--;
3893 6171 if (state.failed) return current;
3894 // InternalSolverLanguage.g:1321:3: (otherlv_8= 'false' | ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* ) ) 6172 if ( state.backtracking==0 ) {
3895 int alt22=2;
3896 int LA22_0 = input.LA(1);
3897 6173
3898 if ( (LA22_0==14) ) { 6174 afterParserOrEnumRuleCall();
3899 alt22=1; 6175
3900 } 6176 }
3901 else if ( (LA22_0==EOF||LA22_0==RULE_ID||(LA22_0>=11 && LA22_0<=13)||(LA22_0>=29 && LA22_0<=31)) ) {
3902 alt22=2;
3903 }
3904 else {
3905 NoViableAltException nvae =
3906 new NoViableAltException("", 22, 0, input);
3907 6177
3908 throw nvae;
3909 } 6178 }
3910 switch (alt22) {
3911 case 1 :
3912 // InternalSolverLanguage.g:1322:4: otherlv_8= 'false'
3913 {
3914 otherlv_8=(Token)match(input,14,FOLLOW_5);
3915 6179
3916 newLeafNode(otherlv_8, grammarAccess.getPredicateAccess().getFalseKeyword_4_0());
3917
3918 6180
3919 } 6181 }
3920 break;
3921 case 2 :
3922 // InternalSolverLanguage.g:1327:4: ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* )
3923 {
3924 // InternalSolverLanguage.g:1327:4: ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* )
3925 // InternalSolverLanguage.g:1328:5: ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )*
3926 {
3927 // InternalSolverLanguage.g:1328:5: ( (lv_bodies_9_0= rulePatternBody ) )
3928 // InternalSolverLanguage.g:1329:6: (lv_bodies_9_0= rulePatternBody )
3929 {
3930 // InternalSolverLanguage.g:1329:6: (lv_bodies_9_0= rulePatternBody )
3931 // InternalSolverLanguage.g:1330:7: lv_bodies_9_0= rulePatternBody
3932 {
3933 6182
3934 newCompositeNode(grammarAccess.getPredicateAccess().getBodiesPatternBodyParserRuleCall_4_1_0_0()); 6183 otherlv_1=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
3935 6184 if ( state.backtracking==0 ) {
3936 pushFollow(FOLLOW_18);
3937 lv_bodies_9_0=rulePatternBody();
3938 6185
3939 state._fsp--; 6186 newLeafNode(otherlv_1, grammarAccess.getTypedStarArgumentAccess().getAsteriskKeyword_1());
6187
6188 }
3940 6189
6190 }
3941 6191
3942 if (current==null) {
3943 current = createModelElementForParent(grammarAccess.getPredicateRule());
3944 }
3945 add(
3946 current,
3947 "bodies",
3948 lv_bodies_9_0,
3949 "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody");
3950 afterParserOrEnumRuleCall();
3951
3952 6192
3953 } 6193 }
3954 6194
6195 if ( state.backtracking==0 ) {
3955 6196
3956 } 6197 leaveRule();
3957 6198
3958 // InternalSolverLanguage.g:1347:5: (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* 6199 }
3959 loop21: 6200 }
3960 do {
3961 int alt21=2;
3962 int LA21_0 = input.LA(1);
3963 6201
3964 if ( (LA21_0==29) ) { 6202 catch (RecognitionException re) {
3965 alt21=1; 6203 recover(input,re);
3966 } 6204 appendSkippedTokens();
6205 }
6206 finally {
6207 }
6208 return current;
6209 }
6210 // $ANTLR end "ruleTypedStarArgument"
3967 6211
3968 6212
3969 switch (alt21) { 6213 // $ANTLR start "entryRuleReference"
3970 case 1 : 6214 // InternalSolverLanguage.g:2194:1: entryRuleReference returns [EObject current=null] : iv_ruleReference= ruleReference EOF ;
3971 // InternalSolverLanguage.g:1348:6: otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) 6215 public final EObject entryRuleReference() throws RecognitionException {
3972 { 6216 EObject current = null;
3973 otherlv_10=(Token)match(input,29,FOLLOW_19);
3974 6217
3975 newLeafNode(otherlv_10, grammarAccess.getPredicateAccess().getVerticalLineKeyword_4_1_1_0()); 6218 EObject iv_ruleReference = null;
3976
3977 // InternalSolverLanguage.g:1352:6: ( (lv_bodies_11_0= rulePatternBody ) )
3978 // InternalSolverLanguage.g:1353:7: (lv_bodies_11_0= rulePatternBody )
3979 {
3980 // InternalSolverLanguage.g:1353:7: (lv_bodies_11_0= rulePatternBody )
3981 // InternalSolverLanguage.g:1354:8: lv_bodies_11_0= rulePatternBody
3982 {
3983 6219
3984 newCompositeNode(grammarAccess.getPredicateAccess().getBodiesPatternBodyParserRuleCall_4_1_1_1_0());
3985
3986 pushFollow(FOLLOW_18);
3987 lv_bodies_11_0=rulePatternBody();
3988 6220
3989 state._fsp--; 6221 try {
6222 // InternalSolverLanguage.g:2194:50: (iv_ruleReference= ruleReference EOF )
6223 // InternalSolverLanguage.g:2195:2: iv_ruleReference= ruleReference EOF
6224 {
6225 if ( state.backtracking==0 ) {
6226 newCompositeNode(grammarAccess.getReferenceRule());
6227 }
6228 pushFollow(FOLLOW_1);
6229 iv_ruleReference=ruleReference();
3990 6230
6231 state._fsp--;
6232 if (state.failed) return current;
6233 if ( state.backtracking==0 ) {
6234 current =iv_ruleReference;
6235 }
6236 match(input,EOF,FOLLOW_2); if (state.failed) return current;
3991 6237
3992 if (current==null) { 6238 }
3993 current = createModelElementForParent(grammarAccess.getPredicateRule());
3994 }
3995 add(
3996 current,
3997 "bodies",
3998 lv_bodies_11_0,
3999 "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody");
4000 afterParserOrEnumRuleCall();
4001
4002 6239
4003 } 6240 }
4004 6241
6242 catch (RecognitionException re) {
6243 recover(input,re);
6244 appendSkippedTokens();
6245 }
6246 finally {
6247 }
6248 return current;
6249 }
6250 // $ANTLR end "entryRuleReference"
4005 6251
4006 }
4007 6252
6253 // $ANTLR start "ruleReference"
6254 // InternalSolverLanguage.g:2201:1: ruleReference returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
6255 public final EObject ruleReference() throws RecognitionException {
6256 EObject current = null;
4008 6257
4009 }
4010 break;
4011 6258
4012 default : 6259 enterRule();
4013 break loop21;
4014 }
4015 } while (true);
4016 6260
6261 try {
6262 // InternalSolverLanguage.g:2207:2: ( ( ( ruleQualifiedName ) ) )
6263 // InternalSolverLanguage.g:2208:2: ( ( ruleQualifiedName ) )
6264 {
6265 // InternalSolverLanguage.g:2208:2: ( ( ruleQualifiedName ) )
6266 // InternalSolverLanguage.g:2209:3: ( ruleQualifiedName )
6267 {
6268 // InternalSolverLanguage.g:2209:3: ( ruleQualifiedName )
6269 // InternalSolverLanguage.g:2210:4: ruleQualifiedName
6270 {
6271 if ( state.backtracking==0 ) {
4017 6272
4018 } 6273 if (current==null) {
6274 current = createModelElement(grammarAccess.getReferenceRule());
6275 }
6276
6277 }
6278 if ( state.backtracking==0 ) {
4019 6279
6280 newCompositeNode(grammarAccess.getReferenceAccess().getReferredNamedElementCrossReference_0());
6281
6282 }
6283 pushFollow(FOLLOW_2);
6284 ruleQualifiedName();
4020 6285
4021 } 6286 state._fsp--;
4022 break; 6287 if (state.failed) return current;
6288 if ( state.backtracking==0 ) {
4023 6289
6290 afterParserOrEnumRuleCall();
6291
4024 } 6292 }
4025 6293
4026 otherlv_12=(Token)match(input,12,FOLLOW_2); 6294 }
4027 6295
4028 newLeafNode(otherlv_12, grammarAccess.getPredicateAccess().getFullStopKeyword_5());
4029
4030 6296
4031 } 6297 }
4032 6298
4033 6299
4034 } 6300 }
4035 6301
6302 if ( state.backtracking==0 ) {
4036 6303
4037 leaveRule(); 6304 leaveRule();
4038 6305
6306 }
4039 } 6307 }
4040 6308
4041 catch (RecognitionException re) { 6309 catch (RecognitionException re) {
@@ -4046,29 +6314,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4046 } 6314 }
4047 return current; 6315 return current;
4048 } 6316 }
4049 // $ANTLR end "rulePredicate" 6317 // $ANTLR end "ruleReference"
4050 6318
4051 6319
4052 // $ANTLR start "entryRuleParameter" 6320 // $ANTLR start "entryRuleInterval"
4053 // InternalSolverLanguage.g:1382:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ; 6321 // InternalSolverLanguage.g:2227:1: entryRuleInterval returns [EObject current=null] : iv_ruleInterval= ruleInterval EOF ;
4054 public final EObject entryRuleParameter() throws RecognitionException { 6322 public final EObject entryRuleInterval() throws RecognitionException {
4055 EObject current = null; 6323 EObject current = null;
4056 6324
4057 EObject iv_ruleParameter = null; 6325 EObject iv_ruleInterval = null;
4058 6326
4059 6327
4060 try { 6328 try {
4061 // InternalSolverLanguage.g:1382:50: (iv_ruleParameter= ruleParameter EOF ) 6329 // InternalSolverLanguage.g:2227:49: (iv_ruleInterval= ruleInterval EOF )
4062 // InternalSolverLanguage.g:1383:2: iv_ruleParameter= ruleParameter EOF 6330 // InternalSolverLanguage.g:2228:2: iv_ruleInterval= ruleInterval EOF
4063 { 6331 {
4064 newCompositeNode(grammarAccess.getParameterRule()); 6332 if ( state.backtracking==0 ) {
6333 newCompositeNode(grammarAccess.getIntervalRule());
6334 }
4065 pushFollow(FOLLOW_1); 6335 pushFollow(FOLLOW_1);
4066 iv_ruleParameter=ruleParameter(); 6336 iv_ruleInterval=ruleInterval();
4067 6337
4068 state._fsp--; 6338 state._fsp--;
4069 6339 if (state.failed) return current;
4070 current =iv_ruleParameter; 6340 if ( state.backtracking==0 ) {
4071 match(input,EOF,FOLLOW_2); 6341 current =iv_ruleInterval;
6342 }
6343 match(input,EOF,FOLLOW_2); if (state.failed) return current;
4072 6344
4073 } 6345 }
4074 6346
@@ -4082,122 +6354,131 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4082 } 6354 }
4083 return current; 6355 return current;
4084 } 6356 }
4085 // $ANTLR end "entryRuleParameter" 6357 // $ANTLR end "entryRuleInterval"
4086 6358
4087 6359
4088 // $ANTLR start "ruleParameter" 6360 // $ANTLR start "ruleInterval"
4089 // InternalSolverLanguage.g:1389:1: ruleParameter returns [EObject current=null] : ( ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? ) ; 6361 // InternalSolverLanguage.g:2234:1: ruleInterval returns [EObject current=null] : (otherlv_0= '[' ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= ']' ) ;
4090 public final EObject ruleParameter() throws RecognitionException { 6362 public final EObject ruleInterval() throws RecognitionException {
4091 EObject current = null; 6363 EObject current = null;
4092 6364
4093 Token otherlv_1=null; 6365 Token otherlv_0=null;
4094 EObject lv_variable_0_0 = null; 6366 Token otherlv_2=null;
6367 Token otherlv_4=null;
6368 EObject lv_lowerBound_1_0 = null;
4095 6369
4096 EObject lv_type_2_0 = null; 6370 EObject lv_upperBound_3_0 = null;
4097 6371
4098 6372
4099 6373
4100 enterRule(); 6374 enterRule();
4101 6375
4102 try { 6376 try {
4103 // InternalSolverLanguage.g:1395:2: ( ( ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? ) ) 6377 // InternalSolverLanguage.g:2240:2: ( (otherlv_0= '[' ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= ']' ) )
4104 // InternalSolverLanguage.g:1396:2: ( ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? ) 6378 // InternalSolverLanguage.g:2241:2: (otherlv_0= '[' ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= ']' )
4105 { 6379 {
4106 // InternalSolverLanguage.g:1396:2: ( ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? ) 6380 // InternalSolverLanguage.g:2241:2: (otherlv_0= '[' ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= ']' )
4107 // InternalSolverLanguage.g:1397:3: ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? 6381 // InternalSolverLanguage.g:2242:3: otherlv_0= '[' ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= ']'
4108 { 6382 {
4109 // InternalSolverLanguage.g:1397:3: ( (lv_variable_0_0= ruleVariable ) ) 6383 otherlv_0=(Token)match(input,36,FOLLOW_6); if (state.failed) return current;
4110 // InternalSolverLanguage.g:1398:4: (lv_variable_0_0= ruleVariable ) 6384 if ( state.backtracking==0 ) {
6385
6386 newLeafNode(otherlv_0, grammarAccess.getIntervalAccess().getLeftSquareBracketKeyword_0());
6387
6388 }
6389 // InternalSolverLanguage.g:2246:3: ( (lv_lowerBound_1_0= ruleExpression ) )
6390 // InternalSolverLanguage.g:2247:4: (lv_lowerBound_1_0= ruleExpression )
4111 { 6391 {
4112 // InternalSolverLanguage.g:1398:4: (lv_variable_0_0= ruleVariable ) 6392 // InternalSolverLanguage.g:2247:4: (lv_lowerBound_1_0= ruleExpression )
4113 // InternalSolverLanguage.g:1399:5: lv_variable_0_0= ruleVariable 6393 // InternalSolverLanguage.g:2248:5: lv_lowerBound_1_0= ruleExpression
4114 { 6394 {
6395 if ( state.backtracking==0 ) {
4115 6396
4116 newCompositeNode(grammarAccess.getParameterAccess().getVariableVariableParserRuleCall_0_0()); 6397 newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0());
4117 6398
4118 pushFollow(FOLLOW_20); 6399 }
4119 lv_variable_0_0=ruleVariable(); 6400 pushFollow(FOLLOW_37);
6401 lv_lowerBound_1_0=ruleExpression();
4120 6402
4121 state._fsp--; 6403 state._fsp--;
6404 if (state.failed) return current;
6405 if ( state.backtracking==0 ) {
4122 6406
4123 6407 if (current==null) {
4124 if (current==null) { 6408 current = createModelElementForParent(grammarAccess.getIntervalRule());
4125 current = createModelElementForParent(grammarAccess.getParameterRule()); 6409 }
4126 } 6410 set(
4127 set( 6411 current,
4128 current, 6412 "lowerBound",
4129 "variable", 6413 lv_lowerBound_1_0,
4130 lv_variable_0_0, 6414 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
4131 "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); 6415 afterParserOrEnumRuleCall();
4132 afterParserOrEnumRuleCall(); 6416
4133
4134
4135 } 6417 }
4136 6418
4137
4138 } 6419 }
4139 6420
4140 // InternalSolverLanguage.g:1416:3: (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )?
4141 int alt23=2;
4142 int LA23_0 = input.LA(1);
4143 6421
4144 if ( (LA23_0==20) ) {
4145 alt23=1;
4146 } 6422 }
4147 switch (alt23) {
4148 case 1 :
4149 // InternalSolverLanguage.g:1417:4: otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) )
4150 {
4151 otherlv_1=(Token)match(input,20,FOLLOW_21);
4152 6423
4153 newLeafNode(otherlv_1, grammarAccess.getParameterAccess().getColonKeyword_1_0()); 6424 otherlv_2=(Token)match(input,37,FOLLOW_6); if (state.failed) return current;
4154 6425 if ( state.backtracking==0 ) {
4155 // InternalSolverLanguage.g:1421:4: ( (lv_type_2_0= ruleSymbol ) )
4156 // InternalSolverLanguage.g:1422:5: (lv_type_2_0= ruleSymbol )
4157 {
4158 // InternalSolverLanguage.g:1422:5: (lv_type_2_0= ruleSymbol )
4159 // InternalSolverLanguage.g:1423:6: lv_type_2_0= ruleSymbol
4160 {
4161
4162 newCompositeNode(grammarAccess.getParameterAccess().getTypeSymbolParserRuleCall_1_1_0());
4163
4164 pushFollow(FOLLOW_2);
4165 lv_type_2_0=ruleSymbol();
4166 6426
4167 state._fsp--; 6427 newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2());
6428
6429 }
6430 // InternalSolverLanguage.g:2269:3: ( (lv_upperBound_3_0= ruleExpression ) )
6431 // InternalSolverLanguage.g:2270:4: (lv_upperBound_3_0= ruleExpression )
6432 {
6433 // InternalSolverLanguage.g:2270:4: (lv_upperBound_3_0= ruleExpression )
6434 // InternalSolverLanguage.g:2271:5: lv_upperBound_3_0= ruleExpression
6435 {
6436 if ( state.backtracking==0 ) {
4168 6437
6438 newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0());
6439
6440 }
6441 pushFollow(FOLLOW_38);
6442 lv_upperBound_3_0=ruleExpression();
4169 6443
4170 if (current==null) { 6444 state._fsp--;
4171 current = createModelElementForParent(grammarAccess.getParameterRule()); 6445 if (state.failed) return current;
4172 } 6446 if ( state.backtracking==0 ) {
4173 set(
4174 current,
4175 "type",
4176 lv_type_2_0,
4177 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
4178 afterParserOrEnumRuleCall();
4179
4180 6447
4181 } 6448 if (current==null) {
6449 current = createModelElementForParent(grammarAccess.getIntervalRule());
6450 }
6451 set(
6452 current,
6453 "upperBound",
6454 lv_upperBound_3_0,
6455 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
6456 afterParserOrEnumRuleCall();
6457
6458 }
4182 6459
6460 }
4183 6461
4184 }
4185 6462
6463 }
4186 6464
4187 } 6465 otherlv_4=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
4188 break; 6466 if ( state.backtracking==0 ) {
4189 6467
6468 newLeafNode(otherlv_4, grammarAccess.getIntervalAccess().getRightSquareBracketKeyword_4());
6469
4190 } 6470 }
4191 6471
4192
4193 } 6472 }
4194 6473
4195 6474
4196 } 6475 }
4197 6476
6477 if ( state.backtracking==0 ) {
4198 6478
4199 leaveRule(); 6479 leaveRule();
4200 6480
6481 }
4201 } 6482 }
4202 6483
4203 catch (RecognitionException re) { 6484 catch (RecognitionException re) {
@@ -4208,29 +6489,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4208 } 6489 }
4209 return current; 6490 return current;
4210 } 6491 }
4211 // $ANTLR end "ruleParameter" 6492 // $ANTLR end "ruleInterval"
4212 6493
4213 6494
4214 // $ANTLR start "entryRulePatternBody" 6495 // $ANTLR start "entryRuleLiteral"
4215 // InternalSolverLanguage.g:1445:1: entryRulePatternBody returns [EObject current=null] : iv_rulePatternBody= rulePatternBody EOF ; 6496 // InternalSolverLanguage.g:2296:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ;
4216 public final EObject entryRulePatternBody() throws RecognitionException { 6497 public final EObject entryRuleLiteral() throws RecognitionException {
4217 EObject current = null; 6498 EObject current = null;
4218 6499
4219 EObject iv_rulePatternBody = null; 6500 EObject iv_ruleLiteral = null;
4220 6501
4221 6502
4222 try { 6503 try {
4223 // InternalSolverLanguage.g:1445:52: (iv_rulePatternBody= rulePatternBody EOF ) 6504 // InternalSolverLanguage.g:2296:48: (iv_ruleLiteral= ruleLiteral EOF )
4224 // InternalSolverLanguage.g:1446:2: iv_rulePatternBody= rulePatternBody EOF 6505 // InternalSolverLanguage.g:2297:2: iv_ruleLiteral= ruleLiteral EOF
4225 { 6506 {
4226 newCompositeNode(grammarAccess.getPatternBodyRule()); 6507 if ( state.backtracking==0 ) {
6508 newCompositeNode(grammarAccess.getLiteralRule());
6509 }
4227 pushFollow(FOLLOW_1); 6510 pushFollow(FOLLOW_1);
4228 iv_rulePatternBody=rulePatternBody(); 6511 iv_ruleLiteral=ruleLiteral();
4229 6512
4230 state._fsp--; 6513 state._fsp--;
4231 6514 if (state.failed) return current;
4232 current =iv_rulePatternBody; 6515 if ( state.backtracking==0 ) {
4233 match(input,EOF,FOLLOW_2); 6516 current =iv_ruleLiteral;
6517 }
6518 match(input,EOF,FOLLOW_2); if (state.failed) return current;
4234 6519
4235 } 6520 }
4236 6521
@@ -4244,133 +6529,193 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4244 } 6529 }
4245 return current; 6530 return current;
4246 } 6531 }
4247 // $ANTLR end "entryRulePatternBody" 6532 // $ANTLR end "entryRuleLiteral"
4248 6533
4249 6534
4250 // $ANTLR start "rulePatternBody" 6535 // $ANTLR start "ruleLiteral"
4251 // InternalSolverLanguage.g:1452:1: rulePatternBody returns [EObject current=null] : ( () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) ) ; 6536 // InternalSolverLanguage.g:2303:1: ruleLiteral returns [EObject current=null] : (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) ;
4252 public final EObject rulePatternBody() throws RecognitionException { 6537 public final EObject ruleLiteral() throws RecognitionException {
4253 EObject current = null; 6538 EObject current = null;
4254 6539
4255 Token otherlv_1=null; 6540 EObject this_LogicLiteral_0 = null;
4256 EObject lv_constraints_2_0 = null;
4257 6541
6542 EObject this_NumericLiteral_1 = null;
4258 6543
6544 EObject this_InfinityLiteral_2 = null;
4259 6545
4260 enterRule(); 6546 EObject this_EmptyIntervalLiteral_3 = null;
4261 6547
4262 try { 6548 EObject this_StringLiteral_4 = null;
4263 // InternalSolverLanguage.g:1458:2: ( ( () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) ) )
4264 // InternalSolverLanguage.g:1459:2: ( () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) )
4265 {
4266 // InternalSolverLanguage.g:1459:2: ( () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) )
4267 // InternalSolverLanguage.g:1460:3: () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* )
4268 {
4269 // InternalSolverLanguage.g:1460:3: ()
4270 // InternalSolverLanguage.g:1461:4:
4271 {
4272 6549
4273 current = forceCreateModelElement(
4274 grammarAccess.getPatternBodyAccess().getPatternBodyAction_0(),
4275 current);
4276
4277 6550
4278 }
4279 6551
4280 // InternalSolverLanguage.g:1467:3: (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) 6552 enterRule();
4281 int alt25=2;
4282 int LA25_0 = input.LA(1);
4283 6553
4284 if ( (LA25_0==13) ) { 6554 try {
4285 alt25=1; 6555 // InternalSolverLanguage.g:2309:2: ( (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) )
4286 } 6556 // InternalSolverLanguage.g:2310:2: (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral )
4287 else if ( (LA25_0==EOF||LA25_0==RULE_ID||(LA25_0>=11 && LA25_0<=12)||(LA25_0>=29 && LA25_0<=31)) ) { 6557 {
4288 alt25=2; 6558 // InternalSolverLanguage.g:2310:2: (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral )
4289 } 6559 int alt26=5;
4290 else { 6560 switch ( input.LA(1) ) {
6561 case 19:
6562 case 70:
6563 case 71:
6564 case 72:
6565 {
6566 alt26=1;
6567 }
6568 break;
6569 case RULE_INT:
6570 {
6571 alt26=2;
6572 }
6573 break;
6574 case 39:
6575 {
6576 alt26=3;
6577 }
6578 break;
6579 case 40:
6580 {
6581 alt26=4;
6582 }
6583 break;
6584 case RULE_STRING:
6585 {
6586 alt26=5;
6587 }
6588 break;
6589 default:
6590 if (state.backtracking>0) {state.failed=true; return current;}
4291 NoViableAltException nvae = 6591 NoViableAltException nvae =
4292 new NoViableAltException("", 25, 0, input); 6592 new NoViableAltException("", 26, 0, input);
4293 6593
4294 throw nvae; 6594 throw nvae;
4295 } 6595 }
4296 switch (alt25) { 6596
6597 switch (alt26) {
4297 case 1 : 6598 case 1 :
4298 // InternalSolverLanguage.g:1468:4: otherlv_1= 'true' 6599 // InternalSolverLanguage.g:2311:3: this_LogicLiteral_0= ruleLogicLiteral
4299 { 6600 {
4300 otherlv_1=(Token)match(input,13,FOLLOW_2); 6601 if ( state.backtracking==0 ) {
4301 6602
4302 newLeafNode(otherlv_1, grammarAccess.getPatternBodyAccess().getTrueKeyword_1_0()); 6603 newCompositeNode(grammarAccess.getLiteralAccess().getLogicLiteralParserRuleCall_0());
4303 6604
6605 }
6606 pushFollow(FOLLOW_2);
6607 this_LogicLiteral_0=ruleLogicLiteral();
6608
6609 state._fsp--;
6610 if (state.failed) return current;
6611 if ( state.backtracking==0 ) {
6612
6613 current = this_LogicLiteral_0;
6614 afterParserOrEnumRuleCall();
6615
6616 }
4304 6617
4305 } 6618 }
4306 break; 6619 break;
4307 case 2 : 6620 case 2 :
4308 // InternalSolverLanguage.g:1473:4: ( (lv_constraints_2_0= ruleConstraint ) )* 6621 // InternalSolverLanguage.g:2320:3: this_NumericLiteral_1= ruleNumericLiteral
4309 { 6622 {
4310 // InternalSolverLanguage.g:1473:4: ( (lv_constraints_2_0= ruleConstraint ) )* 6623 if ( state.backtracking==0 ) {
4311 loop24:
4312 do {
4313 int alt24=2;
4314 int LA24_0 = input.LA(1);
4315
4316 if ( (LA24_0==RULE_ID||LA24_0==11||(LA24_0>=30 && LA24_0<=31)) ) {
4317 alt24=1;
4318 }
4319 6624
6625 newCompositeNode(grammarAccess.getLiteralAccess().getNumericLiteralParserRuleCall_1());
6626
6627 }
6628 pushFollow(FOLLOW_2);
6629 this_NumericLiteral_1=ruleNumericLiteral();
4320 6630
4321 switch (alt24) { 6631 state._fsp--;
4322 case 1 : 6632 if (state.failed) return current;
4323 // InternalSolverLanguage.g:1474:5: (lv_constraints_2_0= ruleConstraint ) 6633 if ( state.backtracking==0 ) {
4324 {
4325 // InternalSolverLanguage.g:1474:5: (lv_constraints_2_0= ruleConstraint )
4326 // InternalSolverLanguage.g:1475:6: lv_constraints_2_0= ruleConstraint
4327 {
4328 6634
4329 newCompositeNode(grammarAccess.getPatternBodyAccess().getConstraintsConstraintParserRuleCall_1_1_0()); 6635 current = this_NumericLiteral_1;
4330 6636 afterParserOrEnumRuleCall();
4331 pushFollow(FOLLOW_22); 6637
4332 lv_constraints_2_0=ruleConstraint(); 6638 }
4333 6639
4334 state._fsp--; 6640 }
6641 break;
6642 case 3 :
6643 // InternalSolverLanguage.g:2329:3: this_InfinityLiteral_2= ruleInfinityLiteral
6644 {
6645 if ( state.backtracking==0 ) {
4335 6646
6647 newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_2());
6648
6649 }
6650 pushFollow(FOLLOW_2);
6651 this_InfinityLiteral_2=ruleInfinityLiteral();
4336 6652
4337 if (current==null) { 6653 state._fsp--;
4338 current = createModelElementForParent(grammarAccess.getPatternBodyRule()); 6654 if (state.failed) return current;
4339 } 6655 if ( state.backtracking==0 ) {
4340 add(
4341 current,
4342 "constraints",
4343 lv_constraints_2_0,
4344 "org.eclipse.viatra.solver.language.SolverLanguage.Constraint");
4345 afterParserOrEnumRuleCall();
4346
4347 6656
4348 } 6657 current = this_InfinityLiteral_2;
6658 afterParserOrEnumRuleCall();
6659
6660 }
4349 6661
6662 }
6663 break;
6664 case 4 :
6665 // InternalSolverLanguage.g:2338:3: this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral
6666 {
6667 if ( state.backtracking==0 ) {
4350 6668
4351 } 6669 newCompositeNode(grammarAccess.getLiteralAccess().getEmptyIntervalLiteralParserRuleCall_3());
4352 break; 6670
6671 }
6672 pushFollow(FOLLOW_2);
6673 this_EmptyIntervalLiteral_3=ruleEmptyIntervalLiteral();
4353 6674
4354 default : 6675 state._fsp--;
4355 break loop24; 6676 if (state.failed) return current;
4356 } 6677 if ( state.backtracking==0 ) {
4357 } while (true);
4358 6678
6679 current = this_EmptyIntervalLiteral_3;
6680 afterParserOrEnumRuleCall();
6681
6682 }
4359 6683
4360 } 6684 }
4361 break; 6685 break;
6686 case 5 :
6687 // InternalSolverLanguage.g:2347:3: this_StringLiteral_4= ruleStringLiteral
6688 {
6689 if ( state.backtracking==0 ) {
4362 6690
4363 } 6691 newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_4());
6692
6693 }
6694 pushFollow(FOLLOW_2);
6695 this_StringLiteral_4=ruleStringLiteral();
6696
6697 state._fsp--;
6698 if (state.failed) return current;
6699 if ( state.backtracking==0 ) {
4364 6700
6701 current = this_StringLiteral_4;
6702 afterParserOrEnumRuleCall();
6703
6704 }
6705
6706 }
6707 break;
4365 6708
4366 } 6709 }
4367 6710
4368 6711
4369 } 6712 }
4370 6713
6714 if ( state.backtracking==0 ) {
4371 6715
4372 leaveRule(); 6716 leaveRule();
4373 6717
6718 }
4374 } 6719 }
4375 6720
4376 catch (RecognitionException re) { 6721 catch (RecognitionException re) {
@@ -4381,29 +6726,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4381 } 6726 }
4382 return current; 6727 return current;
4383 } 6728 }
4384 // $ANTLR end "rulePatternBody" 6729 // $ANTLR end "ruleLiteral"
4385 6730
4386 6731
4387 // $ANTLR start "entryRulePolarity" 6732 // $ANTLR start "entryRuleLogicLiteral"
4388 // InternalSolverLanguage.g:1497:1: entryRulePolarity returns [EObject current=null] : iv_rulePolarity= rulePolarity EOF ; 6733 // InternalSolverLanguage.g:2359:1: entryRuleLogicLiteral returns [EObject current=null] : iv_ruleLogicLiteral= ruleLogicLiteral EOF ;
4389 public final EObject entryRulePolarity() throws RecognitionException { 6734 public final EObject entryRuleLogicLiteral() throws RecognitionException {
4390 EObject current = null; 6735 EObject current = null;
4391 6736
4392 EObject iv_rulePolarity = null; 6737 EObject iv_ruleLogicLiteral = null;
4393 6738
4394 6739
4395 try { 6740 try {
4396 // InternalSolverLanguage.g:1497:49: (iv_rulePolarity= rulePolarity EOF ) 6741 // InternalSolverLanguage.g:2359:53: (iv_ruleLogicLiteral= ruleLogicLiteral EOF )
4397 // InternalSolverLanguage.g:1498:2: iv_rulePolarity= rulePolarity EOF 6742 // InternalSolverLanguage.g:2360:2: iv_ruleLogicLiteral= ruleLogicLiteral EOF
4398 { 6743 {
4399 newCompositeNode(grammarAccess.getPolarityRule()); 6744 if ( state.backtracking==0 ) {
6745 newCompositeNode(grammarAccess.getLogicLiteralRule());
6746 }
4400 pushFollow(FOLLOW_1); 6747 pushFollow(FOLLOW_1);
4401 iv_rulePolarity=rulePolarity(); 6748 iv_ruleLogicLiteral=ruleLogicLiteral();
4402 6749
4403 state._fsp--; 6750 state._fsp--;
4404 6751 if (state.failed) return current;
4405 current =iv_rulePolarity; 6752 if ( state.backtracking==0 ) {
4406 match(input,EOF,FOLLOW_2); 6753 current =iv_ruleLogicLiteral;
6754 }
6755 match(input,EOF,FOLLOW_2); if (state.failed) return current;
4407 6756
4408 } 6757 }
4409 6758
@@ -4417,104 +6766,178 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4417 } 6766 }
4418 return current; 6767 return current;
4419 } 6768 }
4420 // $ANTLR end "entryRulePolarity" 6769 // $ANTLR end "entryRuleLogicLiteral"
4421 6770
4422 6771
4423 // $ANTLR start "rulePolarity" 6772 // $ANTLR start "ruleLogicLiteral"
4424 // InternalSolverLanguage.g:1504:1: rulePolarity returns [EObject current=null] : ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) ) ; 6773 // InternalSolverLanguage.g:2366:1: ruleLogicLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleLogicValue ) ) ;
4425 public final EObject rulePolarity() throws RecognitionException { 6774 public final EObject ruleLogicLiteral() throws RecognitionException {
4426 EObject current = null; 6775 EObject current = null;
4427 6776
4428 Token otherlv_1=null; 6777 Enumerator lv_value_0_0 = null;
4429 Token otherlv_3=null; 6778
4430 6779
4431 6780
4432 enterRule(); 6781 enterRule();
4433 6782
4434 try { 6783 try {
4435 // InternalSolverLanguage.g:1510:2: ( ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) ) ) 6784 // InternalSolverLanguage.g:2372:2: ( ( (lv_value_0_0= ruleLogicValue ) ) )
4436 // InternalSolverLanguage.g:1511:2: ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) ) 6785 // InternalSolverLanguage.g:2373:2: ( (lv_value_0_0= ruleLogicValue ) )
6786 {
6787 // InternalSolverLanguage.g:2373:2: ( (lv_value_0_0= ruleLogicValue ) )
6788 // InternalSolverLanguage.g:2374:3: (lv_value_0_0= ruleLogicValue )
6789 {
6790 // InternalSolverLanguage.g:2374:3: (lv_value_0_0= ruleLogicValue )
6791 // InternalSolverLanguage.g:2375:4: lv_value_0_0= ruleLogicValue
4437 { 6792 {
4438 // InternalSolverLanguage.g:1511:2: ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) ) 6793 if ( state.backtracking==0 ) {
4439 int alt26=2;
4440 int LA26_0 = input.LA(1);
4441 6794
4442 if ( (LA26_0==30) ) { 6795 newCompositeNode(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0());
4443 alt26=1; 6796
4444 } 6797 }
4445 else if ( (LA26_0==11) ) { 6798 pushFollow(FOLLOW_2);
4446 alt26=2; 6799 lv_value_0_0=ruleLogicValue();
6800
6801 state._fsp--;
6802 if (state.failed) return current;
6803 if ( state.backtracking==0 ) {
6804
6805 if (current==null) {
6806 current = createModelElementForParent(grammarAccess.getLogicLiteralRule());
6807 }
6808 set(
6809 current,
6810 "value",
6811 lv_value_0_0,
6812 "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue");
6813 afterParserOrEnumRuleCall();
6814
4447 } 6815 }
4448 else {
4449 NoViableAltException nvae =
4450 new NoViableAltException("", 26, 0, input);
4451 6816
4452 throw nvae;
4453 } 6817 }
4454 switch (alt26) {
4455 case 1 :
4456 // InternalSolverLanguage.g:1512:3: ( () otherlv_1= '+' )
4457 {
4458 // InternalSolverLanguage.g:1512:3: ( () otherlv_1= '+' )
4459 // InternalSolverLanguage.g:1513:4: () otherlv_1= '+'
4460 {
4461 // InternalSolverLanguage.g:1513:4: ()
4462 // InternalSolverLanguage.g:1514:5:
4463 {
4464 6818
4465 current = forceCreateModelElement(
4466 grammarAccess.getPolarityAccess().getPositiveAction_0_0(),
4467 current);
4468
4469 6819
4470 } 6820 }
4471 6821
4472 otherlv_1=(Token)match(input,30,FOLLOW_2);
4473 6822
4474 newLeafNode(otherlv_1, grammarAccess.getPolarityAccess().getPlusSignKeyword_0_1()); 6823 }
4475
4476 6824
4477 } 6825 if ( state.backtracking==0 ) {
4478 6826
6827 leaveRule();
4479 6828
4480 } 6829 }
4481 break; 6830 }
4482 case 2 :
4483 // InternalSolverLanguage.g:1526:3: ( () otherlv_3= '-' )
4484 {
4485 // InternalSolverLanguage.g:1526:3: ( () otherlv_3= '-' )
4486 // InternalSolverLanguage.g:1527:4: () otherlv_3= '-'
4487 {
4488 // InternalSolverLanguage.g:1527:4: ()
4489 // InternalSolverLanguage.g:1528:5:
4490 {
4491 6831
4492 current = forceCreateModelElement( 6832 catch (RecognitionException re) {
4493 grammarAccess.getPolarityAccess().getNegativeAction_1_0(), 6833 recover(input,re);
4494 current); 6834 appendSkippedTokens();
4495 6835 }
6836 finally {
6837 }
6838 return current;
6839 }
6840 // $ANTLR end "ruleLogicLiteral"
4496 6841
4497 }
4498 6842
4499 otherlv_3=(Token)match(input,11,FOLLOW_2); 6843 // $ANTLR start "entryRuleNumericLiteral"
6844 // InternalSolverLanguage.g:2395:1: entryRuleNumericLiteral returns [EObject current=null] : iv_ruleNumericLiteral= ruleNumericLiteral EOF ;
6845 public final EObject entryRuleNumericLiteral() throws RecognitionException {
6846 EObject current = null;
4500 6847
4501 newLeafNode(otherlv_3, grammarAccess.getPolarityAccess().getHyphenMinusKeyword_1_1()); 6848 EObject iv_ruleNumericLiteral = null;
4502
4503 6849
4504 }
4505 6850
6851 try {
6852 // InternalSolverLanguage.g:2395:55: (iv_ruleNumericLiteral= ruleNumericLiteral EOF )
6853 // InternalSolverLanguage.g:2396:2: iv_ruleNumericLiteral= ruleNumericLiteral EOF
6854 {
6855 if ( state.backtracking==0 ) {
6856 newCompositeNode(grammarAccess.getNumericLiteralRule());
6857 }
6858 pushFollow(FOLLOW_1);
6859 iv_ruleNumericLiteral=ruleNumericLiteral();
4506 6860
4507 } 6861 state._fsp--;
4508 break; 6862 if (state.failed) return current;
6863 if ( state.backtracking==0 ) {
6864 current =iv_ruleNumericLiteral;
6865 }
6866 match(input,EOF,FOLLOW_2); if (state.failed) return current;
4509 6867
4510 } 6868 }
4511 6869
6870 }
4512 6871
6872 catch (RecognitionException re) {
6873 recover(input,re);
6874 appendSkippedTokens();
6875 }
6876 finally {
6877 }
6878 return current;
6879 }
6880 // $ANTLR end "entryRuleNumericLiteral"
6881
6882
6883 // $ANTLR start "ruleNumericLiteral"
6884 // InternalSolverLanguage.g:2402:1: ruleNumericLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleReal ) ) ;
6885 public final EObject ruleNumericLiteral() throws RecognitionException {
6886 EObject current = null;
6887
6888 AntlrDatatypeRuleToken lv_value_0_0 = null;
6889
6890
6891
6892 enterRule();
6893
6894 try {
6895 // InternalSolverLanguage.g:2408:2: ( ( (lv_value_0_0= ruleReal ) ) )
6896 // InternalSolverLanguage.g:2409:2: ( (lv_value_0_0= ruleReal ) )
6897 {
6898 // InternalSolverLanguage.g:2409:2: ( (lv_value_0_0= ruleReal ) )
6899 // InternalSolverLanguage.g:2410:3: (lv_value_0_0= ruleReal )
6900 {
6901 // InternalSolverLanguage.g:2410:3: (lv_value_0_0= ruleReal )
6902 // InternalSolverLanguage.g:2411:4: lv_value_0_0= ruleReal
6903 {
6904 if ( state.backtracking==0 ) {
6905
6906 newCompositeNode(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0());
6907
6908 }
6909 pushFollow(FOLLOW_2);
6910 lv_value_0_0=ruleReal();
6911
6912 state._fsp--;
6913 if (state.failed) return current;
6914 if ( state.backtracking==0 ) {
6915
6916 if (current==null) {
6917 current = createModelElementForParent(grammarAccess.getNumericLiteralRule());
6918 }
6919 set(
6920 current,
6921 "value",
6922 lv_value_0_0,
6923 "org.eclipse.viatra.solver.language.SolverLanguage.Real");
6924 afterParserOrEnumRuleCall();
6925
4513 } 6926 }
4514 6927
6928 }
6929
6930
6931 }
6932
6933
6934 }
4515 6935
4516 leaveRule(); 6936 if ( state.backtracking==0 ) {
4517 6937
6938 leaveRule();
6939
6940 }
4518 } 6941 }
4519 6942
4520 catch (RecognitionException re) { 6943 catch (RecognitionException re) {
@@ -4525,32 +6948,96 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4525 } 6948 }
4526 return current; 6949 return current;
4527 } 6950 }
4528 // $ANTLR end "rulePolarity" 6951 // $ANTLR end "ruleNumericLiteral"
4529 6952
4530 6953
4531 // $ANTLR start "entryRuleConstraint" 6954 // $ANTLR start "entryRuleInfinityLiteral"
4532 // InternalSolverLanguage.g:1543:1: entryRuleConstraint returns [EObject current=null] : iv_ruleConstraint= ruleConstraint EOF ; 6955 // InternalSolverLanguage.g:2431:1: entryRuleInfinityLiteral returns [EObject current=null] : iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ;
4533 public final EObject entryRuleConstraint() throws RecognitionException { 6956 public final EObject entryRuleInfinityLiteral() throws RecognitionException {
4534 EObject current = null; 6957 EObject current = null;
4535 6958
4536 EObject iv_ruleConstraint = null; 6959 EObject iv_ruleInfinityLiteral = null;
4537 6960
4538 6961
4539 try { 6962 try {
4540 // InternalSolverLanguage.g:1543:51: (iv_ruleConstraint= ruleConstraint EOF ) 6963 // InternalSolverLanguage.g:2431:56: (iv_ruleInfinityLiteral= ruleInfinityLiteral EOF )
4541 // InternalSolverLanguage.g:1544:2: iv_ruleConstraint= ruleConstraint EOF 6964 // InternalSolverLanguage.g:2432:2: iv_ruleInfinityLiteral= ruleInfinityLiteral EOF
4542 { 6965 {
4543 newCompositeNode(grammarAccess.getConstraintRule()); 6966 if ( state.backtracking==0 ) {
6967 newCompositeNode(grammarAccess.getInfinityLiteralRule());
6968 }
4544 pushFollow(FOLLOW_1); 6969 pushFollow(FOLLOW_1);
4545 iv_ruleConstraint=ruleConstraint(); 6970 iv_ruleInfinityLiteral=ruleInfinityLiteral();
4546 6971
4547 state._fsp--; 6972 state._fsp--;
6973 if (state.failed) return current;
6974 if ( state.backtracking==0 ) {
6975 current =iv_ruleInfinityLiteral;
6976 }
6977 match(input,EOF,FOLLOW_2); if (state.failed) return current;
6978
6979 }
6980
6981 }
6982
6983 catch (RecognitionException re) {
6984 recover(input,re);
6985 appendSkippedTokens();
6986 }
6987 finally {
6988 }
6989 return current;
6990 }
6991 // $ANTLR end "entryRuleInfinityLiteral"
6992
6993
6994 // $ANTLR start "ruleInfinityLiteral"
6995 // InternalSolverLanguage.g:2438:1: ruleInfinityLiteral returns [EObject current=null] : ( () otherlv_1= 'inf' ) ;
6996 public final EObject ruleInfinityLiteral() throws RecognitionException {
6997 EObject current = null;
6998
6999 Token otherlv_1=null;
7000
7001
7002 enterRule();
7003
7004 try {
7005 // InternalSolverLanguage.g:2444:2: ( ( () otherlv_1= 'inf' ) )
7006 // InternalSolverLanguage.g:2445:2: ( () otherlv_1= 'inf' )
7007 {
7008 // InternalSolverLanguage.g:2445:2: ( () otherlv_1= 'inf' )
7009 // InternalSolverLanguage.g:2446:3: () otherlv_1= 'inf'
7010 {
7011 // InternalSolverLanguage.g:2446:3: ()
7012 // InternalSolverLanguage.g:2447:4:
7013 {
7014 if ( state.backtracking==0 ) {
7015
7016 current = forceCreateModelElement(
7017 grammarAccess.getInfinityLiteralAccess().getInfinityLiteralAction_0(),
7018 current);
7019
7020 }
7021
7022 }
7023
7024 otherlv_1=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
7025 if ( state.backtracking==0 ) {
4548 7026
4549 current =iv_ruleConstraint; 7027 newLeafNode(otherlv_1, grammarAccess.getInfinityLiteralAccess().getInfKeyword_1());
4550 match(input,EOF,FOLLOW_2); 7028
7029 }
4551 7030
4552 } 7031 }
4553 7032
7033
7034 }
7035
7036 if ( state.backtracking==0 ) {
7037
7038 leaveRule();
7039
7040 }
4554 } 7041 }
4555 7042
4556 catch (RecognitionException re) { 7043 catch (RecognitionException re) {
@@ -4561,420 +7048,452 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4561 } 7048 }
4562 return current; 7049 return current;
4563 } 7050 }
4564 // $ANTLR end "entryRuleConstraint" 7051 // $ANTLR end "ruleInfinityLiteral"
4565 7052
4566 7053
4567 // $ANTLR start "ruleConstraint" 7054 // $ANTLR start "entryRuleEmptyIntervalLiteral"
4568 // InternalSolverLanguage.g:1550:1: ruleConstraint returns [EObject current=null] : ( ( ( (lv_polarity_0_0= rulePolarity ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' )? ) | ( ( (lv_closureType_7_0= ruleClosureType ) ) otherlv_8= '(' ( (lv_params_9_0= ruleLiteral ) )? (otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) )* otherlv_12= ')' ) ) ; 7055 // InternalSolverLanguage.g:2461:1: entryRuleEmptyIntervalLiteral returns [EObject current=null] : iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF ;
4569 public final EObject ruleConstraint() throws RecognitionException { 7056 public final EObject entryRuleEmptyIntervalLiteral() throws RecognitionException {
4570 EObject current = null; 7057 EObject current = null;
4571 7058
4572 Token otherlv_2=null; 7059 EObject iv_ruleEmptyIntervalLiteral = null;
4573 Token otherlv_4=null;
4574 Token otherlv_6=null;
4575 Token otherlv_8=null;
4576 Token otherlv_10=null;
4577 Token otherlv_12=null;
4578 EObject lv_polarity_0_0 = null;
4579 7060
4580 EObject lv_symbol_1_0 = null;
4581 7061
4582 EObject lv_params_3_0 = null; 7062 try {
7063 // InternalSolverLanguage.g:2461:61: (iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF )
7064 // InternalSolverLanguage.g:2462:2: iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF
7065 {
7066 if ( state.backtracking==0 ) {
7067 newCompositeNode(grammarAccess.getEmptyIntervalLiteralRule());
7068 }
7069 pushFollow(FOLLOW_1);
7070 iv_ruleEmptyIntervalLiteral=ruleEmptyIntervalLiteral();
4583 7071
4584 EObject lv_params_5_0 = null; 7072 state._fsp--;
7073 if (state.failed) return current;
7074 if ( state.backtracking==0 ) {
7075 current =iv_ruleEmptyIntervalLiteral;
7076 }
7077 match(input,EOF,FOLLOW_2); if (state.failed) return current;
4585 7078
4586 EObject lv_closureType_7_0 = null; 7079 }
7080
7081 }
7082
7083 catch (RecognitionException re) {
7084 recover(input,re);
7085 appendSkippedTokens();
7086 }
7087 finally {
7088 }
7089 return current;
7090 }
7091 // $ANTLR end "entryRuleEmptyIntervalLiteral"
4587 7092
4588 EObject lv_params_9_0 = null;
4589 7093
4590 EObject lv_params_11_0 = null; 7094 // $ANTLR start "ruleEmptyIntervalLiteral"
7095 // InternalSolverLanguage.g:2468:1: ruleEmptyIntervalLiteral returns [EObject current=null] : ( () otherlv_1= 'empty' ) ;
7096 public final EObject ruleEmptyIntervalLiteral() throws RecognitionException {
7097 EObject current = null;
4591 7098
7099 Token otherlv_1=null;
4592 7100
4593 7101
4594 enterRule(); 7102 enterRule();
4595 7103
4596 try { 7104 try {
4597 // InternalSolverLanguage.g:1556:2: ( ( ( ( (lv_polarity_0_0= rulePolarity ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' )? ) | ( ( (lv_closureType_7_0= ruleClosureType ) ) otherlv_8= '(' ( (lv_params_9_0= ruleLiteral ) )? (otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) )* otherlv_12= ')' ) ) ) 7105 // InternalSolverLanguage.g:2474:2: ( ( () otherlv_1= 'empty' ) )
4598 // InternalSolverLanguage.g:1557:2: ( ( ( (lv_polarity_0_0= rulePolarity ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' )? ) | ( ( (lv_closureType_7_0= ruleClosureType ) ) otherlv_8= '(' ( (lv_params_9_0= ruleLiteral ) )? (otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) )* otherlv_12= ')' ) ) 7106 // InternalSolverLanguage.g:2475:2: ( () otherlv_1= 'empty' )
4599 { 7107 {
4600 // InternalSolverLanguage.g:1557:2: ( ( ( (lv_polarity_0_0= rulePolarity ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' )? ) | ( ( (lv_closureType_7_0= ruleClosureType ) ) otherlv_8= '(' ( (lv_params_9_0= ruleLiteral ) )? (otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) )* otherlv_12= ')' ) ) 7108 // InternalSolverLanguage.g:2475:2: ( () otherlv_1= 'empty' )
4601 int alt33=2; 7109 // InternalSolverLanguage.g:2476:3: () otherlv_1= 'empty'
4602 switch ( input.LA(1) ) { 7110 {
4603 case 30: 7111 // InternalSolverLanguage.g:2476:3: ()
4604 { 7112 // InternalSolverLanguage.g:2477:4:
4605 int LA33_1 = input.LA(2); 7113 {
7114 if ( state.backtracking==0 ) {
4606 7115
4607 if ( (LA33_1==17) ) { 7116 current = forceCreateModelElement(
4608 alt33=2; 7117 grammarAccess.getEmptyIntervalLiteralAccess().getEmptyIntervalLiteralAction_0(),
4609 } 7118 current);
4610 else if ( (LA33_1==RULE_ID) ) { 7119
4611 alt33=1; 7120 }
4612 }
4613 else {
4614 NoViableAltException nvae =
4615 new NoViableAltException("", 33, 1, input);
4616 7121
4617 throw nvae; 7122 }
4618 }
4619 }
4620 break;
4621 case RULE_ID:
4622 case 11:
4623 {
4624 alt33=1;
4625 }
4626 break;
4627 case 31:
4628 {
4629 alt33=2;
4630 }
4631 break;
4632 default:
4633 NoViableAltException nvae =
4634 new NoViableAltException("", 33, 0, input);
4635 7123
4636 throw nvae; 7124 otherlv_1=(Token)match(input,40,FOLLOW_2); if (state.failed) return current;
7125 if ( state.backtracking==0 ) {
7126
7127 newLeafNode(otherlv_1, grammarAccess.getEmptyIntervalLiteralAccess().getEmptyKeyword_1());
7128
4637 } 7129 }
4638 7130
4639 switch (alt33) { 7131 }
4640 case 1 :
4641 // InternalSolverLanguage.g:1558:3: ( ( (lv_polarity_0_0= rulePolarity ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' )? )
4642 {
4643 // InternalSolverLanguage.g:1558:3: ( ( (lv_polarity_0_0= rulePolarity ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' )? )
4644 // InternalSolverLanguage.g:1559:4: ( (lv_polarity_0_0= rulePolarity ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) (otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' )?
4645 {
4646 // InternalSolverLanguage.g:1559:4: ( (lv_polarity_0_0= rulePolarity ) )?
4647 int alt27=2;
4648 int LA27_0 = input.LA(1);
4649 7132
4650 if ( (LA27_0==11||LA27_0==30) ) {
4651 alt27=1;
4652 }
4653 switch (alt27) {
4654 case 1 :
4655 // InternalSolverLanguage.g:1560:5: (lv_polarity_0_0= rulePolarity )
4656 {
4657 // InternalSolverLanguage.g:1560:5: (lv_polarity_0_0= rulePolarity )
4658 // InternalSolverLanguage.g:1561:6: lv_polarity_0_0= rulePolarity
4659 {
4660 7133
4661 newCompositeNode(grammarAccess.getConstraintAccess().getPolarityPolarityParserRuleCall_0_0_0()); 7134 }
4662
4663 pushFollow(FOLLOW_12);
4664 lv_polarity_0_0=rulePolarity();
4665 7135
4666 state._fsp--; 7136 if ( state.backtracking==0 ) {
4667 7137
7138 leaveRule();
4668 7139
4669 if (current==null) { 7140 }
4670 current = createModelElementForParent(grammarAccess.getConstraintRule()); 7141 }
4671 }
4672 set(
4673 current,
4674 "polarity",
4675 lv_polarity_0_0,
4676 "org.eclipse.viatra.solver.language.SolverLanguage.Polarity");
4677 afterParserOrEnumRuleCall();
4678
4679 7142
4680 } 7143 catch (RecognitionException re) {
7144 recover(input,re);
7145 appendSkippedTokens();
7146 }
7147 finally {
7148 }
7149 return current;
7150 }
7151 // $ANTLR end "ruleEmptyIntervalLiteral"
4681 7152
4682 7153
4683 } 7154 // $ANTLR start "entryRuleStringLiteral"
4684 break; 7155 // InternalSolverLanguage.g:2491:1: entryRuleStringLiteral returns [EObject current=null] : iv_ruleStringLiteral= ruleStringLiteral EOF ;
7156 public final EObject entryRuleStringLiteral() throws RecognitionException {
7157 EObject current = null;
4685 7158
4686 } 7159 EObject iv_ruleStringLiteral = null;
4687 7160
4688 // InternalSolverLanguage.g:1578:4: ( (lv_symbol_1_0= ruleModelSymbol ) )
4689 // InternalSolverLanguage.g:1579:5: (lv_symbol_1_0= ruleModelSymbol )
4690 {
4691 // InternalSolverLanguage.g:1579:5: (lv_symbol_1_0= ruleModelSymbol )
4692 // InternalSolverLanguage.g:1580:6: lv_symbol_1_0= ruleModelSymbol
4693 {
4694 7161
4695 newCompositeNode(grammarAccess.getConstraintAccess().getSymbolModelSymbolParserRuleCall_0_1_0()); 7162 try {
4696 7163 // InternalSolverLanguage.g:2491:54: (iv_ruleStringLiteral= ruleStringLiteral EOF )
4697 pushFollow(FOLLOW_23); 7164 // InternalSolverLanguage.g:2492:2: iv_ruleStringLiteral= ruleStringLiteral EOF
4698 lv_symbol_1_0=ruleModelSymbol(); 7165 {
7166 if ( state.backtracking==0 ) {
7167 newCompositeNode(grammarAccess.getStringLiteralRule());
7168 }
7169 pushFollow(FOLLOW_1);
7170 iv_ruleStringLiteral=ruleStringLiteral();
4699 7171
4700 state._fsp--; 7172 state._fsp--;
7173 if (state.failed) return current;
7174 if ( state.backtracking==0 ) {
7175 current =iv_ruleStringLiteral;
7176 }
7177 match(input,EOF,FOLLOW_2); if (state.failed) return current;
4701 7178
7179 }
4702 7180
4703 if (current==null) { 7181 }
4704 current = createModelElementForParent(grammarAccess.getConstraintRule());
4705 }
4706 set(
4707 current,
4708 "symbol",
4709 lv_symbol_1_0,
4710 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
4711 afterParserOrEnumRuleCall();
4712
4713 7182
4714 } 7183 catch (RecognitionException re) {
7184 recover(input,re);
7185 appendSkippedTokens();
7186 }
7187 finally {
7188 }
7189 return current;
7190 }
7191 // $ANTLR end "entryRuleStringLiteral"
4715 7192
4716 7193
4717 } 7194 // $ANTLR start "ruleStringLiteral"
7195 // InternalSolverLanguage.g:2498:1: ruleStringLiteral returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
7196 public final EObject ruleStringLiteral() throws RecognitionException {
7197 EObject current = null;
4718 7198
4719 // InternalSolverLanguage.g:1597:4: (otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' )? 7199 Token lv_value_0_0=null;
4720 int alt30=2;
4721 int LA30_0 = input.LA(1);
4722 7200
4723 if ( (LA30_0==17) ) {
4724 alt30=1;
4725 }
4726 switch (alt30) {
4727 case 1 :
4728 // InternalSolverLanguage.g:1598:5: otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')'
4729 {
4730 otherlv_2=(Token)match(input,17,FOLLOW_24);
4731 7201
4732 newLeafNode(otherlv_2, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_0_2_0()); 7202 enterRule();
4733
4734 // InternalSolverLanguage.g:1602:5: ( (lv_params_3_0= ruleLiteral ) )?
4735 int alt28=2;
4736 int LA28_0 = input.LA(1);
4737 7203
4738 if ( ((LA28_0>=RULE_INT && LA28_0<=RULE_STRING)||LA28_0==11||(LA28_0>=13 && LA28_0<=14)||LA28_0==27) ) { 7204 try {
4739 alt28=1; 7205 // InternalSolverLanguage.g:2504:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
4740 } 7206 // InternalSolverLanguage.g:2505:2: ( (lv_value_0_0= RULE_STRING ) )
4741 switch (alt28) { 7207 {
4742 case 1 : 7208 // InternalSolverLanguage.g:2505:2: ( (lv_value_0_0= RULE_STRING ) )
4743 // InternalSolverLanguage.g:1603:6: (lv_params_3_0= ruleLiteral ) 7209 // InternalSolverLanguage.g:2506:3: (lv_value_0_0= RULE_STRING )
4744 { 7210 {
4745 // InternalSolverLanguage.g:1603:6: (lv_params_3_0= ruleLiteral ) 7211 // InternalSolverLanguage.g:2506:3: (lv_value_0_0= RULE_STRING )
4746 // InternalSolverLanguage.g:1604:7: lv_params_3_0= ruleLiteral 7212 // InternalSolverLanguage.g:2507:4: lv_value_0_0= RULE_STRING
4747 { 7213 {
7214 lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
7215 if ( state.backtracking==0 ) {
4748 7216
4749 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_0_2_1_0()); 7217 newLeafNode(lv_value_0_0, grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_0());
4750 7218
4751 pushFollow(FOLLOW_8); 7219 }
4752 lv_params_3_0=ruleLiteral(); 7220 if ( state.backtracking==0 ) {
4753 7221
4754 state._fsp--; 7222 if (current==null) {
7223 current = createModelElement(grammarAccess.getStringLiteralRule());
7224 }
7225 setWithLastConsumed(
7226 current,
7227 "value",
7228 lv_value_0_0,
7229 "org.eclipse.viatra.solver.language.SolverLanguage.STRING");
7230
7231 }
4755 7232
7233 }
4756 7234
4757 if (current==null) {
4758 current = createModelElementForParent(grammarAccess.getConstraintRule());
4759 }
4760 add(
4761 current,
4762 "params",
4763 lv_params_3_0,
4764 "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
4765 afterParserOrEnumRuleCall();
4766
4767 7235
4768 } 7236 }
4769 7237
4770 7238
4771 } 7239 }
4772 break;
4773 7240
4774 } 7241 if ( state.backtracking==0 ) {
7242
7243 leaveRule();
4775 7244
4776 // InternalSolverLanguage.g:1621:5: (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* 7245 }
4777 loop29: 7246 }
4778 do { 7247
4779 int alt29=2; 7248 catch (RecognitionException re) {
4780 int LA29_0 = input.LA(1); 7249 recover(input,re);
7250 appendSkippedTokens();
7251 }
7252 finally {
7253 }
7254 return current;
7255 }
7256 // $ANTLR end "ruleStringLiteral"
4781 7257
4782 if ( (LA29_0==18) ) {
4783 alt29=1;
4784 }
4785 7258
7259 // $ANTLR start "entryRuleClassDefinition"
7260 // InternalSolverLanguage.g:2526:1: entryRuleClassDefinition returns [EObject current=null] : iv_ruleClassDefinition= ruleClassDefinition EOF ;
7261 public final EObject entryRuleClassDefinition() throws RecognitionException {
7262 EObject current = null;
4786 7263
4787 switch (alt29) { 7264 EObject iv_ruleClassDefinition = null;
4788 case 1 :
4789 // InternalSolverLanguage.g:1622:6: otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) )
4790 {
4791 otherlv_4=(Token)match(input,18,FOLLOW_25);
4792 7265
4793 newLeafNode(otherlv_4, grammarAccess.getConstraintAccess().getCommaKeyword_0_2_2_0());
4794
4795 // InternalSolverLanguage.g:1626:6: ( (lv_params_5_0= ruleLiteral ) )
4796 // InternalSolverLanguage.g:1627:7: (lv_params_5_0= ruleLiteral )
4797 {
4798 // InternalSolverLanguage.g:1627:7: (lv_params_5_0= ruleLiteral )
4799 // InternalSolverLanguage.g:1628:8: lv_params_5_0= ruleLiteral
4800 {
4801 7266
4802 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_0_2_2_1_0()); 7267 try {
4803 7268 // InternalSolverLanguage.g:2526:56: (iv_ruleClassDefinition= ruleClassDefinition EOF )
4804 pushFollow(FOLLOW_8); 7269 // InternalSolverLanguage.g:2527:2: iv_ruleClassDefinition= ruleClassDefinition EOF
4805 lv_params_5_0=ruleLiteral(); 7270 {
7271 if ( state.backtracking==0 ) {
7272 newCompositeNode(grammarAccess.getClassDefinitionRule());
7273 }
7274 pushFollow(FOLLOW_1);
7275 iv_ruleClassDefinition=ruleClassDefinition();
4806 7276
4807 state._fsp--; 7277 state._fsp--;
7278 if (state.failed) return current;
7279 if ( state.backtracking==0 ) {
7280 current =iv_ruleClassDefinition;
7281 }
7282 match(input,EOF,FOLLOW_2); if (state.failed) return current;
4808 7283
7284 }
4809 7285
4810 if (current==null) { 7286 }
4811 current = createModelElementForParent(grammarAccess.getConstraintRule());
4812 }
4813 add(
4814 current,
4815 "params",
4816 lv_params_5_0,
4817 "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
4818 afterParserOrEnumRuleCall();
4819
4820 7287
4821 } 7288 catch (RecognitionException re) {
7289 recover(input,re);
7290 appendSkippedTokens();
7291 }
7292 finally {
7293 }
7294 return current;
7295 }
7296 // $ANTLR end "entryRuleClassDefinition"
4822 7297
4823 7298
4824 } 7299 // $ANTLR start "ruleClassDefinition"
7300 // InternalSolverLanguage.g:2533:1: ruleClassDefinition returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_7= '{' ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= '}' ) ;
7301 public final EObject ruleClassDefinition() throws RecognitionException {
7302 EObject current = null;
4825 7303
7304 Token lv_abstract_0_0=null;
7305 Token otherlv_1=null;
7306 Token lv_name_2_0=null;
7307 Token otherlv_3=null;
7308 Token otherlv_5=null;
7309 Token otherlv_7=null;
7310 Token otherlv_9=null;
7311 EObject lv_members_8_0 = null;
4826 7312
4827 }
4828 break;
4829 7313
4830 default :
4831 break loop29;
4832 }
4833 } while (true);
4834 7314
4835 otherlv_6=(Token)match(input,19,FOLLOW_2); 7315 enterRule();
4836 7316
4837 newLeafNode(otherlv_6, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_0_2_3()); 7317 try {
4838 7318 // InternalSolverLanguage.g:2539:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_7= '{' ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= '}' ) )
7319 // InternalSolverLanguage.g:2540:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_7= '{' ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= '}' )
7320 {
7321 // InternalSolverLanguage.g:2540:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_7= '{' ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= '}' )
7322 // InternalSolverLanguage.g:2541:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_7= '{' ( (lv_members_8_0= ruleMemberDefinition ) )* otherlv_9= '}'
7323 {
7324 // InternalSolverLanguage.g:2541:3: ( (lv_abstract_0_0= 'abstract' ) )?
7325 int alt27=2;
7326 int LA27_0 = input.LA(1);
4839 7327
4840 } 7328 if ( (LA27_0==41) ) {
4841 break; 7329 alt27=1;
7330 }
7331 switch (alt27) {
7332 case 1 :
7333 // InternalSolverLanguage.g:2542:4: (lv_abstract_0_0= 'abstract' )
7334 {
7335 // InternalSolverLanguage.g:2542:4: (lv_abstract_0_0= 'abstract' )
7336 // InternalSolverLanguage.g:2543:5: lv_abstract_0_0= 'abstract'
7337 {
7338 lv_abstract_0_0=(Token)match(input,41,FOLLOW_39); if (state.failed) return current;
7339 if ( state.backtracking==0 ) {
4842 7340
7341 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDefinitionAccess().getAbstractAbstractKeyword_0_0());
7342
4843 } 7343 }
7344 if ( state.backtracking==0 ) {
4844 7345
7346 if (current==null) {
7347 current = createModelElement(grammarAccess.getClassDefinitionRule());
7348 }
7349 setWithLastConsumed(current, "abstract", true, "abstract");
7350
7351 }
4845 7352
4846 } 7353 }
4847 7354
4848 7355
4849 } 7356 }
4850 break; 7357 break;
4851 case 2 :
4852 // InternalSolverLanguage.g:1653:3: ( ( (lv_closureType_7_0= ruleClosureType ) ) otherlv_8= '(' ( (lv_params_9_0= ruleLiteral ) )? (otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) )* otherlv_12= ')' )
4853 {
4854 // InternalSolverLanguage.g:1653:3: ( ( (lv_closureType_7_0= ruleClosureType ) ) otherlv_8= '(' ( (lv_params_9_0= ruleLiteral ) )? (otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) )* otherlv_12= ')' )
4855 // InternalSolverLanguage.g:1654:4: ( (lv_closureType_7_0= ruleClosureType ) ) otherlv_8= '(' ( (lv_params_9_0= ruleLiteral ) )? (otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) )* otherlv_12= ')'
4856 {
4857 // InternalSolverLanguage.g:1654:4: ( (lv_closureType_7_0= ruleClosureType ) )
4858 // InternalSolverLanguage.g:1655:5: (lv_closureType_7_0= ruleClosureType )
4859 {
4860 // InternalSolverLanguage.g:1655:5: (lv_closureType_7_0= ruleClosureType )
4861 // InternalSolverLanguage.g:1656:6: lv_closureType_7_0= ruleClosureType
4862 {
4863 7358
4864 newCompositeNode(grammarAccess.getConstraintAccess().getClosureTypeClosureTypeParserRuleCall_1_0_0()); 7359 }
4865
4866 pushFollow(FOLLOW_26);
4867 lv_closureType_7_0=ruleClosureType();
4868 7360
4869 state._fsp--; 7361 otherlv_1=(Token)match(input,42,FOLLOW_40); if (state.failed) return current;
7362 if ( state.backtracking==0 ) {
4870 7363
7364 newLeafNode(otherlv_1, grammarAccess.getClassDefinitionAccess().getClassKeyword_1());
7365
7366 }
7367 // InternalSolverLanguage.g:2559:3: ( (lv_name_2_0= RULE_ID ) )
7368 // InternalSolverLanguage.g:2560:4: (lv_name_2_0= RULE_ID )
7369 {
7370 // InternalSolverLanguage.g:2560:4: (lv_name_2_0= RULE_ID )
7371 // InternalSolverLanguage.g:2561:5: lv_name_2_0= RULE_ID
7372 {
7373 lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_41); if (state.failed) return current;
7374 if ( state.backtracking==0 ) {
4871 7375
4872 if (current==null) { 7376 newLeafNode(lv_name_2_0, grammarAccess.getClassDefinitionAccess().getNameIDTerminalRuleCall_2_0());
4873 current = createModelElementForParent(grammarAccess.getConstraintRule()); 7377
4874 } 7378 }
4875 set( 7379 if ( state.backtracking==0 ) {
4876 current,
4877 "closureType",
4878 lv_closureType_7_0,
4879 "org.eclipse.viatra.solver.language.SolverLanguage.ClosureType");
4880 afterParserOrEnumRuleCall();
4881
4882 7380
4883 } 7381 if (current==null) {
7382 current = createModelElement(grammarAccess.getClassDefinitionRule());
7383 }
7384 setWithLastConsumed(
7385 current,
7386 "name",
7387 lv_name_2_0,
7388 "org.eclipse.xtext.common.Terminals.ID");
7389
7390 }
4884 7391
7392 }
4885 7393
4886 }
4887 7394
4888 otherlv_8=(Token)match(input,17,FOLLOW_24); 7395 }
4889 7396
4890 newLeafNode(otherlv_8, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_1_1()); 7397 // InternalSolverLanguage.g:2577:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )?
4891 7398 int alt29=2;
4892 // InternalSolverLanguage.g:1677:4: ( (lv_params_9_0= ruleLiteral ) )? 7399 int LA29_0 = input.LA(1);
4893 int alt31=2;
4894 int LA31_0 = input.LA(1);
4895 7400
4896 if ( ((LA31_0>=RULE_INT && LA31_0<=RULE_STRING)||LA31_0==11||(LA31_0>=13 && LA31_0<=14)||LA31_0==27) ) { 7401 if ( (LA29_0==43) ) {
4897 alt31=1; 7402 alt29=1;
4898 } 7403 }
4899 switch (alt31) { 7404 switch (alt29) {
4900 case 1 : 7405 case 1 :
4901 // InternalSolverLanguage.g:1678:5: (lv_params_9_0= ruleLiteral ) 7406 // InternalSolverLanguage.g:2578:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
4902 { 7407 {
4903 // InternalSolverLanguage.g:1678:5: (lv_params_9_0= ruleLiteral ) 7408 otherlv_3=(Token)match(input,43,FOLLOW_35); if (state.failed) return current;
4904 // InternalSolverLanguage.g:1679:6: lv_params_9_0= ruleLiteral 7409 if ( state.backtracking==0 ) {
4905 {
4906 7410
4907 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_1_2_0()); 7411 newLeafNode(otherlv_3, grammarAccess.getClassDefinitionAccess().getExtendsKeyword_3_0());
4908 7412
4909 pushFollow(FOLLOW_8); 7413 }
4910 lv_params_9_0=ruleLiteral(); 7414 // InternalSolverLanguage.g:2582:4: ( ( ruleQualifiedName ) )
7415 // InternalSolverLanguage.g:2583:5: ( ruleQualifiedName )
7416 {
7417 // InternalSolverLanguage.g:2583:5: ( ruleQualifiedName )
7418 // InternalSolverLanguage.g:2584:6: ruleQualifiedName
7419 {
7420 if ( state.backtracking==0 ) {
4911 7421
4912 state._fsp--; 7422 if (current==null) {
7423 current = createModelElement(grammarAccess.getClassDefinitionRule());
7424 }
7425
7426 }
7427 if ( state.backtracking==0 ) {
4913 7428
7429 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_1_0());
7430
7431 }
7432 pushFollow(FOLLOW_42);
7433 ruleQualifiedName();
4914 7434
4915 if (current==null) { 7435 state._fsp--;
4916 current = createModelElementForParent(grammarAccess.getConstraintRule()); 7436 if (state.failed) return current;
4917 } 7437 if ( state.backtracking==0 ) {
4918 add(
4919 current,
4920 "params",
4921 lv_params_9_0,
4922 "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
4923 afterParserOrEnumRuleCall();
4924
4925 7438
4926 } 7439 afterParserOrEnumRuleCall();
7440
7441 }
4927 7442
7443 }
4928 7444
4929 }
4930 break;
4931 7445
4932 } 7446 }
4933 7447
4934 // InternalSolverLanguage.g:1696:4: (otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) )* 7448 // InternalSolverLanguage.g:2598:4: (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
4935 loop32: 7449 loop28:
4936 do { 7450 do {
4937 int alt32=2; 7451 int alt28=2;
4938 int LA32_0 = input.LA(1); 7452 int LA28_0 = input.LA(1);
4939 7453
4940 if ( (LA32_0==18) ) { 7454 if ( (LA28_0==28) ) {
4941 alt32=1; 7455 alt28=1;
4942 } 7456 }
4943 7457
4944 7458
4945 switch (alt32) { 7459 switch (alt28) {
4946 case 1 : 7460 case 1 :
4947 // InternalSolverLanguage.g:1697:5: otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) 7461 // InternalSolverLanguage.g:2599:5: otherlv_5= ',' ( ( ruleQualifiedName ) )
4948 { 7462 {
4949 otherlv_10=(Token)match(input,18,FOLLOW_25); 7463 otherlv_5=(Token)match(input,28,FOLLOW_35); if (state.failed) return current;
7464 if ( state.backtracking==0 ) {
4950 7465
4951 newLeafNode(otherlv_10, grammarAccess.getConstraintAccess().getCommaKeyword_1_3_0()); 7466 newLeafNode(otherlv_5, grammarAccess.getClassDefinitionAccess().getCommaKeyword_3_2_0());
4952 7467
4953 // InternalSolverLanguage.g:1701:5: ( (lv_params_11_0= ruleLiteral ) ) 7468 }
4954 // InternalSolverLanguage.g:1702:6: (lv_params_11_0= ruleLiteral ) 7469 // InternalSolverLanguage.g:2603:5: ( ( ruleQualifiedName ) )
7470 // InternalSolverLanguage.g:2604:6: ( ruleQualifiedName )
4955 { 7471 {
4956 // InternalSolverLanguage.g:1702:6: (lv_params_11_0= ruleLiteral ) 7472 // InternalSolverLanguage.g:2604:6: ( ruleQualifiedName )
4957 // InternalSolverLanguage.g:1703:7: lv_params_11_0= ruleLiteral 7473 // InternalSolverLanguage.g:2605:7: ruleQualifiedName
4958 { 7474 {
7475 if ( state.backtracking==0 ) {
4959 7476
4960 newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_1_3_1_0()); 7477 if (current==null) {
4961 7478 current = createModelElement(grammarAccess.getClassDefinitionRule());
4962 pushFollow(FOLLOW_8); 7479 }
4963 lv_params_11_0=ruleLiteral(); 7480
7481 }
7482 if ( state.backtracking==0 ) {
4964 7483
4965 state._fsp--; 7484 newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_2_1_0());
7485
7486 }
7487 pushFollow(FOLLOW_42);
7488 ruleQualifiedName();
4966 7489
7490 state._fsp--;
7491 if (state.failed) return current;
7492 if ( state.backtracking==0 ) {
4967 7493
4968 if (current==null) { 7494 afterParserOrEnumRuleCall();
4969 current = createModelElementForParent(grammarAccess.getConstraintRule()); 7495
4970 } 7496 }
4971 add(
4972 current,
4973 "params",
4974 lv_params_11_0,
4975 "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
4976 afterParserOrEnumRuleCall();
4977
4978 7497
4979 } 7498 }
4980 7499
@@ -4986,29 +7505,92 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
4986 break; 7505 break;
4987 7506
4988 default : 7507 default :
4989 break loop32; 7508 break loop28;
4990 } 7509 }
4991 } while (true); 7510 } while (true);
4992 7511
4993 otherlv_12=(Token)match(input,19,FOLLOW_2);
4994
4995 newLeafNode(otherlv_12, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_1_4());
4996
4997 7512
4998 } 7513 }
7514 break;
4999 7515
7516 }
7517
7518 otherlv_7=(Token)match(input,30,FOLLOW_43); if (state.failed) return current;
7519 if ( state.backtracking==0 ) {
7520
7521 newLeafNode(otherlv_7, grammarAccess.getClassDefinitionAccess().getLeftCurlyBracketKeyword_4());
7522
7523 }
7524 // InternalSolverLanguage.g:2625:3: ( (lv_members_8_0= ruleMemberDefinition ) )*
7525 loop30:
7526 do {
7527 int alt30=2;
7528 int LA30_0 = input.LA(1);
7529
7530 if ( (LA30_0==RULE_ID||LA30_0==RULE_QUOTED_ID||LA30_0==44) ) {
7531 alt30=1;
7532 }
7533
7534
7535 switch (alt30) {
7536 case 1 :
7537 // InternalSolverLanguage.g:2626:4: (lv_members_8_0= ruleMemberDefinition )
7538 {
7539 // InternalSolverLanguage.g:2626:4: (lv_members_8_0= ruleMemberDefinition )
7540 // InternalSolverLanguage.g:2627:5: lv_members_8_0= ruleMemberDefinition
7541 {
7542 if ( state.backtracking==0 ) {
7543
7544 newCompositeNode(grammarAccess.getClassDefinitionAccess().getMembersMemberDefinitionParserRuleCall_5_0());
7545
7546 }
7547 pushFollow(FOLLOW_43);
7548 lv_members_8_0=ruleMemberDefinition();
7549
7550 state._fsp--;
7551 if (state.failed) return current;
7552 if ( state.backtracking==0 ) {
7553
7554 if (current==null) {
7555 current = createModelElementForParent(grammarAccess.getClassDefinitionRule());
7556 }
7557 add(
7558 current,
7559 "members",
7560 lv_members_8_0,
7561 "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition");
7562 afterParserOrEnumRuleCall();
7563
7564 }
7565
7566 }
5000 7567
5001 } 7568
5002 break; 7569 }
7570 break;
7571
7572 default :
7573 break loop30;
7574 }
7575 } while (true);
7576
7577 otherlv_9=(Token)match(input,31,FOLLOW_2); if (state.failed) return current;
7578 if ( state.backtracking==0 ) {
7579
7580 newLeafNode(otherlv_9, grammarAccess.getClassDefinitionAccess().getRightCurlyBracketKeyword_6());
7581
7582 }
5003 7583
5004 } 7584 }
5005 7585
5006 7586
5007 } 7587 }
5008 7588
7589 if ( state.backtracking==0 ) {
5009 7590
5010 leaveRule(); 7591 leaveRule();
5011 7592
7593 }
5012 } 7594 }
5013 7595
5014 catch (RecognitionException re) { 7596 catch (RecognitionException re) {
@@ -5019,29 +7601,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5019 } 7601 }
5020 return current; 7602 return current;
5021 } 7603 }
5022 // $ANTLR end "ruleConstraint" 7604 // $ANTLR end "ruleClassDefinition"
5023 7605
5024 7606
5025 // $ANTLR start "entryRuleClosureType" 7607 // $ANTLR start "entryRuleMemberDefinition"
5026 // InternalSolverLanguage.g:1730:1: entryRuleClosureType returns [EObject current=null] : iv_ruleClosureType= ruleClosureType EOF ; 7608 // InternalSolverLanguage.g:2652:1: entryRuleMemberDefinition returns [EObject current=null] : iv_ruleMemberDefinition= ruleMemberDefinition EOF ;
5027 public final EObject entryRuleClosureType() throws RecognitionException { 7609 public final EObject entryRuleMemberDefinition() throws RecognitionException {
5028 EObject current = null; 7610 EObject current = null;
5029 7611
5030 EObject iv_ruleClosureType = null; 7612 EObject iv_ruleMemberDefinition = null;
5031 7613
5032 7614
5033 try { 7615 try {
5034 // InternalSolverLanguage.g:1730:52: (iv_ruleClosureType= ruleClosureType EOF ) 7616 // InternalSolverLanguage.g:2652:57: (iv_ruleMemberDefinition= ruleMemberDefinition EOF )
5035 // InternalSolverLanguage.g:1731:2: iv_ruleClosureType= ruleClosureType EOF 7617 // InternalSolverLanguage.g:2653:2: iv_ruleMemberDefinition= ruleMemberDefinition EOF
5036 { 7618 {
5037 newCompositeNode(grammarAccess.getClosureTypeRule()); 7619 if ( state.backtracking==0 ) {
7620 newCompositeNode(grammarAccess.getMemberDefinitionRule());
7621 }
5038 pushFollow(FOLLOW_1); 7622 pushFollow(FOLLOW_1);
5039 iv_ruleClosureType=ruleClosureType(); 7623 iv_ruleMemberDefinition=ruleMemberDefinition();
5040 7624
5041 state._fsp--; 7625 state._fsp--;
5042 7626 if (state.failed) return current;
5043 current =iv_ruleClosureType; 7627 if ( state.backtracking==0 ) {
5044 match(input,EOF,FOLLOW_2); 7628 current =iv_ruleMemberDefinition;
7629 }
7630 match(input,EOF,FOLLOW_2); if (state.failed) return current;
5045 7631
5046 } 7632 }
5047 7633
@@ -5055,89 +7641,226 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5055 } 7641 }
5056 return current; 7642 return current;
5057 } 7643 }
5058 // $ANTLR end "entryRuleClosureType" 7644 // $ANTLR end "entryRuleMemberDefinition"
5059 7645
5060 7646
5061 // $ANTLR start "ruleClosureType" 7647 // $ANTLR start "ruleMemberDefinition"
5062 // InternalSolverLanguage.g:1737:1: ruleClosureType returns [EObject current=null] : ( ( () otherlv_1= '*' ) | ( () otherlv_3= '+' ) ) ; 7648 // InternalSolverLanguage.g:2659:1: ruleMemberDefinition returns [EObject current=null] : ( ( (lv_containment_0_0= 'contains' ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= 'opposite' ( ( ruleQualifiedName ) ) )? (otherlv_6= ';' )? ) ;
5063 public final EObject ruleClosureType() throws RecognitionException { 7649 public final EObject ruleMemberDefinition() throws RecognitionException {
5064 EObject current = null; 7650 EObject current = null;
5065 7651
5066 Token otherlv_1=null; 7652 Token lv_containment_0_0=null;
5067 Token otherlv_3=null; 7653 Token lv_name_3_0=null;
7654 Token otherlv_4=null;
7655 Token otherlv_6=null;
7656 EObject lv_multiplicity_2_0 = null;
7657
5068 7658
5069 7659
5070 enterRule(); 7660 enterRule();
5071 7661
5072 try { 7662 try {
5073 // InternalSolverLanguage.g:1743:2: ( ( ( () otherlv_1= '*' ) | ( () otherlv_3= '+' ) ) ) 7663 // InternalSolverLanguage.g:2665:2: ( ( ( (lv_containment_0_0= 'contains' ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= 'opposite' ( ( ruleQualifiedName ) ) )? (otherlv_6= ';' )? ) )
5074 // InternalSolverLanguage.g:1744:2: ( ( () otherlv_1= '*' ) | ( () otherlv_3= '+' ) ) 7664 // InternalSolverLanguage.g:2666:2: ( ( (lv_containment_0_0= 'contains' ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= 'opposite' ( ( ruleQualifiedName ) ) )? (otherlv_6= ';' )? )
5075 { 7665 {
5076 // InternalSolverLanguage.g:1744:2: ( ( () otherlv_1= '*' ) | ( () otherlv_3= '+' ) ) 7666 // InternalSolverLanguage.g:2666:2: ( ( (lv_containment_0_0= 'contains' ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= 'opposite' ( ( ruleQualifiedName ) ) )? (otherlv_6= ';' )? )
5077 int alt34=2; 7667 // InternalSolverLanguage.g:2667:3: ( (lv_containment_0_0= 'contains' ) )? ( ( ruleQualifiedName ) ) ( (lv_multiplicity_2_0= ruleMultiplicity ) )? ( (lv_name_3_0= RULE_ID ) ) (otherlv_4= 'opposite' ( ( ruleQualifiedName ) ) )? (otherlv_6= ';' )?
5078 int LA34_0 = input.LA(1); 7668 {
7669 // InternalSolverLanguage.g:2667:3: ( (lv_containment_0_0= 'contains' ) )?
7670 int alt31=2;
7671 int LA31_0 = input.LA(1);
7672
7673 if ( (LA31_0==44) ) {
7674 alt31=1;
7675 }
7676 switch (alt31) {
7677 case 1 :
7678 // InternalSolverLanguage.g:2668:4: (lv_containment_0_0= 'contains' )
7679 {
7680 // InternalSolverLanguage.g:2668:4: (lv_containment_0_0= 'contains' )
7681 // InternalSolverLanguage.g:2669:5: lv_containment_0_0= 'contains'
7682 {
7683 lv_containment_0_0=(Token)match(input,44,FOLLOW_35); if (state.failed) return current;
7684 if ( state.backtracking==0 ) {
7685
7686 newLeafNode(lv_containment_0_0, grammarAccess.getMemberDefinitionAccess().getContainmentContainsKeyword_0_0());
7687
7688 }
7689 if ( state.backtracking==0 ) {
7690
7691 if (current==null) {
7692 current = createModelElement(grammarAccess.getMemberDefinitionRule());
7693 }
7694 setWithLastConsumed(current, "containment", true, "contains");
7695
7696 }
7697
7698 }
7699
7700
7701 }
7702 break;
5079 7703
5080 if ( (LA34_0==31) ) {
5081 alt34=1;
5082 } 7704 }
5083 else if ( (LA34_0==30) ) { 7705
5084 alt34=2; 7706 // InternalSolverLanguage.g:2681:3: ( ( ruleQualifiedName ) )
7707 // InternalSolverLanguage.g:2682:4: ( ruleQualifiedName )
7708 {
7709 // InternalSolverLanguage.g:2682:4: ( ruleQualifiedName )
7710 // InternalSolverLanguage.g:2683:5: ruleQualifiedName
7711 {
7712 if ( state.backtracking==0 ) {
7713
7714 if (current==null) {
7715 current = createModelElement(grammarAccess.getMemberDefinitionRule());
7716 }
7717
5085 } 7718 }
5086 else { 7719 if ( state.backtracking==0 ) {
5087 NoViableAltException nvae =
5088 new NoViableAltException("", 34, 0, input);
5089 7720
5090 throw nvae; 7721 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getTypeNamedElementCrossReference_1_0());
7722
5091 } 7723 }
5092 switch (alt34) { 7724 pushFollow(FOLLOW_44);
7725 ruleQualifiedName();
7726
7727 state._fsp--;
7728 if (state.failed) return current;
7729 if ( state.backtracking==0 ) {
7730
7731 afterParserOrEnumRuleCall();
7732
7733 }
7734
7735 }
7736
7737
7738 }
7739
7740 // InternalSolverLanguage.g:2697:3: ( (lv_multiplicity_2_0= ruleMultiplicity ) )?
7741 int alt32=2;
7742 int LA32_0 = input.LA(1);
7743
7744 if ( (LA32_0==36) ) {
7745 alt32=1;
7746 }
7747 switch (alt32) {
5093 case 1 : 7748 case 1 :
5094 // InternalSolverLanguage.g:1745:3: ( () otherlv_1= '*' ) 7749 // InternalSolverLanguage.g:2698:4: (lv_multiplicity_2_0= ruleMultiplicity )
5095 {
5096 // InternalSolverLanguage.g:1745:3: ( () otherlv_1= '*' )
5097 // InternalSolverLanguage.g:1746:4: () otherlv_1= '*'
5098 { 7750 {
5099 // InternalSolverLanguage.g:1746:4: () 7751 // InternalSolverLanguage.g:2698:4: (lv_multiplicity_2_0= ruleMultiplicity )
5100 // InternalSolverLanguage.g:1747:5: 7752 // InternalSolverLanguage.g:2699:5: lv_multiplicity_2_0= ruleMultiplicity
5101 { 7753 {
7754 if ( state.backtracking==0 ) {
5102 7755
5103 current = forceCreateModelElement( 7756 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
5104 grammarAccess.getClosureTypeAccess().getReflexiveClosureAction_0_0(), 7757
5105 current);
5106
5107
5108 } 7758 }
7759 pushFollow(FOLLOW_40);
7760 lv_multiplicity_2_0=ruleMultiplicity();
5109 7761
5110 otherlv_1=(Token)match(input,31,FOLLOW_2); 7762 state._fsp--;
5111 7763 if (state.failed) return current;
5112 newLeafNode(otherlv_1, grammarAccess.getClosureTypeAccess().getAsteriskKeyword_0_1()); 7764 if ( state.backtracking==0 ) {
5113 7765
7766 if (current==null) {
7767 current = createModelElementForParent(grammarAccess.getMemberDefinitionRule());
7768 }
7769 set(
7770 current,
7771 "multiplicity",
7772 lv_multiplicity_2_0,
7773 "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity");
7774 afterParserOrEnumRuleCall();
7775
7776 }
5114 7777
5115 } 7778 }
5116 7779
5117 7780
5118 } 7781 }
5119 break; 7782 break;
5120 case 2 : 7783
5121 // InternalSolverLanguage.g:1759:3: ( () otherlv_3= '+' ) 7784 }
7785
7786 // InternalSolverLanguage.g:2716:3: ( (lv_name_3_0= RULE_ID ) )
7787 // InternalSolverLanguage.g:2717:4: (lv_name_3_0= RULE_ID )
7788 {
7789 // InternalSolverLanguage.g:2717:4: (lv_name_3_0= RULE_ID )
7790 // InternalSolverLanguage.g:2718:5: lv_name_3_0= RULE_ID
7791 {
7792 lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_45); if (state.failed) return current;
7793 if ( state.backtracking==0 ) {
7794
7795 newLeafNode(lv_name_3_0, grammarAccess.getMemberDefinitionAccess().getNameIDTerminalRuleCall_3_0());
7796
7797 }
7798 if ( state.backtracking==0 ) {
7799
7800 if (current==null) {
7801 current = createModelElement(grammarAccess.getMemberDefinitionRule());
7802 }
7803 setWithLastConsumed(
7804 current,
7805 "name",
7806 lv_name_3_0,
7807 "org.eclipse.xtext.common.Terminals.ID");
7808
7809 }
7810
7811 }
7812
7813
7814 }
7815
7816 // InternalSolverLanguage.g:2734:3: (otherlv_4= 'opposite' ( ( ruleQualifiedName ) ) )?
7817 int alt33=2;
7818 int LA33_0 = input.LA(1);
7819
7820 if ( (LA33_0==45) ) {
7821 alt33=1;
7822 }
7823 switch (alt33) {
7824 case 1 :
7825 // InternalSolverLanguage.g:2735:4: otherlv_4= 'opposite' ( ( ruleQualifiedName ) )
5122 { 7826 {
5123 // InternalSolverLanguage.g:1759:3: ( () otherlv_3= '+' ) 7827 otherlv_4=(Token)match(input,45,FOLLOW_35); if (state.failed) return current;
5124 // InternalSolverLanguage.g:1760:4: () otherlv_3= '+' 7828 if ( state.backtracking==0 ) {
7829
7830 newLeafNode(otherlv_4, grammarAccess.getMemberDefinitionAccess().getOppositeKeyword_4_0());
7831
7832 }
7833 // InternalSolverLanguage.g:2739:4: ( ( ruleQualifiedName ) )
7834 // InternalSolverLanguage.g:2740:5: ( ruleQualifiedName )
5125 { 7835 {
5126 // InternalSolverLanguage.g:1760:4: () 7836 // InternalSolverLanguage.g:2740:5: ( ruleQualifiedName )
5127 // InternalSolverLanguage.g:1761:5: 7837 // InternalSolverLanguage.g:2741:6: ruleQualifiedName
5128 { 7838 {
7839 if ( state.backtracking==0 ) {
5129 7840
5130 current = forceCreateModelElement( 7841 if (current==null) {
5131 grammarAccess.getClosureTypeAccess().getIrreflexiveClosureAction_1_0(), 7842 current = createModelElement(grammarAccess.getMemberDefinitionRule());
5132 current); 7843 }
5133 7844
7845 }
7846 if ( state.backtracking==0 ) {
5134 7847
7848 newCompositeNode(grammarAccess.getMemberDefinitionAccess().getOppositeNamedElementCrossReference_4_1_0());
7849
5135 } 7850 }
7851 pushFollow(FOLLOW_18);
7852 ruleQualifiedName();
5136 7853
5137 otherlv_3=(Token)match(input,30,FOLLOW_2); 7854 state._fsp--;
7855 if (state.failed) return current;
7856 if ( state.backtracking==0 ) {
7857
7858 afterParserOrEnumRuleCall();
7859
7860 }
7861
7862 }
5138 7863
5139 newLeafNode(otherlv_3, grammarAccess.getClosureTypeAccess().getPlusSignKeyword_1_1());
5140
5141 7864
5142 } 7865 }
5143 7866
@@ -5147,12 +7870,40 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5147 7870
5148 } 7871 }
5149 7872
7873 // InternalSolverLanguage.g:2756:3: (otherlv_6= ';' )?
7874 int alt34=2;
7875 int LA34_0 = input.LA(1);
5150 7876
7877 if ( (LA34_0==26) ) {
7878 alt34=1;
5151 } 7879 }
7880 switch (alt34) {
7881 case 1 :
7882 // InternalSolverLanguage.g:2757:4: otherlv_6= ';'
7883 {
7884 otherlv_6=(Token)match(input,26,FOLLOW_2); if (state.failed) return current;
7885 if ( state.backtracking==0 ) {
5152 7886
7887 newLeafNode(otherlv_6, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5());
7888
7889 }
5153 7890
5154 leaveRule(); 7891 }
7892 break;
5155 7893
7894 }
7895
7896
7897 }
7898
7899
7900 }
7901
7902 if ( state.backtracking==0 ) {
7903
7904 leaveRule();
7905
7906 }
5156 } 7907 }
5157 7908
5158 catch (RecognitionException re) { 7909 catch (RecognitionException re) {
@@ -5163,29 +7914,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5163 } 7914 }
5164 return current; 7915 return current;
5165 } 7916 }
5166 // $ANTLR end "ruleClosureType" 7917 // $ANTLR end "ruleMemberDefinition"
5167 7918
5168 7919
5169 // $ANTLR start "entryRuleLiteral" 7920 // $ANTLR start "entryRuleMultiplicity"
5170 // InternalSolverLanguage.g:1776:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ; 7921 // InternalSolverLanguage.g:2766:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ;
5171 public final EObject entryRuleLiteral() throws RecognitionException { 7922 public final EObject entryRuleMultiplicity() throws RecognitionException {
5172 EObject current = null; 7923 EObject current = null;
5173 7924
5174 EObject iv_ruleLiteral = null; 7925 EObject iv_ruleMultiplicity = null;
5175 7926
5176 7927
5177 try { 7928 try {
5178 // InternalSolverLanguage.g:1776:48: (iv_ruleLiteral= ruleLiteral EOF ) 7929 // InternalSolverLanguage.g:2766:53: (iv_ruleMultiplicity= ruleMultiplicity EOF )
5179 // InternalSolverLanguage.g:1777:2: iv_ruleLiteral= ruleLiteral EOF 7930 // InternalSolverLanguage.g:2767:2: iv_ruleMultiplicity= ruleMultiplicity EOF
5180 { 7931 {
5181 newCompositeNode(grammarAccess.getLiteralRule()); 7932 if ( state.backtracking==0 ) {
7933 newCompositeNode(grammarAccess.getMultiplicityRule());
7934 }
5182 pushFollow(FOLLOW_1); 7935 pushFollow(FOLLOW_1);
5183 iv_ruleLiteral=ruleLiteral(); 7936 iv_ruleMultiplicity=ruleMultiplicity();
5184 7937
5185 state._fsp--; 7938 state._fsp--;
5186 7939 if (state.failed) return current;
5187 current =iv_ruleLiteral; 7940 if ( state.backtracking==0 ) {
5188 match(input,EOF,FOLLOW_2); 7941 current =iv_ruleMultiplicity;
7942 }
7943 match(input,EOF,FOLLOW_2); if (state.failed) return current;
5189 7944
5190 } 7945 }
5191 7946
@@ -5199,109 +7954,143 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5199 } 7954 }
5200 return current; 7955 return current;
5201 } 7956 }
5202 // $ANTLR end "entryRuleLiteral" 7957 // $ANTLR end "entryRuleMultiplicity"
5203 7958
5204 7959
5205 // $ANTLR start "ruleLiteral" 7960 // $ANTLR start "ruleMultiplicity"
5206 // InternalSolverLanguage.g:1783:1: ruleLiteral returns [EObject current=null] : (this_Variable_0= ruleVariable | this_DataObject_1= ruleDataObject | this_NamedObject_2= ruleNamedObject ) ; 7961 // InternalSolverLanguage.g:2773:1: ruleMultiplicity returns [EObject current=null] : (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ;
5207 public final EObject ruleLiteral() throws RecognitionException { 7962 public final EObject ruleMultiplicity() throws RecognitionException {
5208 EObject current = null; 7963 EObject current = null;
5209 7964
5210 EObject this_Variable_0 = null; 7965 EObject this_ManyMultiplicity_0 = null;
5211 7966
5212 EObject this_DataObject_1 = null; 7967 EObject this_ExactMultiplicity_1 = null;
5213 7968
5214 EObject this_NamedObject_2 = null; 7969 EObject this_BoundedMultiplicity_2 = null;
5215 7970
5216 7971
5217 7972
5218 enterRule(); 7973 enterRule();
5219 7974
5220 try { 7975 try {
5221 // InternalSolverLanguage.g:1789:2: ( (this_Variable_0= ruleVariable | this_DataObject_1= ruleDataObject | this_NamedObject_2= ruleNamedObject ) ) 7976 // InternalSolverLanguage.g:2779:2: ( (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) )
5222 // InternalSolverLanguage.g:1790:2: (this_Variable_0= ruleVariable | this_DataObject_1= ruleDataObject | this_NamedObject_2= ruleNamedObject ) 7977 // InternalSolverLanguage.g:2780:2: (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity )
5223 { 7978 {
5224 // InternalSolverLanguage.g:1790:2: (this_Variable_0= ruleVariable | this_DataObject_1= ruleDataObject | this_NamedObject_2= ruleNamedObject ) 7979 // InternalSolverLanguage.g:2780:2: (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity )
5225 int alt35=3; 7980 int alt35=3;
5226 switch ( input.LA(1) ) { 7981 int LA35_0 = input.LA(1);
5227 case RULE_ID: 7982
5228 { 7983 if ( (LA35_0==36) ) {
5229 alt35=1; 7984 switch ( input.LA(2) ) {
5230 } 7985 case RULE_INT:
5231 break; 7986 {
5232 case RULE_INT: 7987 int LA35_2 = input.LA(3);
5233 case RULE_STRING: 7988
5234 case 11: 7989 if ( (LA35_2==38) ) {
5235 case 13: 7990 alt35=2;
5236 case 14: 7991 }
5237 { 7992 else if ( (LA35_2==37) ) {
5238 alt35=2; 7993 alt35=3;
5239 } 7994 }
5240 break; 7995 else {
5241 case 27: 7996 if (state.backtracking>0) {state.failed=true; return current;}
5242 { 7997 NoViableAltException nvae =
5243 alt35=3; 7998 new NoViableAltException("", 35, 2, input);
7999
8000 throw nvae;
8001 }
8002 }
8003 break;
8004 case 35:
8005 {
8006 alt35=2;
8007 }
8008 break;
8009 case 38:
8010 {
8011 alt35=1;
8012 }
8013 break;
8014 default:
8015 if (state.backtracking>0) {state.failed=true; return current;}
8016 NoViableAltException nvae =
8017 new NoViableAltException("", 35, 1, input);
8018
8019 throw nvae;
5244 } 8020 }
5245 break; 8021
5246 default: 8022 }
8023 else {
8024 if (state.backtracking>0) {state.failed=true; return current;}
5247 NoViableAltException nvae = 8025 NoViableAltException nvae =
5248 new NoViableAltException("", 35, 0, input); 8026 new NoViableAltException("", 35, 0, input);
5249 8027
5250 throw nvae; 8028 throw nvae;
5251 } 8029 }
5252
5253 switch (alt35) { 8030 switch (alt35) {
5254 case 1 : 8031 case 1 :
5255 // InternalSolverLanguage.g:1791:3: this_Variable_0= ruleVariable 8032 // InternalSolverLanguage.g:2781:3: this_ManyMultiplicity_0= ruleManyMultiplicity
5256 { 8033 {
8034 if ( state.backtracking==0 ) {
5257 8035
5258 newCompositeNode(grammarAccess.getLiteralAccess().getVariableParserRuleCall_0()); 8036 newCompositeNode(grammarAccess.getMultiplicityAccess().getManyMultiplicityParserRuleCall_0());
5259 8037
8038 }
5260 pushFollow(FOLLOW_2); 8039 pushFollow(FOLLOW_2);
5261 this_Variable_0=ruleVariable(); 8040 this_ManyMultiplicity_0=ruleManyMultiplicity();
5262 8041
5263 state._fsp--; 8042 state._fsp--;
8043 if (state.failed) return current;
8044 if ( state.backtracking==0 ) {
5264 8045
5265 8046 current = this_ManyMultiplicity_0;
5266 current = this_Variable_0; 8047 afterParserOrEnumRuleCall();
5267 afterParserOrEnumRuleCall(); 8048
5268 8049 }
5269 8050
5270 } 8051 }
5271 break; 8052 break;
5272 case 2 : 8053 case 2 :
5273 // InternalSolverLanguage.g:1800:3: this_DataObject_1= ruleDataObject 8054 // InternalSolverLanguage.g:2790:3: this_ExactMultiplicity_1= ruleExactMultiplicity
5274 { 8055 {
8056 if ( state.backtracking==0 ) {
5275 8057
5276 newCompositeNode(grammarAccess.getLiteralAccess().getDataObjectParserRuleCall_1()); 8058 newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
5277 8059
8060 }
5278 pushFollow(FOLLOW_2); 8061 pushFollow(FOLLOW_2);
5279 this_DataObject_1=ruleDataObject(); 8062 this_ExactMultiplicity_1=ruleExactMultiplicity();
5280 8063
5281 state._fsp--; 8064 state._fsp--;
8065 if (state.failed) return current;
8066 if ( state.backtracking==0 ) {
5282 8067
5283 8068 current = this_ExactMultiplicity_1;
5284 current = this_DataObject_1; 8069 afterParserOrEnumRuleCall();
5285 afterParserOrEnumRuleCall(); 8070
5286 8071 }
5287 8072
5288 } 8073 }
5289 break; 8074 break;
5290 case 3 : 8075 case 3 :
5291 // InternalSolverLanguage.g:1809:3: this_NamedObject_2= ruleNamedObject 8076 // InternalSolverLanguage.g:2799:3: this_BoundedMultiplicity_2= ruleBoundedMultiplicity
5292 { 8077 {
8078 if ( state.backtracking==0 ) {
5293 8079
5294 newCompositeNode(grammarAccess.getLiteralAccess().getNamedObjectParserRuleCall_2()); 8080 newCompositeNode(grammarAccess.getMultiplicityAccess().getBoundedMultiplicityParserRuleCall_2());
5295 8081
8082 }
5296 pushFollow(FOLLOW_2); 8083 pushFollow(FOLLOW_2);
5297 this_NamedObject_2=ruleNamedObject(); 8084 this_BoundedMultiplicity_2=ruleBoundedMultiplicity();
5298 8085
5299 state._fsp--; 8086 state._fsp--;
8087 if (state.failed) return current;
8088 if ( state.backtracking==0 ) {
5300 8089
5301 8090 current = this_BoundedMultiplicity_2;
5302 current = this_NamedObject_2; 8091 afterParserOrEnumRuleCall();
5303 afterParserOrEnumRuleCall(); 8092
5304 8093 }
5305 8094
5306 } 8095 }
5307 break; 8096 break;
@@ -5311,9 +8100,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5311 8100
5312 } 8101 }
5313 8102
8103 if ( state.backtracking==0 ) {
5314 8104
5315 leaveRule(); 8105 leaveRule();
5316 8106
8107 }
5317 } 8108 }
5318 8109
5319 catch (RecognitionException re) { 8110 catch (RecognitionException re) {
@@ -5324,29 +8115,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5324 } 8115 }
5325 return current; 8116 return current;
5326 } 8117 }
5327 // $ANTLR end "ruleLiteral" 8118 // $ANTLR end "ruleMultiplicity"
5328 8119
5329 8120
5330 // $ANTLR start "entryRuleVariable" 8121 // $ANTLR start "entryRuleManyMultiplicity"
5331 // InternalSolverLanguage.g:1821:1: entryRuleVariable returns [EObject current=null] : iv_ruleVariable= ruleVariable EOF ; 8122 // InternalSolverLanguage.g:2811:1: entryRuleManyMultiplicity returns [EObject current=null] : iv_ruleManyMultiplicity= ruleManyMultiplicity EOF ;
5332 public final EObject entryRuleVariable() throws RecognitionException { 8123 public final EObject entryRuleManyMultiplicity() throws RecognitionException {
5333 EObject current = null; 8124 EObject current = null;
5334 8125
5335 EObject iv_ruleVariable = null; 8126 EObject iv_ruleManyMultiplicity = null;
5336 8127
5337 8128
5338 try { 8129 try {
5339 // InternalSolverLanguage.g:1821:49: (iv_ruleVariable= ruleVariable EOF ) 8130 // InternalSolverLanguage.g:2811:57: (iv_ruleManyMultiplicity= ruleManyMultiplicity EOF )
5340 // InternalSolverLanguage.g:1822:2: iv_ruleVariable= ruleVariable EOF 8131 // InternalSolverLanguage.g:2812:2: iv_ruleManyMultiplicity= ruleManyMultiplicity EOF
5341 { 8132 {
5342 newCompositeNode(grammarAccess.getVariableRule()); 8133 if ( state.backtracking==0 ) {
8134 newCompositeNode(grammarAccess.getManyMultiplicityRule());
8135 }
5343 pushFollow(FOLLOW_1); 8136 pushFollow(FOLLOW_1);
5344 iv_ruleVariable=ruleVariable(); 8137 iv_ruleManyMultiplicity=ruleManyMultiplicity();
5345 8138
5346 state._fsp--; 8139 state._fsp--;
5347 8140 if (state.failed) return current;
5348 current =iv_ruleVariable; 8141 if ( state.backtracking==0 ) {
5349 match(input,EOF,FOLLOW_2); 8142 current =iv_ruleManyMultiplicity;
8143 }
8144 match(input,EOF,FOLLOW_2); if (state.failed) return current;
5350 8145
5351 } 8146 }
5352 8147
@@ -5360,55 +8155,63 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5360 } 8155 }
5361 return current; 8156 return current;
5362 } 8157 }
5363 // $ANTLR end "entryRuleVariable" 8158 // $ANTLR end "entryRuleManyMultiplicity"
5364 8159
5365 8160
5366 // $ANTLR start "ruleVariable" 8161 // $ANTLR start "ruleManyMultiplicity"
5367 // InternalSolverLanguage.g:1828:1: ruleVariable returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; 8162 // InternalSolverLanguage.g:2818:1: ruleManyMultiplicity returns [EObject current=null] : ( () otherlv_1= '[' otherlv_2= ']' ) ;
5368 public final EObject ruleVariable() throws RecognitionException { 8163 public final EObject ruleManyMultiplicity() throws RecognitionException {
5369 EObject current = null; 8164 EObject current = null;
5370 8165
5371 Token lv_name_0_0=null; 8166 Token otherlv_1=null;
8167 Token otherlv_2=null;
5372 8168
5373 8169
5374 enterRule(); 8170 enterRule();
5375 8171
5376 try { 8172 try {
5377 // InternalSolverLanguage.g:1834:2: ( ( (lv_name_0_0= RULE_ID ) ) ) 8173 // InternalSolverLanguage.g:2824:2: ( ( () otherlv_1= '[' otherlv_2= ']' ) )
5378 // InternalSolverLanguage.g:1835:2: ( (lv_name_0_0= RULE_ID ) ) 8174 // InternalSolverLanguage.g:2825:2: ( () otherlv_1= '[' otherlv_2= ']' )
5379 { 8175 {
5380 // InternalSolverLanguage.g:1835:2: ( (lv_name_0_0= RULE_ID ) ) 8176 // InternalSolverLanguage.g:2825:2: ( () otherlv_1= '[' otherlv_2= ']' )
5381 // InternalSolverLanguage.g:1836:3: (lv_name_0_0= RULE_ID ) 8177 // InternalSolverLanguage.g:2826:3: () otherlv_1= '[' otherlv_2= ']'
5382 { 8178 {
5383 // InternalSolverLanguage.g:1836:3: (lv_name_0_0= RULE_ID ) 8179 // InternalSolverLanguage.g:2826:3: ()
5384 // InternalSolverLanguage.g:1837:4: lv_name_0_0= RULE_ID 8180 // InternalSolverLanguage.g:2827:4:
5385 { 8181 {
5386 lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_2); 8182 if ( state.backtracking==0 ) {
5387 8183
5388 newLeafNode(lv_name_0_0, grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_0()); 8184 current = forceCreateModelElement(
5389 8185 grammarAccess.getManyMultiplicityAccess().getManyMultiplicityAction_0(),
8186 current);
8187
8188 }
8189
8190 }
5390 8191
5391 if (current==null) { 8192 otherlv_1=(Token)match(input,36,FOLLOW_38); if (state.failed) return current;
5392 current = createModelElement(grammarAccess.getVariableRule()); 8193 if ( state.backtracking==0 ) {
5393 }
5394 setWithLastConsumed(
5395 current,
5396 "name",
5397 lv_name_0_0,
5398 "org.eclipse.xtext.common.Terminals.ID");
5399
5400 8194
8195 newLeafNode(otherlv_1, grammarAccess.getManyMultiplicityAccess().getLeftSquareBracketKeyword_1());
8196
5401 } 8197 }
8198 otherlv_2=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
8199 if ( state.backtracking==0 ) {
5402 8200
8201 newLeafNode(otherlv_2, grammarAccess.getManyMultiplicityAccess().getRightSquareBracketKeyword_2());
8202
8203 }
5403 8204
5404 } 8205 }
5405 8206
5406 8207
5407 } 8208 }
5408 8209
8210 if ( state.backtracking==0 ) {
5409 8211
5410 leaveRule(); 8212 leaveRule();
5411 8213
8214 }
5412 } 8215 }
5413 8216
5414 catch (RecognitionException re) { 8217 catch (RecognitionException re) {
@@ -5419,29 +8222,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5419 } 8222 }
5420 return current; 8223 return current;
5421 } 8224 }
5422 // $ANTLR end "ruleVariable" 8225 // $ANTLR end "ruleManyMultiplicity"
5423 8226
5424 8227
5425 // $ANTLR start "entryRuleAllInstances" 8228 // $ANTLR start "entryRuleExactMultiplicity"
5426 // InternalSolverLanguage.g:1856:1: entryRuleAllInstances returns [EObject current=null] : iv_ruleAllInstances= ruleAllInstances EOF ; 8229 // InternalSolverLanguage.g:2845:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ;
5427 public final EObject entryRuleAllInstances() throws RecognitionException { 8230 public final EObject entryRuleExactMultiplicity() throws RecognitionException {
5428 EObject current = null; 8231 EObject current = null;
5429 8232
5430 EObject iv_ruleAllInstances = null; 8233 EObject iv_ruleExactMultiplicity = null;
5431 8234
5432 8235
5433 try { 8236 try {
5434 // InternalSolverLanguage.g:1856:53: (iv_ruleAllInstances= ruleAllInstances EOF ) 8237 // InternalSolverLanguage.g:2845:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF )
5435 // InternalSolverLanguage.g:1857:2: iv_ruleAllInstances= ruleAllInstances EOF 8238 // InternalSolverLanguage.g:2846:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF
5436 { 8239 {
5437 newCompositeNode(grammarAccess.getAllInstancesRule()); 8240 if ( state.backtracking==0 ) {
8241 newCompositeNode(grammarAccess.getExactMultiplicityRule());
8242 }
5438 pushFollow(FOLLOW_1); 8243 pushFollow(FOLLOW_1);
5439 iv_ruleAllInstances=ruleAllInstances(); 8244 iv_ruleExactMultiplicity=ruleExactMultiplicity();
5440 8245
5441 state._fsp--; 8246 state._fsp--;
5442 8247 if (state.failed) return current;
5443 current =iv_ruleAllInstances; 8248 if ( state.backtracking==0 ) {
5444 match(input,EOF,FOLLOW_2); 8249 current =iv_ruleExactMultiplicity;
8250 }
8251 match(input,EOF,FOLLOW_2); if (state.failed) return current;
5445 8252
5446 } 8253 }
5447 8254
@@ -5455,72 +8262,87 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5455 } 8262 }
5456 return current; 8263 return current;
5457 } 8264 }
5458 // $ANTLR end "entryRuleAllInstances" 8265 // $ANTLR end "entryRuleExactMultiplicity"
5459 8266
5460 8267
5461 // $ANTLR start "ruleAllInstances" 8268 // $ANTLR start "ruleExactMultiplicity"
5462 // InternalSolverLanguage.g:1863:1: ruleAllInstances returns [EObject current=null] : (otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) ) ; 8269 // InternalSolverLanguage.g:2852:1: ruleExactMultiplicity returns [EObject current=null] : (otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']' ) ;
5463 public final EObject ruleAllInstances() throws RecognitionException { 8270 public final EObject ruleExactMultiplicity() throws RecognitionException {
5464 EObject current = null; 8271 EObject current = null;
5465 8272
5466 Token otherlv_0=null; 8273 Token otherlv_0=null;
5467 EObject lv_symbol_1_0 = null; 8274 Token otherlv_2=null;
8275 AntlrDatatypeRuleToken lv_multiplicity_1_0 = null;
5468 8276
5469 8277
5470 8278
5471 enterRule(); 8279 enterRule();
5472 8280
5473 try { 8281 try {
5474 // InternalSolverLanguage.g:1869:2: ( (otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) ) ) 8282 // InternalSolverLanguage.g:2858:2: ( (otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']' ) )
5475 // InternalSolverLanguage.g:1870:2: (otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) ) 8283 // InternalSolverLanguage.g:2859:2: (otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']' )
5476 { 8284 {
5477 // InternalSolverLanguage.g:1870:2: (otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) ) 8285 // InternalSolverLanguage.g:2859:2: (otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']' )
5478 // InternalSolverLanguage.g:1871:3: otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) 8286 // InternalSolverLanguage.g:2860:3: otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']'
5479 { 8287 {
5480 otherlv_0=(Token)match(input,20,FOLLOW_21); 8288 otherlv_0=(Token)match(input,36,FOLLOW_46); if (state.failed) return current;
8289 if ( state.backtracking==0 ) {
5481 8290
5482 newLeafNode(otherlv_0, grammarAccess.getAllInstancesAccess().getColonKeyword_0()); 8291 newLeafNode(otherlv_0, grammarAccess.getExactMultiplicityAccess().getLeftSquareBracketKeyword_0());
5483 8292
5484 // InternalSolverLanguage.g:1875:3: ( (lv_symbol_1_0= ruleSymbol ) ) 8293 }
5485 // InternalSolverLanguage.g:1876:4: (lv_symbol_1_0= ruleSymbol ) 8294 // InternalSolverLanguage.g:2864:3: ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) )
8295 // InternalSolverLanguage.g:2865:4: (lv_multiplicity_1_0= ruleUpperMultiplicty )
5486 { 8296 {
5487 // InternalSolverLanguage.g:1876:4: (lv_symbol_1_0= ruleSymbol ) 8297 // InternalSolverLanguage.g:2865:4: (lv_multiplicity_1_0= ruleUpperMultiplicty )
5488 // InternalSolverLanguage.g:1877:5: lv_symbol_1_0= ruleSymbol 8298 // InternalSolverLanguage.g:2866:5: lv_multiplicity_1_0= ruleUpperMultiplicty
5489 { 8299 {
8300 if ( state.backtracking==0 ) {
5490 8301
5491 newCompositeNode(grammarAccess.getAllInstancesAccess().getSymbolSymbolParserRuleCall_1_0()); 8302 newCompositeNode(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0());
5492 8303
5493 pushFollow(FOLLOW_2); 8304 }
5494 lv_symbol_1_0=ruleSymbol(); 8305 pushFollow(FOLLOW_38);
8306 lv_multiplicity_1_0=ruleUpperMultiplicty();
5495 8307
5496 state._fsp--; 8308 state._fsp--;
8309 if (state.failed) return current;
8310 if ( state.backtracking==0 ) {
5497 8311
5498 8312 if (current==null) {
5499 if (current==null) { 8313 current = createModelElementForParent(grammarAccess.getExactMultiplicityRule());
5500 current = createModelElementForParent(grammarAccess.getAllInstancesRule()); 8314 }
5501 } 8315 set(
5502 set( 8316 current,
5503 current, 8317 "multiplicity",
5504 "symbol", 8318 lv_multiplicity_1_0,
5505 lv_symbol_1_0, 8319 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
5506 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); 8320 afterParserOrEnumRuleCall();
5507 afterParserOrEnumRuleCall(); 8321
5508 8322 }
5509 8323
5510 } 8324 }
5511 8325
5512 8326
5513 } 8327 }
5514 8328
8329 otherlv_2=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
8330 if ( state.backtracking==0 ) {
8331
8332 newLeafNode(otherlv_2, grammarAccess.getExactMultiplicityAccess().getRightSquareBracketKeyword_2());
8333
8334 }
5515 8335
5516 } 8336 }
5517 8337
5518 8338
5519 } 8339 }
5520 8340
8341 if ( state.backtracking==0 ) {
5521 8342
5522 leaveRule(); 8343 leaveRule();
5523 8344
8345 }
5524 } 8346 }
5525 8347
5526 catch (RecognitionException re) { 8348 catch (RecognitionException re) {
@@ -5531,29 +8353,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5531 } 8353 }
5532 return current; 8354 return current;
5533 } 8355 }
5534 // $ANTLR end "ruleAllInstances" 8356 // $ANTLR end "ruleExactMultiplicity"
5535 8357
5536 8358
5537 // $ANTLR start "entryRuleAllObjects" 8359 // $ANTLR start "entryRuleBoundedMultiplicity"
5538 // InternalSolverLanguage.g:1898:1: entryRuleAllObjects returns [EObject current=null] : iv_ruleAllObjects= ruleAllObjects EOF ; 8360 // InternalSolverLanguage.g:2891:1: entryRuleBoundedMultiplicity returns [EObject current=null] : iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ;
5539 public final EObject entryRuleAllObjects() throws RecognitionException { 8361 public final EObject entryRuleBoundedMultiplicity() throws RecognitionException {
5540 EObject current = null; 8362 EObject current = null;
5541 8363
5542 EObject iv_ruleAllObjects = null; 8364 EObject iv_ruleBoundedMultiplicity = null;
5543 8365
5544 8366
5545 try { 8367 try {
5546 // InternalSolverLanguage.g:1898:51: (iv_ruleAllObjects= ruleAllObjects EOF ) 8368 // InternalSolverLanguage.g:2891:60: (iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF )
5547 // InternalSolverLanguage.g:1899:2: iv_ruleAllObjects= ruleAllObjects EOF 8369 // InternalSolverLanguage.g:2892:2: iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF
5548 { 8370 {
5549 newCompositeNode(grammarAccess.getAllObjectsRule()); 8371 if ( state.backtracking==0 ) {
8372 newCompositeNode(grammarAccess.getBoundedMultiplicityRule());
8373 }
5550 pushFollow(FOLLOW_1); 8374 pushFollow(FOLLOW_1);
5551 iv_ruleAllObjects=ruleAllObjects(); 8375 iv_ruleBoundedMultiplicity=ruleBoundedMultiplicity();
5552 8376
5553 state._fsp--; 8377 state._fsp--;
5554 8378 if (state.failed) return current;
5555 current =iv_ruleAllObjects; 8379 if ( state.backtracking==0 ) {
5556 match(input,EOF,FOLLOW_2); 8380 current =iv_ruleBoundedMultiplicity;
8381 }
8382 match(input,EOF,FOLLOW_2); if (state.failed) return current;
5557 8383
5558 } 8384 }
5559 8385
@@ -5567,50 +8393,125 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5567 } 8393 }
5568 return current; 8394 return current;
5569 } 8395 }
5570 // $ANTLR end "entryRuleAllObjects" 8396 // $ANTLR end "entryRuleBoundedMultiplicity"
5571 8397
5572 8398
5573 // $ANTLR start "ruleAllObjects" 8399 // $ANTLR start "ruleBoundedMultiplicity"
5574 // InternalSolverLanguage.g:1905:1: ruleAllObjects returns [EObject current=null] : ( () otherlv_1= '*' ) ; 8400 // InternalSolverLanguage.g:2898:1: ruleBoundedMultiplicity returns [EObject current=null] : (otherlv_0= '[' ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= ']' ) ;
5575 public final EObject ruleAllObjects() throws RecognitionException { 8401 public final EObject ruleBoundedMultiplicity() throws RecognitionException {
5576 EObject current = null; 8402 EObject current = null;
5577 8403
5578 Token otherlv_1=null; 8404 Token otherlv_0=null;
8405 Token lv_lowerBound_1_0=null;
8406 Token otherlv_2=null;
8407 Token otherlv_4=null;
8408 AntlrDatatypeRuleToken lv_upperBound_3_0 = null;
8409
5579 8410
5580 8411
5581 enterRule(); 8412 enterRule();
5582 8413
5583 try { 8414 try {
5584 // InternalSolverLanguage.g:1911:2: ( ( () otherlv_1= '*' ) ) 8415 // InternalSolverLanguage.g:2904:2: ( (otherlv_0= '[' ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= ']' ) )
5585 // InternalSolverLanguage.g:1912:2: ( () otherlv_1= '*' ) 8416 // InternalSolverLanguage.g:2905:2: (otherlv_0= '[' ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= ']' )
5586 { 8417 {
5587 // InternalSolverLanguage.g:1912:2: ( () otherlv_1= '*' ) 8418 // InternalSolverLanguage.g:2905:2: (otherlv_0= '[' ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= ']' )
5588 // InternalSolverLanguage.g:1913:3: () otherlv_1= '*' 8419 // InternalSolverLanguage.g:2906:3: otherlv_0= '[' ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= ']'
5589 { 8420 {
5590 // InternalSolverLanguage.g:1913:3: () 8421 otherlv_0=(Token)match(input,36,FOLLOW_47); if (state.failed) return current;
5591 // InternalSolverLanguage.g:1914:4: 8422 if ( state.backtracking==0 ) {
8423
8424 newLeafNode(otherlv_0, grammarAccess.getBoundedMultiplicityAccess().getLeftSquareBracketKeyword_0());
8425
8426 }
8427 // InternalSolverLanguage.g:2910:3: ( (lv_lowerBound_1_0= RULE_INT ) )
8428 // InternalSolverLanguage.g:2911:4: (lv_lowerBound_1_0= RULE_INT )
5592 { 8429 {
8430 // InternalSolverLanguage.g:2911:4: (lv_lowerBound_1_0= RULE_INT )
8431 // InternalSolverLanguage.g:2912:5: lv_lowerBound_1_0= RULE_INT
8432 {
8433 lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_37); if (state.failed) return current;
8434 if ( state.backtracking==0 ) {
5593 8435
5594 current = forceCreateModelElement( 8436 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0());
5595 grammarAccess.getAllObjectsAccess().getAllObjectsAction_0(), 8437
5596 current); 8438 }
5597 8439 if ( state.backtracking==0 ) {
5598 8440
8441 if (current==null) {
8442 current = createModelElement(grammarAccess.getBoundedMultiplicityRule());
8443 }
8444 setWithLastConsumed(
8445 current,
8446 "lowerBound",
8447 lv_lowerBound_1_0,
8448 "org.eclipse.xtext.common.Terminals.INT");
8449
5599 } 8450 }
5600 8451
5601 otherlv_1=(Token)match(input,31,FOLLOW_2); 8452 }
5602 8453
5603 newLeafNode(otherlv_1, grammarAccess.getAllObjectsAccess().getAsteriskKeyword_1());
5604
5605 8454
5606 } 8455 }
5607 8456
8457 otherlv_2=(Token)match(input,37,FOLLOW_46); if (state.failed) return current;
8458 if ( state.backtracking==0 ) {
5608 8459
8460 newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getFullStopFullStopKeyword_2());
8461
5609 } 8462 }
8463 // InternalSolverLanguage.g:2932:3: ( (lv_upperBound_3_0= ruleUpperMultiplicty ) )
8464 // InternalSolverLanguage.g:2933:4: (lv_upperBound_3_0= ruleUpperMultiplicty )
8465 {
8466 // InternalSolverLanguage.g:2933:4: (lv_upperBound_3_0= ruleUpperMultiplicty )
8467 // InternalSolverLanguage.g:2934:5: lv_upperBound_3_0= ruleUpperMultiplicty
8468 {
8469 if ( state.backtracking==0 ) {
8470
8471 newCompositeNode(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0());
8472
8473 }
8474 pushFollow(FOLLOW_38);
8475 lv_upperBound_3_0=ruleUpperMultiplicty();
5610 8476
8477 state._fsp--;
8478 if (state.failed) return current;
8479 if ( state.backtracking==0 ) {
8480
8481 if (current==null) {
8482 current = createModelElementForParent(grammarAccess.getBoundedMultiplicityRule());
8483 }
8484 set(
8485 current,
8486 "upperBound",
8487 lv_upperBound_3_0,
8488 "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
8489 afterParserOrEnumRuleCall();
8490
8491 }
5611 8492
5612 leaveRule(); 8493 }
5613 8494
8495
8496 }
8497
8498 otherlv_4=(Token)match(input,38,FOLLOW_2); if (state.failed) return current;
8499 if ( state.backtracking==0 ) {
8500
8501 newLeafNode(otherlv_4, grammarAccess.getBoundedMultiplicityAccess().getRightSquareBracketKeyword_4());
8502
8503 }
8504
8505 }
8506
8507
8508 }
8509
8510 if ( state.backtracking==0 ) {
8511
8512 leaveRule();
8513
8514 }
5614 } 8515 }
5615 8516
5616 catch (RecognitionException re) { 8517 catch (RecognitionException re) {
@@ -5621,32 +8522,149 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5621 } 8522 }
5622 return current; 8523 return current;
5623 } 8524 }
5624 // $ANTLR end "ruleAllObjects" 8525 // $ANTLR end "ruleBoundedMultiplicity"
5625 8526
5626 8527
5627 // $ANTLR start "entryRuleDefaultInterpretation" 8528 // $ANTLR start "entryRuleScopeDefinition"
5628 // InternalSolverLanguage.g:1928:1: entryRuleDefaultInterpretation returns [EObject current=null] : iv_ruleDefaultInterpretation= ruleDefaultInterpretation EOF ; 8529 // InternalSolverLanguage.g:2959:1: entryRuleScopeDefinition returns [EObject current=null] : iv_ruleScopeDefinition= ruleScopeDefinition EOF ;
5629 public final EObject entryRuleDefaultInterpretation() throws RecognitionException { 8530 public final EObject entryRuleScopeDefinition() throws RecognitionException {
5630 EObject current = null; 8531 EObject current = null;
5631 8532
5632 EObject iv_ruleDefaultInterpretation = null; 8533 EObject iv_ruleScopeDefinition = null;
5633 8534
5634 8535
5635 try { 8536 try {
5636 // InternalSolverLanguage.g:1928:62: (iv_ruleDefaultInterpretation= ruleDefaultInterpretation EOF ) 8537 // InternalSolverLanguage.g:2959:56: (iv_ruleScopeDefinition= ruleScopeDefinition EOF )
5637 // InternalSolverLanguage.g:1929:2: iv_ruleDefaultInterpretation= ruleDefaultInterpretation EOF 8538 // InternalSolverLanguage.g:2960:2: iv_ruleScopeDefinition= ruleScopeDefinition EOF
5638 { 8539 {
5639 newCompositeNode(grammarAccess.getDefaultInterpretationRule()); 8540 if ( state.backtracking==0 ) {
8541 newCompositeNode(grammarAccess.getScopeDefinitionRule());
8542 }
5640 pushFollow(FOLLOW_1); 8543 pushFollow(FOLLOW_1);
5641 iv_ruleDefaultInterpretation=ruleDefaultInterpretation(); 8544 iv_ruleScopeDefinition=ruleScopeDefinition();
5642 8545
5643 state._fsp--; 8546 state._fsp--;
8547 if (state.failed) return current;
8548 if ( state.backtracking==0 ) {
8549 current =iv_ruleScopeDefinition;
8550 }
8551 match(input,EOF,FOLLOW_2); if (state.failed) return current;
8552
8553 }
8554
8555 }
8556
8557 catch (RecognitionException re) {
8558 recover(input,re);
8559 appendSkippedTokens();
8560 }
8561 finally {
8562 }
8563 return current;
8564 }
8565 // $ANTLR end "entryRuleScopeDefinition"
8566
8567
8568 // $ANTLR start "ruleScopeDefinition"
8569 // InternalSolverLanguage.g:2966:1: ruleScopeDefinition returns [EObject current=null] : (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) ;
8570 public final EObject ruleScopeDefinition() throws RecognitionException {
8571 EObject current = null;
8572
8573 EObject this_ExactScopeDefinition_0 = null;
8574
8575 EObject this_BoundedScopeDefinition_1 = null;
8576
8577 EObject this_LowerBoundedScopeDefinition_2 = null;
8578
8579
8580
8581 enterRule();
8582
8583 try {
8584 // InternalSolverLanguage.g:2972:2: ( (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) )
8585 // InternalSolverLanguage.g:2973:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition )
8586 {
8587 // InternalSolverLanguage.g:2973:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition )
8588 int alt36=3;
8589 alt36 = dfa36.predict(input);
8590 switch (alt36) {
8591 case 1 :
8592 // InternalSolverLanguage.g:2974:3: this_ExactScopeDefinition_0= ruleExactScopeDefinition
8593 {
8594 if ( state.backtracking==0 ) {
8595
8596 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getExactScopeDefinitionParserRuleCall_0());
8597
8598 }
8599 pushFollow(FOLLOW_2);
8600 this_ExactScopeDefinition_0=ruleExactScopeDefinition();
8601
8602 state._fsp--;
8603 if (state.failed) return current;
8604 if ( state.backtracking==0 ) {
5644 8605
5645 current =iv_ruleDefaultInterpretation; 8606 current = this_ExactScopeDefinition_0;
5646 match(input,EOF,FOLLOW_2); 8607 afterParserOrEnumRuleCall();
8608
8609 }
8610
8611 }
8612 break;
8613 case 2 :
8614 // InternalSolverLanguage.g:2983:3: this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition
8615 {
8616 if ( state.backtracking==0 ) {
8617
8618 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getBoundedScopeDefinitionParserRuleCall_1());
8619
8620 }
8621 pushFollow(FOLLOW_2);
8622 this_BoundedScopeDefinition_1=ruleBoundedScopeDefinition();
8623
8624 state._fsp--;
8625 if (state.failed) return current;
8626 if ( state.backtracking==0 ) {
8627
8628 current = this_BoundedScopeDefinition_1;
8629 afterParserOrEnumRuleCall();
8630
8631 }
8632
8633 }
8634 break;
8635 case 3 :
8636 // InternalSolverLanguage.g:2992:3: this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition
8637 {
8638 if ( state.backtracking==0 ) {
8639
8640 newCompositeNode(grammarAccess.getScopeDefinitionAccess().getLowerBoundedScopeDefinitionParserRuleCall_2());
8641
8642 }
8643 pushFollow(FOLLOW_2);
8644 this_LowerBoundedScopeDefinition_2=ruleLowerBoundedScopeDefinition();
8645
8646 state._fsp--;
8647 if (state.failed) return current;
8648 if ( state.backtracking==0 ) {
8649
8650 current = this_LowerBoundedScopeDefinition_2;
8651 afterParserOrEnumRuleCall();
8652
8653 }
8654
8655 }
8656 break;
5647 8657
5648 } 8658 }
5649 8659
8660
8661 }
8662
8663 if ( state.backtracking==0 ) {
8664
8665 leaveRule();
8666
8667 }
5650 } 8668 }
5651 8669
5652 catch (RecognitionException re) { 8670 catch (RecognitionException re) {
@@ -5657,63 +8675,138 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5657 } 8675 }
5658 return current; 8676 return current;
5659 } 8677 }
5660 // $ANTLR end "entryRuleDefaultInterpretation" 8678 // $ANTLR end "ruleScopeDefinition"
5661 8679
5662 8680
5663 // $ANTLR start "ruleDefaultInterpretation" 8681 // $ANTLR start "entryRuleExactScopeDefinition"
5664 // InternalSolverLanguage.g:1935:1: ruleDefaultInterpretation returns [EObject current=null] : (otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) ) ; 8682 // InternalSolverLanguage.g:3004:1: entryRuleExactScopeDefinition returns [EObject current=null] : iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF ;
5665 public final EObject ruleDefaultInterpretation() throws RecognitionException { 8683 public final EObject entryRuleExactScopeDefinition() throws RecognitionException {
5666 EObject current = null; 8684 EObject current = null;
5667 8685
5668 Token otherlv_0=null; 8686 EObject iv_ruleExactScopeDefinition = null;
5669 EObject lv_interpretation_1_0 = null; 8687
8688
8689 try {
8690 // InternalSolverLanguage.g:3004:61: (iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF )
8691 // InternalSolverLanguage.g:3005:2: iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF
8692 {
8693 if ( state.backtracking==0 ) {
8694 newCompositeNode(grammarAccess.getExactScopeDefinitionRule());
8695 }
8696 pushFollow(FOLLOW_1);
8697 iv_ruleExactScopeDefinition=ruleExactScopeDefinition();
8698
8699 state._fsp--;
8700 if (state.failed) return current;
8701 if ( state.backtracking==0 ) {
8702 current =iv_ruleExactScopeDefinition;
8703 }
8704 match(input,EOF,FOLLOW_2); if (state.failed) return current;
8705
8706 }
5670 8707
8708 }
8709
8710 catch (RecognitionException re) {
8711 recover(input,re);
8712 appendSkippedTokens();
8713 }
8714 finally {
8715 }
8716 return current;
8717 }
8718 // $ANTLR end "entryRuleExactScopeDefinition"
8719
8720
8721 // $ANTLR start "ruleExactScopeDefinition"
8722 // InternalSolverLanguage.g:3011:1: ruleExactScopeDefinition returns [EObject current=null] : (otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) ) ) ;
8723 public final EObject ruleExactScopeDefinition() throws RecognitionException {
8724 EObject current = null;
8725
8726 Token otherlv_0=null;
8727 Token otherlv_2=null;
8728 Token lv_exactScope_3_0=null;
5671 8729
5672 8730
5673 enterRule(); 8731 enterRule();
5674 8732
5675 try { 8733 try {
5676 // InternalSolverLanguage.g:1941:2: ( (otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) ) ) 8734 // InternalSolverLanguage.g:3017:2: ( (otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) ) ) )
5677 // InternalSolverLanguage.g:1942:2: (otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) ) 8735 // InternalSolverLanguage.g:3018:2: (otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) ) )
5678 { 8736 {
5679 // InternalSolverLanguage.g:1942:2: (otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) ) 8737 // InternalSolverLanguage.g:3018:2: (otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) ) )
5680 // InternalSolverLanguage.g:1943:3: otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) 8738 // InternalSolverLanguage.g:3019:3: otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) )
5681 { 8739 {
5682 otherlv_0=(Token)match(input,32,FOLLOW_21); 8740 otherlv_0=(Token)match(input,46,FOLLOW_35); if (state.failed) return current;
8741 if ( state.backtracking==0 ) {
5683 8742
5684 newLeafNode(otherlv_0, grammarAccess.getDefaultInterpretationAccess().getDefaultKeyword_0()); 8743 newLeafNode(otherlv_0, grammarAccess.getExactScopeDefinitionAccess().getScopeKeyword_0());
5685 8744
5686 // InternalSolverLanguage.g:1947:3: ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) 8745 }
5687 // InternalSolverLanguage.g:1948:4: (lv_interpretation_1_0= ruleBasicInterpretation ) 8746 // InternalSolverLanguage.g:3023:3: ( ( ruleQualifiedName ) )
8747 // InternalSolverLanguage.g:3024:4: ( ruleQualifiedName )
5688 { 8748 {
5689 // InternalSolverLanguage.g:1948:4: (lv_interpretation_1_0= ruleBasicInterpretation ) 8749 // InternalSolverLanguage.g:3024:4: ( ruleQualifiedName )
5690 // InternalSolverLanguage.g:1949:5: lv_interpretation_1_0= ruleBasicInterpretation 8750 // InternalSolverLanguage.g:3025:5: ruleQualifiedName
5691 { 8751 {
8752 if ( state.backtracking==0 ) {
5692 8753
5693 newCompositeNode(grammarAccess.getDefaultInterpretationAccess().getInterpretationBasicInterpretationParserRuleCall_1_0()); 8754 if (current==null) {
5694 8755 current = createModelElement(grammarAccess.getExactScopeDefinitionRule());
5695 pushFollow(FOLLOW_2); 8756 }
5696 lv_interpretation_1_0=ruleBasicInterpretation(); 8757
8758 }
8759 if ( state.backtracking==0 ) {
8760
8761 newCompositeNode(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0());
8762
8763 }
8764 pushFollow(FOLLOW_48);
8765 ruleQualifiedName();
5697 8766
5698 state._fsp--; 8767 state._fsp--;
8768 if (state.failed) return current;
8769 if ( state.backtracking==0 ) {
5699 8770
8771 afterParserOrEnumRuleCall();
8772
8773 }
8774
8775 }
5700 8776
5701 if (current==null) {
5702 current = createModelElementForParent(grammarAccess.getDefaultInterpretationRule());
5703 }
5704 set(
5705 current,
5706 "interpretation",
5707 lv_interpretation_1_0,
5708 "org.eclipse.viatra.solver.language.SolverLanguage.BasicInterpretation");
5709 afterParserOrEnumRuleCall();
5710
5711 8777
5712 } 8778 }
5713 8779
8780 otherlv_2=(Token)match(input,47,FOLLOW_47); if (state.failed) return current;
8781 if ( state.backtracking==0 ) {
5714 8782
8783 newLeafNode(otherlv_2, grammarAccess.getExactScopeDefinitionAccess().getEqualsSignEqualsSignKeyword_2());
8784
5715 } 8785 }
8786 // InternalSolverLanguage.g:3043:3: ( (lv_exactScope_3_0= RULE_INT ) )
8787 // InternalSolverLanguage.g:3044:4: (lv_exactScope_3_0= RULE_INT )
8788 {
8789 // InternalSolverLanguage.g:3044:4: (lv_exactScope_3_0= RULE_INT )
8790 // InternalSolverLanguage.g:3045:5: lv_exactScope_3_0= RULE_INT
8791 {
8792 lv_exactScope_3_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
8793 if ( state.backtracking==0 ) {
5716 8794
8795 newLeafNode(lv_exactScope_3_0, grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0());
8796
8797 }
8798 if ( state.backtracking==0 ) {
8799
8800 if (current==null) {
8801 current = createModelElement(grammarAccess.getExactScopeDefinitionRule());
8802 }
8803 setWithLastConsumed(
8804 current,
8805 "exactScope",
8806 lv_exactScope_3_0,
8807 "org.eclipse.xtext.common.Terminals.INT");
8808
8809 }
5717 8810
5718 } 8811 }
5719 8812
@@ -5721,8 +8814,16 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5721 } 8814 }
5722 8815
5723 8816
5724 leaveRule(); 8817 }
8818
8819
8820 }
5725 8821
8822 if ( state.backtracking==0 ) {
8823
8824 leaveRule();
8825
8826 }
5726 } 8827 }
5727 8828
5728 catch (RecognitionException re) { 8829 catch (RecognitionException re) {
@@ -5733,29 +8834,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5733 } 8834 }
5734 return current; 8835 return current;
5735 } 8836 }
5736 // $ANTLR end "ruleDefaultInterpretation" 8837 // $ANTLR end "ruleExactScopeDefinition"
5737 8838
5738 8839
5739 // $ANTLR start "entryRuleCDInterpretation" 8840 // $ANTLR start "entryRuleBoundedScopeDefinition"
5740 // InternalSolverLanguage.g:1970:1: entryRuleCDInterpretation returns [EObject current=null] : iv_ruleCDInterpretation= ruleCDInterpretation EOF ; 8841 // InternalSolverLanguage.g:3065:1: entryRuleBoundedScopeDefinition returns [EObject current=null] : iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF ;
5741 public final EObject entryRuleCDInterpretation() throws RecognitionException { 8842 public final EObject entryRuleBoundedScopeDefinition() throws RecognitionException {
5742 EObject current = null; 8843 EObject current = null;
5743 8844
5744 EObject iv_ruleCDInterpretation = null; 8845 EObject iv_ruleBoundedScopeDefinition = null;
5745 8846
5746 8847
5747 try { 8848 try {
5748 // InternalSolverLanguage.g:1970:57: (iv_ruleCDInterpretation= ruleCDInterpretation EOF ) 8849 // InternalSolverLanguage.g:3065:63: (iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF )
5749 // InternalSolverLanguage.g:1971:2: iv_ruleCDInterpretation= ruleCDInterpretation EOF 8850 // InternalSolverLanguage.g:3066:2: iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF
5750 { 8851 {
5751 newCompositeNode(grammarAccess.getCDInterpretationRule()); 8852 if ( state.backtracking==0 ) {
8853 newCompositeNode(grammarAccess.getBoundedScopeDefinitionRule());
8854 }
5752 pushFollow(FOLLOW_1); 8855 pushFollow(FOLLOW_1);
5753 iv_ruleCDInterpretation=ruleCDInterpretation(); 8856 iv_ruleBoundedScopeDefinition=ruleBoundedScopeDefinition();
5754 8857
5755 state._fsp--; 8858 state._fsp--;
5756 8859 if (state.failed) return current;
5757 current =iv_ruleCDInterpretation; 8860 if ( state.backtracking==0 ) {
5758 match(input,EOF,FOLLOW_2); 8861 current =iv_ruleBoundedScopeDefinition;
8862 }
8863 match(input,EOF,FOLLOW_2); if (state.failed) return current;
5759 8864
5760 } 8865 }
5761 8866
@@ -5769,119 +8874,363 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5769 } 8874 }
5770 return current; 8875 return current;
5771 } 8876 }
5772 // $ANTLR end "entryRuleCDInterpretation" 8877 // $ANTLR end "entryRuleBoundedScopeDefinition"
5773 8878
5774 8879
5775 // $ANTLR start "ruleCDInterpretation" 8880 // $ANTLR start "ruleBoundedScopeDefinition"
5776 // InternalSolverLanguage.g:1977:1: ruleCDInterpretation returns [EObject current=null] : (this_ClassInterpretation_0= ruleClassInterpretation | this_EnumInterpretation_1= ruleEnumInterpretation | this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation ) ; 8881 // InternalSolverLanguage.g:3072:1: ruleBoundedScopeDefinition returns [EObject current=null] : (otherlv_0= 'scope' ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) otherlv_11= '.' ) ;
5777 public final EObject ruleCDInterpretation() throws RecognitionException { 8882 public final EObject ruleBoundedScopeDefinition() throws RecognitionException {
5778 EObject current = null; 8883 EObject current = null;
5779 8884
5780 EObject this_ClassInterpretation_0 = null; 8885 Token otherlv_0=null;
5781 8886 Token lv_lowerBound_1_0=null;
5782 EObject this_EnumInterpretation_1 = null; 8887 Token otherlv_2=null;
5783 8888 Token otherlv_4=null;
5784 EObject this_GlobalRelationInterpretation_2 = null; 8889 Token lv_upperBound_5_0=null;
5785 8890 Token lv_upperBound_6_0=null;
8891 Token otherlv_7=null;
8892 Token otherlv_9=null;
8893 Token lv_lowerBound_10_0=null;
8894 Token otherlv_11=null;
5786 8895
5787 8896
5788 enterRule(); 8897 enterRule();
5789 8898
5790 try { 8899 try {
5791 // InternalSolverLanguage.g:1983:2: ( (this_ClassInterpretation_0= ruleClassInterpretation | this_EnumInterpretation_1= ruleEnumInterpretation | this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation ) ) 8900 // InternalSolverLanguage.g:3078:2: ( (otherlv_0= 'scope' ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) otherlv_11= '.' ) )
5792 // InternalSolverLanguage.g:1984:2: (this_ClassInterpretation_0= ruleClassInterpretation | this_EnumInterpretation_1= ruleEnumInterpretation | this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation ) 8901 // InternalSolverLanguage.g:3079:2: (otherlv_0= 'scope' ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) otherlv_11= '.' )
5793 { 8902 {
5794 // InternalSolverLanguage.g:1984:2: (this_ClassInterpretation_0= ruleClassInterpretation | this_EnumInterpretation_1= ruleEnumInterpretation | this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation ) 8903 // InternalSolverLanguage.g:3079:2: (otherlv_0= 'scope' ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) otherlv_11= '.' )
5795 int alt36=3; 8904 // InternalSolverLanguage.g:3080:3: otherlv_0= 'scope' ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) ) otherlv_11= '.'
5796 switch ( input.LA(1) ) { 8905 {
5797 case 33: 8906 otherlv_0=(Token)match(input,46,FOLLOW_49); if (state.failed) return current;
5798 case 34: 8907 if ( state.backtracking==0 ) {
5799 { 8908
5800 alt36=1; 8909 newLeafNode(otherlv_0, grammarAccess.getBoundedScopeDefinitionAccess().getScopeKeyword_0());
8910
8911 }
8912 // InternalSolverLanguage.g:3084:3: ( ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) ) | ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) )
8913 int alt39=2;
8914 int LA39_0 = input.LA(1);
8915
8916 if ( (LA39_0==RULE_INT) ) {
8917 int LA39_1 = input.LA(2);
8918
8919 if ( (LA39_1==49) ) {
8920 alt39=2;
5801 } 8921 }
5802 break; 8922 else if ( (LA39_1==48) ) {
5803 case 38: 8923 alt39=1;
5804 {
5805 alt36=2;
5806 } 8924 }
5807 break; 8925 else {
5808 case 39: 8926 if (state.backtracking>0) {state.failed=true; return current;}
5809 case 40: 8927 NoViableAltException nvae =
5810 { 8928 new NoViableAltException("", 39, 1, input);
5811 alt36=3; 8929
8930 throw nvae;
5812 } 8931 }
5813 break; 8932 }
5814 default: 8933 else if ( (LA39_0==RULE_ID||LA39_0==RULE_QUOTED_ID) ) {
8934 alt39=1;
8935 }
8936 else {
8937 if (state.backtracking>0) {state.failed=true; return current;}
5815 NoViableAltException nvae = 8938 NoViableAltException nvae =
5816 new NoViableAltException("", 36, 0, input); 8939 new NoViableAltException("", 39, 0, input);
5817 8940
5818 throw nvae; 8941 throw nvae;
5819 } 8942 }
5820 8943 switch (alt39) {
5821 switch (alt36) {
5822 case 1 : 8944 case 1 :
5823 // InternalSolverLanguage.g:1985:3: this_ClassInterpretation_0= ruleClassInterpretation 8945 // InternalSolverLanguage.g:3085:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) )
8946 {
8947 // InternalSolverLanguage.g:3085:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) )
8948 // InternalSolverLanguage.g:3086:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) )
5824 { 8949 {
8950 // InternalSolverLanguage.g:3086:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )?
8951 int alt37=2;
8952 int LA37_0 = input.LA(1);
5825 8953
5826 newCompositeNode(grammarAccess.getCDInterpretationAccess().getClassInterpretationParserRuleCall_0()); 8954 if ( (LA37_0==RULE_INT) ) {
5827 8955 alt37=1;
5828 pushFollow(FOLLOW_2); 8956 }
5829 this_ClassInterpretation_0=ruleClassInterpretation(); 8957 switch (alt37) {
8958 case 1 :
8959 // InternalSolverLanguage.g:3087:6: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<='
8960 {
8961 // InternalSolverLanguage.g:3087:6: ( (lv_lowerBound_1_0= RULE_INT ) )
8962 // InternalSolverLanguage.g:3088:7: (lv_lowerBound_1_0= RULE_INT )
8963 {
8964 // InternalSolverLanguage.g:3088:7: (lv_lowerBound_1_0= RULE_INT )
8965 // InternalSolverLanguage.g:3089:8: lv_lowerBound_1_0= RULE_INT
8966 {
8967 lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_50); if (state.failed) return current;
8968 if ( state.backtracking==0 ) {
8969
8970 newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0());
8971
8972 }
8973 if ( state.backtracking==0 ) {
8974
8975 if (current==null) {
8976 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
8977 }
8978 setWithLastConsumed(
8979 current,
8980 "lowerBound",
8981 lv_lowerBound_1_0,
8982 "org.eclipse.xtext.common.Terminals.INT");
8983
8984 }
8985
8986 }
8987
8988
8989 }
8990
8991 otherlv_2=(Token)match(input,48,FOLLOW_35); if (state.failed) return current;
8992 if ( state.backtracking==0 ) {
8993
8994 newLeafNode(otherlv_2, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_0_1());
8995
8996 }
8997
8998 }
8999 break;
9000
9001 }
9002
9003 // InternalSolverLanguage.g:3110:5: ( ( ruleQualifiedName ) )
9004 // InternalSolverLanguage.g:3111:6: ( ruleQualifiedName )
9005 {
9006 // InternalSolverLanguage.g:3111:6: ( ruleQualifiedName )
9007 // InternalSolverLanguage.g:3112:7: ruleQualifiedName
9008 {
9009 if ( state.backtracking==0 ) {
9010
9011 if (current==null) {
9012 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
9013 }
9014
9015 }
9016 if ( state.backtracking==0 ) {
9017
9018 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_1_0());
9019
9020 }
9021 pushFollow(FOLLOW_50);
9022 ruleQualifiedName();
5830 9023
5831 state._fsp--; 9024 state._fsp--;
9025 if (state.failed) return current;
9026 if ( state.backtracking==0 ) {
9027
9028 afterParserOrEnumRuleCall();
9029
9030 }
9031
9032 }
9033
9034
9035 }
9036
9037 otherlv_4=(Token)match(input,48,FOLLOW_47); if (state.failed) return current;
9038 if ( state.backtracking==0 ) {
9039
9040 newLeafNode(otherlv_4, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_2());
9041
9042 }
9043 // InternalSolverLanguage.g:3130:5: ( (lv_upperBound_5_0= RULE_INT ) )
9044 // InternalSolverLanguage.g:3131:6: (lv_upperBound_5_0= RULE_INT )
9045 {
9046 // InternalSolverLanguage.g:3131:6: (lv_upperBound_5_0= RULE_INT )
9047 // InternalSolverLanguage.g:3132:7: lv_upperBound_5_0= RULE_INT
9048 {
9049 lv_upperBound_5_0=(Token)match(input,RULE_INT,FOLLOW_12); if (state.failed) return current;
9050 if ( state.backtracking==0 ) {
5832 9051
9052 newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0());
9053
9054 }
9055 if ( state.backtracking==0 ) {
9056
9057 if (current==null) {
9058 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
9059 }
9060 setWithLastConsumed(
9061 current,
9062 "upperBound",
9063 lv_upperBound_5_0,
9064 "org.eclipse.xtext.common.Terminals.INT");
9065
9066 }
9067
9068 }
9069
9070
9071 }
9072
9073
9074 }
5833 9075
5834 current = this_ClassInterpretation_0;
5835 afterParserOrEnumRuleCall();
5836
5837 9076
5838 } 9077 }
5839 break; 9078 break;
5840 case 2 : 9079 case 2 :
5841 // InternalSolverLanguage.g:1994:3: this_EnumInterpretation_1= ruleEnumInterpretation 9080 // InternalSolverLanguage.g:3150:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? )
9081 {
9082 // InternalSolverLanguage.g:3150:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? )
9083 // InternalSolverLanguage.g:3151:5: ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )?
9084 {
9085 // InternalSolverLanguage.g:3151:5: ( (lv_upperBound_6_0= RULE_INT ) )
9086 // InternalSolverLanguage.g:3152:6: (lv_upperBound_6_0= RULE_INT )
5842 { 9087 {
9088 // InternalSolverLanguage.g:3152:6: (lv_upperBound_6_0= RULE_INT )
9089 // InternalSolverLanguage.g:3153:7: lv_upperBound_6_0= RULE_INT
9090 {
9091 lv_upperBound_6_0=(Token)match(input,RULE_INT,FOLLOW_51); if (state.failed) return current;
9092 if ( state.backtracking==0 ) {
5843 9093
5844 newCompositeNode(grammarAccess.getCDInterpretationAccess().getEnumInterpretationParserRuleCall_1()); 9094 newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0());
5845 9095
5846 pushFollow(FOLLOW_2); 9096 }
5847 this_EnumInterpretation_1=ruleEnumInterpretation(); 9097 if ( state.backtracking==0 ) {
9098
9099 if (current==null) {
9100 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
9101 }
9102 setWithLastConsumed(
9103 current,
9104 "upperBound",
9105 lv_upperBound_6_0,
9106 "org.eclipse.xtext.common.Terminals.INT");
9107
9108 }
9109
9110 }
5848 9111
5849 state._fsp--;
5850 9112
9113 }
5851 9114
5852 current = this_EnumInterpretation_1; 9115 otherlv_7=(Token)match(input,49,FOLLOW_35); if (state.failed) return current;
5853 afterParserOrEnumRuleCall(); 9116 if ( state.backtracking==0 ) {
5854
5855 9117
9118 newLeafNode(otherlv_7, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
9119
5856 } 9120 }
5857 break; 9121 // InternalSolverLanguage.g:3173:5: ( ( ruleQualifiedName ) )
5858 case 3 : 9122 // InternalSolverLanguage.g:3174:6: ( ruleQualifiedName )
5859 // InternalSolverLanguage.g:2003:3: this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation 9123 {
9124 // InternalSolverLanguage.g:3174:6: ( ruleQualifiedName )
9125 // InternalSolverLanguage.g:3175:7: ruleQualifiedName
5860 { 9126 {
9127 if ( state.backtracking==0 ) {
5861 9128
5862 newCompositeNode(grammarAccess.getCDInterpretationAccess().getGlobalRelationInterpretationParserRuleCall_2()); 9129 if (current==null) {
5863 9130 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
5864 pushFollow(FOLLOW_2); 9131 }
5865 this_GlobalRelationInterpretation_2=ruleGlobalRelationInterpretation(); 9132
9133 }
9134 if ( state.backtracking==0 ) {
9135
9136 newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_2_0());
9137
9138 }
9139 pushFollow(FOLLOW_52);
9140 ruleQualifiedName();
5866 9141
5867 state._fsp--; 9142 state._fsp--;
9143 if (state.failed) return current;
9144 if ( state.backtracking==0 ) {
9145
9146 afterParserOrEnumRuleCall();
9147
9148 }
9149
9150 }
9151
9152
9153 }
9154
9155 // InternalSolverLanguage.g:3189:5: (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )?
9156 int alt38=2;
9157 int LA38_0 = input.LA(1);
9158
9159 if ( (LA38_0==49) ) {
9160 alt38=1;
9161 }
9162 switch (alt38) {
9163 case 1 :
9164 // InternalSolverLanguage.g:3190:6: otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) )
9165 {
9166 otherlv_9=(Token)match(input,49,FOLLOW_47); if (state.failed) return current;
9167 if ( state.backtracking==0 ) {
9168
9169 newLeafNode(otherlv_9, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0());
9170
9171 }
9172 // InternalSolverLanguage.g:3194:6: ( (lv_lowerBound_10_0= RULE_INT ) )
9173 // InternalSolverLanguage.g:3195:7: (lv_lowerBound_10_0= RULE_INT )
9174 {
9175 // InternalSolverLanguage.g:3195:7: (lv_lowerBound_10_0= RULE_INT )
9176 // InternalSolverLanguage.g:3196:8: lv_lowerBound_10_0= RULE_INT
9177 {
9178 lv_lowerBound_10_0=(Token)match(input,RULE_INT,FOLLOW_12); if (state.failed) return current;
9179 if ( state.backtracking==0 ) {
9180
9181 newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0());
9182
9183 }
9184 if ( state.backtracking==0 ) {
9185
9186 if (current==null) {
9187 current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule());
9188 }
9189 setWithLastConsumed(
9190 current,
9191 "lowerBound",
9192 lv_lowerBound_10_0,
9193 "org.eclipse.xtext.common.Terminals.INT");
9194
9195 }
9196
9197 }
9198
9199
9200 }
9201
5868 9202
9203 }
9204 break;
9205
9206 }
9207
9208
9209 }
5869 9210
5870 current = this_GlobalRelationInterpretation_2;
5871 afterParserOrEnumRuleCall();
5872
5873 9211
5874 } 9212 }
5875 break; 9213 break;
5876 9214
5877 } 9215 }
5878 9216
9217 otherlv_11=(Token)match(input,22,FOLLOW_2); if (state.failed) return current;
9218 if ( state.backtracking==0 ) {
5879 9219
9220 newLeafNode(otherlv_11, grammarAccess.getBoundedScopeDefinitionAccess().getFullStopKeyword_2());
9221
5880 } 9222 }
5881 9223
9224 }
9225
9226
9227 }
5882 9228
5883 leaveRule(); 9229 if ( state.backtracking==0 ) {
5884 9230
9231 leaveRule();
9232
9233 }
5885 } 9234 }
5886 9235
5887 catch (RecognitionException re) { 9236 catch (RecognitionException re) {
@@ -5892,29 +9241,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5892 } 9241 }
5893 return current; 9242 return current;
5894 } 9243 }
5895 // $ANTLR end "ruleCDInterpretation" 9244 // $ANTLR end "ruleBoundedScopeDefinition"
5896 9245
5897 9246
5898 // $ANTLR start "entryRuleClassInterpretation" 9247 // $ANTLR start "entryRuleLowerBoundedScopeDefinition"
5899 // InternalSolverLanguage.g:2015:1: entryRuleClassInterpretation returns [EObject current=null] : iv_ruleClassInterpretation= ruleClassInterpretation EOF ; 9248 // InternalSolverLanguage.g:3223:1: entryRuleLowerBoundedScopeDefinition returns [EObject current=null] : iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF ;
5900 public final EObject entryRuleClassInterpretation() throws RecognitionException { 9249 public final EObject entryRuleLowerBoundedScopeDefinition() throws RecognitionException {
5901 EObject current = null; 9250 EObject current = null;
5902 9251
5903 EObject iv_ruleClassInterpretation = null; 9252 EObject iv_ruleLowerBoundedScopeDefinition = null;
5904 9253
5905 9254
5906 try { 9255 try {
5907 // InternalSolverLanguage.g:2015:60: (iv_ruleClassInterpretation= ruleClassInterpretation EOF ) 9256 // InternalSolverLanguage.g:3223:68: (iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF )
5908 // InternalSolverLanguage.g:2016:2: iv_ruleClassInterpretation= ruleClassInterpretation EOF 9257 // InternalSolverLanguage.g:3224:2: iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF
5909 { 9258 {
5910 newCompositeNode(grammarAccess.getClassInterpretationRule()); 9259 if ( state.backtracking==0 ) {
9260 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionRule());
9261 }
5911 pushFollow(FOLLOW_1); 9262 pushFollow(FOLLOW_1);
5912 iv_ruleClassInterpretation=ruleClassInterpretation(); 9263 iv_ruleLowerBoundedScopeDefinition=ruleLowerBoundedScopeDefinition();
5913 9264
5914 state._fsp--; 9265 state._fsp--;
5915 9266 if (state.failed) return current;
5916 current =iv_ruleClassInterpretation; 9267 if ( state.backtracking==0 ) {
5917 match(input,EOF,FOLLOW_2); 9268 current =iv_ruleLowerBoundedScopeDefinition;
9269 }
9270 match(input,EOF,FOLLOW_2); if (state.failed) return current;
5918 9271
5919 } 9272 }
5920 9273
@@ -5928,245 +9281,239 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
5928 } 9281 }
5929 return current; 9282 return current;
5930 } 9283 }
5931 // $ANTLR end "entryRuleClassInterpretation" 9284 // $ANTLR end "entryRuleLowerBoundedScopeDefinition"
5932 9285
5933 9286
5934 // $ANTLR start "ruleClassInterpretation" 9287 // $ANTLR start "ruleLowerBoundedScopeDefinition"
5935 // InternalSolverLanguage.g:2022:1: ruleClassInterpretation returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_symbol_2_0= ruleModelSymbol ) ) (otherlv_3= 'extends' ( (lv_supertypes_4_0= ruleModelSymbol ) )+ )? otherlv_5= '{' ( (lv_fielt_6_0= ruleFieldRelationInterpretation ) )* otherlv_7= '}' ) ; 9288 // InternalSolverLanguage.g:3230:1: ruleLowerBoundedScopeDefinition returns [EObject current=null] : (otherlv_0= 'scope' ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) otherlv_7= '.' ) ;
5936 public final EObject ruleClassInterpretation() throws RecognitionException { 9289 public final EObject ruleLowerBoundedScopeDefinition() throws RecognitionException {
5937 EObject current = null; 9290 EObject current = null;
5938 9291
5939 Token lv_abstract_0_0=null; 9292 Token otherlv_0=null;
5940 Token otherlv_1=null; 9293 Token lv_lowerBound_1_0=null;
5941 Token otherlv_3=null; 9294 Token otherlv_2=null;
5942 Token otherlv_5=null; 9295 Token otherlv_5=null;
9296 Token lv_lowerBound_6_0=null;
5943 Token otherlv_7=null; 9297 Token otherlv_7=null;
5944 EObject lv_symbol_2_0 = null;
5945
5946 EObject lv_supertypes_4_0 = null;
5947
5948 EObject lv_fielt_6_0 = null;
5949
5950 9298
5951 9299
5952 enterRule(); 9300 enterRule();
5953 9301
5954 try { 9302 try {
5955 // InternalSolverLanguage.g:2028:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_symbol_2_0= ruleModelSymbol ) ) (otherlv_3= 'extends' ( (lv_supertypes_4_0= ruleModelSymbol ) )+ )? otherlv_5= '{' ( (lv_fielt_6_0= ruleFieldRelationInterpretation ) )* otherlv_7= '}' ) ) 9303 // InternalSolverLanguage.g:3236:2: ( (otherlv_0= 'scope' ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) otherlv_7= '.' ) )
5956 // InternalSolverLanguage.g:2029:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_symbol_2_0= ruleModelSymbol ) ) (otherlv_3= 'extends' ( (lv_supertypes_4_0= ruleModelSymbol ) )+ )? otherlv_5= '{' ( (lv_fielt_6_0= ruleFieldRelationInterpretation ) )* otherlv_7= '}' ) 9304 // InternalSolverLanguage.g:3237:2: (otherlv_0= 'scope' ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) otherlv_7= '.' )
5957 { 9305 {
5958 // InternalSolverLanguage.g:2029:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_symbol_2_0= ruleModelSymbol ) ) (otherlv_3= 'extends' ( (lv_supertypes_4_0= ruleModelSymbol ) )+ )? otherlv_5= '{' ( (lv_fielt_6_0= ruleFieldRelationInterpretation ) )* otherlv_7= '}' ) 9306 // InternalSolverLanguage.g:3237:2: (otherlv_0= 'scope' ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) otherlv_7= '.' )
5959 // InternalSolverLanguage.g:2030:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_symbol_2_0= ruleModelSymbol ) ) (otherlv_3= 'extends' ( (lv_supertypes_4_0= ruleModelSymbol ) )+ )? otherlv_5= '{' ( (lv_fielt_6_0= ruleFieldRelationInterpretation ) )* otherlv_7= '}' 9307 // InternalSolverLanguage.g:3238:3: otherlv_0= 'scope' ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) otherlv_7= '.'
5960 { 9308 {
5961 // InternalSolverLanguage.g:2030:3: ( (lv_abstract_0_0= 'abstract' ) )? 9309 otherlv_0=(Token)match(input,46,FOLLOW_49); if (state.failed) return current;
5962 int alt37=2; 9310 if ( state.backtracking==0 ) {
5963 int LA37_0 = input.LA(1); 9311
9312 newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getScopeKeyword_0());
9313
9314 }
9315 // InternalSolverLanguage.g:3242:3: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) ) )
9316 int alt40=2;
9317 int LA40_0 = input.LA(1);
5964 9318
5965 if ( (LA37_0==33) ) { 9319 if ( (LA40_0==RULE_INT) ) {
5966 alt37=1; 9320 alt40=1;
5967 } 9321 }
5968 switch (alt37) { 9322 else if ( (LA40_0==RULE_ID||LA40_0==RULE_QUOTED_ID) ) {
9323 alt40=2;
9324 }
9325 else {
9326 if (state.backtracking>0) {state.failed=true; return current;}
9327 NoViableAltException nvae =
9328 new NoViableAltException("", 40, 0, input);
9329
9330 throw nvae;
9331 }
9332 switch (alt40) {
5969 case 1 : 9333 case 1 :
5970 // InternalSolverLanguage.g:2031:4: (lv_abstract_0_0= 'abstract' ) 9334 // InternalSolverLanguage.g:3243:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) )
5971 { 9335 {
5972 // InternalSolverLanguage.g:2031:4: (lv_abstract_0_0= 'abstract' ) 9336 // InternalSolverLanguage.g:3243:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) )
5973 // InternalSolverLanguage.g:2032:5: lv_abstract_0_0= 'abstract' 9337 // InternalSolverLanguage.g:3244:5: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) )
5974 { 9338 {
5975 lv_abstract_0_0=(Token)match(input,33,FOLLOW_27); 9339 // InternalSolverLanguage.g:3244:5: ( (lv_lowerBound_1_0= RULE_INT ) )
5976 9340 // InternalSolverLanguage.g:3245:6: (lv_lowerBound_1_0= RULE_INT )
5977 newLeafNode(lv_abstract_0_0, grammarAccess.getClassInterpretationAccess().getAbstractAbstractKeyword_0_0()); 9341 {
5978 9342 // InternalSolverLanguage.g:3245:6: (lv_lowerBound_1_0= RULE_INT )
5979 9343 // InternalSolverLanguage.g:3246:7: lv_lowerBound_1_0= RULE_INT
5980 if (current==null) { 9344 {
5981 current = createModelElement(grammarAccess.getClassInterpretationRule()); 9345 lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_50); if (state.failed) return current;
5982 } 9346 if ( state.backtracking==0 ) {
5983 setWithLastConsumed(current, "abstract", true, "abstract");
5984
5985 9347
9348 newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0());
9349
5986 } 9350 }
5987 9351 if ( state.backtracking==0 ) {
5988 9352
9353 if (current==null) {
9354 current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
9355 }
9356 setWithLastConsumed(
9357 current,
9358 "lowerBound",
9359 lv_lowerBound_1_0,
9360 "org.eclipse.xtext.common.Terminals.INT");
9361
5989 } 9362 }
5990 break;
5991
5992 }
5993
5994 otherlv_1=(Token)match(input,34,FOLLOW_12);
5995
5996 newLeafNode(otherlv_1, grammarAccess.getClassInterpretationAccess().getClassKeyword_1());
5997
5998 // InternalSolverLanguage.g:2048:3: ( (lv_symbol_2_0= ruleModelSymbol ) )
5999 // InternalSolverLanguage.g:2049:4: (lv_symbol_2_0= ruleModelSymbol )
6000 {
6001 // InternalSolverLanguage.g:2049:4: (lv_symbol_2_0= ruleModelSymbol )
6002 // InternalSolverLanguage.g:2050:5: lv_symbol_2_0= ruleModelSymbol
6003 {
6004 9363
6005 newCompositeNode(grammarAccess.getClassInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0()); 9364 }
6006
6007 pushFollow(FOLLOW_28);
6008 lv_symbol_2_0=ruleModelSymbol();
6009
6010 state._fsp--;
6011
6012
6013 if (current==null) {
6014 current = createModelElementForParent(grammarAccess.getClassInterpretationRule());
6015 }
6016 set(
6017 current,
6018 "symbol",
6019 lv_symbol_2_0,
6020 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
6021 afterParserOrEnumRuleCall();
6022
6023
6024 }
6025 9365
6026 9366
6027 } 9367 }
6028 9368
6029 // InternalSolverLanguage.g:2067:3: (otherlv_3= 'extends' ( (lv_supertypes_4_0= ruleModelSymbol ) )+ )? 9369 otherlv_2=(Token)match(input,48,FOLLOW_35); if (state.failed) return current;
6030 int alt39=2; 9370 if ( state.backtracking==0 ) {
6031 int LA39_0 = input.LA(1);
6032 9371
6033 if ( (LA39_0==35) ) { 9372 newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_1());
6034 alt39=1; 9373
6035 } 9374 }
6036 switch (alt39) { 9375 // InternalSolverLanguage.g:3266:5: ( ( ruleQualifiedName ) )
6037 case 1 : 9376 // InternalSolverLanguage.g:3267:6: ( ruleQualifiedName )
6038 // InternalSolverLanguage.g:2068:4: otherlv_3= 'extends' ( (lv_supertypes_4_0= ruleModelSymbol ) )+
6039 { 9377 {
6040 otherlv_3=(Token)match(input,35,FOLLOW_12); 9378 // InternalSolverLanguage.g:3267:6: ( ruleQualifiedName )
9379 // InternalSolverLanguage.g:3268:7: ruleQualifiedName
9380 {
9381 if ( state.backtracking==0 ) {
6041 9382
6042 newLeafNode(otherlv_3, grammarAccess.getClassInterpretationAccess().getExtendsKeyword_3_0()); 9383 if (current==null) {
6043 9384 current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
6044 // InternalSolverLanguage.g:2072:4: ( (lv_supertypes_4_0= ruleModelSymbol ) )+ 9385 }
6045 int cnt38=0; 9386
6046 loop38: 9387 }
6047 do { 9388 if ( state.backtracking==0 ) {
6048 int alt38=2;
6049 int LA38_0 = input.LA(1);
6050 9389
6051 if ( (LA38_0==RULE_ID) ) { 9390 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_2_0());
6052 alt38=1; 9391
6053 } 9392 }
9393 pushFollow(FOLLOW_12);
9394 ruleQualifiedName();
6054 9395
9396 state._fsp--;
9397 if (state.failed) return current;
9398 if ( state.backtracking==0 ) {
6055 9399
6056 switch (alt38) { 9400 afterParserOrEnumRuleCall();
6057 case 1 : 9401
6058 // InternalSolverLanguage.g:2073:5: (lv_supertypes_4_0= ruleModelSymbol ) 9402 }
6059 {
6060 // InternalSolverLanguage.g:2073:5: (lv_supertypes_4_0= ruleModelSymbol )
6061 // InternalSolverLanguage.g:2074:6: lv_supertypes_4_0= ruleModelSymbol
6062 {
6063 9403
6064 newCompositeNode(grammarAccess.getClassInterpretationAccess().getSupertypesModelSymbolParserRuleCall_3_1_0()); 9404 }
6065
6066 pushFollow(FOLLOW_29);
6067 lv_supertypes_4_0=ruleModelSymbol();
6068 9405
6069 state._fsp--;
6070 9406
9407 }
6071 9408
6072 if (current==null) {
6073 current = createModelElementForParent(grammarAccess.getClassInterpretationRule());
6074 }
6075 add(
6076 current,
6077 "supertypes",
6078 lv_supertypes_4_0,
6079 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
6080 afterParserOrEnumRuleCall();
6081
6082 9409
6083 } 9410 }
6084 9411
6085 9412
6086 } 9413 }
6087 break; 9414 break;
9415 case 2 :
9416 // InternalSolverLanguage.g:3284:4: ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) )
9417 {
9418 // InternalSolverLanguage.g:3284:4: ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) )
9419 // InternalSolverLanguage.g:3285:5: ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) )
9420 {
9421 // InternalSolverLanguage.g:3285:5: ( ( ruleQualifiedName ) )
9422 // InternalSolverLanguage.g:3286:6: ( ruleQualifiedName )
9423 {
9424 // InternalSolverLanguage.g:3286:6: ( ruleQualifiedName )
9425 // InternalSolverLanguage.g:3287:7: ruleQualifiedName
9426 {
9427 if ( state.backtracking==0 ) {
6088 9428
6089 default : 9429 if (current==null) {
6090 if ( cnt38 >= 1 ) break loop38; 9430 current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
6091 EarlyExitException eee = 9431 }
6092 new EarlyExitException(38, input); 9432
6093 throw eee; 9433 }
6094 } 9434 if ( state.backtracking==0 ) {
6095 cnt38++;
6096 } while (true);
6097 9435
9436 newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_0_0());
9437
9438 }
9439 pushFollow(FOLLOW_51);
9440 ruleQualifiedName();
6098 9441
9442 state._fsp--;
9443 if (state.failed) return current;
9444 if ( state.backtracking==0 ) {
9445
9446 afterParserOrEnumRuleCall();
9447
6099 } 9448 }
6100 break;
6101 9449
6102 } 9450 }
6103 9451
6104 otherlv_5=(Token)match(input,36,FOLLOW_30);
6105 9452
6106 newLeafNode(otherlv_5, grammarAccess.getClassInterpretationAccess().getLeftCurlyBracketKeyword_4()); 9453 }
6107
6108 // InternalSolverLanguage.g:2096:3: ( (lv_fielt_6_0= ruleFieldRelationInterpretation ) )*
6109 loop40:
6110 do {
6111 int alt40=2;
6112 int LA40_0 = input.LA(1);
6113 9454
6114 if ( (LA40_0==RULE_ID||LA40_0==39) ) { 9455 otherlv_5=(Token)match(input,49,FOLLOW_47); if (state.failed) return current;
6115 alt40=1; 9456 if ( state.backtracking==0 ) {
6116 }
6117 9457
9458 newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1());
9459
9460 }
9461 // InternalSolverLanguage.g:3305:5: ( (lv_lowerBound_6_0= RULE_INT ) )
9462 // InternalSolverLanguage.g:3306:6: (lv_lowerBound_6_0= RULE_INT )
9463 {
9464 // InternalSolverLanguage.g:3306:6: (lv_lowerBound_6_0= RULE_INT )
9465 // InternalSolverLanguage.g:3307:7: lv_lowerBound_6_0= RULE_INT
9466 {
9467 lv_lowerBound_6_0=(Token)match(input,RULE_INT,FOLLOW_12); if (state.failed) return current;
9468 if ( state.backtracking==0 ) {
6118 9469
6119 switch (alt40) { 9470 newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0());
6120 case 1 : 9471
6121 // InternalSolverLanguage.g:2097:4: (lv_fielt_6_0= ruleFieldRelationInterpretation ) 9472 }
6122 { 9473 if ( state.backtracking==0 ) {
6123 // InternalSolverLanguage.g:2097:4: (lv_fielt_6_0= ruleFieldRelationInterpretation ) 9474
6124 // InternalSolverLanguage.g:2098:5: lv_fielt_6_0= ruleFieldRelationInterpretation 9475 if (current==null) {
6125 { 9476 current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule());
9477 }
9478 setWithLastConsumed(
9479 current,
9480 "lowerBound",
9481 lv_lowerBound_6_0,
9482 "org.eclipse.xtext.common.Terminals.INT");
9483
9484 }
6126 9485
6127 newCompositeNode(grammarAccess.getClassInterpretationAccess().getFieltFieldRelationInterpretationParserRuleCall_5_0()); 9486 }
6128
6129 pushFollow(FOLLOW_30);
6130 lv_fielt_6_0=ruleFieldRelationInterpretation();
6131 9487
6132 state._fsp--;
6133 9488
9489 }
6134 9490
6135 if (current==null) {
6136 current = createModelElementForParent(grammarAccess.getClassInterpretationRule());
6137 }
6138 add(
6139 current,
6140 "fielt",
6141 lv_fielt_6_0,
6142 "org.eclipse.viatra.solver.language.SolverLanguage.FieldRelationInterpretation");
6143 afterParserOrEnumRuleCall();
6144
6145 9491
6146 } 9492 }
6147 9493
6148 9494
6149 } 9495 }
6150 break; 9496 break;
6151 9497
6152 default : 9498 }
6153 break loop40;
6154 }
6155 } while (true);
6156 9499
6157 otherlv_7=(Token)match(input,37,FOLLOW_2); 9500 otherlv_7=(Token)match(input,22,FOLLOW_2); if (state.failed) return current;
9501 if ( state.backtracking==0 ) {
6158 9502
6159 newLeafNode(otherlv_7, grammarAccess.getClassInterpretationAccess().getRightCurlyBracketKeyword_6()); 9503 newLeafNode(otherlv_7, grammarAccess.getLowerBoundedScopeDefinitionAccess().getFullStopKeyword_2());
6160 9504
9505 }
6161 9506
6162 } 9507 }
6163 9508
6164 9509
6165 } 9510 }
6166 9511
9512 if ( state.backtracking==0 ) {
6167 9513
6168 leaveRule(); 9514 leaveRule();
6169 9515
9516 }
6170 } 9517 }
6171 9518
6172 catch (RecognitionException re) { 9519 catch (RecognitionException re) {
@@ -6177,29 +9524,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6177 } 9524 }
6178 return current; 9525 return current;
6179 } 9526 }
6180 // $ANTLR end "ruleClassInterpretation" 9527 // $ANTLR end "ruleLowerBoundedScopeDefinition"
6181 9528
6182 9529
6183 // $ANTLR start "entryRuleEnumInterpretation" 9530 // $ANTLR start "entryRuleObjectiveDefinition"
6184 // InternalSolverLanguage.g:2123:1: entryRuleEnumInterpretation returns [EObject current=null] : iv_ruleEnumInterpretation= ruleEnumInterpretation EOF ; 9531 // InternalSolverLanguage.g:3333:1: entryRuleObjectiveDefinition returns [EObject current=null] : iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF ;
6185 public final EObject entryRuleEnumInterpretation() throws RecognitionException { 9532 public final EObject entryRuleObjectiveDefinition() throws RecognitionException {
6186 EObject current = null; 9533 EObject current = null;
6187 9534
6188 EObject iv_ruleEnumInterpretation = null; 9535 EObject iv_ruleObjectiveDefinition = null;
6189 9536
6190 9537
6191 try { 9538 try {
6192 // InternalSolverLanguage.g:2123:59: (iv_ruleEnumInterpretation= ruleEnumInterpretation EOF ) 9539 // InternalSolverLanguage.g:3333:60: (iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF )
6193 // InternalSolverLanguage.g:2124:2: iv_ruleEnumInterpretation= ruleEnumInterpretation EOF 9540 // InternalSolverLanguage.g:3334:2: iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF
6194 { 9541 {
6195 newCompositeNode(grammarAccess.getEnumInterpretationRule()); 9542 if ( state.backtracking==0 ) {
9543 newCompositeNode(grammarAccess.getObjectiveDefinitionRule());
9544 }
6196 pushFollow(FOLLOW_1); 9545 pushFollow(FOLLOW_1);
6197 iv_ruleEnumInterpretation=ruleEnumInterpretation(); 9546 iv_ruleObjectiveDefinition=ruleObjectiveDefinition();
6198 9547
6199 state._fsp--; 9548 state._fsp--;
6200 9549 if (state.failed) return current;
6201 current =iv_ruleEnumInterpretation; 9550 if ( state.backtracking==0 ) {
6202 match(input,EOF,FOLLOW_2); 9551 current =iv_ruleObjectiveDefinition;
9552 }
9553 match(input,EOF,FOLLOW_2); if (state.failed) return current;
6203 9554
6204 } 9555 }
6205 9556
@@ -6213,138 +9564,110 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6213 } 9564 }
6214 return current; 9565 return current;
6215 } 9566 }
6216 // $ANTLR end "entryRuleEnumInterpretation" 9567 // $ANTLR end "entryRuleObjectiveDefinition"
6217 9568
6218 9569
6219 // $ANTLR start "ruleEnumInterpretation" 9570 // $ANTLR start "ruleObjectiveDefinition"
6220 // InternalSolverLanguage.g:2130:1: ruleEnumInterpretation returns [EObject current=null] : (otherlv_0= 'enum' ( (lv_Symbol_1_0= ruleModelSymbol ) ) otherlv_2= '{' ( (lv_objects_3_0= ruleNamedObject ) )+ otherlv_4= '}' ) ; 9571 // InternalSolverLanguage.g:3340:1: ruleObjectiveDefinition returns [EObject current=null] : ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) ;
6221 public final EObject ruleEnumInterpretation() throws RecognitionException { 9572 public final EObject ruleObjectiveDefinition() throws RecognitionException {
6222 EObject current = null; 9573 EObject current = null;
6223 9574
6224 Token otherlv_0=null; 9575 Enumerator lv_kind_0_0 = null;
6225 Token otherlv_2=null;
6226 Token otherlv_4=null;
6227 EObject lv_Symbol_1_0 = null;
6228 9576
6229 EObject lv_objects_3_0 = null; 9577 EObject lv_objective_1_0 = null;
6230 9578
6231 9579
6232 9580
6233 enterRule(); 9581 enterRule();
6234 9582
6235 try { 9583 try {
6236 // InternalSolverLanguage.g:2136:2: ( (otherlv_0= 'enum' ( (lv_Symbol_1_0= ruleModelSymbol ) ) otherlv_2= '{' ( (lv_objects_3_0= ruleNamedObject ) )+ otherlv_4= '}' ) ) 9584 // InternalSolverLanguage.g:3346:2: ( ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) )
6237 // InternalSolverLanguage.g:2137:2: (otherlv_0= 'enum' ( (lv_Symbol_1_0= ruleModelSymbol ) ) otherlv_2= '{' ( (lv_objects_3_0= ruleNamedObject ) )+ otherlv_4= '}' ) 9585 // InternalSolverLanguage.g:3347:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) )
6238 { 9586 {
6239 // InternalSolverLanguage.g:2137:2: (otherlv_0= 'enum' ( (lv_Symbol_1_0= ruleModelSymbol ) ) otherlv_2= '{' ( (lv_objects_3_0= ruleNamedObject ) )+ otherlv_4= '}' ) 9587 // InternalSolverLanguage.g:3347:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) )
6240 // InternalSolverLanguage.g:2138:3: otherlv_0= 'enum' ( (lv_Symbol_1_0= ruleModelSymbol ) ) otherlv_2= '{' ( (lv_objects_3_0= ruleNamedObject ) )+ otherlv_4= '}' 9588 // InternalSolverLanguage.g:3348:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) )
6241 { 9589 {
6242 otherlv_0=(Token)match(input,38,FOLLOW_12); 9590 // InternalSolverLanguage.g:3348:3: ( (lv_kind_0_0= ruleObjectiveKind ) )
6243 9591 // InternalSolverLanguage.g:3349:4: (lv_kind_0_0= ruleObjectiveKind )
6244 newLeafNode(otherlv_0, grammarAccess.getEnumInterpretationAccess().getEnumKeyword_0());
6245
6246 // InternalSolverLanguage.g:2142:3: ( (lv_Symbol_1_0= ruleModelSymbol ) )
6247 // InternalSolverLanguage.g:2143:4: (lv_Symbol_1_0= ruleModelSymbol )
6248 { 9592 {
6249 // InternalSolverLanguage.g:2143:4: (lv_Symbol_1_0= ruleModelSymbol ) 9593 // InternalSolverLanguage.g:3349:4: (lv_kind_0_0= ruleObjectiveKind )
6250 // InternalSolverLanguage.g:2144:5: lv_Symbol_1_0= ruleModelSymbol 9594 // InternalSolverLanguage.g:3350:5: lv_kind_0_0= ruleObjectiveKind
6251 { 9595 {
9596 if ( state.backtracking==0 ) {
6252 9597
6253 newCompositeNode(grammarAccess.getEnumInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0()); 9598 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0());
6254 9599
6255 pushFollow(FOLLOW_31); 9600 }
6256 lv_Symbol_1_0=ruleModelSymbol(); 9601 pushFollow(FOLLOW_6);
9602 lv_kind_0_0=ruleObjectiveKind();
6257 9603
6258 state._fsp--; 9604 state._fsp--;
9605 if (state.failed) return current;
9606 if ( state.backtracking==0 ) {
6259 9607
6260 9608 if (current==null) {
6261 if (current==null) { 9609 current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule());
6262 current = createModelElementForParent(grammarAccess.getEnumInterpretationRule()); 9610 }
6263 } 9611 set(
6264 set( 9612 current,
6265 current, 9613 "kind",
6266 "Symbol", 9614 lv_kind_0_0,
6267 lv_Symbol_1_0, 9615 "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind");
6268 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); 9616 afterParserOrEnumRuleCall();
6269 afterParserOrEnumRuleCall(); 9617
6270
6271
6272 } 9618 }
6273 9619
6274
6275 } 9620 }
6276 9621
6277 otherlv_2=(Token)match(input,36,FOLLOW_13);
6278
6279 newLeafNode(otherlv_2, grammarAccess.getEnumInterpretationAccess().getLeftCurlyBracketKeyword_2());
6280
6281 // InternalSolverLanguage.g:2165:3: ( (lv_objects_3_0= ruleNamedObject ) )+
6282 int cnt41=0;
6283 loop41:
6284 do {
6285 int alt41=2;
6286 int LA41_0 = input.LA(1);
6287
6288 if ( (LA41_0==27) ) {
6289 alt41=1;
6290 }
6291
6292
6293 switch (alt41) {
6294 case 1 :
6295 // InternalSolverLanguage.g:2166:4: (lv_objects_3_0= ruleNamedObject )
6296 {
6297 // InternalSolverLanguage.g:2166:4: (lv_objects_3_0= ruleNamedObject )
6298 // InternalSolverLanguage.g:2167:5: lv_objects_3_0= ruleNamedObject
6299 {
6300
6301 newCompositeNode(grammarAccess.getEnumInterpretationAccess().getObjectsNamedObjectParserRuleCall_3_0());
6302
6303 pushFollow(FOLLOW_32);
6304 lv_objects_3_0=ruleNamedObject();
6305 9622
6306 state._fsp--; 9623 }
6307 9624
9625 // InternalSolverLanguage.g:3367:3: ( (lv_objective_1_0= ruleExpression ) )
9626 // InternalSolverLanguage.g:3368:4: (lv_objective_1_0= ruleExpression )
9627 {
9628 // InternalSolverLanguage.g:3368:4: (lv_objective_1_0= ruleExpression )
9629 // InternalSolverLanguage.g:3369:5: lv_objective_1_0= ruleExpression
9630 {
9631 if ( state.backtracking==0 ) {
6308 9632
6309 if (current==null) { 9633 newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0());
6310 current = createModelElementForParent(grammarAccess.getEnumInterpretationRule()); 9634
6311 } 9635 }
6312 add( 9636 pushFollow(FOLLOW_2);
6313 current, 9637 lv_objective_1_0=ruleExpression();
6314 "objects",
6315 lv_objects_3_0,
6316 "org.eclipse.viatra.solver.language.SolverLanguage.NamedObject");
6317 afterParserOrEnumRuleCall();
6318
6319 9638
6320 } 9639 state._fsp--;
9640 if (state.failed) return current;
9641 if ( state.backtracking==0 ) {
6321 9642
9643 if (current==null) {
9644 current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule());
9645 }
9646 set(
9647 current,
9648 "objective",
9649 lv_objective_1_0,
9650 "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
9651 afterParserOrEnumRuleCall();
9652
9653 }
6322 9654
6323 } 9655 }
6324 break;
6325 9656
6326 default :
6327 if ( cnt41 >= 1 ) break loop41;
6328 EarlyExitException eee =
6329 new EarlyExitException(41, input);
6330 throw eee;
6331 }
6332 cnt41++;
6333 } while (true);
6334 9657
6335 otherlv_4=(Token)match(input,37,FOLLOW_2); 9658 }
6336 9659
6337 newLeafNode(otherlv_4, grammarAccess.getEnumInterpretationAccess().getRightCurlyBracketKeyword_4());
6338
6339 9660
6340 } 9661 }
6341 9662
6342 9663
6343 } 9664 }
6344 9665
9666 if ( state.backtracking==0 ) {
6345 9667
6346 leaveRule(); 9668 leaveRule();
6347 9669
9670 }
6348 } 9671 }
6349 9672
6350 catch (RecognitionException re) { 9673 catch (RecognitionException re) {
@@ -6355,29 +9678,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6355 } 9678 }
6356 return current; 9679 return current;
6357 } 9680 }
6358 // $ANTLR end "ruleEnumInterpretation" 9681 // $ANTLR end "ruleObjectiveDefinition"
6359 9682
6360 9683
6361 // $ANTLR start "entryRuleFieldRelationInterpretation" 9684 // $ANTLR start "entryRuleUpperMultiplicty"
6362 // InternalSolverLanguage.g:2192:1: entryRuleFieldRelationInterpretation returns [EObject current=null] : iv_ruleFieldRelationInterpretation= ruleFieldRelationInterpretation EOF ; 9685 // InternalSolverLanguage.g:3390:1: entryRuleUpperMultiplicty returns [String current=null] : iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ;
6363 public final EObject entryRuleFieldRelationInterpretation() throws RecognitionException { 9686 public final String entryRuleUpperMultiplicty() throws RecognitionException {
6364 EObject current = null; 9687 String current = null;
6365 9688
6366 EObject iv_ruleFieldRelationInterpretation = null; 9689 AntlrDatatypeRuleToken iv_ruleUpperMultiplicty = null;
6367 9690
6368 9691
6369 try { 9692 try {
6370 // InternalSolverLanguage.g:2192:68: (iv_ruleFieldRelationInterpretation= ruleFieldRelationInterpretation EOF ) 9693 // InternalSolverLanguage.g:3390:56: (iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF )
6371 // InternalSolverLanguage.g:2193:2: iv_ruleFieldRelationInterpretation= ruleFieldRelationInterpretation EOF 9694 // InternalSolverLanguage.g:3391:2: iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF
6372 { 9695 {
6373 newCompositeNode(grammarAccess.getFieldRelationInterpretationRule()); 9696 if ( state.backtracking==0 ) {
9697 newCompositeNode(grammarAccess.getUpperMultiplictyRule());
9698 }
6374 pushFollow(FOLLOW_1); 9699 pushFollow(FOLLOW_1);
6375 iv_ruleFieldRelationInterpretation=ruleFieldRelationInterpretation(); 9700 iv_ruleUpperMultiplicty=ruleUpperMultiplicty();
6376 9701
6377 state._fsp--; 9702 state._fsp--;
6378 9703 if (state.failed) return current;
6379 current =iv_ruleFieldRelationInterpretation; 9704 if ( state.backtracking==0 ) {
6380 match(input,EOF,FOLLOW_2); 9705 current =iv_ruleUpperMultiplicty.getText();
9706 }
9707 match(input,EOF,FOLLOW_2); if (state.failed) return current;
6381 9708
6382 } 9709 }
6383 9710
@@ -6391,171 +9718,205 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6391 } 9718 }
6392 return current; 9719 return current;
6393 } 9720 }
6394 // $ANTLR end "entryRuleFieldRelationInterpretation" 9721 // $ANTLR end "entryRuleUpperMultiplicty"
6395
6396 9722
6397 // $ANTLR start "ruleFieldRelationInterpretation"
6398 // InternalSolverLanguage.g:2199:1: ruleFieldRelationInterpretation returns [EObject current=null] : ( ( (lv_containment_0_0= 'containment' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) otherlv_2= ':' ( (lv_multiplicity_3_0= ruleMultiplicityDefinition ) )? ( (lv_target_4_0= ruleSymbol ) ) ) ;
6399 public final EObject ruleFieldRelationInterpretation() throws RecognitionException {
6400 EObject current = null;
6401 9723
6402 Token lv_containment_0_0=null; 9724 // $ANTLR start "ruleUpperMultiplicty"
6403 Token otherlv_2=null; 9725 // InternalSolverLanguage.g:3397:1: ruleUpperMultiplicty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ;
6404 EObject lv_symbol_1_0 = null; 9726 public final AntlrDatatypeRuleToken ruleUpperMultiplicty() throws RecognitionException {
6405 9727 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
6406 EObject lv_multiplicity_3_0 = null;
6407
6408 EObject lv_target_4_0 = null;
6409 9728
9729 Token this_INT_0=null;
9730 Token kw=null;
6410 9731
6411 9732
6412 enterRule(); 9733 enterRule();
6413 9734
6414 try { 9735 try {
6415 // InternalSolverLanguage.g:2205:2: ( ( ( (lv_containment_0_0= 'containment' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) otherlv_2= ':' ( (lv_multiplicity_3_0= ruleMultiplicityDefinition ) )? ( (lv_target_4_0= ruleSymbol ) ) ) ) 9736 // InternalSolverLanguage.g:3403:2: ( (this_INT_0= RULE_INT | kw= '*' ) )
6416 // InternalSolverLanguage.g:2206:2: ( ( (lv_containment_0_0= 'containment' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) otherlv_2= ':' ( (lv_multiplicity_3_0= ruleMultiplicityDefinition ) )? ( (lv_target_4_0= ruleSymbol ) ) ) 9737 // InternalSolverLanguage.g:3404:2: (this_INT_0= RULE_INT | kw= '*' )
6417 { 9738 {
6418 // InternalSolverLanguage.g:2206:2: ( ( (lv_containment_0_0= 'containment' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) otherlv_2= ':' ( (lv_multiplicity_3_0= ruleMultiplicityDefinition ) )? ( (lv_target_4_0= ruleSymbol ) ) ) 9739 // InternalSolverLanguage.g:3404:2: (this_INT_0= RULE_INT | kw= '*' )
6419 // InternalSolverLanguage.g:2207:3: ( (lv_containment_0_0= 'containment' ) )? ( (lv_symbol_1_0= ruleModelSymbol ) ) otherlv_2= ':' ( (lv_multiplicity_3_0= ruleMultiplicityDefinition ) )? ( (lv_target_4_0= ruleSymbol ) ) 9740 int alt41=2;
6420 { 9741 int LA41_0 = input.LA(1);
6421 // InternalSolverLanguage.g:2207:3: ( (lv_containment_0_0= 'containment' ) )?
6422 int alt42=2;
6423 int LA42_0 = input.LA(1);
6424 9742
6425 if ( (LA42_0==39) ) { 9743 if ( (LA41_0==RULE_INT) ) {
6426 alt42=1; 9744 alt41=1;
6427 } 9745 }
6428 switch (alt42) { 9746 else if ( (LA41_0==35) ) {
9747 alt41=2;
9748 }
9749 else {
9750 if (state.backtracking>0) {state.failed=true; return current;}
9751 NoViableAltException nvae =
9752 new NoViableAltException("", 41, 0, input);
9753
9754 throw nvae;
9755 }
9756 switch (alt41) {
6429 case 1 : 9757 case 1 :
6430 // InternalSolverLanguage.g:2208:4: (lv_containment_0_0= 'containment' ) 9758 // InternalSolverLanguage.g:3405:3: this_INT_0= RULE_INT
6431 { 9759 {
6432 // InternalSolverLanguage.g:2208:4: (lv_containment_0_0= 'containment' ) 9760 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
6433 // InternalSolverLanguage.g:2209:5: lv_containment_0_0= 'containment' 9761 if ( state.backtracking==0 ) {
6434 {
6435 lv_containment_0_0=(Token)match(input,39,FOLLOW_12);
6436 9762
6437 newLeafNode(lv_containment_0_0, grammarAccess.getFieldRelationInterpretationAccess().getContainmentContainmentKeyword_0_0()); 9763 current.merge(this_INT_0);
6438 9764
9765 }
9766 if ( state.backtracking==0 ) {
6439 9767
6440 if (current==null) { 9768 newLeafNode(this_INT_0, grammarAccess.getUpperMultiplictyAccess().getINTTerminalRuleCall_0());
6441 current = createModelElement(grammarAccess.getFieldRelationInterpretationRule()); 9769
6442 } 9770 }
6443 setWithLastConsumed(current, "containment", true, "containment");
6444
6445 9771
6446 } 9772 }
9773 break;
9774 case 2 :
9775 // InternalSolverLanguage.g:3413:3: kw= '*'
9776 {
9777 kw=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
9778 if ( state.backtracking==0 ) {
6447 9779
9780 current.merge(kw);
9781 newLeafNode(kw, grammarAccess.getUpperMultiplictyAccess().getAsteriskKeyword_1());
9782
9783 }
6448 9784
6449 } 9785 }
6450 break; 9786 break;
6451 9787
6452 } 9788 }
6453 9789
6454 // InternalSolverLanguage.g:2221:3: ( (lv_symbol_1_0= ruleModelSymbol ) )
6455 // InternalSolverLanguage.g:2222:4: (lv_symbol_1_0= ruleModelSymbol )
6456 {
6457 // InternalSolverLanguage.g:2222:4: (lv_symbol_1_0= ruleModelSymbol )
6458 // InternalSolverLanguage.g:2223:5: lv_symbol_1_0= ruleModelSymbol
6459 {
6460 9790
6461 newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0()); 9791 }
6462
6463 pushFollow(FOLLOW_10);
6464 lv_symbol_1_0=ruleModelSymbol();
6465 9792
6466 state._fsp--; 9793 if ( state.backtracking==0 ) {
6467 9794
9795 leaveRule();
6468 9796
6469 if (current==null) { 9797 }
6470 current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule()); 9798 }
6471 }
6472 set(
6473 current,
6474 "symbol",
6475 lv_symbol_1_0,
6476 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
6477 afterParserOrEnumRuleCall();
6478
6479 9799
9800 catch (RecognitionException re) {
9801 recover(input,re);
9802 appendSkippedTokens();
6480 } 9803 }
9804 finally {
9805 }
9806 return current;
9807 }
9808 // $ANTLR end "ruleUpperMultiplicty"
6481 9809
6482 9810
6483 } 9811 // $ANTLR start "entryRuleReal"
9812 // InternalSolverLanguage.g:3422:1: entryRuleReal returns [String current=null] : iv_ruleReal= ruleReal EOF ;
9813 public final String entryRuleReal() throws RecognitionException {
9814 String current = null;
9815
9816 AntlrDatatypeRuleToken iv_ruleReal = null;
6484 9817
6485 otherlv_2=(Token)match(input,20,FOLLOW_33);
6486 9818
6487 newLeafNode(otherlv_2, grammarAccess.getFieldRelationInterpretationAccess().getColonKeyword_2());
6488
6489 // InternalSolverLanguage.g:2244:3: ( (lv_multiplicity_3_0= ruleMultiplicityDefinition ) )?
6490 int alt43=2;
6491 int LA43_0 = input.LA(1);
6492 9819
6493 if ( (LA43_0==RULE_INT) ) { 9820 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
6494 alt43=1; 9821
9822 try {
9823 // InternalSolverLanguage.g:3424:2: (iv_ruleReal= ruleReal EOF )
9824 // InternalSolverLanguage.g:3425:2: iv_ruleReal= ruleReal EOF
9825 {
9826 if ( state.backtracking==0 ) {
9827 newCompositeNode(grammarAccess.getRealRule());
6495 } 9828 }
6496 switch (alt43) { 9829 pushFollow(FOLLOW_1);
6497 case 1 : 9830 iv_ruleReal=ruleReal();
6498 // InternalSolverLanguage.g:2245:4: (lv_multiplicity_3_0= ruleMultiplicityDefinition )
6499 {
6500 // InternalSolverLanguage.g:2245:4: (lv_multiplicity_3_0= ruleMultiplicityDefinition )
6501 // InternalSolverLanguage.g:2246:5: lv_multiplicity_3_0= ruleMultiplicityDefinition
6502 {
6503 9831
6504 newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getMultiplicityMultiplicityDefinitionParserRuleCall_3_0()); 9832 state._fsp--;
6505 9833 if (state.failed) return current;
6506 pushFollow(FOLLOW_21); 9834 if ( state.backtracking==0 ) {
6507 lv_multiplicity_3_0=ruleMultiplicityDefinition(); 9835 current =iv_ruleReal.getText();
9836 }
9837 match(input,EOF,FOLLOW_2); if (state.failed) return current;
6508 9838
6509 state._fsp--; 9839 }
9840
9841 }
6510 9842
9843 catch (RecognitionException re) {
9844 recover(input,re);
9845 appendSkippedTokens();
9846 }
9847 finally {
6511 9848
6512 if (current==null) { 9849 myHiddenTokenState.restore();
6513 current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule());
6514 }
6515 set(
6516 current,
6517 "multiplicity",
6518 lv_multiplicity_3_0,
6519 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition");
6520 afterParserOrEnumRuleCall();
6521
6522 9850
6523 } 9851 }
9852 return current;
9853 }
9854 // $ANTLR end "entryRuleReal"
6524 9855
6525 9856
6526 } 9857 // $ANTLR start "ruleReal"
6527 break; 9858 // InternalSolverLanguage.g:3434:1: ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )? ) ;
9859 public final AntlrDatatypeRuleToken ruleReal() throws RecognitionException {
9860 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
6528 9861
6529 } 9862 Token this_INT_0=null;
9863 Token kw=null;
9864 Token this_INT_2=null;
6530 9865
6531 // InternalSolverLanguage.g:2263:3: ( (lv_target_4_0= ruleSymbol ) ) 9866
6532 // InternalSolverLanguage.g:2264:4: (lv_target_4_0= ruleSymbol ) 9867 enterRule();
9868 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
9869
9870 try {
9871 // InternalSolverLanguage.g:3441:2: ( (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )? ) )
9872 // InternalSolverLanguage.g:3442:2: (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )? )
6533 { 9873 {
6534 // InternalSolverLanguage.g:2264:4: (lv_target_4_0= ruleSymbol ) 9874 // InternalSolverLanguage.g:3442:2: (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )? )
6535 // InternalSolverLanguage.g:2265:5: lv_target_4_0= ruleSymbol 9875 // InternalSolverLanguage.g:3443:3: this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )?
6536 { 9876 {
9877 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_53); if (state.failed) return current;
9878 if ( state.backtracking==0 ) {
6537 9879
6538 newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getTargetSymbolParserRuleCall_4_0()); 9880 current.merge(this_INT_0);
6539 9881
6540 pushFollow(FOLLOW_2); 9882 }
6541 lv_target_4_0=ruleSymbol(); 9883 if ( state.backtracking==0 ) {
6542 9884
6543 state._fsp--; 9885 newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0());
9886
9887 }
9888 // InternalSolverLanguage.g:3450:3: (kw= '.' this_INT_2= RULE_INT )?
9889 int alt42=2;
9890 int LA42_0 = input.LA(1);
6544 9891
9892 if ( (LA42_0==22) ) {
9893 alt42=1;
9894 }
9895 switch (alt42) {
9896 case 1 :
9897 // InternalSolverLanguage.g:3451:4: kw= '.' this_INT_2= RULE_INT
9898 {
9899 kw=(Token)match(input,22,FOLLOW_47); if (state.failed) return current;
9900 if ( state.backtracking==0 ) {
6545 9901
6546 if (current==null) { 9902 current.merge(kw);
6547 current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule()); 9903 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_0());
6548 } 9904
6549 set( 9905 }
6550 current, 9906 this_INT_2=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current;
6551 "target", 9907 if ( state.backtracking==0 ) {
6552 lv_target_4_0,
6553 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
6554 afterParserOrEnumRuleCall();
6555
6556 9908
6557 } 9909 current.merge(this_INT_2);
9910
9911 }
9912 if ( state.backtracking==0 ) {
6558 9913
9914 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1());
9915
9916 }
9917
9918 }
9919 break;
6559 9920
6560 } 9921 }
6561 9922
@@ -6565,9 +9926,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6565 9926
6566 } 9927 }
6567 9928
9929 if ( state.backtracking==0 ) {
6568 9930
6569 leaveRule(); 9931 leaveRule();
6570 9932
9933 }
6571 } 9934 }
6572 9935
6573 catch (RecognitionException re) { 9936 catch (RecognitionException re) {
@@ -6575,32 +9938,42 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6575 appendSkippedTokens(); 9938 appendSkippedTokens();
6576 } 9939 }
6577 finally { 9940 finally {
9941
9942 myHiddenTokenState.restore();
9943
6578 } 9944 }
6579 return current; 9945 return current;
6580 } 9946 }
6581 // $ANTLR end "ruleFieldRelationInterpretation" 9947 // $ANTLR end "ruleReal"
6582 9948
6583 9949
6584 // $ANTLR start "entryRuleGlobalRelationInterpretation" 9950 // $ANTLR start "entryRuleQualifiedName"
6585 // InternalSolverLanguage.g:2286:1: entryRuleGlobalRelationInterpretation returns [EObject current=null] : iv_ruleGlobalRelationInterpretation= ruleGlobalRelationInterpretation EOF ; 9951 // InternalSolverLanguage.g:3471:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
6586 public final EObject entryRuleGlobalRelationInterpretation() throws RecognitionException { 9952 public final String entryRuleQualifiedName() throws RecognitionException {
6587 EObject current = null; 9953 String current = null;
9954
9955 AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
6588 9956
6589 EObject iv_ruleGlobalRelationInterpretation = null;
6590 9957
6591 9958
9959 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
9960
6592 try { 9961 try {
6593 // InternalSolverLanguage.g:2286:69: (iv_ruleGlobalRelationInterpretation= ruleGlobalRelationInterpretation EOF ) 9962 // InternalSolverLanguage.g:3473:2: (iv_ruleQualifiedName= ruleQualifiedName EOF )
6594 // InternalSolverLanguage.g:2287:2: iv_ruleGlobalRelationInterpretation= ruleGlobalRelationInterpretation EOF 9963 // InternalSolverLanguage.g:3474:2: iv_ruleQualifiedName= ruleQualifiedName EOF
6595 { 9964 {
6596 newCompositeNode(grammarAccess.getGlobalRelationInterpretationRule()); 9965 if ( state.backtracking==0 ) {
9966 newCompositeNode(grammarAccess.getQualifiedNameRule());
9967 }
6597 pushFollow(FOLLOW_1); 9968 pushFollow(FOLLOW_1);
6598 iv_ruleGlobalRelationInterpretation=ruleGlobalRelationInterpretation(); 9969 iv_ruleQualifiedName=ruleQualifiedName();
6599 9970
6600 state._fsp--; 9971 state._fsp--;
6601 9972 if (state.failed) return current;
6602 current =iv_ruleGlobalRelationInterpretation; 9973 if ( state.backtracking==0 ) {
6603 match(input,EOF,FOLLOW_2); 9974 current =iv_ruleQualifiedName.getText();
9975 }
9976 match(input,EOF,FOLLOW_2); if (state.failed) return current;
6604 9977
6605 } 9978 }
6606 9979
@@ -6611,146 +9984,231 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6611 appendSkippedTokens(); 9984 appendSkippedTokens();
6612 } 9985 }
6613 finally { 9986 finally {
9987
9988 myHiddenTokenState.restore();
9989
6614 } 9990 }
6615 return current; 9991 return current;
6616 } 9992 }
6617 // $ANTLR end "entryRuleGlobalRelationInterpretation" 9993 // $ANTLR end "entryRuleQualifiedName"
6618
6619
6620 // $ANTLR start "ruleGlobalRelationInterpretation"
6621 // InternalSolverLanguage.g:2293:1: ruleGlobalRelationInterpretation returns [EObject current=null] : ( ( (lv_containment_0_0= 'containment' ) )? otherlv_1= 'relation' ( (lv_symbol_2_0= ruleModelSymbol ) ) otherlv_3= ':' ( (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) )? ( (lv_source_5_0= ruleSymbol ) ) ( (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) )? ( (lv_target_7_0= ruleSymbol ) ) ) ;
6622 public final EObject ruleGlobalRelationInterpretation() throws RecognitionException {
6623 EObject current = null;
6624 9994
6625 Token lv_containment_0_0=null;
6626 Token otherlv_1=null;
6627 Token otherlv_3=null;
6628 EObject lv_symbol_2_0 = null;
6629
6630 EObject lv_sourceMultiplicity_4_0 = null;
6631 9995
6632 EObject lv_source_5_0 = null; 9996 // $ANTLR start "ruleQualifiedName"
6633 9997 // InternalSolverLanguage.g:3483:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) ;
6634 EObject lv_targetMultiplicity_6_0 = null; 9998 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
6635 9999 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
6636 EObject lv_target_7_0 = null;
6637 10000
10001 Token this_ID_0=null;
10002 Token kw=null;
10003 Token this_ID_2=null;
10004 Token this_QUOTED_ID_3=null;
6638 10005
6639 10006
6640 enterRule(); 10007 enterRule();
10008 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
6641 10009
6642 try { 10010 try {
6643 // InternalSolverLanguage.g:2299:2: ( ( ( (lv_containment_0_0= 'containment' ) )? otherlv_1= 'relation' ( (lv_symbol_2_0= ruleModelSymbol ) ) otherlv_3= ':' ( (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) )? ( (lv_source_5_0= ruleSymbol ) ) ( (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) )? ( (lv_target_7_0= ruleSymbol ) ) ) ) 10011 // InternalSolverLanguage.g:3490:2: ( ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) )
6644 // InternalSolverLanguage.g:2300:2: ( ( (lv_containment_0_0= 'containment' ) )? otherlv_1= 'relation' ( (lv_symbol_2_0= ruleModelSymbol ) ) otherlv_3= ':' ( (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) )? ( (lv_source_5_0= ruleSymbol ) ) ( (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) )? ( (lv_target_7_0= ruleSymbol ) ) ) 10012 // InternalSolverLanguage.g:3491:2: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID )
6645 { 10013 {
6646 // InternalSolverLanguage.g:2300:2: ( ( (lv_containment_0_0= 'containment' ) )? otherlv_1= 'relation' ( (lv_symbol_2_0= ruleModelSymbol ) ) otherlv_3= ':' ( (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) )? ( (lv_source_5_0= ruleSymbol ) ) ( (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) )? ( (lv_target_7_0= ruleSymbol ) ) ) 10014 // InternalSolverLanguage.g:3491:2: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID )
6647 // InternalSolverLanguage.g:2301:3: ( (lv_containment_0_0= 'containment' ) )? otherlv_1= 'relation' ( (lv_symbol_2_0= ruleModelSymbol ) ) otherlv_3= ':' ( (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) )? ( (lv_source_5_0= ruleSymbol ) ) ( (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) )? ( (lv_target_7_0= ruleSymbol ) )
6648 {
6649 // InternalSolverLanguage.g:2301:3: ( (lv_containment_0_0= 'containment' ) )?
6650 int alt44=2; 10015 int alt44=2;
6651 int LA44_0 = input.LA(1); 10016 int LA44_0 = input.LA(1);
6652 10017
6653 if ( (LA44_0==39) ) { 10018 if ( (LA44_0==RULE_ID) ) {
6654 alt44=1; 10019 alt44=1;
6655 } 10020 }
10021 else if ( (LA44_0==RULE_QUOTED_ID) ) {
10022 alt44=2;
10023 }
10024 else {
10025 if (state.backtracking>0) {state.failed=true; return current;}
10026 NoViableAltException nvae =
10027 new NoViableAltException("", 44, 0, input);
10028
10029 throw nvae;
10030 }
6656 switch (alt44) { 10031 switch (alt44) {
6657 case 1 : 10032 case 1 :
6658 // InternalSolverLanguage.g:2302:4: (lv_containment_0_0= 'containment' ) 10033 // InternalSolverLanguage.g:3492:3: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
6659 { 10034 {
6660 // InternalSolverLanguage.g:2302:4: (lv_containment_0_0= 'containment' ) 10035 // InternalSolverLanguage.g:3492:3: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
6661 // InternalSolverLanguage.g:2303:5: lv_containment_0_0= 'containment' 10036 // InternalSolverLanguage.g:3493:4: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
6662 { 10037 {
6663 lv_containment_0_0=(Token)match(input,39,FOLLOW_34); 10038 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_53); if (state.failed) return current;
10039 if ( state.backtracking==0 ) {
6664 10040
6665 newLeafNode(lv_containment_0_0, grammarAccess.getGlobalRelationInterpretationAccess().getContainmentContainmentKeyword_0_0()); 10041 current.merge(this_ID_0);
6666 10042
10043 }
10044 if ( state.backtracking==0 ) {
10045
10046 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_0());
10047
10048 }
10049 // InternalSolverLanguage.g:3500:4: (kw= '.' this_ID_2= RULE_ID )*
10050 loop43:
10051 do {
10052 int alt43=2;
10053 int LA43_0 = input.LA(1);
10054
10055 if ( (LA43_0==22) ) {
10056 int LA43_2 = input.LA(2);
10057
10058 if ( (LA43_2==RULE_ID) ) {
10059 alt43=1;
10060 }
10061
10062
10063 }
10064
10065
10066 switch (alt43) {
10067 case 1 :
10068 // InternalSolverLanguage.g:3501:5: kw= '.' this_ID_2= RULE_ID
10069 {
10070 kw=(Token)match(input,22,FOLLOW_40); if (state.failed) return current;
10071 if ( state.backtracking==0 ) {
10072
10073 current.merge(kw);
10074 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_0_1_0());
10075
10076 }
10077 this_ID_2=(Token)match(input,RULE_ID,FOLLOW_53); if (state.failed) return current;
10078 if ( state.backtracking==0 ) {
10079
10080 current.merge(this_ID_2);
10081
10082 }
10083 if ( state.backtracking==0 ) {
10084
10085 newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_1_1());
10086
10087 }
10088
10089 }
10090 break;
10091
10092 default :
10093 break loop43;
10094 }
10095 } while (true);
6667 10096
6668 if (current==null) {
6669 current = createModelElement(grammarAccess.getGlobalRelationInterpretationRule());
6670 }
6671 setWithLastConsumed(current, "containment", true, "containment");
6672
6673 10097
6674 } 10098 }
6675 10099
6676 10100
6677 } 10101 }
6678 break; 10102 break;
10103 case 2 :
10104 // InternalSolverLanguage.g:3516:3: this_QUOTED_ID_3= RULE_QUOTED_ID
10105 {
10106 this_QUOTED_ID_3=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); if (state.failed) return current;
10107 if ( state.backtracking==0 ) {
6679 10108
6680 } 10109 current.merge(this_QUOTED_ID_3);
10110
10111 }
10112 if ( state.backtracking==0 ) {
6681 10113
6682 otherlv_1=(Token)match(input,40,FOLLOW_12); 10114 newLeafNode(this_QUOTED_ID_3, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1());
10115
10116 }
6683 10117
6684 newLeafNode(otherlv_1, grammarAccess.getGlobalRelationInterpretationAccess().getRelationKeyword_1()); 10118 }
6685 10119 break;
6686 // InternalSolverLanguage.g:2319:3: ( (lv_symbol_2_0= ruleModelSymbol ) )
6687 // InternalSolverLanguage.g:2320:4: (lv_symbol_2_0= ruleModelSymbol )
6688 {
6689 // InternalSolverLanguage.g:2320:4: (lv_symbol_2_0= ruleModelSymbol )
6690 // InternalSolverLanguage.g:2321:5: lv_symbol_2_0= ruleModelSymbol
6691 {
6692 10120
6693 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0()); 10121 }
6694
6695 pushFollow(FOLLOW_10);
6696 lv_symbol_2_0=ruleModelSymbol();
6697 10122
6698 state._fsp--;
6699 10123
10124 }
6700 10125
6701 if (current==null) { 10126 if ( state.backtracking==0 ) {
6702 current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule());
6703 }
6704 set(
6705 current,
6706 "symbol",
6707 lv_symbol_2_0,
6708 "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol");
6709 afterParserOrEnumRuleCall();
6710
6711 10127
6712 } 10128 leaveRule();
6713 10129
10130 }
10131 }
6714 10132
10133 catch (RecognitionException re) {
10134 recover(input,re);
10135 appendSkippedTokens();
6715 } 10136 }
10137 finally {
10138
10139 myHiddenTokenState.restore();
10140
10141 }
10142 return current;
10143 }
10144 // $ANTLR end "ruleQualifiedName"
10145
6716 10146
6717 otherlv_3=(Token)match(input,20,FOLLOW_33); 10147 // $ANTLR start "ruleMetricType"
10148 // InternalSolverLanguage.g:3530:1: ruleMetricType returns [Enumerator current=null] : ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'real' ) ) ;
10149 public final Enumerator ruleMetricType() throws RecognitionException {
10150 Enumerator current = null;
6718 10151
6719 newLeafNode(otherlv_3, grammarAccess.getGlobalRelationInterpretationAccess().getColonKeyword_3()); 10152 Token enumLiteral_0=null;
6720 10153 Token enumLiteral_1=null;
6721 // InternalSolverLanguage.g:2342:3: ( (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) )? 10154
10155
10156 enterRule();
10157
10158 try {
10159 // InternalSolverLanguage.g:3536:2: ( ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'real' ) ) )
10160 // InternalSolverLanguage.g:3537:2: ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'real' ) )
10161 {
10162 // InternalSolverLanguage.g:3537:2: ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'real' ) )
6722 int alt45=2; 10163 int alt45=2;
6723 int LA45_0 = input.LA(1); 10164 int LA45_0 = input.LA(1);
6724 10165
6725 if ( (LA45_0==RULE_INT) ) { 10166 if ( (LA45_0==50) ) {
6726 alt45=1; 10167 alt45=1;
6727 } 10168 }
10169 else if ( (LA45_0==51) ) {
10170 alt45=2;
10171 }
10172 else {
10173 if (state.backtracking>0) {state.failed=true; return current;}
10174 NoViableAltException nvae =
10175 new NoViableAltException("", 45, 0, input);
10176
10177 throw nvae;
10178 }
6728 switch (alt45) { 10179 switch (alt45) {
6729 case 1 : 10180 case 1 :
6730 // InternalSolverLanguage.g:2343:4: (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) 10181 // InternalSolverLanguage.g:3538:3: (enumLiteral_0= 'int' )
6731 { 10182 {
6732 // InternalSolverLanguage.g:2343:4: (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) 10183 // InternalSolverLanguage.g:3538:3: (enumLiteral_0= 'int' )
6733 // InternalSolverLanguage.g:2344:5: lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition 10184 // InternalSolverLanguage.g:3539:4: enumLiteral_0= 'int'
6734 { 10185 {
10186 enumLiteral_0=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
10187 if ( state.backtracking==0 ) {
6735 10188
6736 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0()); 10189 current = grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
6737 10190 newLeafNode(enumLiteral_0, grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0());
6738 pushFollow(FOLLOW_21); 10191
6739 lv_sourceMultiplicity_4_0=ruleMultiplicityDefinition(); 10192 }
6740 10193
6741 state._fsp--; 10194 }
6742 10195
6743 10196
6744 if (current==null) { 10197 }
6745 current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); 10198 break;
6746 } 10199 case 2 :
6747 set( 10200 // InternalSolverLanguage.g:3546:3: (enumLiteral_1= 'real' )
6748 current, 10201 {
6749 "sourceMultiplicity", 10202 // InternalSolverLanguage.g:3546:3: (enumLiteral_1= 'real' )
6750 lv_sourceMultiplicity_4_0, 10203 // InternalSolverLanguage.g:3547:4: enumLiteral_1= 'real'
6751 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); 10204 {
6752 afterParserOrEnumRuleCall(); 10205 enumLiteral_1=(Token)match(input,51,FOLLOW_2); if (state.failed) return current;
6753 10206 if ( state.backtracking==0 ) {
10207
10208 current = grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
10209 newLeafNode(enumLiteral_1, grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1());
10210
10211 }
6754 10212
6755 } 10213 }
6756 10214
@@ -6760,70 +10218,221 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6760 10218
6761 } 10219 }
6762 10220
6763 // InternalSolverLanguage.g:2361:3: ( (lv_source_5_0= ruleSymbol ) )
6764 // InternalSolverLanguage.g:2362:4: (lv_source_5_0= ruleSymbol )
6765 {
6766 // InternalSolverLanguage.g:2362:4: (lv_source_5_0= ruleSymbol )
6767 // InternalSolverLanguage.g:2363:5: lv_source_5_0= ruleSymbol
6768 {
6769 10221
6770 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceSymbolParserRuleCall_5_0()); 10222 }
6771
6772 pushFollow(FOLLOW_33);
6773 lv_source_5_0=ruleSymbol();
6774 10223
6775 state._fsp--; 10224 if ( state.backtracking==0 ) {
6776 10225
10226 leaveRule();
6777 10227
6778 if (current==null) { 10228 }
6779 current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); 10229 }
6780 }
6781 set(
6782 current,
6783 "source",
6784 lv_source_5_0,
6785 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
6786 afterParserOrEnumRuleCall();
6787
6788 10230
10231 catch (RecognitionException re) {
10232 recover(input,re);
10233 appendSkippedTokens();
6789 } 10234 }
10235 finally {
10236 }
10237 return current;
10238 }
10239 // $ANTLR end "ruleMetricType"
6790 10240
6791 10241
6792 } 10242 // $ANTLR start "ruleComparisonOperator"
10243 // InternalSolverLanguage.g:3557:1: ruleComparisonOperator returns [Enumerator current=null] : ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '<=' ) | (enumLiteral_4= '>' ) | (enumLiteral_5= '>=' ) | (enumLiteral_6= 'in' ) ) ;
10244 public final Enumerator ruleComparisonOperator() throws RecognitionException {
10245 Enumerator current = null;
10246
10247 Token enumLiteral_0=null;
10248 Token enumLiteral_1=null;
10249 Token enumLiteral_2=null;
10250 Token enumLiteral_3=null;
10251 Token enumLiteral_4=null;
10252 Token enumLiteral_5=null;
10253 Token enumLiteral_6=null;
6793 10254
6794 // InternalSolverLanguage.g:2380:3: ( (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) )?
6795 int alt46=2;
6796 int LA46_0 = input.LA(1);
6797 10255
6798 if ( (LA46_0==RULE_INT) ) { 10256 enterRule();
10257
10258 try {
10259 // InternalSolverLanguage.g:3563:2: ( ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '<=' ) | (enumLiteral_4= '>' ) | (enumLiteral_5= '>=' ) | (enumLiteral_6= 'in' ) ) )
10260 // InternalSolverLanguage.g:3564:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '<=' ) | (enumLiteral_4= '>' ) | (enumLiteral_5= '>=' ) | (enumLiteral_6= 'in' ) )
10261 {
10262 // InternalSolverLanguage.g:3564:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '<=' ) | (enumLiteral_4= '>' ) | (enumLiteral_5= '>=' ) | (enumLiteral_6= 'in' ) )
10263 int alt46=7;
10264 switch ( input.LA(1) ) {
10265 case 47:
10266 {
6799 alt46=1; 10267 alt46=1;
10268 }
10269 break;
10270 case 52:
10271 {
10272 alt46=2;
10273 }
10274 break;
10275 case 53:
10276 {
10277 alt46=3;
10278 }
10279 break;
10280 case 48:
10281 {
10282 alt46=4;
10283 }
10284 break;
10285 case 54:
10286 {
10287 alt46=5;
10288 }
10289 break;
10290 case 49:
10291 {
10292 alt46=6;
10293 }
10294 break;
10295 case 55:
10296 {
10297 alt46=7;
10298 }
10299 break;
10300 default:
10301 if (state.backtracking>0) {state.failed=true; return current;}
10302 NoViableAltException nvae =
10303 new NoViableAltException("", 46, 0, input);
10304
10305 throw nvae;
6800 } 10306 }
10307
6801 switch (alt46) { 10308 switch (alt46) {
6802 case 1 : 10309 case 1 :
6803 // InternalSolverLanguage.g:2381:4: (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) 10310 // InternalSolverLanguage.g:3565:3: (enumLiteral_0= '==' )
6804 { 10311 {
6805 // InternalSolverLanguage.g:2381:4: (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) 10312 // InternalSolverLanguage.g:3565:3: (enumLiteral_0= '==' )
6806 // InternalSolverLanguage.g:2382:5: lv_targetMultiplicity_6_0= ruleMultiplicityDefinition 10313 // InternalSolverLanguage.g:3566:4: enumLiteral_0= '=='
6807 { 10314 {
10315 enumLiteral_0=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
10316 if ( state.backtracking==0 ) {
6808 10317
6809 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0()); 10318 current = grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
6810 10319 newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0());
6811 pushFollow(FOLLOW_21); 10320
6812 lv_targetMultiplicity_6_0=ruleMultiplicityDefinition(); 10321 }
6813 10322
6814 state._fsp--; 10323 }
10324
10325
10326 }
10327 break;
10328 case 2 :
10329 // InternalSolverLanguage.g:3573:3: (enumLiteral_1= '!=' )
10330 {
10331 // InternalSolverLanguage.g:3573:3: (enumLiteral_1= '!=' )
10332 // InternalSolverLanguage.g:3574:4: enumLiteral_1= '!='
10333 {
10334 enumLiteral_1=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
10335 if ( state.backtracking==0 ) {
10336
10337 current = grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
10338 newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1());
10339
10340 }
10341
10342 }
6815 10343
6816 10344
6817 if (current==null) { 10345 }
6818 current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); 10346 break;
6819 } 10347 case 3 :
6820 set( 10348 // InternalSolverLanguage.g:3581:3: (enumLiteral_2= '<' )
6821 current, 10349 {
6822 "targetMultiplicity", 10350 // InternalSolverLanguage.g:3581:3: (enumLiteral_2= '<' )
6823 lv_targetMultiplicity_6_0, 10351 // InternalSolverLanguage.g:3582:4: enumLiteral_2= '<'
6824 "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); 10352 {
6825 afterParserOrEnumRuleCall(); 10353 enumLiteral_2=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
6826 10354 if ( state.backtracking==0 ) {
10355
10356 current = grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
10357 newLeafNode(enumLiteral_2, grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2());
10358
10359 }
10360
10361 }
10362
10363
10364 }
10365 break;
10366 case 4 :
10367 // InternalSolverLanguage.g:3589:3: (enumLiteral_3= '<=' )
10368 {
10369 // InternalSolverLanguage.g:3589:3: (enumLiteral_3= '<=' )
10370 // InternalSolverLanguage.g:3590:4: enumLiteral_3= '<='
10371 {
10372 enumLiteral_3=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
10373 if ( state.backtracking==0 ) {
10374
10375 current = grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
10376 newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3());
10377
10378 }
10379
10380 }
10381
10382
10383 }
10384 break;
10385 case 5 :
10386 // InternalSolverLanguage.g:3597:3: (enumLiteral_4= '>' )
10387 {
10388 // InternalSolverLanguage.g:3597:3: (enumLiteral_4= '>' )
10389 // InternalSolverLanguage.g:3598:4: enumLiteral_4= '>'
10390 {
10391 enumLiteral_4=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
10392 if ( state.backtracking==0 ) {
10393
10394 current = grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4().getEnumLiteral().getInstance();
10395 newLeafNode(enumLiteral_4, grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4());
10396
10397 }
10398
10399 }
10400
10401
10402 }
10403 break;
10404 case 6 :
10405 // InternalSolverLanguage.g:3605:3: (enumLiteral_5= '>=' )
10406 {
10407 // InternalSolverLanguage.g:3605:3: (enumLiteral_5= '>=' )
10408 // InternalSolverLanguage.g:3606:4: enumLiteral_5= '>='
10409 {
10410 enumLiteral_5=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
10411 if ( state.backtracking==0 ) {
10412
10413 current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
10414 newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5());
10415
10416 }
10417
10418 }
10419
10420
10421 }
10422 break;
10423 case 7 :
10424 // InternalSolverLanguage.g:3613:3: (enumLiteral_6= 'in' )
10425 {
10426 // InternalSolverLanguage.g:3613:3: (enumLiteral_6= 'in' )
10427 // InternalSolverLanguage.g:3614:4: enumLiteral_6= 'in'
10428 {
10429 enumLiteral_6=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
10430 if ( state.backtracking==0 ) {
10431
10432 current = grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
10433 newLeafNode(enumLiteral_6, grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6());
10434
10435 }
6827 10436
6828 } 10437 }
6829 10438
@@ -6833,46 +10442,109 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6833 10442
6834 } 10443 }
6835 10444
6836 // InternalSolverLanguage.g:2399:3: ( (lv_target_7_0= ruleSymbol ) )
6837 // InternalSolverLanguage.g:2400:4: (lv_target_7_0= ruleSymbol )
6838 {
6839 // InternalSolverLanguage.g:2400:4: (lv_target_7_0= ruleSymbol )
6840 // InternalSolverLanguage.g:2401:5: lv_target_7_0= ruleSymbol
6841 {
6842 10445
6843 newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetSymbolParserRuleCall_7_0()); 10446 }
6844
6845 pushFollow(FOLLOW_2);
6846 lv_target_7_0=ruleSymbol();
6847 10447
6848 state._fsp--; 10448 if ( state.backtracking==0 ) {
6849 10449
10450 leaveRule();
6850 10451
6851 if (current==null) { 10452 }
6852 current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); 10453 }
6853 }
6854 set(
6855 current,
6856 "target",
6857 lv_target_7_0,
6858 "org.eclipse.viatra.solver.language.SolverLanguage.Symbol");
6859 afterParserOrEnumRuleCall();
6860
6861 10454
10455 catch (RecognitionException re) {
10456 recover(input,re);
10457 appendSkippedTokens();
6862 } 10458 }
10459 finally {
10460 }
10461 return current;
10462 }
10463 // $ANTLR end "ruleComparisonOperator"
10464
6863 10465
10466 // $ANTLR start "ruleAdditiveBinaryOperator"
10467 // InternalSolverLanguage.g:3624:1: ruleAdditiveBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
10468 public final Enumerator ruleAdditiveBinaryOperator() throws RecognitionException {
10469 Enumerator current = null;
10470
10471 Token enumLiteral_0=null;
10472 Token enumLiteral_1=null;
10473
10474
10475 enterRule();
10476
10477 try {
10478 // InternalSolverLanguage.g:3630:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
10479 // InternalSolverLanguage.g:3631:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
10480 {
10481 // InternalSolverLanguage.g:3631:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
10482 int alt47=2;
10483 int LA47_0 = input.LA(1);
10484
10485 if ( (LA47_0==56) ) {
10486 alt47=1;
10487 }
10488 else if ( (LA47_0==57) ) {
10489 alt47=2;
10490 }
10491 else {
10492 if (state.backtracking>0) {state.failed=true; return current;}
10493 NoViableAltException nvae =
10494 new NoViableAltException("", 47, 0, input);
6864 10495
10496 throw nvae;
6865 } 10497 }
10498 switch (alt47) {
10499 case 1 :
10500 // InternalSolverLanguage.g:3632:3: (enumLiteral_0= '+' )
10501 {
10502 // InternalSolverLanguage.g:3632:3: (enumLiteral_0= '+' )
10503 // InternalSolverLanguage.g:3633:4: enumLiteral_0= '+'
10504 {
10505 enumLiteral_0=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
10506 if ( state.backtracking==0 ) {
10507
10508 current = grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
10509 newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0());
10510
10511 }
10512
10513 }
6866 10514
6867 10515
10516 }
10517 break;
10518 case 2 :
10519 // InternalSolverLanguage.g:3640:3: (enumLiteral_1= '-' )
10520 {
10521 // InternalSolverLanguage.g:3640:3: (enumLiteral_1= '-' )
10522 // InternalSolverLanguage.g:3641:4: enumLiteral_1= '-'
10523 {
10524 enumLiteral_1=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
10525 if ( state.backtracking==0 ) {
10526
10527 current = grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
10528 newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1());
10529
10530 }
10531
10532 }
10533
10534
10535 }
10536 break;
10537
6868 } 10538 }
6869 10539
6870 10540
6871 } 10541 }
6872 10542
10543 if ( state.backtracking==0 ) {
6873 10544
6874 leaveRule(); 10545 leaveRule();
6875 10546
10547 }
6876 } 10548 }
6877 10549
6878 catch (RecognitionException re) { 10550 catch (RecognitionException re) {
@@ -6883,32 +10555,91 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6883 } 10555 }
6884 return current; 10556 return current;
6885 } 10557 }
6886 // $ANTLR end "ruleGlobalRelationInterpretation" 10558 // $ANTLR end "ruleAdditiveBinaryOperator"
6887 10559
6888 10560
6889 // $ANTLR start "entryRuleMultiplicityDefinition" 10561 // $ANTLR start "ruleMultiplicativeBinaryOperator"
6890 // InternalSolverLanguage.g:2422:1: entryRuleMultiplicityDefinition returns [EObject current=null] : iv_ruleMultiplicityDefinition= ruleMultiplicityDefinition EOF ; 10562 // InternalSolverLanguage.g:3651:1: ruleMultiplicativeBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) ) ;
6891 public final EObject entryRuleMultiplicityDefinition() throws RecognitionException { 10563 public final Enumerator ruleMultiplicativeBinaryOperator() throws RecognitionException {
6892 EObject current = null; 10564 Enumerator current = null;
10565
10566 Token enumLiteral_0=null;
10567 Token enumLiteral_1=null;
6893 10568
6894 EObject iv_ruleMultiplicityDefinition = null;
6895 10569
10570 enterRule();
6896 10571
6897 try { 10572 try {
6898 // InternalSolverLanguage.g:2422:63: (iv_ruleMultiplicityDefinition= ruleMultiplicityDefinition EOF ) 10573 // InternalSolverLanguage.g:3657:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) ) )
6899 // InternalSolverLanguage.g:2423:2: iv_ruleMultiplicityDefinition= ruleMultiplicityDefinition EOF 10574 // InternalSolverLanguage.g:3658:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) )
6900 { 10575 {
6901 newCompositeNode(grammarAccess.getMultiplicityDefinitionRule()); 10576 // InternalSolverLanguage.g:3658:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) )
6902 pushFollow(FOLLOW_1); 10577 int alt48=2;
6903 iv_ruleMultiplicityDefinition=ruleMultiplicityDefinition(); 10578 int LA48_0 = input.LA(1);
6904 10579
6905 state._fsp--; 10580 if ( (LA48_0==35) ) {
10581 alt48=1;
10582 }
10583 else if ( (LA48_0==58) ) {
10584 alt48=2;
10585 }
10586 else {
10587 if (state.backtracking>0) {state.failed=true; return current;}
10588 NoViableAltException nvae =
10589 new NoViableAltException("", 48, 0, input);
10590
10591 throw nvae;
10592 }
10593 switch (alt48) {
10594 case 1 :
10595 // InternalSolverLanguage.g:3659:3: (enumLiteral_0= '*' )
10596 {
10597 // InternalSolverLanguage.g:3659:3: (enumLiteral_0= '*' )
10598 // InternalSolverLanguage.g:3660:4: enumLiteral_0= '*'
10599 {
10600 enumLiteral_0=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
10601 if ( state.backtracking==0 ) {
10602
10603 current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
10604 newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0());
10605
10606 }
10607
10608 }
10609
10610
10611 }
10612 break;
10613 case 2 :
10614 // InternalSolverLanguage.g:3667:3: (enumLiteral_1= '/' )
10615 {
10616 // InternalSolverLanguage.g:3667:3: (enumLiteral_1= '/' )
10617 // InternalSolverLanguage.g:3668:4: enumLiteral_1= '/'
10618 {
10619 enumLiteral_1=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
10620 if ( state.backtracking==0 ) {
10621
10622 current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
10623 newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1());
10624
10625 }
10626
10627 }
10628
10629
10630 }
10631 break;
10632
10633 }
6906 10634
6907 current =iv_ruleMultiplicityDefinition;
6908 match(input,EOF,FOLLOW_2);
6909 10635
6910 } 10636 }
6911 10637
10638 if ( state.backtracking==0 ) {
10639
10640 leaveRule();
10641
10642 }
6912 } 10643 }
6913 10644
6914 catch (RecognitionException re) { 10645 catch (RecognitionException re) {
@@ -6919,102 +10650,517 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
6919 } 10650 }
6920 return current; 10651 return current;
6921 } 10652 }
6922 // $ANTLR end "entryRuleMultiplicityDefinition" 10653 // $ANTLR end "ruleMultiplicativeBinaryOperator"
6923 10654
6924 10655
6925 // $ANTLR start "ruleMultiplicityDefinition" 10656 // $ANTLR start "ruleExponentialOp"
6926 // InternalSolverLanguage.g:2429:1: ruleMultiplicityDefinition returns [EObject current=null] : ( ( (lv_lower_0_0= RULE_INT ) ) otherlv_1= '..' ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) ) ) ; 10657 // InternalSolverLanguage.g:3678:1: ruleExponentialOp returns [Enumerator current=null] : (enumLiteral_0= '^' ) ;
6927 public final EObject ruleMultiplicityDefinition() throws RecognitionException { 10658 public final Enumerator ruleExponentialOp() throws RecognitionException {
6928 EObject current = null; 10659 Enumerator current = null;
6929 10660
6930 Token lv_lower_0_0=null; 10661 Token enumLiteral_0=null;
6931 Token otherlv_1=null;
6932 Token lv_upper_2_0=null;
6933 Token lv_unlimitedUpper_3_0=null;
6934 10662
6935 10663
6936 enterRule(); 10664 enterRule();
6937 10665
6938 try { 10666 try {
6939 // InternalSolverLanguage.g:2435:2: ( ( ( (lv_lower_0_0= RULE_INT ) ) otherlv_1= '..' ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) ) ) ) 10667 // InternalSolverLanguage.g:3684:2: ( (enumLiteral_0= '^' ) )
6940 // InternalSolverLanguage.g:2436:2: ( ( (lv_lower_0_0= RULE_INT ) ) otherlv_1= '..' ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) ) ) 10668 // InternalSolverLanguage.g:3685:2: (enumLiteral_0= '^' )
6941 {
6942 // InternalSolverLanguage.g:2436:2: ( ( (lv_lower_0_0= RULE_INT ) ) otherlv_1= '..' ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) ) )
6943 // InternalSolverLanguage.g:2437:3: ( (lv_lower_0_0= RULE_INT ) ) otherlv_1= '..' ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) )
6944 { 10669 {
6945 // InternalSolverLanguage.g:2437:3: ( (lv_lower_0_0= RULE_INT ) ) 10670 // InternalSolverLanguage.g:3685:2: (enumLiteral_0= '^' )
6946 // InternalSolverLanguage.g:2438:4: (lv_lower_0_0= RULE_INT ) 10671 // InternalSolverLanguage.g:3686:3: enumLiteral_0= '^'
6947 { 10672 {
6948 // InternalSolverLanguage.g:2438:4: (lv_lower_0_0= RULE_INT ) 10673 enumLiteral_0=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
6949 // InternalSolverLanguage.g:2439:5: lv_lower_0_0= RULE_INT 10674 if ( state.backtracking==0 ) {
10675
10676 current = grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration().getEnumLiteral().getInstance();
10677 newLeafNode(enumLiteral_0, grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration());
10678
10679 }
10680
10681 }
10682
10683
10684 }
10685
10686 if ( state.backtracking==0 ) {
10687
10688 leaveRule();
10689
10690 }
10691 }
10692
10693 catch (RecognitionException re) {
10694 recover(input,re);
10695 appendSkippedTokens();
10696 }
10697 finally {
10698 }
10699 return current;
10700 }
10701 // $ANTLR end "ruleExponentialOp"
10702
10703
10704 // $ANTLR start "ruleUnaryOp"
10705 // InternalSolverLanguage.g:3695:1: ruleUnaryOp returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '+' ) | (enumLiteral_2= '-' ) | (enumLiteral_3= 'may' ) | (enumLiteral_4= 'must' ) | (enumLiteral_5= 'current' ) ) ;
10706 public final Enumerator ruleUnaryOp() throws RecognitionException {
10707 Enumerator current = null;
10708
10709 Token enumLiteral_0=null;
10710 Token enumLiteral_1=null;
10711 Token enumLiteral_2=null;
10712 Token enumLiteral_3=null;
10713 Token enumLiteral_4=null;
10714 Token enumLiteral_5=null;
10715
10716
10717 enterRule();
10718
10719 try {
10720 // InternalSolverLanguage.g:3701:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '+' ) | (enumLiteral_2= '-' ) | (enumLiteral_3= 'may' ) | (enumLiteral_4= 'must' ) | (enumLiteral_5= 'current' ) ) )
10721 // InternalSolverLanguage.g:3702:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '+' ) | (enumLiteral_2= '-' ) | (enumLiteral_3= 'may' ) | (enumLiteral_4= 'must' ) | (enumLiteral_5= 'current' ) )
6950 { 10722 {
6951 lv_lower_0_0=(Token)match(input,RULE_INT,FOLLOW_35); 10723 // InternalSolverLanguage.g:3702:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '+' ) | (enumLiteral_2= '-' ) | (enumLiteral_3= 'may' ) | (enumLiteral_4= 'must' ) | (enumLiteral_5= 'current' ) )
10724 int alt49=6;
10725 switch ( input.LA(1) ) {
10726 case 60:
10727 {
10728 alt49=1;
10729 }
10730 break;
10731 case 56:
10732 {
10733 alt49=2;
10734 }
10735 break;
10736 case 57:
10737 {
10738 alt49=3;
10739 }
10740 break;
10741 case 61:
10742 {
10743 alt49=4;
10744 }
10745 break;
10746 case 62:
10747 {
10748 alt49=5;
10749 }
10750 break;
10751 case 63:
10752 {
10753 alt49=6;
10754 }
10755 break;
10756 default:
10757 if (state.backtracking>0) {state.failed=true; return current;}
10758 NoViableAltException nvae =
10759 new NoViableAltException("", 49, 0, input);
10760
10761 throw nvae;
10762 }
10763
10764 switch (alt49) {
10765 case 1 :
10766 // InternalSolverLanguage.g:3703:3: (enumLiteral_0= '!' )
10767 {
10768 // InternalSolverLanguage.g:3703:3: (enumLiteral_0= '!' )
10769 // InternalSolverLanguage.g:3704:4: enumLiteral_0= '!'
10770 {
10771 enumLiteral_0=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
10772 if ( state.backtracking==0 ) {
10773
10774 current = grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
10775 newLeafNode(enumLiteral_0, grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0());
10776
10777 }
10778
10779 }
10780
6952 10781
6953 newLeafNode(lv_lower_0_0, grammarAccess.getMultiplicityDefinitionAccess().getLowerINTTerminalRuleCall_0_0()); 10782 }
6954 10783 break;
10784 case 2 :
10785 // InternalSolverLanguage.g:3711:3: (enumLiteral_1= '+' )
10786 {
10787 // InternalSolverLanguage.g:3711:3: (enumLiteral_1= '+' )
10788 // InternalSolverLanguage.g:3712:4: enumLiteral_1= '+'
10789 {
10790 enumLiteral_1=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
10791 if ( state.backtracking==0 ) {
10792
10793 current = grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
10794 newLeafNode(enumLiteral_1, grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1());
10795
10796 }
6955 10797
6956 if (current==null) { 10798 }
6957 current = createModelElement(grammarAccess.getMultiplicityDefinitionRule()); 10799
6958 } 10800
6959 setWithLastConsumed( 10801 }
6960 current, 10802 break;
6961 "lower", 10803 case 3 :
6962 lv_lower_0_0, 10804 // InternalSolverLanguage.g:3719:3: (enumLiteral_2= '-' )
6963 "org.eclipse.xtext.common.Terminals.INT"); 10805 {
6964 10806 // InternalSolverLanguage.g:3719:3: (enumLiteral_2= '-' )
10807 // InternalSolverLanguage.g:3720:4: enumLiteral_2= '-'
10808 {
10809 enumLiteral_2=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
10810 if ( state.backtracking==0 ) {
10811
10812 current = grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
10813 newLeafNode(enumLiteral_2, grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2());
10814
10815 }
10816
10817 }
10818
10819
10820 }
10821 break;
10822 case 4 :
10823 // InternalSolverLanguage.g:3727:3: (enumLiteral_3= 'may' )
10824 {
10825 // InternalSolverLanguage.g:3727:3: (enumLiteral_3= 'may' )
10826 // InternalSolverLanguage.g:3728:4: enumLiteral_3= 'may'
10827 {
10828 enumLiteral_3=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
10829 if ( state.backtracking==0 ) {
10830
10831 current = grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
10832 newLeafNode(enumLiteral_3, grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3());
10833
10834 }
10835
10836 }
10837
10838
10839 }
10840 break;
10841 case 5 :
10842 // InternalSolverLanguage.g:3735:3: (enumLiteral_4= 'must' )
10843 {
10844 // InternalSolverLanguage.g:3735:3: (enumLiteral_4= 'must' )
10845 // InternalSolverLanguage.g:3736:4: enumLiteral_4= 'must'
10846 {
10847 enumLiteral_4=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
10848 if ( state.backtracking==0 ) {
10849
10850 current = grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
10851 newLeafNode(enumLiteral_4, grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4());
10852
10853 }
10854
10855 }
10856
10857
10858 }
10859 break;
10860 case 6 :
10861 // InternalSolverLanguage.g:3743:3: (enumLiteral_5= 'current' )
10862 {
10863 // InternalSolverLanguage.g:3743:3: (enumLiteral_5= 'current' )
10864 // InternalSolverLanguage.g:3744:4: enumLiteral_5= 'current'
10865 {
10866 enumLiteral_5=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
10867 if ( state.backtracking==0 ) {
10868
10869 current = grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
10870 newLeafNode(enumLiteral_5, grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5());
10871
10872 }
10873
10874 }
10875
10876
10877 }
10878 break;
6965 10879
6966 } 10880 }
6967 10881
6968 10882
6969 } 10883 }
6970 10884
6971 otherlv_1=(Token)match(input,41,FOLLOW_36); 10885 if ( state.backtracking==0 ) {
6972 10886
6973 newLeafNode(otherlv_1, grammarAccess.getMultiplicityDefinitionAccess().getFullStopFullStopKeyword_1()); 10887 leaveRule();
6974
6975 // InternalSolverLanguage.g:2459:3: ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) )
6976 int alt47=2;
6977 int LA47_0 = input.LA(1);
6978 10888
6979 if ( (LA47_0==RULE_INT) ) {
6980 alt47=1;
6981 } 10889 }
6982 else if ( (LA47_0==31) ) { 10890 }
6983 alt47=2; 10891
10892 catch (RecognitionException re) {
10893 recover(input,re);
10894 appendSkippedTokens();
6984 } 10895 }
6985 else { 10896 finally {
10897 }
10898 return current;
10899 }
10900 // $ANTLR end "ruleUnaryOp"
10901
10902
10903 // $ANTLR start "ruleAggregationOp"
10904 // InternalSolverLanguage.g:3754:1: ruleAggregationOp returns [Enumerator current=null] : ( (enumLiteral_0= 'only' ) | (enumLiteral_1= 'sum' ) | (enumLiteral_2= 'prod' ) | (enumLiteral_3= 'avg' ) | (enumLiteral_4= 'min' ) | (enumLiteral_5= 'max' ) ) ;
10905 public final Enumerator ruleAggregationOp() throws RecognitionException {
10906 Enumerator current = null;
10907
10908 Token enumLiteral_0=null;
10909 Token enumLiteral_1=null;
10910 Token enumLiteral_2=null;
10911 Token enumLiteral_3=null;
10912 Token enumLiteral_4=null;
10913 Token enumLiteral_5=null;
10914
10915
10916 enterRule();
10917
10918 try {
10919 // InternalSolverLanguage.g:3760:2: ( ( (enumLiteral_0= 'only' ) | (enumLiteral_1= 'sum' ) | (enumLiteral_2= 'prod' ) | (enumLiteral_3= 'avg' ) | (enumLiteral_4= 'min' ) | (enumLiteral_5= 'max' ) ) )
10920 // InternalSolverLanguage.g:3761:2: ( (enumLiteral_0= 'only' ) | (enumLiteral_1= 'sum' ) | (enumLiteral_2= 'prod' ) | (enumLiteral_3= 'avg' ) | (enumLiteral_4= 'min' ) | (enumLiteral_5= 'max' ) )
10921 {
10922 // InternalSolverLanguage.g:3761:2: ( (enumLiteral_0= 'only' ) | (enumLiteral_1= 'sum' ) | (enumLiteral_2= 'prod' ) | (enumLiteral_3= 'avg' ) | (enumLiteral_4= 'min' ) | (enumLiteral_5= 'max' ) )
10923 int alt50=6;
10924 switch ( input.LA(1) ) {
10925 case 64:
10926 {
10927 alt50=1;
10928 }
10929 break;
10930 case 65:
10931 {
10932 alt50=2;
10933 }
10934 break;
10935 case 66:
10936 {
10937 alt50=3;
10938 }
10939 break;
10940 case 67:
10941 {
10942 alt50=4;
10943 }
10944 break;
10945 case 68:
10946 {
10947 alt50=5;
10948 }
10949 break;
10950 case 69:
10951 {
10952 alt50=6;
10953 }
10954 break;
10955 default:
10956 if (state.backtracking>0) {state.failed=true; return current;}
6986 NoViableAltException nvae = 10957 NoViableAltException nvae =
6987 new NoViableAltException("", 47, 0, input); 10958 new NoViableAltException("", 50, 0, input);
6988 10959
6989 throw nvae; 10960 throw nvae;
6990 } 10961 }
6991 switch (alt47) { 10962
10963 switch (alt50) {
6992 case 1 : 10964 case 1 :
6993 // InternalSolverLanguage.g:2460:4: ( (lv_upper_2_0= RULE_INT ) ) 10965 // InternalSolverLanguage.g:3762:3: (enumLiteral_0= 'only' )
10966 {
10967 // InternalSolverLanguage.g:3762:3: (enumLiteral_0= 'only' )
10968 // InternalSolverLanguage.g:3763:4: enumLiteral_0= 'only'
10969 {
10970 enumLiteral_0=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
10971 if ( state.backtracking==0 ) {
10972
10973 current = grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
10974 newLeafNode(enumLiteral_0, grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0());
10975
10976 }
10977
10978 }
10979
10980
10981 }
10982 break;
10983 case 2 :
10984 // InternalSolverLanguage.g:3770:3: (enumLiteral_1= 'sum' )
10985 {
10986 // InternalSolverLanguage.g:3770:3: (enumLiteral_1= 'sum' )
10987 // InternalSolverLanguage.g:3771:4: enumLiteral_1= 'sum'
6994 { 10988 {
6995 // InternalSolverLanguage.g:2460:4: ( (lv_upper_2_0= RULE_INT ) ) 10989 enumLiteral_1=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
6996 // InternalSolverLanguage.g:2461:5: (lv_upper_2_0= RULE_INT ) 10990 if ( state.backtracking==0 ) {
10991
10992 current = grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
10993 newLeafNode(enumLiteral_1, grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1());
10994
10995 }
10996
10997 }
10998
10999
11000 }
11001 break;
11002 case 3 :
11003 // InternalSolverLanguage.g:3778:3: (enumLiteral_2= 'prod' )
6997 { 11004 {
6998 // InternalSolverLanguage.g:2461:5: (lv_upper_2_0= RULE_INT ) 11005 // InternalSolverLanguage.g:3778:3: (enumLiteral_2= 'prod' )
6999 // InternalSolverLanguage.g:2462:6: lv_upper_2_0= RULE_INT 11006 // InternalSolverLanguage.g:3779:4: enumLiteral_2= 'prod'
7000 { 11007 {
7001 lv_upper_2_0=(Token)match(input,RULE_INT,FOLLOW_2); 11008 enumLiteral_2=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
11009 if ( state.backtracking==0 ) {
11010
11011 current = grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
11012 newLeafNode(enumLiteral_2, grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2());
11013
11014 }
7002 11015
7003 newLeafNode(lv_upper_2_0, grammarAccess.getMultiplicityDefinitionAccess().getUpperINTTerminalRuleCall_2_0_0()); 11016 }
7004
7005 11017
7006 if (current==null) {
7007 current = createModelElement(grammarAccess.getMultiplicityDefinitionRule());
7008 }
7009 setWithLastConsumed(
7010 current,
7011 "upper",
7012 lv_upper_2_0,
7013 "org.eclipse.xtext.common.Terminals.INT");
7014
7015 11018
7016 } 11019 }
11020 break;
11021 case 4 :
11022 // InternalSolverLanguage.g:3786:3: (enumLiteral_3= 'avg' )
11023 {
11024 // InternalSolverLanguage.g:3786:3: (enumLiteral_3= 'avg' )
11025 // InternalSolverLanguage.g:3787:4: enumLiteral_3= 'avg'
11026 {
11027 enumLiteral_3=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
11028 if ( state.backtracking==0 ) {
11029
11030 current = grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
11031 newLeafNode(enumLiteral_3, grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3());
11032
11033 }
11034
11035 }
11036
11037
11038 }
11039 break;
11040 case 5 :
11041 // InternalSolverLanguage.g:3794:3: (enumLiteral_4= 'min' )
11042 {
11043 // InternalSolverLanguage.g:3794:3: (enumLiteral_4= 'min' )
11044 // InternalSolverLanguage.g:3795:4: enumLiteral_4= 'min'
11045 {
11046 enumLiteral_4=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
11047 if ( state.backtracking==0 ) {
11048
11049 current = grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
11050 newLeafNode(enumLiteral_4, grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4());
11051
11052 }
11053
11054 }
11055
11056
11057 }
11058 break;
11059 case 6 :
11060 // InternalSolverLanguage.g:3802:3: (enumLiteral_5= 'max' )
11061 {
11062 // InternalSolverLanguage.g:3802:3: (enumLiteral_5= 'max' )
11063 // InternalSolverLanguage.g:3803:4: enumLiteral_5= 'max'
11064 {
11065 enumLiteral_5=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
11066 if ( state.backtracking==0 ) {
11067
11068 current = grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
11069 newLeafNode(enumLiteral_5, grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5());
11070
11071 }
11072
11073 }
11074
11075
11076 }
11077 break;
11078
11079 }
11080
11081
11082 }
11083
11084 if ( state.backtracking==0 ) {
11085
11086 leaveRule();
11087
11088 }
11089 }
11090
11091 catch (RecognitionException re) {
11092 recover(input,re);
11093 appendSkippedTokens();
11094 }
11095 finally {
11096 }
11097 return current;
11098 }
11099 // $ANTLR end "ruleAggregationOp"
11100
11101
11102 // $ANTLR start "ruleLogicValue"
11103 // InternalSolverLanguage.g:3813:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) | (enumLiteral_3= 'error' ) ) ;
11104 public final Enumerator ruleLogicValue() throws RecognitionException {
11105 Enumerator current = null;
11106
11107 Token enumLiteral_0=null;
11108 Token enumLiteral_1=null;
11109 Token enumLiteral_2=null;
11110 Token enumLiteral_3=null;
11111
11112
11113 enterRule();
11114
11115 try {
11116 // InternalSolverLanguage.g:3819:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) | (enumLiteral_3= 'error' ) ) )
11117 // InternalSolverLanguage.g:3820:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) | (enumLiteral_3= 'error' ) )
11118 {
11119 // InternalSolverLanguage.g:3820:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) | (enumLiteral_3= 'error' ) )
11120 int alt51=4;
11121 switch ( input.LA(1) ) {
11122 case 70:
11123 {
11124 alt51=1;
11125 }
11126 break;
11127 case 71:
11128 {
11129 alt51=2;
11130 }
11131 break;
11132 case 72:
11133 {
11134 alt51=3;
11135 }
11136 break;
11137 case 19:
11138 {
11139 alt51=4;
11140 }
11141 break;
11142 default:
11143 if (state.backtracking>0) {state.failed=true; return current;}
11144 NoViableAltException nvae =
11145 new NoViableAltException("", 51, 0, input);
7017 11146
11147 throw nvae;
11148 }
11149
11150 switch (alt51) {
11151 case 1 :
11152 // InternalSolverLanguage.g:3821:3: (enumLiteral_0= 'true' )
11153 {
11154 // InternalSolverLanguage.g:3821:3: (enumLiteral_0= 'true' )
11155 // InternalSolverLanguage.g:3822:4: enumLiteral_0= 'true'
11156 {
11157 enumLiteral_0=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
11158 if ( state.backtracking==0 ) {
11159
11160 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
11161 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
11162
11163 }
7018 11164
7019 } 11165 }
7020 11166
@@ -7022,27 +11168,56 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7022 } 11168 }
7023 break; 11169 break;
7024 case 2 : 11170 case 2 :
7025 // InternalSolverLanguage.g:2479:4: ( (lv_unlimitedUpper_3_0= '*' ) ) 11171 // InternalSolverLanguage.g:3829:3: (enumLiteral_1= 'false' )
11172 {
11173 // InternalSolverLanguage.g:3829:3: (enumLiteral_1= 'false' )
11174 // InternalSolverLanguage.g:3830:4: enumLiteral_1= 'false'
7026 { 11175 {
7027 // InternalSolverLanguage.g:2479:4: ( (lv_unlimitedUpper_3_0= '*' ) ) 11176 enumLiteral_1=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
7028 // InternalSolverLanguage.g:2480:5: (lv_unlimitedUpper_3_0= '*' ) 11177 if ( state.backtracking==0 ) {
11178
11179 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
11180 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
11181
11182 }
11183
11184 }
11185
11186
11187 }
11188 break;
11189 case 3 :
11190 // InternalSolverLanguage.g:3837:3: (enumLiteral_2= 'unknown' )
7029 { 11191 {
7030 // InternalSolverLanguage.g:2480:5: (lv_unlimitedUpper_3_0= '*' ) 11192 // InternalSolverLanguage.g:3837:3: (enumLiteral_2= 'unknown' )
7031 // InternalSolverLanguage.g:2481:6: lv_unlimitedUpper_3_0= '*' 11193 // InternalSolverLanguage.g:3838:4: enumLiteral_2= 'unknown'
7032 { 11194 {
7033 lv_unlimitedUpper_3_0=(Token)match(input,31,FOLLOW_2); 11195 enumLiteral_2=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
11196 if ( state.backtracking==0 ) {
11197
11198 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
11199 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
11200
11201 }
7034 11202
7035 newLeafNode(lv_unlimitedUpper_3_0, grammarAccess.getMultiplicityDefinitionAccess().getUnlimitedUpperAsteriskKeyword_2_1_0()); 11203 }
7036
7037 11204
7038 if (current==null) {
7039 current = createModelElement(grammarAccess.getMultiplicityDefinitionRule());
7040 }
7041 setWithLastConsumed(current, "unlimitedUpper", true, "*");
7042
7043 11205
7044 } 11206 }
11207 break;
11208 case 4 :
11209 // InternalSolverLanguage.g:3845:3: (enumLiteral_3= 'error' )
11210 {
11211 // InternalSolverLanguage.g:3845:3: (enumLiteral_3= 'error' )
11212 // InternalSolverLanguage.g:3846:4: enumLiteral_3= 'error'
11213 {
11214 enumLiteral_3=(Token)match(input,19,FOLLOW_2); if (state.failed) return current;
11215 if ( state.backtracking==0 ) {
7045 11216
11217 current = grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3().getEnumLiteral().getInstance();
11218 newLeafNode(enumLiteral_3, grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3());
11219
11220 }
7046 11221
7047 } 11222 }
7048 11223
@@ -7055,12 +11230,106 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7055 11230
7056 } 11231 }
7057 11232
11233 if ( state.backtracking==0 ) {
11234
11235 leaveRule();
7058 11236
7059 } 11237 }
11238 }
11239
11240 catch (RecognitionException re) {
11241 recover(input,re);
11242 appendSkippedTokens();
11243 }
11244 finally {
11245 }
11246 return current;
11247 }
11248 // $ANTLR end "ruleLogicValue"
11249
11250
11251 // $ANTLR start "ruleObjectiveKind"
11252 // InternalSolverLanguage.g:3856:1: ruleObjectiveKind returns [Enumerator current=null] : ( (enumLiteral_0= 'minimize' ) | (enumLiteral_1= 'maximize' ) ) ;
11253 public final Enumerator ruleObjectiveKind() throws RecognitionException {
11254 Enumerator current = null;
7060 11255
11256 Token enumLiteral_0=null;
11257 Token enumLiteral_1=null;
7061 11258
7062 leaveRule();
7063 11259
11260 enterRule();
11261
11262 try {
11263 // InternalSolverLanguage.g:3862:2: ( ( (enumLiteral_0= 'minimize' ) | (enumLiteral_1= 'maximize' ) ) )
11264 // InternalSolverLanguage.g:3863:2: ( (enumLiteral_0= 'minimize' ) | (enumLiteral_1= 'maximize' ) )
11265 {
11266 // InternalSolverLanguage.g:3863:2: ( (enumLiteral_0= 'minimize' ) | (enumLiteral_1= 'maximize' ) )
11267 int alt52=2;
11268 int LA52_0 = input.LA(1);
11269
11270 if ( (LA52_0==73) ) {
11271 alt52=1;
11272 }
11273 else if ( (LA52_0==74) ) {
11274 alt52=2;
11275 }
11276 else {
11277 if (state.backtracking>0) {state.failed=true; return current;}
11278 NoViableAltException nvae =
11279 new NoViableAltException("", 52, 0, input);
11280
11281 throw nvae;
11282 }
11283 switch (alt52) {
11284 case 1 :
11285 // InternalSolverLanguage.g:3864:3: (enumLiteral_0= 'minimize' )
11286 {
11287 // InternalSolverLanguage.g:3864:3: (enumLiteral_0= 'minimize' )
11288 // InternalSolverLanguage.g:3865:4: enumLiteral_0= 'minimize'
11289 {
11290 enumLiteral_0=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
11291 if ( state.backtracking==0 ) {
11292
11293 current = grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
11294 newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0());
11295
11296 }
11297
11298 }
11299
11300
11301 }
11302 break;
11303 case 2 :
11304 // InternalSolverLanguage.g:3872:3: (enumLiteral_1= 'maximize' )
11305 {
11306 // InternalSolverLanguage.g:3872:3: (enumLiteral_1= 'maximize' )
11307 // InternalSolverLanguage.g:3873:4: enumLiteral_1= 'maximize'
11308 {
11309 enumLiteral_1=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
11310 if ( state.backtracking==0 ) {
11311
11312 current = grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
11313 newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1());
11314
11315 }
11316
11317 }
11318
11319
11320 }
11321 break;
11322
11323 }
11324
11325
11326 }
11327
11328 if ( state.backtracking==0 ) {
11329
11330 leaveRule();
11331
11332 }
7064 } 11333 }
7065 11334
7066 catch (RecognitionException re) { 11335 catch (RecognitionException re) {
@@ -7071,27 +11340,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7071 } 11340 }
7072 return current; 11341 return current;
7073 } 11342 }
7074 // $ANTLR end "ruleMultiplicityDefinition" 11343 // $ANTLR end "ruleObjectiveKind"
7075 11344
7076 // Delegated rules 11345 // Delegated rules
7077 11346
7078 11347
7079 protected DFA2 dfa2 = new DFA2(this); 11348 protected DFA2 dfa2 = new DFA2(this);
7080 static final String dfa_1s = "\11\uffff"; 11349 protected DFA25 dfa25 = new DFA25(this);
7081 static final String dfa_2s = "\1\5\1\21\2\uffff\1\4\1\22\1\24\1\4\1\22"; 11350 protected DFA36 dfa36 = new DFA36(this);
7082 static final String dfa_3s = "\1\50\1\34\2\uffff\1\37\1\24\1\34\1\37\1\24"; 11351 static final String dfa_1s = "\15\uffff";
7083 static final String dfa_4s = "\2\uffff\1\1\1\2\5\uffff"; 11352 static final String dfa_2s = "\1\7\1\uffff\1\4\2\uffff\1\10\7\uffff";
7084 static final String dfa_5s = "\11\uffff}>"; 11353 static final String dfa_3s = "\1\112\1\uffff\1\73\2\uffff\1\63\7\uffff";
11354 static final String dfa_4s = "\1\uffff\1\1\1\uffff\1\2\1\4\1\uffff\1\6\1\10\1\11\1\12\1\3\1\7\1\5";
11355 static final String dfa_5s = "\15\uffff}>";
7085 static final String[] dfa_6s = { 11356 static final String[] dfa_6s = {
7086 "\1\1\12\uffff\1\3\4\uffff\6\2\5\uffff\3\2\3\uffff\3\2", 11357 "\4\1\7\uffff\1\3\1\2\1\4\1\5\1\uffff\1\1\5\uffff\1\1\3\uffff\1\1\2\uffff\1\1\2\uffff\2\1\2\7\3\uffff\1\10\3\uffff\2\6\4\uffff\2\1\2\uffff\15\1\2\11",
7087 "\1\4\2\uffff\1\2\7\uffff\1\3", 11358 "",
11359 "\1\1\3\uffff\1\3\1\uffff\1\3\4\uffff\3\1\1\3\7\uffff\3\1\4\uffff\1\12\1\uffff\1\1\13\uffff\3\1\2\uffff\10\1",
11360 "",
7088 "", 11361 "",
11362 "\1\14\1\uffff\1\14\47\uffff\2\13",
7089 "", 11363 "",
7090 "\1\2\1\5\1\2\4\uffff\1\2\1\uffff\2\2\4\uffff\1\6\1\2\6\uffff\1\2\3\uffff\1\2", 11364 "",
7091 "\1\7\1\6\1\3", 11365 "",
7092 "\1\2\7\uffff\1\3", 11366 "",
7093 "\1\2\1\10\1\2\4\uffff\1\2\1\uffff\2\2\5\uffff\1\2\6\uffff\1\2\3\uffff\1\2", 11367 "",
7094 "\1\7\1\6\1\3" 11368 "",
11369 ""
7095 }; 11370 };
7096 11371
7097 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); 11372 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -7115,46 +11390,156 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser {
7115 this.transition = dfa_6; 11390 this.transition = dfa_6;
7116 } 11391 }
7117 public String getDescription() { 11392 public String getDescription() {
7118 return "114:2: (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate )"; 11393 return "116:3: (this_AssertionOrDefinition_0= ruleAssertionOrDefinition | this_PredicateDefinition_1= rulePredicateDefinition | this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition | this_DefaultDefinition_3= ruleDefaultDefinition | this_ExternPredicateDefinition_4= ruleExternPredicateDefinition | this_MetricDefinition_5= ruleMetricDefinition | this_ExternMetricDefinition_6= ruleExternMetricDefinition | this_ClassDefinition_7= ruleClassDefinition | this_ScopeDefinition_8= ruleScopeDefinition | this_ObjectiveDefinition_9= ruleObjectiveDefinition )";
11394 }
11395 }
11396 static final String dfa_7s = "\12\uffff";
11397 static final String dfa_8s = "\1\uffff\2\3\4\uffff\1\11\1\3\1\uffff";
11398 static final String dfa_9s = "\1\7\2\10\2\uffff\1\10\1\uffff\1\7\1\10\1\uffff";
11399 static final String dfa_10s = "\1\110\2\73\2\uffff\1\10\1\uffff\1\110\1\73\1\uffff";
11400 static final String dfa_11s = "\3\uffff\1\1\1\2\1\uffff\1\3\2\uffff\1\4";
11401 static final String dfa_12s = "\12\uffff}>";
11402 static final String[] dfa_13s = {
11403 "\1\3\1\1\1\3\1\2\10\uffff\1\3\11\uffff\1\3\3\uffff\1\3\1\uffff\1\4\1\3\2\uffff\2\3\17\uffff\2\3\2\uffff\15\3",
11404 "\1\6\1\uffff\1\6\13\uffff\1\5\5\uffff\1\3\4\uffff\2\3\1\7\13\uffff\3\3\2\uffff\10\3",
11405 "\1\6\1\uffff\1\6\21\uffff\1\3\4\uffff\2\3\1\7\13\uffff\3\3\2\uffff\10\3",
11406 "",
11407 "",
11408 "\1\10",
11409 "",
11410 "\4\3\10\uffff\1\3\10\uffff\1\11\1\3\3\uffff\1\3\1\11\1\uffff\1\3\2\uffff\2\3\17\uffff\2\3\2\uffff\15\3",
11411 "\1\6\1\uffff\1\6\13\uffff\1\5\5\uffff\1\3\4\uffff\2\3\1\7\13\uffff\3\3\2\uffff\10\3",
11412 ""
11413 };
11414
11415 static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s);
11416 static final short[] dfa_8 = DFA.unpackEncodedString(dfa_8s);
11417 static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
11418 static final char[] dfa_10 = DFA.unpackEncodedStringToUnsignedChars(dfa_10s);
11419 static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s);
11420 static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
11421 static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);
11422
11423 class DFA25 extends DFA {
11424
11425 public DFA25(BaseRecognizer recognizer) {
11426 this.recognizer = recognizer;
11427 this.decisionNumber = 25;
11428 this.eot = dfa_7;
11429 this.eof = dfa_8;
11430 this.min = dfa_9;
11431 this.max = dfa_10;
11432 this.accept = dfa_11;
11433 this.special = dfa_12;
11434 this.transition = dfa_13;
11435 }
11436 public String getDescription() {
11437 return "1998:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument )";
11438 }
11439 }
11440 static final String dfa_14s = "\17\uffff";
11441 static final String dfa_15s = "\15\uffff\1\11\1\uffff";
11442 static final String dfa_16s = "\1\56\1\10\1\60\1\26\1\57\1\10\1\uffff\1\10\2\uffff\3\26\1\4\1\26";
11443 static final String dfa_17s = "\1\56\1\12\3\61\1\12\1\uffff\1\10\2\uffff\2\60\1\61\1\10\1\60";
11444 static final String dfa_18s = "\6\uffff\1\2\1\uffff\1\1\1\3\5\uffff";
11445 static final String dfa_19s = "\17\uffff}>";
11446 static final String[] dfa_20s = {
11447 "\1\1",
11448 "\1\3\1\2\1\4",
11449 "\1\5\1\6",
11450 "\1\7\30\uffff\1\10\1\6\1\11",
11451 "\1\10\1\6\1\11",
11452 "\1\12\1\uffff\1\13",
11453 "",
11454 "\1\14",
11455 "",
11456 "",
11457 "\1\15\31\uffff\1\6",
11458 "\1\11\31\uffff\1\6",
11459 "\1\7\30\uffff\1\10\1\6\1\11",
11460 "\1\11\3\uffff\1\16",
11461 "\1\15\31\uffff\1\6"
11462 };
11463
11464 static final short[] dfa_14 = DFA.unpackEncodedString(dfa_14s);
11465 static final short[] dfa_15 = DFA.unpackEncodedString(dfa_15s);
11466 static final char[] dfa_16 = DFA.unpackEncodedStringToUnsignedChars(dfa_16s);
11467 static final char[] dfa_17 = DFA.unpackEncodedStringToUnsignedChars(dfa_17s);
11468 static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
11469 static final short[] dfa_19 = DFA.unpackEncodedString(dfa_19s);
11470 static final short[][] dfa_20 = unpackEncodedStringArray(dfa_20s);
11471
11472 class DFA36 extends DFA {
11473
11474 public DFA36(BaseRecognizer recognizer) {
11475 this.recognizer = recognizer;
11476 this.decisionNumber = 36;
11477 this.eot = dfa_14;
11478 this.eof = dfa_15;
11479 this.min = dfa_16;
11480 this.max = dfa_17;
11481 this.accept = dfa_18;
11482 this.special = dfa_19;
11483 this.transition = dfa_20;
11484 }
11485 public String getDescription() {
11486 return "2973:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition )";
7119 } 11487 }
7120 } 11488 }
7121 11489
7122 11490
7123 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); 11491 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
7124 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); 11492 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
7125 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x000001C707E10022L}); 11493 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0xF30C479220BC0782L,0x00000000000007FFL});
7126 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L}); 11494 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L});
7127 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000001000L}); 11495 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000038002L});
7128 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000120000L}); 11496 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0xF300019220880780L,0x00000000000001FFL});
7129 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000088186870L}); 11497 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000080500L});
7130 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00000000000C0000L}); 11498 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00000000000C0500L});
7131 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000088106870L}); 11499 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000010000L});
7132 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000100000L}); 11500 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000200000000L});
7133 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x000000000001E000L}); 11501 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000008000L});
7134 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000020L}); 11502 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000400000L});
7135 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000008000000L}); 11503 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000020000L});
7136 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000010020000L}); 11504 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x000C000000000000L});
7137 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000080020L}); 11505 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000001000000L});
7138 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000010000000L}); 11506 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000002000000L});
7139 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x00000000E0007820L}); 11507 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x000000000C000002L});
7140 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000020001000L}); 11508 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000004000002L});
7141 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x00000000E0003820L}); 11509 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000008000000L});
7142 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000100002L}); 11510 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000010000002L});
7143 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000007E00020L}); 11511 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x00F3800000000002L});
7144 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00000000C0000822L}); 11512 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0300000000000002L});
7145 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000020002L}); 11513 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0400000800000002L});
7146 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x00000000080C6870L}); 11514 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0800000000000002L});
7147 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000008006870L}); 11515 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000019220080780L,0x00000000000001FFL});
7148 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000020000L}); 11516 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000040000000L});
7149 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000400000000L}); 11517 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000080000000L});
7150 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000001800000000L}); 11518 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000100000000L});
7151 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000001000000020L}); 11519 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000200000002L});
7152 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x000000A000000020L}); 11520 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000400000000L});
7153 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000001000000000L}); 11521 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000200000060L});
7154 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000002008000000L}); 11522 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0xF300019E20880780L,0x00000000000001FFL});
7155 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000007E00030L}); 11523 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000410000000L});
7156 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000010000000000L}); 11524 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0xF300019A20880780L,0x00000000000001FFL});
7157 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000020000000000L}); 11525 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000500L});
7158 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000080000010L}); 11526 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000800000000L});
11527 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000002000000000L});
11528 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000004000000000L});
11529 public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000040000000000L});
11530 public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000100L});
11531 public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000080040000000L});
11532 public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000050000000L});
11533 public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000100080000500L});
11534 public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000001000000100L});
11535 public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000200004000002L});
11536 public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000800000200L});
11537 public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000200L});
11538 public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000800000000000L});
11539 public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000700L});
11540 public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0001000000000000L});
11541 public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0002000000000000L});
11542 public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0002000000400000L});
11543 public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000400002L});
7159 11544
7160} \ No newline at end of file 11545} \ No newline at end of file
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/scoping/AbstractSolverLanguageScopeProvider.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/scoping/AbstractSolverLanguageScopeProvider.java
index 52cb01b5..fabd22c7 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/scoping/AbstractSolverLanguageScopeProvider.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/scoping/AbstractSolverLanguageScopeProvider.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.scoping; 4package org.eclipse.viatra.solver.language.scoping;
5 5
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java
index 1ad39fd7..fc204c16 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSemanticSequencer.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.serializer; 4package org.eclipse.viatra.solver.language.serializer;
5 5
@@ -8,43 +8,48 @@ import java.util.Set;
8import org.eclipse.emf.ecore.EObject; 8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.emf.ecore.EPackage; 9import org.eclipse.emf.ecore.EPackage;
10import org.eclipse.viatra.solver.language.services.SolverLanguageGrammarAccess; 10import org.eclipse.viatra.solver.language.services.SolverLanguageGrammarAccess;
11import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; 11import org.eclipse.viatra.solver.language.solverLanguage.Aggregation;
12import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; 12import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList;
13import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; 13import org.eclipse.viatra.solver.language.solverLanguage.Assertion;
14import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse; 14import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression;
15import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; 15import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity;
16import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol; 16import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition;
17import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; 17import org.eclipse.viatra.solver.language.solverLanguage.Call;
18import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation; 18import org.eclipse.viatra.solver.language.solverLanguage.Case;
19import org.eclipse.viatra.solver.language.solverLanguage.Constraint; 19import org.eclipse.viatra.solver.language.solverLanguage.Comparison;
20import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; 20import org.eclipse.viatra.solver.language.solverLanguage.Conjunction;
21import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation; 21import org.eclipse.viatra.solver.language.solverLanguage.Count;
22import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol; 22import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition;
23import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol; 23import org.eclipse.viatra.solver.language.solverLanguage.Disjunction;
24import org.eclipse.viatra.solver.language.solverLanguage.False; 24import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral;
25import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; 25import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity;
26import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation; 26import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition;
27import org.eclipse.viatra.solver.language.solverLanguage.IntObject; 27import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument;
28import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol; 28import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition;
29import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure; 29import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition;
30import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; 30import org.eclipse.viatra.solver.language.solverLanguage.IfElse;
31import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; 31import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral;
32import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; 32import org.eclipse.viatra.solver.language.solverLanguage.Interval;
33import org.eclipse.viatra.solver.language.solverLanguage.Negative; 33import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral;
34import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; 34import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition;
35import org.eclipse.viatra.solver.language.solverLanguage.Positive; 35import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity;
36import org.eclipse.viatra.solver.language.solverLanguage.Predicate; 36import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition;
37import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition;
38import org.eclipse.viatra.solver.language.solverLanguage.NamedElement;
39import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral;
40import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition;
41import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition;
37import org.eclipse.viatra.solver.language.solverLanguage.Problem; 42import org.eclipse.viatra.solver.language.solverLanguage.Problem;
38import org.eclipse.viatra.solver.language.solverLanguage.RealObject; 43import org.eclipse.viatra.solver.language.solverLanguage.Reference;
39import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol;
40import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure;
41import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 44import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
42import org.eclipse.viatra.solver.language.solverLanguage.StringObject; 45import org.eclipse.viatra.solver.language.solverLanguage.StarArgument;
43import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; 46import org.eclipse.viatra.solver.language.solverLanguage.Statement;
44import org.eclipse.viatra.solver.language.solverLanguage.True; 47import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral;
45import org.eclipse.viatra.solver.language.solverLanguage.Unknown; 48import org.eclipse.viatra.solver.language.solverLanguage.Switch;
46import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject; 49import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument;
47import org.eclipse.viatra.solver.language.solverLanguage.Variable; 50import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument;
51import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression;
52import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition;
48import org.eclipse.xtext.Action; 53import org.eclipse.xtext.Action;
49import org.eclipse.xtext.Parameter; 54import org.eclipse.xtext.Parameter;
50import org.eclipse.xtext.ParserRule; 55import org.eclipse.xtext.ParserRule;
@@ -67,119 +72,183 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
67 Set<Parameter> parameters = context.getEnabledBooleanParameters(); 72 Set<Parameter> parameters = context.getEnabledBooleanParameters();
68 if (epackage == SolverLanguagePackage.eINSTANCE) 73 if (epackage == SolverLanguagePackage.eINSTANCE)
69 switch (semanticObject.eClass().getClassifierID()) { 74 switch (semanticObject.eClass().getClassifierID()) {
70 case SolverLanguagePackage.ALL_INSTANCES: 75 case SolverLanguagePackage.AGGREGATION:
71 sequence_AllInstances(context, (AllInstances) semanticObject); 76 sequence_Aggregation(context, (Aggregation) semanticObject);
72 return; 77 return;
73 case SolverLanguagePackage.ALL_OBJECTS: 78 case SolverLanguagePackage.ARGUMENT_LIST:
74 sequence_AllObjects(context, (AllObjects) semanticObject); 79 sequence_ArgumentList(context, (ArgumentList) semanticObject);
75 return; 80 return;
76 case SolverLanguagePackage.BASIC_INTERPRETATION: 81 case SolverLanguagePackage.ASSERTION:
77 sequence_BasicInterpretation(context, (BasicInterpretation) semanticObject); 82 sequence_AssertionOrDefinition(context, (Assertion) semanticObject);
78 return; 83 return;
79 case SolverLanguagePackage.BOOLEAN_FALSE: 84 case SolverLanguagePackage.BINARY_EXPRESSION:
80 sequence_BooleanValue(context, (BooleanFalse) semanticObject); 85 sequence_AdditiveExpression_ExponentialExpression_MultiplicativeExpression(context, (BinaryExpression) semanticObject);
81 return; 86 return;
82 case SolverLanguagePackage.BOOLEAN_OBJECT: 87 case SolverLanguagePackage.BOUNDED_MULTIPLICITY:
83 sequence_BooleanObject(context, (BooleanObject) semanticObject); 88 sequence_BoundedMultiplicity(context, (BoundedMultiplicity) semanticObject);
84 return; 89 return;
85 case SolverLanguagePackage.BOOLEAN_SYMBOL: 90 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION:
86 sequence_BooleanSymbol(context, (BooleanSymbol) semanticObject); 91 sequence_BoundedScopeDefinition(context, (BoundedScopeDefinition) semanticObject);
87 return; 92 return;
88 case SolverLanguagePackage.BOOLEAN_TRUE: 93 case SolverLanguagePackage.CALL:
89 sequence_BooleanValue(context, (BooleanTrue) semanticObject); 94 if (action == grammarAccess.getAssertionOrDefinitionAccess().getAssertionBodyAction_1_0_0()
95 || action == grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0()
96 || action == grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0()
97 || rule == grammarAccess.getExpressionRule()
98 || rule == grammarAccess.getDisjunctiveExpressionRule()
99 || action == grammarAccess.getDisjunctiveExpressionAccess().getDisjunctionChildrenAction_1_0_0()
100 || action == grammarAccess.getDisjunctiveExpressionAccess().getCaseConditionAction_1_1_0()
101 || rule == grammarAccess.getConjunctiveExpressionRule()
102 || action == grammarAccess.getConjunctiveExpressionAccess().getConjunctionChildrenAction_1_0()
103 || rule == grammarAccess.getComparisonExpressionRule()
104 || action == grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0()
105 || rule == grammarAccess.getAdditiveExpressionRule()
106 || action == grammarAccess.getAdditiveExpressionAccess().getBinaryExpressionLeftAction_1_0()
107 || rule == grammarAccess.getMultiplicativeExpressionRule()
108 || action == grammarAccess.getMultiplicativeExpressionAccess().getBinaryExpressionLeftAction_1_0()
109 || rule == grammarAccess.getExponentialExpressionRule()
110 || action == grammarAccess.getExponentialExpressionAccess().getBinaryExpressionLeftAction_1_0()
111 || rule == grammarAccess.getUnaryExpressionRule()
112 || rule == grammarAccess.getAggregationExpressionRule()
113 || rule == grammarAccess.getAtomicExpressionRule()) {
114 sequence_AtomicExpression(context, (Call) semanticObject);
115 return;
116 }
117 else if (rule == grammarAccess.getCallRule()) {
118 sequence_Call(context, (Call) semanticObject);
119 return;
120 }
121 else break;
122 case SolverLanguagePackage.CASE:
123 if (rule == grammarAccess.getCaseRule()) {
124 sequence_Case(context, (Case) semanticObject);
125 return;
126 }
127 else if (action == grammarAccess.getDisjunctiveExpressionAccess().getSwitchCasesAction_1_1_3()) {
128 sequence_DisjunctiveExpression_Switch_1_1_3(context, (Case) semanticObject);
129 return;
130 }
131 else break;
132 case SolverLanguagePackage.COMPARISON:
133 sequence_ComparisonExpression(context, (Comparison) semanticObject);
90 return; 134 return;
91 case SolverLanguagePackage.CLASS_INTERPRETATION: 135 case SolverLanguagePackage.CONJUNCTION:
92 sequence_ClassInterpretation(context, (ClassInterpretation) semanticObject); 136 sequence_ConjunctiveExpression(context, (Conjunction) semanticObject);
93 return; 137 return;
94 case SolverLanguagePackage.CONSTRAINT: 138 case SolverLanguagePackage.COUNT:
95 sequence_Constraint(context, (Constraint) semanticObject); 139 sequence_Count(context, (Count) semanticObject);
96 return; 140 return;
97 case SolverLanguagePackage.DEFAULT_INTERPRETATION: 141 case SolverLanguagePackage.DEFAULT_DEFINITION:
98 sequence_DefaultInterpretation(context, (DefaultInterpretation) semanticObject); 142 sequence_DefaultDefinition(context, (DefaultDefinition) semanticObject);
99 return; 143 return;
100 case SolverLanguagePackage.ENUM_INTERPRETATION: 144 case SolverLanguagePackage.DISJUNCTION:
101 sequence_EnumInterpretation(context, (EnumInterpretation) semanticObject); 145 sequence_DisjunctiveExpression(context, (Disjunction) semanticObject);
102 return; 146 return;
103 case SolverLanguagePackage.EQUALS_SYMBOL: 147 case SolverLanguagePackage.EMPTY_INTERVAL_LITERAL:
104 sequence_EqualsSymbol(context, (EqualsSymbol) semanticObject); 148 sequence_EmptyIntervalLiteral(context, (EmptyIntervalLiteral) semanticObject);
105 return; 149 return;
106 case SolverLanguagePackage.ERROR: 150 case SolverLanguagePackage.EXACT_MULTIPLICITY:
107 sequence_TruthValue(context, (org.eclipse.viatra.solver.language.solverLanguage.Error) semanticObject); 151 sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject);
108 return; 152 return;
109 case SolverLanguagePackage.EXIST_SYMBOL: 153 case SolverLanguagePackage.EXACT_SCOPE_DEFINITION:
110 sequence_ExistSymbol(context, (ExistSymbol) semanticObject); 154 sequence_ExactScopeDefinition(context, (ExactScopeDefinition) semanticObject);
111 return; 155 return;
112 case SolverLanguagePackage.FALSE: 156 case SolverLanguagePackage.EXPRESSION_ARGUMENT:
113 sequence_TruthValue(context, (False) semanticObject); 157 sequence_ExpressionArgument(context, (ExpressionArgument) semanticObject);
114 return; 158 return;
115 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION: 159 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION:
116 sequence_FieldRelationInterpretation(context, (FieldRelationInterpretation) semanticObject); 160 sequence_ExternMetricDefinition(context, (ExternMetricDefinition) semanticObject);
117 return; 161 return;
118 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION: 162 case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION:
119 sequence_GlobalRelationInterpretation(context, (GlobalRelationInterpretation) semanticObject); 163 sequence_ExternPredicateDefinition(context, (ExternPredicateDefinition) semanticObject);
120 return; 164 return;
121 case SolverLanguagePackage.INT_OBJECT: 165 case SolverLanguagePackage.IF_ELSE:
122 sequence_IntObject(context, (IntObject) semanticObject); 166 sequence_IfElse(context, (IfElse) semanticObject);
123 return; 167 return;
124 case SolverLanguagePackage.INTEGER_SYMBOL: 168 case SolverLanguagePackage.INFINITY_LITERAL:
125 sequence_IntegerSymbol(context, (IntegerSymbol) semanticObject); 169 sequence_InfinityLiteral(context, (InfinityLiteral) semanticObject);
126 return; 170 return;
127 case SolverLanguagePackage.IRREFLEXIVE_CLOSURE: 171 case SolverLanguagePackage.INTERVAL:
128 sequence_ClosureType(context, (IrreflexiveClosure) semanticObject); 172 sequence_Interval(context, (Interval) semanticObject);
129 return; 173 return;
130 case SolverLanguagePackage.MODEL_SYMBOL: 174 case SolverLanguagePackage.LOGIC_LITERAL:
131 sequence_ModelSymbol(context, (ModelSymbol) semanticObject); 175 sequence_LogicLiteral(context, (LogicLiteral) semanticObject);
132 return; 176 return;
133 case SolverLanguagePackage.MULTIPLICITY_DEFINITION: 177 case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION:
134 sequence_MultiplicityDefinition(context, (MultiplicityDefinition) semanticObject); 178 sequence_LowerBoundedScopeDefinition(context, (LowerBoundedScopeDefinition) semanticObject);
135 return; 179 return;
136 case SolverLanguagePackage.NAMED_OBJECT: 180 case SolverLanguagePackage.MANY_MULTIPLICITY:
137 sequence_NamedObject(context, (NamedObject) semanticObject); 181 sequence_ManyMultiplicity(context, (ManyMultiplicity) semanticObject);
138 return; 182 return;
139 case SolverLanguagePackage.NEGATIVE: 183 case SolverLanguagePackage.MEMBER_DEFINITION:
140 sequence_Polarity(context, (Negative) semanticObject); 184 sequence_MemberDefinition(context, (MemberDefinition) semanticObject);
141 return; 185 return;
142 case SolverLanguagePackage.PARAMETER: 186 case SolverLanguagePackage.METRIC_DEFINITION:
143 sequence_Parameter(context, (org.eclipse.viatra.solver.language.solverLanguage.Parameter) semanticObject); 187 if (rule == grammarAccess.getAssertionOrDefinitionRule()) {
188 sequence_AssertionOrDefinition(context, (MetricDefinition) semanticObject);
189 return;
190 }
191 else if (rule == grammarAccess.getStatementRule()) {
192 sequence_AssertionOrDefinition_MetricDefinition(context, (MetricDefinition) semanticObject);
193 return;
194 }
195 else if (rule == grammarAccess.getMetricDefinitionRule()) {
196 sequence_MetricDefinition(context, (MetricDefinition) semanticObject);
197 return;
198 }
199 else break;
200 case SolverLanguagePackage.NAMED_ELEMENT:
201 sequence_NamedElement(context, (NamedElement) semanticObject);
144 return; 202 return;
145 case SolverLanguagePackage.PATTERN_BODY: 203 case SolverLanguagePackage.NUMERIC_LITERAL:
146 sequence_PatternBody(context, (PatternBody) semanticObject); 204 sequence_NumericLiteral(context, (NumericLiteral) semanticObject);
147 return; 205 return;
148 case SolverLanguagePackage.POSITIVE: 206 case SolverLanguagePackage.OBJECTIVE_DEFINITION:
149 sequence_Polarity(context, (Positive) semanticObject); 207 sequence_ObjectiveDefinition(context, (ObjectiveDefinition) semanticObject);
150 return;
151 case SolverLanguagePackage.PREDICATE:
152 sequence_Predicate(context, (Predicate) semanticObject);
153 return; 208 return;
209 case SolverLanguagePackage.PREDICATE_DEFINITION:
210 if (rule == grammarAccess.getAssertionOrDefinitionRule()) {
211 sequence_AssertionOrDefinition(context, (PredicateDefinition) semanticObject);
212 return;
213 }
214 else if (rule == grammarAccess.getStatementRule()) {
215 sequence_AssertionOrDefinition_PredicateDefinition(context, (PredicateDefinition) semanticObject);
216 return;
217 }
218 else if (rule == grammarAccess.getPredicateDefinitionRule()) {
219 sequence_PredicateDefinition(context, (PredicateDefinition) semanticObject);
220 return;
221 }
222 else break;
154 case SolverLanguagePackage.PROBLEM: 223 case SolverLanguagePackage.PROBLEM:
155 sequence_Problem(context, (Problem) semanticObject); 224 sequence_Problem(context, (Problem) semanticObject);
156 return; 225 return;
157 case SolverLanguagePackage.REAL_OBJECT: 226 case SolverLanguagePackage.REFERENCE:
158 sequence_RealObject(context, (RealObject) semanticObject); 227 sequence_Reference(context, (Reference) semanticObject);
159 return; 228 return;
160 case SolverLanguagePackage.REAL_SYMBOL: 229 case SolverLanguagePackage.STAR_ARGUMENT:
161 sequence_RealSymbol(context, (RealSymbol) semanticObject); 230 sequence_StarArgument(context, (StarArgument) semanticObject);
162 return; 231 return;
163 case SolverLanguagePackage.REFLEXIVE_CLOSURE: 232 case SolverLanguagePackage.STATEMENT:
164 sequence_ClosureType(context, (ReflexiveClosure) semanticObject); 233 sequence_ClassDefinition(context, (Statement) semanticObject);
165 return; 234 return;
166 case SolverLanguagePackage.STRING_OBJECT: 235 case SolverLanguagePackage.STRING_LITERAL:
167 sequence_StringObject(context, (StringObject) semanticObject); 236 sequence_StringLiteral(context, (StringLiteral) semanticObject);
168 return; 237 return;
169 case SolverLanguagePackage.STRING_SYMBOL: 238 case SolverLanguagePackage.SWITCH:
170 sequence_StringSymbol(context, (StringSymbol) semanticObject); 239 sequence_DisjunctiveExpression(context, (Switch) semanticObject);
171 return; 240 return;
172 case SolverLanguagePackage.TRUE: 241 case SolverLanguagePackage.TYPED_ARGUMENT:
173 sequence_TruthValue(context, (True) semanticObject); 242 sequence_TypedArgument(context, (TypedArgument) semanticObject);
174 return; 243 return;
175 case SolverLanguagePackage.UNKNOWN: 244 case SolverLanguagePackage.TYPED_STAR_ARGUMENT:
176 sequence_TruthValue(context, (Unknown) semanticObject); 245 sequence_TypedStarArgument(context, (TypedStarArgument) semanticObject);
177 return; 246 return;
178 case SolverLanguagePackage.UNNAMED_OBJECT: 247 case SolverLanguagePackage.UNARY_EXPRESSION:
179 sequence_UnnamedObject(context, (UnnamedObject) semanticObject); 248 sequence_UnaryExpression(context, (UnaryExpression) semanticObject);
180 return; 249 return;
181 case SolverLanguagePackage.VARIABLE: 250 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION:
182 sequence_Variable(context, (Variable) semanticObject); 251 sequence_UnnamedErrorPrediateDefinition(context, (UnnamedErrorPrediateDefinition) semanticObject);
183 return; 252 return;
184 } 253 }
185 if (errorAcceptor != null) 254 if (errorAcceptor != null)
@@ -188,574 +257,1169 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS
188 257
189 /** 258 /**
190 * Contexts: 259 * Contexts:
191 * ComplexObject returns AllInstances 260 * AssertionOrDefinition.Assertion_1_0_0 returns BinaryExpression
192 * AllInstances returns AllInstances 261 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns BinaryExpression
262 * AssertionOrDefinition.MetricDefinition_1_2_0 returns BinaryExpression
263 * Expression returns BinaryExpression
264 * DisjunctiveExpression returns BinaryExpression
265 * DisjunctiveExpression.Disjunction_1_0_0 returns BinaryExpression
266 * DisjunctiveExpression.Case_1_1_0 returns BinaryExpression
267 * ConjunctiveExpression returns BinaryExpression
268 * ConjunctiveExpression.Conjunction_1_0 returns BinaryExpression
269 * ComparisonExpression returns BinaryExpression
270 * ComparisonExpression.Comparison_1_0 returns BinaryExpression
271 * AdditiveExpression returns BinaryExpression
272 * AdditiveExpression.BinaryExpression_1_0 returns BinaryExpression
273 * MultiplicativeExpression returns BinaryExpression
274 * MultiplicativeExpression.BinaryExpression_1_0 returns BinaryExpression
275 * ExponentialExpression returns BinaryExpression
276 * ExponentialExpression.BinaryExpression_1_0 returns BinaryExpression
277 * UnaryExpression returns BinaryExpression
278 * AggregationExpression returns BinaryExpression
279 * AtomicExpression returns BinaryExpression
280 *
281 * Constraint:
282 * (
283 * (left=AdditiveExpression_BinaryExpression_1_0 op=AdditiveBinaryOperator right=MultiplicativeExpression) |
284 * (left=MultiplicativeExpression_BinaryExpression_1_0 op=MultiplicativeBinaryOperator right=ExponentialExpression) |
285 * (left=ExponentialExpression_BinaryExpression_1_0 op=ExponentialOp right=ExponentialExpression)
286 * )
287 */
288 protected void sequence_AdditiveExpression_ExponentialExpression_MultiplicativeExpression(ISerializationContext context, BinaryExpression semanticObject) {
289 genericSequencer.createSequence(context, semanticObject);
290 }
291
292
293 /**
294 * Contexts:
295 * AssertionOrDefinition.Assertion_1_0_0 returns Aggregation
296 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Aggregation
297 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Aggregation
298 * Expression returns Aggregation
299 * DisjunctiveExpression returns Aggregation
300 * DisjunctiveExpression.Disjunction_1_0_0 returns Aggregation
301 * DisjunctiveExpression.Case_1_1_0 returns Aggregation
302 * ConjunctiveExpression returns Aggregation
303 * ConjunctiveExpression.Conjunction_1_0 returns Aggregation
304 * ComparisonExpression returns Aggregation
305 * ComparisonExpression.Comparison_1_0 returns Aggregation
306 * AdditiveExpression returns Aggregation
307 * AdditiveExpression.BinaryExpression_1_0 returns Aggregation
308 * MultiplicativeExpression returns Aggregation
309 * MultiplicativeExpression.BinaryExpression_1_0 returns Aggregation
310 * ExponentialExpression returns Aggregation
311 * ExponentialExpression.BinaryExpression_1_0 returns Aggregation
312 * UnaryExpression returns Aggregation
313 * AggregationExpression returns Aggregation
314 * Aggregation returns Aggregation
315 * AtomicExpression returns Aggregation
193 * 316 *
194 * Constraint: 317 * Constraint:
195 * symbol=Symbol 318 * (op=AggregationOp body=Expression condition=Expression)
196 */ 319 */
197 protected void sequence_AllInstances(ISerializationContext context, AllInstances semanticObject) { 320 protected void sequence_Aggregation(ISerializationContext context, Aggregation semanticObject) {
198 if (errorAcceptor != null) { 321 if (errorAcceptor != null) {
199 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.ALL_INSTANCES__SYMBOL) == ValueTransient.YES) 322 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__OP) == ValueTransient.YES)
200 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.ALL_INSTANCES__SYMBOL)); 323 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__OP));
324 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__BODY) == ValueTransient.YES)
325 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__BODY));
326 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__CONDITION) == ValueTransient.YES)
327 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__CONDITION));
201 } 328 }
202 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 329 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
203 feeder.accept(grammarAccess.getAllInstancesAccess().getSymbolSymbolParserRuleCall_1_0(), semanticObject.getSymbol()); 330 feeder.accept(grammarAccess.getAggregationAccess().getOpAggregationOpEnumRuleCall_0_0(), semanticObject.getOp());
331 feeder.accept(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_2_0(), semanticObject.getBody());
332 feeder.accept(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0(), semanticObject.getCondition());
204 feeder.finish(); 333 feeder.finish();
205 } 334 }
206 335
207 336
208 /** 337 /**
209 * Contexts: 338 * Contexts:
210 * ComplexObject returns AllObjects 339 * ArgumentList returns ArgumentList
211 * AllObjects returns AllObjects
212 * 340 *
213 * Constraint: 341 * Constraint:
214 * {AllObjects} 342 * (arguments+=Argument arguments+=Argument*)?
215 */ 343 */
216 protected void sequence_AllObjects(ISerializationContext context, AllObjects semanticObject) { 344 protected void sequence_ArgumentList(ISerializationContext context, ArgumentList semanticObject) {
217 genericSequencer.createSequence(context, semanticObject); 345 genericSequencer.createSequence(context, semanticObject);
218 } 346 }
219 347
220 348
221 /** 349 /**
222 * Contexts: 350 * Contexts:
223 * Statement returns BasicInterpretation 351 * Statement returns Assertion
224 * Interpretation returns BasicInterpretation 352 * AssertionOrDefinition returns Assertion
225 * BasicInterpretation returns BasicInterpretation
226 * 353 *
227 * Constraint: 354 * Constraint:
228 * (symbol=Symbol (objects+=ComplexObject objects+=ComplexObject*)? value=TruthValue) 355 * (body=AssertionOrDefinition_Assertion_1_0_0 range=Expression?)
229 */ 356 */
230 protected void sequence_BasicInterpretation(ISerializationContext context, BasicInterpretation semanticObject) { 357 protected void sequence_AssertionOrDefinition(ISerializationContext context, Assertion semanticObject) {
231 genericSequencer.createSequence(context, semanticObject); 358 genericSequencer.createSequence(context, semanticObject);
232 } 359 }
233 360
234 361
235 /** 362 /**
236 * Contexts: 363 * Contexts:
237 * ComplexObject returns BooleanObject 364 * AssertionOrDefinition returns MetricDefinition
238 * Object returns BooleanObject
239 * DataObject returns BooleanObject
240 * BooleanObject returns BooleanObject
241 * Literal returns BooleanObject
242 * 365 *
243 * Constraint: 366 * Constraint:
244 * value=BooleanValue 367 * (head=AssertionOrDefinition_MetricDefinition_1_2_0 body=Expression)
245 */ 368 */
246 protected void sequence_BooleanObject(ISerializationContext context, BooleanObject semanticObject) { 369 protected void sequence_AssertionOrDefinition(ISerializationContext context, MetricDefinition semanticObject) {
247 if (errorAcceptor != null) { 370 if (errorAcceptor != null) {
248 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.BOOLEAN_OBJECT__VALUE) == ValueTransient.YES) 371 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD) == ValueTransient.YES)
249 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.BOOLEAN_OBJECT__VALUE)); 372 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD));
373 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY) == ValueTransient.YES)
374 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY));
250 } 375 }
251 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 376 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
252 feeder.accept(grammarAccess.getBooleanObjectAccess().getValueBooleanValueParserRuleCall_0(), semanticObject.getValue()); 377 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), semanticObject.getHead());
378 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0(), semanticObject.getBody());
253 feeder.finish(); 379 feeder.finish();
254 } 380 }
255 381
256 382
257 /** 383 /**
258 * Contexts: 384 * Contexts:
259 * Symbol returns BooleanSymbol 385 * Statement returns MetricDefinition
260 * DataSymbol returns BooleanSymbol
261 * BooleanSymbol returns BooleanSymbol
262 * 386 *
263 * Constraint: 387 * Constraint:
264 * {BooleanSymbol} 388 * ((head=AssertionOrDefinition_MetricDefinition_1_2_0 body=Expression) | (type=MetricType head=Expression body=Expression))
265 */ 389 */
266 protected void sequence_BooleanSymbol(ISerializationContext context, BooleanSymbol semanticObject) { 390 protected void sequence_AssertionOrDefinition_MetricDefinition(ISerializationContext context, MetricDefinition semanticObject) {
267 genericSequencer.createSequence(context, semanticObject); 391 genericSequencer.createSequence(context, semanticObject);
268 } 392 }
269 393
270 394
271 /** 395 /**
272 * Contexts: 396 * Contexts:
273 * BooleanValue returns BooleanFalse 397 * AssertionOrDefinition returns PredicateDefinition
274 * 398 *
275 * Constraint: 399 * Constraint:
276 * {BooleanFalse} 400 * (head=AssertionOrDefinition_PredicateDefinition_1_1_0 body=Expression)
277 */ 401 */
278 protected void sequence_BooleanValue(ISerializationContext context, BooleanFalse semanticObject) { 402 protected void sequence_AssertionOrDefinition(ISerializationContext context, PredicateDefinition semanticObject) {
279 genericSequencer.createSequence(context, semanticObject); 403 if (errorAcceptor != null) {
404 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__HEAD) == ValueTransient.YES)
405 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__HEAD));
406 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__BODY) == ValueTransient.YES)
407 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__BODY));
408 }
409 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
410 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(), semanticObject.getHead());
411 feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0(), semanticObject.getBody());
412 feeder.finish();
280 } 413 }
281 414
282 415
283 /** 416 /**
284 * Contexts: 417 * Contexts:
285 * BooleanValue returns BooleanTrue 418 * Statement returns PredicateDefinition
286 * 419 *
287 * Constraint: 420 * Constraint:
288 * {BooleanTrue} 421 * (
422 * (head=AssertionOrDefinition_PredicateDefinition_1_1_0 body=Expression) |
423 * (((functional?='functional' error?='error'?) | (error?='error' functional?='functional'?)) head=Call body=Expression)
424 * )
289 */ 425 */
290 protected void sequence_BooleanValue(ISerializationContext context, BooleanTrue semanticObject) { 426 protected void sequence_AssertionOrDefinition_PredicateDefinition(ISerializationContext context, PredicateDefinition semanticObject) {
291 genericSequencer.createSequence(context, semanticObject); 427 genericSequencer.createSequence(context, semanticObject);
292 } 428 }
293 429
294 430
295 /** 431 /**
296 * Contexts: 432 * Contexts:
297 * Statement returns ClassInterpretation 433 * AssertionOrDefinition.Assertion_1_0_0 returns Call
298 * Interpretation returns ClassInterpretation 434 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Call
299 * CDInterpretation returns ClassInterpretation 435 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Call
300 * ClassInterpretation returns ClassInterpretation 436 * Expression returns Call
437 * DisjunctiveExpression returns Call
438 * DisjunctiveExpression.Disjunction_1_0_0 returns Call
439 * DisjunctiveExpression.Case_1_1_0 returns Call
440 * ConjunctiveExpression returns Call
441 * ConjunctiveExpression.Conjunction_1_0 returns Call
442 * ComparisonExpression returns Call
443 * ComparisonExpression.Comparison_1_0 returns Call
444 * AdditiveExpression returns Call
445 * AdditiveExpression.BinaryExpression_1_0 returns Call
446 * MultiplicativeExpression returns Call
447 * MultiplicativeExpression.BinaryExpression_1_0 returns Call
448 * ExponentialExpression returns Call
449 * ExponentialExpression.BinaryExpression_1_0 returns Call
450 * UnaryExpression returns Call
451 * AggregationExpression returns Call
452 * AtomicExpression returns Call
301 * 453 *
302 * Constraint: 454 * Constraint:
303 * (abstract?='abstract'? symbol=ModelSymbol supertypes+=ModelSymbol* fielt+=FieldRelationInterpretation*) 455 * (functor=AtomicExpression_Call_0_1_0 argumentList=ArgumentList)
304 */ 456 */
305 protected void sequence_ClassInterpretation(ISerializationContext context, ClassInterpretation semanticObject) { 457 protected void sequence_AtomicExpression(ISerializationContext context, Call semanticObject) {
306 genericSequencer.createSequence(context, semanticObject); 458 if (errorAcceptor != null) {
459 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CALL__FUNCTOR) == ValueTransient.YES)
460 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CALL__FUNCTOR));
461 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CALL__ARGUMENT_LIST) == ValueTransient.YES)
462 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CALL__ARGUMENT_LIST));
463 }
464 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
465 feeder.accept(grammarAccess.getAtomicExpressionAccess().getCallFunctorAction_0_1_0(), semanticObject.getFunctor());
466 feeder.accept(grammarAccess.getAtomicExpressionAccess().getArgumentListArgumentListParserRuleCall_0_1_1_0(), semanticObject.getArgumentList());
467 feeder.finish();
307 } 468 }
308 469
309 470
310 /** 471 /**
311 * Contexts: 472 * Contexts:
312 * ClosureType returns IrreflexiveClosure 473 * Multiplicity returns BoundedMultiplicity
474 * BoundedMultiplicity returns BoundedMultiplicity
313 * 475 *
314 * Constraint: 476 * Constraint:
315 * {IrreflexiveClosure} 477 * (lowerBound=INT upperBound=UpperMultiplicty)
316 */ 478 */
317 protected void sequence_ClosureType(ISerializationContext context, IrreflexiveClosure semanticObject) { 479 protected void sequence_BoundedMultiplicity(ISerializationContext context, BoundedMultiplicity semanticObject) {
318 genericSequencer.createSequence(context, semanticObject); 480 if (errorAcceptor != null) {
481 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY__LOWER_BOUND) == ValueTransient.YES)
482 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY__LOWER_BOUND));
483 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY__UPPER_BOUND) == ValueTransient.YES)
484 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY__UPPER_BOUND));
485 }
486 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
487 feeder.accept(grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0(), semanticObject.getLowerBound());
488 feeder.accept(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0(), semanticObject.getUpperBound());
489 feeder.finish();
319 } 490 }
320 491
321 492
322 /** 493 /**
323 * Contexts: 494 * Contexts:
324 * ClosureType returns ReflexiveClosure 495 * Statement returns BoundedScopeDefinition
496 * ScopeDefinition returns BoundedScopeDefinition
497 * BoundedScopeDefinition returns BoundedScopeDefinition
325 * 498 *
326 * Constraint: 499 * Constraint:
327 * {ReflexiveClosure} 500 * ((lowerBound=INT? type=[NamedElement|QualifiedName] upperBound=INT) | (upperBound=INT type=[NamedElement|QualifiedName] lowerBound=INT?))
328 */ 501 */
329 protected void sequence_ClosureType(ISerializationContext context, ReflexiveClosure semanticObject) { 502 protected void sequence_BoundedScopeDefinition(ISerializationContext context, BoundedScopeDefinition semanticObject) {
330 genericSequencer.createSequence(context, semanticObject); 503 genericSequencer.createSequence(context, semanticObject);
331 } 504 }
332 505
333 506
334 /** 507 /**
335 * Contexts: 508 * Contexts:
336 * Constraint returns Constraint 509 * Call returns Call
337 * 510 *
338 * Constraint: 511 * Constraint:
339 * ((polarity=Polarity? symbol=ModelSymbol params+=Literal? params+=Literal*) | (closureType=ClosureType params+=Literal? params+=Literal*)) 512 * (functor=Reference (transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)? argumentList=ArgumentList)
340 */ 513 */
341 protected void sequence_Constraint(ISerializationContext context, Constraint semanticObject) { 514 protected void sequence_Call(ISerializationContext context, Call semanticObject) {
342 genericSequencer.createSequence(context, semanticObject); 515 genericSequencer.createSequence(context, semanticObject);
343 } 516 }
344 517
345 518
346 /** 519 /**
347 * Contexts: 520 * Contexts:
348 * Statement returns DefaultInterpretation 521 * Case returns Case
349 * Interpretation returns DefaultInterpretation
350 * DefaultInterpretation returns DefaultInterpretation
351 * 522 *
352 * Constraint: 523 * Constraint:
353 * interpretation=BasicInterpretation 524 * (condition=ConjunctiveExpression body=ConjunctiveExpression)
354 */ 525 */
355 protected void sequence_DefaultInterpretation(ISerializationContext context, DefaultInterpretation semanticObject) { 526 protected void sequence_Case(ISerializationContext context, Case semanticObject) {
356 if (errorAcceptor != null) { 527 if (errorAcceptor != null) {
357 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_INTERPRETATION__INTERPRETATION) == ValueTransient.YES) 528 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CASE__CONDITION) == ValueTransient.YES)
358 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_INTERPRETATION__INTERPRETATION)); 529 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CASE__CONDITION));
530 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CASE__BODY) == ValueTransient.YES)
531 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CASE__BODY));
359 } 532 }
360 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 533 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
361 feeder.accept(grammarAccess.getDefaultInterpretationAccess().getInterpretationBasicInterpretationParserRuleCall_1_0(), semanticObject.getInterpretation()); 534 feeder.accept(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0(), semanticObject.getCondition());
535 feeder.accept(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0(), semanticObject.getBody());
362 feeder.finish(); 536 feeder.finish();
363 } 537 }
364 538
365 539
366 /** 540 /**
367 * Contexts: 541 * Contexts:
368 * Statement returns EnumInterpretation 542 * Statement returns Statement
369 * Interpretation returns EnumInterpretation 543 * ClassDefinition returns Statement
370 * CDInterpretation returns EnumInterpretation
371 * EnumInterpretation returns EnumInterpretation
372 * 544 *
373 * Constraint: 545 * Constraint:
374 * (Symbol=ModelSymbol objects+=NamedObject+) 546 * (
547 * abstract?='abstract'?
548 * name=ID
549 * (superclasses+=[NamedElement|QualifiedName] superclasses+=[NamedElement|QualifiedName]*)?
550 * members+=MemberDefinition*
551 * )
375 */ 552 */
376 protected void sequence_EnumInterpretation(ISerializationContext context, EnumInterpretation semanticObject) { 553 protected void sequence_ClassDefinition(ISerializationContext context, Statement semanticObject) {
377 genericSequencer.createSequence(context, semanticObject); 554 genericSequencer.createSequence(context, semanticObject);
378 } 555 }
379 556
380 557
381 /** 558 /**
382 * Contexts: 559 * Contexts:
383 * Symbol returns EqualsSymbol 560 * AssertionOrDefinition.Assertion_1_0_0 returns Comparison
384 * PartialitySymbol returns EqualsSymbol 561 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Comparison
385 * EqualsSymbol returns EqualsSymbol 562 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Comparison
563 * Expression returns Comparison
564 * DisjunctiveExpression returns Comparison
565 * DisjunctiveExpression.Disjunction_1_0_0 returns Comparison
566 * DisjunctiveExpression.Case_1_1_0 returns Comparison
567 * ConjunctiveExpression returns Comparison
568 * ConjunctiveExpression.Conjunction_1_0 returns Comparison
569 * ComparisonExpression returns Comparison
570 * ComparisonExpression.Comparison_1_0 returns Comparison
571 * AdditiveExpression returns Comparison
572 * AdditiveExpression.BinaryExpression_1_0 returns Comparison
573 * MultiplicativeExpression returns Comparison
574 * MultiplicativeExpression.BinaryExpression_1_0 returns Comparison
575 * ExponentialExpression returns Comparison
576 * ExponentialExpression.BinaryExpression_1_0 returns Comparison
577 * UnaryExpression returns Comparison
578 * AggregationExpression returns Comparison
579 * AtomicExpression returns Comparison
386 * 580 *
387 * Constraint: 581 * Constraint:
388 * {EqualsSymbol} 582 * (left=ComparisonExpression_Comparison_1_0 op=ComparisonOperator right=AdditiveExpression)
389 */ 583 */
390 protected void sequence_EqualsSymbol(ISerializationContext context, EqualsSymbol semanticObject) { 584 protected void sequence_ComparisonExpression(ISerializationContext context, Comparison semanticObject) {
391 genericSequencer.createSequence(context, semanticObject); 585 if (errorAcceptor != null) {
586 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__LEFT) == ValueTransient.YES)
587 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__LEFT));
588 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__OP) == ValueTransient.YES)
589 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__OP));
590 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__RIGHT) == ValueTransient.YES)
591 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__RIGHT));
592 }
593 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
594 feeder.accept(grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), semanticObject.getLeft());
595 feeder.accept(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0(), semanticObject.getOp());
596 feeder.accept(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0(), semanticObject.getRight());
597 feeder.finish();
392 } 598 }
393 599
394 600
395 /** 601 /**
396 * Contexts: 602 * Contexts:
397 * Symbol returns ExistSymbol 603 * AssertionOrDefinition.Assertion_1_0_0 returns Conjunction
398 * PartialitySymbol returns ExistSymbol 604 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Conjunction
399 * ExistSymbol returns ExistSymbol 605 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Conjunction
606 * Expression returns Conjunction
607 * DisjunctiveExpression returns Conjunction
608 * DisjunctiveExpression.Disjunction_1_0_0 returns Conjunction
609 * DisjunctiveExpression.Case_1_1_0 returns Conjunction
610 * ConjunctiveExpression returns Conjunction
611 * ConjunctiveExpression.Conjunction_1_0 returns Conjunction
612 * ComparisonExpression returns Conjunction
613 * ComparisonExpression.Comparison_1_0 returns Conjunction
614 * AdditiveExpression returns Conjunction
615 * AdditiveExpression.BinaryExpression_1_0 returns Conjunction
616 * MultiplicativeExpression returns Conjunction
617 * MultiplicativeExpression.BinaryExpression_1_0 returns Conjunction
618 * ExponentialExpression returns Conjunction
619 * ExponentialExpression.BinaryExpression_1_0 returns Conjunction
620 * UnaryExpression returns Conjunction
621 * AggregationExpression returns Conjunction
622 * AtomicExpression returns Conjunction
400 * 623 *
401 * Constraint: 624 * Constraint:
402 * {ExistSymbol} 625 * (children+=ConjunctiveExpression_Conjunction_1_0 children+=ComparisonExpression+)
403 */ 626 */
404 protected void sequence_ExistSymbol(ISerializationContext context, ExistSymbol semanticObject) { 627 protected void sequence_ConjunctiveExpression(ISerializationContext context, Conjunction semanticObject) {
405 genericSequencer.createSequence(context, semanticObject); 628 genericSequencer.createSequence(context, semanticObject);
406 } 629 }
407 630
408 631
409 /** 632 /**
410 * Contexts: 633 * Contexts:
411 * FieldRelationInterpretation returns FieldRelationInterpretation 634 * AssertionOrDefinition.Assertion_1_0_0 returns Count
635 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Count
636 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Count
637 * Expression returns Count
638 * DisjunctiveExpression returns Count
639 * DisjunctiveExpression.Disjunction_1_0_0 returns Count
640 * DisjunctiveExpression.Case_1_1_0 returns Count
641 * ConjunctiveExpression returns Count
642 * ConjunctiveExpression.Conjunction_1_0 returns Count
643 * ComparisonExpression returns Count
644 * ComparisonExpression.Comparison_1_0 returns Count
645 * AdditiveExpression returns Count
646 * AdditiveExpression.BinaryExpression_1_0 returns Count
647 * MultiplicativeExpression returns Count
648 * MultiplicativeExpression.BinaryExpression_1_0 returns Count
649 * ExponentialExpression returns Count
650 * ExponentialExpression.BinaryExpression_1_0 returns Count
651 * UnaryExpression returns Count
652 * AggregationExpression returns Count
653 * Count returns Count
654 * AtomicExpression returns Count
655 *
656 * Constraint:
657 * body=Expression
658 */
659 protected void sequence_Count(ISerializationContext context, Count semanticObject) {
660 if (errorAcceptor != null) {
661 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COUNT__BODY) == ValueTransient.YES)
662 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COUNT__BODY));
663 }
664 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
665 feeder.accept(grammarAccess.getCountAccess().getBodyExpressionParserRuleCall_2_0(), semanticObject.getBody());
666 feeder.finish();
667 }
668
669
670 /**
671 * Contexts:
672 * Statement returns DefaultDefinition
673 * DefaultDefinition returns DefaultDefinition
674 *
675 * Constraint:
676 * (head=Call range=Expression)
677 */
678 protected void sequence_DefaultDefinition(ISerializationContext context, DefaultDefinition semanticObject) {
679 if (errorAcceptor != null) {
680 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__HEAD) == ValueTransient.YES)
681 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__HEAD));
682 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__RANGE) == ValueTransient.YES)
683 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__RANGE));
684 }
685 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
686 feeder.accept(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead());
687 feeder.accept(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0(), semanticObject.getRange());
688 feeder.finish();
689 }
690
691
692 /**
693 * Contexts:
694 * AssertionOrDefinition.Assertion_1_0_0 returns Disjunction
695 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Disjunction
696 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Disjunction
697 * Expression returns Disjunction
698 * DisjunctiveExpression returns Disjunction
699 * DisjunctiveExpression.Disjunction_1_0_0 returns Disjunction
700 * DisjunctiveExpression.Case_1_1_0 returns Disjunction
701 * ConjunctiveExpression returns Disjunction
702 * ConjunctiveExpression.Conjunction_1_0 returns Disjunction
703 * ComparisonExpression returns Disjunction
704 * ComparisonExpression.Comparison_1_0 returns Disjunction
705 * AdditiveExpression returns Disjunction
706 * AdditiveExpression.BinaryExpression_1_0 returns Disjunction
707 * MultiplicativeExpression returns Disjunction
708 * MultiplicativeExpression.BinaryExpression_1_0 returns Disjunction
709 * ExponentialExpression returns Disjunction
710 * ExponentialExpression.BinaryExpression_1_0 returns Disjunction
711 * UnaryExpression returns Disjunction
712 * AggregationExpression returns Disjunction
713 * AtomicExpression returns Disjunction
412 * 714 *
413 * Constraint: 715 * Constraint:
414 * (containment?='containment'? symbol=ModelSymbol multiplicity=MultiplicityDefinition? target=Symbol) 716 * (children+=DisjunctiveExpression_Disjunction_1_0_0 children+=ConjunctiveExpression+)
415 */ 717 */
416 protected void sequence_FieldRelationInterpretation(ISerializationContext context, FieldRelationInterpretation semanticObject) { 718 protected void sequence_DisjunctiveExpression(ISerializationContext context, Disjunction semanticObject) {
417 genericSequencer.createSequence(context, semanticObject); 719 genericSequencer.createSequence(context, semanticObject);
418 } 720 }
419 721
420 722
421 /** 723 /**
422 * Contexts: 724 * Contexts:
423 * Statement returns GlobalRelationInterpretation 725 * AssertionOrDefinition.Assertion_1_0_0 returns Switch
424 * Interpretation returns GlobalRelationInterpretation 726 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Switch
425 * CDInterpretation returns GlobalRelationInterpretation 727 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Switch
426 * GlobalRelationInterpretation returns GlobalRelationInterpretation 728 * Expression returns Switch
729 * DisjunctiveExpression returns Switch
730 * DisjunctiveExpression.Disjunction_1_0_0 returns Switch
731 * DisjunctiveExpression.Case_1_1_0 returns Switch
732 * ConjunctiveExpression returns Switch
733 * ConjunctiveExpression.Conjunction_1_0 returns Switch
734 * ComparisonExpression returns Switch
735 * ComparisonExpression.Comparison_1_0 returns Switch
736 * AdditiveExpression returns Switch
737 * AdditiveExpression.BinaryExpression_1_0 returns Switch
738 * MultiplicativeExpression returns Switch
739 * MultiplicativeExpression.BinaryExpression_1_0 returns Switch
740 * ExponentialExpression returns Switch
741 * ExponentialExpression.BinaryExpression_1_0 returns Switch
742 * UnaryExpression returns Switch
743 * AggregationExpression returns Switch
744 * AtomicExpression returns Switch
427 * 745 *
428 * Constraint: 746 * Constraint:
429 * ( 747 * (cases+=DisjunctiveExpression_Switch_1_1_3 cases+=Case*)
430 * containment?='containment'?
431 * symbol=ModelSymbol
432 * sourceMultiplicity=MultiplicityDefinition?
433 * source=Symbol
434 * targetMultiplicity=MultiplicityDefinition?
435 * target=Symbol
436 * )
437 */ 748 */
438 protected void sequence_GlobalRelationInterpretation(ISerializationContext context, GlobalRelationInterpretation semanticObject) { 749 protected void sequence_DisjunctiveExpression(ISerializationContext context, Switch semanticObject) {
439 genericSequencer.createSequence(context, semanticObject); 750 genericSequencer.createSequence(context, semanticObject);
440 } 751 }
441 752
442 753
443 /** 754 /**
444 * Contexts: 755 * Contexts:
445 * ComplexObject returns IntObject 756 * DisjunctiveExpression.Switch_1_1_3 returns Case
446 * Object returns IntObject
447 * DataObject returns IntObject
448 * IntObject returns IntObject
449 * Literal returns IntObject
450 * 757 *
451 * Constraint: 758 * Constraint:
452 * value=INTLiteral 759 * (condition=DisjunctiveExpression_Case_1_1_0 body=ConjunctiveExpression)
453 */ 760 */
454 protected void sequence_IntObject(ISerializationContext context, IntObject semanticObject) { 761 protected void sequence_DisjunctiveExpression_Switch_1_1_3(ISerializationContext context, Case semanticObject) {
455 if (errorAcceptor != null) { 762 if (errorAcceptor != null) {
456 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INT_OBJECT__VALUE) == ValueTransient.YES) 763 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CASE__CONDITION) == ValueTransient.YES)
457 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INT_OBJECT__VALUE)); 764 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CASE__CONDITION));
765 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CASE__BODY) == ValueTransient.YES)
766 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CASE__BODY));
458 } 767 }
459 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 768 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
460 feeder.accept(grammarAccess.getIntObjectAccess().getValueINTLiteralParserRuleCall_0(), semanticObject.getValue()); 769 feeder.accept(grammarAccess.getDisjunctiveExpressionAccess().getCaseConditionAction_1_1_0(), semanticObject.getCondition());
770 feeder.accept(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0(), semanticObject.getBody());
461 feeder.finish(); 771 feeder.finish();
462 } 772 }
463 773
464 774
465 /** 775 /**
466 * Contexts: 776 * Contexts:
467 * Symbol returns IntegerSymbol 777 * AssertionOrDefinition.Assertion_1_0_0 returns EmptyIntervalLiteral
468 * DataSymbol returns IntegerSymbol 778 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns EmptyIntervalLiteral
469 * IntegerSymbol returns IntegerSymbol 779 * AssertionOrDefinition.MetricDefinition_1_2_0 returns EmptyIntervalLiteral
780 * Expression returns EmptyIntervalLiteral
781 * DisjunctiveExpression returns EmptyIntervalLiteral
782 * DisjunctiveExpression.Disjunction_1_0_0 returns EmptyIntervalLiteral
783 * DisjunctiveExpression.Case_1_1_0 returns EmptyIntervalLiteral
784 * ConjunctiveExpression returns EmptyIntervalLiteral
785 * ConjunctiveExpression.Conjunction_1_0 returns EmptyIntervalLiteral
786 * ComparisonExpression returns EmptyIntervalLiteral
787 * ComparisonExpression.Comparison_1_0 returns EmptyIntervalLiteral
788 * AdditiveExpression returns EmptyIntervalLiteral
789 * AdditiveExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral
790 * MultiplicativeExpression returns EmptyIntervalLiteral
791 * MultiplicativeExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral
792 * ExponentialExpression returns EmptyIntervalLiteral
793 * ExponentialExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral
794 * UnaryExpression returns EmptyIntervalLiteral
795 * AggregationExpression returns EmptyIntervalLiteral
796 * AtomicExpression returns EmptyIntervalLiteral
797 * Literal returns EmptyIntervalLiteral
798 * EmptyIntervalLiteral returns EmptyIntervalLiteral
470 * 799 *
471 * Constraint: 800 * Constraint:
472 * {IntegerSymbol} 801 * {EmptyIntervalLiteral}
473 */ 802 */
474 protected void sequence_IntegerSymbol(ISerializationContext context, IntegerSymbol semanticObject) { 803 protected void sequence_EmptyIntervalLiteral(ISerializationContext context, EmptyIntervalLiteral semanticObject) {
475 genericSequencer.createSequence(context, semanticObject); 804 genericSequencer.createSequence(context, semanticObject);
476 } 805 }
477 806
478 807
479 /** 808 /**
480 * Contexts: 809 * Contexts:
481 * Symbol returns ModelSymbol 810 * Multiplicity returns ExactMultiplicity
482 * ModelSymbol returns ModelSymbol 811 * ExactMultiplicity returns ExactMultiplicity
483 * 812 *
484 * Constraint: 813 * Constraint:
485 * name=ID 814 * multiplicity=UpperMultiplicty
486 */ 815 */
487 protected void sequence_ModelSymbol(ISerializationContext context, ModelSymbol semanticObject) { 816 protected void sequence_ExactMultiplicity(ISerializationContext context, ExactMultiplicity semanticObject) {
488 if (errorAcceptor != null) { 817 if (errorAcceptor != null) {
489 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.MODEL_SYMBOL__NAME) == ValueTransient.YES) 818 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__MULTIPLICITY) == ValueTransient.YES)
490 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.MODEL_SYMBOL__NAME)); 819 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__MULTIPLICITY));
491 } 820 }
492 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 821 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
493 feeder.accept(grammarAccess.getModelSymbolAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); 822 feeder.accept(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0(), semanticObject.getMultiplicity());
494 feeder.finish(); 823 feeder.finish();
495 } 824 }
496 825
497 826
498 /** 827 /**
499 * Contexts: 828 * Contexts:
500 * MultiplicityDefinition returns MultiplicityDefinition 829 * Statement returns ExactScopeDefinition
830 * ScopeDefinition returns ExactScopeDefinition
831 * ExactScopeDefinition returns ExactScopeDefinition
501 * 832 *
502 * Constraint: 833 * Constraint:
503 * (lower=INT (upper=INT | unlimitedUpper?='*')) 834 * (type=[NamedElement|QualifiedName] exactScope=INT)
504 */ 835 */
505 protected void sequence_MultiplicityDefinition(ISerializationContext context, MultiplicityDefinition semanticObject) { 836 protected void sequence_ExactScopeDefinition(ISerializationContext context, ExactScopeDefinition semanticObject) {
506 genericSequencer.createSequence(context, semanticObject); 837 if (errorAcceptor != null) {
838 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE) == ValueTransient.YES)
839 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE));
840 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION__EXACT_SCOPE) == ValueTransient.YES)
841 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION__EXACT_SCOPE));
842 }
843 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
844 feeder.accept(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE, false));
845 feeder.accept(grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0(), semanticObject.getExactScope());
846 feeder.finish();
507 } 847 }
508 848
509 849
510 /** 850 /**
511 * Contexts: 851 * Contexts:
512 * ComplexObject returns NamedObject 852 * Argument returns ExpressionArgument
513 * Object returns NamedObject 853 * ExpressionArgument returns ExpressionArgument
514 * NamedObject returns NamedObject
515 * Literal returns NamedObject
516 * 854 *
517 * Constraint: 855 * Constraint:
518 * name=ID 856 * body=ComparisonExpression
519 */ 857 */
520 protected void sequence_NamedObject(ISerializationContext context, NamedObject semanticObject) { 858 protected void sequence_ExpressionArgument(ISerializationContext context, ExpressionArgument semanticObject) {
521 if (errorAcceptor != null) { 859 if (errorAcceptor != null) {
522 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NAMED_OBJECT__NAME) == ValueTransient.YES) 860 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__BODY) == ValueTransient.YES)
523 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NAMED_OBJECT__NAME)); 861 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__BODY));
524 } 862 }
525 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 863 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
526 feeder.accept(grammarAccess.getNamedObjectAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); 864 feeder.accept(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0(), semanticObject.getBody());
527 feeder.finish(); 865 feeder.finish();
528 } 866 }
529 867
530 868
531 /** 869 /**
532 * Contexts: 870 * Contexts:
533 * Parameter returns Parameter 871 * Statement returns ExternMetricDefinition
872 * ExternMetricDefinition returns ExternMetricDefinition
534 * 873 *
535 * Constraint: 874 * Constraint:
536 * (variable=Variable type=Symbol?) 875 * (type=MetricType head=Call)
537 */ 876 */
538 protected void sequence_Parameter(ISerializationContext context, org.eclipse.viatra.solver.language.solverLanguage.Parameter semanticObject) { 877 protected void sequence_ExternMetricDefinition(ISerializationContext context, ExternMetricDefinition semanticObject) {
539 genericSequencer.createSequence(context, semanticObject); 878 if (errorAcceptor != null) {
879 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE) == ValueTransient.YES)
880 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE));
881 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__HEAD) == ValueTransient.YES)
882 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__HEAD));
883 }
884 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
885 feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_1_0(), semanticObject.getType());
886 feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getHeadCallParserRuleCall_2_0(), semanticObject.getHead());
887 feeder.finish();
540 } 888 }
541 889
542 890
543 /** 891 /**
544 * Contexts: 892 * Contexts:
545 * PatternBody returns PatternBody 893 * Statement returns ExternPredicateDefinition
894 * ExternPredicateDefinition returns ExternPredicateDefinition
546 * 895 *
547 * Constraint: 896 * Constraint:
548 * constraints+=Constraint* 897 * head=Call
549 */ 898 */
550 protected void sequence_PatternBody(ISerializationContext context, PatternBody semanticObject) { 899 protected void sequence_ExternPredicateDefinition(ISerializationContext context, ExternPredicateDefinition semanticObject) {
551 genericSequencer.createSequence(context, semanticObject); 900 if (errorAcceptor != null) {
901 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__HEAD) == ValueTransient.YES)
902 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__HEAD));
903 }
904 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
905 feeder.accept(grammarAccess.getExternPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead());
906 feeder.finish();
907 }
908
909
910 /**
911 * Contexts:
912 * AssertionOrDefinition.Assertion_1_0_0 returns IfElse
913 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns IfElse
914 * AssertionOrDefinition.MetricDefinition_1_2_0 returns IfElse
915 * Expression returns IfElse
916 * IfElse returns IfElse
917 * DisjunctiveExpression returns IfElse
918 * DisjunctiveExpression.Disjunction_1_0_0 returns IfElse
919 * DisjunctiveExpression.Case_1_1_0 returns IfElse
920 * ConjunctiveExpression returns IfElse
921 * ConjunctiveExpression.Conjunction_1_0 returns IfElse
922 * ComparisonExpression returns IfElse
923 * ComparisonExpression.Comparison_1_0 returns IfElse
924 * AdditiveExpression returns IfElse
925 * AdditiveExpression.BinaryExpression_1_0 returns IfElse
926 * MultiplicativeExpression returns IfElse
927 * MultiplicativeExpression.BinaryExpression_1_0 returns IfElse
928 * ExponentialExpression returns IfElse
929 * ExponentialExpression.BinaryExpression_1_0 returns IfElse
930 * UnaryExpression returns IfElse
931 * AggregationExpression returns IfElse
932 * AtomicExpression returns IfElse
933 *
934 * Constraint:
935 * (condition=Expression then=Expression else=Expression)
936 */
937 protected void sequence_IfElse(ISerializationContext context, IfElse semanticObject) {
938 if (errorAcceptor != null) {
939 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__CONDITION) == ValueTransient.YES)
940 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__CONDITION));
941 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__THEN) == ValueTransient.YES)
942 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__THEN));
943 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__ELSE) == ValueTransient.YES)
944 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__ELSE));
945 }
946 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
947 feeder.accept(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0(), semanticObject.getCondition());
948 feeder.accept(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0(), semanticObject.getThen());
949 feeder.accept(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0(), semanticObject.getElse());
950 feeder.finish();
552 } 951 }
553 952
554 953
555 /** 954 /**
556 * Contexts: 955 * Contexts:
557 * Polarity returns Negative 956 * AssertionOrDefinition.Assertion_1_0_0 returns InfinityLiteral
957 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns InfinityLiteral
958 * AssertionOrDefinition.MetricDefinition_1_2_0 returns InfinityLiteral
959 * Expression returns InfinityLiteral
960 * DisjunctiveExpression returns InfinityLiteral
961 * DisjunctiveExpression.Disjunction_1_0_0 returns InfinityLiteral
962 * DisjunctiveExpression.Case_1_1_0 returns InfinityLiteral
963 * ConjunctiveExpression returns InfinityLiteral
964 * ConjunctiveExpression.Conjunction_1_0 returns InfinityLiteral
965 * ComparisonExpression returns InfinityLiteral
966 * ComparisonExpression.Comparison_1_0 returns InfinityLiteral
967 * AdditiveExpression returns InfinityLiteral
968 * AdditiveExpression.BinaryExpression_1_0 returns InfinityLiteral
969 * MultiplicativeExpression returns InfinityLiteral
970 * MultiplicativeExpression.BinaryExpression_1_0 returns InfinityLiteral
971 * ExponentialExpression returns InfinityLiteral
972 * ExponentialExpression.BinaryExpression_1_0 returns InfinityLiteral
973 * UnaryExpression returns InfinityLiteral
974 * AggregationExpression returns InfinityLiteral
975 * AtomicExpression returns InfinityLiteral
976 * Literal returns InfinityLiteral
977 * InfinityLiteral returns InfinityLiteral
558 * 978 *
559 * Constraint: 979 * Constraint:
560 * {Negative} 980 * {InfinityLiteral}
561 */ 981 */
562 protected void sequence_Polarity(ISerializationContext context, Negative semanticObject) { 982 protected void sequence_InfinityLiteral(ISerializationContext context, InfinityLiteral semanticObject) {
563 genericSequencer.createSequence(context, semanticObject); 983 genericSequencer.createSequence(context, semanticObject);
564 } 984 }
565 985
566 986
567 /** 987 /**
568 * Contexts: 988 * Contexts:
569 * Polarity returns Positive 989 * AssertionOrDefinition.Assertion_1_0_0 returns Interval
990 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Interval
991 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Interval
992 * Expression returns Interval
993 * DisjunctiveExpression returns Interval
994 * DisjunctiveExpression.Disjunction_1_0_0 returns Interval
995 * DisjunctiveExpression.Case_1_1_0 returns Interval
996 * ConjunctiveExpression returns Interval
997 * ConjunctiveExpression.Conjunction_1_0 returns Interval
998 * ComparisonExpression returns Interval
999 * ComparisonExpression.Comparison_1_0 returns Interval
1000 * AdditiveExpression returns Interval
1001 * AdditiveExpression.BinaryExpression_1_0 returns Interval
1002 * MultiplicativeExpression returns Interval
1003 * MultiplicativeExpression.BinaryExpression_1_0 returns Interval
1004 * ExponentialExpression returns Interval
1005 * ExponentialExpression.BinaryExpression_1_0 returns Interval
1006 * UnaryExpression returns Interval
1007 * AggregationExpression returns Interval
1008 * AtomicExpression returns Interval
1009 * Interval returns Interval
1010 *
1011 * Constraint:
1012 * (lowerBound=Expression upperBound=Expression)
1013 */
1014 protected void sequence_Interval(ISerializationContext context, Interval semanticObject) {
1015 if (errorAcceptor != null) {
1016 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INTERVAL__LOWER_BOUND) == ValueTransient.YES)
1017 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERVAL__LOWER_BOUND));
1018 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INTERVAL__UPPER_BOUND) == ValueTransient.YES)
1019 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERVAL__UPPER_BOUND));
1020 }
1021 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1022 feeder.accept(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0(), semanticObject.getLowerBound());
1023 feeder.accept(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0(), semanticObject.getUpperBound());
1024 feeder.finish();
1025 }
1026
1027
1028 /**
1029 * Contexts:
1030 * AssertionOrDefinition.Assertion_1_0_0 returns LogicLiteral
1031 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns LogicLiteral
1032 * AssertionOrDefinition.MetricDefinition_1_2_0 returns LogicLiteral
1033 * Expression returns LogicLiteral
1034 * DisjunctiveExpression returns LogicLiteral
1035 * DisjunctiveExpression.Disjunction_1_0_0 returns LogicLiteral
1036 * DisjunctiveExpression.Case_1_1_0 returns LogicLiteral
1037 * ConjunctiveExpression returns LogicLiteral
1038 * ConjunctiveExpression.Conjunction_1_0 returns LogicLiteral
1039 * ComparisonExpression returns LogicLiteral
1040 * ComparisonExpression.Comparison_1_0 returns LogicLiteral
1041 * AdditiveExpression returns LogicLiteral
1042 * AdditiveExpression.BinaryExpression_1_0 returns LogicLiteral
1043 * MultiplicativeExpression returns LogicLiteral
1044 * MultiplicativeExpression.BinaryExpression_1_0 returns LogicLiteral
1045 * ExponentialExpression returns LogicLiteral
1046 * ExponentialExpression.BinaryExpression_1_0 returns LogicLiteral
1047 * UnaryExpression returns LogicLiteral
1048 * AggregationExpression returns LogicLiteral
1049 * AtomicExpression returns LogicLiteral
1050 * Literal returns LogicLiteral
1051 * LogicLiteral returns LogicLiteral
570 * 1052 *
571 * Constraint: 1053 * Constraint:
572 * {Positive} 1054 * value=LogicValue
573 */ 1055 */
574 protected void sequence_Polarity(ISerializationContext context, Positive semanticObject) { 1056 protected void sequence_LogicLiteral(ISerializationContext context, LogicLiteral semanticObject) {
1057 if (errorAcceptor != null) {
1058 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.LOGIC_LITERAL__VALUE) == ValueTransient.YES)
1059 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.LOGIC_LITERAL__VALUE));
1060 }
1061 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1062 feeder.accept(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0(), semanticObject.getValue());
1063 feeder.finish();
1064 }
1065
1066
1067 /**
1068 * Contexts:
1069 * Statement returns LowerBoundedScopeDefinition
1070 * ScopeDefinition returns LowerBoundedScopeDefinition
1071 * LowerBoundedScopeDefinition returns LowerBoundedScopeDefinition
1072 *
1073 * Constraint:
1074 * ((lowerBound=INT type=[NamedElement|QualifiedName]) | (type=[NamedElement|QualifiedName] lowerBound=INT))
1075 */
1076 protected void sequence_LowerBoundedScopeDefinition(ISerializationContext context, LowerBoundedScopeDefinition semanticObject) {
575 genericSequencer.createSequence(context, semanticObject); 1077 genericSequencer.createSequence(context, semanticObject);
576 } 1078 }
577 1079
578 1080
579 /** 1081 /**
580 * Contexts: 1082 * Contexts:
581 * Statement returns Predicate 1083 * Multiplicity returns ManyMultiplicity
582 * Predicate returns Predicate 1084 * ManyMultiplicity returns ManyMultiplicity
583 * 1085 *
584 * Constraint: 1086 * Constraint:
585 * (isError?='error'? symbol=ModelSymbol (parameters+=Parameter parameters+=Parameter*)? (bodies+=PatternBody bodies+=PatternBody*)?) 1087 * {ManyMultiplicity}
586 */ 1088 */
587 protected void sequence_Predicate(ISerializationContext context, Predicate semanticObject) { 1089 protected void sequence_ManyMultiplicity(ISerializationContext context, ManyMultiplicity semanticObject) {
588 genericSequencer.createSequence(context, semanticObject); 1090 genericSequencer.createSequence(context, semanticObject);
589 } 1091 }
590 1092
591 1093
592 /** 1094 /**
593 * Contexts: 1095 * Contexts:
594 * Problem returns Problem 1096 * MemberDefinition returns MemberDefinition
595 * 1097 *
596 * Constraint: 1098 * Constraint:
597 * statements+=Statement+ 1099 * (containment?='contains'? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID opposite=[NamedElement|QualifiedName]?)
598 */ 1100 */
599 protected void sequence_Problem(ISerializationContext context, Problem semanticObject) { 1101 protected void sequence_MemberDefinition(ISerializationContext context, MemberDefinition semanticObject) {
600 genericSequencer.createSequence(context, semanticObject); 1102 genericSequencer.createSequence(context, semanticObject);
601 } 1103 }
602 1104
603 1105
604 /** 1106 /**
605 * Contexts: 1107 * Contexts:
606 * ComplexObject returns RealObject 1108 * MetricDefinition returns MetricDefinition
607 * Object returns RealObject
608 * DataObject returns RealObject
609 * RealObject returns RealObject
610 * Literal returns RealObject
611 * 1109 *
612 * Constraint: 1110 * Constraint:
613 * value=REALLiteral 1111 * (type=MetricType head=Expression body=Expression)
614 */ 1112 */
615 protected void sequence_RealObject(ISerializationContext context, RealObject semanticObject) { 1113 protected void sequence_MetricDefinition(ISerializationContext context, MetricDefinition semanticObject) {
616 if (errorAcceptor != null) { 1114 if (errorAcceptor != null) {
617 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.REAL_OBJECT__VALUE) == ValueTransient.YES) 1115 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE) == ValueTransient.YES)
618 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.REAL_OBJECT__VALUE)); 1116 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE));
1117 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD) == ValueTransient.YES)
1118 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD));
1119 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY) == ValueTransient.YES)
1120 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY));
619 } 1121 }
620 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1122 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
621 feeder.accept(grammarAccess.getRealObjectAccess().getValueREALLiteralParserRuleCall_0(), semanticObject.getValue()); 1123 feeder.accept(grammarAccess.getMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_0_0(), semanticObject.getType());
1124 feeder.accept(grammarAccess.getMetricDefinitionAccess().getHeadExpressionParserRuleCall_1_0(), semanticObject.getHead());
1125 feeder.accept(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody());
622 feeder.finish(); 1126 feeder.finish();
623 } 1127 }
624 1128
625 1129
626 /** 1130 /**
627 * Contexts: 1131 * Contexts:
628 * Symbol returns RealSymbol 1132 * NamedElement returns NamedElement
629 * DataSymbol returns RealSymbol
630 * RealSymbol returns RealSymbol
631 * 1133 *
632 * Constraint: 1134 * Constraint:
633 * {RealSymbol} 1135 * name=QualifiedName
634 */ 1136 */
635 protected void sequence_RealSymbol(ISerializationContext context, RealSymbol semanticObject) { 1137 protected void sequence_NamedElement(ISerializationContext context, NamedElement semanticObject) {
636 genericSequencer.createSequence(context, semanticObject); 1138 if (errorAcceptor != null) {
1139 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NAMED_ELEMENT__NAME) == ValueTransient.YES)
1140 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NAMED_ELEMENT__NAME));
1141 }
1142 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1143 feeder.accept(grammarAccess.getNamedElementAccess().getNameQualifiedNameParserRuleCall_0(), semanticObject.getName());
1144 feeder.finish();
637 } 1145 }
638 1146
639 1147
640 /** 1148 /**
641 * Contexts: 1149 * Contexts:
642 * ComplexObject returns StringObject 1150 * AssertionOrDefinition.Assertion_1_0_0 returns NumericLiteral
643 * Object returns StringObject 1151 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns NumericLiteral
644 * DataObject returns StringObject 1152 * AssertionOrDefinition.MetricDefinition_1_2_0 returns NumericLiteral
645 * StringObject returns StringObject 1153 * Expression returns NumericLiteral
646 * Literal returns StringObject 1154 * DisjunctiveExpression returns NumericLiteral
1155 * DisjunctiveExpression.Disjunction_1_0_0 returns NumericLiteral
1156 * DisjunctiveExpression.Case_1_1_0 returns NumericLiteral
1157 * ConjunctiveExpression returns NumericLiteral
1158 * ConjunctiveExpression.Conjunction_1_0 returns NumericLiteral
1159 * ComparisonExpression returns NumericLiteral
1160 * ComparisonExpression.Comparison_1_0 returns NumericLiteral
1161 * AdditiveExpression returns NumericLiteral
1162 * AdditiveExpression.BinaryExpression_1_0 returns NumericLiteral
1163 * MultiplicativeExpression returns NumericLiteral
1164 * MultiplicativeExpression.BinaryExpression_1_0 returns NumericLiteral
1165 * ExponentialExpression returns NumericLiteral
1166 * ExponentialExpression.BinaryExpression_1_0 returns NumericLiteral
1167 * UnaryExpression returns NumericLiteral
1168 * AggregationExpression returns NumericLiteral
1169 * AtomicExpression returns NumericLiteral
1170 * Literal returns NumericLiteral
1171 * NumericLiteral returns NumericLiteral
647 * 1172 *
648 * Constraint: 1173 * Constraint:
649 * value=STRING 1174 * value=Real
650 */ 1175 */
651 protected void sequence_StringObject(ISerializationContext context, StringObject semanticObject) { 1176 protected void sequence_NumericLiteral(ISerializationContext context, NumericLiteral semanticObject) {
652 if (errorAcceptor != null) { 1177 if (errorAcceptor != null) {
653 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.STRING_OBJECT__VALUE) == ValueTransient.YES) 1178 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NUMERIC_LITERAL__VALUE) == ValueTransient.YES)
654 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.STRING_OBJECT__VALUE)); 1179 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NUMERIC_LITERAL__VALUE));
655 } 1180 }
656 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1181 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
657 feeder.accept(grammarAccess.getStringObjectAccess().getValueSTRINGTerminalRuleCall_0(), semanticObject.getValue()); 1182 feeder.accept(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0(), semanticObject.getValue());
658 feeder.finish(); 1183 feeder.finish();
659 } 1184 }
660 1185
661 1186
662 /** 1187 /**
663 * Contexts: 1188 * Contexts:
664 * Symbol returns StringSymbol 1189 * Statement returns ObjectiveDefinition
665 * DataSymbol returns StringSymbol 1190 * ObjectiveDefinition returns ObjectiveDefinition
666 * StringSymbol returns StringSymbol
667 * 1191 *
668 * Constraint: 1192 * Constraint:
669 * {StringSymbol} 1193 * (kind=ObjectiveKind objective=Expression)
670 */ 1194 */
671 protected void sequence_StringSymbol(ISerializationContext context, StringSymbol semanticObject) { 1195 protected void sequence_ObjectiveDefinition(ISerializationContext context, ObjectiveDefinition semanticObject) {
672 genericSequencer.createSequence(context, semanticObject); 1196 if (errorAcceptor != null) {
1197 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__KIND) == ValueTransient.YES)
1198 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__KIND));
1199 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__OBJECTIVE) == ValueTransient.YES)
1200 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__OBJECTIVE));
1201 }
1202 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1203 feeder.accept(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0(), semanticObject.getKind());
1204 feeder.accept(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0(), semanticObject.getObjective());
1205 feeder.finish();
673 } 1206 }
674 1207
675 1208
676 /** 1209 /**
677 * Contexts: 1210 * Contexts:
678 * TruthValue returns Error 1211 * PredicateDefinition returns PredicateDefinition
679 * 1212 *
680 * Constraint: 1213 * Constraint:
681 * {Error} 1214 * (((functional?='functional' error?='error'?) | (error?='error' functional?='functional'?)) head=Call body=Expression)
682 */ 1215 */
683 protected void sequence_TruthValue(ISerializationContext context, org.eclipse.viatra.solver.language.solverLanguage.Error semanticObject) { 1216 protected void sequence_PredicateDefinition(ISerializationContext context, PredicateDefinition semanticObject) {
684 genericSequencer.createSequence(context, semanticObject); 1217 genericSequencer.createSequence(context, semanticObject);
685 } 1218 }
686 1219
687 1220
688 /** 1221 /**
689 * Contexts: 1222 * Contexts:
690 * TruthValue returns False 1223 * Problem returns Problem
691 * 1224 *
692 * Constraint: 1225 * Constraint:
693 * {False} 1226 * statements+=Statement+
694 */ 1227 */
695 protected void sequence_TruthValue(ISerializationContext context, False semanticObject) { 1228 protected void sequence_Problem(ISerializationContext context, Problem semanticObject) {
696 genericSequencer.createSequence(context, semanticObject); 1229 genericSequencer.createSequence(context, semanticObject);
697 } 1230 }
698 1231
699 1232
700 /** 1233 /**
701 * Contexts: 1234 * Contexts:
702 * TruthValue returns True 1235 * AssertionOrDefinition.Assertion_1_0_0 returns Reference
1236 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Reference
1237 * AssertionOrDefinition.MetricDefinition_1_2_0 returns Reference
1238 * Expression returns Reference
1239 * DisjunctiveExpression returns Reference
1240 * DisjunctiveExpression.Disjunction_1_0_0 returns Reference
1241 * DisjunctiveExpression.Case_1_1_0 returns Reference
1242 * ConjunctiveExpression returns Reference
1243 * ConjunctiveExpression.Conjunction_1_0 returns Reference
1244 * ComparisonExpression returns Reference
1245 * ComparisonExpression.Comparison_1_0 returns Reference
1246 * AdditiveExpression returns Reference
1247 * AdditiveExpression.BinaryExpression_1_0 returns Reference
1248 * MultiplicativeExpression returns Reference
1249 * MultiplicativeExpression.BinaryExpression_1_0 returns Reference
1250 * ExponentialExpression returns Reference
1251 * ExponentialExpression.BinaryExpression_1_0 returns Reference
1252 * UnaryExpression returns Reference
1253 * AggregationExpression returns Reference
1254 * AtomicExpression returns Reference
1255 * AtomicExpression.Call_0_1_0 returns Reference
1256 * Reference returns Reference
703 * 1257 *
704 * Constraint: 1258 * Constraint:
705 * {True} 1259 * referred=[NamedElement|QualifiedName]
706 */ 1260 */
707 protected void sequence_TruthValue(ISerializationContext context, True semanticObject) { 1261 protected void sequence_Reference(ISerializationContext context, Reference semanticObject) {
708 genericSequencer.createSequence(context, semanticObject); 1262 if (errorAcceptor != null) {
1263 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.REFERENCE__REFERRED) == ValueTransient.YES)
1264 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.REFERENCE__REFERRED));
1265 }
1266 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1267 feeder.accept(grammarAccess.getReferenceAccess().getReferredNamedElementQualifiedNameParserRuleCall_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.REFERENCE__REFERRED, false));
1268 feeder.finish();
709 } 1269 }
710 1270
711 1271
712 /** 1272 /**
713 * Contexts: 1273 * Contexts:
714 * TruthValue returns Unknown 1274 * Argument returns StarArgument
1275 * StarArgument returns StarArgument
715 * 1276 *
716 * Constraint: 1277 * Constraint:
717 * {Unknown} 1278 * {StarArgument}
718 */ 1279 */
719 protected void sequence_TruthValue(ISerializationContext context, Unknown semanticObject) { 1280 protected void sequence_StarArgument(ISerializationContext context, StarArgument semanticObject) {
720 genericSequencer.createSequence(context, semanticObject); 1281 genericSequencer.createSequence(context, semanticObject);
721 } 1282 }
722 1283
723 1284
724 /** 1285 /**
725 * Contexts: 1286 * Contexts:
726 * ComplexObject returns UnnamedObject 1287 * AssertionOrDefinition.Assertion_1_0_0 returns StringLiteral
727 * Object returns UnnamedObject 1288 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns StringLiteral
728 * UnnamedObject returns UnnamedObject 1289 * AssertionOrDefinition.MetricDefinition_1_2_0 returns StringLiteral
1290 * Expression returns StringLiteral
1291 * DisjunctiveExpression returns StringLiteral
1292 * DisjunctiveExpression.Disjunction_1_0_0 returns StringLiteral
1293 * DisjunctiveExpression.Case_1_1_0 returns StringLiteral
1294 * ConjunctiveExpression returns StringLiteral
1295 * ConjunctiveExpression.Conjunction_1_0 returns StringLiteral
1296 * ComparisonExpression returns StringLiteral
1297 * ComparisonExpression.Comparison_1_0 returns StringLiteral
1298 * AdditiveExpression returns StringLiteral
1299 * AdditiveExpression.BinaryExpression_1_0 returns StringLiteral
1300 * MultiplicativeExpression returns StringLiteral
1301 * MultiplicativeExpression.BinaryExpression_1_0 returns StringLiteral
1302 * ExponentialExpression returns StringLiteral
1303 * ExponentialExpression.BinaryExpression_1_0 returns StringLiteral
1304 * UnaryExpression returns StringLiteral
1305 * AggregationExpression returns StringLiteral
1306 * AtomicExpression returns StringLiteral
1307 * Literal returns StringLiteral
1308 * StringLiteral returns StringLiteral
1309 *
1310 * Constraint:
1311 * value=STRING
1312 */
1313 protected void sequence_StringLiteral(ISerializationContext context, StringLiteral semanticObject) {
1314 if (errorAcceptor != null) {
1315 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.STRING_LITERAL__VALUE) == ValueTransient.YES)
1316 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.STRING_LITERAL__VALUE));
1317 }
1318 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1319 feeder.accept(grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_0(), semanticObject.getValue());
1320 feeder.finish();
1321 }
1322
1323
1324 /**
1325 * Contexts:
1326 * Argument returns TypedArgument
1327 * TypedArgument returns TypedArgument
1328 *
1329 * Constraint:
1330 * (type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName])
1331 */
1332 protected void sequence_TypedArgument(ISerializationContext context, TypedArgument semanticObject) {
1333 if (errorAcceptor != null) {
1334 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE) == ValueTransient.YES)
1335 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE));
1336 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE) == ValueTransient.YES)
1337 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE));
1338 }
1339 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1340 feeder.accept(grammarAccess.getTypedArgumentAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE, false));
1341 feeder.accept(grammarAccess.getTypedArgumentAccess().getVariableNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE, false));
1342 feeder.finish();
1343 }
1344
1345
1346 /**
1347 * Contexts:
1348 * Argument returns TypedStarArgument
1349 * TypedStarArgument returns TypedStarArgument
1350 *
1351 * Constraint:
1352 * type=[NamedElement|QualifiedName]
1353 */
1354 protected void sequence_TypedStarArgument(ISerializationContext context, TypedStarArgument semanticObject) {
1355 if (errorAcceptor != null) {
1356 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE) == ValueTransient.YES)
1357 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE));
1358 }
1359 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
1360 feeder.accept(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE, false));
1361 feeder.finish();
1362 }
1363
1364
1365 /**
1366 * Contexts:
1367 * AssertionOrDefinition.Assertion_1_0_0 returns UnaryExpression
1368 * AssertionOrDefinition.PredicateDefinition_1_1_0 returns UnaryExpression
1369 * AssertionOrDefinition.MetricDefinition_1_2_0 returns UnaryExpression
1370 * Expression returns UnaryExpression
1371 * DisjunctiveExpression returns UnaryExpression
1372 * DisjunctiveExpression.Disjunction_1_0_0 returns UnaryExpression
1373 * DisjunctiveExpression.Case_1_1_0 returns UnaryExpression
1374 * ConjunctiveExpression returns UnaryExpression
1375 * ConjunctiveExpression.Conjunction_1_0 returns UnaryExpression
1376 * ComparisonExpression returns UnaryExpression
1377 * ComparisonExpression.Comparison_1_0 returns UnaryExpression
1378 * AdditiveExpression returns UnaryExpression
1379 * AdditiveExpression.BinaryExpression_1_0 returns UnaryExpression
1380 * MultiplicativeExpression returns UnaryExpression
1381 * MultiplicativeExpression.BinaryExpression_1_0 returns UnaryExpression
1382 * ExponentialExpression returns UnaryExpression
1383 * ExponentialExpression.BinaryExpression_1_0 returns UnaryExpression
1384 * UnaryExpression returns UnaryExpression
1385 * AggregationExpression returns UnaryExpression
1386 * AtomicExpression returns UnaryExpression
729 * 1387 *
730 * Constraint: 1388 * Constraint:
731 * name=ID 1389 * (op=UnaryOp body=AggregationExpression)
732 */ 1390 */
733 protected void sequence_UnnamedObject(ISerializationContext context, UnnamedObject semanticObject) { 1391 protected void sequence_UnaryExpression(ISerializationContext context, UnaryExpression semanticObject) {
734 if (errorAcceptor != null) { 1392 if (errorAcceptor != null) {
735 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_OBJECT__NAME) == ValueTransient.YES) 1393 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__OP) == ValueTransient.YES)
736 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_OBJECT__NAME)); 1394 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__OP));
1395 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__BODY) == ValueTransient.YES)
1396 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__BODY));
737 } 1397 }
738 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1398 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
739 feeder.accept(grammarAccess.getUnnamedObjectAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); 1399 feeder.accept(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0(), semanticObject.getOp());
1400 feeder.accept(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0(), semanticObject.getBody());
740 feeder.finish(); 1401 feeder.finish();
741 } 1402 }
742 1403
743 1404
744 /** 1405 /**
745 * Contexts: 1406 * Contexts:
746 * Literal returns Variable 1407 * Statement returns UnnamedErrorPrediateDefinition
747 * Variable returns Variable 1408 * UnnamedErrorPrediateDefinition returns UnnamedErrorPrediateDefinition
748 * 1409 *
749 * Constraint: 1410 * Constraint:
750 * name=ID 1411 * (argumentList=ArgumentList body=Expression)
751 */ 1412 */
752 protected void sequence_Variable(ISerializationContext context, Variable semanticObject) { 1413 protected void sequence_UnnamedErrorPrediateDefinition(ISerializationContext context, UnnamedErrorPrediateDefinition semanticObject) {
753 if (errorAcceptor != null) { 1414 if (errorAcceptor != null) {
754 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.VARIABLE__NAME) == ValueTransient.YES) 1415 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST) == ValueTransient.YES)
755 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.VARIABLE__NAME)); 1416 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST));
1417 if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY) == ValueTransient.YES)
1418 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY));
756 } 1419 }
757 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); 1420 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
758 feeder.accept(grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); 1421 feeder.accept(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0(), semanticObject.getArgumentList());
1422 feeder.accept(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody());
759 feeder.finish(); 1423 feeder.finish();
760 } 1424 }
761 1425
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java
index 8a2d6f62..861f2125 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/serializer/SolverLanguageSyntacticSequencer.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.serializer; 4package org.eclipse.viatra.solver.language.serializer;
5 5
@@ -11,7 +11,6 @@ import org.eclipse.xtext.IGrammarAccess;
11import org.eclipse.xtext.RuleCall; 11import org.eclipse.xtext.RuleCall;
12import org.eclipse.xtext.nodemodel.INode; 12import org.eclipse.xtext.nodemodel.INode;
13import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias; 13import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
14import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
15import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias; 14import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
16import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable; 15import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
17import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition; 16import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
@@ -21,25 +20,58 @@ import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
21public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer { 20public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer {
22 21
23 protected SolverLanguageGrammarAccess grammarAccess; 22 protected SolverLanguageGrammarAccess grammarAccess;
24 protected AbstractElementAlias match_BasicInterpretation___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q; 23 protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_3_0_a;
25 protected AbstractElementAlias match_Constraint___LeftParenthesisKeyword_0_2_0_RightParenthesisKeyword_0_2_3__q; 24 protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_3_0_p;
26 protected AbstractElementAlias match_PatternBody_TrueKeyword_1_0_q; 25 protected AbstractElementAlias match_MemberDefinition_SemicolonKeyword_5_q;
27 protected AbstractElementAlias match_Predicate___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q;
28 26
29 @Inject 27 @Inject
30 protected void init(IGrammarAccess access) { 28 protected void init(IGrammarAccess access) {
31 grammarAccess = (SolverLanguageGrammarAccess) access; 29 grammarAccess = (SolverLanguageGrammarAccess) access;
32 match_BasicInterpretation___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getBasicInterpretationAccess().getLeftParenthesisKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getBasicInterpretationAccess().getRightParenthesisKeyword_1_2())); 30 match_AtomicExpression_LeftParenthesisKeyword_3_0_a = new TokenAlias(true, true, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_3_0());
33 match_Constraint___LeftParenthesisKeyword_0_2_0_RightParenthesisKeyword_0_2_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_0_2_0()), new TokenAlias(false, false, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_0_2_3())); 31 match_AtomicExpression_LeftParenthesisKeyword_3_0_p = new TokenAlias(true, false, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_3_0());
34 match_PatternBody_TrueKeyword_1_0_q = new TokenAlias(false, true, grammarAccess.getPatternBodyAccess().getTrueKeyword_1_0()); 32 match_MemberDefinition_SemicolonKeyword_5_q = new TokenAlias(false, true, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5());
35 match_Predicate___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getPredicateAccess().getLeftParenthesisKeyword_2_0()), new TokenAlias(false, false, grammarAccess.getPredicateAccess().getRightParenthesisKeyword_2_2()));
36 } 33 }
37 34
38 @Override 35 @Override
39 protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { 36 protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
37 if (ruleCall.getRule() == grammarAccess.getDOTRule())
38 return getDOTToken(semanticObject, ruleCall, node);
39 else if (ruleCall.getRule() == grammarAccess.getPLUSRule())
40 return getPLUSToken(semanticObject, ruleCall, node);
41 else if (ruleCall.getRule() == grammarAccess.getSTARRule())
42 return getSTARToken(semanticObject, ruleCall, node);
40 return ""; 43 return "";
41 } 44 }
42 45
46 /**
47 * terminal DOT:
48 * "synthetic::dot";
49 */
50 protected String getDOTToken(EObject semanticObject, RuleCall ruleCall, INode node) {
51 if (node != null)
52 return getTokenText(node);
53 return "synthetic::dot";
54 }
55
56 /**
57 * terminal PLUS:
58 * "synthetic::plus";
59 */
60 protected String getPLUSToken(EObject semanticObject, RuleCall ruleCall, INode node) {
61 if (node != null)
62 return getTokenText(node);
63 return "synthetic::plus";
64 }
65
66 /**
67 * terminal STAR:
68 * "synthetic::star";
69 */
70 protected String getSTARToken(EObject semanticObject, RuleCall ruleCall, INode node) {
71 if (node != null)
72 return getTokenText(node);
73 return "synthetic::star";
74 }
43 75
44 @Override 76 @Override
45 protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) { 77 protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
@@ -47,60 +79,71 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer
47 List<INode> transitionNodes = collectNodes(fromNode, toNode); 79 List<INode> transitionNodes = collectNodes(fromNode, toNode);
48 for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) { 80 for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
49 List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax); 81 List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
50 if (match_BasicInterpretation___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q.equals(syntax)) 82 if (match_AtomicExpression_LeftParenthesisKeyword_3_0_a.equals(syntax))
51 emit_BasicInterpretation___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q(semanticObject, getLastNavigableState(), syntaxNodes); 83 emit_AtomicExpression_LeftParenthesisKeyword_3_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
52 else if (match_Constraint___LeftParenthesisKeyword_0_2_0_RightParenthesisKeyword_0_2_3__q.equals(syntax)) 84 else if (match_AtomicExpression_LeftParenthesisKeyword_3_0_p.equals(syntax))
53 emit_Constraint___LeftParenthesisKeyword_0_2_0_RightParenthesisKeyword_0_2_3__q(semanticObject, getLastNavigableState(), syntaxNodes); 85 emit_AtomicExpression_LeftParenthesisKeyword_3_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
54 else if (match_PatternBody_TrueKeyword_1_0_q.equals(syntax)) 86 else if (match_MemberDefinition_SemicolonKeyword_5_q.equals(syntax))
55 emit_PatternBody_TrueKeyword_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes); 87 emit_MemberDefinition_SemicolonKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes);
56 else if (match_Predicate___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q.equals(syntax))
57 emit_Predicate___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
58 else acceptNodes(getLastNavigableState(), syntaxNodes); 88 else acceptNodes(getLastNavigableState(), syntaxNodes);
59 } 89 }
60 } 90 }
61 91
62 /** 92 /**
63 * Ambiguous syntax: 93 * Ambiguous syntax:
64 * ('(' ')')? 94 * '('*
65 *
66 * This ambiguous syntax occurs at:
67 * symbol=Symbol (ambiguity) ':' value=TruthValue
68 */
69 protected void emit_BasicInterpretation___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
70 acceptNodes(transition, nodes);
71 }
72
73 /**
74 * Ambiguous syntax:
75 * ('(' ')')?
76 * 95 *
77 * This ambiguous syntax occurs at: 96 * This ambiguous syntax occurs at:
78 * symbol=ModelSymbol (ambiguity) (rule end) 97 * (rule start) (ambiguity) '[' lowerBound=Expression
98 * (rule start) (ambiguity) 'count' '{' body=Expression
99 * (rule start) (ambiguity) 'empty' (rule start)
100 * (rule start) (ambiguity) 'if' condition=Expression
101 * (rule start) (ambiguity) 'inf' (rule start)
102 * (rule start) (ambiguity) op=AggregationOp
103 * (rule start) (ambiguity) op=UnaryOp
104 * (rule start) (ambiguity) referred=[NamedElement|QualifiedName]
105 * (rule start) (ambiguity) value=LogicValue
106 * (rule start) (ambiguity) value=Real
107 * (rule start) (ambiguity) value=STRING
108 * (rule start) (ambiguity) {BinaryExpression.left=}
109 * (rule start) (ambiguity) {Call.functor=}
110 * (rule start) (ambiguity) {Comparison.left=}
111 * (rule start) (ambiguity) {Conjunction.children+=}
112 * (rule start) (ambiguity) {Disjunction.children+=}
113 * (rule start) (ambiguity) {Switch.cases+=}
79 */ 114 */
80 protected void emit_Constraint___LeftParenthesisKeyword_0_2_0_RightParenthesisKeyword_0_2_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 115 protected void emit_AtomicExpression_LeftParenthesisKeyword_3_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
81 acceptNodes(transition, nodes); 116 acceptNodes(transition, nodes);
82 } 117 }
83 118
84 /** 119 /**
85 * Ambiguous syntax: 120 * Ambiguous syntax:
86 * 'true'? 121 * '('+
87 * 122 *
88 * This ambiguous syntax occurs at: 123 * This ambiguous syntax occurs at:
89 * (rule start) (ambiguity) (rule start) 124 * (rule start) (ambiguity) 'count' '{' body=Expression
125 * (rule start) (ambiguity) 'if' condition=Expression
126 * (rule start) (ambiguity) op=AggregationOp
127 * (rule start) (ambiguity) op=UnaryOp
128 * (rule start) (ambiguity) {BinaryExpression.left=}
129 * (rule start) (ambiguity) {Comparison.left=}
130 * (rule start) (ambiguity) {Conjunction.children+=}
131 * (rule start) (ambiguity) {Disjunction.children+=}
132 * (rule start) (ambiguity) {Switch.cases+=}
90 */ 133 */
91 protected void emit_PatternBody_TrueKeyword_1_0_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 134 protected void emit_AtomicExpression_LeftParenthesisKeyword_3_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
92 acceptNodes(transition, nodes); 135 acceptNodes(transition, nodes);
93 } 136 }
94 137
95 /** 138 /**
96 * Ambiguous syntax: 139 * Ambiguous syntax:
97 * ('(' ')')? 140 * ';'?
98 * 141 *
99 * This ambiguous syntax occurs at: 142 * This ambiguous syntax occurs at:
100 * symbol=ModelSymbol (ambiguity) ':-' 'false' '.' (rule end) 143 * name=ID (ambiguity) (rule end)
101 * symbol=ModelSymbol (ambiguity) ':-' bodies+=PatternBody 144 * opposite=[NamedElement|QualifiedName] (ambiguity) (rule end)
102 */ 145 */
103 protected void emit_Predicate___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) { 146 protected void emit_MemberDefinition_SemicolonKeyword_5_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
104 acceptNodes(transition, nodes); 147 acceptNodes(transition, nodes);
105 } 148 }
106 149
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java
index e6a8f1d9..7064938f 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/services/SolverLanguageGrammarAccess.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.services; 4package org.eclipse.viatra.solver.language.services;
5 5
@@ -9,6 +9,9 @@ import java.util.List;
9import org.eclipse.xtext.Action; 9import org.eclipse.xtext.Action;
10import org.eclipse.xtext.Alternatives; 10import org.eclipse.xtext.Alternatives;
11import org.eclipse.xtext.Assignment; 11import org.eclipse.xtext.Assignment;
12import org.eclipse.xtext.CrossReference;
13import org.eclipse.xtext.EnumLiteralDeclaration;
14import org.eclipse.xtext.EnumRule;
12import org.eclipse.xtext.Grammar; 15import org.eclipse.xtext.Grammar;
13import org.eclipse.xtext.GrammarUtil; 16import org.eclipse.xtext.GrammarUtil;
14import org.eclipse.xtext.Group; 17import org.eclipse.xtext.Group;
@@ -17,6 +20,7 @@ import org.eclipse.xtext.ParserRule;
17import org.eclipse.xtext.RuleCall; 20import org.eclipse.xtext.RuleCall;
18import org.eclipse.xtext.TerminalRule; 21import org.eclipse.xtext.TerminalRule;
19import org.eclipse.xtext.common.services.TerminalsGrammarAccess; 22import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
23import org.eclipse.xtext.service.AbstractElementFinder.AbstractEnumRuleElementFinder;
20import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder; 24import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder;
21import org.eclipse.xtext.service.GrammarProvider; 25import org.eclipse.xtext.service.GrammarProvider;
22 26
@@ -40,624 +44,1358 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
40 } 44 }
41 public class StatementElements extends AbstractParserRuleElementFinder { 45 public class StatementElements extends AbstractParserRuleElementFinder {
42 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); 46 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Statement");
43 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 47 private final Group cGroup = (Group)rule.eContents().get(1);
44 private final RuleCall cInterpretationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 48 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
45 private final RuleCall cPredicateParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 49 private final RuleCall cAssertionOrDefinitionParserRuleCall_0_0 = (RuleCall)cAlternatives_0.eContents().get(0);
50 private final RuleCall cPredicateDefinitionParserRuleCall_0_1 = (RuleCall)cAlternatives_0.eContents().get(1);
51 private final RuleCall cUnnamedErrorPrediateDefinitionParserRuleCall_0_2 = (RuleCall)cAlternatives_0.eContents().get(2);
52 private final RuleCall cDefaultDefinitionParserRuleCall_0_3 = (RuleCall)cAlternatives_0.eContents().get(3);
53 private final RuleCall cExternPredicateDefinitionParserRuleCall_0_4 = (RuleCall)cAlternatives_0.eContents().get(4);
54 private final RuleCall cMetricDefinitionParserRuleCall_0_5 = (RuleCall)cAlternatives_0.eContents().get(5);
55 private final RuleCall cExternMetricDefinitionParserRuleCall_0_6 = (RuleCall)cAlternatives_0.eContents().get(6);
56 private final RuleCall cClassDefinitionParserRuleCall_0_7 = (RuleCall)cAlternatives_0.eContents().get(7);
57 private final RuleCall cScopeDefinitionParserRuleCall_0_8 = (RuleCall)cAlternatives_0.eContents().get(8);
58 private final RuleCall cObjectiveDefinitionParserRuleCall_0_9 = (RuleCall)cAlternatives_0.eContents().get(9);
59 private final RuleCall cDOTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
46 60
47 //Statement: 61 //Statement:
48 // Interpretation | Predicate; 62 // (AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition |
63 // ExternPredicateDefinition | MetricDefinition | ExternMetricDefinition | ClassDefinition | ScopeDefinition |
64 // ObjectiveDefinition) DOT;
49 @Override public ParserRule getRule() { return rule; } 65 @Override public ParserRule getRule() { return rule; }
50 66
51 //Interpretation | Predicate 67 //(AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition |
52 public Alternatives getAlternatives() { return cAlternatives; } 68 //ExternPredicateDefinition | MetricDefinition | ExternMetricDefinition | ClassDefinition | ScopeDefinition |
69 //ObjectiveDefinition) DOT
70 public Group getGroup() { return cGroup; }
71
72 //(AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition |
73 //ExternPredicateDefinition | MetricDefinition | ExternMetricDefinition | ClassDefinition | ScopeDefinition |
74 //ObjectiveDefinition)
75 public Alternatives getAlternatives_0() { return cAlternatives_0; }
76
77 //AssertionOrDefinition
78 public RuleCall getAssertionOrDefinitionParserRuleCall_0_0() { return cAssertionOrDefinitionParserRuleCall_0_0; }
79
80 //PredicateDefinition
81 public RuleCall getPredicateDefinitionParserRuleCall_0_1() { return cPredicateDefinitionParserRuleCall_0_1; }
82
83 //UnnamedErrorPrediateDefinition
84 public RuleCall getUnnamedErrorPrediateDefinitionParserRuleCall_0_2() { return cUnnamedErrorPrediateDefinitionParserRuleCall_0_2; }
85
86 //DefaultDefinition
87 public RuleCall getDefaultDefinitionParserRuleCall_0_3() { return cDefaultDefinitionParserRuleCall_0_3; }
88
89 //ExternPredicateDefinition
90 public RuleCall getExternPredicateDefinitionParserRuleCall_0_4() { return cExternPredicateDefinitionParserRuleCall_0_4; }
91
92 //MetricDefinition
93 public RuleCall getMetricDefinitionParserRuleCall_0_5() { return cMetricDefinitionParserRuleCall_0_5; }
53 94
54 //Interpretation 95 //ExternMetricDefinition
55 public RuleCall getInterpretationParserRuleCall_0() { return cInterpretationParserRuleCall_0; } 96 public RuleCall getExternMetricDefinitionParserRuleCall_0_6() { return cExternMetricDefinitionParserRuleCall_0_6; }
56 97
57 //Predicate 98 //ClassDefinition
58 public RuleCall getPredicateParserRuleCall_1() { return cPredicateParserRuleCall_1; } 99 public RuleCall getClassDefinitionParserRuleCall_0_7() { return cClassDefinitionParserRuleCall_0_7; }
100
101 //ScopeDefinition
102 public RuleCall getScopeDefinitionParserRuleCall_0_8() { return cScopeDefinitionParserRuleCall_0_8; }
103
104 //ObjectiveDefinition
105 public RuleCall getObjectiveDefinitionParserRuleCall_0_9() { return cObjectiveDefinitionParserRuleCall_0_9; }
106
107 //DOT
108 public RuleCall getDOTTerminalRuleCall_1() { return cDOTTerminalRuleCall_1; }
59 } 109 }
60 public class REALLiteralElements extends AbstractParserRuleElementFinder { 110 public class AssertionOrDefinitionElements extends AbstractParserRuleElementFinder {
61 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.REALLiteral"); 111 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AssertionOrDefinition");
62 private final Group cGroup = (Group)rule.eContents().get(1); 112 private final Group cGroup = (Group)rule.eContents().get(1);
63 private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0); 113 private final RuleCall cExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
64 private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1); 114 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
65 private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); 115 private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
66 private final RuleCall cINTTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3); 116 private final Action cAssertionBodyAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0);
117 private final Group cGroup_1_0_1 = (Group)cGroup_1_0.eContents().get(1);
118 private final Keyword cColonKeyword_1_0_1_0 = (Keyword)cGroup_1_0_1.eContents().get(0);
119 private final Assignment cRangeAssignment_1_0_1_1 = (Assignment)cGroup_1_0_1.eContents().get(1);
120 private final RuleCall cRangeExpressionParserRuleCall_1_0_1_1_0 = (RuleCall)cRangeAssignment_1_0_1_1.eContents().get(0);
121 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
122 private final Action cPredicateDefinitionHeadAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0);
123 private final Keyword cColonHyphenMinusKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
124 private final Assignment cBodyAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
125 private final RuleCall cBodyExpressionParserRuleCall_1_1_2_0 = (RuleCall)cBodyAssignment_1_1_2.eContents().get(0);
126 private final Group cGroup_1_2 = (Group)cAlternatives_1.eContents().get(2);
127 private final Action cMetricDefinitionHeadAction_1_2_0 = (Action)cGroup_1_2.eContents().get(0);
128 private final Keyword cEqualsSignKeyword_1_2_1 = (Keyword)cGroup_1_2.eContents().get(1);
129 private final Assignment cBodyAssignment_1_2_2 = (Assignment)cGroup_1_2.eContents().get(2);
130 private final RuleCall cBodyExpressionParserRuleCall_1_2_2_0 = (RuleCall)cBodyAssignment_1_2_2.eContents().get(0);
131
132 //AssertionOrDefinition Statement:
133 // Expression ({Assertion.body=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-"
134 // body=Expression | {MetricDefinition.head=current} "=" body=Expression);
135 @Override public ParserRule getRule() { return rule; }
136
137 //Expression ({Assertion.body=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" body=Expression |
138 //{MetricDefinition.head=current} "=" body=Expression)
139 public Group getGroup() { return cGroup; }
140
141 //Expression
142 public RuleCall getExpressionParserRuleCall_0() { return cExpressionParserRuleCall_0; }
143
144 //({Assertion.body=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" body=Expression |
145 //{MetricDefinition.head=current} "=" body=Expression)
146 public Alternatives getAlternatives_1() { return cAlternatives_1; }
67 147
68 //REALLiteral ecore::EBigDecimal: 148 //{Assertion.body=current} (":" range=Expression)?
69 // '-'? INT '.' INT; 149 public Group getGroup_1_0() { return cGroup_1_0; }
150
151 //{Assertion.body=current}
152 public Action getAssertionBodyAction_1_0_0() { return cAssertionBodyAction_1_0_0; }
153
154 //(":" range=Expression)?
155 public Group getGroup_1_0_1() { return cGroup_1_0_1; }
156
157 //":"
158 public Keyword getColonKeyword_1_0_1_0() { return cColonKeyword_1_0_1_0; }
159
160 //range=Expression
161 public Assignment getRangeAssignment_1_0_1_1() { return cRangeAssignment_1_0_1_1; }
162
163 //Expression
164 public RuleCall getRangeExpressionParserRuleCall_1_0_1_1_0() { return cRangeExpressionParserRuleCall_1_0_1_1_0; }
165
166 //{PredicateDefinition.head=current} ":-" body=Expression
167 public Group getGroup_1_1() { return cGroup_1_1; }
168
169 //{PredicateDefinition.head=current}
170 public Action getPredicateDefinitionHeadAction_1_1_0() { return cPredicateDefinitionHeadAction_1_1_0; }
171
172 //":-"
173 public Keyword getColonHyphenMinusKeyword_1_1_1() { return cColonHyphenMinusKeyword_1_1_1; }
174
175 //body=Expression
176 public Assignment getBodyAssignment_1_1_2() { return cBodyAssignment_1_1_2; }
177
178 //Expression
179 public RuleCall getBodyExpressionParserRuleCall_1_1_2_0() { return cBodyExpressionParserRuleCall_1_1_2_0; }
180
181 //{MetricDefinition.head=current} "=" body=Expression
182 public Group getGroup_1_2() { return cGroup_1_2; }
183
184 //{MetricDefinition.head=current}
185 public Action getMetricDefinitionHeadAction_1_2_0() { return cMetricDefinitionHeadAction_1_2_0; }
186
187 //"="
188 public Keyword getEqualsSignKeyword_1_2_1() { return cEqualsSignKeyword_1_2_1; }
189
190 //body=Expression
191 public Assignment getBodyAssignment_1_2_2() { return cBodyAssignment_1_2_2; }
192
193 //Expression
194 public RuleCall getBodyExpressionParserRuleCall_1_2_2_0() { return cBodyExpressionParserRuleCall_1_2_2_0; }
195 }
196 public class PredicateDefinitionElements extends AbstractParserRuleElementFinder {
197 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PredicateDefinition");
198 private final Group cGroup = (Group)rule.eContents().get(1);
199 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
200 private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0);
201 private final Assignment cFunctionalAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0);
202 private final Keyword cFunctionalFunctionalKeyword_0_0_0_0 = (Keyword)cFunctionalAssignment_0_0_0.eContents().get(0);
203 private final Assignment cErrorAssignment_0_0_1 = (Assignment)cGroup_0_0.eContents().get(1);
204 private final Keyword cErrorErrorKeyword_0_0_1_0 = (Keyword)cErrorAssignment_0_0_1.eContents().get(0);
205 private final Group cGroup_0_1 = (Group)cAlternatives_0.eContents().get(1);
206 private final Assignment cErrorAssignment_0_1_0 = (Assignment)cGroup_0_1.eContents().get(0);
207 private final Keyword cErrorErrorKeyword_0_1_0_0 = (Keyword)cErrorAssignment_0_1_0.eContents().get(0);
208 private final Assignment cFunctionalAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1);
209 private final Keyword cFunctionalFunctionalKeyword_0_1_1_0 = (Keyword)cFunctionalAssignment_0_1_1.eContents().get(0);
210 private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1);
211 private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0);
212 private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2);
213 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3);
214 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0);
215
216 //PredicateDefinition:
217 // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression;
70 @Override public ParserRule getRule() { return rule; } 218 @Override public ParserRule getRule() { return rule; }
71 219
72 //'-'? INT '.' INT 220 //(functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression
73 public Group getGroup() { return cGroup; } 221 public Group getGroup() { return cGroup; }
74 222
75 //'-'? 223 //(functional?="functional" error?="error"? | error?="error" functional?="functional"?)
76 public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; } 224 public Alternatives getAlternatives_0() { return cAlternatives_0; }
77 225
78 //INT 226 //functional?="functional" error?="error"?
79 public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; } 227 public Group getGroup_0_0() { return cGroup_0_0; }
80 228
81 //'.' 229 //functional?="functional"
82 public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; } 230 public Assignment getFunctionalAssignment_0_0_0() { return cFunctionalAssignment_0_0_0; }
83 231
84 //INT 232 //"functional"
85 public RuleCall getINTTerminalRuleCall_3() { return cINTTerminalRuleCall_3; } 233 public Keyword getFunctionalFunctionalKeyword_0_0_0_0() { return cFunctionalFunctionalKeyword_0_0_0_0; }
234
235 //error?="error"?
236 public Assignment getErrorAssignment_0_0_1() { return cErrorAssignment_0_0_1; }
237
238 //"error"
239 public Keyword getErrorErrorKeyword_0_0_1_0() { return cErrorErrorKeyword_0_0_1_0; }
240
241 //error?="error" functional?="functional"?
242 public Group getGroup_0_1() { return cGroup_0_1; }
243
244 //error?="error"
245 public Assignment getErrorAssignment_0_1_0() { return cErrorAssignment_0_1_0; }
246
247 //"error"
248 public Keyword getErrorErrorKeyword_0_1_0_0() { return cErrorErrorKeyword_0_1_0_0; }
249
250 //functional?="functional"?
251 public Assignment getFunctionalAssignment_0_1_1() { return cFunctionalAssignment_0_1_1; }
252
253 //"functional"
254 public Keyword getFunctionalFunctionalKeyword_0_1_1_0() { return cFunctionalFunctionalKeyword_0_1_1_0; }
255
256 //head=Call
257 public Assignment getHeadAssignment_1() { return cHeadAssignment_1; }
258
259 //Call
260 public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; }
261
262 //":-"
263 public Keyword getColonHyphenMinusKeyword_2() { return cColonHyphenMinusKeyword_2; }
264
265 //body=Expression
266 public Assignment getBodyAssignment_3() { return cBodyAssignment_3; }
267
268 //Expression
269 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; }
270 }
271 public class UnnamedErrorPrediateDefinitionElements extends AbstractParserRuleElementFinder {
272 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnnamedErrorPrediateDefinition");
273 private final Group cGroup = (Group)rule.eContents().get(1);
274 private final Keyword cErrorKeyword_0 = (Keyword)cGroup.eContents().get(0);
275 private final Assignment cArgumentListAssignment_1 = (Assignment)cGroup.eContents().get(1);
276 private final RuleCall cArgumentListArgumentListParserRuleCall_1_0 = (RuleCall)cArgumentListAssignment_1.eContents().get(0);
277 private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2);
278 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3);
279 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0);
280
281 //UnnamedErrorPrediateDefinition:
282 // "error" argumentList=ArgumentList ":-" body=Expression;
283 @Override public ParserRule getRule() { return rule; }
284
285 //"error" argumentList=ArgumentList ":-" body=Expression
286 public Group getGroup() { return cGroup; }
287
288 //"error"
289 public Keyword getErrorKeyword_0() { return cErrorKeyword_0; }
290
291 //argumentList=ArgumentList
292 public Assignment getArgumentListAssignment_1() { return cArgumentListAssignment_1; }
293
294 //ArgumentList
295 public RuleCall getArgumentListArgumentListParserRuleCall_1_0() { return cArgumentListArgumentListParserRuleCall_1_0; }
296
297 //":-"
298 public Keyword getColonHyphenMinusKeyword_2() { return cColonHyphenMinusKeyword_2; }
299
300 //body=Expression
301 public Assignment getBodyAssignment_3() { return cBodyAssignment_3; }
302
303 //Expression
304 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; }
86 } 305 }
87 public class INTLiteralElements extends AbstractParserRuleElementFinder { 306 public class DefaultDefinitionElements extends AbstractParserRuleElementFinder {
88 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.INTLiteral"); 307 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DefaultDefinition");
89 private final Group cGroup = (Group)rule.eContents().get(1); 308 private final Group cGroup = (Group)rule.eContents().get(1);
90 private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0); 309 private final Keyword cDefaultKeyword_0 = (Keyword)cGroup.eContents().get(0);
91 private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1); 310 private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1);
311 private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0);
312 private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
313 private final Assignment cRangeAssignment_3 = (Assignment)cGroup.eContents().get(3);
314 private final RuleCall cRangeExpressionParserRuleCall_3_0 = (RuleCall)cRangeAssignment_3.eContents().get(0);
92 315
93 //INTLiteral ecore::EInt: 316 //DefaultDefinition:
94 // '-'? INT; 317 // "default" head=Call ":" range=Expression;
95 @Override public ParserRule getRule() { return rule; } 318 @Override public ParserRule getRule() { return rule; }
96 319
97 //'-'? INT 320 //"default" head=Call ":" range=Expression
98 public Group getGroup() { return cGroup; } 321 public Group getGroup() { return cGroup; }
99 322
100 //'-'? 323 //"default"
101 public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; } 324 public Keyword getDefaultKeyword_0() { return cDefaultKeyword_0; }
102 325
103 //INT 326 //head=Call
104 public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; } 327 public Assignment getHeadAssignment_1() { return cHeadAssignment_1; }
328
329 //Call
330 public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; }
331
332 //":"
333 public Keyword getColonKeyword_2() { return cColonKeyword_2; }
334
335 //range=Expression
336 public Assignment getRangeAssignment_3() { return cRangeAssignment_3; }
337
338 //Expression
339 public RuleCall getRangeExpressionParserRuleCall_3_0() { return cRangeExpressionParserRuleCall_3_0; }
105 } 340 }
106 public class BooleanValueElements extends AbstractParserRuleElementFinder { 341 public class ExternPredicateDefinitionElements extends AbstractParserRuleElementFinder {
107 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BooleanValue"); 342 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternPredicateDefinition");
108 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 343 private final Group cGroup = (Group)rule.eContents().get(1);
109 private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); 344 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0);
110 private final Action cBooleanTrueAction_0_0 = (Action)cGroup_0.eContents().get(0); 345 private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1);
111 private final Keyword cTrueKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); 346 private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0);
112 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); 347 private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
113 private final Keyword cFalseKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
114 private final Action cBooleanFalseAction_1_1 = (Action)cGroup_1.eContents().get(1);
115 348
116 //BooleanValue: 349 //ExternPredicateDefinition:
117 // {BooleanTrue} 'true' | 'false' {BooleanFalse}; 350 // "extern" head=Call ".";
118 @Override public ParserRule getRule() { return rule; } 351 @Override public ParserRule getRule() { return rule; }
119 352
120 //{BooleanTrue} 'true' | 'false' {BooleanFalse} 353 //"extern" head=Call "."
121 public Alternatives getAlternatives() { return cAlternatives; } 354 public Group getGroup() { return cGroup; }
122 355
123 //{BooleanTrue} 'true' 356 //"extern"
124 public Group getGroup_0() { return cGroup_0; } 357 public Keyword getExternKeyword_0() { return cExternKeyword_0; }
125 358
126 //{BooleanTrue} 359 //head=Call
127 public Action getBooleanTrueAction_0_0() { return cBooleanTrueAction_0_0; } 360 public Assignment getHeadAssignment_1() { return cHeadAssignment_1; }
128 361
129 //'true' 362 //Call
130 public Keyword getTrueKeyword_0_1() { return cTrueKeyword_0_1; } 363 public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; }
131 364
132 //'false' {BooleanFalse} 365 //"."
133 public Group getGroup_1() { return cGroup_1; } 366 public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; }
367 }
368 public class MetricDefinitionElements extends AbstractParserRuleElementFinder {
369 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MetricDefinition");
370 private final Group cGroup = (Group)rule.eContents().get(1);
371 private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
372 private final RuleCall cTypeMetricTypeEnumRuleCall_0_0 = (RuleCall)cTypeAssignment_0.eContents().get(0);
373 private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1);
374 private final RuleCall cHeadExpressionParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0);
375 private final Keyword cEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
376 private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3);
377 private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0);
378
379 //MetricDefinition:
380 // type=MetricType head=Expression "=" body=Expression;
381 @Override public ParserRule getRule() { return rule; }
382
383 //type=MetricType head=Expression "=" body=Expression
384 public Group getGroup() { return cGroup; }
385
386 //type=MetricType
387 public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }
134 388
135 //'false' 389 //MetricType
136 public Keyword getFalseKeyword_1_0() { return cFalseKeyword_1_0; } 390 public RuleCall getTypeMetricTypeEnumRuleCall_0_0() { return cTypeMetricTypeEnumRuleCall_0_0; }
137 391
138 //{BooleanFalse} 392 //head=Expression
139 public Action getBooleanFalseAction_1_1() { return cBooleanFalseAction_1_1; } 393 public Assignment getHeadAssignment_1() { return cHeadAssignment_1; }
394
395 //Expression
396 public RuleCall getHeadExpressionParserRuleCall_1_0() { return cHeadExpressionParserRuleCall_1_0; }
397
398 //"="
399 public Keyword getEqualsSignKeyword_2() { return cEqualsSignKeyword_2; }
400
401 //body=Expression
402 public Assignment getBodyAssignment_3() { return cBodyAssignment_3; }
403
404 //Expression
405 public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; }
140 } 406 }
141 public class TruthValueElements extends AbstractParserRuleElementFinder { 407 public class ExternMetricDefinitionElements extends AbstractParserRuleElementFinder {
142 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TruthValue"); 408 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternMetricDefinition");
409 private final Group cGroup = (Group)rule.eContents().get(1);
410 private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0);
411 private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
412 private final RuleCall cTypeMetricTypeEnumRuleCall_1_0 = (RuleCall)cTypeAssignment_1.eContents().get(0);
413 private final Assignment cHeadAssignment_2 = (Assignment)cGroup.eContents().get(2);
414 private final RuleCall cHeadCallParserRuleCall_2_0 = (RuleCall)cHeadAssignment_2.eContents().get(0);
415
416 //ExternMetricDefinition:
417 // "extern" type=MetricType head=Call;
418 @Override public ParserRule getRule() { return rule; }
419
420 //"extern" type=MetricType head=Call
421 public Group getGroup() { return cGroup; }
422
423 //"extern"
424 public Keyword getExternKeyword_0() { return cExternKeyword_0; }
425
426 //type=MetricType
427 public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }
428
429 //MetricType
430 public RuleCall getTypeMetricTypeEnumRuleCall_1_0() { return cTypeMetricTypeEnumRuleCall_1_0; }
431
432 //head=Call
433 public Assignment getHeadAssignment_2() { return cHeadAssignment_2; }
434
435 //Call
436 public RuleCall getHeadCallParserRuleCall_2_0() { return cHeadCallParserRuleCall_2_0; }
437 }
438 public class ExpressionElements extends AbstractParserRuleElementFinder {
439 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Expression");
143 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 440 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
144 private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); 441 private final RuleCall cIfElseParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
145 private final Action cTrueAction_0_0 = (Action)cGroup_0.eContents().get(0); 442 private final RuleCall cDisjunctiveExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
146 private final Keyword cTrueKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1);
147 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
148 private final Action cFalseAction_1_0 = (Action)cGroup_1.eContents().get(0);
149 private final Keyword cFalseKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
150 private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2);
151 private final Action cUnknownAction_2_0 = (Action)cGroup_2.eContents().get(0);
152 private final Keyword cUnknownKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1);
153 private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3);
154 private final Action cErrorAction_3_0 = (Action)cGroup_3.eContents().get(0);
155 private final Keyword cErrorKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
156 443
157 //TruthValue: 444 //Expression:
158 // {True} 'true' | {False} 'false' | {Unknown} 'unknown' | {Error} 'error'; 445 // IfElse | DisjunctiveExpression;
159 @Override public ParserRule getRule() { return rule; } 446 @Override public ParserRule getRule() { return rule; }
160 447
161 //{True} 'true' | {False} 'false' | {Unknown} 'unknown' | {Error} 'error' 448 //IfElse | DisjunctiveExpression
162 public Alternatives getAlternatives() { return cAlternatives; } 449 public Alternatives getAlternatives() { return cAlternatives; }
163 450
164 //{True} 'true' 451 //IfElse
165 public Group getGroup_0() { return cGroup_0; } 452 public RuleCall getIfElseParserRuleCall_0() { return cIfElseParserRuleCall_0; }
166 453
167 //{True} 454 //DisjunctiveExpression
168 public Action getTrueAction_0_0() { return cTrueAction_0_0; } 455 public RuleCall getDisjunctiveExpressionParserRuleCall_1() { return cDisjunctiveExpressionParserRuleCall_1; }
456 }
457 public class IfElseElements extends AbstractParserRuleElementFinder {
458 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IfElse");
459 private final Group cGroup = (Group)rule.eContents().get(1);
460 private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0);
461 private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1);
462 private final RuleCall cConditionExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0);
463 private final Keyword cThenKeyword_2 = (Keyword)cGroup.eContents().get(2);
464 private final Assignment cThenAssignment_3 = (Assignment)cGroup.eContents().get(3);
465 private final RuleCall cThenExpressionParserRuleCall_3_0 = (RuleCall)cThenAssignment_3.eContents().get(0);
466 private final Keyword cElseKeyword_4 = (Keyword)cGroup.eContents().get(4);
467 private final Assignment cElseAssignment_5 = (Assignment)cGroup.eContents().get(5);
468 private final RuleCall cElseExpressionParserRuleCall_5_0 = (RuleCall)cElseAssignment_5.eContents().get(0);
469
470 //IfElse:
471 // "if" condition=Expression "then" then=Expression "else" else=Expression;
472 @Override public ParserRule getRule() { return rule; }
169 473
170 //'true' 474 //"if" condition=Expression "then" then=Expression "else" else=Expression
171 public Keyword getTrueKeyword_0_1() { return cTrueKeyword_0_1; } 475 public Group getGroup() { return cGroup; }
172 476
173 //{False} 'false' 477 //"if"
174 public Group getGroup_1() { return cGroup_1; } 478 public Keyword getIfKeyword_0() { return cIfKeyword_0; }
175 479
176 //{False} 480 //condition=Expression
177 public Action getFalseAction_1_0() { return cFalseAction_1_0; } 481 public Assignment getConditionAssignment_1() { return cConditionAssignment_1; }
178 482
179 //'false' 483 //Expression
180 public Keyword getFalseKeyword_1_1() { return cFalseKeyword_1_1; } 484 public RuleCall getConditionExpressionParserRuleCall_1_0() { return cConditionExpressionParserRuleCall_1_0; }
181 485
182 //{Unknown} 'unknown' 486 //"then"
183 public Group getGroup_2() { return cGroup_2; } 487 public Keyword getThenKeyword_2() { return cThenKeyword_2; }
184 488
185 //{Unknown} 489 //then=Expression
186 public Action getUnknownAction_2_0() { return cUnknownAction_2_0; } 490 public Assignment getThenAssignment_3() { return cThenAssignment_3; }
187 491
188 //'unknown' 492 //Expression
189 public Keyword getUnknownKeyword_2_1() { return cUnknownKeyword_2_1; } 493 public RuleCall getThenExpressionParserRuleCall_3_0() { return cThenExpressionParserRuleCall_3_0; }
190 494
191 //{Error} 'error' 495 //"else"
192 public Group getGroup_3() { return cGroup_3; } 496 public Keyword getElseKeyword_4() { return cElseKeyword_4; }
193 497
194 //{Error} 498 //else=Expression
195 public Action getErrorAction_3_0() { return cErrorAction_3_0; } 499 public Assignment getElseAssignment_5() { return cElseAssignment_5; }
196 500
197 //'error' 501 //Expression
198 public Keyword getErrorKeyword_3_1() { return cErrorKeyword_3_1; } 502 public RuleCall getElseExpressionParserRuleCall_5_0() { return cElseExpressionParserRuleCall_5_0; }
199 } 503 }
200 public class InterpretationElements extends AbstractParserRuleElementFinder { 504 public class DisjunctiveExpressionElements extends AbstractParserRuleElementFinder {
201 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Interpretation"); 505 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression");
202 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 506 private final Group cGroup = (Group)rule.eContents().get(1);
203 private final RuleCall cBasicInterpretationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 507 private final RuleCall cConjunctiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
204 private final RuleCall cDefaultInterpretationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 508 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
205 private final RuleCall cCDInterpretationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 509 private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
206 510 private final Action cDisjunctionChildrenAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0);
207 ///////////////////// 511 private final Group cGroup_1_0_1 = (Group)cGroup_1_0.eContents().get(1);
208 //// Core grammar 512 private final Keyword cSemicolonKeyword_1_0_1_0 = (Keyword)cGroup_1_0_1.eContents().get(0);
209 // /////////////////// 513 private final Assignment cChildrenAssignment_1_0_1_1 = (Assignment)cGroup_1_0_1.eContents().get(1);
210 //Interpretation: 514 private final RuleCall cChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0 = (RuleCall)cChildrenAssignment_1_0_1_1.eContents().get(0);
211 // BasicInterpretation | DefaultInterpretation | CDInterpretation; 515 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
516 private final Action cCaseConditionAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0);
517 private final Keyword cHyphenMinusGreaterThanSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
518 private final Assignment cBodyAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
519 private final RuleCall cBodyConjunctiveExpressionParserRuleCall_1_1_2_0 = (RuleCall)cBodyAssignment_1_1_2.eContents().get(0);
520 private final Action cSwitchCasesAction_1_1_3 = (Action)cGroup_1_1.eContents().get(3);
521 private final Group cGroup_1_1_4 = (Group)cGroup_1_1.eContents().get(4);
522 private final Keyword cSemicolonKeyword_1_1_4_0 = (Keyword)cGroup_1_1_4.eContents().get(0);
523 private final Assignment cCasesAssignment_1_1_4_1 = (Assignment)cGroup_1_1_4.eContents().get(1);
524 private final RuleCall cCasesCaseParserRuleCall_1_1_4_1_0 = (RuleCall)cCasesAssignment_1_1_4_1.eContents().get(0);
525
526 //DisjunctiveExpression Expression:
527 // ConjunctiveExpression ({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ |
528 // {Case.condition=current} "->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)?;
212 @Override public ParserRule getRule() { return rule; } 529 @Override public ParserRule getRule() { return rule; }
213 530
214 //BasicInterpretation | DefaultInterpretation | CDInterpretation 531 //ConjunctiveExpression ({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ | {Case.condition=current}
215 public Alternatives getAlternatives() { return cAlternatives; } 532 //"->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)?
533 public Group getGroup() { return cGroup; }
534
535 //ConjunctiveExpression
536 public RuleCall getConjunctiveExpressionParserRuleCall_0() { return cConjunctiveExpressionParserRuleCall_0; }
537
538 //({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ | {Case.condition=current} "->"
539 //body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)?
540 public Alternatives getAlternatives_1() { return cAlternatives_1; }
541
542 //{Disjunction.children+=current} (";" children+=ConjunctiveExpression)+
543 public Group getGroup_1_0() { return cGroup_1_0; }
544
545 //{Disjunction.children+=current}
546 public Action getDisjunctionChildrenAction_1_0_0() { return cDisjunctionChildrenAction_1_0_0; }
547
548 //(";" children+=ConjunctiveExpression)+
549 public Group getGroup_1_0_1() { return cGroup_1_0_1; }
216 550
217 //BasicInterpretation 551 //";"
218 public RuleCall getBasicInterpretationParserRuleCall_0() { return cBasicInterpretationParserRuleCall_0; } 552 public Keyword getSemicolonKeyword_1_0_1_0() { return cSemicolonKeyword_1_0_1_0; }
219 553
220 //DefaultInterpretation 554 //children+=ConjunctiveExpression
221 public RuleCall getDefaultInterpretationParserRuleCall_1() { return cDefaultInterpretationParserRuleCall_1; } 555 public Assignment getChildrenAssignment_1_0_1_1() { return cChildrenAssignment_1_0_1_1; }
222 556
223 //CDInterpretation 557 //ConjunctiveExpression
224 public RuleCall getCDInterpretationParserRuleCall_2() { return cCDInterpretationParserRuleCall_2; } 558 public RuleCall getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0() { return cChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0; }
559
560 //{Case.condition=current} "->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*
561 public Group getGroup_1_1() { return cGroup_1_1; }
562
563 //{Case.condition=current}
564 public Action getCaseConditionAction_1_1_0() { return cCaseConditionAction_1_1_0; }
565
566 //"->"
567 public Keyword getHyphenMinusGreaterThanSignKeyword_1_1_1() { return cHyphenMinusGreaterThanSignKeyword_1_1_1; }
568
569 //body=ConjunctiveExpression
570 public Assignment getBodyAssignment_1_1_2() { return cBodyAssignment_1_1_2; }
571
572 //ConjunctiveExpression
573 public RuleCall getBodyConjunctiveExpressionParserRuleCall_1_1_2_0() { return cBodyConjunctiveExpressionParserRuleCall_1_1_2_0; }
574
575 //{Switch.cases+=current}
576 public Action getSwitchCasesAction_1_1_3() { return cSwitchCasesAction_1_1_3; }
577
578 //(";" cases+=Case)*
579 public Group getGroup_1_1_4() { return cGroup_1_1_4; }
580
581 //";"
582 public Keyword getSemicolonKeyword_1_1_4_0() { return cSemicolonKeyword_1_1_4_0; }
583
584 //cases+=Case
585 public Assignment getCasesAssignment_1_1_4_1() { return cCasesAssignment_1_1_4_1; }
586
587 //Case
588 public RuleCall getCasesCaseParserRuleCall_1_1_4_1_0() { return cCasesCaseParserRuleCall_1_1_4_1_0; }
589 }
590 public class CaseElements extends AbstractParserRuleElementFinder {
591 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Case");
592 private final Group cGroup = (Group)rule.eContents().get(1);
593 private final Assignment cConditionAssignment_0 = (Assignment)cGroup.eContents().get(0);
594 private final RuleCall cConditionConjunctiveExpressionParserRuleCall_0_0 = (RuleCall)cConditionAssignment_0.eContents().get(0);
595 private final Keyword cHyphenMinusGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
596 private final Assignment cBodyAssignment_2 = (Assignment)cGroup.eContents().get(2);
597 private final RuleCall cBodyConjunctiveExpressionParserRuleCall_2_0 = (RuleCall)cBodyAssignment_2.eContents().get(0);
598
599 //Case:
600 // condition=ConjunctiveExpression "->" body=ConjunctiveExpression;
601 @Override public ParserRule getRule() { return rule; }
602
603 //condition=ConjunctiveExpression "->" body=ConjunctiveExpression
604 public Group getGroup() { return cGroup; }
605
606 //condition=ConjunctiveExpression
607 public Assignment getConditionAssignment_0() { return cConditionAssignment_0; }
608
609 //ConjunctiveExpression
610 public RuleCall getConditionConjunctiveExpressionParserRuleCall_0_0() { return cConditionConjunctiveExpressionParserRuleCall_0_0; }
611
612 //"->"
613 public Keyword getHyphenMinusGreaterThanSignKeyword_1() { return cHyphenMinusGreaterThanSignKeyword_1; }
614
615 //body=ConjunctiveExpression
616 public Assignment getBodyAssignment_2() { return cBodyAssignment_2; }
617
618 //ConjunctiveExpression
619 public RuleCall getBodyConjunctiveExpressionParserRuleCall_2_0() { return cBodyConjunctiveExpressionParserRuleCall_2_0; }
225 } 620 }
226 public class BasicInterpretationElements extends AbstractParserRuleElementFinder { 621 public class ConjunctiveExpressionElements extends AbstractParserRuleElementFinder {
227 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BasicInterpretation"); 622 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression");
228 private final Group cGroup = (Group)rule.eContents().get(1); 623 private final Group cGroup = (Group)rule.eContents().get(1);
229 private final Assignment cSymbolAssignment_0 = (Assignment)cGroup.eContents().get(0); 624 private final RuleCall cComparisonExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
230 private final RuleCall cSymbolSymbolParserRuleCall_0_0 = (RuleCall)cSymbolAssignment_0.eContents().get(0);
231 private final Group cGroup_1 = (Group)cGroup.eContents().get(1); 625 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
232 private final Keyword cLeftParenthesisKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); 626 private final Action cConjunctionChildrenAction_1_0 = (Action)cGroup_1.eContents().get(0);
233 private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1); 627 private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
234 private final Assignment cObjectsAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0); 628 private final Keyword cCommaKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
235 private final RuleCall cObjectsComplexObjectParserRuleCall_1_1_0_0 = (RuleCall)cObjectsAssignment_1_1_0.eContents().get(0); 629 private final Assignment cChildrenAssignment_1_1_1 = (Assignment)cGroup_1_1.eContents().get(1);
236 private final Group cGroup_1_1_1 = (Group)cGroup_1_1.eContents().get(1); 630 private final RuleCall cChildrenComparisonExpressionParserRuleCall_1_1_1_0 = (RuleCall)cChildrenAssignment_1_1_1.eContents().get(0);
237 private final Keyword cCommaKeyword_1_1_1_0 = (Keyword)cGroup_1_1_1.eContents().get(0);
238 private final Assignment cObjectsAssignment_1_1_1_1 = (Assignment)cGroup_1_1_1.eContents().get(1);
239 private final RuleCall cObjectsComplexObjectParserRuleCall_1_1_1_1_0 = (RuleCall)cObjectsAssignment_1_1_1_1.eContents().get(0);
240 private final Keyword cRightParenthesisKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
241 private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
242 private final Assignment cValueAssignment_3 = (Assignment)cGroup.eContents().get(3);
243 private final RuleCall cValueTruthValueParserRuleCall_3_0 = (RuleCall)cValueAssignment_3.eContents().get(0);
244 631
245 //BasicInterpretation: 632 //ConjunctiveExpression Expression:
246 // symbol=Symbol ('(' (objects+=ComplexObject (',' objects+=ComplexObject)*)? ')')? ':' value=TruthValue; 633 // ComparisonExpression ({Conjunction.children+=current} ("," children+=ComparisonExpression)+)?;
247 @Override public ParserRule getRule() { return rule; } 634 @Override public ParserRule getRule() { return rule; }
248 635
249 //symbol=Symbol ('(' (objects+=ComplexObject (',' objects+=ComplexObject)*)? ')')? ':' value=TruthValue 636 //ComparisonExpression ({Conjunction.children+=current} ("," children+=ComparisonExpression)+)?
250 public Group getGroup() { return cGroup; } 637 public Group getGroup() { return cGroup; }
251 638
252 //symbol=Symbol 639 //ComparisonExpression
253 public Assignment getSymbolAssignment_0() { return cSymbolAssignment_0; } 640 public RuleCall getComparisonExpressionParserRuleCall_0() { return cComparisonExpressionParserRuleCall_0; }
254
255 //Symbol
256 public RuleCall getSymbolSymbolParserRuleCall_0_0() { return cSymbolSymbolParserRuleCall_0_0; }
257 641
258 //('(' (objects+=ComplexObject (',' objects+=ComplexObject)*)? ')')? 642 //({Conjunction.children+=current} ("," children+=ComparisonExpression)+)?
259 public Group getGroup_1() { return cGroup_1; } 643 public Group getGroup_1() { return cGroup_1; }
260 644
261 //'(' 645 //{Conjunction.children+=current}
262 public Keyword getLeftParenthesisKeyword_1_0() { return cLeftParenthesisKeyword_1_0; } 646 public Action getConjunctionChildrenAction_1_0() { return cConjunctionChildrenAction_1_0; }
263 647
264 //(objects+=ComplexObject (',' objects+=ComplexObject)*)? 648 //("," children+=ComparisonExpression)+
265 public Group getGroup_1_1() { return cGroup_1_1; } 649 public Group getGroup_1_1() { return cGroup_1_1; }
266 650
267 //objects+=ComplexObject 651 //","
268 public Assignment getObjectsAssignment_1_1_0() { return cObjectsAssignment_1_1_0; } 652 public Keyword getCommaKeyword_1_1_0() { return cCommaKeyword_1_1_0; }
269 653
270 //ComplexObject 654 //children+=ComparisonExpression
271 public RuleCall getObjectsComplexObjectParserRuleCall_1_1_0_0() { return cObjectsComplexObjectParserRuleCall_1_1_0_0; } 655 public Assignment getChildrenAssignment_1_1_1() { return cChildrenAssignment_1_1_1; }
272 656
273 //(',' objects+=ComplexObject)* 657 //ComparisonExpression
274 public Group getGroup_1_1_1() { return cGroup_1_1_1; } 658 public RuleCall getChildrenComparisonExpressionParserRuleCall_1_1_1_0() { return cChildrenComparisonExpressionParserRuleCall_1_1_1_0; }
659 }
660 public class ComparisonExpressionElements extends AbstractParserRuleElementFinder {
661 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression");
662 private final Group cGroup = (Group)rule.eContents().get(1);
663 private final RuleCall cAdditiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
664 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
665 private final Action cComparisonLeftAction_1_0 = (Action)cGroup_1.eContents().get(0);
666 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
667 private final RuleCall cOpComparisonOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0);
668 private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
669 private final RuleCall cRightAdditiveExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0);
670
671 //ComparisonExpression Expression:
672 // AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?;
673 @Override public ParserRule getRule() { return rule; }
275 674
276 //',' 675 //AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?
277 public Keyword getCommaKeyword_1_1_1_0() { return cCommaKeyword_1_1_1_0; } 676 public Group getGroup() { return cGroup; }
278 677
279 //objects+=ComplexObject 678 //AdditiveExpression
280 public Assignment getObjectsAssignment_1_1_1_1() { return cObjectsAssignment_1_1_1_1; } 679 public RuleCall getAdditiveExpressionParserRuleCall_0() { return cAdditiveExpressionParserRuleCall_0; }
281 680
282 //ComplexObject 681 //({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?
283 public RuleCall getObjectsComplexObjectParserRuleCall_1_1_1_1_0() { return cObjectsComplexObjectParserRuleCall_1_1_1_1_0; } 682 public Group getGroup_1() { return cGroup_1; }
284 683
285 //')' 684 //{Comparison.left=current}
286 public Keyword getRightParenthesisKeyword_1_2() { return cRightParenthesisKeyword_1_2; } 685 public Action getComparisonLeftAction_1_0() { return cComparisonLeftAction_1_0; }
287 686
288 //':' 687 //op=ComparisonOperator
289 public Keyword getColonKeyword_2() { return cColonKeyword_2; } 688 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; }
290 689
291 //value=TruthValue 690 //ComparisonOperator
292 public Assignment getValueAssignment_3() { return cValueAssignment_3; } 691 public RuleCall getOpComparisonOperatorEnumRuleCall_1_1_0() { return cOpComparisonOperatorEnumRuleCall_1_1_0; }
293 692
294 //TruthValue 693 //right=AdditiveExpression
295 public RuleCall getValueTruthValueParserRuleCall_3_0() { return cValueTruthValueParserRuleCall_3_0; } 694 public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; }
695
696 //AdditiveExpression
697 public RuleCall getRightAdditiveExpressionParserRuleCall_1_2_0() { return cRightAdditiveExpressionParserRuleCall_1_2_0; }
296 } 698 }
297 public class SymbolElements extends AbstractParserRuleElementFinder { 699 public class AdditiveExpressionElements extends AbstractParserRuleElementFinder {
298 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); 700 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression");
299 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 701 private final Group cGroup = (Group)rule.eContents().get(1);
300 private final RuleCall cModelSymbolParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 702 private final RuleCall cMultiplicativeExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
301 private final RuleCall cPartialitySymbolParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 703 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
302 private final RuleCall cDataSymbolParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 704 private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0);
705 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
706 private final RuleCall cOpAdditiveBinaryOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0);
707 private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
708 private final RuleCall cRightMultiplicativeExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0);
709
710 //AdditiveExpression Expression:
711 // MultiplicativeExpression ({BinaryExpression.left=current} op=AdditiveBinaryOperator right=MultiplicativeExpression)*;
712 @Override public ParserRule getRule() { return rule; }
713
714 //MultiplicativeExpression ({BinaryExpression.left=current} op=AdditiveBinaryOperator right=MultiplicativeExpression)*
715 public Group getGroup() { return cGroup; }
716
717 //MultiplicativeExpression
718 public RuleCall getMultiplicativeExpressionParserRuleCall_0() { return cMultiplicativeExpressionParserRuleCall_0; }
719
720 //({BinaryExpression.left=current} op=AdditiveBinaryOperator right=MultiplicativeExpression)*
721 public Group getGroup_1() { return cGroup_1; }
722
723 //{BinaryExpression.left=current}
724 public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; }
725
726 //op=AdditiveBinaryOperator
727 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; }
303 728
304 //Symbol: 729 //AdditiveBinaryOperator
305 // ModelSymbol | PartialitySymbol | DataSymbol; 730 public RuleCall getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0() { return cOpAdditiveBinaryOperatorEnumRuleCall_1_1_0; }
731
732 //right=MultiplicativeExpression
733 public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; }
734
735 //MultiplicativeExpression
736 public RuleCall getRightMultiplicativeExpressionParserRuleCall_1_2_0() { return cRightMultiplicativeExpressionParserRuleCall_1_2_0; }
737 }
738 public class MultiplicativeExpressionElements extends AbstractParserRuleElementFinder {
739 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeExpression");
740 private final Group cGroup = (Group)rule.eContents().get(1);
741 private final RuleCall cExponentialExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
742 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
743 private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0);
744 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
745 private final RuleCall cOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0);
746 private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
747 private final RuleCall cRightExponentialExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0);
748
749 //MultiplicativeExpression Expression:
750 // ExponentialExpression ({BinaryExpression.left=current} op=MultiplicativeBinaryOperator right=ExponentialExpression)*;
306 @Override public ParserRule getRule() { return rule; } 751 @Override public ParserRule getRule() { return rule; }
307 752
308 //ModelSymbol | PartialitySymbol | DataSymbol 753 //ExponentialExpression ({BinaryExpression.left=current} op=MultiplicativeBinaryOperator right=ExponentialExpression)*
309 public Alternatives getAlternatives() { return cAlternatives; } 754 public Group getGroup() { return cGroup; }
755
756 //ExponentialExpression
757 public RuleCall getExponentialExpressionParserRuleCall_0() { return cExponentialExpressionParserRuleCall_0; }
758
759 //({BinaryExpression.left=current} op=MultiplicativeBinaryOperator right=ExponentialExpression)*
760 public Group getGroup_1() { return cGroup_1; }
761
762 //{BinaryExpression.left=current}
763 public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; }
310 764
311 //ModelSymbol 765 //op=MultiplicativeBinaryOperator
312 public RuleCall getModelSymbolParserRuleCall_0() { return cModelSymbolParserRuleCall_0; } 766 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; }
313 767
314 //PartialitySymbol 768 //MultiplicativeBinaryOperator
315 public RuleCall getPartialitySymbolParserRuleCall_1() { return cPartialitySymbolParserRuleCall_1; } 769 public RuleCall getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0() { return cOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0; }
316 770
317 //DataSymbol 771 //right=ExponentialExpression
318 public RuleCall getDataSymbolParserRuleCall_2() { return cDataSymbolParserRuleCall_2; } 772 public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; }
773
774 //ExponentialExpression
775 public RuleCall getRightExponentialExpressionParserRuleCall_1_2_0() { return cRightExponentialExpressionParserRuleCall_1_2_0; }
319 } 776 }
320 public class ModelSymbolElements extends AbstractParserRuleElementFinder { 777 public class ExponentialExpressionElements extends AbstractParserRuleElementFinder {
321 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); 778 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression");
322 private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); 779 private final Group cGroup = (Group)rule.eContents().get(1);
323 private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); 780 private final RuleCall cUnaryExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
781 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
782 private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0);
783 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
784 private final RuleCall cOpExponentialOpEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0);
785 private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
786 private final RuleCall cRightExponentialExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0);
787
788 //ExponentialExpression Expression:
789 // UnaryExpression ({BinaryExpression.left=current} op=ExponentialOp right=ExponentialExpression)?;
790 @Override public ParserRule getRule() { return rule; }
791
792 //UnaryExpression ({BinaryExpression.left=current} op=ExponentialOp right=ExponentialExpression)?
793 public Group getGroup() { return cGroup; }
794
795 //UnaryExpression
796 public RuleCall getUnaryExpressionParserRuleCall_0() { return cUnaryExpressionParserRuleCall_0; }
797
798 //({BinaryExpression.left=current} op=ExponentialOp right=ExponentialExpression)?
799 public Group getGroup_1() { return cGroup_1; }
324 800
325 //ModelSymbol: 801 //{BinaryExpression.left=current}
326 // name=ID; 802 public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; }
803
804 //op=ExponentialOp
805 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; }
806
807 //ExponentialOp
808 public RuleCall getOpExponentialOpEnumRuleCall_1_1_0() { return cOpExponentialOpEnumRuleCall_1_1_0; }
809
810 //right=ExponentialExpression
811 public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; }
812
813 //ExponentialExpression
814 public RuleCall getRightExponentialExpressionParserRuleCall_1_2_0() { return cRightExponentialExpressionParserRuleCall_1_2_0; }
815 }
816 public class UnaryExpressionElements extends AbstractParserRuleElementFinder {
817 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryExpression");
818 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
819 private final RuleCall cAggregationExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
820 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
821 private final Action cUnaryExpressionAction_1_0 = (Action)cGroup_1.eContents().get(0);
822 private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
823 private final RuleCall cOpUnaryOpEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0);
824 private final Assignment cBodyAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2);
825 private final RuleCall cBodyAggregationExpressionParserRuleCall_1_2_0 = (RuleCall)cBodyAssignment_1_2.eContents().get(0);
826
827 //UnaryExpression Expression:
828 // AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression;
327 @Override public ParserRule getRule() { return rule; } 829 @Override public ParserRule getRule() { return rule; }
328 830
329 //name=ID 831 //AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression
330 public Assignment getNameAssignment() { return cNameAssignment; } 832 public Alternatives getAlternatives() { return cAlternatives; }
331 833
332 //ID 834 //AggregationExpression
333 public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } 835 public RuleCall getAggregationExpressionParserRuleCall_0() { return cAggregationExpressionParserRuleCall_0; }
836
837 //{UnaryExpression} op=UnaryOp body=AggregationExpression
838 public Group getGroup_1() { return cGroup_1; }
839
840 //{UnaryExpression}
841 public Action getUnaryExpressionAction_1_0() { return cUnaryExpressionAction_1_0; }
842
843 //op=UnaryOp
844 public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; }
845
846 //UnaryOp
847 public RuleCall getOpUnaryOpEnumRuleCall_1_1_0() { return cOpUnaryOpEnumRuleCall_1_1_0; }
848
849 //body=AggregationExpression
850 public Assignment getBodyAssignment_1_2() { return cBodyAssignment_1_2; }
851
852 //AggregationExpression
853 public RuleCall getBodyAggregationExpressionParserRuleCall_1_2_0() { return cBodyAggregationExpressionParserRuleCall_1_2_0; }
334 } 854 }
335 public class PartialitySymbolElements extends AbstractParserRuleElementFinder { 855 public class AggregationExpressionElements extends AbstractParserRuleElementFinder {
336 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PartialitySymbol"); 856 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression");
337 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 857 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
338 private final RuleCall cExistSymbolParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 858 private final RuleCall cAtomicExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
339 private final RuleCall cEqualsSymbolParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 859 private final RuleCall cCountParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
860 private final RuleCall cAggregationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
340 861
341 //PartialitySymbol: 862 //AggregationExpression Expression:
342 // ExistSymbol | EqualsSymbol; 863 // AtomicExpression | Count | Aggregation;
343 @Override public ParserRule getRule() { return rule; } 864 @Override public ParserRule getRule() { return rule; }
344 865
345 //ExistSymbol | EqualsSymbol 866 //AtomicExpression | Count | Aggregation
346 public Alternatives getAlternatives() { return cAlternatives; } 867 public Alternatives getAlternatives() { return cAlternatives; }
347 868
348 //ExistSymbol 869 //AtomicExpression
349 public RuleCall getExistSymbolParserRuleCall_0() { return cExistSymbolParserRuleCall_0; } 870 public RuleCall getAtomicExpressionParserRuleCall_0() { return cAtomicExpressionParserRuleCall_0; }
871
872 //Count
873 public RuleCall getCountParserRuleCall_1() { return cCountParserRuleCall_1; }
350 874
351 //EqualsSymbol 875 //Aggregation
352 public RuleCall getEqualsSymbolParserRuleCall_1() { return cEqualsSymbolParserRuleCall_1; } 876 public RuleCall getAggregationParserRuleCall_2() { return cAggregationParserRuleCall_2; }
353 } 877 }
354 public class ExistSymbolElements extends AbstractParserRuleElementFinder { 878 public class CountElements extends AbstractParserRuleElementFinder {
355 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExistSymbol"); 879 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Count");
356 private final Group cGroup = (Group)rule.eContents().get(1); 880 private final Group cGroup = (Group)rule.eContents().get(1);
357 private final Keyword cExistsKeyword_0 = (Keyword)cGroup.eContents().get(0); 881 private final Keyword cCountKeyword_0 = (Keyword)cGroup.eContents().get(0);
358 private final Action cExistSymbolAction_1 = (Action)cGroup.eContents().get(1); 882 private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
359 883 private final Assignment cBodyAssignment_2 = (Assignment)cGroup.eContents().get(2);
360 //ExistSymbol: 884 private final RuleCall cBodyExpressionParserRuleCall_2_0 = (RuleCall)cBodyAssignment_2.eContents().get(0);
361 // 'exists' {ExistSymbol}; 885 private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
886
887 //Count:
888 // "count" "{" body=Expression "}";
362 @Override public ParserRule getRule() { return rule; } 889 @Override public ParserRule getRule() { return rule; }
363 890
364 //'exists' {ExistSymbol} 891 //"count" "{" body=Expression "}"
365 public Group getGroup() { return cGroup; } 892 public Group getGroup() { return cGroup; }
366 893
367 //'exists' 894 //"count"
368 public Keyword getExistsKeyword_0() { return cExistsKeyword_0; } 895 public Keyword getCountKeyword_0() { return cCountKeyword_0; }
896
897 //"{"
898 public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
369 899
370 //{ExistSymbol} 900 //body=Expression
371 public Action getExistSymbolAction_1() { return cExistSymbolAction_1; } 901 public Assignment getBodyAssignment_2() { return cBodyAssignment_2; }
902
903 //Expression
904 public RuleCall getBodyExpressionParserRuleCall_2_0() { return cBodyExpressionParserRuleCall_2_0; }
905
906 //"}"
907 public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
372 } 908 }
373 public class EqualsSymbolElements extends AbstractParserRuleElementFinder { 909 public class AggregationElements extends AbstractParserRuleElementFinder {
374 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EqualsSymbol"); 910 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Aggregation");
375 private final Group cGroup = (Group)rule.eContents().get(1); 911 private final Group cGroup = (Group)rule.eContents().get(1);
376 private final Keyword cEqualsKeyword_0 = (Keyword)cGroup.eContents().get(0); 912 private final Assignment cOpAssignment_0 = (Assignment)cGroup.eContents().get(0);
377 private final Action cEqualsSymbolAction_1 = (Action)cGroup.eContents().get(1); 913 private final RuleCall cOpAggregationOpEnumRuleCall_0_0 = (RuleCall)cOpAssignment_0.eContents().get(0);
378 914 private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
379 //EqualsSymbol: 915 private final Assignment cBodyAssignment_2 = (Assignment)cGroup.eContents().get(2);
380 // 'equals' {EqualsSymbol}; 916 private final RuleCall cBodyExpressionParserRuleCall_2_0 = (RuleCall)cBodyAssignment_2.eContents().get(0);
917 private final Keyword cVerticalLineKeyword_3 = (Keyword)cGroup.eContents().get(3);
918 private final Assignment cConditionAssignment_4 = (Assignment)cGroup.eContents().get(4);
919 private final RuleCall cConditionExpressionParserRuleCall_4_0 = (RuleCall)cConditionAssignment_4.eContents().get(0);
920 private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
921
922 //Aggregation:
923 // op=AggregationOp "{" body=Expression "|" condition=Expression "}";
381 @Override public ParserRule getRule() { return rule; } 924 @Override public ParserRule getRule() { return rule; }
382 925
383 //'equals' {EqualsSymbol} 926 //op=AggregationOp "{" body=Expression "|" condition=Expression "}"
384 public Group getGroup() { return cGroup; } 927 public Group getGroup() { return cGroup; }
385 928
386 //'equals' 929 //op=AggregationOp
387 public Keyword getEqualsKeyword_0() { return cEqualsKeyword_0; } 930 public Assignment getOpAssignment_0() { return cOpAssignment_0; }
931
932 //AggregationOp
933 public RuleCall getOpAggregationOpEnumRuleCall_0_0() { return cOpAggregationOpEnumRuleCall_0_0; }
934
935 //"{"
936 public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
937
938 //body=Expression
939 public Assignment getBodyAssignment_2() { return cBodyAssignment_2; }
388 940
389 //{EqualsSymbol} 941 //Expression
390 public Action getEqualsSymbolAction_1() { return cEqualsSymbolAction_1; } 942 public RuleCall getBodyExpressionParserRuleCall_2_0() { return cBodyExpressionParserRuleCall_2_0; }
943
944 //"|"
945 public Keyword getVerticalLineKeyword_3() { return cVerticalLineKeyword_3; }
946
947 //condition=Expression
948 public Assignment getConditionAssignment_4() { return cConditionAssignment_4; }
949
950 //Expression
951 public RuleCall getConditionExpressionParserRuleCall_4_0() { return cConditionExpressionParserRuleCall_4_0; }
952
953 //"}"
954 public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
391 } 955 }
392 public class DataSymbolElements extends AbstractParserRuleElementFinder { 956 public class AtomicExpressionElements extends AbstractParserRuleElementFinder {
393 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DataSymbol"); 957 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AtomicExpression");
394 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 958 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
395 private final RuleCall cBooleanSymbolParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 959 private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
396 private final RuleCall cIntegerSymbolParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 960 private final RuleCall cReferenceParserRuleCall_0_0 = (RuleCall)cGroup_0.eContents().get(0);
397 private final RuleCall cRealSymbolParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 961 private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1);
398 private final RuleCall cStringSymbolParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); 962 private final Action cCallFunctorAction_0_1_0 = (Action)cGroup_0_1.eContents().get(0);
963 private final Assignment cArgumentListAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1);
964 private final RuleCall cArgumentListArgumentListParserRuleCall_0_1_1_0 = (RuleCall)cArgumentListAssignment_0_1_1.eContents().get(0);
965 private final RuleCall cIntervalParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
966 private final RuleCall cLiteralParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
967 private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3);
968 private final Keyword cLeftParenthesisKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
969 private final RuleCall cExpressionParserRuleCall_3_1 = (RuleCall)cGroup_3.eContents().get(1);
970 private final Keyword cRightParenthesisKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
399 971
400 //DataSymbol: 972 //AtomicExpression Expression:
401 // BooleanSymbol | IntegerSymbol | RealSymbol | StringSymbol; 973 // Reference ({Call.functor=current} -> argumentList=ArgumentList)? | Interval | Literal | "(" Expression ")";
402 @Override public ParserRule getRule() { return rule; } 974 @Override public ParserRule getRule() { return rule; }
403 975
404 //BooleanSymbol | IntegerSymbol | RealSymbol | StringSymbol 976 //Reference ({Call.functor=current} -> argumentList=ArgumentList)? | Interval | Literal | "(" Expression ")"
405 public Alternatives getAlternatives() { return cAlternatives; } 977 public Alternatives getAlternatives() { return cAlternatives; }
406 978
407 //BooleanSymbol 979 //Reference ({Call.functor=current} -> argumentList=ArgumentList)?
408 public RuleCall getBooleanSymbolParserRuleCall_0() { return cBooleanSymbolParserRuleCall_0; } 980 public Group getGroup_0() { return cGroup_0; }
981
982 //Reference
983 public RuleCall getReferenceParserRuleCall_0_0() { return cReferenceParserRuleCall_0_0; }
984
985 //({Call.functor=current} -> argumentList=ArgumentList)?
986 public Group getGroup_0_1() { return cGroup_0_1; }
987
988 //{Call.functor=current}
989 public Action getCallFunctorAction_0_1_0() { return cCallFunctorAction_0_1_0; }
990
991 //-> argumentList=ArgumentList
992 public Assignment getArgumentListAssignment_0_1_1() { return cArgumentListAssignment_0_1_1; }
993
994 //ArgumentList
995 public RuleCall getArgumentListArgumentListParserRuleCall_0_1_1_0() { return cArgumentListArgumentListParserRuleCall_0_1_1_0; }
996
997 //Interval
998 public RuleCall getIntervalParserRuleCall_1() { return cIntervalParserRuleCall_1; }
999
1000 //Literal
1001 public RuleCall getLiteralParserRuleCall_2() { return cLiteralParserRuleCall_2; }
1002
1003 //"(" Expression ")"
1004 public Group getGroup_3() { return cGroup_3; }
409 1005
410 //IntegerSymbol 1006 //"("
411 public RuleCall getIntegerSymbolParserRuleCall_1() { return cIntegerSymbolParserRuleCall_1; } 1007 public Keyword getLeftParenthesisKeyword_3_0() { return cLeftParenthesisKeyword_3_0; }
412 1008
413 //RealSymbol 1009 //Expression
414 public RuleCall getRealSymbolParserRuleCall_2() { return cRealSymbolParserRuleCall_2; } 1010 public RuleCall getExpressionParserRuleCall_3_1() { return cExpressionParserRuleCall_3_1; }
415 1011
416 //StringSymbol 1012 //")"
417 public RuleCall getStringSymbolParserRuleCall_3() { return cStringSymbolParserRuleCall_3; } 1013 public Keyword getRightParenthesisKeyword_3_2() { return cRightParenthesisKeyword_3_2; }
418 } 1014 }
419 public class BooleanSymbolElements extends AbstractParserRuleElementFinder { 1015 public class CallElements extends AbstractParserRuleElementFinder {
420 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BooleanSymbol"); 1016 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Call");
421 private final Group cGroup = (Group)rule.eContents().get(1); 1017 private final Group cGroup = (Group)rule.eContents().get(1);
422 private final Keyword cBoolKeyword_0 = (Keyword)cGroup.eContents().get(0); 1018 private final Assignment cFunctorAssignment_0 = (Assignment)cGroup.eContents().get(0);
423 private final Action cBooleanSymbolAction_1 = (Action)cGroup.eContents().get(1); 1019 private final RuleCall cFunctorReferenceParserRuleCall_0_0 = (RuleCall)cFunctorAssignment_0.eContents().get(0);
424 1020 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
425 //BooleanSymbol: 1021 private final Assignment cTransitiveClosureAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
426 // 'bool' {BooleanSymbol}; 1022 private final RuleCall cTransitiveClosureSTARTerminalRuleCall_1_0_0 = (RuleCall)cTransitiveClosureAssignment_1_0.eContents().get(0);
1023 private final Assignment cReflexiveTransitiveClosureAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1);
1024 private final RuleCall cReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0 = (RuleCall)cReflexiveTransitiveClosureAssignment_1_1.eContents().get(0);
1025 private final Assignment cArgumentListAssignment_2 = (Assignment)cGroup.eContents().get(2);
1026 private final RuleCall cArgumentListArgumentListParserRuleCall_2_0 = (RuleCall)cArgumentListAssignment_2.eContents().get(0);
1027
1028 //Call:
1029 // functor=Reference (transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)? argumentList=ArgumentList;
427 @Override public ParserRule getRule() { return rule; } 1030 @Override public ParserRule getRule() { return rule; }
428 1031
429 //'bool' {BooleanSymbol} 1032 //functor=Reference (transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)? argumentList=ArgumentList
430 public Group getGroup() { return cGroup; } 1033 public Group getGroup() { return cGroup; }
431 1034
432 //'bool' 1035 //functor=Reference
433 public Keyword getBoolKeyword_0() { return cBoolKeyword_0; } 1036 public Assignment getFunctorAssignment_0() { return cFunctorAssignment_0; }
1037
1038 //Reference
1039 public RuleCall getFunctorReferenceParserRuleCall_0_0() { return cFunctorReferenceParserRuleCall_0_0; }
1040
1041 //(transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)?
1042 public Alternatives getAlternatives_1() { return cAlternatives_1; }
1043
1044 //transitiveClosure?=STAR
1045 public Assignment getTransitiveClosureAssignment_1_0() { return cTransitiveClosureAssignment_1_0; }
1046
1047 //STAR
1048 public RuleCall getTransitiveClosureSTARTerminalRuleCall_1_0_0() { return cTransitiveClosureSTARTerminalRuleCall_1_0_0; }
1049
1050 //reflexiveTransitiveClosure?=PLUS
1051 public Assignment getReflexiveTransitiveClosureAssignment_1_1() { return cReflexiveTransitiveClosureAssignment_1_1; }
1052
1053 //PLUS
1054 public RuleCall getReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0() { return cReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0; }
434 1055
435 //{BooleanSymbol} 1056 //argumentList=ArgumentList
436 public Action getBooleanSymbolAction_1() { return cBooleanSymbolAction_1; } 1057 public Assignment getArgumentListAssignment_2() { return cArgumentListAssignment_2; }
1058
1059 //ArgumentList
1060 public RuleCall getArgumentListArgumentListParserRuleCall_2_0() { return cArgumentListArgumentListParserRuleCall_2_0; }
437 } 1061 }
438 public class IntegerSymbolElements extends AbstractParserRuleElementFinder { 1062 public class ArgumentListElements extends AbstractParserRuleElementFinder {
439 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IntegerSymbol"); 1063 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList");
440 private final Group cGroup = (Group)rule.eContents().get(1); 1064 private final Group cGroup = (Group)rule.eContents().get(1);
441 private final Keyword cIntKeyword_0 = (Keyword)cGroup.eContents().get(0); 1065 private final Action cArgumentListAction_0 = (Action)cGroup.eContents().get(0);
442 private final Action cIntegerSymbolAction_1 = (Action)cGroup.eContents().get(1); 1066 private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1);
1067 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
1068 private final Assignment cArgumentsAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
1069 private final RuleCall cArgumentsArgumentParserRuleCall_2_0_0 = (RuleCall)cArgumentsAssignment_2_0.eContents().get(0);
1070 private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1);
1071 private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
1072 private final Assignment cArgumentsAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
1073 private final RuleCall cArgumentsArgumentParserRuleCall_2_1_1_0 = (RuleCall)cArgumentsAssignment_2_1_1.eContents().get(0);
1074 private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3);
443 1075
444 //IntegerSymbol: 1076 //ArgumentList:
445 // 'int' {IntegerSymbol}; 1077 // {ArgumentList} "(" (arguments+=Argument ("," arguments+=Argument)*)? ")";
446 @Override public ParserRule getRule() { return rule; } 1078 @Override public ParserRule getRule() { return rule; }
447 1079
448 //'int' {IntegerSymbol} 1080 //{ArgumentList} "(" (arguments+=Argument ("," arguments+=Argument)*)? ")"
449 public Group getGroup() { return cGroup; } 1081 public Group getGroup() { return cGroup; }
450 1082
451 //'int' 1083 //{ArgumentList}
452 public Keyword getIntKeyword_0() { return cIntKeyword_0; } 1084 public Action getArgumentListAction_0() { return cArgumentListAction_0; }
1085
1086 //"("
1087 public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; }
1088
1089 //(arguments+=Argument ("," arguments+=Argument)*)?
1090 public Group getGroup_2() { return cGroup_2; }
1091
1092 //arguments+=Argument
1093 public Assignment getArgumentsAssignment_2_0() { return cArgumentsAssignment_2_0; }
1094
1095 //Argument
1096 public RuleCall getArgumentsArgumentParserRuleCall_2_0_0() { return cArgumentsArgumentParserRuleCall_2_0_0; }
1097
1098 //("," arguments+=Argument)*
1099 public Group getGroup_2_1() { return cGroup_2_1; }
1100
1101 //","
1102 public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; }
1103
1104 //arguments+=Argument
1105 public Assignment getArgumentsAssignment_2_1_1() { return cArgumentsAssignment_2_1_1; }
1106
1107 //Argument
1108 public RuleCall getArgumentsArgumentParserRuleCall_2_1_1_0() { return cArgumentsArgumentParserRuleCall_2_1_1_0; }
453 1109
454 //{IntegerSymbol} 1110 //")"
455 public Action getIntegerSymbolAction_1() { return cIntegerSymbolAction_1; } 1111 public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; }
456 } 1112 }
457 public class RealSymbolElements extends AbstractParserRuleElementFinder { 1113 public class ArgumentElements extends AbstractParserRuleElementFinder {
458 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.RealSymbol"); 1114 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Argument");
1115 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1116 private final RuleCall cExpressionArgumentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1117 private final RuleCall cStarArgumentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1118 private final RuleCall cTypedArgumentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
1119 private final RuleCall cTypedStarArgumentParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
1120
1121 //Argument:
1122 // ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument;
1123 @Override public ParserRule getRule() { return rule; }
1124
1125 //ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument
1126 public Alternatives getAlternatives() { return cAlternatives; }
1127
1128 //ExpressionArgument
1129 public RuleCall getExpressionArgumentParserRuleCall_0() { return cExpressionArgumentParserRuleCall_0; }
1130
1131 //StarArgument
1132 public RuleCall getStarArgumentParserRuleCall_1() { return cStarArgumentParserRuleCall_1; }
1133
1134 //TypedArgument
1135 public RuleCall getTypedArgumentParserRuleCall_2() { return cTypedArgumentParserRuleCall_2; }
1136
1137 //TypedStarArgument
1138 public RuleCall getTypedStarArgumentParserRuleCall_3() { return cTypedStarArgumentParserRuleCall_3; }
1139 }
1140 public class ExpressionArgumentElements extends AbstractParserRuleElementFinder {
1141 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExpressionArgument");
1142 private final Assignment cBodyAssignment = (Assignment)rule.eContents().get(1);
1143 private final RuleCall cBodyComparisonExpressionParserRuleCall_0 = (RuleCall)cBodyAssignment.eContents().get(0);
1144
1145 //ExpressionArgument:
1146 // body=ComparisonExpression;
1147 @Override public ParserRule getRule() { return rule; }
1148
1149 //body=ComparisonExpression
1150 public Assignment getBodyAssignment() { return cBodyAssignment; }
1151
1152 //ComparisonExpression
1153 public RuleCall getBodyComparisonExpressionParserRuleCall_0() { return cBodyComparisonExpressionParserRuleCall_0; }
1154 }
1155 public class StarArgumentElements extends AbstractParserRuleElementFinder {
1156 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StarArgument");
459 private final Group cGroup = (Group)rule.eContents().get(1); 1157 private final Group cGroup = (Group)rule.eContents().get(1);
460 private final Keyword cRealKeyword_0 = (Keyword)cGroup.eContents().get(0); 1158 private final Action cStarArgumentAction_0 = (Action)cGroup.eContents().get(0);
461 private final Action cRealSymbolAction_1 = (Action)cGroup.eContents().get(1); 1159 private final Keyword cAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1);
462 1160
463 //RealSymbol: 1161 //StarArgument:
464 // 'real' {RealSymbol}; 1162 // {StarArgument} "*";
465 @Override public ParserRule getRule() { return rule; } 1163 @Override public ParserRule getRule() { return rule; }
466 1164
467 //'real' {RealSymbol} 1165 //{StarArgument} "*"
468 public Group getGroup() { return cGroup; } 1166 public Group getGroup() { return cGroup; }
469 1167
470 //'real' 1168 //{StarArgument}
471 public Keyword getRealKeyword_0() { return cRealKeyword_0; } 1169 public Action getStarArgumentAction_0() { return cStarArgumentAction_0; }
472 1170
473 //{RealSymbol} 1171 //"*"
474 public Action getRealSymbolAction_1() { return cRealSymbolAction_1; } 1172 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; }
475 } 1173 }
476 public class StringSymbolElements extends AbstractParserRuleElementFinder { 1174 public class TypedArgumentElements extends AbstractParserRuleElementFinder {
477 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StringSymbol"); 1175 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedArgument");
478 private final Group cGroup = (Group)rule.eContents().get(1); 1176 private final Group cGroup = (Group)rule.eContents().get(1);
479 private final Keyword cStringKeyword_0 = (Keyword)cGroup.eContents().get(0); 1177 private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
480 private final Action cStringSymbolAction_1 = (Action)cGroup.eContents().get(1); 1178 private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0);
481 1179 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1);
482 //StringSymbol: 1180 private final Assignment cVariableAssignment_1 = (Assignment)cGroup.eContents().get(1);
483 // 'string' {StringSymbol}; 1181 private final CrossReference cVariableNamedElementCrossReference_1_0 = (CrossReference)cVariableAssignment_1.eContents().get(0);
1182 private final RuleCall cVariableNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cVariableNamedElementCrossReference_1_0.eContents().get(1);
1183
1184 //TypedArgument:
1185 // type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName];
484 @Override public ParserRule getRule() { return rule; } 1186 @Override public ParserRule getRule() { return rule; }
485 1187
486 //'string' {StringSymbol} 1188 //type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]
487 public Group getGroup() { return cGroup; } 1189 public Group getGroup() { return cGroup; }
488 1190
489 //'string' 1191 //type=[NamedElement|QualifiedName]
490 public Keyword getStringKeyword_0() { return cStringKeyword_0; } 1192 public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }
491 1193
492 //{StringSymbol} 1194 //[NamedElement|QualifiedName]
493 public Action getStringSymbolAction_1() { return cStringSymbolAction_1; } 1195 public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; }
1196
1197 //QualifiedName
1198 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; }
1199
1200 //variable=[NamedElement|QualifiedName]
1201 public Assignment getVariableAssignment_1() { return cVariableAssignment_1; }
1202
1203 //[NamedElement|QualifiedName]
1204 public CrossReference getVariableNamedElementCrossReference_1_0() { return cVariableNamedElementCrossReference_1_0; }
1205
1206 //QualifiedName
1207 public RuleCall getVariableNamedElementQualifiedNameParserRuleCall_1_0_1() { return cVariableNamedElementQualifiedNameParserRuleCall_1_0_1; }
494 } 1208 }
495 public class ComplexObjectElements extends AbstractParserRuleElementFinder { 1209 public class TypedStarArgumentElements extends AbstractParserRuleElementFinder {
496 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject"); 1210 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedStarArgument");
497 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1211 private final Group cGroup = (Group)rule.eContents().get(1);
498 private final RuleCall cObjectParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1212 private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
499 private final RuleCall cAllInstancesParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 1213 private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0);
500 private final RuleCall cAllObjectsParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 1214 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1);
1215 private final Keyword cAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1);
501 1216
502 //ComplexObject: 1217 //TypedStarArgument:
503 // Object | AllInstances | AllObjects; 1218 // type=[NamedElement|QualifiedName] "*";
504 @Override public ParserRule getRule() { return rule; } 1219 @Override public ParserRule getRule() { return rule; }
505 1220
506 //Object | AllInstances | AllObjects 1221 //type=[NamedElement|QualifiedName] "*"
507 public Alternatives getAlternatives() { return cAlternatives; } 1222 public Group getGroup() { return cGroup; }
508 1223
509 //Object 1224 //type=[NamedElement|QualifiedName]
510 public RuleCall getObjectParserRuleCall_0() { return cObjectParserRuleCall_0; } 1225 public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }
511 1226
512 //AllInstances 1227 //[NamedElement|QualifiedName]
513 public RuleCall getAllInstancesParserRuleCall_1() { return cAllInstancesParserRuleCall_1; } 1228 public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; }
514 1229
515 //AllObjects 1230 //QualifiedName
516 public RuleCall getAllObjectsParserRuleCall_2() { return cAllObjectsParserRuleCall_2; } 1231 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; }
1232
1233 //"*"
1234 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; }
517 } 1235 }
518 public class ObjectElements extends AbstractParserRuleElementFinder { 1236 public class ReferenceElements extends AbstractParserRuleElementFinder {
519 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Object"); 1237 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Reference");
520 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1238 private final Assignment cReferredAssignment = (Assignment)rule.eContents().get(1);
521 private final RuleCall cNamedObjectParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1239 private final CrossReference cReferredNamedElementCrossReference_0 = (CrossReference)cReferredAssignment.eContents().get(0);
522 private final RuleCall cUnnamedObjectParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 1240 private final RuleCall cReferredNamedElementQualifiedNameParserRuleCall_0_1 = (RuleCall)cReferredNamedElementCrossReference_0.eContents().get(1);
523 private final RuleCall cDataObjectParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
524 1241
525 //Object: 1242 //Reference:
526 // NamedObject | UnnamedObject | DataObject; 1243 // referred=[NamedElement|QualifiedName];
527 @Override public ParserRule getRule() { return rule; } 1244 @Override public ParserRule getRule() { return rule; }
528 1245
529 //NamedObject | UnnamedObject | DataObject 1246 //referred=[NamedElement|QualifiedName]
530 public Alternatives getAlternatives() { return cAlternatives; } 1247 public Assignment getReferredAssignment() { return cReferredAssignment; }
531
532 //NamedObject
533 public RuleCall getNamedObjectParserRuleCall_0() { return cNamedObjectParserRuleCall_0; }
534 1248
535 //UnnamedObject 1249 //[NamedElement|QualifiedName]
536 public RuleCall getUnnamedObjectParserRuleCall_1() { return cUnnamedObjectParserRuleCall_1; } 1250 public CrossReference getReferredNamedElementCrossReference_0() { return cReferredNamedElementCrossReference_0; }
537 1251
538 //DataObject 1252 //QualifiedName
539 public RuleCall getDataObjectParserRuleCall_2() { return cDataObjectParserRuleCall_2; } 1253 public RuleCall getReferredNamedElementQualifiedNameParserRuleCall_0_1() { return cReferredNamedElementQualifiedNameParserRuleCall_0_1; }
540 } 1254 }
541 public class NamedObjectElements extends AbstractParserRuleElementFinder { 1255 public class IntervalElements extends AbstractParserRuleElementFinder {
542 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NamedObject"); 1256 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Interval");
543 private final Group cGroup = (Group)rule.eContents().get(1); 1257 private final Group cGroup = (Group)rule.eContents().get(1);
544 private final Keyword cApostropheKeyword_0 = (Keyword)cGroup.eContents().get(0); 1258 private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
545 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); 1259 private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1);
546 private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); 1260 private final RuleCall cLowerBoundExpressionParserRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0);
547 private final Keyword cApostropheKeyword_2 = (Keyword)cGroup.eContents().get(2); 1261 private final Keyword cFullStopFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
548 1262 private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3);
549 //NamedObject: 1263 private final RuleCall cUpperBoundExpressionParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0);
550 // "'" name=ID "'"; 1264 private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
1265
1266 //Interval:
1267 // "[" lowerBound=Expression ".." upperBound=Expression "]";
551 @Override public ParserRule getRule() { return rule; } 1268 @Override public ParserRule getRule() { return rule; }
552 1269
553 //"'" name=ID "'" 1270 //"[" lowerBound=Expression ".." upperBound=Expression "]"
554 public Group getGroup() { return cGroup; } 1271 public Group getGroup() { return cGroup; }
555 1272
556 //"'" 1273 //"["
557 public Keyword getApostropheKeyword_0() { return cApostropheKeyword_0; } 1274 public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; }
558 1275
559 //name=ID 1276 //lowerBound=Expression
560 public Assignment getNameAssignment_1() { return cNameAssignment_1; } 1277 public Assignment getLowerBoundAssignment_1() { return cLowerBoundAssignment_1; }
561 1278
562 //ID 1279 //Expression
563 public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } 1280 public RuleCall getLowerBoundExpressionParserRuleCall_1_0() { return cLowerBoundExpressionParserRuleCall_1_0; }
564 1281
565 //"'" 1282 //".."
566 public Keyword getApostropheKeyword_2() { return cApostropheKeyword_2; } 1283 public Keyword getFullStopFullStopKeyword_2() { return cFullStopFullStopKeyword_2; }
567 }
568 public class UnnamedObjectElements extends AbstractParserRuleElementFinder {
569 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnnamedObject");
570 private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
571 private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
572 1284
573 //UnnamedObject: 1285 //upperBound=Expression
574 // name=ID; 1286 public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; }
575 @Override public ParserRule getRule() { return rule; }
576 1287
577 //name=ID 1288 //Expression
578 public Assignment getNameAssignment() { return cNameAssignment; } 1289 public RuleCall getUpperBoundExpressionParserRuleCall_3_0() { return cUpperBoundExpressionParserRuleCall_3_0; }
579 1290
580 //ID 1291 //"]"
581 public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } 1292 public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; }
582 } 1293 }
583 public class DataObjectElements extends AbstractParserRuleElementFinder { 1294 public class LiteralElements extends AbstractParserRuleElementFinder {
584 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DataObject"); 1295 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
585 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1296 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
586 private final RuleCall cBooleanObjectParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1297 private final RuleCall cLogicLiteralParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
587 private final RuleCall cIntObjectParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 1298 private final RuleCall cNumericLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
588 private final RuleCall cRealObjectParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 1299 private final RuleCall cInfinityLiteralParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
589 private final RuleCall cStringObjectParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); 1300 private final RuleCall cEmptyIntervalLiteralParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
1301 private final RuleCall cStringLiteralParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
590 1302
591 //DataObject: 1303 //Literal:
592 // BooleanObject | IntObject | RealObject | StringObject; 1304 // LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral;
593 @Override public ParserRule getRule() { return rule; } 1305 @Override public ParserRule getRule() { return rule; }
594 1306
595 //BooleanObject | IntObject | RealObject | StringObject 1307 //LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral
596 public Alternatives getAlternatives() { return cAlternatives; } 1308 public Alternatives getAlternatives() { return cAlternatives; }
597 1309
598 //BooleanObject 1310 //LogicLiteral
599 public RuleCall getBooleanObjectParserRuleCall_0() { return cBooleanObjectParserRuleCall_0; } 1311 public RuleCall getLogicLiteralParserRuleCall_0() { return cLogicLiteralParserRuleCall_0; }
1312
1313 //NumericLiteral
1314 public RuleCall getNumericLiteralParserRuleCall_1() { return cNumericLiteralParserRuleCall_1; }
600 1315
601 //IntObject 1316 //InfinityLiteral
602 public RuleCall getIntObjectParserRuleCall_1() { return cIntObjectParserRuleCall_1; } 1317 public RuleCall getInfinityLiteralParserRuleCall_2() { return cInfinityLiteralParserRuleCall_2; }
603 1318
604 //RealObject 1319 //EmptyIntervalLiteral
605 public RuleCall getRealObjectParserRuleCall_2() { return cRealObjectParserRuleCall_2; } 1320 public RuleCall getEmptyIntervalLiteralParserRuleCall_3() { return cEmptyIntervalLiteralParserRuleCall_3; }
606 1321
607 //StringObject 1322 //StringLiteral
608 public RuleCall getStringObjectParserRuleCall_3() { return cStringObjectParserRuleCall_3; } 1323 public RuleCall getStringLiteralParserRuleCall_4() { return cStringLiteralParserRuleCall_4; }
609 } 1324 }
610 public class BooleanObjectElements extends AbstractParserRuleElementFinder { 1325 public class LogicLiteralElements extends AbstractParserRuleElementFinder {
611 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BooleanObject"); 1326 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicLiteral");
612 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); 1327 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
613 private final RuleCall cValueBooleanValueParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); 1328 private final RuleCall cValueLogicValueEnumRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
614 1329
615 //BooleanObject: 1330 //LogicLiteral:
616 // value=BooleanValue; 1331 // value=LogicValue;
617 @Override public ParserRule getRule() { return rule; } 1332 @Override public ParserRule getRule() { return rule; }
618 1333
619 //value=BooleanValue 1334 //value=LogicValue
620 public Assignment getValueAssignment() { return cValueAssignment; } 1335 public Assignment getValueAssignment() { return cValueAssignment; }
621 1336
622 //BooleanValue 1337 //LogicValue
623 public RuleCall getValueBooleanValueParserRuleCall_0() { return cValueBooleanValueParserRuleCall_0; } 1338 public RuleCall getValueLogicValueEnumRuleCall_0() { return cValueLogicValueEnumRuleCall_0; }
624 } 1339 }
625 public class IntObjectElements extends AbstractParserRuleElementFinder { 1340 public class NumericLiteralElements extends AbstractParserRuleElementFinder {
626 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IntObject"); 1341 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NumericLiteral");
627 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); 1342 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
628 private final RuleCall cValueINTLiteralParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); 1343 private final RuleCall cValueRealParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
629 1344
630 //IntObject: 1345 //NumericLiteral:
631 // value=INTLiteral; 1346 // value=Real;
632 @Override public ParserRule getRule() { return rule; } 1347 @Override public ParserRule getRule() { return rule; }
633 1348
634 //value=INTLiteral 1349 //value=Real
635 public Assignment getValueAssignment() { return cValueAssignment; } 1350 public Assignment getValueAssignment() { return cValueAssignment; }
636 1351
637 //INTLiteral 1352 //Real
638 public RuleCall getValueINTLiteralParserRuleCall_0() { return cValueINTLiteralParserRuleCall_0; } 1353 public RuleCall getValueRealParserRuleCall_0() { return cValueRealParserRuleCall_0; }
639 } 1354 }
640 public class RealObjectElements extends AbstractParserRuleElementFinder { 1355 public class InfinityLiteralElements extends AbstractParserRuleElementFinder {
641 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.RealObject"); 1356 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.InfinityLiteral");
642 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); 1357 private final Group cGroup = (Group)rule.eContents().get(1);
643 private final RuleCall cValueREALLiteralParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); 1358 private final Action cInfinityLiteralAction_0 = (Action)cGroup.eContents().get(0);
1359 private final Keyword cInfKeyword_1 = (Keyword)cGroup.eContents().get(1);
644 1360
645 //RealObject: 1361 //InfinityLiteral:
646 // value=REALLiteral; 1362 // {InfinityLiteral} "inf";
647 @Override public ParserRule getRule() { return rule; } 1363 @Override public ParserRule getRule() { return rule; }
648 1364
649 //value=REALLiteral 1365 //{InfinityLiteral} "inf"
650 public Assignment getValueAssignment() { return cValueAssignment; } 1366 public Group getGroup() { return cGroup; }
1367
1368 //{InfinityLiteral}
1369 public Action getInfinityLiteralAction_0() { return cInfinityLiteralAction_0; }
651 1370
652 //REALLiteral 1371 //"inf"
653 public RuleCall getValueREALLiteralParserRuleCall_0() { return cValueREALLiteralParserRuleCall_0; } 1372 public Keyword getInfKeyword_1() { return cInfKeyword_1; }
654 } 1373 }
655 public class StringObjectElements extends AbstractParserRuleElementFinder { 1374 public class EmptyIntervalLiteralElements extends AbstractParserRuleElementFinder {
656 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StringObject"); 1375 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EmptyIntervalLiteral");
1376 private final Group cGroup = (Group)rule.eContents().get(1);
1377 private final Action cEmptyIntervalLiteralAction_0 = (Action)cGroup.eContents().get(0);
1378 private final Keyword cEmptyKeyword_1 = (Keyword)cGroup.eContents().get(1);
1379
1380 //EmptyIntervalLiteral:
1381 // {EmptyIntervalLiteral} "empty";
1382 @Override public ParserRule getRule() { return rule; }
1383
1384 //{EmptyIntervalLiteral} "empty"
1385 public Group getGroup() { return cGroup; }
1386
1387 //{EmptyIntervalLiteral}
1388 public Action getEmptyIntervalLiteralAction_0() { return cEmptyIntervalLiteralAction_0; }
1389
1390 //"empty"
1391 public Keyword getEmptyKeyword_1() { return cEmptyKeyword_1; }
1392 }
1393 public class StringLiteralElements extends AbstractParserRuleElementFinder {
1394 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StringLiteral");
657 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); 1395 private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
658 private final RuleCall cValueSTRINGTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); 1396 private final RuleCall cValueSTRINGTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
659 1397
660 //StringObject: 1398 //StringLiteral:
661 // value=STRING; 1399 // value=STRING;
662 @Override public ParserRule getRule() { return rule; } 1400 @Override public ParserRule getRule() { return rule; }
663 1401
@@ -667,817 +1405,1189 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
667 //STRING 1405 //STRING
668 public RuleCall getValueSTRINGTerminalRuleCall_0() { return cValueSTRINGTerminalRuleCall_0; } 1406 public RuleCall getValueSTRINGTerminalRuleCall_0() { return cValueSTRINGTerminalRuleCall_0; }
669 } 1407 }
670 public class PredicateElements extends AbstractParserRuleElementFinder { 1408 public class ClassDefinitionElements extends AbstractParserRuleElementFinder {
671 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Predicate"); 1409 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClassDefinition");
672 private final Group cGroup = (Group)rule.eContents().get(1); 1410 private final Group cGroup = (Group)rule.eContents().get(1);
673 private final Assignment cIsErrorAssignment_0 = (Assignment)cGroup.eContents().get(0); 1411 private final Assignment cAbstractAssignment_0 = (Assignment)cGroup.eContents().get(0);
674 private final Keyword cIsErrorErrorKeyword_0_0 = (Keyword)cIsErrorAssignment_0.eContents().get(0); 1412 private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0);
675 private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1); 1413 private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1);
676 private final RuleCall cSymbolModelSymbolParserRuleCall_1_0 = (RuleCall)cSymbolAssignment_1.eContents().get(0); 1414 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
677 private final Group cGroup_2 = (Group)cGroup.eContents().get(2); 1415 private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
678 private final Keyword cLeftParenthesisKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); 1416 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
679 private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); 1417 private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
680 private final Assignment cParametersAssignment_2_1_0 = (Assignment)cGroup_2_1.eContents().get(0); 1418 private final Assignment cSuperclassesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
681 private final RuleCall cParametersParameterParserRuleCall_2_1_0_0 = (RuleCall)cParametersAssignment_2_1_0.eContents().get(0); 1419 private final CrossReference cSuperclassesNamedElementCrossReference_3_1_0 = (CrossReference)cSuperclassesAssignment_3_1.eContents().get(0);
682 private final Group cGroup_2_1_1 = (Group)cGroup_2_1.eContents().get(1); 1420 private final RuleCall cSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSuperclassesNamedElementCrossReference_3_1_0.eContents().get(1);
683 private final Keyword cCommaKeyword_2_1_1_0 = (Keyword)cGroup_2_1_1.eContents().get(0); 1421 private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
684 private final Assignment cParametersAssignment_2_1_1_1 = (Assignment)cGroup_2_1_1.eContents().get(1); 1422 private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
685 private final RuleCall cParametersParameterParserRuleCall_2_1_1_1_0 = (RuleCall)cParametersAssignment_2_1_1_1.eContents().get(0); 1423 private final Assignment cSuperclassesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
686 private final Keyword cRightParenthesisKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2); 1424 private final CrossReference cSuperclassesNamedElementCrossReference_3_2_1_0 = (CrossReference)cSuperclassesAssignment_3_2_1.eContents().get(0);
687 private final Keyword cColonHyphenMinusKeyword_3 = (Keyword)cGroup.eContents().get(3); 1425 private final RuleCall cSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSuperclassesNamedElementCrossReference_3_2_1_0.eContents().get(1);
688 private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4); 1426 private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
689 private final Keyword cFalseKeyword_4_0 = (Keyword)cAlternatives_4.eContents().get(0); 1427 private final Assignment cMembersAssignment_5 = (Assignment)cGroup.eContents().get(5);
690 private final Group cGroup_4_1 = (Group)cAlternatives_4.eContents().get(1); 1428 private final RuleCall cMembersMemberDefinitionParserRuleCall_5_0 = (RuleCall)cMembersAssignment_5.eContents().get(0);
691 private final Assignment cBodiesAssignment_4_1_0 = (Assignment)cGroup_4_1.eContents().get(0); 1429 private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
692 private final RuleCall cBodiesPatternBodyParserRuleCall_4_1_0_0 = (RuleCall)cBodiesAssignment_4_1_0.eContents().get(0); 1430
693 private final Group cGroup_4_1_1 = (Group)cGroup_4_1.eContents().get(1); 1431 //ClassDefinition Statement:
694 private final Keyword cVerticalLineKeyword_4_1_1_0 = (Keyword)cGroup_4_1_1.eContents().get(0); 1432 // abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] (","
695 private final Assignment cBodiesAssignment_4_1_1_1 = (Assignment)cGroup_4_1_1.eContents().get(1); 1433 // superclasses+=[NamedElement|QualifiedName])*)?
696 private final RuleCall cBodiesPatternBodyParserRuleCall_4_1_1_1_0 = (RuleCall)cBodiesAssignment_4_1_1_1.eContents().get(0); 1434 // "{" members+=MemberDefinition* "}";
697 private final Keyword cFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5);
698
699 /////////////////////
700 //// Predicte grammar
701 /////////////////////
702 //Predicate:
703 // isError?='error'? symbol=ModelSymbol ('(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')')? ':-' ('false' |
704 // bodies+=PatternBody ('|' bodies+=PatternBody)*) '.';
705 @Override public ParserRule getRule() { return rule; } 1435 @Override public ParserRule getRule() { return rule; }
706 1436
707 //isError?='error'? symbol=ModelSymbol ('(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')')? ':-' ('false' | 1437 //abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] (","
708 //bodies+=PatternBody ('|' bodies+=PatternBody)*) '.' 1438 //superclasses+=[NamedElement|QualifiedName])*)? "{" members+=MemberDefinition* "}"
709 public Group getGroup() { return cGroup; } 1439 public Group getGroup() { return cGroup; }
710 1440
711 //isError?='error'? 1441 //abstract?="abstract"?
712 public Assignment getIsErrorAssignment_0() { return cIsErrorAssignment_0; } 1442 public Assignment getAbstractAssignment_0() { return cAbstractAssignment_0; }
713 1443
714 //'error' 1444 //"abstract"
715 public Keyword getIsErrorErrorKeyword_0_0() { return cIsErrorErrorKeyword_0_0; } 1445 public Keyword getAbstractAbstractKeyword_0_0() { return cAbstractAbstractKeyword_0_0; }
716 1446
717 //symbol=ModelSymbol 1447 //"class"
718 public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; } 1448 public Keyword getClassKeyword_1() { return cClassKeyword_1; }
719 1449
720 //ModelSymbol 1450 //name=ID
721 public RuleCall getSymbolModelSymbolParserRuleCall_1_0() { return cSymbolModelSymbolParserRuleCall_1_0; } 1451 public Assignment getNameAssignment_2() { return cNameAssignment_2; }
722 1452
723 //('(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')')? 1453 //ID
724 public Group getGroup_2() { return cGroup_2; } 1454 public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
725 1455
726 //'(' 1456 //("extends" superclasses+=[NamedElement|QualifiedName] ("," superclasses+=[NamedElement|QualifiedName])*)?
727 public Keyword getLeftParenthesisKeyword_2_0() { return cLeftParenthesisKeyword_2_0; } 1457 public Group getGroup_3() { return cGroup_3; }
728 1458
729 //(parameters+=Parameter (',' parameters+=Parameter)*)? 1459 //"extends"
730 public Group getGroup_2_1() { return cGroup_2_1; } 1460 public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; }
731 1461
732 //parameters+=Parameter 1462 //superclasses+=[NamedElement|QualifiedName]
733 public Assignment getParametersAssignment_2_1_0() { return cParametersAssignment_2_1_0; } 1463 public Assignment getSuperclassesAssignment_3_1() { return cSuperclassesAssignment_3_1; }
734 1464
735 //Parameter 1465 //[NamedElement|QualifiedName]
736 public RuleCall getParametersParameterParserRuleCall_2_1_0_0() { return cParametersParameterParserRuleCall_2_1_0_0; } 1466 public CrossReference getSuperclassesNamedElementCrossReference_3_1_0() { return cSuperclassesNamedElementCrossReference_3_1_0; }
737 1467
738 //(',' parameters+=Parameter)* 1468 //QualifiedName
739 public Group getGroup_2_1_1() { return cGroup_2_1_1; } 1469 public RuleCall getSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1() { return cSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1; }
740 1470
741 //',' 1471 //("," superclasses+=[NamedElement|QualifiedName])*
742 public Keyword getCommaKeyword_2_1_1_0() { return cCommaKeyword_2_1_1_0; } 1472 public Group getGroup_3_2() { return cGroup_3_2; }
743 1473
744 //parameters+=Parameter 1474 //","
745 public Assignment getParametersAssignment_2_1_1_1() { return cParametersAssignment_2_1_1_1; } 1475 public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
746 1476
747 //Parameter 1477 //superclasses+=[NamedElement|QualifiedName]
748 public RuleCall getParametersParameterParserRuleCall_2_1_1_1_0() { return cParametersParameterParserRuleCall_2_1_1_1_0; } 1478 public Assignment getSuperclassesAssignment_3_2_1() { return cSuperclassesAssignment_3_2_1; }
749 1479
750 //')' 1480 //[NamedElement|QualifiedName]
751 public Keyword getRightParenthesisKeyword_2_2() { return cRightParenthesisKeyword_2_2; } 1481 public CrossReference getSuperclassesNamedElementCrossReference_3_2_1_0() { return cSuperclassesNamedElementCrossReference_3_2_1_0; }
752 1482
753 //':-' 1483 //QualifiedName
754 public Keyword getColonHyphenMinusKeyword_3() { return cColonHyphenMinusKeyword_3; } 1484 public RuleCall getSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1() { return cSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1; }
755 1485
756 //'false' | bodies+=PatternBody ('|' bodies+=PatternBody)* 1486 //"{"
757 public Alternatives getAlternatives_4() { return cAlternatives_4; } 1487 public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
758 1488
759 //'false' 1489 //members+=MemberDefinition*
760 public Keyword getFalseKeyword_4_0() { return cFalseKeyword_4_0; } 1490 public Assignment getMembersAssignment_5() { return cMembersAssignment_5; }
761 1491
762 //bodies+=PatternBody ('|' bodies+=PatternBody)* 1492 //MemberDefinition
763 public Group getGroup_4_1() { return cGroup_4_1; } 1493 public RuleCall getMembersMemberDefinitionParserRuleCall_5_0() { return cMembersMemberDefinitionParserRuleCall_5_0; }
764 1494
765 //bodies+=PatternBody 1495 //"}"
766 public Assignment getBodiesAssignment_4_1_0() { return cBodiesAssignment_4_1_0; } 1496 public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
1497 }
1498 public class MemberDefinitionElements extends AbstractParserRuleElementFinder {
1499 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition");
1500 private final Group cGroup = (Group)rule.eContents().get(1);
1501 private final Assignment cContainmentAssignment_0 = (Assignment)cGroup.eContents().get(0);
1502 private final Keyword cContainmentContainsKeyword_0_0 = (Keyword)cContainmentAssignment_0.eContents().get(0);
1503 private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
1504 private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
1505 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1);
1506 private final Assignment cMultiplicityAssignment_2 = (Assignment)cGroup.eContents().get(2);
1507 private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_0 = (RuleCall)cMultiplicityAssignment_2.eContents().get(0);
1508 private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
1509 private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
1510 private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
1511 private final Keyword cOppositeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
1512 private final Assignment cOppositeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
1513 private final CrossReference cOppositeNamedElementCrossReference_4_1_0 = (CrossReference)cOppositeAssignment_4_1.eContents().get(0);
1514 private final RuleCall cOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeNamedElementCrossReference_4_1_0.eContents().get(1);
1515 private final Keyword cSemicolonKeyword_5 = (Keyword)cGroup.eContents().get(5);
1516
1517 //MemberDefinition:
1518 // containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite"
1519 // opposite=[NamedElement|QualifiedName])? ";"?;
1520 @Override public ParserRule getRule() { return rule; }
1521
1522 //containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite"
1523 //opposite=[NamedElement|QualifiedName])? ";"?
1524 public Group getGroup() { return cGroup; }
1525
1526 //containment?="contains"?
1527 public Assignment getContainmentAssignment_0() { return cContainmentAssignment_0; }
1528
1529 //"contains"
1530 public Keyword getContainmentContainsKeyword_0_0() { return cContainmentContainsKeyword_0_0; }
1531
1532 //type=[NamedElement|QualifiedName]
1533 public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }
1534
1535 //[NamedElement|QualifiedName]
1536 public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; }
1537
1538 //QualifiedName
1539 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; }
1540
1541 //multiplicity=Multiplicity?
1542 public Assignment getMultiplicityAssignment_2() { return cMultiplicityAssignment_2; }
1543
1544 //Multiplicity
1545 public RuleCall getMultiplicityMultiplicityParserRuleCall_2_0() { return cMultiplicityMultiplicityParserRuleCall_2_0; }
1546
1547 //name=ID
1548 public Assignment getNameAssignment_3() { return cNameAssignment_3; }
1549
1550 //ID
1551 public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; }
1552
1553 //("opposite" opposite=[NamedElement|QualifiedName])?
1554 public Group getGroup_4() { return cGroup_4; }
1555
1556 //"opposite"
1557 public Keyword getOppositeKeyword_4_0() { return cOppositeKeyword_4_0; }
1558
1559 //opposite=[NamedElement|QualifiedName]
1560 public Assignment getOppositeAssignment_4_1() { return cOppositeAssignment_4_1; }
1561
1562 //[NamedElement|QualifiedName]
1563 public CrossReference getOppositeNamedElementCrossReference_4_1_0() { return cOppositeNamedElementCrossReference_4_1_0; }
1564
1565 //QualifiedName
1566 public RuleCall getOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1() { return cOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1; }
767 1567
768 //PatternBody 1568 //";"?
769 public RuleCall getBodiesPatternBodyParserRuleCall_4_1_0_0() { return cBodiesPatternBodyParserRuleCall_4_1_0_0; } 1569 public Keyword getSemicolonKeyword_5() { return cSemicolonKeyword_5; }
1570 }
1571 public class MultiplicityElements extends AbstractParserRuleElementFinder {
1572 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity");
1573 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1574 private final RuleCall cManyMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1575 private final RuleCall cExactMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1576 private final RuleCall cBoundedMultiplicityParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
770 1577
771 //('|' bodies+=PatternBody)* 1578 //Multiplicity:
772 public Group getGroup_4_1_1() { return cGroup_4_1_1; } 1579 // ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity;
1580 @Override public ParserRule getRule() { return rule; }
773 1581
774 //'|' 1582 //ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity
775 public Keyword getVerticalLineKeyword_4_1_1_0() { return cVerticalLineKeyword_4_1_1_0; } 1583 public Alternatives getAlternatives() { return cAlternatives; }
776 1584
777 //bodies+=PatternBody 1585 //ManyMultiplicity
778 public Assignment getBodiesAssignment_4_1_1_1() { return cBodiesAssignment_4_1_1_1; } 1586 public RuleCall getManyMultiplicityParserRuleCall_0() { return cManyMultiplicityParserRuleCall_0; }
779 1587
780 //PatternBody 1588 //ExactMultiplicity
781 public RuleCall getBodiesPatternBodyParserRuleCall_4_1_1_1_0() { return cBodiesPatternBodyParserRuleCall_4_1_1_1_0; } 1589 public RuleCall getExactMultiplicityParserRuleCall_1() { return cExactMultiplicityParserRuleCall_1; }
782 1590
783 //'.' 1591 //BoundedMultiplicity
784 public Keyword getFullStopKeyword_5() { return cFullStopKeyword_5; } 1592 public RuleCall getBoundedMultiplicityParserRuleCall_2() { return cBoundedMultiplicityParserRuleCall_2; }
785 } 1593 }
786 public class ParameterElements extends AbstractParserRuleElementFinder { 1594 public class ManyMultiplicityElements extends AbstractParserRuleElementFinder {
787 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Parameter"); 1595 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ManyMultiplicity");
788 private final Group cGroup = (Group)rule.eContents().get(1); 1596 private final Group cGroup = (Group)rule.eContents().get(1);
789 private final Assignment cVariableAssignment_0 = (Assignment)cGroup.eContents().get(0); 1597 private final Action cManyMultiplicityAction_0 = (Action)cGroup.eContents().get(0);
790 private final RuleCall cVariableVariableParserRuleCall_0_0 = (RuleCall)cVariableAssignment_0.eContents().get(0); 1598 private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
791 private final Group cGroup_1 = (Group)cGroup.eContents().get(1); 1599 private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
792 private final Keyword cColonKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
793 private final Assignment cTypeAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
794 private final RuleCall cTypeSymbolParserRuleCall_1_1_0 = (RuleCall)cTypeAssignment_1_1.eContents().get(0);
795 1600
796 //Parameter: 1601 //ManyMultiplicity:
797 // variable=Variable (':' type=Symbol)?; 1602 // {ManyMultiplicity} "[" "]";
798 @Override public ParserRule getRule() { return rule; } 1603 @Override public ParserRule getRule() { return rule; }
799 1604
800 //variable=Variable (':' type=Symbol)? 1605 //{ManyMultiplicity} "[" "]"
801 public Group getGroup() { return cGroup; } 1606 public Group getGroup() { return cGroup; }
802 1607
803 //variable=Variable 1608 //{ManyMultiplicity}
804 public Assignment getVariableAssignment_0() { return cVariableAssignment_0; } 1609 public Action getManyMultiplicityAction_0() { return cManyMultiplicityAction_0; }
805 1610
806 //Variable 1611 //"["
807 public RuleCall getVariableVariableParserRuleCall_0_0() { return cVariableVariableParserRuleCall_0_0; } 1612 public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; }
808 1613
809 //(':' type=Symbol)? 1614 //"]"
810 public Group getGroup_1() { return cGroup_1; } 1615 public Keyword getRightSquareBracketKeyword_2() { return cRightSquareBracketKeyword_2; }
1616 }
1617 public class ExactMultiplicityElements extends AbstractParserRuleElementFinder {
1618 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactMultiplicity");
1619 private final Group cGroup = (Group)rule.eContents().get(1);
1620 private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
1621 private final Assignment cMultiplicityAssignment_1 = (Assignment)cGroup.eContents().get(1);
1622 private final RuleCall cMultiplicityUpperMultiplictyParserRuleCall_1_0 = (RuleCall)cMultiplicityAssignment_1.eContents().get(0);
1623 private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
811 1624
812 //':' 1625 //ExactMultiplicity:
813 public Keyword getColonKeyword_1_0() { return cColonKeyword_1_0; } 1626 // "[" multiplicity=UpperMultiplicty "]";
1627 @Override public ParserRule getRule() { return rule; }
1628
1629 //"[" multiplicity=UpperMultiplicty "]"
1630 public Group getGroup() { return cGroup; }
814 1631
815 //type=Symbol 1632 //"["
816 public Assignment getTypeAssignment_1_1() { return cTypeAssignment_1_1; } 1633 public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; }
817 1634
818 //Symbol 1635 //multiplicity=UpperMultiplicty
819 public RuleCall getTypeSymbolParserRuleCall_1_1_0() { return cTypeSymbolParserRuleCall_1_1_0; } 1636 public Assignment getMultiplicityAssignment_1() { return cMultiplicityAssignment_1; }
1637
1638 //UpperMultiplicty
1639 public RuleCall getMultiplicityUpperMultiplictyParserRuleCall_1_0() { return cMultiplicityUpperMultiplictyParserRuleCall_1_0; }
1640
1641 //"]"
1642 public Keyword getRightSquareBracketKeyword_2() { return cRightSquareBracketKeyword_2; }
820 } 1643 }
821 public class PatternBodyElements extends AbstractParserRuleElementFinder { 1644 public class BoundedMultiplicityElements extends AbstractParserRuleElementFinder {
822 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody"); 1645 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BoundedMultiplicity");
823 private final Group cGroup = (Group)rule.eContents().get(1); 1646 private final Group cGroup = (Group)rule.eContents().get(1);
824 private final Action cPatternBodyAction_0 = (Action)cGroup.eContents().get(0); 1647 private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
825 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); 1648 private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1);
826 private final Keyword cTrueKeyword_1_0 = (Keyword)cAlternatives_1.eContents().get(0); 1649 private final RuleCall cLowerBoundINTTerminalRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0);
827 private final Assignment cConstraintsAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1); 1650 private final Keyword cFullStopFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
828 private final RuleCall cConstraintsConstraintParserRuleCall_1_1_0 = (RuleCall)cConstraintsAssignment_1_1.eContents().get(0); 1651 private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3);
829 1652 private final RuleCall cUpperBoundUpperMultiplictyParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0);
830 //PatternBody: 1653 private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
831 // {PatternBody} ('true' | constraints+=Constraint*); 1654
1655 //BoundedMultiplicity:
1656 // "[" lowerBound=INT ".." upperBound=UpperMultiplicty "]";
832 @Override public ParserRule getRule() { return rule; } 1657 @Override public ParserRule getRule() { return rule; }
833 1658
834 //{PatternBody} ('true' | constraints+=Constraint*) 1659 //"[" lowerBound=INT ".." upperBound=UpperMultiplicty "]"
835 public Group getGroup() { return cGroup; } 1660 public Group getGroup() { return cGroup; }
836 1661
837 //{PatternBody} 1662 //"["
838 public Action getPatternBodyAction_0() { return cPatternBodyAction_0; } 1663 public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; }
839 1664
840 //'true' | constraints+=Constraint* 1665 //lowerBound=INT
841 public Alternatives getAlternatives_1() { return cAlternatives_1; } 1666 public Assignment getLowerBoundAssignment_1() { return cLowerBoundAssignment_1; }
842 1667
843 //'true' 1668 //INT
844 public Keyword getTrueKeyword_1_0() { return cTrueKeyword_1_0; } 1669 public RuleCall getLowerBoundINTTerminalRuleCall_1_0() { return cLowerBoundINTTerminalRuleCall_1_0; }
1670
1671 //".."
1672 public Keyword getFullStopFullStopKeyword_2() { return cFullStopFullStopKeyword_2; }
1673
1674 //upperBound=UpperMultiplicty
1675 public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; }
845 1676
846 //constraints+=Constraint* 1677 //UpperMultiplicty
847 public Assignment getConstraintsAssignment_1_1() { return cConstraintsAssignment_1_1; } 1678 public RuleCall getUpperBoundUpperMultiplictyParserRuleCall_3_0() { return cUpperBoundUpperMultiplictyParserRuleCall_3_0; }
848 1679
849 //Constraint 1680 //"]"
850 public RuleCall getConstraintsConstraintParserRuleCall_1_1_0() { return cConstraintsConstraintParserRuleCall_1_1_0; } 1681 public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; }
851 } 1682 }
852 public class PolarityElements extends AbstractParserRuleElementFinder { 1683 public class ScopeDefinitionElements extends AbstractParserRuleElementFinder {
853 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Polarity"); 1684 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ScopeDefinition");
854 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1685 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
855 private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); 1686 private final RuleCall cExactScopeDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
856 private final Action cPositiveAction_0_0 = (Action)cGroup_0.eContents().get(0); 1687 private final RuleCall cBoundedScopeDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
857 private final Keyword cPlusSignKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); 1688 private final RuleCall cLowerBoundedScopeDefinitionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
858 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
859 private final Action cNegativeAction_1_0 = (Action)cGroup_1.eContents().get(0);
860 private final Keyword cHyphenMinusKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1);
861 1689
862 //Polarity: 1690 //ScopeDefinition:
863 // {Positive} '+' | {Negative} '-'; 1691 // ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition;
864 @Override public ParserRule getRule() { return rule; } 1692 @Override public ParserRule getRule() { return rule; }
865 1693
866 //{Positive} '+' | {Negative} '-' 1694 //ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition
867 public Alternatives getAlternatives() { return cAlternatives; } 1695 public Alternatives getAlternatives() { return cAlternatives; }
868 1696
869 //{Positive} '+' 1697 //ExactScopeDefinition
870 public Group getGroup_0() { return cGroup_0; } 1698 public RuleCall getExactScopeDefinitionParserRuleCall_0() { return cExactScopeDefinitionParserRuleCall_0; }
871 1699
872 //{Positive} 1700 //BoundedScopeDefinition
873 public Action getPositiveAction_0_0() { return cPositiveAction_0_0; } 1701 public RuleCall getBoundedScopeDefinitionParserRuleCall_1() { return cBoundedScopeDefinitionParserRuleCall_1; }
874 1702
875 //'+' 1703 //LowerBoundedScopeDefinition
876 public Keyword getPlusSignKeyword_0_1() { return cPlusSignKeyword_0_1; } 1704 public RuleCall getLowerBoundedScopeDefinitionParserRuleCall_2() { return cLowerBoundedScopeDefinitionParserRuleCall_2; }
1705 }
1706 public class ExactScopeDefinitionElements extends AbstractParserRuleElementFinder {
1707 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactScopeDefinition");
1708 private final Group cGroup = (Group)rule.eContents().get(1);
1709 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0);
1710 private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
1711 private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0);
1712 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1);
1713 private final Keyword cEqualsSignEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
1714 private final Assignment cExactScopeAssignment_3 = (Assignment)cGroup.eContents().get(3);
1715 private final RuleCall cExactScopeINTTerminalRuleCall_3_0 = (RuleCall)cExactScopeAssignment_3.eContents().get(0);
1716
1717 //ExactScopeDefinition:
1718 // "scope" type=[NamedElement|QualifiedName] "==" exactScope=INT;
1719 @Override public ParserRule getRule() { return rule; }
877 1720
878 //{Negative} '-' 1721 //"scope" type=[NamedElement|QualifiedName] "==" exactScope=INT
879 public Group getGroup_1() { return cGroup_1; } 1722 public Group getGroup() { return cGroup; }
1723
1724 //"scope"
1725 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; }
1726
1727 //type=[NamedElement|QualifiedName]
1728 public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }
1729
1730 //[NamedElement|QualifiedName]
1731 public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; }
1732
1733 //QualifiedName
1734 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; }
1735
1736 //"=="
1737 public Keyword getEqualsSignEqualsSignKeyword_2() { return cEqualsSignEqualsSignKeyword_2; }
880 1738
881 //{Negative} 1739 //exactScope=INT
882 public Action getNegativeAction_1_0() { return cNegativeAction_1_0; } 1740 public Assignment getExactScopeAssignment_3() { return cExactScopeAssignment_3; }
883 1741
884 //'-' 1742 //INT
885 public Keyword getHyphenMinusKeyword_1_1() { return cHyphenMinusKeyword_1_1; } 1743 public RuleCall getExactScopeINTTerminalRuleCall_3_0() { return cExactScopeINTTerminalRuleCall_3_0; }
886 } 1744 }
887 public class ConstraintElements extends AbstractParserRuleElementFinder { 1745 public class BoundedScopeDefinitionElements extends AbstractParserRuleElementFinder {
888 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Constraint"); 1746 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BoundedScopeDefinition");
889 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1747 private final Group cGroup = (Group)rule.eContents().get(1);
890 private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); 1748 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0);
891 private final Assignment cPolarityAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0); 1749 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
892 private final RuleCall cPolarityPolarityParserRuleCall_0_0_0 = (RuleCall)cPolarityAssignment_0_0.eContents().get(0); 1750 private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
893 private final Assignment cSymbolAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); 1751 private final Group cGroup_1_0_0 = (Group)cGroup_1_0.eContents().get(0);
894 private final RuleCall cSymbolModelSymbolParserRuleCall_0_1_0 = (RuleCall)cSymbolAssignment_0_1.eContents().get(0); 1752 private final Assignment cLowerBoundAssignment_1_0_0_0 = (Assignment)cGroup_1_0_0.eContents().get(0);
895 private final Group cGroup_0_2 = (Group)cGroup_0.eContents().get(2); 1753 private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0_0.eContents().get(0);
896 private final Keyword cLeftParenthesisKeyword_0_2_0 = (Keyword)cGroup_0_2.eContents().get(0); 1754 private final Keyword cLessThanSignEqualsSignKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1);
897 private final Assignment cParamsAssignment_0_2_1 = (Assignment)cGroup_0_2.eContents().get(1); 1755 private final Assignment cTypeAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1);
898 private final RuleCall cParamsLiteralParserRuleCall_0_2_1_0 = (RuleCall)cParamsAssignment_0_2_1.eContents().get(0); 1756 private final CrossReference cTypeNamedElementCrossReference_1_0_1_0 = (CrossReference)cTypeAssignment_1_0_1.eContents().get(0);
899 private final Group cGroup_0_2_2 = (Group)cGroup_0_2.eContents().get(2); 1757 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0_1_0.eContents().get(1);
900 private final Keyword cCommaKeyword_0_2_2_0 = (Keyword)cGroup_0_2_2.eContents().get(0); 1758 private final Keyword cLessThanSignEqualsSignKeyword_1_0_2 = (Keyword)cGroup_1_0.eContents().get(2);
901 private final Assignment cParamsAssignment_0_2_2_1 = (Assignment)cGroup_0_2_2.eContents().get(1); 1759 private final Assignment cUpperBoundAssignment_1_0_3 = (Assignment)cGroup_1_0.eContents().get(3);
902 private final RuleCall cParamsLiteralParserRuleCall_0_2_2_1_0 = (RuleCall)cParamsAssignment_0_2_2_1.eContents().get(0); 1760 private final RuleCall cUpperBoundINTTerminalRuleCall_1_0_3_0 = (RuleCall)cUpperBoundAssignment_1_0_3.eContents().get(0);
903 private final Keyword cRightParenthesisKeyword_0_2_3 = (Keyword)cGroup_0_2.eContents().get(3); 1761 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
904 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); 1762 private final Assignment cUpperBoundAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0);
905 private final Assignment cClosureTypeAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0); 1763 private final RuleCall cUpperBoundINTTerminalRuleCall_1_1_0_0 = (RuleCall)cUpperBoundAssignment_1_1_0.eContents().get(0);
906 private final RuleCall cClosureTypeClosureTypeParserRuleCall_1_0_0 = (RuleCall)cClosureTypeAssignment_1_0.eContents().get(0); 1764 private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
907 private final Keyword cLeftParenthesisKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); 1765 private final Assignment cTypeAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
908 private final Assignment cParamsAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); 1766 private final CrossReference cTypeNamedElementCrossReference_1_1_2_0 = (CrossReference)cTypeAssignment_1_1_2.eContents().get(0);
909 private final RuleCall cParamsLiteralParserRuleCall_1_2_0 = (RuleCall)cParamsAssignment_1_2.eContents().get(0); 1767 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_1_2_0.eContents().get(1);
910 private final Group cGroup_1_3 = (Group)cGroup_1.eContents().get(3); 1768 private final Group cGroup_1_1_3 = (Group)cGroup_1_1.eContents().get(3);
911 private final Keyword cCommaKeyword_1_3_0 = (Keyword)cGroup_1_3.eContents().get(0); 1769 private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_3_0 = (Keyword)cGroup_1_1_3.eContents().get(0);
912 private final Assignment cParamsAssignment_1_3_1 = (Assignment)cGroup_1_3.eContents().get(1); 1770 private final Assignment cLowerBoundAssignment_1_1_3_1 = (Assignment)cGroup_1_1_3.eContents().get(1);
913 private final RuleCall cParamsLiteralParserRuleCall_1_3_1_0 = (RuleCall)cParamsAssignment_1_3_1.eContents().get(0); 1771 private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_3_1_0 = (RuleCall)cLowerBoundAssignment_1_1_3_1.eContents().get(0);
914 private final Keyword cRightParenthesisKeyword_1_4 = (Keyword)cGroup_1.eContents().get(4); 1772 private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
915 1773
916 //Constraint: 1774 //BoundedScopeDefinition:
917 // polarity=Polarity? symbol=ModelSymbol ('(' params+=Literal? (',' params+=Literal)* ')')? | closureType=ClosureType 1775 // "scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">="
918 // '(' params+=Literal? (',' params+=Literal)* ')'; 1776 // type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) ".";
919 @Override public ParserRule getRule() { return rule; } 1777 @Override public ParserRule getRule() { return rule; }
920 1778
921 //polarity=Polarity? symbol=ModelSymbol ('(' params+=Literal? (',' params+=Literal)* ')')? | closureType=ClosureType '(' 1779 //"scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">="
922 //params+=Literal? (',' params+=Literal)* ')' 1780 //type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) "."
923 public Alternatives getAlternatives() { return cAlternatives; } 1781 public Group getGroup() { return cGroup; }
924 1782
925 //polarity=Polarity? symbol=ModelSymbol ('(' params+=Literal? (',' params+=Literal)* ')')? 1783 //"scope"
926 public Group getGroup_0() { return cGroup_0; } 1784 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; }
927 1785
928 //polarity=Polarity? 1786 //((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">="
929 public Assignment getPolarityAssignment_0_0() { return cPolarityAssignment_0_0; } 1787 //type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?)
1788 public Alternatives getAlternatives_1() { return cAlternatives_1; }
930 1789
931 //Polarity 1790 //(lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT
932 public RuleCall getPolarityPolarityParserRuleCall_0_0_0() { return cPolarityPolarityParserRuleCall_0_0_0; } 1791 public Group getGroup_1_0() { return cGroup_1_0; }
933 1792
934 //symbol=ModelSymbol 1793 //(lowerBound=INT "<=")?
935 public Assignment getSymbolAssignment_0_1() { return cSymbolAssignment_0_1; } 1794 public Group getGroup_1_0_0() { return cGroup_1_0_0; }
936 1795
937 //ModelSymbol 1796 //lowerBound=INT
938 public RuleCall getSymbolModelSymbolParserRuleCall_0_1_0() { return cSymbolModelSymbolParserRuleCall_0_1_0; } 1797 public Assignment getLowerBoundAssignment_1_0_0_0() { return cLowerBoundAssignment_1_0_0_0; }
939 1798
940 //('(' params+=Literal? (',' params+=Literal)* ')')? 1799 //INT
941 public Group getGroup_0_2() { return cGroup_0_2; } 1800 public RuleCall getLowerBoundINTTerminalRuleCall_1_0_0_0_0() { return cLowerBoundINTTerminalRuleCall_1_0_0_0_0; }
942 1801
943 //'(' 1802 //"<="
944 public Keyword getLeftParenthesisKeyword_0_2_0() { return cLeftParenthesisKeyword_0_2_0; } 1803 public Keyword getLessThanSignEqualsSignKeyword_1_0_0_1() { return cLessThanSignEqualsSignKeyword_1_0_0_1; }
945 1804
946 //params+=Literal? 1805 //type=[NamedElement|QualifiedName]
947 public Assignment getParamsAssignment_0_2_1() { return cParamsAssignment_0_2_1; } 1806 public Assignment getTypeAssignment_1_0_1() { return cTypeAssignment_1_0_1; }
948 1807
949 //Literal 1808 //[NamedElement|QualifiedName]
950 public RuleCall getParamsLiteralParserRuleCall_0_2_1_0() { return cParamsLiteralParserRuleCall_0_2_1_0; } 1809 public CrossReference getTypeNamedElementCrossReference_1_0_1_0() { return cTypeNamedElementCrossReference_1_0_1_0; }
951 1810
952 //(',' params+=Literal)* 1811 //QualifiedName
953 public Group getGroup_0_2_2() { return cGroup_0_2_2; } 1812 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1; }
954 1813
955 //',' 1814 //"<="
956 public Keyword getCommaKeyword_0_2_2_0() { return cCommaKeyword_0_2_2_0; } 1815 public Keyword getLessThanSignEqualsSignKeyword_1_0_2() { return cLessThanSignEqualsSignKeyword_1_0_2; }
957 1816
958 //params+=Literal 1817 //upperBound=INT
959 public Assignment getParamsAssignment_0_2_2_1() { return cParamsAssignment_0_2_2_1; } 1818 public Assignment getUpperBoundAssignment_1_0_3() { return cUpperBoundAssignment_1_0_3; }
960 1819
961 //Literal 1820 //INT
962 public RuleCall getParamsLiteralParserRuleCall_0_2_2_1_0() { return cParamsLiteralParserRuleCall_0_2_2_1_0; } 1821 public RuleCall getUpperBoundINTTerminalRuleCall_1_0_3_0() { return cUpperBoundINTTerminalRuleCall_1_0_3_0; }
963 1822
964 //')' 1823 //upperBound=INT ">=" type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?
965 public Keyword getRightParenthesisKeyword_0_2_3() { return cRightParenthesisKeyword_0_2_3; } 1824 public Group getGroup_1_1() { return cGroup_1_1; }
966 1825
967 //closureType=ClosureType '(' params+=Literal? (',' params+=Literal)* ')' 1826 //upperBound=INT
968 public Group getGroup_1() { return cGroup_1; } 1827 public Assignment getUpperBoundAssignment_1_1_0() { return cUpperBoundAssignment_1_1_0; }
969 1828
970 //closureType=ClosureType 1829 //INT
971 public Assignment getClosureTypeAssignment_1_0() { return cClosureTypeAssignment_1_0; } 1830 public RuleCall getUpperBoundINTTerminalRuleCall_1_1_0_0() { return cUpperBoundINTTerminalRuleCall_1_1_0_0; }
972 1831
973 //ClosureType 1832 //">="
974 public RuleCall getClosureTypeClosureTypeParserRuleCall_1_0_0() { return cClosureTypeClosureTypeParserRuleCall_1_0_0; } 1833 public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; }
975 1834
976 //'(' 1835 //type=[NamedElement|QualifiedName]
977 public Keyword getLeftParenthesisKeyword_1_1() { return cLeftParenthesisKeyword_1_1; } 1836 public Assignment getTypeAssignment_1_1_2() { return cTypeAssignment_1_1_2; }
978 1837
979 //params+=Literal? 1838 //[NamedElement|QualifiedName]
980 public Assignment getParamsAssignment_1_2() { return cParamsAssignment_1_2; } 1839 public CrossReference getTypeNamedElementCrossReference_1_1_2_0() { return cTypeNamedElementCrossReference_1_1_2_0; }
981 1840
982 //Literal 1841 //QualifiedName
983 public RuleCall getParamsLiteralParserRuleCall_1_2_0() { return cParamsLiteralParserRuleCall_1_2_0; } 1842 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1; }
984 1843
985 //(',' params+=Literal)* 1844 //(">=" lowerBound=INT)?
986 public Group getGroup_1_3() { return cGroup_1_3; } 1845 public Group getGroup_1_1_3() { return cGroup_1_1_3; }
987 1846
988 //',' 1847 //">="
989 public Keyword getCommaKeyword_1_3_0() { return cCommaKeyword_1_3_0; } 1848 public Keyword getGreaterThanSignEqualsSignKeyword_1_1_3_0() { return cGreaterThanSignEqualsSignKeyword_1_1_3_0; }
990 1849
991 //params+=Literal 1850 //lowerBound=INT
992 public Assignment getParamsAssignment_1_3_1() { return cParamsAssignment_1_3_1; } 1851 public Assignment getLowerBoundAssignment_1_1_3_1() { return cLowerBoundAssignment_1_1_3_1; }
993 1852
994 //Literal 1853 //INT
995 public RuleCall getParamsLiteralParserRuleCall_1_3_1_0() { return cParamsLiteralParserRuleCall_1_3_1_0; } 1854 public RuleCall getLowerBoundINTTerminalRuleCall_1_1_3_1_0() { return cLowerBoundINTTerminalRuleCall_1_1_3_1_0; }
996 1855
997 //')' 1856 //"."
998 public Keyword getRightParenthesisKeyword_1_4() { return cRightParenthesisKeyword_1_4; } 1857 public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; }
999 } 1858 }
1000 public class ClosureTypeElements extends AbstractParserRuleElementFinder { 1859 public class LowerBoundedScopeDefinitionElements extends AbstractParserRuleElementFinder {
1001 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClosureType"); 1860 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LowerBoundedScopeDefinition");
1002 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 1861 private final Group cGroup = (Group)rule.eContents().get(1);
1003 private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); 1862 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0);
1004 private final Action cReflexiveClosureAction_0_0 = (Action)cGroup_0.eContents().get(0); 1863 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
1005 private final Keyword cAsteriskKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); 1864 private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
1006 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); 1865 private final Assignment cLowerBoundAssignment_1_0_0 = (Assignment)cGroup_1_0.eContents().get(0);
1007 private final Action cIrreflexiveClosureAction_1_0 = (Action)cGroup_1.eContents().get(0); 1866 private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0.eContents().get(0);
1008 private final Keyword cPlusSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); 1867 private final Keyword cLessThanSignEqualsSignKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1);
1868 private final Assignment cTypeAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2);
1869 private final CrossReference cTypeNamedElementCrossReference_1_0_2_0 = (CrossReference)cTypeAssignment_1_0_2.eContents().get(0);
1870 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0_2_0.eContents().get(1);
1871 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
1872 private final Assignment cTypeAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0);
1873 private final CrossReference cTypeNamedElementCrossReference_1_1_0_0 = (CrossReference)cTypeAssignment_1_1_0.eContents().get(0);
1874 private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_1_0_0.eContents().get(1);
1875 private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
1876 private final Assignment cLowerBoundAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2);
1877 private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_2_0 = (RuleCall)cLowerBoundAssignment_1_1_2.eContents().get(0);
1878 private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2);
1009 1879
1010 //ClosureType: 1880 //LowerBoundedScopeDefinition:
1011 // {ReflexiveClosure} '*' | {IrreflexiveClosure} '+'; 1881 // "scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">="
1882 // lowerBound=INT) ".";
1012 @Override public ParserRule getRule() { return rule; } 1883 @Override public ParserRule getRule() { return rule; }
1013 1884
1014 //{ReflexiveClosure} '*' | {IrreflexiveClosure} '+' 1885 //"scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" lowerBound=INT)
1015 public Alternatives getAlternatives() { return cAlternatives; } 1886 //"."
1887 public Group getGroup() { return cGroup; }
1016 1888
1017 //{ReflexiveClosure} '*' 1889 //"scope"
1018 public Group getGroup_0() { return cGroup_0; } 1890 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; }
1019 1891
1020 //{ReflexiveClosure} 1892 //(lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" lowerBound=INT)
1021 public Action getReflexiveClosureAction_0_0() { return cReflexiveClosureAction_0_0; } 1893 public Alternatives getAlternatives_1() { return cAlternatives_1; }
1022 1894
1023 //'*' 1895 //lowerBound=INT "<=" type=[NamedElement|QualifiedName]
1024 public Keyword getAsteriskKeyword_0_1() { return cAsteriskKeyword_0_1; } 1896 public Group getGroup_1_0() { return cGroup_1_0; }
1025 1897
1026 //{IrreflexiveClosure} '+' 1898 //lowerBound=INT
1027 public Group getGroup_1() { return cGroup_1; } 1899 public Assignment getLowerBoundAssignment_1_0_0() { return cLowerBoundAssignment_1_0_0; }
1028 1900
1029 //{IrreflexiveClosure} 1901 //INT
1030 public Action getIrreflexiveClosureAction_1_0() { return cIrreflexiveClosureAction_1_0; } 1902 public RuleCall getLowerBoundINTTerminalRuleCall_1_0_0_0() { return cLowerBoundINTTerminalRuleCall_1_0_0_0; }
1031 1903
1032 //'+' 1904 //"<="
1033 public Keyword getPlusSignKeyword_1_1() { return cPlusSignKeyword_1_1; } 1905 public Keyword getLessThanSignEqualsSignKeyword_1_0_1() { return cLessThanSignEqualsSignKeyword_1_0_1; }
1034 }
1035 public class LiteralElements extends AbstractParserRuleElementFinder {
1036 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Literal");
1037 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1038 private final RuleCall cVariableParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1039 private final RuleCall cDataObjectParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1040 private final RuleCall cNamedObjectParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
1041 1906
1042 //Literal: 1907 //type=[NamedElement|QualifiedName]
1043 // Variable | DataObject | NamedObject; 1908 public Assignment getTypeAssignment_1_0_2() { return cTypeAssignment_1_0_2; }
1044 @Override public ParserRule getRule() { return rule; }
1045 1909
1046 //Variable | DataObject | NamedObject 1910 //[NamedElement|QualifiedName]
1047 public Alternatives getAlternatives() { return cAlternatives; } 1911 public CrossReference getTypeNamedElementCrossReference_1_0_2_0() { return cTypeNamedElementCrossReference_1_0_2_0; }
1048 1912
1049 //Variable 1913 //QualifiedName
1050 public RuleCall getVariableParserRuleCall_0() { return cVariableParserRuleCall_0; } 1914 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1; }
1051 1915
1052 //DataObject 1916 //type=[NamedElement|QualifiedName] ">=" lowerBound=INT
1053 public RuleCall getDataObjectParserRuleCall_1() { return cDataObjectParserRuleCall_1; } 1917 public Group getGroup_1_1() { return cGroup_1_1; }
1054 1918
1055 //NamedObject 1919 //type=[NamedElement|QualifiedName]
1056 public RuleCall getNamedObjectParserRuleCall_2() { return cNamedObjectParserRuleCall_2; } 1920 public Assignment getTypeAssignment_1_1_0() { return cTypeAssignment_1_1_0; }
1057 }
1058 public class VariableElements extends AbstractParserRuleElementFinder {
1059 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Variable");
1060 private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
1061 private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
1062 1921
1063 //Variable: 1922 //[NamedElement|QualifiedName]
1064 // name=ID; 1923 public CrossReference getTypeNamedElementCrossReference_1_1_0_0() { return cTypeNamedElementCrossReference_1_1_0_0; }
1065 @Override public ParserRule getRule() { return rule; }
1066 1924
1067 //name=ID 1925 //QualifiedName
1068 public Assignment getNameAssignment() { return cNameAssignment; } 1926 public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1; }
1069 1927
1070 //ID 1928 //">="
1071 public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } 1929 public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; }
1930
1931 //lowerBound=INT
1932 public Assignment getLowerBoundAssignment_1_1_2() { return cLowerBoundAssignment_1_1_2; }
1933
1934 //INT
1935 public RuleCall getLowerBoundINTTerminalRuleCall_1_1_2_0() { return cLowerBoundINTTerminalRuleCall_1_1_2_0; }
1936
1937 //"."
1938 public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; }
1072 } 1939 }
1073 public class AllInstancesElements extends AbstractParserRuleElementFinder { 1940 public class ObjectiveDefinitionElements extends AbstractParserRuleElementFinder {
1074 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AllInstances"); 1941 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveDefinition");
1075 private final Group cGroup = (Group)rule.eContents().get(1); 1942 private final Group cGroup = (Group)rule.eContents().get(1);
1076 private final Keyword cColonKeyword_0 = (Keyword)cGroup.eContents().get(0); 1943 private final Assignment cKindAssignment_0 = (Assignment)cGroup.eContents().get(0);
1077 private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1); 1944 private final RuleCall cKindObjectiveKindEnumRuleCall_0_0 = (RuleCall)cKindAssignment_0.eContents().get(0);
1078 private final RuleCall cSymbolSymbolParserRuleCall_1_0 = (RuleCall)cSymbolAssignment_1.eContents().get(0); 1945 private final Assignment cObjectiveAssignment_1 = (Assignment)cGroup.eContents().get(1);
1079 1946 private final RuleCall cObjectiveExpressionParserRuleCall_1_0 = (RuleCall)cObjectiveAssignment_1.eContents().get(0);
1080 ///////////////////// 1947
1081 //// Complex Interpretation grammar 1948 //ObjectiveDefinition:
1082 ///////////////////// 1949 // kind=ObjectiveKind objective=Expression;
1083 //AllInstances:
1084 // ':' symbol=Symbol;
1085 @Override public ParserRule getRule() { return rule; } 1950 @Override public ParserRule getRule() { return rule; }
1086 1951
1087 //':' symbol=Symbol 1952 //kind=ObjectiveKind objective=Expression
1088 public Group getGroup() { return cGroup; } 1953 public Group getGroup() { return cGroup; }
1089 1954
1090 //':' 1955 //kind=ObjectiveKind
1091 public Keyword getColonKeyword_0() { return cColonKeyword_0; } 1956 public Assignment getKindAssignment_0() { return cKindAssignment_0; }
1092 1957
1093 //symbol=Symbol 1958 //ObjectiveKind
1094 public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; } 1959 public RuleCall getKindObjectiveKindEnumRuleCall_0_0() { return cKindObjectiveKindEnumRuleCall_0_0; }
1095 1960
1096 //Symbol 1961 //objective=Expression
1097 public RuleCall getSymbolSymbolParserRuleCall_1_0() { return cSymbolSymbolParserRuleCall_1_0; } 1962 public Assignment getObjectiveAssignment_1() { return cObjectiveAssignment_1; }
1963
1964 //Expression
1965 public RuleCall getObjectiveExpressionParserRuleCall_1_0() { return cObjectiveExpressionParserRuleCall_1_0; }
1098 } 1966 }
1099 public class AllObjectsElements extends AbstractParserRuleElementFinder { 1967 public class UpperMultiplictyElements extends AbstractParserRuleElementFinder {
1100 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AllObjects"); 1968 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty");
1101 private final Group cGroup = (Group)rule.eContents().get(1); 1969 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1102 private final Action cAllObjectsAction_0 = (Action)cGroup.eContents().get(0); 1970 private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1103 private final Keyword cAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1); 1971 private final Keyword cAsteriskKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
1104 1972
1105 //AllObjects: 1973 //UpperMultiplicty ecore::EInt:
1106 // {AllObjects} '*'; 1974 // INT | "*";
1107 @Override public ParserRule getRule() { return rule; } 1975 @Override public ParserRule getRule() { return rule; }
1108 1976
1109 //{AllObjects} '*' 1977 //INT | "*"
1110 public Group getGroup() { return cGroup; } 1978 public Alternatives getAlternatives() { return cAlternatives; }
1111 1979
1112 //{AllObjects} 1980 //INT
1113 public Action getAllObjectsAction_0() { return cAllObjectsAction_0; } 1981 public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
1114 1982
1115 //'*' 1983 //"*"
1116 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } 1984 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; }
1117 } 1985 }
1118 public class DefaultInterpretationElements extends AbstractParserRuleElementFinder { 1986 public class RealElements extends AbstractParserRuleElementFinder {
1119 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DefaultInterpretation"); 1987 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Real");
1120 private final Group cGroup = (Group)rule.eContents().get(1); 1988 private final Group cGroup = (Group)rule.eContents().get(1);
1121 private final Keyword cDefaultKeyword_0 = (Keyword)cGroup.eContents().get(0); 1989 private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
1122 private final Assignment cInterpretationAssignment_1 = (Assignment)cGroup.eContents().get(1); 1990 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
1123 private final RuleCall cInterpretationBasicInterpretationParserRuleCall_1_0 = (RuleCall)cInterpretationAssignment_1.eContents().get(0); 1991 private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
1124 1992 private final RuleCall cINTTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
1125 ///////////////////// 1993
1126 //// Defaul Interpretation grammar 1994 //Real ecore::EBigDecimal hidden():
1127 ///////////////////// 1995 // INT ("." INT)?;
1128 //DefaultInterpretation:
1129 // 'default' interpretation=BasicInterpretation;
1130 @Override public ParserRule getRule() { return rule; } 1996 @Override public ParserRule getRule() { return rule; }
1131 1997
1132 //'default' interpretation=BasicInterpretation 1998 //INT ("." INT)?
1133 public Group getGroup() { return cGroup; } 1999 public Group getGroup() { return cGroup; }
1134 2000
1135 //'default' 2001 //INT
1136 public Keyword getDefaultKeyword_0() { return cDefaultKeyword_0; } 2002 public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
2003
2004 //("." INT)?
2005 public Group getGroup_1() { return cGroup_1; }
1137 2006
1138 //interpretation=BasicInterpretation 2007 //"."
1139 public Assignment getInterpretationAssignment_1() { return cInterpretationAssignment_1; } 2008 public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
1140 2009
1141 //BasicInterpretation 2010 //INT
1142 public RuleCall getInterpretationBasicInterpretationParserRuleCall_1_0() { return cInterpretationBasicInterpretationParserRuleCall_1_0; } 2011 public RuleCall getINTTerminalRuleCall_1_1() { return cINTTerminalRuleCall_1_1; }
1143 } 2012 }
1144 public class CDInterpretationElements extends AbstractParserRuleElementFinder { 2013 public class QualifiedNameElements extends AbstractParserRuleElementFinder {
1145 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.CDInterpretation"); 2014 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName");
1146 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); 2015 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1147 private final RuleCall cClassInterpretationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 2016 private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0);
1148 private final RuleCall cEnumInterpretationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 2017 private final RuleCall cIDTerminalRuleCall_0_0 = (RuleCall)cGroup_0.eContents().get(0);
1149 private final RuleCall cGlobalRelationInterpretationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 2018 private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1);
1150 2019 private final Keyword cFullStopKeyword_0_1_0 = (Keyword)cGroup_0_1.eContents().get(0);
1151 ///////////////////// 2020 private final RuleCall cIDTerminalRuleCall_0_1_1 = (RuleCall)cGroup_0_1.eContents().get(1);
1152 //// Advanced Class-Diagram interpretations 2021 private final RuleCall cQUOTED_IDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1153 ///////////////////// 2022
1154 //CDInterpretation: 2023 //QualifiedName hidden():
1155 // ClassInterpretation | EnumInterpretation | GlobalRelationInterpretation; 2024 // ID ("." ID)* | QUOTED_ID;
1156 @Override public ParserRule getRule() { return rule; } 2025 @Override public ParserRule getRule() { return rule; }
1157 2026
1158 //ClassInterpretation | EnumInterpretation | GlobalRelationInterpretation 2027 //ID ("." ID)* | QUOTED_ID
1159 public Alternatives getAlternatives() { return cAlternatives; } 2028 public Alternatives getAlternatives() { return cAlternatives; }
1160 2029
1161 //ClassInterpretation 2030 //ID ("." ID)*
1162 public RuleCall getClassInterpretationParserRuleCall_0() { return cClassInterpretationParserRuleCall_0; } 2031 public Group getGroup_0() { return cGroup_0; }
2032
2033 //ID
2034 public RuleCall getIDTerminalRuleCall_0_0() { return cIDTerminalRuleCall_0_0; }
2035
2036 //("." ID)*
2037 public Group getGroup_0_1() { return cGroup_0_1; }
2038
2039 //"."
2040 public Keyword getFullStopKeyword_0_1_0() { return cFullStopKeyword_0_1_0; }
1163 2041
1164 //EnumInterpretation 2042 //ID
1165 public RuleCall getEnumInterpretationParserRuleCall_1() { return cEnumInterpretationParserRuleCall_1; } 2043 public RuleCall getIDTerminalRuleCall_0_1_1() { return cIDTerminalRuleCall_0_1_1; }
1166 2044
1167 //GlobalRelationInterpretation 2045 //QUOTED_ID
1168 public RuleCall getGlobalRelationInterpretationParserRuleCall_2() { return cGlobalRelationInterpretationParserRuleCall_2; } 2046 public RuleCall getQUOTED_IDTerminalRuleCall_1() { return cQUOTED_IDTerminalRuleCall_1; }
1169 } 2047 }
1170 public class ClassInterpretationElements extends AbstractParserRuleElementFinder { 2048 public class NamedElementElements extends AbstractParserRuleElementFinder {
1171 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClassInterpretation"); 2049 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NamedElement");
1172 private final Group cGroup = (Group)rule.eContents().get(1); 2050 private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
1173 private final Assignment cAbstractAssignment_0 = (Assignment)cGroup.eContents().get(0); 2051 private final RuleCall cNameQualifiedNameParserRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
1174 private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0);
1175 private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1);
1176 private final Assignment cSymbolAssignment_2 = (Assignment)cGroup.eContents().get(2);
1177 private final RuleCall cSymbolModelSymbolParserRuleCall_2_0 = (RuleCall)cSymbolAssignment_2.eContents().get(0);
1178 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
1179 private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
1180 private final Assignment cSupertypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
1181 private final RuleCall cSupertypesModelSymbolParserRuleCall_3_1_0 = (RuleCall)cSupertypesAssignment_3_1.eContents().get(0);
1182 private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
1183 private final Assignment cFieltAssignment_5 = (Assignment)cGroup.eContents().get(5);
1184 private final RuleCall cFieltFieldRelationInterpretationParserRuleCall_5_0 = (RuleCall)cFieltAssignment_5.eContents().get(0);
1185 private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
1186 2052
1187 //ClassInterpretation: 2053 //NamedElement:
1188 // abstract?='abstract'? 'class' symbol=ModelSymbol ('extends' supertypes+=ModelSymbol+)? '{' 2054 // name=QualifiedName;
1189 // fielt+=FieldRelationInterpretation*
1190 // '}';
1191 @Override public ParserRule getRule() { return rule; } 2055 @Override public ParserRule getRule() { return rule; }
1192 2056
1193 //abstract?='abstract'? 'class' symbol=ModelSymbol ('extends' supertypes+=ModelSymbol+)? '{' 2057 //name=QualifiedName
1194 //fielt+=FieldRelationInterpretation* '}' 2058 public Assignment getNameAssignment() { return cNameAssignment; }
1195 public Group getGroup() { return cGroup; }
1196 2059
1197 //abstract?='abstract'? 2060 //QualifiedName
1198 public Assignment getAbstractAssignment_0() { return cAbstractAssignment_0; } 2061 public RuleCall getNameQualifiedNameParserRuleCall_0() { return cNameQualifiedNameParserRuleCall_0; }
2062 }
2063
2064 public class MetricTypeElements extends AbstractEnumRuleElementFinder {
2065 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MetricType");
2066 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2067 private final EnumLiteralDeclaration cINTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2068 private final Keyword cINTIntKeyword_0_0 = (Keyword)cINTEnumLiteralDeclaration_0.eContents().get(0);
2069 private final EnumLiteralDeclaration cREALEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2070 private final Keyword cREALRealKeyword_1_0 = (Keyword)cREALEnumLiteralDeclaration_1.eContents().get(0);
1199 2071
1200 //'abstract' 2072 //enum MetricType:
1201 public Keyword getAbstractAbstractKeyword_0_0() { return cAbstractAbstractKeyword_0_0; } 2073 // INT="int" | REAL="real";
2074 public EnumRule getRule() { return rule; }
1202 2075
1203 //'class' 2076 //INT="int" | REAL="real"
1204 public Keyword getClassKeyword_1() { return cClassKeyword_1; } 2077 public Alternatives getAlternatives() { return cAlternatives; }
1205 2078
1206 //symbol=ModelSymbol 2079 //INT="int"
1207 public Assignment getSymbolAssignment_2() { return cSymbolAssignment_2; } 2080 public EnumLiteralDeclaration getINTEnumLiteralDeclaration_0() { return cINTEnumLiteralDeclaration_0; }
1208 2081
1209 //ModelSymbol 2082 //"int"
1210 public RuleCall getSymbolModelSymbolParserRuleCall_2_0() { return cSymbolModelSymbolParserRuleCall_2_0; } 2083 public Keyword getINTIntKeyword_0_0() { return cINTIntKeyword_0_0; }
1211 2084
1212 //('extends' supertypes+=ModelSymbol+)? 2085 //REAL="real"
1213 public Group getGroup_3() { return cGroup_3; } 2086 public EnumLiteralDeclaration getREALEnumLiteralDeclaration_1() { return cREALEnumLiteralDeclaration_1; }
1214 2087
1215 //'extends' 2088 //"real"
1216 public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; } 2089 public Keyword getREALRealKeyword_1_0() { return cREALRealKeyword_1_0; }
2090 }
2091 public class BinaryOperatorElements extends AbstractEnumRuleElementFinder {
2092 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BinaryOperator");
2093 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2094 private final EnumLiteralDeclaration cEQEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2095 private final Keyword cEQEQKeyword_0_0 = (Keyword)cEQEnumLiteralDeclaration_0.eContents().get(0);
2096 private final EnumLiteralDeclaration cNOT_EQEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2097 private final Keyword cNOT_EQNOT_EQKeyword_1_0 = (Keyword)cNOT_EQEnumLiteralDeclaration_1.eContents().get(0);
2098 private final EnumLiteralDeclaration cLESSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
2099 private final Keyword cLESSLESSKeyword_2_0 = (Keyword)cLESSEnumLiteralDeclaration_2.eContents().get(0);
2100 private final EnumLiteralDeclaration cLESS_EQEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
2101 private final Keyword cLESS_EQLESS_EQKeyword_3_0 = (Keyword)cLESS_EQEnumLiteralDeclaration_3.eContents().get(0);
2102 private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
2103 private final Keyword cGREATERGREATERKeyword_4_0 = (Keyword)cGREATEREnumLiteralDeclaration_4.eContents().get(0);
2104 private final EnumLiteralDeclaration cGREATER_EQEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
2105 private final Keyword cGREATER_EQGREATER_EQKeyword_5_0 = (Keyword)cGREATER_EQEnumLiteralDeclaration_5.eContents().get(0);
2106 private final EnumLiteralDeclaration cINEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
2107 private final Keyword cININKeyword_6_0 = (Keyword)cINEnumLiteralDeclaration_6.eContents().get(0);
2108 private final EnumLiteralDeclaration cADDEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
2109 private final Keyword cADDADDKeyword_7_0 = (Keyword)cADDEnumLiteralDeclaration_7.eContents().get(0);
2110 private final EnumLiteralDeclaration cSUBEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
2111 private final Keyword cSUBSUBKeyword_8_0 = (Keyword)cSUBEnumLiteralDeclaration_8.eContents().get(0);
2112 private final EnumLiteralDeclaration cMULEnumLiteralDeclaration_9 = (EnumLiteralDeclaration)cAlternatives.eContents().get(9);
2113 private final Keyword cMULMULKeyword_9_0 = (Keyword)cMULEnumLiteralDeclaration_9.eContents().get(0);
2114 private final EnumLiteralDeclaration cDIVEnumLiteralDeclaration_10 = (EnumLiteralDeclaration)cAlternatives.eContents().get(10);
2115 private final Keyword cDIVDIVKeyword_10_0 = (Keyword)cDIVEnumLiteralDeclaration_10.eContents().get(0);
2116 private final EnumLiteralDeclaration cPOWEnumLiteralDeclaration_11 = (EnumLiteralDeclaration)cAlternatives.eContents().get(11);
2117 private final Keyword cPOWPOWKeyword_11_0 = (Keyword)cPOWEnumLiteralDeclaration_11.eContents().get(0);
2118
2119 //enum BinaryOperator:
2120 // EQ | NOT_EQ | LESS | LESS_EQ | GREATER | GREATER_EQ | IN | ADD | SUB | MUL | DIV | POW;
2121 public EnumRule getRule() { return rule; }
2122
2123 //EQ | NOT_EQ | LESS | LESS_EQ | GREATER | GREATER_EQ | IN | ADD | SUB | MUL | DIV | POW
2124 public Alternatives getAlternatives() { return cAlternatives; }
1217 2125
1218 //supertypes+=ModelSymbol+ 2126 //EQ
1219 public Assignment getSupertypesAssignment_3_1() { return cSupertypesAssignment_3_1; } 2127 public EnumLiteralDeclaration getEQEnumLiteralDeclaration_0() { return cEQEnumLiteralDeclaration_0; }
1220 2128
1221 //ModelSymbol 2129 //"EQ"
1222 public RuleCall getSupertypesModelSymbolParserRuleCall_3_1_0() { return cSupertypesModelSymbolParserRuleCall_3_1_0; } 2130 public Keyword getEQEQKeyword_0_0() { return cEQEQKeyword_0_0; }
1223 2131
1224 //'{' 2132 //NOT_EQ
1225 public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } 2133 public EnumLiteralDeclaration getNOT_EQEnumLiteralDeclaration_1() { return cNOT_EQEnumLiteralDeclaration_1; }
1226 2134
1227 //fielt+=FieldRelationInterpretation* 2135 //"NOT_EQ"
1228 public Assignment getFieltAssignment_5() { return cFieltAssignment_5; } 2136 public Keyword getNOT_EQNOT_EQKeyword_1_0() { return cNOT_EQNOT_EQKeyword_1_0; }
1229 2137
1230 //FieldRelationInterpretation 2138 //LESS
1231 public RuleCall getFieltFieldRelationInterpretationParserRuleCall_5_0() { return cFieltFieldRelationInterpretationParserRuleCall_5_0; } 2139 public EnumLiteralDeclaration getLESSEnumLiteralDeclaration_2() { return cLESSEnumLiteralDeclaration_2; }
1232 2140
1233 //'}' 2141 //"LESS"
1234 public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } 2142 public Keyword getLESSLESSKeyword_2_0() { return cLESSLESSKeyword_2_0; }
2143
2144 //LESS_EQ
2145 public EnumLiteralDeclaration getLESS_EQEnumLiteralDeclaration_3() { return cLESS_EQEnumLiteralDeclaration_3; }
2146
2147 //"LESS_EQ"
2148 public Keyword getLESS_EQLESS_EQKeyword_3_0() { return cLESS_EQLESS_EQKeyword_3_0; }
2149
2150 //GREATER
2151 public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_4() { return cGREATEREnumLiteralDeclaration_4; }
2152
2153 //"GREATER"
2154 public Keyword getGREATERGREATERKeyword_4_0() { return cGREATERGREATERKeyword_4_0; }
2155
2156 //GREATER_EQ
2157 public EnumLiteralDeclaration getGREATER_EQEnumLiteralDeclaration_5() { return cGREATER_EQEnumLiteralDeclaration_5; }
2158
2159 //"GREATER_EQ"
2160 public Keyword getGREATER_EQGREATER_EQKeyword_5_0() { return cGREATER_EQGREATER_EQKeyword_5_0; }
2161
2162 //IN
2163 public EnumLiteralDeclaration getINEnumLiteralDeclaration_6() { return cINEnumLiteralDeclaration_6; }
2164
2165 //"IN"
2166 public Keyword getININKeyword_6_0() { return cININKeyword_6_0; }
2167
2168 //ADD
2169 public EnumLiteralDeclaration getADDEnumLiteralDeclaration_7() { return cADDEnumLiteralDeclaration_7; }
2170
2171 //"ADD"
2172 public Keyword getADDADDKeyword_7_0() { return cADDADDKeyword_7_0; }
2173
2174 //SUB
2175 public EnumLiteralDeclaration getSUBEnumLiteralDeclaration_8() { return cSUBEnumLiteralDeclaration_8; }
2176
2177 //"SUB"
2178 public Keyword getSUBSUBKeyword_8_0() { return cSUBSUBKeyword_8_0; }
2179
2180 //MUL
2181 public EnumLiteralDeclaration getMULEnumLiteralDeclaration_9() { return cMULEnumLiteralDeclaration_9; }
2182
2183 //"MUL"
2184 public Keyword getMULMULKeyword_9_0() { return cMULMULKeyword_9_0; }
2185
2186 //DIV
2187 public EnumLiteralDeclaration getDIVEnumLiteralDeclaration_10() { return cDIVEnumLiteralDeclaration_10; }
2188
2189 //"DIV"
2190 public Keyword getDIVDIVKeyword_10_0() { return cDIVDIVKeyword_10_0; }
2191
2192 //POW
2193 public EnumLiteralDeclaration getPOWEnumLiteralDeclaration_11() { return cPOWEnumLiteralDeclaration_11; }
2194
2195 //"POW"
2196 public Keyword getPOWPOWKeyword_11_0() { return cPOWPOWKeyword_11_0; }
1235 } 2197 }
1236 public class EnumInterpretationElements extends AbstractParserRuleElementFinder { 2198 public class ComparisonOperatorElements extends AbstractEnumRuleElementFinder {
1237 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EnumInterpretation"); 2199 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator");
1238 private final Group cGroup = (Group)rule.eContents().get(1); 2200 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1239 private final Keyword cEnumKeyword_0 = (Keyword)cGroup.eContents().get(0); 2201 private final EnumLiteralDeclaration cEQEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
1240 private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1); 2202 private final Keyword cEQEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQEnumLiteralDeclaration_0.eContents().get(0);
1241 private final RuleCall cSymbolModelSymbolParserRuleCall_1_0 = (RuleCall)cSymbolAssignment_1.eContents().get(0); 2203 private final EnumLiteralDeclaration cNOT_EQEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
1242 private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); 2204 private final Keyword cNOT_EQExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQEnumLiteralDeclaration_1.eContents().get(0);
1243 private final Assignment cObjectsAssignment_3 = (Assignment)cGroup.eContents().get(3); 2205 private final EnumLiteralDeclaration cLESSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
1244 private final RuleCall cObjectsNamedObjectParserRuleCall_3_0 = (RuleCall)cObjectsAssignment_3.eContents().get(0); 2206 private final Keyword cLESSLessThanSignKeyword_2_0 = (Keyword)cLESSEnumLiteralDeclaration_2.eContents().get(0);
1245 private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); 2207 private final EnumLiteralDeclaration cLESS_EQEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
1246 2208 private final Keyword cLESS_EQLessThanSignEqualsSignKeyword_3_0 = (Keyword)cLESS_EQEnumLiteralDeclaration_3.eContents().get(0);
1247 //EnumInterpretation: 2209 private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
1248 // 'enum' Symbol=ModelSymbol '{' objects+=NamedObject+ '}'; 2210 private final Keyword cGREATERGreaterThanSignKeyword_4_0 = (Keyword)cGREATEREnumLiteralDeclaration_4.eContents().get(0);
1249 @Override public ParserRule getRule() { return rule; } 2211 private final EnumLiteralDeclaration cGREATER_EQEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
2212 private final Keyword cGREATER_EQGreaterThanSignEqualsSignKeyword_5_0 = (Keyword)cGREATER_EQEnumLiteralDeclaration_5.eContents().get(0);
2213 private final EnumLiteralDeclaration cINEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
2214 private final Keyword cINInKeyword_6_0 = (Keyword)cINEnumLiteralDeclaration_6.eContents().get(0);
2215
2216 //enum ComparisonOperator returns BinaryOperator:
2217 // EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in";
2218 public EnumRule getRule() { return rule; }
2219
2220 //EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in"
2221 public Alternatives getAlternatives() { return cAlternatives; }
1250 2222
1251 //'enum' Symbol=ModelSymbol '{' objects+=NamedObject+ '}' 2223 //EQ="=="
1252 public Group getGroup() { return cGroup; } 2224 public EnumLiteralDeclaration getEQEnumLiteralDeclaration_0() { return cEQEnumLiteralDeclaration_0; }
2225
2226 //"=="
2227 public Keyword getEQEqualsSignEqualsSignKeyword_0_0() { return cEQEqualsSignEqualsSignKeyword_0_0; }
1253 2228
1254 //'enum' 2229 //NOT_EQ="!="
1255 public Keyword getEnumKeyword_0() { return cEnumKeyword_0; } 2230 public EnumLiteralDeclaration getNOT_EQEnumLiteralDeclaration_1() { return cNOT_EQEnumLiteralDeclaration_1; }
1256 2231
1257 //Symbol=ModelSymbol 2232 //"!="
1258 public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; } 2233 public Keyword getNOT_EQExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQExclamationMarkEqualsSignKeyword_1_0; }
1259 2234
1260 //ModelSymbol 2235 //LESS="<"
1261 public RuleCall getSymbolModelSymbolParserRuleCall_1_0() { return cSymbolModelSymbolParserRuleCall_1_0; } 2236 public EnumLiteralDeclaration getLESSEnumLiteralDeclaration_2() { return cLESSEnumLiteralDeclaration_2; }
1262 2237
1263 //'{' 2238 //"<"
1264 public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } 2239 public Keyword getLESSLessThanSignKeyword_2_0() { return cLESSLessThanSignKeyword_2_0; }
1265 2240
1266 //objects+=NamedObject+ 2241 //LESS_EQ="<="
1267 public Assignment getObjectsAssignment_3() { return cObjectsAssignment_3; } 2242 public EnumLiteralDeclaration getLESS_EQEnumLiteralDeclaration_3() { return cLESS_EQEnumLiteralDeclaration_3; }
1268 2243
1269 //NamedObject 2244 //"<="
1270 public RuleCall getObjectsNamedObjectParserRuleCall_3_0() { return cObjectsNamedObjectParserRuleCall_3_0; } 2245 public Keyword getLESS_EQLessThanSignEqualsSignKeyword_3_0() { return cLESS_EQLessThanSignEqualsSignKeyword_3_0; }
1271 2246
1272 //'}' 2247 //GREATER=">"
1273 public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } 2248 public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_4() { return cGREATEREnumLiteralDeclaration_4; }
2249
2250 //">"
2251 public Keyword getGREATERGreaterThanSignKeyword_4_0() { return cGREATERGreaterThanSignKeyword_4_0; }
2252
2253 //GREATER_EQ=">="
2254 public EnumLiteralDeclaration getGREATER_EQEnumLiteralDeclaration_5() { return cGREATER_EQEnumLiteralDeclaration_5; }
2255
2256 //">="
2257 public Keyword getGREATER_EQGreaterThanSignEqualsSignKeyword_5_0() { return cGREATER_EQGreaterThanSignEqualsSignKeyword_5_0; }
2258
2259 //IN="in"
2260 public EnumLiteralDeclaration getINEnumLiteralDeclaration_6() { return cINEnumLiteralDeclaration_6; }
2261
2262 //"in"
2263 public Keyword getINInKeyword_6_0() { return cINInKeyword_6_0; }
1274 } 2264 }
1275 public class FieldRelationInterpretationElements extends AbstractParserRuleElementFinder { 2265 public class AdditiveBinaryOperatorElements extends AbstractEnumRuleElementFinder {
1276 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.FieldRelationInterpretation"); 2266 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator");
1277 private final Group cGroup = (Group)rule.eContents().get(1); 2267 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1278 private final Assignment cContainmentAssignment_0 = (Assignment)cGroup.eContents().get(0); 2268 private final EnumLiteralDeclaration cADDEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
1279 private final Keyword cContainmentContainmentKeyword_0_0 = (Keyword)cContainmentAssignment_0.eContents().get(0); 2269 private final Keyword cADDPlusSignKeyword_0_0 = (Keyword)cADDEnumLiteralDeclaration_0.eContents().get(0);
1280 private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1); 2270 private final EnumLiteralDeclaration cSUBEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
1281 private final RuleCall cSymbolModelSymbolParserRuleCall_1_0 = (RuleCall)cSymbolAssignment_1.eContents().get(0); 2271 private final Keyword cSUBHyphenMinusKeyword_1_0 = (Keyword)cSUBEnumLiteralDeclaration_1.eContents().get(0);
1282 private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
1283 private final Assignment cMultiplicityAssignment_3 = (Assignment)cGroup.eContents().get(3);
1284 private final RuleCall cMultiplicityMultiplicityDefinitionParserRuleCall_3_0 = (RuleCall)cMultiplicityAssignment_3.eContents().get(0);
1285 private final Assignment cTargetAssignment_4 = (Assignment)cGroup.eContents().get(4);
1286 private final RuleCall cTargetSymbolParserRuleCall_4_0 = (RuleCall)cTargetAssignment_4.eContents().get(0);
1287 2272
1288 //FieldRelationInterpretation: 2273 //enum AdditiveBinaryOperator returns BinaryOperator:
1289 // containment?='containment'? symbol=ModelSymbol ':' multiplicity=MultiplicityDefinition? target=Symbol; 2274 // ADD="+" | SUB="-";
1290 @Override public ParserRule getRule() { return rule; } 2275 public EnumRule getRule() { return rule; }
1291 2276
1292 //containment?='containment'? symbol=ModelSymbol ':' multiplicity=MultiplicityDefinition? target=Symbol 2277 //ADD="+" | SUB="-"
1293 public Group getGroup() { return cGroup; } 2278 public Alternatives getAlternatives() { return cAlternatives; }
1294 2279
1295 //containment?='containment'? 2280 //ADD="+"
1296 public Assignment getContainmentAssignment_0() { return cContainmentAssignment_0; } 2281 public EnumLiteralDeclaration getADDEnumLiteralDeclaration_0() { return cADDEnumLiteralDeclaration_0; }
1297 2282
1298 //'containment' 2283 //"+"
1299 public Keyword getContainmentContainmentKeyword_0_0() { return cContainmentContainmentKeyword_0_0; } 2284 public Keyword getADDPlusSignKeyword_0_0() { return cADDPlusSignKeyword_0_0; }
1300 2285
1301 //symbol=ModelSymbol 2286 //SUB="-"
1302 public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; } 2287 public EnumLiteralDeclaration getSUBEnumLiteralDeclaration_1() { return cSUBEnumLiteralDeclaration_1; }
1303 2288
1304 //ModelSymbol 2289 //"-"
1305 public RuleCall getSymbolModelSymbolParserRuleCall_1_0() { return cSymbolModelSymbolParserRuleCall_1_0; } 2290 public Keyword getSUBHyphenMinusKeyword_1_0() { return cSUBHyphenMinusKeyword_1_0; }
2291 }
2292 public class MultiplicativeBinaryOperatorElements extends AbstractEnumRuleElementFinder {
2293 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator");
2294 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2295 private final EnumLiteralDeclaration cMULEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2296 private final Keyword cMULAsteriskKeyword_0_0 = (Keyword)cMULEnumLiteralDeclaration_0.eContents().get(0);
2297 private final EnumLiteralDeclaration cDIVEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2298 private final Keyword cDIVSolidusKeyword_1_0 = (Keyword)cDIVEnumLiteralDeclaration_1.eContents().get(0);
1306 2299
1307 //':' 2300 //enum MultiplicativeBinaryOperator returns BinaryOperator:
1308 public Keyword getColonKeyword_2() { return cColonKeyword_2; } 2301 // MUL="*" | DIV="/";
2302 public EnumRule getRule() { return rule; }
1309 2303
1310 //multiplicity=MultiplicityDefinition? 2304 //MUL="*" | DIV="/"
1311 public Assignment getMultiplicityAssignment_3() { return cMultiplicityAssignment_3; } 2305 public Alternatives getAlternatives() { return cAlternatives; }
2306
2307 //MUL="*"
2308 public EnumLiteralDeclaration getMULEnumLiteralDeclaration_0() { return cMULEnumLiteralDeclaration_0; }
1312 2309
1313 //MultiplicityDefinition 2310 //"*"
1314 public RuleCall getMultiplicityMultiplicityDefinitionParserRuleCall_3_0() { return cMultiplicityMultiplicityDefinitionParserRuleCall_3_0; } 2311 public Keyword getMULAsteriskKeyword_0_0() { return cMULAsteriskKeyword_0_0; }
1315 2312
1316 //target=Symbol 2313 //DIV="/"
1317 public Assignment getTargetAssignment_4() { return cTargetAssignment_4; } 2314 public EnumLiteralDeclaration getDIVEnumLiteralDeclaration_1() { return cDIVEnumLiteralDeclaration_1; }
1318 2315
1319 //Symbol 2316 //"/"
1320 public RuleCall getTargetSymbolParserRuleCall_4_0() { return cTargetSymbolParserRuleCall_4_0; } 2317 public Keyword getDIVSolidusKeyword_1_0() { return cDIVSolidusKeyword_1_0; }
1321 } 2318 }
1322 public class GlobalRelationInterpretationElements extends AbstractParserRuleElementFinder { 2319 public class ExponentialOpElements extends AbstractEnumRuleElementFinder {
1323 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.GlobalRelationInterpretation"); 2320 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp");
1324 private final Group cGroup = (Group)rule.eContents().get(1); 2321 private final EnumLiteralDeclaration cPOWEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
1325 private final Assignment cContainmentAssignment_0 = (Assignment)cGroup.eContents().get(0); 2322 private final Keyword cPOWCircumflexAccentKeyword_0 = (Keyword)cPOWEnumLiteralDeclaration.eContents().get(0);
1326 private final Keyword cContainmentContainmentKeyword_0_0 = (Keyword)cContainmentAssignment_0.eContents().get(0);
1327 private final Keyword cRelationKeyword_1 = (Keyword)cGroup.eContents().get(1);
1328 private final Assignment cSymbolAssignment_2 = (Assignment)cGroup.eContents().get(2);
1329 private final RuleCall cSymbolModelSymbolParserRuleCall_2_0 = (RuleCall)cSymbolAssignment_2.eContents().get(0);
1330 private final Keyword cColonKeyword_3 = (Keyword)cGroup.eContents().get(3);
1331 private final Assignment cSourceMultiplicityAssignment_4 = (Assignment)cGroup.eContents().get(4);
1332 private final RuleCall cSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0 = (RuleCall)cSourceMultiplicityAssignment_4.eContents().get(0);
1333 private final Assignment cSourceAssignment_5 = (Assignment)cGroup.eContents().get(5);
1334 private final RuleCall cSourceSymbolParserRuleCall_5_0 = (RuleCall)cSourceAssignment_5.eContents().get(0);
1335 private final Assignment cTargetMultiplicityAssignment_6 = (Assignment)cGroup.eContents().get(6);
1336 private final RuleCall cTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0 = (RuleCall)cTargetMultiplicityAssignment_6.eContents().get(0);
1337 private final Assignment cTargetAssignment_7 = (Assignment)cGroup.eContents().get(7);
1338 private final RuleCall cTargetSymbolParserRuleCall_7_0 = (RuleCall)cTargetAssignment_7.eContents().get(0);
1339
1340 //GlobalRelationInterpretation:
1341 // containment?='containment'? 'relation' symbol=ModelSymbol ':' sourceMultiplicity=MultiplicityDefinition?
1342 // source=Symbol targetMultiplicity=MultiplicityDefinition? target=Symbol;
1343 @Override public ParserRule getRule() { return rule; }
1344 2323
1345 //containment?='containment'? 'relation' symbol=ModelSymbol ':' sourceMultiplicity=MultiplicityDefinition? source=Symbol 2324 //enum ExponentialOp returns BinaryOperator:
1346 //targetMultiplicity=MultiplicityDefinition? target=Symbol 2325 // POW="^";
1347 public Group getGroup() { return cGroup; } 2326 public EnumRule getRule() { return rule; }
1348 2327
1349 //containment?='containment'? 2328 //POW="^"
1350 public Assignment getContainmentAssignment_0() { return cContainmentAssignment_0; } 2329 public EnumLiteralDeclaration getPOWEnumLiteralDeclaration() { return cPOWEnumLiteralDeclaration; }
1351 2330
1352 //'containment' 2331 //"^"
1353 public Keyword getContainmentContainmentKeyword_0_0() { return cContainmentContainmentKeyword_0_0; } 2332 public Keyword getPOWCircumflexAccentKeyword_0() { return cPOWCircumflexAccentKeyword_0; }
2333 }
2334 public class UnaryOpElements extends AbstractEnumRuleElementFinder {
2335 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp");
2336 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2337 private final EnumLiteralDeclaration cNEGEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2338 private final Keyword cNEGExclamationMarkKeyword_0_0 = (Keyword)cNEGEnumLiteralDeclaration_0.eContents().get(0);
2339 private final EnumLiteralDeclaration cPLUSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2340 private final Keyword cPLUSPlusSignKeyword_1_0 = (Keyword)cPLUSEnumLiteralDeclaration_1.eContents().get(0);
2341 private final EnumLiteralDeclaration cMINUSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
2342 private final Keyword cMINUSHyphenMinusKeyword_2_0 = (Keyword)cMINUSEnumLiteralDeclaration_2.eContents().get(0);
2343 private final EnumLiteralDeclaration cMAYEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
2344 private final Keyword cMAYMayKeyword_3_0 = (Keyword)cMAYEnumLiteralDeclaration_3.eContents().get(0);
2345 private final EnumLiteralDeclaration cMUSTEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
2346 private final Keyword cMUSTMustKeyword_4_0 = (Keyword)cMUSTEnumLiteralDeclaration_4.eContents().get(0);
2347 private final EnumLiteralDeclaration cCURRENTEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
2348 private final Keyword cCURRENTCurrentKeyword_5_0 = (Keyword)cCURRENTEnumLiteralDeclaration_5.eContents().get(0);
2349
2350 //enum UnaryOp:
2351 // NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current";
2352 public EnumRule getRule() { return rule; }
2353
2354 //NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current"
2355 public Alternatives getAlternatives() { return cAlternatives; }
1354 2356
1355 //'relation' 2357 //NEG="!"
1356 public Keyword getRelationKeyword_1() { return cRelationKeyword_1; } 2358 public EnumLiteralDeclaration getNEGEnumLiteralDeclaration_0() { return cNEGEnumLiteralDeclaration_0; }
1357 2359
1358 //symbol=ModelSymbol 2360 //"!"
1359 public Assignment getSymbolAssignment_2() { return cSymbolAssignment_2; } 2361 public Keyword getNEGExclamationMarkKeyword_0_0() { return cNEGExclamationMarkKeyword_0_0; }
1360 2362
1361 //ModelSymbol 2363 //PLUS="+"
1362 public RuleCall getSymbolModelSymbolParserRuleCall_2_0() { return cSymbolModelSymbolParserRuleCall_2_0; } 2364 public EnumLiteralDeclaration getPLUSEnumLiteralDeclaration_1() { return cPLUSEnumLiteralDeclaration_1; }
1363 2365
1364 //':' 2366 //"+"
1365 public Keyword getColonKeyword_3() { return cColonKeyword_3; } 2367 public Keyword getPLUSPlusSignKeyword_1_0() { return cPLUSPlusSignKeyword_1_0; }
1366 2368
1367 //sourceMultiplicity=MultiplicityDefinition? 2369 //MINUS="-"
1368 public Assignment getSourceMultiplicityAssignment_4() { return cSourceMultiplicityAssignment_4; } 2370 public EnumLiteralDeclaration getMINUSEnumLiteralDeclaration_2() { return cMINUSEnumLiteralDeclaration_2; }
1369 2371
1370 //MultiplicityDefinition 2372 //"-"
1371 public RuleCall getSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0() { return cSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0; } 2373 public Keyword getMINUSHyphenMinusKeyword_2_0() { return cMINUSHyphenMinusKeyword_2_0; }
1372 2374
1373 //source=Symbol 2375 //MAY="may"
1374 public Assignment getSourceAssignment_5() { return cSourceAssignment_5; } 2376 public EnumLiteralDeclaration getMAYEnumLiteralDeclaration_3() { return cMAYEnumLiteralDeclaration_3; }
1375 2377
1376 //Symbol 2378 //"may"
1377 public RuleCall getSourceSymbolParserRuleCall_5_0() { return cSourceSymbolParserRuleCall_5_0; } 2379 public Keyword getMAYMayKeyword_3_0() { return cMAYMayKeyword_3_0; }
1378 2380
1379 //targetMultiplicity=MultiplicityDefinition? 2381 //MUST="must"
1380 public Assignment getTargetMultiplicityAssignment_6() { return cTargetMultiplicityAssignment_6; } 2382 public EnumLiteralDeclaration getMUSTEnumLiteralDeclaration_4() { return cMUSTEnumLiteralDeclaration_4; }
1381 2383
1382 //MultiplicityDefinition 2384 //"must"
1383 public RuleCall getTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0() { return cTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0; } 2385 public Keyword getMUSTMustKeyword_4_0() { return cMUSTMustKeyword_4_0; }
1384 2386
1385 //target=Symbol 2387 //CURRENT="current"
1386 public Assignment getTargetAssignment_7() { return cTargetAssignment_7; } 2388 public EnumLiteralDeclaration getCURRENTEnumLiteralDeclaration_5() { return cCURRENTEnumLiteralDeclaration_5; }
1387 2389
1388 //Symbol 2390 //"current"
1389 public RuleCall getTargetSymbolParserRuleCall_7_0() { return cTargetSymbolParserRuleCall_7_0; } 2391 public Keyword getCURRENTCurrentKeyword_5_0() { return cCURRENTCurrentKeyword_5_0; }
1390 } 2392 }
1391 public class MultiplicityDefinitionElements extends AbstractParserRuleElementFinder { 2393 public class AggregationOpElements extends AbstractEnumRuleElementFinder {
1392 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); 2394 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AggregationOp");
1393 private final Group cGroup = (Group)rule.eContents().get(1); 2395 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1394 private final Assignment cLowerAssignment_0 = (Assignment)cGroup.eContents().get(0); 2396 private final EnumLiteralDeclaration cONLYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
1395 private final RuleCall cLowerINTTerminalRuleCall_0_0 = (RuleCall)cLowerAssignment_0.eContents().get(0); 2397 private final Keyword cONLYOnlyKeyword_0_0 = (Keyword)cONLYEnumLiteralDeclaration_0.eContents().get(0);
1396 private final Keyword cFullStopFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1); 2398 private final EnumLiteralDeclaration cSUMEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
1397 private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); 2399 private final Keyword cSUMSumKeyword_1_0 = (Keyword)cSUMEnumLiteralDeclaration_1.eContents().get(0);
1398 private final Assignment cUpperAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0); 2400 private final EnumLiteralDeclaration cPRODEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
1399 private final RuleCall cUpperINTTerminalRuleCall_2_0_0 = (RuleCall)cUpperAssignment_2_0.eContents().get(0); 2401 private final Keyword cPRODProdKeyword_2_0 = (Keyword)cPRODEnumLiteralDeclaration_2.eContents().get(0);
1400 private final Assignment cUnlimitedUpperAssignment_2_1 = (Assignment)cAlternatives_2.eContents().get(1); 2402 private final EnumLiteralDeclaration cAVGEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
1401 private final Keyword cUnlimitedUpperAsteriskKeyword_2_1_0 = (Keyword)cUnlimitedUpperAssignment_2_1.eContents().get(0); 2403 private final Keyword cAVGAvgKeyword_3_0 = (Keyword)cAVGEnumLiteralDeclaration_3.eContents().get(0);
1402 2404 private final EnumLiteralDeclaration cMINEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
1403 //MultiplicityDefinition: 2405 private final Keyword cMINMinKeyword_4_0 = (Keyword)cMINEnumLiteralDeclaration_4.eContents().get(0);
1404 // lower=INT '..' (upper=INT | unlimitedUpper?='*'); 2406 private final EnumLiteralDeclaration cMAXEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
1405 @Override public ParserRule getRule() { return rule; } 2407 private final Keyword cMAXMaxKeyword_5_0 = (Keyword)cMAXEnumLiteralDeclaration_5.eContents().get(0);
2408
2409 //enum AggregationOp:
2410 // ONLY="only" | SUM="sum" | PROD="prod" | AVG="avg" | MIN="min" | MAX="max";
2411 public EnumRule getRule() { return rule; }
2412
2413 //ONLY="only" | SUM="sum" | PROD="prod" | AVG="avg" | MIN="min" | MAX="max"
2414 public Alternatives getAlternatives() { return cAlternatives; }
1406 2415
1407 //lower=INT '..' (upper=INT | unlimitedUpper?='*') 2416 //ONLY="only"
1408 public Group getGroup() { return cGroup; } 2417 public EnumLiteralDeclaration getONLYEnumLiteralDeclaration_0() { return cONLYEnumLiteralDeclaration_0; }
1409 2418
1410 //lower=INT 2419 //"only"
1411 public Assignment getLowerAssignment_0() { return cLowerAssignment_0; } 2420 public Keyword getONLYOnlyKeyword_0_0() { return cONLYOnlyKeyword_0_0; }
1412 2421
1413 //INT 2422 //SUM="sum"
1414 public RuleCall getLowerINTTerminalRuleCall_0_0() { return cLowerINTTerminalRuleCall_0_0; } 2423 public EnumLiteralDeclaration getSUMEnumLiteralDeclaration_1() { return cSUMEnumLiteralDeclaration_1; }
1415 2424
1416 //'..' 2425 //"sum"
1417 public Keyword getFullStopFullStopKeyword_1() { return cFullStopFullStopKeyword_1; } 2426 public Keyword getSUMSumKeyword_1_0() { return cSUMSumKeyword_1_0; }
1418 2427
1419 //upper=INT | unlimitedUpper?='*' 2428 //PROD="prod"
1420 public Alternatives getAlternatives_2() { return cAlternatives_2; } 2429 public EnumLiteralDeclaration getPRODEnumLiteralDeclaration_2() { return cPRODEnumLiteralDeclaration_2; }
1421 2430
1422 //upper=INT 2431 //"prod"
1423 public Assignment getUpperAssignment_2_0() { return cUpperAssignment_2_0; } 2432 public Keyword getPRODProdKeyword_2_0() { return cPRODProdKeyword_2_0; }
1424 2433
1425 //INT 2434 //AVG="avg"
1426 public RuleCall getUpperINTTerminalRuleCall_2_0_0() { return cUpperINTTerminalRuleCall_2_0_0; } 2435 public EnumLiteralDeclaration getAVGEnumLiteralDeclaration_3() { return cAVGEnumLiteralDeclaration_3; }
2436
2437 //"avg"
2438 public Keyword getAVGAvgKeyword_3_0() { return cAVGAvgKeyword_3_0; }
1427 2439
1428 //unlimitedUpper?='*' 2440 //MIN="min"
1429 public Assignment getUnlimitedUpperAssignment_2_1() { return cUnlimitedUpperAssignment_2_1; } 2441 public EnumLiteralDeclaration getMINEnumLiteralDeclaration_4() { return cMINEnumLiteralDeclaration_4; }
1430 2442
1431 //'*' 2443 //"min"
1432 public Keyword getUnlimitedUpperAsteriskKeyword_2_1_0() { return cUnlimitedUpperAsteriskKeyword_2_1_0; } 2444 public Keyword getMINMinKeyword_4_0() { return cMINMinKeyword_4_0; }
2445
2446 //MAX="max"
2447 public EnumLiteralDeclaration getMAXEnumLiteralDeclaration_5() { return cMAXEnumLiteralDeclaration_5; }
2448
2449 //"max"
2450 public Keyword getMAXMaxKeyword_5_0() { return cMAXMaxKeyword_5_0; }
2451 }
2452 public class LogicValueElements extends AbstractEnumRuleElementFinder {
2453 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue");
2454 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2455 private final EnumLiteralDeclaration cTRUEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2456 private final Keyword cTRUETrueKeyword_0_0 = (Keyword)cTRUEEnumLiteralDeclaration_0.eContents().get(0);
2457 private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2458 private final Keyword cFALSEFalseKeyword_1_0 = (Keyword)cFALSEEnumLiteralDeclaration_1.eContents().get(0);
2459 private final EnumLiteralDeclaration cUNKNOWNEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
2460 private final Keyword cUNKNOWNUnknownKeyword_2_0 = (Keyword)cUNKNOWNEnumLiteralDeclaration_2.eContents().get(0);
2461 private final EnumLiteralDeclaration cERROREnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
2462 private final Keyword cERRORErrorKeyword_3_0 = (Keyword)cERROREnumLiteralDeclaration_3.eContents().get(0);
2463
2464 //enum LogicValue:
2465 // TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error";
2466 public EnumRule getRule() { return rule; }
2467
2468 //TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error"
2469 public Alternatives getAlternatives() { return cAlternatives; }
2470
2471 //TRUE="true"
2472 public EnumLiteralDeclaration getTRUEEnumLiteralDeclaration_0() { return cTRUEEnumLiteralDeclaration_0; }
2473
2474 //"true"
2475 public Keyword getTRUETrueKeyword_0_0() { return cTRUETrueKeyword_0_0; }
2476
2477 //FALSE="false"
2478 public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_1() { return cFALSEEnumLiteralDeclaration_1; }
2479
2480 //"false"
2481 public Keyword getFALSEFalseKeyword_1_0() { return cFALSEFalseKeyword_1_0; }
2482
2483 //UNKNOWN="unknown"
2484 public EnumLiteralDeclaration getUNKNOWNEnumLiteralDeclaration_2() { return cUNKNOWNEnumLiteralDeclaration_2; }
2485
2486 //"unknown"
2487 public Keyword getUNKNOWNUnknownKeyword_2_0() { return cUNKNOWNUnknownKeyword_2_0; }
2488
2489 //ERROR="error"
2490 public EnumLiteralDeclaration getERROREnumLiteralDeclaration_3() { return cERROREnumLiteralDeclaration_3; }
2491
2492 //"error"
2493 public Keyword getERRORErrorKeyword_3_0() { return cERRORErrorKeyword_3_0; }
2494 }
2495 public class ObjectiveKindElements extends AbstractEnumRuleElementFinder {
2496 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind");
2497 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
2498 private final EnumLiteralDeclaration cMINIMIZEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
2499 private final Keyword cMINIMIZEMinimizeKeyword_0_0 = (Keyword)cMINIMIZEEnumLiteralDeclaration_0.eContents().get(0);
2500 private final EnumLiteralDeclaration cMAXIMIZEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
2501 private final Keyword cMAXIMIZEMaximizeKeyword_1_0 = (Keyword)cMAXIMIZEEnumLiteralDeclaration_1.eContents().get(0);
2502
2503 //enum ObjectiveKind:
2504 // MINIMIZE="minimize" | MAXIMIZE="maximize";
2505 public EnumRule getRule() { return rule; }
2506
2507 //MINIMIZE="minimize" | MAXIMIZE="maximize"
2508 public Alternatives getAlternatives() { return cAlternatives; }
2509
2510 //MINIMIZE="minimize"
2511 public EnumLiteralDeclaration getMINIMIZEEnumLiteralDeclaration_0() { return cMINIMIZEEnumLiteralDeclaration_0; }
2512
2513 //"minimize"
2514 public Keyword getMINIMIZEMinimizeKeyword_0_0() { return cMINIMIZEMinimizeKeyword_0_0; }
2515
2516 //MAXIMIZE="maximize"
2517 public EnumLiteralDeclaration getMAXIMIZEEnumLiteralDeclaration_1() { return cMAXIMIZEEnumLiteralDeclaration_1; }
2518
2519 //"maximize"
2520 public Keyword getMAXIMIZEMaximizeKeyword_1_0() { return cMAXIMIZEMaximizeKeyword_1_0; }
1433 } 2521 }
1434
1435 2522
1436 private final ProblemElements pProblem; 2523 private final ProblemElements pProblem;
1437 private final StatementElements pStatement; 2524 private final StatementElements pStatement;
1438 private final TerminalRule tSTRING; 2525 private final AssertionOrDefinitionElements pAssertionOrDefinition;
1439 private final REALLiteralElements pREALLiteral; 2526 private final PredicateDefinitionElements pPredicateDefinition;
1440 private final INTLiteralElements pINTLiteral; 2527 private final UnnamedErrorPrediateDefinitionElements pUnnamedErrorPrediateDefinition;
1441 private final BooleanValueElements pBooleanValue; 2528 private final DefaultDefinitionElements pDefaultDefinition;
1442 private final TruthValueElements pTruthValue; 2529 private final ExternPredicateDefinitionElements pExternPredicateDefinition;
1443 private final InterpretationElements pInterpretation; 2530 private final MetricTypeElements eMetricType;
1444 private final BasicInterpretationElements pBasicInterpretation; 2531 private final MetricDefinitionElements pMetricDefinition;
1445 private final SymbolElements pSymbol; 2532 private final ExternMetricDefinitionElements pExternMetricDefinition;
1446 private final ModelSymbolElements pModelSymbol; 2533 private final ExpressionElements pExpression;
1447 private final PartialitySymbolElements pPartialitySymbol; 2534 private final IfElseElements pIfElse;
1448 private final ExistSymbolElements pExistSymbol; 2535 private final DisjunctiveExpressionElements pDisjunctiveExpression;
1449 private final EqualsSymbolElements pEqualsSymbol; 2536 private final CaseElements pCase;
1450 private final DataSymbolElements pDataSymbol; 2537 private final ConjunctiveExpressionElements pConjunctiveExpression;
1451 private final BooleanSymbolElements pBooleanSymbol; 2538 private final BinaryOperatorElements eBinaryOperator;
1452 private final IntegerSymbolElements pIntegerSymbol; 2539 private final ComparisonOperatorElements eComparisonOperator;
1453 private final RealSymbolElements pRealSymbol; 2540 private final ComparisonExpressionElements pComparisonExpression;
1454 private final StringSymbolElements pStringSymbol; 2541 private final AdditiveBinaryOperatorElements eAdditiveBinaryOperator;
1455 private final ComplexObjectElements pComplexObject; 2542 private final AdditiveExpressionElements pAdditiveExpression;
1456 private final ObjectElements pObject; 2543 private final MultiplicativeBinaryOperatorElements eMultiplicativeBinaryOperator;
1457 private final NamedObjectElements pNamedObject; 2544 private final MultiplicativeExpressionElements pMultiplicativeExpression;
1458 private final UnnamedObjectElements pUnnamedObject; 2545 private final ExponentialOpElements eExponentialOp;
1459 private final DataObjectElements pDataObject; 2546 private final ExponentialExpressionElements pExponentialExpression;
1460 private final BooleanObjectElements pBooleanObject; 2547 private final UnaryOpElements eUnaryOp;
1461 private final IntObjectElements pIntObject; 2548 private final UnaryExpressionElements pUnaryExpression;
1462 private final RealObjectElements pRealObject; 2549 private final AggregationExpressionElements pAggregationExpression;
1463 private final StringObjectElements pStringObject; 2550 private final CountElements pCount;
1464 private final PredicateElements pPredicate; 2551 private final AggregationOpElements eAggregationOp;
1465 private final ParameterElements pParameter; 2552 private final AggregationElements pAggregation;
1466 private final PatternBodyElements pPatternBody; 2553 private final AtomicExpressionElements pAtomicExpression;
1467 private final PolarityElements pPolarity; 2554 private final CallElements pCall;
1468 private final ConstraintElements pConstraint; 2555 private final ArgumentListElements pArgumentList;
1469 private final ClosureTypeElements pClosureType; 2556 private final ArgumentElements pArgument;
2557 private final ExpressionArgumentElements pExpressionArgument;
2558 private final StarArgumentElements pStarArgument;
2559 private final TypedArgumentElements pTypedArgument;
2560 private final TypedStarArgumentElements pTypedStarArgument;
2561 private final ReferenceElements pReference;
2562 private final IntervalElements pInterval;
1470 private final LiteralElements pLiteral; 2563 private final LiteralElements pLiteral;
1471 private final VariableElements pVariable; 2564 private final LogicValueElements eLogicValue;
1472 private final AllInstancesElements pAllInstances; 2565 private final LogicLiteralElements pLogicLiteral;
1473 private final AllObjectsElements pAllObjects; 2566 private final NumericLiteralElements pNumericLiteral;
1474 private final DefaultInterpretationElements pDefaultInterpretation; 2567 private final InfinityLiteralElements pInfinityLiteral;
1475 private final CDInterpretationElements pCDInterpretation; 2568 private final EmptyIntervalLiteralElements pEmptyIntervalLiteral;
1476 private final ClassInterpretationElements pClassInterpretation; 2569 private final StringLiteralElements pStringLiteral;
1477 private final EnumInterpretationElements pEnumInterpretation; 2570 private final ClassDefinitionElements pClassDefinition;
1478 private final FieldRelationInterpretationElements pFieldRelationInterpretation; 2571 private final MemberDefinitionElements pMemberDefinition;
1479 private final GlobalRelationInterpretationElements pGlobalRelationInterpretation; 2572 private final MultiplicityElements pMultiplicity;
1480 private final MultiplicityDefinitionElements pMultiplicityDefinition; 2573 private final ManyMultiplicityElements pManyMultiplicity;
2574 private final ExactMultiplicityElements pExactMultiplicity;
2575 private final BoundedMultiplicityElements pBoundedMultiplicity;
2576 private final ScopeDefinitionElements pScopeDefinition;
2577 private final ExactScopeDefinitionElements pExactScopeDefinition;
2578 private final BoundedScopeDefinitionElements pBoundedScopeDefinition;
2579 private final LowerBoundedScopeDefinitionElements pLowerBoundedScopeDefinition;
2580 private final ObjectiveKindElements eObjectiveKind;
2581 private final ObjectiveDefinitionElements pObjectiveDefinition;
2582 private final UpperMultiplictyElements pUpperMultiplicty;
2583 private final RealElements pReal;
2584 private final QualifiedNameElements pQualifiedName;
2585 private final TerminalRule tSTRING;
2586 private final TerminalRule tQUOTED_ID;
2587 private final TerminalRule tPLUS;
2588 private final TerminalRule tSTAR;
2589 private final TerminalRule tDOT;
2590 private final NamedElementElements pNamedElement;
1481 2591
1482 private final Grammar grammar; 2592 private final Grammar grammar;
1483 2593
@@ -1490,49 +2600,72 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1490 this.gaTerminals = gaTerminals; 2600 this.gaTerminals = gaTerminals;
1491 this.pProblem = new ProblemElements(); 2601 this.pProblem = new ProblemElements();
1492 this.pStatement = new StatementElements(); 2602 this.pStatement = new StatementElements();
1493 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); 2603 this.pAssertionOrDefinition = new AssertionOrDefinitionElements();
1494 this.pREALLiteral = new REALLiteralElements(); 2604 this.pPredicateDefinition = new PredicateDefinitionElements();
1495 this.pINTLiteral = new INTLiteralElements(); 2605 this.pUnnamedErrorPrediateDefinition = new UnnamedErrorPrediateDefinitionElements();
1496 this.pBooleanValue = new BooleanValueElements(); 2606 this.pDefaultDefinition = new DefaultDefinitionElements();
1497 this.pTruthValue = new TruthValueElements(); 2607 this.pExternPredicateDefinition = new ExternPredicateDefinitionElements();
1498 this.pInterpretation = new InterpretationElements(); 2608 this.eMetricType = new MetricTypeElements();
1499 this.pBasicInterpretation = new BasicInterpretationElements(); 2609 this.pMetricDefinition = new MetricDefinitionElements();
1500 this.pSymbol = new SymbolElements(); 2610 this.pExternMetricDefinition = new ExternMetricDefinitionElements();
1501 this.pModelSymbol = new ModelSymbolElements(); 2611 this.pExpression = new ExpressionElements();
1502 this.pPartialitySymbol = new PartialitySymbolElements(); 2612 this.pIfElse = new IfElseElements();
1503 this.pExistSymbol = new ExistSymbolElements(); 2613 this.pDisjunctiveExpression = new DisjunctiveExpressionElements();
1504 this.pEqualsSymbol = new EqualsSymbolElements(); 2614 this.pCase = new CaseElements();
1505 this.pDataSymbol = new DataSymbolElements(); 2615 this.pConjunctiveExpression = new ConjunctiveExpressionElements();
1506 this.pBooleanSymbol = new BooleanSymbolElements(); 2616 this.eBinaryOperator = new BinaryOperatorElements();
1507 this.pIntegerSymbol = new IntegerSymbolElements(); 2617 this.eComparisonOperator = new ComparisonOperatorElements();
1508 this.pRealSymbol = new RealSymbolElements(); 2618 this.pComparisonExpression = new ComparisonExpressionElements();
1509 this.pStringSymbol = new StringSymbolElements(); 2619 this.eAdditiveBinaryOperator = new AdditiveBinaryOperatorElements();
1510 this.pComplexObject = new ComplexObjectElements(); 2620 this.pAdditiveExpression = new AdditiveExpressionElements();
1511 this.pObject = new ObjectElements(); 2621 this.eMultiplicativeBinaryOperator = new MultiplicativeBinaryOperatorElements();
1512 this.pNamedObject = new NamedObjectElements(); 2622 this.pMultiplicativeExpression = new MultiplicativeExpressionElements();
1513 this.pUnnamedObject = new UnnamedObjectElements(); 2623 this.eExponentialOp = new ExponentialOpElements();
1514 this.pDataObject = new DataObjectElements(); 2624 this.pExponentialExpression = new ExponentialExpressionElements();
1515 this.pBooleanObject = new BooleanObjectElements(); 2625 this.eUnaryOp = new UnaryOpElements();
1516 this.pIntObject = new IntObjectElements(); 2626 this.pUnaryExpression = new UnaryExpressionElements();
1517 this.pRealObject = new RealObjectElements(); 2627 this.pAggregationExpression = new AggregationExpressionElements();
1518 this.pStringObject = new StringObjectElements(); 2628 this.pCount = new CountElements();
1519 this.pPredicate = new PredicateElements(); 2629 this.eAggregationOp = new AggregationOpElements();
1520 this.pParameter = new ParameterElements(); 2630 this.pAggregation = new AggregationElements();
1521 this.pPatternBody = new PatternBodyElements(); 2631 this.pAtomicExpression = new AtomicExpressionElements();
1522 this.pPolarity = new PolarityElements(); 2632 this.pCall = new CallElements();
1523 this.pConstraint = new ConstraintElements(); 2633 this.pArgumentList = new ArgumentListElements();
1524 this.pClosureType = new ClosureTypeElements(); 2634 this.pArgument = new ArgumentElements();
2635 this.pExpressionArgument = new ExpressionArgumentElements();
2636 this.pStarArgument = new StarArgumentElements();
2637 this.pTypedArgument = new TypedArgumentElements();
2638 this.pTypedStarArgument = new TypedStarArgumentElements();
2639 this.pReference = new ReferenceElements();
2640 this.pInterval = new IntervalElements();
1525 this.pLiteral = new LiteralElements(); 2641 this.pLiteral = new LiteralElements();
1526 this.pVariable = new VariableElements(); 2642 this.eLogicValue = new LogicValueElements();
1527 this.pAllInstances = new AllInstancesElements(); 2643 this.pLogicLiteral = new LogicLiteralElements();
1528 this.pAllObjects = new AllObjectsElements(); 2644 this.pNumericLiteral = new NumericLiteralElements();
1529 this.pDefaultInterpretation = new DefaultInterpretationElements(); 2645 this.pInfinityLiteral = new InfinityLiteralElements();
1530 this.pCDInterpretation = new CDInterpretationElements(); 2646 this.pEmptyIntervalLiteral = new EmptyIntervalLiteralElements();
1531 this.pClassInterpretation = new ClassInterpretationElements(); 2647 this.pStringLiteral = new StringLiteralElements();
1532 this.pEnumInterpretation = new EnumInterpretationElements(); 2648 this.pClassDefinition = new ClassDefinitionElements();
1533 this.pFieldRelationInterpretation = new FieldRelationInterpretationElements(); 2649 this.pMemberDefinition = new MemberDefinitionElements();
1534 this.pGlobalRelationInterpretation = new GlobalRelationInterpretationElements(); 2650 this.pMultiplicity = new MultiplicityElements();
1535 this.pMultiplicityDefinition = new MultiplicityDefinitionElements(); 2651 this.pManyMultiplicity = new ManyMultiplicityElements();
2652 this.pExactMultiplicity = new ExactMultiplicityElements();
2653 this.pBoundedMultiplicity = new BoundedMultiplicityElements();
2654 this.pScopeDefinition = new ScopeDefinitionElements();
2655 this.pExactScopeDefinition = new ExactScopeDefinitionElements();
2656 this.pBoundedScopeDefinition = new BoundedScopeDefinitionElements();
2657 this.pLowerBoundedScopeDefinition = new LowerBoundedScopeDefinitionElements();
2658 this.eObjectiveKind = new ObjectiveKindElements();
2659 this.pObjectiveDefinition = new ObjectiveDefinitionElements();
2660 this.pUpperMultiplicty = new UpperMultiplictyElements();
2661 this.pReal = new RealElements();
2662 this.pQualifiedName = new QualifiedNameElements();
2663 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.STRING");
2664 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QUOTED_ID");
2665 this.tPLUS = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PLUS");
2666 this.tSTAR = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.STAR");
2667 this.tDOT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DOT");
2668 this.pNamedElement = new NamedElementElements();
1536 } 2669 }
1537 2670
1538 protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { 2671 protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
@@ -1573,7 +2706,9 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1573 } 2706 }
1574 2707
1575 //Statement: 2708 //Statement:
1576 // Interpretation | Predicate; 2709 // (AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition |
2710 // ExternPredicateDefinition | MetricDefinition | ExternMetricDefinition | ClassDefinition | ScopeDefinition |
2711 // ObjectiveDefinition) DOT;
1577 public StatementElements getStatementAccess() { 2712 public StatementElements getStatementAccess() {
1578 return pStatement; 2713 return pStatement;
1579 } 2714 }
@@ -1582,333 +2717,390 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1582 return getStatementAccess().getRule(); 2717 return getStatementAccess().getRule();
1583 } 2718 }
1584 2719
1585 //@Override 2720 //AssertionOrDefinition Statement:
1586 //terminal STRING: 2721 // Expression ({Assertion.body=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-"
1587 // '"' ('\\' . | !('\\' | '"'))* '"'; 2722 // body=Expression | {MetricDefinition.head=current} "=" body=Expression);
1588 public TerminalRule getSTRINGRule() { 2723 public AssertionOrDefinitionElements getAssertionOrDefinitionAccess() {
1589 return tSTRING; 2724 return pAssertionOrDefinition;
1590 } 2725 }
1591 2726
1592 //REALLiteral ecore::EBigDecimal: 2727 public ParserRule getAssertionOrDefinitionRule() {
1593 // '-'? INT '.' INT; 2728 return getAssertionOrDefinitionAccess().getRule();
1594 public REALLiteralElements getREALLiteralAccess() {
1595 return pREALLiteral;
1596 } 2729 }
1597 2730
1598 public ParserRule getREALLiteralRule() { 2731 //PredicateDefinition:
1599 return getREALLiteralAccess().getRule(); 2732 // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression;
2733 public PredicateDefinitionElements getPredicateDefinitionAccess() {
2734 return pPredicateDefinition;
1600 } 2735 }
1601 2736
1602 //INTLiteral ecore::EInt: 2737 public ParserRule getPredicateDefinitionRule() {
1603 // '-'? INT; 2738 return getPredicateDefinitionAccess().getRule();
1604 public INTLiteralElements getINTLiteralAccess() {
1605 return pINTLiteral;
1606 } 2739 }
1607 2740
1608 public ParserRule getINTLiteralRule() { 2741 //UnnamedErrorPrediateDefinition:
1609 return getINTLiteralAccess().getRule(); 2742 // "error" argumentList=ArgumentList ":-" body=Expression;
2743 public UnnamedErrorPrediateDefinitionElements getUnnamedErrorPrediateDefinitionAccess() {
2744 return pUnnamedErrorPrediateDefinition;
1610 } 2745 }
1611 2746
1612 //BooleanValue: 2747 public ParserRule getUnnamedErrorPrediateDefinitionRule() {
1613 // {BooleanTrue} 'true' | 'false' {BooleanFalse}; 2748 return getUnnamedErrorPrediateDefinitionAccess().getRule();
1614 public BooleanValueElements getBooleanValueAccess() {
1615 return pBooleanValue;
1616 } 2749 }
1617 2750
1618 public ParserRule getBooleanValueRule() { 2751 //DefaultDefinition:
1619 return getBooleanValueAccess().getRule(); 2752 // "default" head=Call ":" range=Expression;
2753 public DefaultDefinitionElements getDefaultDefinitionAccess() {
2754 return pDefaultDefinition;
1620 } 2755 }
1621 2756
1622 //TruthValue: 2757 public ParserRule getDefaultDefinitionRule() {
1623 // {True} 'true' | {False} 'false' | {Unknown} 'unknown' | {Error} 'error'; 2758 return getDefaultDefinitionAccess().getRule();
1624 public TruthValueElements getTruthValueAccess() {
1625 return pTruthValue;
1626 } 2759 }
1627 2760
1628 public ParserRule getTruthValueRule() { 2761 //ExternPredicateDefinition:
1629 return getTruthValueAccess().getRule(); 2762 // "extern" head=Call ".";
2763 public ExternPredicateDefinitionElements getExternPredicateDefinitionAccess() {
2764 return pExternPredicateDefinition;
1630 } 2765 }
1631 2766
1632 ///////////////////// 2767 public ParserRule getExternPredicateDefinitionRule() {
1633 //// Core grammar 2768 return getExternPredicateDefinitionAccess().getRule();
1634 // ///////////////////
1635 //Interpretation:
1636 // BasicInterpretation | DefaultInterpretation | CDInterpretation;
1637 public InterpretationElements getInterpretationAccess() {
1638 return pInterpretation;
1639 } 2769 }
1640 2770
1641 public ParserRule getInterpretationRule() { 2771 //enum MetricType:
1642 return getInterpretationAccess().getRule(); 2772 // INT="int" | REAL="real";
2773 public MetricTypeElements getMetricTypeAccess() {
2774 return eMetricType;
1643 } 2775 }
1644 2776
1645 //BasicInterpretation: 2777 public EnumRule getMetricTypeRule() {
1646 // symbol=Symbol ('(' (objects+=ComplexObject (',' objects+=ComplexObject)*)? ')')? ':' value=TruthValue; 2778 return getMetricTypeAccess().getRule();
1647 public BasicInterpretationElements getBasicInterpretationAccess() {
1648 return pBasicInterpretation;
1649 } 2779 }
1650 2780
1651 public ParserRule getBasicInterpretationRule() { 2781 //MetricDefinition:
1652 return getBasicInterpretationAccess().getRule(); 2782 // type=MetricType head=Expression "=" body=Expression;
2783 public MetricDefinitionElements getMetricDefinitionAccess() {
2784 return pMetricDefinition;
1653 } 2785 }
1654 2786
1655 //Symbol: 2787 public ParserRule getMetricDefinitionRule() {
1656 // ModelSymbol | PartialitySymbol | DataSymbol; 2788 return getMetricDefinitionAccess().getRule();
1657 public SymbolElements getSymbolAccess() {
1658 return pSymbol;
1659 } 2789 }
1660 2790
1661 public ParserRule getSymbolRule() { 2791 //ExternMetricDefinition:
1662 return getSymbolAccess().getRule(); 2792 // "extern" type=MetricType head=Call;
2793 public ExternMetricDefinitionElements getExternMetricDefinitionAccess() {
2794 return pExternMetricDefinition;
1663 } 2795 }
1664 2796
1665 //ModelSymbol: 2797 public ParserRule getExternMetricDefinitionRule() {
1666 // name=ID; 2798 return getExternMetricDefinitionAccess().getRule();
1667 public ModelSymbolElements getModelSymbolAccess() {
1668 return pModelSymbol;
1669 } 2799 }
1670 2800
1671 public ParserRule getModelSymbolRule() { 2801 //Expression:
1672 return getModelSymbolAccess().getRule(); 2802 // IfElse | DisjunctiveExpression;
2803 public ExpressionElements getExpressionAccess() {
2804 return pExpression;
1673 } 2805 }
1674 2806
1675 //PartialitySymbol: 2807 public ParserRule getExpressionRule() {
1676 // ExistSymbol | EqualsSymbol; 2808 return getExpressionAccess().getRule();
1677 public PartialitySymbolElements getPartialitySymbolAccess() {
1678 return pPartialitySymbol;
1679 } 2809 }
1680 2810
1681 public ParserRule getPartialitySymbolRule() { 2811 //IfElse:
1682 return getPartialitySymbolAccess().getRule(); 2812 // "if" condition=Expression "then" then=Expression "else" else=Expression;
2813 public IfElseElements getIfElseAccess() {
2814 return pIfElse;
1683 } 2815 }
1684 2816
1685 //ExistSymbol: 2817 public ParserRule getIfElseRule() {
1686 // 'exists' {ExistSymbol}; 2818 return getIfElseAccess().getRule();
1687 public ExistSymbolElements getExistSymbolAccess() {
1688 return pExistSymbol;
1689 } 2819 }
1690 2820
1691 public ParserRule getExistSymbolRule() { 2821 //DisjunctiveExpression Expression:
1692 return getExistSymbolAccess().getRule(); 2822 // ConjunctiveExpression ({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ |
2823 // {Case.condition=current} "->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)?;
2824 public DisjunctiveExpressionElements getDisjunctiveExpressionAccess() {
2825 return pDisjunctiveExpression;
1693 } 2826 }
1694 2827
1695 //EqualsSymbol: 2828 public ParserRule getDisjunctiveExpressionRule() {
1696 // 'equals' {EqualsSymbol}; 2829 return getDisjunctiveExpressionAccess().getRule();
1697 public EqualsSymbolElements getEqualsSymbolAccess() {
1698 return pEqualsSymbol;
1699 } 2830 }
1700 2831
1701 public ParserRule getEqualsSymbolRule() { 2832 //Case:
1702 return getEqualsSymbolAccess().getRule(); 2833 // condition=ConjunctiveExpression "->" body=ConjunctiveExpression;
2834 public CaseElements getCaseAccess() {
2835 return pCase;
1703 } 2836 }
1704 2837
1705 //DataSymbol: 2838 public ParserRule getCaseRule() {
1706 // BooleanSymbol | IntegerSymbol | RealSymbol | StringSymbol; 2839 return getCaseAccess().getRule();
1707 public DataSymbolElements getDataSymbolAccess() {
1708 return pDataSymbol;
1709 } 2840 }
1710 2841
1711 public ParserRule getDataSymbolRule() { 2842 //ConjunctiveExpression Expression:
1712 return getDataSymbolAccess().getRule(); 2843 // ComparisonExpression ({Conjunction.children+=current} ("," children+=ComparisonExpression)+)?;
2844 public ConjunctiveExpressionElements getConjunctiveExpressionAccess() {
2845 return pConjunctiveExpression;
1713 } 2846 }
1714 2847
1715 //BooleanSymbol: 2848 public ParserRule getConjunctiveExpressionRule() {
1716 // 'bool' {BooleanSymbol}; 2849 return getConjunctiveExpressionAccess().getRule();
1717 public BooleanSymbolElements getBooleanSymbolAccess() {
1718 return pBooleanSymbol;
1719 } 2850 }
1720 2851
1721 public ParserRule getBooleanSymbolRule() { 2852 //enum BinaryOperator:
1722 return getBooleanSymbolAccess().getRule(); 2853 // EQ | NOT_EQ | LESS | LESS_EQ | GREATER | GREATER_EQ | IN | ADD | SUB | MUL | DIV | POW;
2854 public BinaryOperatorElements getBinaryOperatorAccess() {
2855 return eBinaryOperator;
1723 } 2856 }
1724 2857
1725 //IntegerSymbol: 2858 public EnumRule getBinaryOperatorRule() {
1726 // 'int' {IntegerSymbol}; 2859 return getBinaryOperatorAccess().getRule();
1727 public IntegerSymbolElements getIntegerSymbolAccess() {
1728 return pIntegerSymbol;
1729 } 2860 }
1730 2861
1731 public ParserRule getIntegerSymbolRule() { 2862 //enum ComparisonOperator returns BinaryOperator:
1732 return getIntegerSymbolAccess().getRule(); 2863 // EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in";
2864 public ComparisonOperatorElements getComparisonOperatorAccess() {
2865 return eComparisonOperator;
1733 } 2866 }
1734 2867
1735 //RealSymbol: 2868 public EnumRule getComparisonOperatorRule() {
1736 // 'real' {RealSymbol}; 2869 return getComparisonOperatorAccess().getRule();
1737 public RealSymbolElements getRealSymbolAccess() {
1738 return pRealSymbol;
1739 } 2870 }
1740 2871
1741 public ParserRule getRealSymbolRule() { 2872 //ComparisonExpression Expression:
1742 return getRealSymbolAccess().getRule(); 2873 // AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?;
2874 public ComparisonExpressionElements getComparisonExpressionAccess() {
2875 return pComparisonExpression;
1743 } 2876 }
1744 2877
1745 //StringSymbol: 2878 public ParserRule getComparisonExpressionRule() {
1746 // 'string' {StringSymbol}; 2879 return getComparisonExpressionAccess().getRule();
1747 public StringSymbolElements getStringSymbolAccess() {
1748 return pStringSymbol;
1749 } 2880 }
1750 2881
1751 public ParserRule getStringSymbolRule() { 2882 //enum AdditiveBinaryOperator returns BinaryOperator:
1752 return getStringSymbolAccess().getRule(); 2883 // ADD="+" | SUB="-";
2884 public AdditiveBinaryOperatorElements getAdditiveBinaryOperatorAccess() {
2885 return eAdditiveBinaryOperator;
1753 } 2886 }
1754 2887
1755 //ComplexObject: 2888 public EnumRule getAdditiveBinaryOperatorRule() {
1756 // Object | AllInstances | AllObjects; 2889 return getAdditiveBinaryOperatorAccess().getRule();
1757 public ComplexObjectElements getComplexObjectAccess() {
1758 return pComplexObject;
1759 } 2890 }
1760 2891
1761 public ParserRule getComplexObjectRule() { 2892 //AdditiveExpression Expression:
1762 return getComplexObjectAccess().getRule(); 2893 // MultiplicativeExpression ({BinaryExpression.left=current} op=AdditiveBinaryOperator right=MultiplicativeExpression)*;
2894 public AdditiveExpressionElements getAdditiveExpressionAccess() {
2895 return pAdditiveExpression;
1763 } 2896 }
1764 2897
1765 //Object: 2898 public ParserRule getAdditiveExpressionRule() {
1766 // NamedObject | UnnamedObject | DataObject; 2899 return getAdditiveExpressionAccess().getRule();
1767 public ObjectElements getObjectAccess() {
1768 return pObject;
1769 } 2900 }
1770 2901
1771 public ParserRule getObjectRule() { 2902 //enum MultiplicativeBinaryOperator returns BinaryOperator:
1772 return getObjectAccess().getRule(); 2903 // MUL="*" | DIV="/";
2904 public MultiplicativeBinaryOperatorElements getMultiplicativeBinaryOperatorAccess() {
2905 return eMultiplicativeBinaryOperator;
1773 } 2906 }
1774 2907
1775 //NamedObject: 2908 public EnumRule getMultiplicativeBinaryOperatorRule() {
1776 // "'" name=ID "'"; 2909 return getMultiplicativeBinaryOperatorAccess().getRule();
1777 public NamedObjectElements getNamedObjectAccess() {
1778 return pNamedObject;
1779 } 2910 }
1780 2911
1781 public ParserRule getNamedObjectRule() { 2912 //MultiplicativeExpression Expression:
1782 return getNamedObjectAccess().getRule(); 2913 // ExponentialExpression ({BinaryExpression.left=current} op=MultiplicativeBinaryOperator right=ExponentialExpression)*;
2914 public MultiplicativeExpressionElements getMultiplicativeExpressionAccess() {
2915 return pMultiplicativeExpression;
1783 } 2916 }
1784 2917
1785 //UnnamedObject: 2918 public ParserRule getMultiplicativeExpressionRule() {
1786 // name=ID; 2919 return getMultiplicativeExpressionAccess().getRule();
1787 public UnnamedObjectElements getUnnamedObjectAccess() {
1788 return pUnnamedObject;
1789 } 2920 }
1790 2921
1791 public ParserRule getUnnamedObjectRule() { 2922 //enum ExponentialOp returns BinaryOperator:
1792 return getUnnamedObjectAccess().getRule(); 2923 // POW="^";
2924 public ExponentialOpElements getExponentialOpAccess() {
2925 return eExponentialOp;
1793 } 2926 }
1794 2927
1795 //DataObject: 2928 public EnumRule getExponentialOpRule() {
1796 // BooleanObject | IntObject | RealObject | StringObject; 2929 return getExponentialOpAccess().getRule();
1797 public DataObjectElements getDataObjectAccess() {
1798 return pDataObject;
1799 } 2930 }
1800 2931
1801 public ParserRule getDataObjectRule() { 2932 //ExponentialExpression Expression:
1802 return getDataObjectAccess().getRule(); 2933 // UnaryExpression ({BinaryExpression.left=current} op=ExponentialOp right=ExponentialExpression)?;
2934 public ExponentialExpressionElements getExponentialExpressionAccess() {
2935 return pExponentialExpression;
1803 } 2936 }
1804 2937
1805 //BooleanObject: 2938 public ParserRule getExponentialExpressionRule() {
1806 // value=BooleanValue; 2939 return getExponentialExpressionAccess().getRule();
1807 public BooleanObjectElements getBooleanObjectAccess() {
1808 return pBooleanObject;
1809 } 2940 }
1810 2941
1811 public ParserRule getBooleanObjectRule() { 2942 //enum UnaryOp:
1812 return getBooleanObjectAccess().getRule(); 2943 // NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current";
2944 public UnaryOpElements getUnaryOpAccess() {
2945 return eUnaryOp;
1813 } 2946 }
1814 2947
1815 //IntObject: 2948 public EnumRule getUnaryOpRule() {
1816 // value=INTLiteral; 2949 return getUnaryOpAccess().getRule();
1817 public IntObjectElements getIntObjectAccess() {
1818 return pIntObject;
1819 } 2950 }
1820 2951
1821 public ParserRule getIntObjectRule() { 2952 //UnaryExpression Expression:
1822 return getIntObjectAccess().getRule(); 2953 // AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression;
2954 public UnaryExpressionElements getUnaryExpressionAccess() {
2955 return pUnaryExpression;
1823 } 2956 }
1824 2957
1825 //RealObject: 2958 public ParserRule getUnaryExpressionRule() {
1826 // value=REALLiteral; 2959 return getUnaryExpressionAccess().getRule();
1827 public RealObjectElements getRealObjectAccess() {
1828 return pRealObject;
1829 } 2960 }
1830 2961
1831 public ParserRule getRealObjectRule() { 2962 //AggregationExpression Expression:
1832 return getRealObjectAccess().getRule(); 2963 // AtomicExpression | Count | Aggregation;
2964 public AggregationExpressionElements getAggregationExpressionAccess() {
2965 return pAggregationExpression;
1833 } 2966 }
1834 2967
1835 //StringObject: 2968 public ParserRule getAggregationExpressionRule() {
1836 // value=STRING; 2969 return getAggregationExpressionAccess().getRule();
1837 public StringObjectElements getStringObjectAccess() { 2970 }
1838 return pStringObject; 2971
2972 //Count:
2973 // "count" "{" body=Expression "}";
2974 public CountElements getCountAccess() {
2975 return pCount;
2976 }
2977
2978 public ParserRule getCountRule() {
2979 return getCountAccess().getRule();
2980 }
2981
2982 //enum AggregationOp:
2983 // ONLY="only" | SUM="sum" | PROD="prod" | AVG="avg" | MIN="min" | MAX="max";
2984 public AggregationOpElements getAggregationOpAccess() {
2985 return eAggregationOp;
1839 } 2986 }
1840 2987
1841 public ParserRule getStringObjectRule() { 2988 public EnumRule getAggregationOpRule() {
1842 return getStringObjectAccess().getRule(); 2989 return getAggregationOpAccess().getRule();
1843 } 2990 }
1844 2991
1845 ///////////////////// 2992 //Aggregation:
1846 //// Predicte grammar 2993 // op=AggregationOp "{" body=Expression "|" condition=Expression "}";
1847 ///////////////////// 2994 public AggregationElements getAggregationAccess() {
1848 //Predicate: 2995 return pAggregation;
1849 // isError?='error'? symbol=ModelSymbol ('(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')')? ':-' ('false' |
1850 // bodies+=PatternBody ('|' bodies+=PatternBody)*) '.';
1851 public PredicateElements getPredicateAccess() {
1852 return pPredicate;
1853 } 2996 }
1854 2997
1855 public ParserRule getPredicateRule() { 2998 public ParserRule getAggregationRule() {
1856 return getPredicateAccess().getRule(); 2999 return getAggregationAccess().getRule();
1857 } 3000 }
1858 3001
1859 //Parameter: 3002 //AtomicExpression Expression:
1860 // variable=Variable (':' type=Symbol)?; 3003 // Reference ({Call.functor=current} -> argumentList=ArgumentList)? | Interval | Literal | "(" Expression ")";
1861 public ParameterElements getParameterAccess() { 3004 public AtomicExpressionElements getAtomicExpressionAccess() {
1862 return pParameter; 3005 return pAtomicExpression;
1863 } 3006 }
1864 3007
1865 public ParserRule getParameterRule() { 3008 public ParserRule getAtomicExpressionRule() {
1866 return getParameterAccess().getRule(); 3009 return getAtomicExpressionAccess().getRule();
1867 } 3010 }
1868 3011
1869 //PatternBody: 3012 //Call:
1870 // {PatternBody} ('true' | constraints+=Constraint*); 3013 // functor=Reference (transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)? argumentList=ArgumentList;
1871 public PatternBodyElements getPatternBodyAccess() { 3014 public CallElements getCallAccess() {
1872 return pPatternBody; 3015 return pCall;
1873 } 3016 }
1874 3017
1875 public ParserRule getPatternBodyRule() { 3018 public ParserRule getCallRule() {
1876 return getPatternBodyAccess().getRule(); 3019 return getCallAccess().getRule();
1877 } 3020 }
1878 3021
1879 //Polarity: 3022 //ArgumentList:
1880 // {Positive} '+' | {Negative} '-'; 3023 // {ArgumentList} "(" (arguments+=Argument ("," arguments+=Argument)*)? ")";
1881 public PolarityElements getPolarityAccess() { 3024 public ArgumentListElements getArgumentListAccess() {
1882 return pPolarity; 3025 return pArgumentList;
1883 } 3026 }
1884 3027
1885 public ParserRule getPolarityRule() { 3028 public ParserRule getArgumentListRule() {
1886 return getPolarityAccess().getRule(); 3029 return getArgumentListAccess().getRule();
1887 } 3030 }
1888 3031
1889 //Constraint: 3032 //Argument:
1890 // polarity=Polarity? symbol=ModelSymbol ('(' params+=Literal? (',' params+=Literal)* ')')? | closureType=ClosureType 3033 // ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument;
1891 // '(' params+=Literal? (',' params+=Literal)* ')'; 3034 public ArgumentElements getArgumentAccess() {
1892 public ConstraintElements getConstraintAccess() { 3035 return pArgument;
1893 return pConstraint;
1894 } 3036 }
1895 3037
1896 public ParserRule getConstraintRule() { 3038 public ParserRule getArgumentRule() {
1897 return getConstraintAccess().getRule(); 3039 return getArgumentAccess().getRule();
1898 } 3040 }
1899 3041
1900 //ClosureType: 3042 //ExpressionArgument:
1901 // {ReflexiveClosure} '*' | {IrreflexiveClosure} '+'; 3043 // body=ComparisonExpression;
1902 public ClosureTypeElements getClosureTypeAccess() { 3044 public ExpressionArgumentElements getExpressionArgumentAccess() {
1903 return pClosureType; 3045 return pExpressionArgument;
1904 } 3046 }
1905 3047
1906 public ParserRule getClosureTypeRule() { 3048 public ParserRule getExpressionArgumentRule() {
1907 return getClosureTypeAccess().getRule(); 3049 return getExpressionArgumentAccess().getRule();
3050 }
3051
3052 //StarArgument:
3053 // {StarArgument} "*";
3054 public StarArgumentElements getStarArgumentAccess() {
3055 return pStarArgument;
3056 }
3057
3058 public ParserRule getStarArgumentRule() {
3059 return getStarArgumentAccess().getRule();
3060 }
3061
3062 //TypedArgument:
3063 // type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName];
3064 public TypedArgumentElements getTypedArgumentAccess() {
3065 return pTypedArgument;
3066 }
3067
3068 public ParserRule getTypedArgumentRule() {
3069 return getTypedArgumentAccess().getRule();
3070 }
3071
3072 //TypedStarArgument:
3073 // type=[NamedElement|QualifiedName] "*";
3074 public TypedStarArgumentElements getTypedStarArgumentAccess() {
3075 return pTypedStarArgument;
3076 }
3077
3078 public ParserRule getTypedStarArgumentRule() {
3079 return getTypedStarArgumentAccess().getRule();
3080 }
3081
3082 //Reference:
3083 // referred=[NamedElement|QualifiedName];
3084 public ReferenceElements getReferenceAccess() {
3085 return pReference;
3086 }
3087
3088 public ParserRule getReferenceRule() {
3089 return getReferenceAccess().getRule();
3090 }
3091
3092 //Interval:
3093 // "[" lowerBound=Expression ".." upperBound=Expression "]";
3094 public IntervalElements getIntervalAccess() {
3095 return pInterval;
3096 }
3097
3098 public ParserRule getIntervalRule() {
3099 return getIntervalAccess().getRule();
1908 } 3100 }
1909 3101
1910 //Literal: 3102 //Literal:
1911 // Variable | DataObject | NamedObject; 3103 // LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral;
1912 public LiteralElements getLiteralAccess() { 3104 public LiteralElements getLiteralAccess() {
1913 return pLiteral; 3105 return pLiteral;
1914 } 3106 }
@@ -1917,116 +3109,260 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder {
1917 return getLiteralAccess().getRule(); 3109 return getLiteralAccess().getRule();
1918 } 3110 }
1919 3111
1920 //Variable: 3112 //enum LogicValue:
1921 // name=ID; 3113 // TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error";
1922 public VariableElements getVariableAccess() { 3114 public LogicValueElements getLogicValueAccess() {
1923 return pVariable; 3115 return eLogicValue;
3116 }
3117
3118 public EnumRule getLogicValueRule() {
3119 return getLogicValueAccess().getRule();
3120 }
3121
3122 //LogicLiteral:
3123 // value=LogicValue;
3124 public LogicLiteralElements getLogicLiteralAccess() {
3125 return pLogicLiteral;
3126 }
3127
3128 public ParserRule getLogicLiteralRule() {
3129 return getLogicLiteralAccess().getRule();
3130 }
3131
3132 //NumericLiteral:
3133 // value=Real;
3134 public NumericLiteralElements getNumericLiteralAccess() {
3135 return pNumericLiteral;
3136 }
3137
3138 public ParserRule getNumericLiteralRule() {
3139 return getNumericLiteralAccess().getRule();
3140 }
3141
3142 //InfinityLiteral:
3143 // {InfinityLiteral} "inf";
3144 public InfinityLiteralElements getInfinityLiteralAccess() {
3145 return pInfinityLiteral;
3146 }
3147
3148 public ParserRule getInfinityLiteralRule() {
3149 return getInfinityLiteralAccess().getRule();
3150 }
3151
3152 //EmptyIntervalLiteral:
3153 // {EmptyIntervalLiteral} "empty";
3154 public EmptyIntervalLiteralElements getEmptyIntervalLiteralAccess() {
3155 return pEmptyIntervalLiteral;
3156 }
3157
3158 public ParserRule getEmptyIntervalLiteralRule() {
3159 return getEmptyIntervalLiteralAccess().getRule();
3160 }
3161
3162 //StringLiteral:
3163 // value=STRING;
3164 public StringLiteralElements getStringLiteralAccess() {
3165 return pStringLiteral;
3166 }
3167
3168 public ParserRule getStringLiteralRule() {
3169 return getStringLiteralAccess().getRule();
3170 }
3171
3172 //ClassDefinition Statement:
3173 // abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] (","
3174 // superclasses+=[NamedElement|QualifiedName])*)?
3175 // "{" members+=MemberDefinition* "}";
3176 public ClassDefinitionElements getClassDefinitionAccess() {
3177 return pClassDefinition;
3178 }
3179
3180 public ParserRule getClassDefinitionRule() {
3181 return getClassDefinitionAccess().getRule();
3182 }
3183
3184 //MemberDefinition:
3185 // containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite"
3186 // opposite=[NamedElement|QualifiedName])? ";"?;
3187 public MemberDefinitionElements getMemberDefinitionAccess() {
3188 return pMemberDefinition;
3189 }
3190
3191 public ParserRule getMemberDefinitionRule() {
3192 return getMemberDefinitionAccess().getRule();
3193 }
3194
3195 //Multiplicity:
3196 // ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity;
3197 public MultiplicityElements getMultiplicityAccess() {
3198 return pMultiplicity;
3199 }
3200
3201 public ParserRule getMultiplicityRule() {
3202 return getMultiplicityAccess().getRule();
3203 }
3204
3205 //ManyMultiplicity:
3206 // {ManyMultiplicity} "[" "]";
3207 public ManyMultiplicityElements getManyMultiplicityAccess() {
3208 return pManyMultiplicity;
3209 }
3210
3211 public ParserRule getManyMultiplicityRule() {
3212 return getManyMultiplicityAccess().getRule();
3213 }
3214
3215 //ExactMultiplicity:
3216 // "[" multiplicity=UpperMultiplicty "]";
3217 public ExactMultiplicityElements getExactMultiplicityAccess() {
3218 return pExactMultiplicity;
3219 }
3220
3221 public ParserRule getExactMultiplicityRule() {
3222 return getExactMultiplicityAccess().getRule();
1924 } 3223 }
1925 3224
1926 public ParserRule getVariableRule() { 3225 //BoundedMultiplicity:
1927 return getVariableAccess().getRule(); 3226 // "[" lowerBound=INT ".." upperBound=UpperMultiplicty "]";
3227 public BoundedMultiplicityElements getBoundedMultiplicityAccess() {
3228 return pBoundedMultiplicity;
1928 } 3229 }
1929 3230
1930 ///////////////////// 3231 public ParserRule getBoundedMultiplicityRule() {
1931 //// Complex Interpretation grammar 3232 return getBoundedMultiplicityAccess().getRule();
1932 /////////////////////
1933 //AllInstances:
1934 // ':' symbol=Symbol;
1935 public AllInstancesElements getAllInstancesAccess() {
1936 return pAllInstances;
1937 } 3233 }
1938 3234
1939 public ParserRule getAllInstancesRule() { 3235 //ScopeDefinition:
1940 return getAllInstancesAccess().getRule(); 3236 // ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition;
3237 public ScopeDefinitionElements getScopeDefinitionAccess() {
3238 return pScopeDefinition;
1941 } 3239 }
1942 3240
1943 //AllObjects: 3241 public ParserRule getScopeDefinitionRule() {
1944 // {AllObjects} '*'; 3242 return getScopeDefinitionAccess().getRule();
1945 public AllObjectsElements getAllObjectsAccess() {
1946 return pAllObjects;
1947 } 3243 }
1948 3244
1949 public ParserRule getAllObjectsRule() { 3245 //ExactScopeDefinition:
1950 return getAllObjectsAccess().getRule(); 3246 // "scope" type=[NamedElement|QualifiedName] "==" exactScope=INT;
3247 public ExactScopeDefinitionElements getExactScopeDefinitionAccess() {
3248 return pExactScopeDefinition;
1951 } 3249 }
1952 3250
1953 ///////////////////// 3251 public ParserRule getExactScopeDefinitionRule() {
1954 //// Defaul Interpretation grammar 3252 return getExactScopeDefinitionAccess().getRule();
1955 /////////////////////
1956 //DefaultInterpretation:
1957 // 'default' interpretation=BasicInterpretation;
1958 public DefaultInterpretationElements getDefaultInterpretationAccess() {
1959 return pDefaultInterpretation;
1960 } 3253 }
1961 3254
1962 public ParserRule getDefaultInterpretationRule() { 3255 //BoundedScopeDefinition:
1963 return getDefaultInterpretationAccess().getRule(); 3256 // "scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">="
3257 // type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) ".";
3258 public BoundedScopeDefinitionElements getBoundedScopeDefinitionAccess() {
3259 return pBoundedScopeDefinition;
1964 } 3260 }
1965 3261
1966 ///////////////////// 3262 public ParserRule getBoundedScopeDefinitionRule() {
1967 //// Advanced Class-Diagram interpretations 3263 return getBoundedScopeDefinitionAccess().getRule();
1968 /////////////////////
1969 //CDInterpretation:
1970 // ClassInterpretation | EnumInterpretation | GlobalRelationInterpretation;
1971 public CDInterpretationElements getCDInterpretationAccess() {
1972 return pCDInterpretation;
1973 } 3264 }
1974 3265
1975 public ParserRule getCDInterpretationRule() { 3266 //LowerBoundedScopeDefinition:
1976 return getCDInterpretationAccess().getRule(); 3267 // "scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">="
3268 // lowerBound=INT) ".";
3269 public LowerBoundedScopeDefinitionElements getLowerBoundedScopeDefinitionAccess() {
3270 return pLowerBoundedScopeDefinition;
1977 } 3271 }
1978 3272
1979 //ClassInterpretation: 3273 public ParserRule getLowerBoundedScopeDefinitionRule() {
1980 // abstract?='abstract'? 'class' symbol=ModelSymbol ('extends' supertypes+=ModelSymbol+)? '{' 3274 return getLowerBoundedScopeDefinitionAccess().getRule();
1981 // fielt+=FieldRelationInterpretation*
1982 // '}';
1983 public ClassInterpretationElements getClassInterpretationAccess() {
1984 return pClassInterpretation;
1985 } 3275 }
1986 3276
1987 public ParserRule getClassInterpretationRule() { 3277 //enum ObjectiveKind:
1988 return getClassInterpretationAccess().getRule(); 3278 // MINIMIZE="minimize" | MAXIMIZE="maximize";
3279 public ObjectiveKindElements getObjectiveKindAccess() {
3280 return eObjectiveKind;
1989 } 3281 }
1990 3282
1991 //EnumInterpretation: 3283 public EnumRule getObjectiveKindRule() {
1992 // 'enum' Symbol=ModelSymbol '{' objects+=NamedObject+ '}'; 3284 return getObjectiveKindAccess().getRule();
1993 public EnumInterpretationElements getEnumInterpretationAccess() {
1994 return pEnumInterpretation;
1995 } 3285 }
1996 3286
1997 public ParserRule getEnumInterpretationRule() { 3287 //ObjectiveDefinition:
1998 return getEnumInterpretationAccess().getRule(); 3288 // kind=ObjectiveKind objective=Expression;
3289 public ObjectiveDefinitionElements getObjectiveDefinitionAccess() {
3290 return pObjectiveDefinition;
3291 }
3292
3293 public ParserRule getObjectiveDefinitionRule() {
3294 return getObjectiveDefinitionAccess().getRule();
3295 }
3296
3297 //UpperMultiplicty ecore::EInt:
3298 // INT | "*";
3299 public UpperMultiplictyElements getUpperMultiplictyAccess() {
3300 return pUpperMultiplicty;
3301 }
3302
3303 public ParserRule getUpperMultiplictyRule() {
3304 return getUpperMultiplictyAccess().getRule();
3305 }
3306
3307 //Real ecore::EBigDecimal hidden():
3308 // INT ("." INT)?;
3309 public RealElements getRealAccess() {
3310 return pReal;
3311 }
3312
3313 public ParserRule getRealRule() {
3314 return getRealAccess().getRule();
3315 }
3316
3317 //QualifiedName hidden():
3318 // ID ("." ID)* | QUOTED_ID;
3319 public QualifiedNameElements getQualifiedNameAccess() {
3320 return pQualifiedName;
3321 }
3322
3323 public ParserRule getQualifiedNameRule() {
3324 return getQualifiedNameAccess().getRule();
3325 }
3326
3327 //@Override
3328 //terminal STRING:
3329 // '"' ('\\' . | !('\\' | '"'))* '"';
3330 public TerminalRule getSTRINGRule() {
3331 return tSTRING;
1999 } 3332 }
2000 3333
2001 //FieldRelationInterpretation: 3334 //terminal QUOTED_ID:
2002 // containment?='containment'? symbol=ModelSymbol ':' multiplicity=MultiplicityDefinition? target=Symbol; 3335 // '\'' ('\\' . | !('\\' | '\''))* '\'';
2003 public FieldRelationInterpretationElements getFieldRelationInterpretationAccess() { 3336 public TerminalRule getQUOTED_IDRule() {
2004 return pFieldRelationInterpretation; 3337 return tQUOTED_ID;
2005 } 3338 }
2006 3339
2007 public ParserRule getFieldRelationInterpretationRule() { 3340 //terminal PLUS:
2008 return getFieldRelationInterpretationAccess().getRule(); 3341 // "synthetic::plus";
3342 public TerminalRule getPLUSRule() {
3343 return tPLUS;
2009 } 3344 }
2010 3345
2011 //GlobalRelationInterpretation: 3346 //terminal STAR:
2012 // containment?='containment'? 'relation' symbol=ModelSymbol ':' sourceMultiplicity=MultiplicityDefinition? 3347 // "synthetic::star";
2013 // source=Symbol targetMultiplicity=MultiplicityDefinition? target=Symbol; 3348 public TerminalRule getSTARRule() {
2014 public GlobalRelationInterpretationElements getGlobalRelationInterpretationAccess() { 3349 return tSTAR;
2015 return pGlobalRelationInterpretation;
2016 } 3350 }
2017 3351
2018 public ParserRule getGlobalRelationInterpretationRule() { 3352 //terminal DOT:
2019 return getGlobalRelationInterpretationAccess().getRule(); 3353 // "synthetic::dot";
3354 public TerminalRule getDOTRule() {
3355 return tDOT;
2020 } 3356 }
2021 3357
2022 //MultiplicityDefinition: 3358 //NamedElement:
2023 // lower=INT '..' (upper=INT | unlimitedUpper?='*'); 3359 // name=QualifiedName;
2024 public MultiplicityDefinitionElements getMultiplicityDefinitionAccess() { 3360 public NamedElementElements getNamedElementAccess() {
2025 return pMultiplicityDefinition; 3361 return pNamedElement;
2026 } 3362 }
2027 3363
2028 public ParserRule getMultiplicityDefinitionRule() { 3364 public ParserRule getNamedElementRule() {
2029 return getMultiplicityDefinitionAccess().getRule(); 3365 return getNamedElementAccess().getRule();
2030 } 3366 }
2031 3367
2032 //terminal ID: 3368 //terminal ID:
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Aggregation.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Aggregation.java
new file mode 100644
index 00000000..8641f197
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Aggregation.java
@@ -0,0 +1,96 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Aggregation</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getOp <em>Op</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getBody <em>Body</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getCondition <em>Condition</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregation()
22 * @model
23 * @generated
24 */
25public interface Aggregation extends Expression
26{
27 /**
28 * Returns the value of the '<em><b>Op</b></em>' attribute.
29 * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.AggregationOp}.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>Op</em>' attribute.
33 * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp
34 * @see #setOp(AggregationOp)
35 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregation_Op()
36 * @model
37 * @generated
38 */
39 AggregationOp getOp();
40
41 /**
42 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getOp <em>Op</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Op</em>' attribute.
46 * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp
47 * @see #getOp()
48 * @generated
49 */
50 void setOp(AggregationOp value);
51
52 /**
53 * Returns the value of the '<em><b>Body</b></em>' containment reference.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @return the value of the '<em>Body</em>' containment reference.
57 * @see #setBody(Expression)
58 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregation_Body()
59 * @model containment="true"
60 * @generated
61 */
62 Expression getBody();
63
64 /**
65 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getBody <em>Body</em>}' containment reference.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @param value the new value of the '<em>Body</em>' containment reference.
69 * @see #getBody()
70 * @generated
71 */
72 void setBody(Expression value);
73
74 /**
75 * Returns the value of the '<em><b>Condition</b></em>' containment reference.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @return the value of the '<em>Condition</em>' containment reference.
79 * @see #setCondition(Expression)
80 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregation_Condition()
81 * @model containment="true"
82 * @generated
83 */
84 Expression getCondition();
85
86 /**
87 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getCondition <em>Condition</em>}' containment reference.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @param value the new value of the '<em>Condition</em>' containment reference.
91 * @see #getCondition()
92 * @generated
93 */
94 void setCondition(Expression value);
95
96} // Aggregation
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AggregationOp.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AggregationOp.java
new file mode 100644
index 00000000..1a0664ed
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AggregationOp.java
@@ -0,0 +1,317 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import java.util.Arrays;
7import java.util.Collections;
8import java.util.List;
9
10import org.eclipse.emf.common.util.Enumerator;
11
12/**
13 * <!-- begin-user-doc -->
14 * A representation of the literals of the enumeration '<em><b>Aggregation Op</b></em>',
15 * and utility methods for working with them.
16 * <!-- end-user-doc -->
17 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregationOp()
18 * @model
19 * @generated
20 */
21public enum AggregationOp implements Enumerator
22{
23 /**
24 * The '<em><b>ONLY</b></em>' literal object.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @see #ONLY_VALUE
28 * @generated
29 * @ordered
30 */
31 ONLY(0, "ONLY", "only"),
32
33 /**
34 * The '<em><b>SUM</b></em>' literal object.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @see #SUM_VALUE
38 * @generated
39 * @ordered
40 */
41 SUM(1, "SUM", "sum"),
42
43 /**
44 * The '<em><b>PROD</b></em>' literal object.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #PROD_VALUE
48 * @generated
49 * @ordered
50 */
51 PROD(2, "PROD", "prod"),
52
53 /**
54 * The '<em><b>AVG</b></em>' literal object.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @see #AVG_VALUE
58 * @generated
59 * @ordered
60 */
61 AVG(3, "AVG", "avg"),
62
63 /**
64 * The '<em><b>MIN</b></em>' literal object.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @see #MIN_VALUE
68 * @generated
69 * @ordered
70 */
71 MIN(4, "MIN", "min"),
72
73 /**
74 * The '<em><b>MAX</b></em>' literal object.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #MAX_VALUE
78 * @generated
79 * @ordered
80 */
81 MAX(5, "MAX", "max");
82
83 /**
84 * The '<em><b>ONLY</b></em>' literal value.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @see #ONLY
88 * @model literal="only"
89 * @generated
90 * @ordered
91 */
92 public static final int ONLY_VALUE = 0;
93
94 /**
95 * The '<em><b>SUM</b></em>' literal value.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @see #SUM
99 * @model literal="sum"
100 * @generated
101 * @ordered
102 */
103 public static final int SUM_VALUE = 1;
104
105 /**
106 * The '<em><b>PROD</b></em>' literal value.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @see #PROD
110 * @model literal="prod"
111 * @generated
112 * @ordered
113 */
114 public static final int PROD_VALUE = 2;
115
116 /**
117 * The '<em><b>AVG</b></em>' literal value.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @see #AVG
121 * @model literal="avg"
122 * @generated
123 * @ordered
124 */
125 public static final int AVG_VALUE = 3;
126
127 /**
128 * The '<em><b>MIN</b></em>' literal value.
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @see #MIN
132 * @model literal="min"
133 * @generated
134 * @ordered
135 */
136 public static final int MIN_VALUE = 4;
137
138 /**
139 * The '<em><b>MAX</b></em>' literal value.
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @see #MAX
143 * @model literal="max"
144 * @generated
145 * @ordered
146 */
147 public static final int MAX_VALUE = 5;
148
149 /**
150 * An array of all the '<em><b>Aggregation Op</b></em>' enumerators.
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 private static final AggregationOp[] VALUES_ARRAY =
156 new AggregationOp[]
157 {
158 ONLY,
159 SUM,
160 PROD,
161 AVG,
162 MIN,
163 MAX,
164 };
165
166 /**
167 * A public read-only list of all the '<em><b>Aggregation Op</b></em>' enumerators.
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @generated
171 */
172 public static final List<AggregationOp> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
173
174 /**
175 * Returns the '<em><b>Aggregation Op</b></em>' literal with the specified literal value.
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @param literal the literal.
179 * @return the matching enumerator or <code>null</code>.
180 * @generated
181 */
182 public static AggregationOp get(String literal)
183 {
184 for (int i = 0; i < VALUES_ARRAY.length; ++i)
185 {
186 AggregationOp result = VALUES_ARRAY[i];
187 if (result.toString().equals(literal))
188 {
189 return result;
190 }
191 }
192 return null;
193 }
194
195 /**
196 * Returns the '<em><b>Aggregation Op</b></em>' literal with the specified name.
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @param name the name.
200 * @return the matching enumerator or <code>null</code>.
201 * @generated
202 */
203 public static AggregationOp getByName(String name)
204 {
205 for (int i = 0; i < VALUES_ARRAY.length; ++i)
206 {
207 AggregationOp result = VALUES_ARRAY[i];
208 if (result.getName().equals(name))
209 {
210 return result;
211 }
212 }
213 return null;
214 }
215
216 /**
217 * Returns the '<em><b>Aggregation Op</b></em>' literal with the specified integer value.
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @param value the integer value.
221 * @return the matching enumerator or <code>null</code>.
222 * @generated
223 */
224 public static AggregationOp get(int value)
225 {
226 switch (value)
227 {
228 case ONLY_VALUE: return ONLY;
229 case SUM_VALUE: return SUM;
230 case PROD_VALUE: return PROD;
231 case AVG_VALUE: return AVG;
232 case MIN_VALUE: return MIN;
233 case MAX_VALUE: return MAX;
234 }
235 return null;
236 }
237
238 /**
239 * <!-- begin-user-doc -->
240 * <!-- end-user-doc -->
241 * @generated
242 */
243 private final int value;
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 private final String name;
251
252 /**
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @generated
256 */
257 private final String literal;
258
259 /**
260 * Only this class can construct instances.
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 private AggregationOp(int value, String name, String literal)
266 {
267 this.value = value;
268 this.name = name;
269 this.literal = literal;
270 }
271
272 /**
273 * <!-- begin-user-doc -->
274 * <!-- end-user-doc -->
275 * @generated
276 */
277 @Override
278 public int getValue()
279 {
280 return value;
281 }
282
283 /**
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 */
288 @Override
289 public String getName()
290 {
291 return name;
292 }
293
294 /**
295 * <!-- begin-user-doc -->
296 * <!-- end-user-doc -->
297 * @generated
298 */
299 @Override
300 public String getLiteral()
301 {
302 return literal;
303 }
304
305 /**
306 * Returns the literal value of the enumerator, which is its string representation.
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public String toString()
313 {
314 return literal;
315 }
316
317} //AggregationOp
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllInstances.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllInstances.java
deleted file mode 100644
index 17cb45fb..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllInstances.java
+++ /dev/null
@@ -1,47 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>All Instances</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances#getSymbol <em>Symbol</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAllInstances()
20 * @model
21 * @generated
22 */
23public interface AllInstances extends ComplexObject
24{
25 /**
26 * Returns the value of the '<em><b>Symbol</b></em>' containment reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Symbol</em>' containment reference.
30 * @see #setSymbol(Symbol)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAllInstances_Symbol()
32 * @model containment="true"
33 * @generated
34 */
35 Symbol getSymbol();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances#getSymbol <em>Symbol</em>}' containment reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Symbol</em>' containment reference.
42 * @see #getSymbol()
43 * @generated
44 */
45 void setSymbol(Symbol value);
46
47} // AllInstances
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllObjects.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllObjects.java
deleted file mode 100644
index fbb18046..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllObjects.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>All Objects</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAllObjects()
14 * @model
15 * @generated
16 */
17public interface AllObjects extends ComplexObject
18{
19} // AllObjects
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Polarity.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Argument.java
index ba30c6ad..73c79940 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Polarity.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Argument.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
@@ -7,14 +7,14 @@ import org.eclipse.emf.ecore.EObject;
7 7
8/** 8/**
9 * <!-- begin-user-doc --> 9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Polarity</b></em>'. 10 * A representation of the model object '<em><b>Argument</b></em>'.
11 * <!-- end-user-doc --> 11 * <!-- end-user-doc -->
12 * 12 *
13 * 13 *
14 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPolarity() 14 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getArgument()
15 * @model 15 * @model
16 * @generated 16 * @generated
17 */ 17 */
18public interface Polarity extends EObject 18public interface Argument extends EObject
19{ 19{
20} // Polarity 20} // Argument
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PatternBody.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ArgumentList.java
index 62be12a1..4a932fea 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PatternBody.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ArgumentList.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
@@ -9,32 +9,32 @@ import org.eclipse.emf.ecore.EObject;
9 9
10/** 10/**
11 * <!-- begin-user-doc --> 11 * <!-- begin-user-doc -->
12 * A representation of the model object '<em><b>Pattern Body</b></em>'. 12 * A representation of the model object '<em><b>Argument List</b></em>'.
13 * <!-- end-user-doc --> 13 * <!-- end-user-doc -->
14 * 14 *
15 * <p> 15 * <p>
16 * The following features are supported: 16 * The following features are supported:
17 * </p> 17 * </p>
18 * <ul> 18 * <ul>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody#getConstraints <em>Constraints</em>}</li> 19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ArgumentList#getArguments <em>Arguments</em>}</li>
20 * </ul> 20 * </ul>
21 * 21 *
22 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPatternBody() 22 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getArgumentList()
23 * @model 23 * @model
24 * @generated 24 * @generated
25 */ 25 */
26public interface PatternBody extends EObject 26public interface ArgumentList extends EObject
27{ 27{
28 /** 28 /**
29 * Returns the value of the '<em><b>Constraints</b></em>' containment reference list. 29 * Returns the value of the '<em><b>Arguments</b></em>' containment reference list.
30 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Constraint}. 30 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Argument}.
31 * <!-- begin-user-doc --> 31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc --> 32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Constraints</em>' containment reference list. 33 * @return the value of the '<em>Arguments</em>' containment reference list.
34 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPatternBody_Constraints() 34 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getArgumentList_Arguments()
35 * @model containment="true" 35 * @model containment="true"
36 * @generated 36 * @generated
37 */ 37 */
38 EList<Constraint> getConstraints(); 38 EList<Argument> getArguments();
39 39
40} // PatternBody 40} // ArgumentList
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Assertion.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Assertion.java
new file mode 100644
index 00000000..b67d81ca
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Assertion.java
@@ -0,0 +1,70 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Assertion</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getBody <em>Body</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getRange <em>Range</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAssertion()
21 * @model
22 * @generated
23 */
24public interface Assertion extends Statement
25{
26 /**
27 * Returns the value of the '<em><b>Body</b></em>' containment reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Body</em>' containment reference.
31 * @see #setBody(Expression)
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAssertion_Body()
33 * @model containment="true"
34 * @generated
35 */
36 Expression getBody();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getBody <em>Body</em>}' containment reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Body</em>' containment reference.
43 * @see #getBody()
44 * @generated
45 */
46 void setBody(Expression value);
47
48 /**
49 * Returns the value of the '<em><b>Range</b></em>' containment reference.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Range</em>' containment reference.
53 * @see #setRange(Expression)
54 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAssertion_Range()
55 * @model containment="true"
56 * @generated
57 */
58 Expression getRange();
59
60 /**
61 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getRange <em>Range</em>}' containment reference.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Range</em>' containment reference.
65 * @see #getRange()
66 * @generated
67 */
68 void setRange(Expression value);
69
70} // Assertion
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BasicInterpretation.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BasicInterpretation.java
deleted file mode 100644
index b4226d4a..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BasicInterpretation.java
+++ /dev/null
@@ -1,84 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.common.util.EList;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Basic Interpretation</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getSymbol <em>Symbol</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getObjects <em>Objects</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getValue <em>Value</em>}</li>
20 * </ul>
21 *
22 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBasicInterpretation()
23 * @model
24 * @generated
25 */
26public interface BasicInterpretation extends Interpretation
27{
28 /**
29 * Returns the value of the '<em><b>Symbol</b></em>' containment reference.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>Symbol</em>' containment reference.
33 * @see #setSymbol(Symbol)
34 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBasicInterpretation_Symbol()
35 * @model containment="true"
36 * @generated
37 */
38 Symbol getSymbol();
39
40 /**
41 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getSymbol <em>Symbol</em>}' containment reference.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Symbol</em>' containment reference.
45 * @see #getSymbol()
46 * @generated
47 */
48 void setSymbol(Symbol value);
49
50 /**
51 * Returns the value of the '<em><b>Objects</b></em>' containment reference list.
52 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.ComplexObject}.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return the value of the '<em>Objects</em>' containment reference list.
56 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBasicInterpretation_Objects()
57 * @model containment="true"
58 * @generated
59 */
60 EList<ComplexObject> getObjects();
61
62 /**
63 * Returns the value of the '<em><b>Value</b></em>' containment reference.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @return the value of the '<em>Value</em>' containment reference.
67 * @see #setValue(TruthValue)
68 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBasicInterpretation_Value()
69 * @model containment="true"
70 * @generated
71 */
72 TruthValue getValue();
73
74 /**
75 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getValue <em>Value</em>}' containment reference.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @param value the new value of the '<em>Value</em>' containment reference.
79 * @see #getValue()
80 * @generated
81 */
82 void setValue(TruthValue value);
83
84} // BasicInterpretation
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryExpression.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryExpression.java
new file mode 100644
index 00000000..8a81e68b
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryExpression.java
@@ -0,0 +1,96 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Binary Expression</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getLeft <em>Left</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getOp <em>Op</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getRight <em>Right</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryExpression()
22 * @model
23 * @generated
24 */
25public interface BinaryExpression extends Expression
26{
27 /**
28 * Returns the value of the '<em><b>Left</b></em>' containment reference.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Left</em>' containment reference.
32 * @see #setLeft(Expression)
33 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryExpression_Left()
34 * @model containment="true"
35 * @generated
36 */
37 Expression getLeft();
38
39 /**
40 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getLeft <em>Left</em>}' containment reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Left</em>' containment reference.
44 * @see #getLeft()
45 * @generated
46 */
47 void setLeft(Expression value);
48
49 /**
50 * Returns the value of the '<em><b>Op</b></em>' attribute.
51 * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator}.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Op</em>' attribute.
55 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator
56 * @see #setOp(BinaryOperator)
57 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryExpression_Op()
58 * @model
59 * @generated
60 */
61 BinaryOperator getOp();
62
63 /**
64 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getOp <em>Op</em>}' attribute.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @param value the new value of the '<em>Op</em>' attribute.
68 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator
69 * @see #getOp()
70 * @generated
71 */
72 void setOp(BinaryOperator value);
73
74 /**
75 * Returns the value of the '<em><b>Right</b></em>' containment reference.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @return the value of the '<em>Right</em>' containment reference.
79 * @see #setRight(Expression)
80 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryExpression_Right()
81 * @model containment="true"
82 * @generated
83 */
84 Expression getRight();
85
86 /**
87 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getRight <em>Right</em>}' containment reference.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @param value the new value of the '<em>Right</em>' containment reference.
91 * @see #getRight()
92 * @generated
93 */
94 void setRight(Expression value);
95
96} // BinaryExpression
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryOperator.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryOperator.java
new file mode 100644
index 00000000..9e8e073a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryOperator.java
@@ -0,0 +1,455 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import java.util.Arrays;
7import java.util.Collections;
8import java.util.List;
9
10import org.eclipse.emf.common.util.Enumerator;
11
12/**
13 * <!-- begin-user-doc -->
14 * A representation of the literals of the enumeration '<em><b>Binary Operator</b></em>',
15 * and utility methods for working with them.
16 * <!-- end-user-doc -->
17 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryOperator()
18 * @model
19 * @generated
20 */
21public enum BinaryOperator implements Enumerator
22{
23 /**
24 * The '<em><b>EQ</b></em>' literal object.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @see #EQ_VALUE
28 * @generated
29 * @ordered
30 */
31 EQ(0, "EQ", "EQ"),
32
33 /**
34 * The '<em><b>NOT EQ</b></em>' literal object.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @see #NOT_EQ_VALUE
38 * @generated
39 * @ordered
40 */
41 NOT_EQ(1, "NOT_EQ", "NOT_EQ"),
42
43 /**
44 * The '<em><b>LESS</b></em>' literal object.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #LESS_VALUE
48 * @generated
49 * @ordered
50 */
51 LESS(2, "LESS", "LESS"),
52
53 /**
54 * The '<em><b>LESS EQ</b></em>' literal object.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @see #LESS_EQ_VALUE
58 * @generated
59 * @ordered
60 */
61 LESS_EQ(3, "LESS_EQ", "LESS_EQ"),
62
63 /**
64 * The '<em><b>GREATER</b></em>' literal object.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @see #GREATER_VALUE
68 * @generated
69 * @ordered
70 */
71 GREATER(4, "GREATER", "GREATER"),
72
73 /**
74 * The '<em><b>GREATER EQ</b></em>' literal object.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #GREATER_EQ_VALUE
78 * @generated
79 * @ordered
80 */
81 GREATER_EQ(5, "GREATER_EQ", "GREATER_EQ"),
82
83 /**
84 * The '<em><b>IN</b></em>' literal object.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @see #IN_VALUE
88 * @generated
89 * @ordered
90 */
91 IN(6, "IN", "IN"),
92
93 /**
94 * The '<em><b>ADD</b></em>' literal object.
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @see #ADD_VALUE
98 * @generated
99 * @ordered
100 */
101 ADD(7, "ADD", "ADD"),
102
103 /**
104 * The '<em><b>SUB</b></em>' literal object.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @see #SUB_VALUE
108 * @generated
109 * @ordered
110 */
111 SUB(8, "SUB", "SUB"),
112
113 /**
114 * The '<em><b>MUL</b></em>' literal object.
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @see #MUL_VALUE
118 * @generated
119 * @ordered
120 */
121 MUL(9, "MUL", "MUL"),
122
123 /**
124 * The '<em><b>DIV</b></em>' literal object.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @see #DIV_VALUE
128 * @generated
129 * @ordered
130 */
131 DIV(10, "DIV", "DIV"),
132
133 /**
134 * The '<em><b>POW</b></em>' literal object.
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @see #POW_VALUE
138 * @generated
139 * @ordered
140 */
141 POW(11, "POW", "POW");
142
143 /**
144 * The '<em><b>EQ</b></em>' literal value.
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @see #EQ
148 * @model
149 * @generated
150 * @ordered
151 */
152 public static final int EQ_VALUE = 0;
153
154 /**
155 * The '<em><b>NOT EQ</b></em>' literal value.
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @see #NOT_EQ
159 * @model
160 * @generated
161 * @ordered
162 */
163 public static final int NOT_EQ_VALUE = 1;
164
165 /**
166 * The '<em><b>LESS</b></em>' literal value.
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @see #LESS
170 * @model
171 * @generated
172 * @ordered
173 */
174 public static final int LESS_VALUE = 2;
175
176 /**
177 * The '<em><b>LESS EQ</b></em>' literal value.
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @see #LESS_EQ
181 * @model
182 * @generated
183 * @ordered
184 */
185 public static final int LESS_EQ_VALUE = 3;
186
187 /**
188 * The '<em><b>GREATER</b></em>' literal value.
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @see #GREATER
192 * @model
193 * @generated
194 * @ordered
195 */
196 public static final int GREATER_VALUE = 4;
197
198 /**
199 * The '<em><b>GREATER EQ</b></em>' literal value.
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @see #GREATER_EQ
203 * @model
204 * @generated
205 * @ordered
206 */
207 public static final int GREATER_EQ_VALUE = 5;
208
209 /**
210 * The '<em><b>IN</b></em>' literal value.
211 * <!-- begin-user-doc -->
212 * <!-- end-user-doc -->
213 * @see #IN
214 * @model
215 * @generated
216 * @ordered
217 */
218 public static final int IN_VALUE = 6;
219
220 /**
221 * The '<em><b>ADD</b></em>' literal value.
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @see #ADD
225 * @model
226 * @generated
227 * @ordered
228 */
229 public static final int ADD_VALUE = 7;
230
231 /**
232 * The '<em><b>SUB</b></em>' literal value.
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @see #SUB
236 * @model
237 * @generated
238 * @ordered
239 */
240 public static final int SUB_VALUE = 8;
241
242 /**
243 * The '<em><b>MUL</b></em>' literal value.
244 * <!-- begin-user-doc -->
245 * <!-- end-user-doc -->
246 * @see #MUL
247 * @model
248 * @generated
249 * @ordered
250 */
251 public static final int MUL_VALUE = 9;
252
253 /**
254 * The '<em><b>DIV</b></em>' literal value.
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @see #DIV
258 * @model
259 * @generated
260 * @ordered
261 */
262 public static final int DIV_VALUE = 10;
263
264 /**
265 * The '<em><b>POW</b></em>' literal value.
266 * <!-- begin-user-doc -->
267 * <!-- end-user-doc -->
268 * @see #POW
269 * @model
270 * @generated
271 * @ordered
272 */
273 public static final int POW_VALUE = 11;
274
275 /**
276 * An array of all the '<em><b>Binary Operator</b></em>' enumerators.
277 * <!-- begin-user-doc -->
278 * <!-- end-user-doc -->
279 * @generated
280 */
281 private static final BinaryOperator[] VALUES_ARRAY =
282 new BinaryOperator[]
283 {
284 EQ,
285 NOT_EQ,
286 LESS,
287 LESS_EQ,
288 GREATER,
289 GREATER_EQ,
290 IN,
291 ADD,
292 SUB,
293 MUL,
294 DIV,
295 POW,
296 };
297
298 /**
299 * A public read-only list of all the '<em><b>Binary Operator</b></em>' enumerators.
300 * <!-- begin-user-doc -->
301 * <!-- end-user-doc -->
302 * @generated
303 */
304 public static final List<BinaryOperator> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
305
306 /**
307 * Returns the '<em><b>Binary Operator</b></em>' literal with the specified literal value.
308 * <!-- begin-user-doc -->
309 * <!-- end-user-doc -->
310 * @param literal the literal.
311 * @return the matching enumerator or <code>null</code>.
312 * @generated
313 */
314 public static BinaryOperator get(String literal)
315 {
316 for (int i = 0; i < VALUES_ARRAY.length; ++i)
317 {
318 BinaryOperator result = VALUES_ARRAY[i];
319 if (result.toString().equals(literal))
320 {
321 return result;
322 }
323 }
324 return null;
325 }
326
327 /**
328 * Returns the '<em><b>Binary Operator</b></em>' literal with the specified name.
329 * <!-- begin-user-doc -->
330 * <!-- end-user-doc -->
331 * @param name the name.
332 * @return the matching enumerator or <code>null</code>.
333 * @generated
334 */
335 public static BinaryOperator getByName(String name)
336 {
337 for (int i = 0; i < VALUES_ARRAY.length; ++i)
338 {
339 BinaryOperator result = VALUES_ARRAY[i];
340 if (result.getName().equals(name))
341 {
342 return result;
343 }
344 }
345 return null;
346 }
347
348 /**
349 * Returns the '<em><b>Binary Operator</b></em>' literal with the specified integer value.
350 * <!-- begin-user-doc -->
351 * <!-- end-user-doc -->
352 * @param value the integer value.
353 * @return the matching enumerator or <code>null</code>.
354 * @generated
355 */
356 public static BinaryOperator get(int value)
357 {
358 switch (value)
359 {
360 case EQ_VALUE: return EQ;
361 case NOT_EQ_VALUE: return NOT_EQ;
362 case LESS_VALUE: return LESS;
363 case LESS_EQ_VALUE: return LESS_EQ;
364 case GREATER_VALUE: return GREATER;
365 case GREATER_EQ_VALUE: return GREATER_EQ;
366 case IN_VALUE: return IN;
367 case ADD_VALUE: return ADD;
368 case SUB_VALUE: return SUB;
369 case MUL_VALUE: return MUL;
370 case DIV_VALUE: return DIV;
371 case POW_VALUE: return POW;
372 }
373 return null;
374 }
375
376 /**
377 * <!-- begin-user-doc -->
378 * <!-- end-user-doc -->
379 * @generated
380 */
381 private final int value;
382
383 /**
384 * <!-- begin-user-doc -->
385 * <!-- end-user-doc -->
386 * @generated
387 */
388 private final String name;
389
390 /**
391 * <!-- begin-user-doc -->
392 * <!-- end-user-doc -->
393 * @generated
394 */
395 private final String literal;
396
397 /**
398 * Only this class can construct instances.
399 * <!-- begin-user-doc -->
400 * <!-- end-user-doc -->
401 * @generated
402 */
403 private BinaryOperator(int value, String name, String literal)
404 {
405 this.value = value;
406 this.name = name;
407 this.literal = literal;
408 }
409
410 /**
411 * <!-- begin-user-doc -->
412 * <!-- end-user-doc -->
413 * @generated
414 */
415 @Override
416 public int getValue()
417 {
418 return value;
419 }
420
421 /**
422 * <!-- begin-user-doc -->
423 * <!-- end-user-doc -->
424 * @generated
425 */
426 @Override
427 public String getName()
428 {
429 return name;
430 }
431
432 /**
433 * <!-- begin-user-doc -->
434 * <!-- end-user-doc -->
435 * @generated
436 */
437 @Override
438 public String getLiteral()
439 {
440 return literal;
441 }
442
443 /**
444 * Returns the literal value of the enumerator, which is its string representation.
445 * <!-- begin-user-doc -->
446 * <!-- end-user-doc -->
447 * @generated
448 */
449 @Override
450 public String toString()
451 {
452 return literal;
453 }
454
455} //BinaryOperator
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanFalse.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanFalse.java
deleted file mode 100644
index 678e8fee..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanFalse.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Boolean False</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanFalse()
14 * @model
15 * @generated
16 */
17public interface BooleanFalse extends BooleanValue
18{
19} // BooleanFalse
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanObject.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanObject.java
deleted file mode 100644
index c2c652ab..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanObject.java
+++ /dev/null
@@ -1,47 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Boolean Object</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject#getValue <em>Value</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanObject()
20 * @model
21 * @generated
22 */
23public interface BooleanObject extends DataObject
24{
25 /**
26 * Returns the value of the '<em><b>Value</b></em>' containment reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Value</em>' containment reference.
30 * @see #setValue(BooleanValue)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanObject_Value()
32 * @model containment="true"
33 * @generated
34 */
35 BooleanValue getValue();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject#getValue <em>Value</em>}' containment reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Value</em>' containment reference.
42 * @see #getValue()
43 * @generated
44 */
45 void setValue(BooleanValue value);
46
47} // BooleanObject
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanSymbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanSymbol.java
deleted file mode 100644
index 4760c96c..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanSymbol.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Boolean Symbol</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanSymbol()
14 * @model
15 * @generated
16 */
17public interface BooleanSymbol extends DataSymbol
18{
19} // BooleanSymbol
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanTrue.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanTrue.java
deleted file mode 100644
index 7c72ec36..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanTrue.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Boolean True</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanTrue()
14 * @model
15 * @generated
16 */
17public interface BooleanTrue extends BooleanValue
18{
19} // BooleanTrue
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanValue.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanValue.java
deleted file mode 100644
index 8fe67a48..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanValue.java
+++ /dev/null
@@ -1,20 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Boolean Value</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 *
14 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanValue()
15 * @model
16 * @generated
17 */
18public interface BooleanValue extends EObject
19{
20} // BooleanValue
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedMultiplicity.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedMultiplicity.java
new file mode 100644
index 00000000..8e81e1a2
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedMultiplicity.java
@@ -0,0 +1,70 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Bounded Multiplicity</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getLowerBound <em>Lower Bound</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getUpperBound <em>Upper Bound</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedMultiplicity()
21 * @model
22 * @generated
23 */
24public interface BoundedMultiplicity extends Multiplicity
25{
26 /**
27 * Returns the value of the '<em><b>Lower Bound</b></em>' attribute.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Lower Bound</em>' attribute.
31 * @see #setLowerBound(int)
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedMultiplicity_LowerBound()
33 * @model
34 * @generated
35 */
36 int getLowerBound();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getLowerBound <em>Lower Bound</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Lower Bound</em>' attribute.
43 * @see #getLowerBound()
44 * @generated
45 */
46 void setLowerBound(int value);
47
48 /**
49 * Returns the value of the '<em><b>Upper Bound</b></em>' attribute.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Upper Bound</em>' attribute.
53 * @see #setUpperBound(int)
54 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedMultiplicity_UpperBound()
55 * @model
56 * @generated
57 */
58 int getUpperBound();
59
60 /**
61 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getUpperBound <em>Upper Bound</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Upper Bound</em>' attribute.
65 * @see #getUpperBound()
66 * @generated
67 */
68 void setUpperBound(int value);
69
70} // BoundedMultiplicity
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedScopeDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedScopeDefinition.java
new file mode 100644
index 00000000..1e76e86a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedScopeDefinition.java
@@ -0,0 +1,70 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Bounded Scope Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getLowerBound <em>Lower Bound</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getUpperBound <em>Upper Bound</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedScopeDefinition()
21 * @model
22 * @generated
23 */
24public interface BoundedScopeDefinition extends ScopeDefinition
25{
26 /**
27 * Returns the value of the '<em><b>Lower Bound</b></em>' attribute.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Lower Bound</em>' attribute.
31 * @see #setLowerBound(int)
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedScopeDefinition_LowerBound()
33 * @model
34 * @generated
35 */
36 int getLowerBound();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getLowerBound <em>Lower Bound</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Lower Bound</em>' attribute.
43 * @see #getLowerBound()
44 * @generated
45 */
46 void setLowerBound(int value);
47
48 /**
49 * Returns the value of the '<em><b>Upper Bound</b></em>' attribute.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Upper Bound</em>' attribute.
53 * @see #setUpperBound(int)
54 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedScopeDefinition_UpperBound()
55 * @model
56 * @generated
57 */
58 int getUpperBound();
59
60 /**
61 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getUpperBound <em>Upper Bound</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Upper Bound</em>' attribute.
65 * @see #getUpperBound()
66 * @generated
67 */
68 void setUpperBound(int value);
69
70} // BoundedScopeDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/CDInterpretation.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/CDInterpretation.java
deleted file mode 100644
index 9a69fc8a..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/CDInterpretation.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>CD Interpretation</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCDInterpretation()
14 * @model
15 * @generated
16 */
17public interface CDInterpretation extends Interpretation
18{
19} // CDInterpretation
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Call.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Call.java
new file mode 100644
index 00000000..538ac75c
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Call.java
@@ -0,0 +1,116 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Call</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getFunctor <em>Functor</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getArgumentList <em>Argument List</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isTransitiveClosure <em>Transitive Closure</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isReflexiveTransitiveClosure <em>Reflexive Transitive Closure</em>}</li>
20 * </ul>
21 *
22 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall()
23 * @model
24 * @generated
25 */
26public interface Call extends Expression
27{
28 /**
29 * Returns the value of the '<em><b>Functor</b></em>' containment reference.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>Functor</em>' containment reference.
33 * @see #setFunctor(Reference)
34 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall_Functor()
35 * @model containment="true"
36 * @generated
37 */
38 Reference getFunctor();
39
40 /**
41 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getFunctor <em>Functor</em>}' containment reference.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Functor</em>' containment reference.
45 * @see #getFunctor()
46 * @generated
47 */
48 void setFunctor(Reference value);
49
50 /**
51 * Returns the value of the '<em><b>Argument List</b></em>' containment reference.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Argument List</em>' containment reference.
55 * @see #setArgumentList(ArgumentList)
56 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall_ArgumentList()
57 * @model containment="true"
58 * @generated
59 */
60 ArgumentList getArgumentList();
61
62 /**
63 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getArgumentList <em>Argument List</em>}' containment reference.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @param value the new value of the '<em>Argument List</em>' containment reference.
67 * @see #getArgumentList()
68 * @generated
69 */
70 void setArgumentList(ArgumentList value);
71
72 /**
73 * Returns the value of the '<em><b>Transitive Closure</b></em>' attribute.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @return the value of the '<em>Transitive Closure</em>' attribute.
77 * @see #setTransitiveClosure(boolean)
78 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall_TransitiveClosure()
79 * @model
80 * @generated
81 */
82 boolean isTransitiveClosure();
83
84 /**
85 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isTransitiveClosure <em>Transitive Closure</em>}' attribute.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @param value the new value of the '<em>Transitive Closure</em>' attribute.
89 * @see #isTransitiveClosure()
90 * @generated
91 */
92 void setTransitiveClosure(boolean value);
93
94 /**
95 * Returns the value of the '<em><b>Reflexive Transitive Closure</b></em>' attribute.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @return the value of the '<em>Reflexive Transitive Closure</em>' attribute.
99 * @see #setReflexiveTransitiveClosure(boolean)
100 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall_ReflexiveTransitiveClosure()
101 * @model
102 * @generated
103 */
104 boolean isReflexiveTransitiveClosure();
105
106 /**
107 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isReflexiveTransitiveClosure <em>Reflexive Transitive Closure</em>}' attribute.
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @param value the new value of the '<em>Reflexive Transitive Closure</em>' attribute.
111 * @see #isReflexiveTransitiveClosure()
112 * @generated
113 */
114 void setReflexiveTransitiveClosure(boolean value);
115
116} // Call
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Case.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Case.java
new file mode 100644
index 00000000..970d1de2
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Case.java
@@ -0,0 +1,70 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Case</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getCondition <em>Condition</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getBody <em>Body</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCase()
21 * @model
22 * @generated
23 */
24public interface Case extends Expression
25{
26 /**
27 * Returns the value of the '<em><b>Condition</b></em>' containment reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Condition</em>' containment reference.
31 * @see #setCondition(Expression)
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCase_Condition()
33 * @model containment="true"
34 * @generated
35 */
36 Expression getCondition();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getCondition <em>Condition</em>}' containment reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Condition</em>' containment reference.
43 * @see #getCondition()
44 * @generated
45 */
46 void setCondition(Expression value);
47
48 /**
49 * Returns the value of the '<em><b>Body</b></em>' containment reference.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Body</em>' containment reference.
53 * @see #setBody(Expression)
54 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCase_Body()
55 * @model containment="true"
56 * @generated
57 */
58 Expression getBody();
59
60 /**
61 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getBody <em>Body</em>}' containment reference.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Body</em>' containment reference.
65 * @see #getBody()
66 * @generated
67 */
68 void setBody(Expression value);
69
70} // Case
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClassInterpretation.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClassInterpretation.java
deleted file mode 100644
index 777e0c50..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClassInterpretation.java
+++ /dev/null
@@ -1,97 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.common.util.EList;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Class Interpretation</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#isAbstract <em>Abstract</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSymbol <em>Symbol</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSupertypes <em>Supertypes</em>}</li>
20 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getFielt <em>Fielt</em>}</li>
21 * </ul>
22 *
23 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation()
24 * @model
25 * @generated
26 */
27public interface ClassInterpretation extends CDInterpretation
28{
29 /**
30 * Returns the value of the '<em><b>Abstract</b></em>' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Abstract</em>' attribute.
34 * @see #setAbstract(boolean)
35 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation_Abstract()
36 * @model
37 * @generated
38 */
39 boolean isAbstract();
40
41 /**
42 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#isAbstract <em>Abstract</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Abstract</em>' attribute.
46 * @see #isAbstract()
47 * @generated
48 */
49 void setAbstract(boolean value);
50
51 /**
52 * Returns the value of the '<em><b>Symbol</b></em>' containment reference.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return the value of the '<em>Symbol</em>' containment reference.
56 * @see #setSymbol(ModelSymbol)
57 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation_Symbol()
58 * @model containment="true"
59 * @generated
60 */
61 ModelSymbol getSymbol();
62
63 /**
64 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSymbol <em>Symbol</em>}' containment reference.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @param value the new value of the '<em>Symbol</em>' containment reference.
68 * @see #getSymbol()
69 * @generated
70 */
71 void setSymbol(ModelSymbol value);
72
73 /**
74 * Returns the value of the '<em><b>Supertypes</b></em>' containment reference list.
75 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol}.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @return the value of the '<em>Supertypes</em>' containment reference list.
79 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation_Supertypes()
80 * @model containment="true"
81 * @generated
82 */
83 EList<ModelSymbol> getSupertypes();
84
85 /**
86 * Returns the value of the '<em><b>Fielt</b></em>' containment reference list.
87 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation}.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @return the value of the '<em>Fielt</em>' containment reference list.
91 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation_Fielt()
92 * @model containment="true"
93 * @generated
94 */
95 EList<FieldRelationInterpretation> getFielt();
96
97} // ClassInterpretation
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Comparison.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Comparison.java
new file mode 100644
index 00000000..43e9341a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Comparison.java
@@ -0,0 +1,96 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Comparison</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getLeft <em>Left</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getOp <em>Op</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getRight <em>Right</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComparison()
22 * @model
23 * @generated
24 */
25public interface Comparison extends Expression
26{
27 /**
28 * Returns the value of the '<em><b>Left</b></em>' containment reference.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Left</em>' containment reference.
32 * @see #setLeft(Expression)
33 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComparison_Left()
34 * @model containment="true"
35 * @generated
36 */
37 Expression getLeft();
38
39 /**
40 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getLeft <em>Left</em>}' containment reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Left</em>' containment reference.
44 * @see #getLeft()
45 * @generated
46 */
47 void setLeft(Expression value);
48
49 /**
50 * Returns the value of the '<em><b>Op</b></em>' attribute.
51 * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator}.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Op</em>' attribute.
55 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator
56 * @see #setOp(BinaryOperator)
57 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComparison_Op()
58 * @model
59 * @generated
60 */
61 BinaryOperator getOp();
62
63 /**
64 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getOp <em>Op</em>}' attribute.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @param value the new value of the '<em>Op</em>' attribute.
68 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator
69 * @see #getOp()
70 * @generated
71 */
72 void setOp(BinaryOperator value);
73
74 /**
75 * Returns the value of the '<em><b>Right</b></em>' containment reference.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @return the value of the '<em>Right</em>' containment reference.
79 * @see #setRight(Expression)
80 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComparison_Right()
81 * @model containment="true"
82 * @generated
83 */
84 Expression getRight();
85
86 /**
87 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getRight <em>Right</em>}' containment reference.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @param value the new value of the '<em>Right</em>' containment reference.
91 * @see #getRight()
92 * @generated
93 */
94 void setRight(Expression value);
95
96} // Comparison
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ComplexObject.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ComplexObject.java
deleted file mode 100644
index e266f231..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ComplexObject.java
+++ /dev/null
@@ -1,20 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Complex Object</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 *
14 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComplexObject()
15 * @model
16 * @generated
17 */
18public interface ComplexObject extends EObject
19{
20} // ComplexObject
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Conjunction.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Conjunction.java
new file mode 100644
index 00000000..9f1967c0
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Conjunction.java
@@ -0,0 +1,38 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.common.util.EList;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Conjunction</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Conjunction#getChildren <em>Children</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConjunction()
21 * @model
22 * @generated
23 */
24public interface Conjunction extends Expression
25{
26 /**
27 * Returns the value of the '<em><b>Children</b></em>' containment reference list.
28 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Expression}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Children</em>' containment reference list.
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConjunction_Children()
33 * @model containment="true"
34 * @generated
35 */
36 EList<Expression> getChildren();
37
38} // Conjunction
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Constraint.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Constraint.java
deleted file mode 100644
index 9c957def..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Constraint.java
+++ /dev/null
@@ -1,109 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.common.util.EList;
7
8import org.eclipse.emf.ecore.EObject;
9
10/**
11 * <!-- begin-user-doc -->
12 * A representation of the model object '<em><b>Constraint</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * <p>
16 * The following features are supported:
17 * </p>
18 * <ul>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getPolarity <em>Polarity</em>}</li>
20 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getSymbol <em>Symbol</em>}</li>
21 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getParams <em>Params</em>}</li>
22 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getClosureType <em>Closure Type</em>}</li>
23 * </ul>
24 *
25 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint()
26 * @model
27 * @generated
28 */
29public interface Constraint extends EObject
30{
31 /**
32 * Returns the value of the '<em><b>Polarity</b></em>' containment reference.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Polarity</em>' containment reference.
36 * @see #setPolarity(Polarity)
37 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint_Polarity()
38 * @model containment="true"
39 * @generated
40 */
41 Polarity getPolarity();
42
43 /**
44 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getPolarity <em>Polarity</em>}' containment reference.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>Polarity</em>' containment reference.
48 * @see #getPolarity()
49 * @generated
50 */
51 void setPolarity(Polarity value);
52
53 /**
54 * Returns the value of the '<em><b>Symbol</b></em>' containment reference.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @return the value of the '<em>Symbol</em>' containment reference.
58 * @see #setSymbol(ModelSymbol)
59 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint_Symbol()
60 * @model containment="true"
61 * @generated
62 */
63 ModelSymbol getSymbol();
64
65 /**
66 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getSymbol <em>Symbol</em>}' containment reference.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @param value the new value of the '<em>Symbol</em>' containment reference.
70 * @see #getSymbol()
71 * @generated
72 */
73 void setSymbol(ModelSymbol value);
74
75 /**
76 * Returns the value of the '<em><b>Params</b></em>' containment reference list.
77 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Literal}.
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @return the value of the '<em>Params</em>' containment reference list.
81 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint_Params()
82 * @model containment="true"
83 * @generated
84 */
85 EList<Literal> getParams();
86
87 /**
88 * Returns the value of the '<em><b>Closure Type</b></em>' containment reference.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return the value of the '<em>Closure Type</em>' containment reference.
92 * @see #setClosureType(ClosureType)
93 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint_ClosureType()
94 * @model containment="true"
95 * @generated
96 */
97 ClosureType getClosureType();
98
99 /**
100 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getClosureType <em>Closure Type</em>}' containment reference.
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @param value the new value of the '<em>Closure Type</em>' containment reference.
104 * @see #getClosureType()
105 * @generated
106 */
107 void setClosureType(ClosureType value);
108
109} // Constraint
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Count.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Count.java
new file mode 100644
index 00000000..f4b95a1e
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Count.java
@@ -0,0 +1,47 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Count</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Count#getBody <em>Body</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCount()
20 * @model
21 * @generated
22 */
23public interface Count extends Expression
24{
25 /**
26 * Returns the value of the '<em><b>Body</b></em>' containment reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Body</em>' containment reference.
30 * @see #setBody(Expression)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCount_Body()
32 * @model containment="true"
33 * @generated
34 */
35 Expression getBody();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Count#getBody <em>Body</em>}' containment reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Body</em>' containment reference.
42 * @see #getBody()
43 * @generated
44 */
45 void setBody(Expression value);
46
47} // Count
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataObject.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataObject.java
deleted file mode 100644
index 79a0af43..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataObject.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Data Object</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDataObject()
14 * @model
15 * @generated
16 */
17public interface DataObject extends org.eclipse.viatra.solver.language.solverLanguage.Object, Literal
18{
19} // DataObject
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataSymbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataSymbol.java
deleted file mode 100644
index eae8175a..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataSymbol.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Data Symbol</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDataSymbol()
14 * @model
15 * @generated
16 */
17public interface DataSymbol extends Symbol
18{
19} // DataSymbol
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultDefinition.java
new file mode 100644
index 00000000..c088f8d7
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultDefinition.java
@@ -0,0 +1,70 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Default Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getHead <em>Head</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getRange <em>Range</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultDefinition()
21 * @model
22 * @generated
23 */
24public interface DefaultDefinition extends Statement
25{
26 /**
27 * Returns the value of the '<em><b>Head</b></em>' containment reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Head</em>' containment reference.
31 * @see #setHead(Call)
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultDefinition_Head()
33 * @model containment="true"
34 * @generated
35 */
36 Call getHead();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getHead <em>Head</em>}' containment reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Head</em>' containment reference.
43 * @see #getHead()
44 * @generated
45 */
46 void setHead(Call value);
47
48 /**
49 * Returns the value of the '<em><b>Range</b></em>' containment reference.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Range</em>' containment reference.
53 * @see #setRange(Expression)
54 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultDefinition_Range()
55 * @model containment="true"
56 * @generated
57 */
58 Expression getRange();
59
60 /**
61 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getRange <em>Range</em>}' containment reference.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Range</em>' containment reference.
65 * @see #getRange()
66 * @generated
67 */
68 void setRange(Expression value);
69
70} // DefaultDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultInterpretation.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultInterpretation.java
deleted file mode 100644
index 2e9209f6..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultInterpretation.java
+++ /dev/null
@@ -1,47 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Default Interpretation</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation#getInterpretation <em>Interpretation</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultInterpretation()
20 * @model
21 * @generated
22 */
23public interface DefaultInterpretation extends Interpretation
24{
25 /**
26 * Returns the value of the '<em><b>Interpretation</b></em>' containment reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Interpretation</em>' containment reference.
30 * @see #setInterpretation(BasicInterpretation)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultInterpretation_Interpretation()
32 * @model containment="true"
33 * @generated
34 */
35 BasicInterpretation getInterpretation();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation#getInterpretation <em>Interpretation</em>}' containment reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Interpretation</em>' containment reference.
42 * @see #getInterpretation()
43 * @generated
44 */
45 void setInterpretation(BasicInterpretation value);
46
47} // DefaultInterpretation
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Disjunction.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Disjunction.java
new file mode 100644
index 00000000..724fc04a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Disjunction.java
@@ -0,0 +1,38 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.common.util.EList;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Disjunction</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Disjunction#getChildren <em>Children</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDisjunction()
21 * @model
22 * @generated
23 */
24public interface Disjunction extends Expression
25{
26 /**
27 * Returns the value of the '<em><b>Children</b></em>' containment reference list.
28 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Expression}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Children</em>' containment reference list.
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDisjunction_Children()
33 * @model containment="true"
34 * @generated
35 */
36 EList<Expression> getChildren();
37
38} // Disjunction
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EmptyIntervalLiteral.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EmptyIntervalLiteral.java
new file mode 100644
index 00000000..03f09681
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EmptyIntervalLiteral.java
@@ -0,0 +1,19 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Empty Interval Literal</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEmptyIntervalLiteral()
14 * @model
15 * @generated
16 */
17public interface EmptyIntervalLiteral extends Literal
18{
19} // EmptyIntervalLiteral
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EnumInterpretation.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EnumInterpretation.java
deleted file mode 100644
index 8d48c0df..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EnumInterpretation.java
+++ /dev/null
@@ -1,61 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.common.util.EList;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Enum Interpretation</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getSymbol <em>Symbol</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getObjects <em>Objects</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEnumInterpretation()
22 * @model
23 * @generated
24 */
25public interface EnumInterpretation extends CDInterpretation
26{
27 /**
28 * Returns the value of the '<em><b>Symbol</b></em>' containment reference.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Symbol</em>' containment reference.
32 * @see #setSymbol(ModelSymbol)
33 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEnumInterpretation_Symbol()
34 * @model containment="true"
35 * @generated
36 */
37 ModelSymbol getSymbol();
38
39 /**
40 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getSymbol <em>Symbol</em>}' containment reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Symbol</em>' containment reference.
44 * @see #getSymbol()
45 * @generated
46 */
47 void setSymbol(ModelSymbol value);
48
49 /**
50 * Returns the value of the '<em><b>Objects</b></em>' containment reference list.
51 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject}.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Objects</em>' containment reference list.
55 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEnumInterpretation_Objects()
56 * @model containment="true"
57 * @generated
58 */
59 EList<NamedObject> getObjects();
60
61} // EnumInterpretation
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EqualsSymbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EqualsSymbol.java
deleted file mode 100644
index 1edb994f..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EqualsSymbol.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Equals Symbol</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEqualsSymbol()
14 * @model
15 * @generated
16 */
17public interface EqualsSymbol extends PartialitySymbol
18{
19} // EqualsSymbol
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Error.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Error.java
deleted file mode 100644
index bf99bc42..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Error.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Error</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getError()
14 * @model
15 * @generated
16 */
17public interface Error extends TruthValue
18{
19} // Error
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactMultiplicity.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactMultiplicity.java
new file mode 100644
index 00000000..33e88fc4
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactMultiplicity.java
@@ -0,0 +1,47 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Exact Multiplicity</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity#getMultiplicity <em>Multiplicity</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExactMultiplicity()
20 * @model
21 * @generated
22 */
23public interface ExactMultiplicity extends Multiplicity
24{
25 /**
26 * Returns the value of the '<em><b>Multiplicity</b></em>' attribute.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Multiplicity</em>' attribute.
30 * @see #setMultiplicity(int)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExactMultiplicity_Multiplicity()
32 * @model
33 * @generated
34 */
35 int getMultiplicity();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity#getMultiplicity <em>Multiplicity</em>}' attribute.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Multiplicity</em>' attribute.
42 * @see #getMultiplicity()
43 * @generated
44 */
45 void setMultiplicity(int value);
46
47} // ExactMultiplicity
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactScopeDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactScopeDefinition.java
new file mode 100644
index 00000000..50eb6a00
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactScopeDefinition.java
@@ -0,0 +1,47 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Exact Scope Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition#getExactScope <em>Exact Scope</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExactScopeDefinition()
20 * @model
21 * @generated
22 */
23public interface ExactScopeDefinition extends ScopeDefinition
24{
25 /**
26 * Returns the value of the '<em><b>Exact Scope</b></em>' attribute.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Exact Scope</em>' attribute.
30 * @see #setExactScope(int)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExactScopeDefinition_ExactScope()
32 * @model
33 * @generated
34 */
35 int getExactScope();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition#getExactScope <em>Exact Scope</em>}' attribute.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Exact Scope</em>' attribute.
42 * @see #getExactScope()
43 * @generated
44 */
45 void setExactScope(int value);
46
47} // ExactScopeDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExistSymbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExistSymbol.java
deleted file mode 100644
index 4dad3295..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExistSymbol.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Exist Symbol</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExistSymbol()
14 * @model
15 * @generated
16 */
17public interface ExistSymbol extends PartialitySymbol
18{
19} // ExistSymbol
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Object.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Expression.java
index 908ae5a6..1ecd89a5 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Object.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Expression.java
@@ -1,19 +1,19 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
6 6
7/** 7/**
8 * <!-- begin-user-doc --> 8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Object</b></em>'. 9 * A representation of the model object '<em><b>Expression</b></em>'.
10 * <!-- end-user-doc --> 10 * <!-- end-user-doc -->
11 * 11 *
12 * 12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObject() 13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExpression()
14 * @model 14 * @model
15 * @generated 15 * @generated
16 */ 16 */
17public interface Object extends ComplexObject 17public interface Expression extends Statement
18{ 18{
19} // Object 19} // Expression
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExpressionArgument.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExpressionArgument.java
new file mode 100644
index 00000000..518693a1
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExpressionArgument.java
@@ -0,0 +1,47 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Expression Argument</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument#getBody <em>Body</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExpressionArgument()
20 * @model
21 * @generated
22 */
23public interface ExpressionArgument extends Argument
24{
25 /**
26 * Returns the value of the '<em><b>Body</b></em>' containment reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Body</em>' containment reference.
30 * @see #setBody(Expression)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExpressionArgument_Body()
32 * @model containment="true"
33 * @generated
34 */
35 Expression getBody();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument#getBody <em>Body</em>}' containment reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Body</em>' containment reference.
42 * @see #getBody()
43 * @generated
44 */
45 void setBody(Expression value);
46
47} // ExpressionArgument
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternMetricDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternMetricDefinition.java
new file mode 100644
index 00000000..086c4b27
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternMetricDefinition.java
@@ -0,0 +1,73 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Extern Metric Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getType <em>Type</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getHead <em>Head</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternMetricDefinition()
21 * @model
22 * @generated
23 */
24public interface ExternMetricDefinition extends Statement
25{
26 /**
27 * Returns the value of the '<em><b>Type</b></em>' attribute.
28 * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.MetricType}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Type</em>' attribute.
32 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType
33 * @see #setType(MetricType)
34 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternMetricDefinition_Type()
35 * @model
36 * @generated
37 */
38 MetricType getType();
39
40 /**
41 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getType <em>Type</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Type</em>' attribute.
45 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType
46 * @see #getType()
47 * @generated
48 */
49 void setType(MetricType value);
50
51 /**
52 * Returns the value of the '<em><b>Head</b></em>' containment reference.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return the value of the '<em>Head</em>' containment reference.
56 * @see #setHead(Call)
57 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternMetricDefinition_Head()
58 * @model containment="true"
59 * @generated
60 */
61 Call getHead();
62
63 /**
64 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getHead <em>Head</em>}' containment reference.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @param value the new value of the '<em>Head</em>' containment reference.
68 * @see #getHead()
69 * @generated
70 */
71 void setHead(Call value);
72
73} // ExternMetricDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternPredicateDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternPredicateDefinition.java
new file mode 100644
index 00000000..56e6b645
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternPredicateDefinition.java
@@ -0,0 +1,47 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Extern Predicate Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition#getHead <em>Head</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternPredicateDefinition()
20 * @model
21 * @generated
22 */
23public interface ExternPredicateDefinition extends Statement
24{
25 /**
26 * Returns the value of the '<em><b>Head</b></em>' containment reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Head</em>' containment reference.
30 * @see #setHead(Call)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternPredicateDefinition_Head()
32 * @model containment="true"
33 * @generated
34 */
35 Call getHead();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition#getHead <em>Head</em>}' containment reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Head</em>' containment reference.
42 * @see #getHead()
43 * @generated
44 */
45 void setHead(Call value);
46
47} // ExternPredicateDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/False.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/False.java
deleted file mode 100644
index 71947237..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/False.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>False</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFalse()
14 * @model
15 * @generated
16 */
17public interface False extends TruthValue
18{
19} // False
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/FieldRelationInterpretation.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/FieldRelationInterpretation.java
deleted file mode 100644
index eccf49e0..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/FieldRelationInterpretation.java
+++ /dev/null
@@ -1,117 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Field Relation Interpretation</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#isContainment <em>Containment</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getSymbol <em>Symbol</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getMultiplicity <em>Multiplicity</em>}</li>
20 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getTarget <em>Target</em>}</li>
21 * </ul>
22 *
23 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation()
24 * @model
25 * @generated
26 */
27public interface FieldRelationInterpretation extends EObject
28{
29 /**
30 * Returns the value of the '<em><b>Containment</b></em>' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Containment</em>' attribute.
34 * @see #setContainment(boolean)
35 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation_Containment()
36 * @model
37 * @generated
38 */
39 boolean isContainment();
40
41 /**
42 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#isContainment <em>Containment</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Containment</em>' attribute.
46 * @see #isContainment()
47 * @generated
48 */
49 void setContainment(boolean value);
50
51 /**
52 * Returns the value of the '<em><b>Symbol</b></em>' containment reference.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return the value of the '<em>Symbol</em>' containment reference.
56 * @see #setSymbol(ModelSymbol)
57 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation_Symbol()
58 * @model containment="true"
59 * @generated
60 */
61 ModelSymbol getSymbol();
62
63 /**
64 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getSymbol <em>Symbol</em>}' containment reference.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @param value the new value of the '<em>Symbol</em>' containment reference.
68 * @see #getSymbol()
69 * @generated
70 */
71 void setSymbol(ModelSymbol value);
72
73 /**
74 * Returns the value of the '<em><b>Multiplicity</b></em>' containment reference.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @return the value of the '<em>Multiplicity</em>' containment reference.
78 * @see #setMultiplicity(MultiplicityDefinition)
79 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation_Multiplicity()
80 * @model containment="true"
81 * @generated
82 */
83 MultiplicityDefinition getMultiplicity();
84
85 /**
86 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getMultiplicity <em>Multiplicity</em>}' containment reference.
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @param value the new value of the '<em>Multiplicity</em>' containment reference.
90 * @see #getMultiplicity()
91 * @generated
92 */
93 void setMultiplicity(MultiplicityDefinition value);
94
95 /**
96 * Returns the value of the '<em><b>Target</b></em>' containment reference.
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @return the value of the '<em>Target</em>' containment reference.
100 * @see #setTarget(Symbol)
101 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation_Target()
102 * @model containment="true"
103 * @generated
104 */
105 Symbol getTarget();
106
107 /**
108 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getTarget <em>Target</em>}' containment reference.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @param value the new value of the '<em>Target</em>' containment reference.
112 * @see #getTarget()
113 * @generated
114 */
115 void setTarget(Symbol value);
116
117} // FieldRelationInterpretation
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/GlobalRelationInterpretation.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/GlobalRelationInterpretation.java
deleted file mode 100644
index 59ab4278..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/GlobalRelationInterpretation.java
+++ /dev/null
@@ -1,162 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Global Relation Interpretation</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#isContainment <em>Containment</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSymbol <em>Symbol</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSourceMultiplicity <em>Source Multiplicity</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSource <em>Source</em>}</li>
20 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTargetMultiplicity <em>Target Multiplicity</em>}</li>
21 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTarget <em>Target</em>}</li>
22 * </ul>
23 *
24 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation()
25 * @model
26 * @generated
27 */
28public interface GlobalRelationInterpretation extends CDInterpretation
29{
30 /**
31 * Returns the value of the '<em><b>Containment</b></em>' attribute.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Containment</em>' attribute.
35 * @see #setContainment(boolean)
36 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_Containment()
37 * @model
38 * @generated
39 */
40 boolean isContainment();
41
42 /**
43 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#isContainment <em>Containment</em>}' attribute.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @param value the new value of the '<em>Containment</em>' attribute.
47 * @see #isContainment()
48 * @generated
49 */
50 void setContainment(boolean value);
51
52 /**
53 * Returns the value of the '<em><b>Symbol</b></em>' containment reference.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @return the value of the '<em>Symbol</em>' containment reference.
57 * @see #setSymbol(ModelSymbol)
58 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_Symbol()
59 * @model containment="true"
60 * @generated
61 */
62 ModelSymbol getSymbol();
63
64 /**
65 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSymbol <em>Symbol</em>}' containment reference.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @param value the new value of the '<em>Symbol</em>' containment reference.
69 * @see #getSymbol()
70 * @generated
71 */
72 void setSymbol(ModelSymbol value);
73
74 /**
75 * Returns the value of the '<em><b>Source Multiplicity</b></em>' containment reference.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @return the value of the '<em>Source Multiplicity</em>' containment reference.
79 * @see #setSourceMultiplicity(MultiplicityDefinition)
80 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_SourceMultiplicity()
81 * @model containment="true"
82 * @generated
83 */
84 MultiplicityDefinition getSourceMultiplicity();
85
86 /**
87 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSourceMultiplicity <em>Source Multiplicity</em>}' containment reference.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @param value the new value of the '<em>Source Multiplicity</em>' containment reference.
91 * @see #getSourceMultiplicity()
92 * @generated
93 */
94 void setSourceMultiplicity(MultiplicityDefinition value);
95
96 /**
97 * Returns the value of the '<em><b>Source</b></em>' containment reference.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return the value of the '<em>Source</em>' containment reference.
101 * @see #setSource(Symbol)
102 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_Source()
103 * @model containment="true"
104 * @generated
105 */
106 Symbol getSource();
107
108 /**
109 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSource <em>Source</em>}' containment reference.
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @param value the new value of the '<em>Source</em>' containment reference.
113 * @see #getSource()
114 * @generated
115 */
116 void setSource(Symbol value);
117
118 /**
119 * Returns the value of the '<em><b>Target Multiplicity</b></em>' containment reference.
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @return the value of the '<em>Target Multiplicity</em>' containment reference.
123 * @see #setTargetMultiplicity(MultiplicityDefinition)
124 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_TargetMultiplicity()
125 * @model containment="true"
126 * @generated
127 */
128 MultiplicityDefinition getTargetMultiplicity();
129
130 /**
131 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTargetMultiplicity <em>Target Multiplicity</em>}' containment reference.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @param value the new value of the '<em>Target Multiplicity</em>' containment reference.
135 * @see #getTargetMultiplicity()
136 * @generated
137 */
138 void setTargetMultiplicity(MultiplicityDefinition value);
139
140 /**
141 * Returns the value of the '<em><b>Target</b></em>' containment reference.
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @return the value of the '<em>Target</em>' containment reference.
145 * @see #setTarget(Symbol)
146 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_Target()
147 * @model containment="true"
148 * @generated
149 */
150 Symbol getTarget();
151
152 /**
153 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTarget <em>Target</em>}' containment reference.
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @param value the new value of the '<em>Target</em>' containment reference.
157 * @see #getTarget()
158 * @generated
159 */
160 void setTarget(Symbol value);
161
162} // GlobalRelationInterpretation
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IfElse.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IfElse.java
new file mode 100644
index 00000000..f08a8420
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IfElse.java
@@ -0,0 +1,93 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>If Else</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getCondition <em>Condition</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getThen <em>Then</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getElse <em>Else</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIfElse()
22 * @model
23 * @generated
24 */
25public interface IfElse extends Expression
26{
27 /**
28 * Returns the value of the '<em><b>Condition</b></em>' containment reference.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Condition</em>' containment reference.
32 * @see #setCondition(Expression)
33 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIfElse_Condition()
34 * @model containment="true"
35 * @generated
36 */
37 Expression getCondition();
38
39 /**
40 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getCondition <em>Condition</em>}' containment reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Condition</em>' containment reference.
44 * @see #getCondition()
45 * @generated
46 */
47 void setCondition(Expression value);
48
49 /**
50 * Returns the value of the '<em><b>Then</b></em>' containment reference.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>Then</em>' containment reference.
54 * @see #setThen(Expression)
55 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIfElse_Then()
56 * @model containment="true"
57 * @generated
58 */
59 Expression getThen();
60
61 /**
62 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getThen <em>Then</em>}' containment reference.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @param value the new value of the '<em>Then</em>' containment reference.
66 * @see #getThen()
67 * @generated
68 */
69 void setThen(Expression value);
70
71 /**
72 * Returns the value of the '<em><b>Else</b></em>' containment reference.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @return the value of the '<em>Else</em>' containment reference.
76 * @see #setElse(Expression)
77 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIfElse_Else()
78 * @model containment="true"
79 * @generated
80 */
81 Expression getElse();
82
83 /**
84 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getElse <em>Else</em>}' containment reference.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @param value the new value of the '<em>Else</em>' containment reference.
88 * @see #getElse()
89 * @generated
90 */
91 void setElse(Expression value);
92
93} // IfElse
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/InfinityLiteral.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/InfinityLiteral.java
new file mode 100644
index 00000000..24e9633b
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/InfinityLiteral.java
@@ -0,0 +1,19 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Infinity Literal</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInfinityLiteral()
14 * @model
15 * @generated
16 */
17public interface InfinityLiteral extends Literal
18{
19} // InfinityLiteral
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntegerSymbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntegerSymbol.java
deleted file mode 100644
index d1472499..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntegerSymbol.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Integer Symbol</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIntegerSymbol()
14 * @model
15 * @generated
16 */
17public interface IntegerSymbol extends DataSymbol
18{
19} // IntegerSymbol
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interpretation.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interpretation.java
deleted file mode 100644
index 56541016..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interpretation.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Interpretation</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInterpretation()
14 * @model
15 * @generated
16 */
17public interface Interpretation extends Statement
18{
19} // Interpretation
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interval.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interval.java
new file mode 100644
index 00000000..3431ef8b
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interval.java
@@ -0,0 +1,70 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Interval</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getLowerBound <em>Lower Bound</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getUpperBound <em>Upper Bound</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInterval()
21 * @model
22 * @generated
23 */
24public interface Interval extends Expression
25{
26 /**
27 * Returns the value of the '<em><b>Lower Bound</b></em>' containment reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Lower Bound</em>' containment reference.
31 * @see #setLowerBound(Expression)
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInterval_LowerBound()
33 * @model containment="true"
34 * @generated
35 */
36 Expression getLowerBound();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getLowerBound <em>Lower Bound</em>}' containment reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Lower Bound</em>' containment reference.
43 * @see #getLowerBound()
44 * @generated
45 */
46 void setLowerBound(Expression value);
47
48 /**
49 * Returns the value of the '<em><b>Upper Bound</b></em>' containment reference.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Upper Bound</em>' containment reference.
53 * @see #setUpperBound(Expression)
54 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInterval_UpperBound()
55 * @model containment="true"
56 * @generated
57 */
58 Expression getUpperBound();
59
60 /**
61 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getUpperBound <em>Upper Bound</em>}' containment reference.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Upper Bound</em>' containment reference.
65 * @see #getUpperBound()
66 * @generated
67 */
68 void setUpperBound(Expression value);
69
70} // Interval
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IrreflexiveClosure.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IrreflexiveClosure.java
deleted file mode 100644
index eca04f1e..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IrreflexiveClosure.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Irreflexive Closure</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIrreflexiveClosure()
14 * @model
15 * @generated
16 */
17public interface IrreflexiveClosure extends ClosureType
18{
19} // IrreflexiveClosure
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Literal.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Literal.java
index 259abe8c..67d4e64f 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Literal.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Literal.java
@@ -1,9 +1,8 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
6import org.eclipse.emf.ecore.EObject;
7 6
8/** 7/**
9 * <!-- begin-user-doc --> 8 * <!-- begin-user-doc -->
@@ -15,6 +14,6 @@ import org.eclipse.emf.ecore.EObject;
15 * @model 14 * @model
16 * @generated 15 * @generated
17 */ 16 */
18public interface Literal extends EObject 17public interface Literal extends Expression
19{ 18{
20} // Literal 19} // Literal
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntObject.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicLiteral.java
index 1a42b0c3..b3eb1523 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntObject.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicLiteral.java
@@ -1,47 +1,50 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
6 6
7/** 7/**
8 * <!-- begin-user-doc --> 8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Int Object</b></em>'. 9 * A representation of the model object '<em><b>Logic Literal</b></em>'.
10 * <!-- end-user-doc --> 10 * <!-- end-user-doc -->
11 * 11 *
12 * <p> 12 * <p>
13 * The following features are supported: 13 * The following features are supported:
14 * </p> 14 * </p>
15 * <ul> 15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.IntObject#getValue <em>Value</em>}</li> 16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral#getValue <em>Value</em>}</li>
17 * </ul> 17 * </ul>
18 * 18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIntObject() 19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLogicLiteral()
20 * @model 20 * @model
21 * @generated 21 * @generated
22 */ 22 */
23public interface IntObject extends DataObject 23public interface LogicLiteral extends Literal
24{ 24{
25 /** 25 /**
26 * Returns the value of the '<em><b>Value</b></em>' attribute. 26 * Returns the value of the '<em><b>Value</b></em>' attribute.
27 * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.LogicValue}.
27 * <!-- begin-user-doc --> 28 * <!-- begin-user-doc -->
28 * <!-- end-user-doc --> 29 * <!-- end-user-doc -->
29 * @return the value of the '<em>Value</em>' attribute. 30 * @return the value of the '<em>Value</em>' attribute.
30 * @see #setValue(int) 31 * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIntObject_Value() 32 * @see #setValue(LogicValue)
33 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLogicLiteral_Value()
32 * @model 34 * @model
33 * @generated 35 * @generated
34 */ 36 */
35 int getValue(); 37 LogicValue getValue();
36 38
37 /** 39 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.IntObject#getValue <em>Value</em>}' attribute. 40 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral#getValue <em>Value</em>}' attribute.
39 * <!-- begin-user-doc --> 41 * <!-- begin-user-doc -->
40 * <!-- end-user-doc --> 42 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Value</em>' attribute. 43 * @param value the new value of the '<em>Value</em>' attribute.
44 * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue
42 * @see #getValue() 45 * @see #getValue()
43 * @generated 46 * @generated
44 */ 47 */
45 void setValue(int value); 48 void setValue(LogicValue value);
46 49
47} // IntObject 50} // LogicLiteral
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicValue.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicValue.java
new file mode 100644
index 00000000..61be81f7
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicValue.java
@@ -0,0 +1,271 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import java.util.Arrays;
7import java.util.Collections;
8import java.util.List;
9
10import org.eclipse.emf.common.util.Enumerator;
11
12/**
13 * <!-- begin-user-doc -->
14 * A representation of the literals of the enumeration '<em><b>Logic Value</b></em>',
15 * and utility methods for working with them.
16 * <!-- end-user-doc -->
17 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLogicValue()
18 * @model
19 * @generated
20 */
21public enum LogicValue implements Enumerator
22{
23 /**
24 * The '<em><b>TRUE</b></em>' literal object.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @see #TRUE_VALUE
28 * @generated
29 * @ordered
30 */
31 TRUE(0, "TRUE", "true"),
32
33 /**
34 * The '<em><b>FALSE</b></em>' literal object.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @see #FALSE_VALUE
38 * @generated
39 * @ordered
40 */
41 FALSE(1, "FALSE", "false"),
42
43 /**
44 * The '<em><b>UNKNOWN</b></em>' literal object.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #UNKNOWN_VALUE
48 * @generated
49 * @ordered
50 */
51 UNKNOWN(2, "UNKNOWN", "unknown"),
52
53 /**
54 * The '<em><b>ERROR</b></em>' literal object.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @see #ERROR_VALUE
58 * @generated
59 * @ordered
60 */
61 ERROR(3, "ERROR", "error");
62
63 /**
64 * The '<em><b>TRUE</b></em>' literal value.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @see #TRUE
68 * @model literal="true"
69 * @generated
70 * @ordered
71 */
72 public static final int TRUE_VALUE = 0;
73
74 /**
75 * The '<em><b>FALSE</b></em>' literal value.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @see #FALSE
79 * @model literal="false"
80 * @generated
81 * @ordered
82 */
83 public static final int FALSE_VALUE = 1;
84
85 /**
86 * The '<em><b>UNKNOWN</b></em>' literal value.
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @see #UNKNOWN
90 * @model literal="unknown"
91 * @generated
92 * @ordered
93 */
94 public static final int UNKNOWN_VALUE = 2;
95
96 /**
97 * The '<em><b>ERROR</b></em>' literal value.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @see #ERROR
101 * @model literal="error"
102 * @generated
103 * @ordered
104 */
105 public static final int ERROR_VALUE = 3;
106
107 /**
108 * An array of all the '<em><b>Logic Value</b></em>' enumerators.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 private static final LogicValue[] VALUES_ARRAY =
114 new LogicValue[]
115 {
116 TRUE,
117 FALSE,
118 UNKNOWN,
119 ERROR,
120 };
121
122 /**
123 * A public read-only list of all the '<em><b>Logic Value</b></em>' enumerators.
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 public static final List<LogicValue> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
129
130 /**
131 * Returns the '<em><b>Logic Value</b></em>' literal with the specified literal value.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @param literal the literal.
135 * @return the matching enumerator or <code>null</code>.
136 * @generated
137 */
138 public static LogicValue get(String literal)
139 {
140 for (int i = 0; i < VALUES_ARRAY.length; ++i)
141 {
142 LogicValue result = VALUES_ARRAY[i];
143 if (result.toString().equals(literal))
144 {
145 return result;
146 }
147 }
148 return null;
149 }
150
151 /**
152 * Returns the '<em><b>Logic Value</b></em>' literal with the specified name.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @param name the name.
156 * @return the matching enumerator or <code>null</code>.
157 * @generated
158 */
159 public static LogicValue getByName(String name)
160 {
161 for (int i = 0; i < VALUES_ARRAY.length; ++i)
162 {
163 LogicValue result = VALUES_ARRAY[i];
164 if (result.getName().equals(name))
165 {
166 return result;
167 }
168 }
169 return null;
170 }
171
172 /**
173 * Returns the '<em><b>Logic Value</b></em>' literal with the specified integer value.
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @param value the integer value.
177 * @return the matching enumerator or <code>null</code>.
178 * @generated
179 */
180 public static LogicValue get(int value)
181 {
182 switch (value)
183 {
184 case TRUE_VALUE: return TRUE;
185 case FALSE_VALUE: return FALSE;
186 case UNKNOWN_VALUE: return UNKNOWN;
187 case ERROR_VALUE: return ERROR;
188 }
189 return null;
190 }
191
192 /**
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @generated
196 */
197 private final int value;
198
199 /**
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @generated
203 */
204 private final String name;
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 private final String literal;
212
213 /**
214 * Only this class can construct instances.
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @generated
218 */
219 private LogicValue(int value, String name, String literal)
220 {
221 this.value = value;
222 this.name = name;
223 this.literal = literal;
224 }
225
226 /**
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @generated
230 */
231 @Override
232 public int getValue()
233 {
234 return value;
235 }
236
237 /**
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 */
242 @Override
243 public String getName()
244 {
245 return name;
246 }
247
248 /**
249 * <!-- begin-user-doc -->
250 * <!-- end-user-doc -->
251 * @generated
252 */
253 @Override
254 public String getLiteral()
255 {
256 return literal;
257 }
258
259 /**
260 * Returns the literal value of the enumerator, which is its string representation.
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public String toString()
267 {
268 return literal;
269 }
270
271} //LogicValue
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LowerBoundedScopeDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LowerBoundedScopeDefinition.java
new file mode 100644
index 00000000..57edcfda
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LowerBoundedScopeDefinition.java
@@ -0,0 +1,47 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Lower Bounded Scope Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition#getLowerBound <em>Lower Bound</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLowerBoundedScopeDefinition()
20 * @model
21 * @generated
22 */
23public interface LowerBoundedScopeDefinition extends ScopeDefinition
24{
25 /**
26 * Returns the value of the '<em><b>Lower Bound</b></em>' attribute.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Lower Bound</em>' attribute.
30 * @see #setLowerBound(int)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLowerBoundedScopeDefinition_LowerBound()
32 * @model
33 * @generated
34 */
35 int getLowerBound();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition#getLowerBound <em>Lower Bound</em>}' attribute.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Lower Bound</em>' attribute.
42 * @see #getLowerBound()
43 * @generated
44 */
45 void setLowerBound(int value);
46
47} // LowerBoundedScopeDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ManyMultiplicity.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ManyMultiplicity.java
new file mode 100644
index 00000000..4a667d4a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ManyMultiplicity.java
@@ -0,0 +1,19 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Many Multiplicity</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getManyMultiplicity()
14 * @model
15 * @generated
16 */
17public interface ManyMultiplicity extends Multiplicity
18{
19} // ManyMultiplicity
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MemberDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MemberDefinition.java
new file mode 100644
index 00000000..3b413c11
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MemberDefinition.java
@@ -0,0 +1,140 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Member Definition</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#isContainment <em>Containment</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getType <em>Type</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getMultiplicity <em>Multiplicity</em>}</li>
20 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getName <em>Name</em>}</li>
21 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getOpposite <em>Opposite</em>}</li>
22 * </ul>
23 *
24 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition()
25 * @model
26 * @generated
27 */
28public interface MemberDefinition extends EObject
29{
30 /**
31 * Returns the value of the '<em><b>Containment</b></em>' attribute.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Containment</em>' attribute.
35 * @see #setContainment(boolean)
36 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Containment()
37 * @model
38 * @generated
39 */
40 boolean isContainment();
41
42 /**
43 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#isContainment <em>Containment</em>}' attribute.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @param value the new value of the '<em>Containment</em>' attribute.
47 * @see #isContainment()
48 * @generated
49 */
50 void setContainment(boolean value);
51
52 /**
53 * Returns the value of the '<em><b>Type</b></em>' reference.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @return the value of the '<em>Type</em>' reference.
57 * @see #setType(NamedElement)
58 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Type()
59 * @model
60 * @generated
61 */
62 NamedElement getType();
63
64 /**
65 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getType <em>Type</em>}' reference.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @param value the new value of the '<em>Type</em>' reference.
69 * @see #getType()
70 * @generated
71 */
72 void setType(NamedElement value);
73
74 /**
75 * Returns the value of the '<em><b>Multiplicity</b></em>' containment reference.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @return the value of the '<em>Multiplicity</em>' containment reference.
79 * @see #setMultiplicity(Multiplicity)
80 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Multiplicity()
81 * @model containment="true"
82 * @generated
83 */
84 Multiplicity getMultiplicity();
85
86 /**
87 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getMultiplicity <em>Multiplicity</em>}' containment reference.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @param value the new value of the '<em>Multiplicity</em>' containment reference.
91 * @see #getMultiplicity()
92 * @generated
93 */
94 void setMultiplicity(Multiplicity value);
95
96 /**
97 * Returns the value of the '<em><b>Name</b></em>' attribute.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return the value of the '<em>Name</em>' attribute.
101 * @see #setName(String)
102 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Name()
103 * @model
104 * @generated
105 */
106 String getName();
107
108 /**
109 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getName <em>Name</em>}' attribute.
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @param value the new value of the '<em>Name</em>' attribute.
113 * @see #getName()
114 * @generated
115 */
116 void setName(String value);
117
118 /**
119 * Returns the value of the '<em><b>Opposite</b></em>' reference.
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @return the value of the '<em>Opposite</em>' reference.
123 * @see #setOpposite(NamedElement)
124 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Opposite()
125 * @model
126 * @generated
127 */
128 NamedElement getOpposite();
129
130 /**
131 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getOpposite <em>Opposite</em>}' reference.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @param value the new value of the '<em>Opposite</em>' reference.
135 * @see #getOpposite()
136 * @generated
137 */
138 void setOpposite(NamedElement value);
139
140} // MemberDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricDefinition.java
new file mode 100644
index 00000000..a35ab60c
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricDefinition.java
@@ -0,0 +1,96 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Metric Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getHead <em>Head</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getBody <em>Body</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getType <em>Type</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricDefinition()
22 * @model
23 * @generated
24 */
25public interface MetricDefinition extends Statement
26{
27 /**
28 * Returns the value of the '<em><b>Head</b></em>' containment reference.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Head</em>' containment reference.
32 * @see #setHead(Expression)
33 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricDefinition_Head()
34 * @model containment="true"
35 * @generated
36 */
37 Expression getHead();
38
39 /**
40 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getHead <em>Head</em>}' containment reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Head</em>' containment reference.
44 * @see #getHead()
45 * @generated
46 */
47 void setHead(Expression value);
48
49 /**
50 * Returns the value of the '<em><b>Body</b></em>' containment reference.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>Body</em>' containment reference.
54 * @see #setBody(Expression)
55 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricDefinition_Body()
56 * @model containment="true"
57 * @generated
58 */
59 Expression getBody();
60
61 /**
62 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getBody <em>Body</em>}' containment reference.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @param value the new value of the '<em>Body</em>' containment reference.
66 * @see #getBody()
67 * @generated
68 */
69 void setBody(Expression value);
70
71 /**
72 * Returns the value of the '<em><b>Type</b></em>' attribute.
73 * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.MetricType}.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @return the value of the '<em>Type</em>' attribute.
77 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType
78 * @see #setType(MetricType)
79 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricDefinition_Type()
80 * @model
81 * @generated
82 */
83 MetricType getType();
84
85 /**
86 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getType <em>Type</em>}' attribute.
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @param value the new value of the '<em>Type</em>' attribute.
90 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType
91 * @see #getType()
92 * @generated
93 */
94 void setType(MetricType value);
95
96} // MetricDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricType.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricType.java
new file mode 100644
index 00000000..0aa6a805
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricType.java
@@ -0,0 +1,225 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import java.util.Arrays;
7import java.util.Collections;
8import java.util.List;
9
10import org.eclipse.emf.common.util.Enumerator;
11
12/**
13 * <!-- begin-user-doc -->
14 * A representation of the literals of the enumeration '<em><b>Metric Type</b></em>',
15 * and utility methods for working with them.
16 * <!-- end-user-doc -->
17 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricType()
18 * @model
19 * @generated
20 */
21public enum MetricType implements Enumerator
22{
23 /**
24 * The '<em><b>INT</b></em>' literal object.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @see #INT_VALUE
28 * @generated
29 * @ordered
30 */
31 INT(0, "INT", "int"),
32
33 /**
34 * The '<em><b>REAL</b></em>' literal object.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @see #REAL_VALUE
38 * @generated
39 * @ordered
40 */
41 REAL(1, "REAL", "real");
42
43 /**
44 * The '<em><b>INT</b></em>' literal value.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #INT
48 * @model literal="int"
49 * @generated
50 * @ordered
51 */
52 public static final int INT_VALUE = 0;
53
54 /**
55 * The '<em><b>REAL</b></em>' literal value.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #REAL
59 * @model literal="real"
60 * @generated
61 * @ordered
62 */
63 public static final int REAL_VALUE = 1;
64
65 /**
66 * An array of all the '<em><b>Metric Type</b></em>' enumerators.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 private static final MetricType[] VALUES_ARRAY =
72 new MetricType[]
73 {
74 INT,
75 REAL,
76 };
77
78 /**
79 * A public read-only list of all the '<em><b>Metric Type</b></em>' enumerators.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 public static final List<MetricType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
85
86 /**
87 * Returns the '<em><b>Metric Type</b></em>' literal with the specified literal value.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @param literal the literal.
91 * @return the matching enumerator or <code>null</code>.
92 * @generated
93 */
94 public static MetricType get(String literal)
95 {
96 for (int i = 0; i < VALUES_ARRAY.length; ++i)
97 {
98 MetricType result = VALUES_ARRAY[i];
99 if (result.toString().equals(literal))
100 {
101 return result;
102 }
103 }
104 return null;
105 }
106
107 /**
108 * Returns the '<em><b>Metric Type</b></em>' literal with the specified name.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @param name the name.
112 * @return the matching enumerator or <code>null</code>.
113 * @generated
114 */
115 public static MetricType getByName(String name)
116 {
117 for (int i = 0; i < VALUES_ARRAY.length; ++i)
118 {
119 MetricType result = VALUES_ARRAY[i];
120 if (result.getName().equals(name))
121 {
122 return result;
123 }
124 }
125 return null;
126 }
127
128 /**
129 * Returns the '<em><b>Metric Type</b></em>' literal with the specified integer value.
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @param value the integer value.
133 * @return the matching enumerator or <code>null</code>.
134 * @generated
135 */
136 public static MetricType get(int value)
137 {
138 switch (value)
139 {
140 case INT_VALUE: return INT;
141 case REAL_VALUE: return REAL;
142 }
143 return null;
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 private final int value;
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 private final String name;
159
160 /**
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @generated
164 */
165 private final String literal;
166
167 /**
168 * Only this class can construct instances.
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 private MetricType(int value, String name, String literal)
174 {
175 this.value = value;
176 this.name = name;
177 this.literal = literal;
178 }
179
180 /**
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 @Override
186 public int getValue()
187 {
188 return value;
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 public String getName()
198 {
199 return name;
200 }
201
202 /**
203 * <!-- begin-user-doc -->
204 * <!-- end-user-doc -->
205 * @generated
206 */
207 @Override
208 public String getLiteral()
209 {
210 return literal;
211 }
212
213 /**
214 * Returns the literal value of the enumerator, which is its string representation.
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @generated
218 */
219 @Override
220 public String toString()
221 {
222 return literal;
223 }
224
225} //MetricType
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClosureType.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Multiplicity.java
index f9d8dc28..1cbfadd6 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClosureType.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Multiplicity.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
@@ -7,14 +7,14 @@ import org.eclipse.emf.ecore.EObject;
7 7
8/** 8/**
9 * <!-- begin-user-doc --> 9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Closure Type</b></em>'. 10 * A representation of the model object '<em><b>Multiplicity</b></em>'.
11 * <!-- end-user-doc --> 11 * <!-- end-user-doc -->
12 * 12 *
13 * 13 *
14 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClosureType() 14 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicity()
15 * @model 15 * @model
16 * @generated 16 * @generated
17 */ 17 */
18public interface ClosureType extends EObject 18public interface Multiplicity extends EObject
19{ 19{
20} // ClosureType 20} // Multiplicity
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MultiplicityDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MultiplicityDefinition.java
deleted file mode 100644
index 9b4def59..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MultiplicityDefinition.java
+++ /dev/null
@@ -1,94 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Multiplicity Definition</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getLower <em>Lower</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getUpper <em>Upper</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#isUnlimitedUpper <em>Unlimited Upper</em>}</li>
20 * </ul>
21 *
22 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicityDefinition()
23 * @model
24 * @generated
25 */
26public interface MultiplicityDefinition extends EObject
27{
28 /**
29 * Returns the value of the '<em><b>Lower</b></em>' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>Lower</em>' attribute.
33 * @see #setLower(int)
34 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicityDefinition_Lower()
35 * @model
36 * @generated
37 */
38 int getLower();
39
40 /**
41 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getLower <em>Lower</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Lower</em>' attribute.
45 * @see #getLower()
46 * @generated
47 */
48 void setLower(int value);
49
50 /**
51 * Returns the value of the '<em><b>Upper</b></em>' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Upper</em>' attribute.
55 * @see #setUpper(int)
56 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicityDefinition_Upper()
57 * @model
58 * @generated
59 */
60 int getUpper();
61
62 /**
63 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getUpper <em>Upper</em>}' attribute.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @param value the new value of the '<em>Upper</em>' attribute.
67 * @see #getUpper()
68 * @generated
69 */
70 void setUpper(int value);
71
72 /**
73 * Returns the value of the '<em><b>Unlimited Upper</b></em>' attribute.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @return the value of the '<em>Unlimited Upper</em>' attribute.
77 * @see #setUnlimitedUpper(boolean)
78 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicityDefinition_UnlimitedUpper()
79 * @model
80 * @generated
81 */
82 boolean isUnlimitedUpper();
83
84 /**
85 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#isUnlimitedUpper <em>Unlimited Upper</em>}' attribute.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @param value the new value of the '<em>Unlimited Upper</em>' attribute.
89 * @see #isUnlimitedUpper()
90 * @generated
91 */
92 void setUnlimitedUpper(boolean value);
93
94} // MultiplicityDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ModelSymbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedElement.java
index 0d91b791..0372da14 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ModelSymbol.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedElement.java
@@ -1,26 +1,27 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
6import org.eclipse.emf.ecore.EObject;
6 7
7/** 8/**
8 * <!-- begin-user-doc --> 9 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Model Symbol</b></em>'. 10 * A representation of the model object '<em><b>Named Element</b></em>'.
10 * <!-- end-user-doc --> 11 * <!-- end-user-doc -->
11 * 12 *
12 * <p> 13 * <p>
13 * The following features are supported: 14 * The following features are supported:
14 * </p> 15 * </p>
15 * <ul> 16 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol#getName <em>Name</em>}</li> 17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement#getName <em>Name</em>}</li>
17 * </ul> 18 * </ul>
18 * 19 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getModelSymbol() 20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNamedElement()
20 * @model 21 * @model
21 * @generated 22 * @generated
22 */ 23 */
23public interface ModelSymbol extends Symbol 24public interface NamedElement extends EObject
24{ 25{
25 /** 26 /**
26 * Returns the value of the '<em><b>Name</b></em>' attribute. 27 * Returns the value of the '<em><b>Name</b></em>' attribute.
@@ -28,14 +29,14 @@ public interface ModelSymbol extends Symbol
28 * <!-- end-user-doc --> 29 * <!-- end-user-doc -->
29 * @return the value of the '<em>Name</em>' attribute. 30 * @return the value of the '<em>Name</em>' attribute.
30 * @see #setName(String) 31 * @see #setName(String)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getModelSymbol_Name() 32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNamedElement_Name()
32 * @model 33 * @model
33 * @generated 34 * @generated
34 */ 35 */
35 String getName(); 36 String getName();
36 37
37 /** 38 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol#getName <em>Name</em>}' attribute. 39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement#getName <em>Name</em>}' attribute.
39 * <!-- begin-user-doc --> 40 * <!-- begin-user-doc -->
40 * <!-- end-user-doc --> 41 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Name</em>' attribute. 42 * @param value the new value of the '<em>Name</em>' attribute.
@@ -44,4 +45,4 @@ public interface ModelSymbol extends Symbol
44 */ 45 */
45 void setName(String value); 46 void setName(String value);
46 47
47} // ModelSymbol 48} // NamedElement
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedObject.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedObject.java
deleted file mode 100644
index b44ef060..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedObject.java
+++ /dev/null
@@ -1,47 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Named Object</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject#getName <em>Name</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNamedObject()
20 * @model
21 * @generated
22 */
23public interface NamedObject extends org.eclipse.viatra.solver.language.solverLanguage.Object, Literal
24{
25 /**
26 * Returns the value of the '<em><b>Name</b></em>' attribute.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Name</em>' attribute.
30 * @see #setName(String)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNamedObject_Name()
32 * @model
33 * @generated
34 */
35 String getName();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject#getName <em>Name</em>}' attribute.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Name</em>' attribute.
42 * @see #getName()
43 * @generated
44 */
45 void setName(String value);
46
47} // NamedObject
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Negative.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Negative.java
deleted file mode 100644
index 5d735fec..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Negative.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Negative</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNegative()
14 * @model
15 * @generated
16 */
17public interface Negative extends Polarity
18{
19} // Negative
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealObject.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NumericLiteral.java
index 12e8be3e..9e30d508 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealObject.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NumericLiteral.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
@@ -7,21 +7,21 @@ import java.math.BigDecimal;
7 7
8/** 8/**
9 * <!-- begin-user-doc --> 9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Real Object</b></em>'. 10 * A representation of the model object '<em><b>Numeric Literal</b></em>'.
11 * <!-- end-user-doc --> 11 * <!-- end-user-doc -->
12 * 12 *
13 * <p> 13 * <p>
14 * The following features are supported: 14 * The following features are supported:
15 * </p> 15 * </p>
16 * <ul> 16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.RealObject#getValue <em>Value</em>}</li> 17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral#getValue <em>Value</em>}</li>
18 * </ul> 18 * </ul>
19 * 19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getRealObject() 20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNumericLiteral()
21 * @model 21 * @model
22 * @generated 22 * @generated
23 */ 23 */
24public interface RealObject extends DataObject 24public interface NumericLiteral extends Literal
25{ 25{
26 /** 26 /**
27 * Returns the value of the '<em><b>Value</b></em>' attribute. 27 * Returns the value of the '<em><b>Value</b></em>' attribute.
@@ -29,14 +29,14 @@ public interface RealObject extends DataObject
29 * <!-- end-user-doc --> 29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Value</em>' attribute. 30 * @return the value of the '<em>Value</em>' attribute.
31 * @see #setValue(BigDecimal) 31 * @see #setValue(BigDecimal)
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getRealObject_Value() 32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNumericLiteral_Value()
33 * @model 33 * @model
34 * @generated 34 * @generated
35 */ 35 */
36 BigDecimal getValue(); 36 BigDecimal getValue();
37 37
38 /** 38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.RealObject#getValue <em>Value</em>}' attribute. 39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral#getValue <em>Value</em>}' attribute.
40 * <!-- begin-user-doc --> 40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc --> 41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Value</em>' attribute. 42 * @param value the new value of the '<em>Value</em>' attribute.
@@ -45,4 +45,4 @@ public interface RealObject extends DataObject
45 */ 45 */
46 void setValue(BigDecimal value); 46 void setValue(BigDecimal value);
47 47
48} // RealObject 48} // NumericLiteral
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveDefinition.java
new file mode 100644
index 00000000..417a389c
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveDefinition.java
@@ -0,0 +1,73 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Objective Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getKind <em>Kind</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getObjective <em>Objective</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObjectiveDefinition()
21 * @model
22 * @generated
23 */
24public interface ObjectiveDefinition extends Statement
25{
26 /**
27 * Returns the value of the '<em><b>Kind</b></em>' attribute.
28 * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Kind</em>' attribute.
32 * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind
33 * @see #setKind(ObjectiveKind)
34 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObjectiveDefinition_Kind()
35 * @model
36 * @generated
37 */
38 ObjectiveKind getKind();
39
40 /**
41 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getKind <em>Kind</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Kind</em>' attribute.
45 * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind
46 * @see #getKind()
47 * @generated
48 */
49 void setKind(ObjectiveKind value);
50
51 /**
52 * Returns the value of the '<em><b>Objective</b></em>' containment reference.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return the value of the '<em>Objective</em>' containment reference.
56 * @see #setObjective(Expression)
57 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObjectiveDefinition_Objective()
58 * @model containment="true"
59 * @generated
60 */
61 Expression getObjective();
62
63 /**
64 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getObjective <em>Objective</em>}' containment reference.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @param value the new value of the '<em>Objective</em>' containment reference.
68 * @see #getObjective()
69 * @generated
70 */
71 void setObjective(Expression value);
72
73} // ObjectiveDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveKind.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveKind.java
new file mode 100644
index 00000000..d3a4f626
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveKind.java
@@ -0,0 +1,225 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import java.util.Arrays;
7import java.util.Collections;
8import java.util.List;
9
10import org.eclipse.emf.common.util.Enumerator;
11
12/**
13 * <!-- begin-user-doc -->
14 * A representation of the literals of the enumeration '<em><b>Objective Kind</b></em>',
15 * and utility methods for working with them.
16 * <!-- end-user-doc -->
17 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObjectiveKind()
18 * @model
19 * @generated
20 */
21public enum ObjectiveKind implements Enumerator
22{
23 /**
24 * The '<em><b>MINIMIZE</b></em>' literal object.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @see #MINIMIZE_VALUE
28 * @generated
29 * @ordered
30 */
31 MINIMIZE(0, "MINIMIZE", "minimize"),
32
33 /**
34 * The '<em><b>MAXIMIZE</b></em>' literal object.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @see #MAXIMIZE_VALUE
38 * @generated
39 * @ordered
40 */
41 MAXIMIZE(1, "MAXIMIZE", "maximize");
42
43 /**
44 * The '<em><b>MINIMIZE</b></em>' literal value.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #MINIMIZE
48 * @model literal="minimize"
49 * @generated
50 * @ordered
51 */
52 public static final int MINIMIZE_VALUE = 0;
53
54 /**
55 * The '<em><b>MAXIMIZE</b></em>' literal value.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #MAXIMIZE
59 * @model literal="maximize"
60 * @generated
61 * @ordered
62 */
63 public static final int MAXIMIZE_VALUE = 1;
64
65 /**
66 * An array of all the '<em><b>Objective Kind</b></em>' enumerators.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 private static final ObjectiveKind[] VALUES_ARRAY =
72 new ObjectiveKind[]
73 {
74 MINIMIZE,
75 MAXIMIZE,
76 };
77
78 /**
79 * A public read-only list of all the '<em><b>Objective Kind</b></em>' enumerators.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 public static final List<ObjectiveKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
85
86 /**
87 * Returns the '<em><b>Objective Kind</b></em>' literal with the specified literal value.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @param literal the literal.
91 * @return the matching enumerator or <code>null</code>.
92 * @generated
93 */
94 public static ObjectiveKind get(String literal)
95 {
96 for (int i = 0; i < VALUES_ARRAY.length; ++i)
97 {
98 ObjectiveKind result = VALUES_ARRAY[i];
99 if (result.toString().equals(literal))
100 {
101 return result;
102 }
103 }
104 return null;
105 }
106
107 /**
108 * Returns the '<em><b>Objective Kind</b></em>' literal with the specified name.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @param name the name.
112 * @return the matching enumerator or <code>null</code>.
113 * @generated
114 */
115 public static ObjectiveKind getByName(String name)
116 {
117 for (int i = 0; i < VALUES_ARRAY.length; ++i)
118 {
119 ObjectiveKind result = VALUES_ARRAY[i];
120 if (result.getName().equals(name))
121 {
122 return result;
123 }
124 }
125 return null;
126 }
127
128 /**
129 * Returns the '<em><b>Objective Kind</b></em>' literal with the specified integer value.
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @param value the integer value.
133 * @return the matching enumerator or <code>null</code>.
134 * @generated
135 */
136 public static ObjectiveKind get(int value)
137 {
138 switch (value)
139 {
140 case MINIMIZE_VALUE: return MINIMIZE;
141 case MAXIMIZE_VALUE: return MAXIMIZE;
142 }
143 return null;
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 private final int value;
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 private final String name;
159
160 /**
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @generated
164 */
165 private final String literal;
166
167 /**
168 * Only this class can construct instances.
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 private ObjectiveKind(int value, String name, String literal)
174 {
175 this.value = value;
176 this.name = name;
177 this.literal = literal;
178 }
179
180 /**
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 @Override
186 public int getValue()
187 {
188 return value;
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 public String getName()
198 {
199 return name;
200 }
201
202 /**
203 * <!-- begin-user-doc -->
204 * <!-- end-user-doc -->
205 * @generated
206 */
207 @Override
208 public String getLiteral()
209 {
210 return literal;
211 }
212
213 /**
214 * Returns the literal value of the enumerator, which is its string representation.
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @generated
218 */
219 @Override
220 public String toString()
221 {
222 return literal;
223 }
224
225} //ObjectiveKind
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Parameter.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Parameter.java
deleted file mode 100644
index e4ef1c28..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Parameter.java
+++ /dev/null
@@ -1,71 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Parameter</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getVariable <em>Variable</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getType <em>Type</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getParameter()
22 * @model
23 * @generated
24 */
25public interface Parameter extends EObject
26{
27 /**
28 * Returns the value of the '<em><b>Variable</b></em>' containment reference.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Variable</em>' containment reference.
32 * @see #setVariable(Variable)
33 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getParameter_Variable()
34 * @model containment="true"
35 * @generated
36 */
37 Variable getVariable();
38
39 /**
40 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getVariable <em>Variable</em>}' containment reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Variable</em>' containment reference.
44 * @see #getVariable()
45 * @generated
46 */
47 void setVariable(Variable value);
48
49 /**
50 * Returns the value of the '<em><b>Type</b></em>' containment reference.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>Type</em>' containment reference.
54 * @see #setType(Symbol)
55 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getParameter_Type()
56 * @model containment="true"
57 * @generated
58 */
59 Symbol getType();
60
61 /**
62 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getType <em>Type</em>}' containment reference.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @param value the new value of the '<em>Type</em>' containment reference.
66 * @see #getType()
67 * @generated
68 */
69 void setType(Symbol value);
70
71} // Parameter
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PartialitySymbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PartialitySymbol.java
deleted file mode 100644
index a4331248..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PartialitySymbol.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Partiality Symbol</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPartialitySymbol()
14 * @model
15 * @generated
16 */
17public interface PartialitySymbol extends Symbol
18{
19} // PartialitySymbol
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Positive.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Positive.java
deleted file mode 100644
index 075a865f..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Positive.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Positive</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPositive()
14 * @model
15 * @generated
16 */
17public interface Positive extends Polarity
18{
19} // Positive
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Predicate.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Predicate.java
deleted file mode 100644
index 7892fd57..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Predicate.java
+++ /dev/null
@@ -1,97 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.common.util.EList;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Predicate</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#isIsError <em>Is Error</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getSymbol <em>Symbol</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getParameters <em>Parameters</em>}</li>
20 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getBodies <em>Bodies</em>}</li>
21 * </ul>
22 *
23 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate()
24 * @model
25 * @generated
26 */
27public interface Predicate extends Statement
28{
29 /**
30 * Returns the value of the '<em><b>Is Error</b></em>' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Is Error</em>' attribute.
34 * @see #setIsError(boolean)
35 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate_IsError()
36 * @model
37 * @generated
38 */
39 boolean isIsError();
40
41 /**
42 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#isIsError <em>Is Error</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Is Error</em>' attribute.
46 * @see #isIsError()
47 * @generated
48 */
49 void setIsError(boolean value);
50
51 /**
52 * Returns the value of the '<em><b>Symbol</b></em>' containment reference.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return the value of the '<em>Symbol</em>' containment reference.
56 * @see #setSymbol(ModelSymbol)
57 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate_Symbol()
58 * @model containment="true"
59 * @generated
60 */
61 ModelSymbol getSymbol();
62
63 /**
64 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getSymbol <em>Symbol</em>}' containment reference.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @param value the new value of the '<em>Symbol</em>' containment reference.
68 * @see #getSymbol()
69 * @generated
70 */
71 void setSymbol(ModelSymbol value);
72
73 /**
74 * Returns the value of the '<em><b>Parameters</b></em>' containment reference list.
75 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Parameter}.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @return the value of the '<em>Parameters</em>' containment reference list.
79 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate_Parameters()
80 * @model containment="true"
81 * @generated
82 */
83 EList<Parameter> getParameters();
84
85 /**
86 * Returns the value of the '<em><b>Bodies</b></em>' containment reference list.
87 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody}.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @return the value of the '<em>Bodies</em>' containment reference list.
91 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate_Bodies()
92 * @model containment="true"
93 * @generated
94 */
95 EList<PatternBody> getBodies();
96
97} // Predicate
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PredicateDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PredicateDefinition.java
new file mode 100644
index 00000000..256cb5ac
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PredicateDefinition.java
@@ -0,0 +1,116 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Predicate Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getHead <em>Head</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getBody <em>Body</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isFunctional <em>Functional</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isError <em>Error</em>}</li>
20 * </ul>
21 *
22 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition()
23 * @model
24 * @generated
25 */
26public interface PredicateDefinition extends Statement
27{
28 /**
29 * Returns the value of the '<em><b>Head</b></em>' containment reference.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>Head</em>' containment reference.
33 * @see #setHead(Expression)
34 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition_Head()
35 * @model containment="true"
36 * @generated
37 */
38 Expression getHead();
39
40 /**
41 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getHead <em>Head</em>}' containment reference.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Head</em>' containment reference.
45 * @see #getHead()
46 * @generated
47 */
48 void setHead(Expression value);
49
50 /**
51 * Returns the value of the '<em><b>Body</b></em>' containment reference.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @return the value of the '<em>Body</em>' containment reference.
55 * @see #setBody(Expression)
56 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition_Body()
57 * @model containment="true"
58 * @generated
59 */
60 Expression getBody();
61
62 /**
63 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getBody <em>Body</em>}' containment reference.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @param value the new value of the '<em>Body</em>' containment reference.
67 * @see #getBody()
68 * @generated
69 */
70 void setBody(Expression value);
71
72 /**
73 * Returns the value of the '<em><b>Functional</b></em>' attribute.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @return the value of the '<em>Functional</em>' attribute.
77 * @see #setFunctional(boolean)
78 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition_Functional()
79 * @model
80 * @generated
81 */
82 boolean isFunctional();
83
84 /**
85 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isFunctional <em>Functional</em>}' attribute.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @param value the new value of the '<em>Functional</em>' attribute.
89 * @see #isFunctional()
90 * @generated
91 */
92 void setFunctional(boolean value);
93
94 /**
95 * Returns the value of the '<em><b>Error</b></em>' attribute.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @return the value of the '<em>Error</em>' attribute.
99 * @see #setError(boolean)
100 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition_Error()
101 * @model
102 * @generated
103 */
104 boolean isError();
105
106 /**
107 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isError <em>Error</em>}' attribute.
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @param value the new value of the '<em>Error</em>' attribute.
111 * @see #isError()
112 * @generated
113 */
114 void setError(boolean value);
115
116} // PredicateDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Problem.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Problem.java
index 91967617..2383bf18 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Problem.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Problem.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealSymbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealSymbol.java
deleted file mode 100644
index 06dd35fc..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealSymbol.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Real Symbol</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getRealSymbol()
14 * @model
15 * @generated
16 */
17public interface RealSymbol extends DataSymbol
18{
19} // RealSymbol
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Reference.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Reference.java
new file mode 100644
index 00000000..6adb6a9d
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Reference.java
@@ -0,0 +1,47 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Reference</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Reference#getReferred <em>Referred</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getReference()
20 * @model
21 * @generated
22 */
23public interface Reference extends Expression
24{
25 /**
26 * Returns the value of the '<em><b>Referred</b></em>' reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Referred</em>' reference.
30 * @see #setReferred(NamedElement)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getReference_Referred()
32 * @model
33 * @generated
34 */
35 NamedElement getReferred();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Reference#getReferred <em>Referred</em>}' reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Referred</em>' reference.
42 * @see #getReferred()
43 * @generated
44 */
45 void setReferred(NamedElement value);
46
47} // Reference
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ReflexiveClosure.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ReflexiveClosure.java
deleted file mode 100644
index 3eb30271..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ReflexiveClosure.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Reflexive Closure</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getReflexiveClosure()
14 * @model
15 * @generated
16 */
17public interface ReflexiveClosure extends ClosureType
18{
19} // ReflexiveClosure
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ScopeDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ScopeDefinition.java
new file mode 100644
index 00000000..42fb6513
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ScopeDefinition.java
@@ -0,0 +1,47 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Scope Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition#getType <em>Type</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getScopeDefinition()
20 * @model
21 * @generated
22 */
23public interface ScopeDefinition extends Statement
24{
25 /**
26 * Returns the value of the '<em><b>Type</b></em>' reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Type</em>' reference.
30 * @see #setType(NamedElement)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getScopeDefinition_Type()
32 * @model
33 * @generated
34 */
35 NamedElement getType();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition#getType <em>Type</em>}' reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Type</em>' reference.
42 * @see #getType()
43 * @generated
44 */
45 void setType(NamedElement value);
46
47} // ScopeDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguageFactory.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguageFactory.java
index c5d4cbff..cf5c8e62 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguageFactory.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguageFactory.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
@@ -42,454 +42,400 @@ public interface SolverLanguageFactory extends EFactory
42 Statement createStatement(); 42 Statement createStatement();
43 43
44 /** 44 /**
45 * Returns a new object of class '<em>Boolean Value</em>'. 45 * Returns a new object of class '<em>Predicate Definition</em>'.
46 * <!-- begin-user-doc --> 46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc --> 47 * <!-- end-user-doc -->
48 * @return a new object of class '<em>Boolean Value</em>'. 48 * @return a new object of class '<em>Predicate Definition</em>'.
49 * @generated 49 * @generated
50 */ 50 */
51 BooleanValue createBooleanValue(); 51 PredicateDefinition createPredicateDefinition();
52 52
53 /** 53 /**
54 * Returns a new object of class '<em>Truth Value</em>'. 54 * Returns a new object of class '<em>Unnamed Error Prediate Definition</em>'.
55 * <!-- begin-user-doc --> 55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc --> 56 * <!-- end-user-doc -->
57 * @return a new object of class '<em>Truth Value</em>'. 57 * @return a new object of class '<em>Unnamed Error Prediate Definition</em>'.
58 * @generated 58 * @generated
59 */ 59 */
60 TruthValue createTruthValue(); 60 UnnamedErrorPrediateDefinition createUnnamedErrorPrediateDefinition();
61 61
62 /** 62 /**
63 * Returns a new object of class '<em>Interpretation</em>'. 63 * Returns a new object of class '<em>Default Definition</em>'.
64 * <!-- begin-user-doc --> 64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc --> 65 * <!-- end-user-doc -->
66 * @return a new object of class '<em>Interpretation</em>'. 66 * @return a new object of class '<em>Default Definition</em>'.
67 * @generated 67 * @generated
68 */ 68 */
69 Interpretation createInterpretation(); 69 DefaultDefinition createDefaultDefinition();
70 70
71 /** 71 /**
72 * Returns a new object of class '<em>Basic Interpretation</em>'. 72 * Returns a new object of class '<em>Extern Predicate Definition</em>'.
73 * <!-- begin-user-doc --> 73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc --> 74 * <!-- end-user-doc -->
75 * @return a new object of class '<em>Basic Interpretation</em>'. 75 * @return a new object of class '<em>Extern Predicate Definition</em>'.
76 * @generated 76 * @generated
77 */ 77 */
78 BasicInterpretation createBasicInterpretation(); 78 ExternPredicateDefinition createExternPredicateDefinition();
79 79
80 /** 80 /**
81 * Returns a new object of class '<em>Symbol</em>'. 81 * Returns a new object of class '<em>Metric Definition</em>'.
82 * <!-- begin-user-doc --> 82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc --> 83 * <!-- end-user-doc -->
84 * @return a new object of class '<em>Symbol</em>'. 84 * @return a new object of class '<em>Metric Definition</em>'.
85 * @generated 85 * @generated
86 */ 86 */
87 Symbol createSymbol(); 87 MetricDefinition createMetricDefinition();
88 88
89 /** 89 /**
90 * Returns a new object of class '<em>Model Symbol</em>'. 90 * Returns a new object of class '<em>Extern Metric Definition</em>'.
91 * <!-- begin-user-doc --> 91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc --> 92 * <!-- end-user-doc -->
93 * @return a new object of class '<em>Model Symbol</em>'. 93 * @return a new object of class '<em>Extern Metric Definition</em>'.
94 * @generated 94 * @generated
95 */ 95 */
96 ModelSymbol createModelSymbol(); 96 ExternMetricDefinition createExternMetricDefinition();
97 97
98 /** 98 /**
99 * Returns a new object of class '<em>Partiality Symbol</em>'. 99 * Returns a new object of class '<em>Expression</em>'.
100 * <!-- begin-user-doc --> 100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc --> 101 * <!-- end-user-doc -->
102 * @return a new object of class '<em>Partiality Symbol</em>'. 102 * @return a new object of class '<em>Expression</em>'.
103 * @generated 103 * @generated
104 */ 104 */
105 PartialitySymbol createPartialitySymbol(); 105 Expression createExpression();
106 106
107 /** 107 /**
108 * Returns a new object of class '<em>Exist Symbol</em>'. 108 * Returns a new object of class '<em>If Else</em>'.
109 * <!-- begin-user-doc --> 109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc --> 110 * <!-- end-user-doc -->
111 * @return a new object of class '<em>Exist Symbol</em>'. 111 * @return a new object of class '<em>If Else</em>'.
112 * @generated 112 * @generated
113 */ 113 */
114 ExistSymbol createExistSymbol(); 114 IfElse createIfElse();
115 115
116 /** 116 /**
117 * Returns a new object of class '<em>Equals Symbol</em>'. 117 * Returns a new object of class '<em>Case</em>'.
118 * <!-- begin-user-doc --> 118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc --> 119 * <!-- end-user-doc -->
120 * @return a new object of class '<em>Equals Symbol</em>'. 120 * @return a new object of class '<em>Case</em>'.
121 * @generated 121 * @generated
122 */ 122 */
123 EqualsSymbol createEqualsSymbol(); 123 Case createCase();
124 124
125 /** 125 /**
126 * Returns a new object of class '<em>Data Symbol</em>'. 126 * Returns a new object of class '<em>Count</em>'.
127 * <!-- begin-user-doc --> 127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc --> 128 * <!-- end-user-doc -->
129 * @return a new object of class '<em>Data Symbol</em>'. 129 * @return a new object of class '<em>Count</em>'.
130 * @generated 130 * @generated
131 */ 131 */
132 DataSymbol createDataSymbol(); 132 Count createCount();
133 133
134 /** 134 /**
135 * Returns a new object of class '<em>Boolean Symbol</em>'. 135 * Returns a new object of class '<em>Aggregation</em>'.
136 * <!-- begin-user-doc --> 136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc --> 137 * <!-- end-user-doc -->
138 * @return a new object of class '<em>Boolean Symbol</em>'. 138 * @return a new object of class '<em>Aggregation</em>'.
139 * @generated 139 * @generated
140 */ 140 */
141 BooleanSymbol createBooleanSymbol(); 141 Aggregation createAggregation();
142 142
143 /** 143 /**
144 * Returns a new object of class '<em>Integer Symbol</em>'. 144 * Returns a new object of class '<em>Call</em>'.
145 * <!-- begin-user-doc --> 145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc --> 146 * <!-- end-user-doc -->
147 * @return a new object of class '<em>Integer Symbol</em>'. 147 * @return a new object of class '<em>Call</em>'.
148 * @generated 148 * @generated
149 */ 149 */
150 IntegerSymbol createIntegerSymbol(); 150 Call createCall();
151 151
152 /** 152 /**
153 * Returns a new object of class '<em>Real Symbol</em>'. 153 * Returns a new object of class '<em>Argument List</em>'.
154 * <!-- begin-user-doc --> 154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc --> 155 * <!-- end-user-doc -->
156 * @return a new object of class '<em>Real Symbol</em>'. 156 * @return a new object of class '<em>Argument List</em>'.
157 * @generated 157 * @generated
158 */ 158 */
159 RealSymbol createRealSymbol(); 159 ArgumentList createArgumentList();
160 160
161 /** 161 /**
162 * Returns a new object of class '<em>String Symbol</em>'. 162 * Returns a new object of class '<em>Argument</em>'.
163 * <!-- begin-user-doc --> 163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc --> 164 * <!-- end-user-doc -->
165 * @return a new object of class '<em>String Symbol</em>'. 165 * @return a new object of class '<em>Argument</em>'.
166 * @generated 166 * @generated
167 */ 167 */
168 StringSymbol createStringSymbol(); 168 Argument createArgument();
169 169
170 /** 170 /**
171 * Returns a new object of class '<em>Complex Object</em>'. 171 * Returns a new object of class '<em>Expression Argument</em>'.
172 * <!-- begin-user-doc --> 172 * <!-- begin-user-doc -->
173 * <!-- end-user-doc --> 173 * <!-- end-user-doc -->
174 * @return a new object of class '<em>Complex Object</em>'. 174 * @return a new object of class '<em>Expression Argument</em>'.
175 * @generated 175 * @generated
176 */ 176 */
177 ComplexObject createComplexObject(); 177 ExpressionArgument createExpressionArgument();
178 178
179 /** 179 /**
180 * Returns a new object of class '<em>Object</em>'. 180 * Returns a new object of class '<em>Star Argument</em>'.
181 * <!-- begin-user-doc --> 181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc --> 182 * <!-- end-user-doc -->
183 * @return a new object of class '<em>Object</em>'. 183 * @return a new object of class '<em>Star Argument</em>'.
184 * @generated 184 * @generated
185 */ 185 */
186 Object createObject(); 186 StarArgument createStarArgument();
187 187
188 /** 188 /**
189 * Returns a new object of class '<em>Named Object</em>'. 189 * Returns a new object of class '<em>Typed Argument</em>'.
190 * <!-- begin-user-doc --> 190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc --> 191 * <!-- end-user-doc -->
192 * @return a new object of class '<em>Named Object</em>'. 192 * @return a new object of class '<em>Typed Argument</em>'.
193 * @generated 193 * @generated
194 */ 194 */
195 NamedObject createNamedObject(); 195 TypedArgument createTypedArgument();
196 196
197 /** 197 /**
198 * Returns a new object of class '<em>Unnamed Object</em>'. 198 * Returns a new object of class '<em>Typed Star Argument</em>'.
199 * <!-- begin-user-doc --> 199 * <!-- begin-user-doc -->
200 * <!-- end-user-doc --> 200 * <!-- end-user-doc -->
201 * @return a new object of class '<em>Unnamed Object</em>'. 201 * @return a new object of class '<em>Typed Star Argument</em>'.
202 * @generated 202 * @generated
203 */ 203 */
204 UnnamedObject createUnnamedObject(); 204 TypedStarArgument createTypedStarArgument();
205 205
206 /** 206 /**
207 * Returns a new object of class '<em>Data Object</em>'. 207 * Returns a new object of class '<em>Reference</em>'.
208 * <!-- begin-user-doc --> 208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc --> 209 * <!-- end-user-doc -->
210 * @return a new object of class '<em>Data Object</em>'. 210 * @return a new object of class '<em>Reference</em>'.
211 * @generated 211 * @generated
212 */ 212 */
213 DataObject createDataObject(); 213 Reference createReference();
214 214
215 /** 215 /**
216 * Returns a new object of class '<em>Boolean Object</em>'. 216 * Returns a new object of class '<em>Interval</em>'.
217 * <!-- begin-user-doc --> 217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc --> 218 * <!-- end-user-doc -->
219 * @return a new object of class '<em>Boolean Object</em>'. 219 * @return a new object of class '<em>Interval</em>'.
220 * @generated 220 * @generated
221 */ 221 */
222 BooleanObject createBooleanObject(); 222 Interval createInterval();
223 223
224 /** 224 /**
225 * Returns a new object of class '<em>Int Object</em>'. 225 * Returns a new object of class '<em>Literal</em>'.
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @return a new object of class '<em>Int Object</em>'.
229 * @generated
230 */
231 IntObject createIntObject();
232
233 /**
234 * Returns a new object of class '<em>Real Object</em>'.
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @return a new object of class '<em>Real Object</em>'.
238 * @generated
239 */
240 RealObject createRealObject();
241
242 /**
243 * Returns a new object of class '<em>String Object</em>'.
244 * <!-- begin-user-doc -->
245 * <!-- end-user-doc -->
246 * @return a new object of class '<em>String Object</em>'.
247 * @generated
248 */
249 StringObject createStringObject();
250
251 /**
252 * Returns a new object of class '<em>Predicate</em>'.
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @return a new object of class '<em>Predicate</em>'.
256 * @generated
257 */
258 Predicate createPredicate();
259
260 /**
261 * Returns a new object of class '<em>Parameter</em>'.
262 * <!-- begin-user-doc -->
263 * <!-- end-user-doc -->
264 * @return a new object of class '<em>Parameter</em>'.
265 * @generated
266 */
267 Parameter createParameter();
268
269 /**
270 * Returns a new object of class '<em>Pattern Body</em>'.
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @return a new object of class '<em>Pattern Body</em>'.
274 * @generated
275 */
276 PatternBody createPatternBody();
277
278 /**
279 * Returns a new object of class '<em>Polarity</em>'.
280 * <!-- begin-user-doc --> 226 * <!-- begin-user-doc -->
281 * <!-- end-user-doc --> 227 * <!-- end-user-doc -->
282 * @return a new object of class '<em>Polarity</em>'. 228 * @return a new object of class '<em>Literal</em>'.
283 * @generated 229 * @generated
284 */ 230 */
285 Polarity createPolarity(); 231 Literal createLiteral();
286 232
287 /** 233 /**
288 * Returns a new object of class '<em>Constraint</em>'. 234 * Returns a new object of class '<em>Logic Literal</em>'.
289 * <!-- begin-user-doc --> 235 * <!-- begin-user-doc -->
290 * <!-- end-user-doc --> 236 * <!-- end-user-doc -->
291 * @return a new object of class '<em>Constraint</em>'. 237 * @return a new object of class '<em>Logic Literal</em>'.
292 * @generated 238 * @generated
293 */ 239 */
294 Constraint createConstraint(); 240 LogicLiteral createLogicLiteral();
295 241
296 /** 242 /**
297 * Returns a new object of class '<em>Closure Type</em>'. 243 * Returns a new object of class '<em>Numeric Literal</em>'.
298 * <!-- begin-user-doc --> 244 * <!-- begin-user-doc -->
299 * <!-- end-user-doc --> 245 * <!-- end-user-doc -->
300 * @return a new object of class '<em>Closure Type</em>'. 246 * @return a new object of class '<em>Numeric Literal</em>'.
301 * @generated 247 * @generated
302 */ 248 */
303 ClosureType createClosureType(); 249 NumericLiteral createNumericLiteral();
304 250
305 /** 251 /**
306 * Returns a new object of class '<em>Literal</em>'. 252 * Returns a new object of class '<em>Infinity Literal</em>'.
307 * <!-- begin-user-doc --> 253 * <!-- begin-user-doc -->
308 * <!-- end-user-doc --> 254 * <!-- end-user-doc -->
309 * @return a new object of class '<em>Literal</em>'. 255 * @return a new object of class '<em>Infinity Literal</em>'.
310 * @generated 256 * @generated
311 */ 257 */
312 Literal createLiteral(); 258 InfinityLiteral createInfinityLiteral();
313 259
314 /** 260 /**
315 * Returns a new object of class '<em>Variable</em>'. 261 * Returns a new object of class '<em>Empty Interval Literal</em>'.
316 * <!-- begin-user-doc --> 262 * <!-- begin-user-doc -->
317 * <!-- end-user-doc --> 263 * <!-- end-user-doc -->
318 * @return a new object of class '<em>Variable</em>'. 264 * @return a new object of class '<em>Empty Interval Literal</em>'.
319 * @generated 265 * @generated
320 */ 266 */
321 Variable createVariable(); 267 EmptyIntervalLiteral createEmptyIntervalLiteral();
322 268
323 /** 269 /**
324 * Returns a new object of class '<em>All Instances</em>'. 270 * Returns a new object of class '<em>String Literal</em>'.
325 * <!-- begin-user-doc --> 271 * <!-- begin-user-doc -->
326 * <!-- end-user-doc --> 272 * <!-- end-user-doc -->
327 * @return a new object of class '<em>All Instances</em>'. 273 * @return a new object of class '<em>String Literal</em>'.
328 * @generated 274 * @generated
329 */ 275 */
330 AllInstances createAllInstances(); 276 StringLiteral createStringLiteral();
331 277
332 /** 278 /**
333 * Returns a new object of class '<em>All Objects</em>'. 279 * Returns a new object of class '<em>Member Definition</em>'.
334 * <!-- begin-user-doc --> 280 * <!-- begin-user-doc -->
335 * <!-- end-user-doc --> 281 * <!-- end-user-doc -->
336 * @return a new object of class '<em>All Objects</em>'. 282 * @return a new object of class '<em>Member Definition</em>'.
337 * @generated 283 * @generated
338 */ 284 */
339 AllObjects createAllObjects(); 285 MemberDefinition createMemberDefinition();
340 286
341 /** 287 /**
342 * Returns a new object of class '<em>Default Interpretation</em>'. 288 * Returns a new object of class '<em>Multiplicity</em>'.
343 * <!-- begin-user-doc --> 289 * <!-- begin-user-doc -->
344 * <!-- end-user-doc --> 290 * <!-- end-user-doc -->
345 * @return a new object of class '<em>Default Interpretation</em>'. 291 * @return a new object of class '<em>Multiplicity</em>'.
346 * @generated 292 * @generated
347 */ 293 */
348 DefaultInterpretation createDefaultInterpretation(); 294 Multiplicity createMultiplicity();
349 295
350 /** 296 /**
351 * Returns a new object of class '<em>CD Interpretation</em>'. 297 * Returns a new object of class '<em>Many Multiplicity</em>'.
352 * <!-- begin-user-doc --> 298 * <!-- begin-user-doc -->
353 * <!-- end-user-doc --> 299 * <!-- end-user-doc -->
354 * @return a new object of class '<em>CD Interpretation</em>'. 300 * @return a new object of class '<em>Many Multiplicity</em>'.
355 * @generated 301 * @generated
356 */ 302 */
357 CDInterpretation createCDInterpretation(); 303 ManyMultiplicity createManyMultiplicity();
358 304
359 /** 305 /**
360 * Returns a new object of class '<em>Class Interpretation</em>'. 306 * Returns a new object of class '<em>Exact Multiplicity</em>'.
361 * <!-- begin-user-doc --> 307 * <!-- begin-user-doc -->
362 * <!-- end-user-doc --> 308 * <!-- end-user-doc -->
363 * @return a new object of class '<em>Class Interpretation</em>'. 309 * @return a new object of class '<em>Exact Multiplicity</em>'.
364 * @generated 310 * @generated
365 */ 311 */
366 ClassInterpretation createClassInterpretation(); 312 ExactMultiplicity createExactMultiplicity();
367 313
368 /** 314 /**
369 * Returns a new object of class '<em>Enum Interpretation</em>'. 315 * Returns a new object of class '<em>Bounded Multiplicity</em>'.
370 * <!-- begin-user-doc --> 316 * <!-- begin-user-doc -->
371 * <!-- end-user-doc --> 317 * <!-- end-user-doc -->
372 * @return a new object of class '<em>Enum Interpretation</em>'. 318 * @return a new object of class '<em>Bounded Multiplicity</em>'.
373 * @generated 319 * @generated
374 */ 320 */
375 EnumInterpretation createEnumInterpretation(); 321 BoundedMultiplicity createBoundedMultiplicity();
376 322
377 /** 323 /**
378 * Returns a new object of class '<em>Field Relation Interpretation</em>'. 324 * Returns a new object of class '<em>Scope Definition</em>'.
379 * <!-- begin-user-doc --> 325 * <!-- begin-user-doc -->
380 * <!-- end-user-doc --> 326 * <!-- end-user-doc -->
381 * @return a new object of class '<em>Field Relation Interpretation</em>'. 327 * @return a new object of class '<em>Scope Definition</em>'.
382 * @generated 328 * @generated
383 */ 329 */
384 FieldRelationInterpretation createFieldRelationInterpretation(); 330 ScopeDefinition createScopeDefinition();
385 331
386 /** 332 /**
387 * Returns a new object of class '<em>Global Relation Interpretation</em>'. 333 * Returns a new object of class '<em>Exact Scope Definition</em>'.
388 * <!-- begin-user-doc --> 334 * <!-- begin-user-doc -->
389 * <!-- end-user-doc --> 335 * <!-- end-user-doc -->
390 * @return a new object of class '<em>Global Relation Interpretation</em>'. 336 * @return a new object of class '<em>Exact Scope Definition</em>'.
391 * @generated 337 * @generated
392 */ 338 */
393 GlobalRelationInterpretation createGlobalRelationInterpretation(); 339 ExactScopeDefinition createExactScopeDefinition();
394 340
395 /** 341 /**
396 * Returns a new object of class '<em>Multiplicity Definition</em>'. 342 * Returns a new object of class '<em>Bounded Scope Definition</em>'.
397 * <!-- begin-user-doc --> 343 * <!-- begin-user-doc -->
398 * <!-- end-user-doc --> 344 * <!-- end-user-doc -->
399 * @return a new object of class '<em>Multiplicity Definition</em>'. 345 * @return a new object of class '<em>Bounded Scope Definition</em>'.
400 * @generated 346 * @generated
401 */ 347 */
402 MultiplicityDefinition createMultiplicityDefinition(); 348 BoundedScopeDefinition createBoundedScopeDefinition();
403 349
404 /** 350 /**
405 * Returns a new object of class '<em>Boolean True</em>'. 351 * Returns a new object of class '<em>Lower Bounded Scope Definition</em>'.
406 * <!-- begin-user-doc --> 352 * <!-- begin-user-doc -->
407 * <!-- end-user-doc --> 353 * <!-- end-user-doc -->
408 * @return a new object of class '<em>Boolean True</em>'. 354 * @return a new object of class '<em>Lower Bounded Scope Definition</em>'.
409 * @generated 355 * @generated
410 */ 356 */
411 BooleanTrue createBooleanTrue(); 357 LowerBoundedScopeDefinition createLowerBoundedScopeDefinition();
412 358
413 /** 359 /**
414 * Returns a new object of class '<em>Boolean False</em>'. 360 * Returns a new object of class '<em>Objective Definition</em>'.
415 * <!-- begin-user-doc --> 361 * <!-- begin-user-doc -->
416 * <!-- end-user-doc --> 362 * <!-- end-user-doc -->
417 * @return a new object of class '<em>Boolean False</em>'. 363 * @return a new object of class '<em>Objective Definition</em>'.
418 * @generated 364 * @generated
419 */ 365 */
420 BooleanFalse createBooleanFalse(); 366 ObjectiveDefinition createObjectiveDefinition();
421 367
422 /** 368 /**
423 * Returns a new object of class '<em>True</em>'. 369 * Returns a new object of class '<em>Named Element</em>'.
424 * <!-- begin-user-doc --> 370 * <!-- begin-user-doc -->
425 * <!-- end-user-doc --> 371 * <!-- end-user-doc -->
426 * @return a new object of class '<em>True</em>'. 372 * @return a new object of class '<em>Named Element</em>'.
427 * @generated 373 * @generated
428 */ 374 */
429 True createTrue(); 375 NamedElement createNamedElement();
430 376
431 /** 377 /**
432 * Returns a new object of class '<em>False</em>'. 378 * Returns a new object of class '<em>Assertion</em>'.
433 * <!-- begin-user-doc --> 379 * <!-- begin-user-doc -->
434 * <!-- end-user-doc --> 380 * <!-- end-user-doc -->
435 * @return a new object of class '<em>False</em>'. 381 * @return a new object of class '<em>Assertion</em>'.
436 * @generated 382 * @generated
437 */ 383 */
438 False createFalse(); 384 Assertion createAssertion();
439 385
440 /** 386 /**
441 * Returns a new object of class '<em>Unknown</em>'. 387 * Returns a new object of class '<em>Disjunction</em>'.
442 * <!-- begin-user-doc --> 388 * <!-- begin-user-doc -->
443 * <!-- end-user-doc --> 389 * <!-- end-user-doc -->
444 * @return a new object of class '<em>Unknown</em>'. 390 * @return a new object of class '<em>Disjunction</em>'.
445 * @generated 391 * @generated
446 */ 392 */
447 Unknown createUnknown(); 393 Disjunction createDisjunction();
448 394
449 /** 395 /**
450 * Returns a new object of class '<em>Error</em>'. 396 * Returns a new object of class '<em>Switch</em>'.
451 * <!-- begin-user-doc --> 397 * <!-- begin-user-doc -->
452 * <!-- end-user-doc --> 398 * <!-- end-user-doc -->
453 * @return a new object of class '<em>Error</em>'. 399 * @return a new object of class '<em>Switch</em>'.
454 * @generated 400 * @generated
455 */ 401 */
456 Error createError(); 402 Switch createSwitch();
457 403
458 /** 404 /**
459 * Returns a new object of class '<em>Positive</em>'. 405 * Returns a new object of class '<em>Conjunction</em>'.
460 * <!-- begin-user-doc --> 406 * <!-- begin-user-doc -->
461 * <!-- end-user-doc --> 407 * <!-- end-user-doc -->
462 * @return a new object of class '<em>Positive</em>'. 408 * @return a new object of class '<em>Conjunction</em>'.
463 * @generated 409 * @generated
464 */ 410 */
465 Positive createPositive(); 411 Conjunction createConjunction();
466 412
467 /** 413 /**
468 * Returns a new object of class '<em>Negative</em>'. 414 * Returns a new object of class '<em>Comparison</em>'.
469 * <!-- begin-user-doc --> 415 * <!-- begin-user-doc -->
470 * <!-- end-user-doc --> 416 * <!-- end-user-doc -->
471 * @return a new object of class '<em>Negative</em>'. 417 * @return a new object of class '<em>Comparison</em>'.
472 * @generated 418 * @generated
473 */ 419 */
474 Negative createNegative(); 420 Comparison createComparison();
475 421
476 /** 422 /**
477 * Returns a new object of class '<em>Reflexive Closure</em>'. 423 * Returns a new object of class '<em>Binary Expression</em>'.
478 * <!-- begin-user-doc --> 424 * <!-- begin-user-doc -->
479 * <!-- end-user-doc --> 425 * <!-- end-user-doc -->
480 * @return a new object of class '<em>Reflexive Closure</em>'. 426 * @return a new object of class '<em>Binary Expression</em>'.
481 * @generated 427 * @generated
482 */ 428 */
483 ReflexiveClosure createReflexiveClosure(); 429 BinaryExpression createBinaryExpression();
484 430
485 /** 431 /**
486 * Returns a new object of class '<em>Irreflexive Closure</em>'. 432 * Returns a new object of class '<em>Unary Expression</em>'.
487 * <!-- begin-user-doc --> 433 * <!-- begin-user-doc -->
488 * <!-- end-user-doc --> 434 * <!-- end-user-doc -->
489 * @return a new object of class '<em>Irreflexive Closure</em>'. 435 * @return a new object of class '<em>Unary Expression</em>'.
490 * @generated 436 * @generated
491 */ 437 */
492 IrreflexiveClosure createIrreflexiveClosure(); 438 UnaryExpression createUnaryExpression();
493 439
494 /** 440 /**
495 * Returns the package supported by this factory. 441 * Returns the package supported by this factory.
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguagePackage.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguagePackage.java
index 9767d002..d34acdb8 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguagePackage.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/SolverLanguagePackage.java
@@ -1,10 +1,11 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
6import org.eclipse.emf.ecore.EAttribute; 6import org.eclipse.emf.ecore.EAttribute;
7import org.eclipse.emf.ecore.EClass; 7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage; 9import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference; 10import org.eclipse.emf.ecore.EReference;
10 11
@@ -96,145 +97,232 @@ public interface SolverLanguagePackage extends EPackage
96 int STATEMENT = 1; 97 int STATEMENT = 1;
97 98
98 /** 99 /**
100 * The feature id for the '<em><b>Abstract</b></em>' attribute.
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 * @ordered
105 */
106 int STATEMENT__ABSTRACT = 0;
107
108 /**
109 * The feature id for the '<em><b>Name</b></em>' attribute.
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 * @ordered
114 */
115 int STATEMENT__NAME = 1;
116
117 /**
118 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 * @ordered
123 */
124 int STATEMENT__SUPERCLASSES = 2;
125
126 /**
127 * The feature id for the '<em><b>Members</b></em>' containment reference list.
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 * @ordered
132 */
133 int STATEMENT__MEMBERS = 3;
134
135 /**
99 * The number of structural features of the '<em>Statement</em>' class. 136 * The number of structural features of the '<em>Statement</em>' class.
100 * <!-- begin-user-doc --> 137 * <!-- begin-user-doc -->
101 * <!-- end-user-doc --> 138 * <!-- end-user-doc -->
102 * @generated 139 * @generated
103 * @ordered 140 * @ordered
104 */ 141 */
105 int STATEMENT_FEATURE_COUNT = 0; 142 int STATEMENT_FEATURE_COUNT = 4;
106 143
107 /** 144 /**
108 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanValueImpl <em>Boolean Value</em>}' class. 145 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl <em>Predicate Definition</em>}' class.
109 * <!-- begin-user-doc --> 146 * <!-- begin-user-doc -->
110 * <!-- end-user-doc --> 147 * <!-- end-user-doc -->
111 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanValueImpl 148 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl
112 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanValue() 149 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPredicateDefinition()
113 * @generated 150 * @generated
114 */ 151 */
115 int BOOLEAN_VALUE = 2; 152 int PREDICATE_DEFINITION = 2;
116 153
117 /** 154 /**
118 * The number of structural features of the '<em>Boolean Value</em>' class. 155 * The feature id for the '<em><b>Abstract</b></em>' attribute.
119 * <!-- begin-user-doc --> 156 * <!-- begin-user-doc -->
120 * <!-- end-user-doc --> 157 * <!-- end-user-doc -->
121 * @generated 158 * @generated
122 * @ordered 159 * @ordered
123 */ 160 */
124 int BOOLEAN_VALUE_FEATURE_COUNT = 0; 161 int PREDICATE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT;
125 162
126 /** 163 /**
127 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TruthValueImpl <em>Truth Value</em>}' class. 164 * The feature id for the '<em><b>Name</b></em>' attribute.
128 * <!-- begin-user-doc --> 165 * <!-- begin-user-doc -->
129 * <!-- end-user-doc --> 166 * <!-- end-user-doc -->
130 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TruthValueImpl
131 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTruthValue()
132 * @generated 167 * @generated
168 * @ordered
133 */ 169 */
134 int TRUTH_VALUE = 3; 170 int PREDICATE_DEFINITION__NAME = STATEMENT__NAME;
135 171
136 /** 172 /**
137 * The number of structural features of the '<em>Truth Value</em>' class. 173 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
138 * <!-- begin-user-doc --> 174 * <!-- begin-user-doc -->
139 * <!-- end-user-doc --> 175 * <!-- end-user-doc -->
140 * @generated 176 * @generated
141 * @ordered 177 * @ordered
142 */ 178 */
143 int TRUTH_VALUE_FEATURE_COUNT = 0; 179 int PREDICATE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
144 180
145 /** 181 /**
146 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.InterpretationImpl <em>Interpretation</em>}' class. 182 * The feature id for the '<em><b>Members</b></em>' containment reference list.
147 * <!-- begin-user-doc --> 183 * <!-- begin-user-doc -->
148 * <!-- end-user-doc --> 184 * <!-- end-user-doc -->
149 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.InterpretationImpl
150 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInterpretation()
151 * @generated 185 * @generated
186 * @ordered
152 */ 187 */
153 int INTERPRETATION = 4; 188 int PREDICATE_DEFINITION__MEMBERS = STATEMENT__MEMBERS;
154 189
155 /** 190 /**
156 * The number of structural features of the '<em>Interpretation</em>' class. 191 * The feature id for the '<em><b>Head</b></em>' containment reference.
157 * <!-- begin-user-doc --> 192 * <!-- begin-user-doc -->
158 * <!-- end-user-doc --> 193 * <!-- end-user-doc -->
159 * @generated 194 * @generated
160 * @ordered 195 * @ordered
161 */ 196 */
162 int INTERPRETATION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 0; 197 int PREDICATE_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 0;
163 198
164 /** 199 /**
165 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl <em>Basic Interpretation</em>}' class. 200 * The feature id for the '<em><b>Body</b></em>' containment reference.
166 * <!-- begin-user-doc --> 201 * <!-- begin-user-doc -->
167 * <!-- end-user-doc --> 202 * <!-- end-user-doc -->
168 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl
169 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBasicInterpretation()
170 * @generated 203 * @generated
204 * @ordered
171 */ 205 */
172 int BASIC_INTERPRETATION = 5; 206 int PREDICATE_DEFINITION__BODY = STATEMENT_FEATURE_COUNT + 1;
173 207
174 /** 208 /**
175 * The feature id for the '<em><b>Symbol</b></em>' containment reference. 209 * The feature id for the '<em><b>Functional</b></em>' attribute.
176 * <!-- begin-user-doc --> 210 * <!-- begin-user-doc -->
177 * <!-- end-user-doc --> 211 * <!-- end-user-doc -->
178 * @generated 212 * @generated
179 * @ordered 213 * @ordered
180 */ 214 */
181 int BASIC_INTERPRETATION__SYMBOL = INTERPRETATION_FEATURE_COUNT + 0; 215 int PREDICATE_DEFINITION__FUNCTIONAL = STATEMENT_FEATURE_COUNT + 2;
182 216
183 /** 217 /**
184 * The feature id for the '<em><b>Objects</b></em>' containment reference list. 218 * The feature id for the '<em><b>Error</b></em>' attribute.
185 * <!-- begin-user-doc --> 219 * <!-- begin-user-doc -->
186 * <!-- end-user-doc --> 220 * <!-- end-user-doc -->
187 * @generated 221 * @generated
188 * @ordered 222 * @ordered
189 */ 223 */
190 int BASIC_INTERPRETATION__OBJECTS = INTERPRETATION_FEATURE_COUNT + 1; 224 int PREDICATE_DEFINITION__ERROR = STATEMENT_FEATURE_COUNT + 3;
191 225
192 /** 226 /**
193 * The feature id for the '<em><b>Value</b></em>' containment reference. 227 * The number of structural features of the '<em>Predicate Definition</em>' class.
194 * <!-- begin-user-doc --> 228 * <!-- begin-user-doc -->
195 * <!-- end-user-doc --> 229 * <!-- end-user-doc -->
196 * @generated 230 * @generated
197 * @ordered 231 * @ordered
198 */ 232 */
199 int BASIC_INTERPRETATION__VALUE = INTERPRETATION_FEATURE_COUNT + 2; 233 int PREDICATE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 4;
234
235 /**
236 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl <em>Unnamed Error Prediate Definition</em>}' class.
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl
240 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnnamedErrorPrediateDefinition()
241 * @generated
242 */
243 int UNNAMED_ERROR_PREDIATE_DEFINITION = 3;
200 244
201 /** 245 /**
202 * The number of structural features of the '<em>Basic Interpretation</em>' class. 246 * The feature id for the '<em><b>Abstract</b></em>' attribute.
203 * <!-- begin-user-doc --> 247 * <!-- begin-user-doc -->
204 * <!-- end-user-doc --> 248 * <!-- end-user-doc -->
205 * @generated 249 * @generated
206 * @ordered 250 * @ordered
207 */ 251 */
208 int BASIC_INTERPRETATION_FEATURE_COUNT = INTERPRETATION_FEATURE_COUNT + 3; 252 int UNNAMED_ERROR_PREDIATE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT;
209 253
210 /** 254 /**
211 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.SymbolImpl <em>Symbol</em>}' class. 255 * The feature id for the '<em><b>Name</b></em>' attribute.
212 * <!-- begin-user-doc --> 256 * <!-- begin-user-doc -->
213 * <!-- end-user-doc --> 257 * <!-- end-user-doc -->
214 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SymbolImpl
215 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getSymbol()
216 * @generated 258 * @generated
259 * @ordered
217 */ 260 */
218 int SYMBOL = 6; 261 int UNNAMED_ERROR_PREDIATE_DEFINITION__NAME = STATEMENT__NAME;
219 262
220 /** 263 /**
221 * The number of structural features of the '<em>Symbol</em>' class. 264 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
222 * <!-- begin-user-doc --> 265 * <!-- begin-user-doc -->
223 * <!-- end-user-doc --> 266 * <!-- end-user-doc -->
224 * @generated 267 * @generated
225 * @ordered 268 * @ordered
226 */ 269 */
227 int SYMBOL_FEATURE_COUNT = 0; 270 int UNNAMED_ERROR_PREDIATE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
228 271
229 /** 272 /**
230 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl <em>Model Symbol</em>}' class. 273 * The feature id for the '<em><b>Members</b></em>' containment reference list.
231 * <!-- begin-user-doc --> 274 * <!-- begin-user-doc -->
232 * <!-- end-user-doc --> 275 * <!-- end-user-doc -->
233 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl
234 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getModelSymbol()
235 * @generated 276 * @generated
277 * @ordered
236 */ 278 */
237 int MODEL_SYMBOL = 7; 279 int UNNAMED_ERROR_PREDIATE_DEFINITION__MEMBERS = STATEMENT__MEMBERS;
280
281 /**
282 * The feature id for the '<em><b>Argument List</b></em>' containment reference.
283 * <!-- begin-user-doc -->
284 * <!-- end-user-doc -->
285 * @generated
286 * @ordered
287 */
288 int UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST = STATEMENT_FEATURE_COUNT + 0;
289
290 /**
291 * The feature id for the '<em><b>Body</b></em>' containment reference.
292 * <!-- begin-user-doc -->
293 * <!-- end-user-doc -->
294 * @generated
295 * @ordered
296 */
297 int UNNAMED_ERROR_PREDIATE_DEFINITION__BODY = STATEMENT_FEATURE_COUNT + 1;
298
299 /**
300 * The number of structural features of the '<em>Unnamed Error Prediate Definition</em>' class.
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 * @ordered
305 */
306 int UNNAMED_ERROR_PREDIATE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
307
308 /**
309 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl <em>Default Definition</em>}' class.
310 * <!-- begin-user-doc -->
311 * <!-- end-user-doc -->
312 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl
313 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDefaultDefinition()
314 * @generated
315 */
316 int DEFAULT_DEFINITION = 4;
317
318 /**
319 * The feature id for the '<em><b>Abstract</b></em>' attribute.
320 * <!-- begin-user-doc -->
321 * <!-- end-user-doc -->
322 * @generated
323 * @ordered
324 */
325 int DEFAULT_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT;
238 326
239 /** 327 /**
240 * The feature id for the '<em><b>Name</b></em>' attribute. 328 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -243,216 +331,290 @@ public interface SolverLanguagePackage extends EPackage
243 * @generated 331 * @generated
244 * @ordered 332 * @ordered
245 */ 333 */
246 int MODEL_SYMBOL__NAME = SYMBOL_FEATURE_COUNT + 0; 334 int DEFAULT_DEFINITION__NAME = STATEMENT__NAME;
335
336 /**
337 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
338 * <!-- begin-user-doc -->
339 * <!-- end-user-doc -->
340 * @generated
341 * @ordered
342 */
343 int DEFAULT_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
344
345 /**
346 * The feature id for the '<em><b>Members</b></em>' containment reference list.
347 * <!-- begin-user-doc -->
348 * <!-- end-user-doc -->
349 * @generated
350 * @ordered
351 */
352 int DEFAULT_DEFINITION__MEMBERS = STATEMENT__MEMBERS;
353
354 /**
355 * The feature id for the '<em><b>Head</b></em>' containment reference.
356 * <!-- begin-user-doc -->
357 * <!-- end-user-doc -->
358 * @generated
359 * @ordered
360 */
361 int DEFAULT_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 0;
362
363 /**
364 * The feature id for the '<em><b>Range</b></em>' containment reference.
365 * <!-- begin-user-doc -->
366 * <!-- end-user-doc -->
367 * @generated
368 * @ordered
369 */
370 int DEFAULT_DEFINITION__RANGE = STATEMENT_FEATURE_COUNT + 1;
247 371
248 /** 372 /**
249 * The number of structural features of the '<em>Model Symbol</em>' class. 373 * The number of structural features of the '<em>Default Definition</em>' class.
250 * <!-- begin-user-doc --> 374 * <!-- begin-user-doc -->
251 * <!-- end-user-doc --> 375 * <!-- end-user-doc -->
252 * @generated 376 * @generated
253 * @ordered 377 * @ordered
254 */ 378 */
255 int MODEL_SYMBOL_FEATURE_COUNT = SYMBOL_FEATURE_COUNT + 1; 379 int DEFAULT_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
380
381 /**
382 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl <em>Extern Predicate Definition</em>}' class.
383 * <!-- begin-user-doc -->
384 * <!-- end-user-doc -->
385 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl
386 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExternPredicateDefinition()
387 * @generated
388 */
389 int EXTERN_PREDICATE_DEFINITION = 5;
256 390
257 /** 391 /**
258 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PartialitySymbolImpl <em>Partiality Symbol</em>}' class. 392 * The feature id for the '<em><b>Abstract</b></em>' attribute.
259 * <!-- begin-user-doc --> 393 * <!-- begin-user-doc -->
260 * <!-- end-user-doc --> 394 * <!-- end-user-doc -->
261 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PartialitySymbolImpl
262 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPartialitySymbol()
263 * @generated 395 * @generated
396 * @ordered
264 */ 397 */
265 int PARTIALITY_SYMBOL = 8; 398 int EXTERN_PREDICATE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT;
266 399
267 /** 400 /**
268 * The number of structural features of the '<em>Partiality Symbol</em>' class. 401 * The feature id for the '<em><b>Name</b></em>' attribute.
269 * <!-- begin-user-doc --> 402 * <!-- begin-user-doc -->
270 * <!-- end-user-doc --> 403 * <!-- end-user-doc -->
271 * @generated 404 * @generated
272 * @ordered 405 * @ordered
273 */ 406 */
274 int PARTIALITY_SYMBOL_FEATURE_COUNT = SYMBOL_FEATURE_COUNT + 0; 407 int EXTERN_PREDICATE_DEFINITION__NAME = STATEMENT__NAME;
275 408
276 /** 409 /**
277 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExistSymbolImpl <em>Exist Symbol</em>}' class. 410 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
278 * <!-- begin-user-doc --> 411 * <!-- begin-user-doc -->
279 * <!-- end-user-doc --> 412 * <!-- end-user-doc -->
280 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExistSymbolImpl
281 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExistSymbol()
282 * @generated 413 * @generated
414 * @ordered
283 */ 415 */
284 int EXIST_SYMBOL = 9; 416 int EXTERN_PREDICATE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
285 417
286 /** 418 /**
287 * The number of structural features of the '<em>Exist Symbol</em>' class. 419 * The feature id for the '<em><b>Members</b></em>' containment reference list.
288 * <!-- begin-user-doc --> 420 * <!-- begin-user-doc -->
289 * <!-- end-user-doc --> 421 * <!-- end-user-doc -->
290 * @generated 422 * @generated
291 * @ordered 423 * @ordered
292 */ 424 */
293 int EXIST_SYMBOL_FEATURE_COUNT = PARTIALITY_SYMBOL_FEATURE_COUNT + 0; 425 int EXTERN_PREDICATE_DEFINITION__MEMBERS = STATEMENT__MEMBERS;
294 426
295 /** 427 /**
296 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EqualsSymbolImpl <em>Equals Symbol</em>}' class. 428 * The feature id for the '<em><b>Head</b></em>' containment reference.
297 * <!-- begin-user-doc --> 429 * <!-- begin-user-doc -->
298 * <!-- end-user-doc --> 430 * <!-- end-user-doc -->
299 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EqualsSymbolImpl
300 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEqualsSymbol()
301 * @generated 431 * @generated
432 * @ordered
302 */ 433 */
303 int EQUALS_SYMBOL = 10; 434 int EXTERN_PREDICATE_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 0;
304 435
305 /** 436 /**
306 * The number of structural features of the '<em>Equals Symbol</em>' class. 437 * The number of structural features of the '<em>Extern Predicate Definition</em>' class.
307 * <!-- begin-user-doc --> 438 * <!-- begin-user-doc -->
308 * <!-- end-user-doc --> 439 * <!-- end-user-doc -->
309 * @generated 440 * @generated
310 * @ordered 441 * @ordered
311 */ 442 */
312 int EQUALS_SYMBOL_FEATURE_COUNT = PARTIALITY_SYMBOL_FEATURE_COUNT + 0; 443 int EXTERN_PREDICATE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1;
313 444
314 /** 445 /**
315 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DataSymbolImpl <em>Data Symbol</em>}' class. 446 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl <em>Metric Definition</em>}' class.
316 * <!-- begin-user-doc --> 447 * <!-- begin-user-doc -->
317 * <!-- end-user-doc --> 448 * <!-- end-user-doc -->
318 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DataSymbolImpl 449 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl
319 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDataSymbol() 450 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMetricDefinition()
320 * @generated 451 * @generated
321 */ 452 */
322 int DATA_SYMBOL = 11; 453 int METRIC_DEFINITION = 6;
323 454
324 /** 455 /**
325 * The number of structural features of the '<em>Data Symbol</em>' class. 456 * The feature id for the '<em><b>Abstract</b></em>' attribute.
457 * <!-- begin-user-doc -->
458 * <!-- end-user-doc -->
459 * @generated
460 * @ordered
461 */
462 int METRIC_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT;
463
464 /**
465 * The feature id for the '<em><b>Name</b></em>' attribute.
326 * <!-- begin-user-doc --> 466 * <!-- begin-user-doc -->
327 * <!-- end-user-doc --> 467 * <!-- end-user-doc -->
328 * @generated 468 * @generated
329 * @ordered 469 * @ordered
330 */ 470 */
331 int DATA_SYMBOL_FEATURE_COUNT = SYMBOL_FEATURE_COUNT + 0; 471 int METRIC_DEFINITION__NAME = STATEMENT__NAME;
332 472
333 /** 473 /**
334 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanSymbolImpl <em>Boolean Symbol</em>}' class. 474 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
335 * <!-- begin-user-doc --> 475 * <!-- begin-user-doc -->
336 * <!-- end-user-doc --> 476 * <!-- end-user-doc -->
337 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanSymbolImpl
338 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanSymbol()
339 * @generated 477 * @generated
478 * @ordered
340 */ 479 */
341 int BOOLEAN_SYMBOL = 12; 480 int METRIC_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
342 481
343 /** 482 /**
344 * The number of structural features of the '<em>Boolean Symbol</em>' class. 483 * The feature id for the '<em><b>Members</b></em>' containment reference list.
345 * <!-- begin-user-doc --> 484 * <!-- begin-user-doc -->
346 * <!-- end-user-doc --> 485 * <!-- end-user-doc -->
347 * @generated 486 * @generated
348 * @ordered 487 * @ordered
349 */ 488 */
350 int BOOLEAN_SYMBOL_FEATURE_COUNT = DATA_SYMBOL_FEATURE_COUNT + 0; 489 int METRIC_DEFINITION__MEMBERS = STATEMENT__MEMBERS;
351 490
352 /** 491 /**
353 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntegerSymbolImpl <em>Integer Symbol</em>}' class. 492 * The feature id for the '<em><b>Head</b></em>' containment reference.
354 * <!-- begin-user-doc --> 493 * <!-- begin-user-doc -->
355 * <!-- end-user-doc --> 494 * <!-- end-user-doc -->
356 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntegerSymbolImpl
357 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIntegerSymbol()
358 * @generated 495 * @generated
496 * @ordered
359 */ 497 */
360 int INTEGER_SYMBOL = 13; 498 int METRIC_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 0;
361 499
362 /** 500 /**
363 * The number of structural features of the '<em>Integer Symbol</em>' class. 501 * The feature id for the '<em><b>Body</b></em>' containment reference.
364 * <!-- begin-user-doc --> 502 * <!-- begin-user-doc -->
365 * <!-- end-user-doc --> 503 * <!-- end-user-doc -->
366 * @generated 504 * @generated
367 * @ordered 505 * @ordered
368 */ 506 */
369 int INTEGER_SYMBOL_FEATURE_COUNT = DATA_SYMBOL_FEATURE_COUNT + 0; 507 int METRIC_DEFINITION__BODY = STATEMENT_FEATURE_COUNT + 1;
370 508
371 /** 509 /**
372 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealSymbolImpl <em>Real Symbol</em>}' class. 510 * The feature id for the '<em><b>Type</b></em>' attribute.
373 * <!-- begin-user-doc --> 511 * <!-- begin-user-doc -->
374 * <!-- end-user-doc --> 512 * <!-- end-user-doc -->
375 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.RealSymbolImpl
376 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getRealSymbol()
377 * @generated 513 * @generated
514 * @ordered
378 */ 515 */
379 int REAL_SYMBOL = 14; 516 int METRIC_DEFINITION__TYPE = STATEMENT_FEATURE_COUNT + 2;
380 517
381 /** 518 /**
382 * The number of structural features of the '<em>Real Symbol</em>' class. 519 * The number of structural features of the '<em>Metric Definition</em>' class.
383 * <!-- begin-user-doc --> 520 * <!-- begin-user-doc -->
384 * <!-- end-user-doc --> 521 * <!-- end-user-doc -->
385 * @generated 522 * @generated
386 * @ordered 523 * @ordered
387 */ 524 */
388 int REAL_SYMBOL_FEATURE_COUNT = DATA_SYMBOL_FEATURE_COUNT + 0; 525 int METRIC_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3;
389 526
390 /** 527 /**
391 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringSymbolImpl <em>String Symbol</em>}' class. 528 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl <em>Extern Metric Definition</em>}' class.
392 * <!-- begin-user-doc --> 529 * <!-- begin-user-doc -->
393 * <!-- end-user-doc --> 530 * <!-- end-user-doc -->
394 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringSymbolImpl 531 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl
395 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringSymbol() 532 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExternMetricDefinition()
396 * @generated 533 * @generated
397 */ 534 */
398 int STRING_SYMBOL = 15; 535 int EXTERN_METRIC_DEFINITION = 7;
399 536
400 /** 537 /**
401 * The number of structural features of the '<em>String Symbol</em>' class. 538 * The feature id for the '<em><b>Abstract</b></em>' attribute.
539 * <!-- begin-user-doc -->
540 * <!-- end-user-doc -->
541 * @generated
542 * @ordered
543 */
544 int EXTERN_METRIC_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT;
545
546 /**
547 * The feature id for the '<em><b>Name</b></em>' attribute.
402 * <!-- begin-user-doc --> 548 * <!-- begin-user-doc -->
403 * <!-- end-user-doc --> 549 * <!-- end-user-doc -->
404 * @generated 550 * @generated
405 * @ordered 551 * @ordered
406 */ 552 */
407 int STRING_SYMBOL_FEATURE_COUNT = DATA_SYMBOL_FEATURE_COUNT + 0; 553 int EXTERN_METRIC_DEFINITION__NAME = STATEMENT__NAME;
408 554
409 /** 555 /**
410 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComplexObjectImpl <em>Complex Object</em>}' class. 556 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
411 * <!-- begin-user-doc --> 557 * <!-- begin-user-doc -->
412 * <!-- end-user-doc --> 558 * <!-- end-user-doc -->
413 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ComplexObjectImpl
414 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getComplexObject()
415 * @generated 559 * @generated
560 * @ordered
416 */ 561 */
417 int COMPLEX_OBJECT = 16; 562 int EXTERN_METRIC_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
418 563
419 /** 564 /**
420 * The number of structural features of the '<em>Complex Object</em>' class. 565 * The feature id for the '<em><b>Members</b></em>' containment reference list.
421 * <!-- begin-user-doc --> 566 * <!-- begin-user-doc -->
422 * <!-- end-user-doc --> 567 * <!-- end-user-doc -->
423 * @generated 568 * @generated
424 * @ordered 569 * @ordered
425 */ 570 */
426 int COMPLEX_OBJECT_FEATURE_COUNT = 0; 571 int EXTERN_METRIC_DEFINITION__MEMBERS = STATEMENT__MEMBERS;
427 572
428 /** 573 /**
429 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectImpl <em>Object</em>}' class. 574 * The feature id for the '<em><b>Type</b></em>' attribute.
430 * <!-- begin-user-doc --> 575 * <!-- begin-user-doc -->
431 * <!-- end-user-doc --> 576 * <!-- end-user-doc -->
432 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectImpl
433 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObject()
434 * @generated 577 * @generated
578 * @ordered
435 */ 579 */
436 int OBJECT = 17; 580 int EXTERN_METRIC_DEFINITION__TYPE = STATEMENT_FEATURE_COUNT + 0;
437 581
438 /** 582 /**
439 * The number of structural features of the '<em>Object</em>' class. 583 * The feature id for the '<em><b>Head</b></em>' containment reference.
440 * <!-- begin-user-doc --> 584 * <!-- begin-user-doc -->
441 * <!-- end-user-doc --> 585 * <!-- end-user-doc -->
442 * @generated 586 * @generated
443 * @ordered 587 * @ordered
444 */ 588 */
445 int OBJECT_FEATURE_COUNT = COMPLEX_OBJECT_FEATURE_COUNT + 0; 589 int EXTERN_METRIC_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 1;
446 590
447 /** 591 /**
448 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl <em>Named Object</em>}' class. 592 * The number of structural features of the '<em>Extern Metric Definition</em>' class.
449 * <!-- begin-user-doc --> 593 * <!-- begin-user-doc -->
450 * <!-- end-user-doc --> 594 * <!-- end-user-doc -->
451 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl
452 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNamedObject()
453 * @generated 595 * @generated
596 * @ordered
454 */ 597 */
455 int NAMED_OBJECT = 18; 598 int EXTERN_METRIC_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
599
600 /**
601 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionImpl <em>Expression</em>}' class.
602 * <!-- begin-user-doc -->
603 * <!-- end-user-doc -->
604 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionImpl
605 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExpression()
606 * @generated
607 */
608 int EXPRESSION = 8;
609
610 /**
611 * The feature id for the '<em><b>Abstract</b></em>' attribute.
612 * <!-- begin-user-doc -->
613 * <!-- end-user-doc -->
614 * @generated
615 * @ordered
616 */
617 int EXPRESSION__ABSTRACT = STATEMENT__ABSTRACT;
456 618
457 /** 619 /**
458 * The feature id for the '<em><b>Name</b></em>' attribute. 620 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -461,26 +623,53 @@ public interface SolverLanguagePackage extends EPackage
461 * @generated 623 * @generated
462 * @ordered 624 * @ordered
463 */ 625 */
464 int NAMED_OBJECT__NAME = OBJECT_FEATURE_COUNT + 0; 626 int EXPRESSION__NAME = STATEMENT__NAME;
627
628 /**
629 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
630 * <!-- begin-user-doc -->
631 * <!-- end-user-doc -->
632 * @generated
633 * @ordered
634 */
635 int EXPRESSION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
465 636
466 /** 637 /**
467 * The number of structural features of the '<em>Named Object</em>' class. 638 * The feature id for the '<em><b>Members</b></em>' containment reference list.
468 * <!-- begin-user-doc --> 639 * <!-- begin-user-doc -->
469 * <!-- end-user-doc --> 640 * <!-- end-user-doc -->
470 * @generated 641 * @generated
471 * @ordered 642 * @ordered
472 */ 643 */
473 int NAMED_OBJECT_FEATURE_COUNT = OBJECT_FEATURE_COUNT + 1; 644 int EXPRESSION__MEMBERS = STATEMENT__MEMBERS;
474 645
475 /** 646 /**
476 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl <em>Unnamed Object</em>}' class. 647 * The number of structural features of the '<em>Expression</em>' class.
477 * <!-- begin-user-doc --> 648 * <!-- begin-user-doc -->
478 * <!-- end-user-doc --> 649 * <!-- end-user-doc -->
479 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl
480 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnnamedObject()
481 * @generated 650 * @generated
651 * @ordered
482 */ 652 */
483 int UNNAMED_OBJECT = 19; 653 int EXPRESSION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 0;
654
655 /**
656 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl <em>If Else</em>}' class.
657 * <!-- begin-user-doc -->
658 * <!-- end-user-doc -->
659 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl
660 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIfElse()
661 * @generated
662 */
663 int IF_ELSE = 9;
664
665 /**
666 * The feature id for the '<em><b>Abstract</b></em>' attribute.
667 * <!-- begin-user-doc -->
668 * <!-- end-user-doc -->
669 * @generated
670 * @ordered
671 */
672 int IF_ELSE__ABSTRACT = EXPRESSION__ABSTRACT;
484 673
485 /** 674 /**
486 * The feature id for the '<em><b>Name</b></em>' attribute. 675 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -489,360 +678,667 @@ public interface SolverLanguagePackage extends EPackage
489 * @generated 678 * @generated
490 * @ordered 679 * @ordered
491 */ 680 */
492 int UNNAMED_OBJECT__NAME = OBJECT_FEATURE_COUNT + 0; 681 int IF_ELSE__NAME = EXPRESSION__NAME;
493 682
494 /** 683 /**
495 * The number of structural features of the '<em>Unnamed Object</em>' class. 684 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
496 * <!-- begin-user-doc --> 685 * <!-- begin-user-doc -->
497 * <!-- end-user-doc --> 686 * <!-- end-user-doc -->
498 * @generated 687 * @generated
499 * @ordered 688 * @ordered
500 */ 689 */
501 int UNNAMED_OBJECT_FEATURE_COUNT = OBJECT_FEATURE_COUNT + 1; 690 int IF_ELSE__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
502 691
503 /** 692 /**
504 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DataObjectImpl <em>Data Object</em>}' class. 693 * The feature id for the '<em><b>Members</b></em>' containment reference list.
505 * <!-- begin-user-doc --> 694 * <!-- begin-user-doc -->
506 * <!-- end-user-doc --> 695 * <!-- end-user-doc -->
507 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DataObjectImpl
508 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDataObject()
509 * @generated 696 * @generated
697 * @ordered
510 */ 698 */
511 int DATA_OBJECT = 20; 699 int IF_ELSE__MEMBERS = EXPRESSION__MEMBERS;
512 700
513 /** 701 /**
514 * The number of structural features of the '<em>Data Object</em>' class. 702 * The feature id for the '<em><b>Condition</b></em>' containment reference.
515 * <!-- begin-user-doc --> 703 * <!-- begin-user-doc -->
516 * <!-- end-user-doc --> 704 * <!-- end-user-doc -->
517 * @generated 705 * @generated
518 * @ordered 706 * @ordered
519 */ 707 */
520 int DATA_OBJECT_FEATURE_COUNT = OBJECT_FEATURE_COUNT + 0; 708 int IF_ELSE__CONDITION = EXPRESSION_FEATURE_COUNT + 0;
521 709
522 /** 710 /**
523 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl <em>Boolean Object</em>}' class. 711 * The feature id for the '<em><b>Then</b></em>' containment reference.
524 * <!-- begin-user-doc --> 712 * <!-- begin-user-doc -->
525 * <!-- end-user-doc --> 713 * <!-- end-user-doc -->
526 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl
527 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanObject()
528 * @generated 714 * @generated
715 * @ordered
529 */ 716 */
530 int BOOLEAN_OBJECT = 21; 717 int IF_ELSE__THEN = EXPRESSION_FEATURE_COUNT + 1;
531 718
532 /** 719 /**
533 * The feature id for the '<em><b>Value</b></em>' containment reference. 720 * The feature id for the '<em><b>Else</b></em>' containment reference.
534 * <!-- begin-user-doc --> 721 * <!-- begin-user-doc -->
535 * <!-- end-user-doc --> 722 * <!-- end-user-doc -->
536 * @generated 723 * @generated
537 * @ordered 724 * @ordered
538 */ 725 */
539 int BOOLEAN_OBJECT__VALUE = DATA_OBJECT_FEATURE_COUNT + 0; 726 int IF_ELSE__ELSE = EXPRESSION_FEATURE_COUNT + 2;
540 727
541 /** 728 /**
542 * The number of structural features of the '<em>Boolean Object</em>' class. 729 * The number of structural features of the '<em>If Else</em>' class.
543 * <!-- begin-user-doc --> 730 * <!-- begin-user-doc -->
544 * <!-- end-user-doc --> 731 * <!-- end-user-doc -->
545 * @generated 732 * @generated
546 * @ordered 733 * @ordered
547 */ 734 */
548 int BOOLEAN_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 1; 735 int IF_ELSE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3;
549 736
550 /** 737 /**
551 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl <em>Int Object</em>}' class. 738 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl <em>Case</em>}' class.
552 * <!-- begin-user-doc --> 739 * <!-- begin-user-doc -->
553 * <!-- end-user-doc --> 740 * <!-- end-user-doc -->
554 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl 741 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl
555 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIntObject() 742 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCase()
556 * @generated 743 * @generated
557 */ 744 */
558 int INT_OBJECT = 22; 745 int CASE = 10;
559 746
560 /** 747 /**
561 * The feature id for the '<em><b>Value</b></em>' attribute. 748 * The feature id for the '<em><b>Abstract</b></em>' attribute.
562 * <!-- begin-user-doc --> 749 * <!-- begin-user-doc -->
563 * <!-- end-user-doc --> 750 * <!-- end-user-doc -->
564 * @generated 751 * @generated
565 * @ordered 752 * @ordered
566 */ 753 */
567 int INT_OBJECT__VALUE = DATA_OBJECT_FEATURE_COUNT + 0; 754 int CASE__ABSTRACT = EXPRESSION__ABSTRACT;
568 755
569 /** 756 /**
570 * The number of structural features of the '<em>Int Object</em>' class. 757 * The feature id for the '<em><b>Name</b></em>' attribute.
571 * <!-- begin-user-doc --> 758 * <!-- begin-user-doc -->
572 * <!-- end-user-doc --> 759 * <!-- end-user-doc -->
573 * @generated 760 * @generated
574 * @ordered 761 * @ordered
575 */ 762 */
576 int INT_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 1; 763 int CASE__NAME = EXPRESSION__NAME;
577 764
578 /** 765 /**
579 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl <em>Real Object</em>}' class. 766 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
580 * <!-- begin-user-doc --> 767 * <!-- begin-user-doc -->
581 * <!-- end-user-doc --> 768 * <!-- end-user-doc -->
582 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl
583 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getRealObject()
584 * @generated 769 * @generated
770 * @ordered
585 */ 771 */
586 int REAL_OBJECT = 23; 772 int CASE__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
587 773
588 /** 774 /**
589 * The feature id for the '<em><b>Value</b></em>' attribute. 775 * The feature id for the '<em><b>Members</b></em>' containment reference list.
590 * <!-- begin-user-doc --> 776 * <!-- begin-user-doc -->
591 * <!-- end-user-doc --> 777 * <!-- end-user-doc -->
592 * @generated 778 * @generated
593 * @ordered 779 * @ordered
594 */ 780 */
595 int REAL_OBJECT__VALUE = DATA_OBJECT_FEATURE_COUNT + 0; 781 int CASE__MEMBERS = EXPRESSION__MEMBERS;
596 782
597 /** 783 /**
598 * The number of structural features of the '<em>Real Object</em>' class. 784 * The feature id for the '<em><b>Condition</b></em>' containment reference.
599 * <!-- begin-user-doc --> 785 * <!-- begin-user-doc -->
600 * <!-- end-user-doc --> 786 * <!-- end-user-doc -->
601 * @generated 787 * @generated
602 * @ordered 788 * @ordered
603 */ 789 */
604 int REAL_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 1; 790 int CASE__CONDITION = EXPRESSION_FEATURE_COUNT + 0;
605 791
606 /** 792 /**
607 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl <em>String Object</em>}' class. 793 * The feature id for the '<em><b>Body</b></em>' containment reference.
608 * <!-- begin-user-doc --> 794 * <!-- begin-user-doc -->
609 * <!-- end-user-doc --> 795 * <!-- end-user-doc -->
610 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl
611 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringObject()
612 * @generated 796 * @generated
797 * @ordered
613 */ 798 */
614 int STRING_OBJECT = 24; 799 int CASE__BODY = EXPRESSION_FEATURE_COUNT + 1;
615 800
616 /** 801 /**
617 * The feature id for the '<em><b>Value</b></em>' attribute. 802 * The number of structural features of the '<em>Case</em>' class.
618 * <!-- begin-user-doc --> 803 * <!-- begin-user-doc -->
619 * <!-- end-user-doc --> 804 * <!-- end-user-doc -->
620 * @generated 805 * @generated
621 * @ordered 806 * @ordered
622 */ 807 */
623 int STRING_OBJECT__VALUE = DATA_OBJECT_FEATURE_COUNT + 0; 808 int CASE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2;
624 809
625 /** 810 /**
626 * The number of structural features of the '<em>String Object</em>' class. 811 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl <em>Count</em>}' class.
812 * <!-- begin-user-doc -->
813 * <!-- end-user-doc -->
814 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl
815 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCount()
816 * @generated
817 */
818 int COUNT = 11;
819
820 /**
821 * The feature id for the '<em><b>Abstract</b></em>' attribute.
822 * <!-- begin-user-doc -->
823 * <!-- end-user-doc -->
824 * @generated
825 * @ordered
826 */
827 int COUNT__ABSTRACT = EXPRESSION__ABSTRACT;
828
829 /**
830 * The feature id for the '<em><b>Name</b></em>' attribute.
627 * <!-- begin-user-doc --> 831 * <!-- begin-user-doc -->
628 * <!-- end-user-doc --> 832 * <!-- end-user-doc -->
629 * @generated 833 * @generated
630 * @ordered 834 * @ordered
631 */ 835 */
632 int STRING_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 1; 836 int COUNT__NAME = EXPRESSION__NAME;
633 837
634 /** 838 /**
635 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl <em>Predicate</em>}' class. 839 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
636 * <!-- begin-user-doc --> 840 * <!-- begin-user-doc -->
637 * <!-- end-user-doc --> 841 * <!-- end-user-doc -->
638 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl
639 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPredicate()
640 * @generated 842 * @generated
843 * @ordered
641 */ 844 */
642 int PREDICATE = 25; 845 int COUNT__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
643 846
644 /** 847 /**
645 * The feature id for the '<em><b>Is Error</b></em>' attribute. 848 * The feature id for the '<em><b>Members</b></em>' containment reference list.
646 * <!-- begin-user-doc --> 849 * <!-- begin-user-doc -->
647 * <!-- end-user-doc --> 850 * <!-- end-user-doc -->
648 * @generated 851 * @generated
649 * @ordered 852 * @ordered
650 */ 853 */
651 int PREDICATE__IS_ERROR = STATEMENT_FEATURE_COUNT + 0; 854 int COUNT__MEMBERS = EXPRESSION__MEMBERS;
652 855
653 /** 856 /**
654 * The feature id for the '<em><b>Symbol</b></em>' containment reference. 857 * The feature id for the '<em><b>Body</b></em>' containment reference.
655 * <!-- begin-user-doc --> 858 * <!-- begin-user-doc -->
656 * <!-- end-user-doc --> 859 * <!-- end-user-doc -->
657 * @generated 860 * @generated
658 * @ordered 861 * @ordered
659 */ 862 */
660 int PREDICATE__SYMBOL = STATEMENT_FEATURE_COUNT + 1; 863 int COUNT__BODY = EXPRESSION_FEATURE_COUNT + 0;
661 864
662 /** 865 /**
663 * The feature id for the '<em><b>Parameters</b></em>' containment reference list. 866 * The number of structural features of the '<em>Count</em>' class.
664 * <!-- begin-user-doc --> 867 * <!-- begin-user-doc -->
665 * <!-- end-user-doc --> 868 * <!-- end-user-doc -->
666 * @generated 869 * @generated
667 * @ordered 870 * @ordered
668 */ 871 */
669 int PREDICATE__PARAMETERS = STATEMENT_FEATURE_COUNT + 2; 872 int COUNT_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
873
874 /**
875 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl <em>Aggregation</em>}' class.
876 * <!-- begin-user-doc -->
877 * <!-- end-user-doc -->
878 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl
879 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAggregation()
880 * @generated
881 */
882 int AGGREGATION = 12;
670 883
671 /** 884 /**
672 * The feature id for the '<em><b>Bodies</b></em>' containment reference list. 885 * The feature id for the '<em><b>Abstract</b></em>' attribute.
673 * <!-- begin-user-doc --> 886 * <!-- begin-user-doc -->
674 * <!-- end-user-doc --> 887 * <!-- end-user-doc -->
675 * @generated 888 * @generated
676 * @ordered 889 * @ordered
677 */ 890 */
678 int PREDICATE__BODIES = STATEMENT_FEATURE_COUNT + 3; 891 int AGGREGATION__ABSTRACT = EXPRESSION__ABSTRACT;
679 892
680 /** 893 /**
681 * The number of structural features of the '<em>Predicate</em>' class. 894 * The feature id for the '<em><b>Name</b></em>' attribute.
682 * <!-- begin-user-doc --> 895 * <!-- begin-user-doc -->
683 * <!-- end-user-doc --> 896 * <!-- end-user-doc -->
684 * @generated 897 * @generated
685 * @ordered 898 * @ordered
686 */ 899 */
687 int PREDICATE_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 4; 900 int AGGREGATION__NAME = EXPRESSION__NAME;
688 901
689 /** 902 /**
690 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl <em>Parameter</em>}' class. 903 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
691 * <!-- begin-user-doc --> 904 * <!-- begin-user-doc -->
692 * <!-- end-user-doc --> 905 * <!-- end-user-doc -->
693 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl
694 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getParameter()
695 * @generated 906 * @generated
907 * @ordered
696 */ 908 */
697 int PARAMETER = 26; 909 int AGGREGATION__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
698 910
699 /** 911 /**
700 * The feature id for the '<em><b>Variable</b></em>' containment reference. 912 * The feature id for the '<em><b>Members</b></em>' containment reference list.
701 * <!-- begin-user-doc --> 913 * <!-- begin-user-doc -->
702 * <!-- end-user-doc --> 914 * <!-- end-user-doc -->
703 * @generated 915 * @generated
704 * @ordered 916 * @ordered
705 */ 917 */
706 int PARAMETER__VARIABLE = 0; 918 int AGGREGATION__MEMBERS = EXPRESSION__MEMBERS;
707 919
708 /** 920 /**
709 * The feature id for the '<em><b>Type</b></em>' containment reference. 921 * The feature id for the '<em><b>Op</b></em>' attribute.
710 * <!-- begin-user-doc --> 922 * <!-- begin-user-doc -->
711 * <!-- end-user-doc --> 923 * <!-- end-user-doc -->
712 * @generated 924 * @generated
713 * @ordered 925 * @ordered
714 */ 926 */
715 int PARAMETER__TYPE = 1; 927 int AGGREGATION__OP = EXPRESSION_FEATURE_COUNT + 0;
716 928
717 /** 929 /**
718 * The number of structural features of the '<em>Parameter</em>' class. 930 * The feature id for the '<em><b>Body</b></em>' containment reference.
719 * <!-- begin-user-doc --> 931 * <!-- begin-user-doc -->
720 * <!-- end-user-doc --> 932 * <!-- end-user-doc -->
721 * @generated 933 * @generated
722 * @ordered 934 * @ordered
723 */ 935 */
724 int PARAMETER_FEATURE_COUNT = 2; 936 int AGGREGATION__BODY = EXPRESSION_FEATURE_COUNT + 1;
725 937
726 /** 938 /**
727 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl <em>Pattern Body</em>}' class. 939 * The feature id for the '<em><b>Condition</b></em>' containment reference.
728 * <!-- begin-user-doc --> 940 * <!-- begin-user-doc -->
729 * <!-- end-user-doc --> 941 * <!-- end-user-doc -->
730 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl
731 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPatternBody()
732 * @generated 942 * @generated
943 * @ordered
733 */ 944 */
734 int PATTERN_BODY = 27; 945 int AGGREGATION__CONDITION = EXPRESSION_FEATURE_COUNT + 2;
735 946
736 /** 947 /**
737 * The feature id for the '<em><b>Constraints</b></em>' containment reference list. 948 * The number of structural features of the '<em>Aggregation</em>' class.
738 * <!-- begin-user-doc --> 949 * <!-- begin-user-doc -->
739 * <!-- end-user-doc --> 950 * <!-- end-user-doc -->
740 * @generated 951 * @generated
741 * @ordered 952 * @ordered
742 */ 953 */
743 int PATTERN_BODY__CONSTRAINTS = 0; 954 int AGGREGATION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3;
744 955
745 /** 956 /**
746 * The number of structural features of the '<em>Pattern Body</em>' class. 957 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl <em>Call</em>}' class.
958 * <!-- begin-user-doc -->
959 * <!-- end-user-doc -->
960 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl
961 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCall()
962 * @generated
963 */
964 int CALL = 13;
965
966 /**
967 * The feature id for the '<em><b>Abstract</b></em>' attribute.
747 * <!-- begin-user-doc --> 968 * <!-- begin-user-doc -->
748 * <!-- end-user-doc --> 969 * <!-- end-user-doc -->
749 * @generated 970 * @generated
750 * @ordered 971 * @ordered
751 */ 972 */
752 int PATTERN_BODY_FEATURE_COUNT = 1; 973 int CALL__ABSTRACT = EXPRESSION__ABSTRACT;
753 974
754 /** 975 /**
755 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PolarityImpl <em>Polarity</em>}' class. 976 * The feature id for the '<em><b>Name</b></em>' attribute.
756 * <!-- begin-user-doc --> 977 * <!-- begin-user-doc -->
757 * <!-- end-user-doc --> 978 * <!-- end-user-doc -->
758 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PolarityImpl
759 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPolarity()
760 * @generated 979 * @generated
980 * @ordered
761 */ 981 */
762 int POLARITY = 28; 982 int CALL__NAME = EXPRESSION__NAME;
763 983
764 /** 984 /**
765 * The number of structural features of the '<em>Polarity</em>' class. 985 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
766 * <!-- begin-user-doc --> 986 * <!-- begin-user-doc -->
767 * <!-- end-user-doc --> 987 * <!-- end-user-doc -->
768 * @generated 988 * @generated
769 * @ordered 989 * @ordered
770 */ 990 */
771 int POLARITY_FEATURE_COUNT = 0; 991 int CALL__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
772 992
773 /** 993 /**
774 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl <em>Constraint</em>}' class. 994 * The feature id for the '<em><b>Members</b></em>' containment reference list.
775 * <!-- begin-user-doc --> 995 * <!-- begin-user-doc -->
776 * <!-- end-user-doc --> 996 * <!-- end-user-doc -->
777 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl
778 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getConstraint()
779 * @generated 997 * @generated
998 * @ordered
780 */ 999 */
781 int CONSTRAINT = 29; 1000 int CALL__MEMBERS = EXPRESSION__MEMBERS;
782 1001
783 /** 1002 /**
784 * The feature id for the '<em><b>Polarity</b></em>' containment reference. 1003 * The feature id for the '<em><b>Functor</b></em>' containment reference.
785 * <!-- begin-user-doc --> 1004 * <!-- begin-user-doc -->
786 * <!-- end-user-doc --> 1005 * <!-- end-user-doc -->
787 * @generated 1006 * @generated
788 * @ordered 1007 * @ordered
789 */ 1008 */
790 int CONSTRAINT__POLARITY = 0; 1009 int CALL__FUNCTOR = EXPRESSION_FEATURE_COUNT + 0;
791 1010
792 /** 1011 /**
793 * The feature id for the '<em><b>Symbol</b></em>' containment reference. 1012 * The feature id for the '<em><b>Argument List</b></em>' containment reference.
794 * <!-- begin-user-doc --> 1013 * <!-- begin-user-doc -->
795 * <!-- end-user-doc --> 1014 * <!-- end-user-doc -->
796 * @generated 1015 * @generated
797 * @ordered 1016 * @ordered
798 */ 1017 */
799 int CONSTRAINT__SYMBOL = 1; 1018 int CALL__ARGUMENT_LIST = EXPRESSION_FEATURE_COUNT + 1;
800 1019
801 /** 1020 /**
802 * The feature id for the '<em><b>Params</b></em>' containment reference list. 1021 * The feature id for the '<em><b>Transitive Closure</b></em>' attribute.
803 * <!-- begin-user-doc --> 1022 * <!-- begin-user-doc -->
804 * <!-- end-user-doc --> 1023 * <!-- end-user-doc -->
805 * @generated 1024 * @generated
806 * @ordered 1025 * @ordered
807 */ 1026 */
808 int CONSTRAINT__PARAMS = 2; 1027 int CALL__TRANSITIVE_CLOSURE = EXPRESSION_FEATURE_COUNT + 2;
809 1028
810 /** 1029 /**
811 * The feature id for the '<em><b>Closure Type</b></em>' containment reference. 1030 * The feature id for the '<em><b>Reflexive Transitive Closure</b></em>' attribute.
812 * <!-- begin-user-doc --> 1031 * <!-- begin-user-doc -->
813 * <!-- end-user-doc --> 1032 * <!-- end-user-doc -->
814 * @generated 1033 * @generated
815 * @ordered 1034 * @ordered
816 */ 1035 */
817 int CONSTRAINT__CLOSURE_TYPE = 3; 1036 int CALL__REFLEXIVE_TRANSITIVE_CLOSURE = EXPRESSION_FEATURE_COUNT + 3;
818 1037
819 /** 1038 /**
820 * The number of structural features of the '<em>Constraint</em>' class. 1039 * The number of structural features of the '<em>Call</em>' class.
821 * <!-- begin-user-doc --> 1040 * <!-- begin-user-doc -->
822 * <!-- end-user-doc --> 1041 * <!-- end-user-doc -->
823 * @generated 1042 * @generated
824 * @ordered 1043 * @ordered
825 */ 1044 */
826 int CONSTRAINT_FEATURE_COUNT = 4; 1045 int CALL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 4;
1046
1047 /**
1048 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl <em>Argument List</em>}' class.
1049 * <!-- begin-user-doc -->
1050 * <!-- end-user-doc -->
1051 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl
1052 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getArgumentList()
1053 * @generated
1054 */
1055 int ARGUMENT_LIST = 14;
827 1056
828 /** 1057 /**
829 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClosureTypeImpl <em>Closure Type</em>}' class. 1058 * The feature id for the '<em><b>Arguments</b></em>' containment reference list.
830 * <!-- begin-user-doc --> 1059 * <!-- begin-user-doc -->
831 * <!-- end-user-doc --> 1060 * <!-- end-user-doc -->
832 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ClosureTypeImpl
833 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getClosureType()
834 * @generated 1061 * @generated
1062 * @ordered
835 */ 1063 */
836 int CLOSURE_TYPE = 30; 1064 int ARGUMENT_LIST__ARGUMENTS = 0;
837 1065
838 /** 1066 /**
839 * The number of structural features of the '<em>Closure Type</em>' class. 1067 * The number of structural features of the '<em>Argument List</em>' class.
840 * <!-- begin-user-doc --> 1068 * <!-- begin-user-doc -->
841 * <!-- end-user-doc --> 1069 * <!-- end-user-doc -->
842 * @generated 1070 * @generated
843 * @ordered 1071 * @ordered
844 */ 1072 */
845 int CLOSURE_TYPE_FEATURE_COUNT = 0; 1073 int ARGUMENT_LIST_FEATURE_COUNT = 1;
1074
1075 /**
1076 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentImpl <em>Argument</em>}' class.
1077 * <!-- begin-user-doc -->
1078 * <!-- end-user-doc -->
1079 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentImpl
1080 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getArgument()
1081 * @generated
1082 */
1083 int ARGUMENT = 15;
1084
1085 /**
1086 * The number of structural features of the '<em>Argument</em>' class.
1087 * <!-- begin-user-doc -->
1088 * <!-- end-user-doc -->
1089 * @generated
1090 * @ordered
1091 */
1092 int ARGUMENT_FEATURE_COUNT = 0;
1093
1094 /**
1095 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl <em>Expression Argument</em>}' class.
1096 * <!-- begin-user-doc -->
1097 * <!-- end-user-doc -->
1098 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl
1099 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExpressionArgument()
1100 * @generated
1101 */
1102 int EXPRESSION_ARGUMENT = 16;
1103
1104 /**
1105 * The feature id for the '<em><b>Body</b></em>' containment reference.
1106 * <!-- begin-user-doc -->
1107 * <!-- end-user-doc -->
1108 * @generated
1109 * @ordered
1110 */
1111 int EXPRESSION_ARGUMENT__BODY = ARGUMENT_FEATURE_COUNT + 0;
1112
1113 /**
1114 * The number of structural features of the '<em>Expression Argument</em>' class.
1115 * <!-- begin-user-doc -->
1116 * <!-- end-user-doc -->
1117 * @generated
1118 * @ordered
1119 */
1120 int EXPRESSION_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 1;
1121
1122 /**
1123 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StarArgumentImpl <em>Star Argument</em>}' class.
1124 * <!-- begin-user-doc -->
1125 * <!-- end-user-doc -->
1126 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StarArgumentImpl
1127 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStarArgument()
1128 * @generated
1129 */
1130 int STAR_ARGUMENT = 17;
1131
1132 /**
1133 * The number of structural features of the '<em>Star Argument</em>' class.
1134 * <!-- begin-user-doc -->
1135 * <!-- end-user-doc -->
1136 * @generated
1137 * @ordered
1138 */
1139 int STAR_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 0;
1140
1141 /**
1142 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl <em>Typed Argument</em>}' class.
1143 * <!-- begin-user-doc -->
1144 * <!-- end-user-doc -->
1145 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl
1146 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTypedArgument()
1147 * @generated
1148 */
1149 int TYPED_ARGUMENT = 18;
1150
1151 /**
1152 * The feature id for the '<em><b>Type</b></em>' reference.
1153 * <!-- begin-user-doc -->
1154 * <!-- end-user-doc -->
1155 * @generated
1156 * @ordered
1157 */
1158 int TYPED_ARGUMENT__TYPE = ARGUMENT_FEATURE_COUNT + 0;
1159
1160 /**
1161 * The feature id for the '<em><b>Variable</b></em>' reference.
1162 * <!-- begin-user-doc -->
1163 * <!-- end-user-doc -->
1164 * @generated
1165 * @ordered
1166 */
1167 int TYPED_ARGUMENT__VARIABLE = ARGUMENT_FEATURE_COUNT + 1;
1168
1169 /**
1170 * The number of structural features of the '<em>Typed Argument</em>' class.
1171 * <!-- begin-user-doc -->
1172 * <!-- end-user-doc -->
1173 * @generated
1174 * @ordered
1175 */
1176 int TYPED_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 2;
1177
1178 /**
1179 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl <em>Typed Star Argument</em>}' class.
1180 * <!-- begin-user-doc -->
1181 * <!-- end-user-doc -->
1182 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl
1183 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTypedStarArgument()
1184 * @generated
1185 */
1186 int TYPED_STAR_ARGUMENT = 19;
1187
1188 /**
1189 * The feature id for the '<em><b>Type</b></em>' reference.
1190 * <!-- begin-user-doc -->
1191 * <!-- end-user-doc -->
1192 * @generated
1193 * @ordered
1194 */
1195 int TYPED_STAR_ARGUMENT__TYPE = ARGUMENT_FEATURE_COUNT + 0;
1196
1197 /**
1198 * The number of structural features of the '<em>Typed Star Argument</em>' class.
1199 * <!-- begin-user-doc -->
1200 * <!-- end-user-doc -->
1201 * @generated
1202 * @ordered
1203 */
1204 int TYPED_STAR_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 1;
1205
1206 /**
1207 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl <em>Reference</em>}' class.
1208 * <!-- begin-user-doc -->
1209 * <!-- end-user-doc -->
1210 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl
1211 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getReference()
1212 * @generated
1213 */
1214 int REFERENCE = 20;
1215
1216 /**
1217 * The feature id for the '<em><b>Abstract</b></em>' attribute.
1218 * <!-- begin-user-doc -->
1219 * <!-- end-user-doc -->
1220 * @generated
1221 * @ordered
1222 */
1223 int REFERENCE__ABSTRACT = EXPRESSION__ABSTRACT;
1224
1225 /**
1226 * The feature id for the '<em><b>Name</b></em>' attribute.
1227 * <!-- begin-user-doc -->
1228 * <!-- end-user-doc -->
1229 * @generated
1230 * @ordered
1231 */
1232 int REFERENCE__NAME = EXPRESSION__NAME;
1233
1234 /**
1235 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1236 * <!-- begin-user-doc -->
1237 * <!-- end-user-doc -->
1238 * @generated
1239 * @ordered
1240 */
1241 int REFERENCE__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
1242
1243 /**
1244 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1245 * <!-- begin-user-doc -->
1246 * <!-- end-user-doc -->
1247 * @generated
1248 * @ordered
1249 */
1250 int REFERENCE__MEMBERS = EXPRESSION__MEMBERS;
1251
1252 /**
1253 * The feature id for the '<em><b>Referred</b></em>' reference.
1254 * <!-- begin-user-doc -->
1255 * <!-- end-user-doc -->
1256 * @generated
1257 * @ordered
1258 */
1259 int REFERENCE__REFERRED = EXPRESSION_FEATURE_COUNT + 0;
1260
1261 /**
1262 * The number of structural features of the '<em>Reference</em>' class.
1263 * <!-- begin-user-doc -->
1264 * <!-- end-user-doc -->
1265 * @generated
1266 * @ordered
1267 */
1268 int REFERENCE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
1269
1270 /**
1271 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl <em>Interval</em>}' class.
1272 * <!-- begin-user-doc -->
1273 * <!-- end-user-doc -->
1274 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl
1275 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInterval()
1276 * @generated
1277 */
1278 int INTERVAL = 21;
1279
1280 /**
1281 * The feature id for the '<em><b>Abstract</b></em>' attribute.
1282 * <!-- begin-user-doc -->
1283 * <!-- end-user-doc -->
1284 * @generated
1285 * @ordered
1286 */
1287 int INTERVAL__ABSTRACT = EXPRESSION__ABSTRACT;
1288
1289 /**
1290 * The feature id for the '<em><b>Name</b></em>' attribute.
1291 * <!-- begin-user-doc -->
1292 * <!-- end-user-doc -->
1293 * @generated
1294 * @ordered
1295 */
1296 int INTERVAL__NAME = EXPRESSION__NAME;
1297
1298 /**
1299 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1300 * <!-- begin-user-doc -->
1301 * <!-- end-user-doc -->
1302 * @generated
1303 * @ordered
1304 */
1305 int INTERVAL__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
1306
1307 /**
1308 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1309 * <!-- begin-user-doc -->
1310 * <!-- end-user-doc -->
1311 * @generated
1312 * @ordered
1313 */
1314 int INTERVAL__MEMBERS = EXPRESSION__MEMBERS;
1315
1316 /**
1317 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
1318 * <!-- begin-user-doc -->
1319 * <!-- end-user-doc -->
1320 * @generated
1321 * @ordered
1322 */
1323 int INTERVAL__LOWER_BOUND = EXPRESSION_FEATURE_COUNT + 0;
1324
1325 /**
1326 * The feature id for the '<em><b>Upper Bound</b></em>' containment reference.
1327 * <!-- begin-user-doc -->
1328 * <!-- end-user-doc -->
1329 * @generated
1330 * @ordered
1331 */
1332 int INTERVAL__UPPER_BOUND = EXPRESSION_FEATURE_COUNT + 1;
1333
1334 /**
1335 * The number of structural features of the '<em>Interval</em>' class.
1336 * <!-- begin-user-doc -->
1337 * <!-- end-user-doc -->
1338 * @generated
1339 * @ordered
1340 */
1341 int INTERVAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2;
846 1342
847 /** 1343 /**
848 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LiteralImpl <em>Literal</em>}' class. 1344 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LiteralImpl <em>Literal</em>}' class.
@@ -852,7 +1348,43 @@ public interface SolverLanguagePackage extends EPackage
852 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLiteral() 1348 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLiteral()
853 * @generated 1349 * @generated
854 */ 1350 */
855 int LITERAL = 31; 1351 int LITERAL = 22;
1352
1353 /**
1354 * The feature id for the '<em><b>Abstract</b></em>' attribute.
1355 * <!-- begin-user-doc -->
1356 * <!-- end-user-doc -->
1357 * @generated
1358 * @ordered
1359 */
1360 int LITERAL__ABSTRACT = EXPRESSION__ABSTRACT;
1361
1362 /**
1363 * The feature id for the '<em><b>Name</b></em>' attribute.
1364 * <!-- begin-user-doc -->
1365 * <!-- end-user-doc -->
1366 * @generated
1367 * @ordered
1368 */
1369 int LITERAL__NAME = EXPRESSION__NAME;
1370
1371 /**
1372 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1373 * <!-- begin-user-doc -->
1374 * <!-- end-user-doc -->
1375 * @generated
1376 * @ordered
1377 */
1378 int LITERAL__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
1379
1380 /**
1381 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1382 * <!-- begin-user-doc -->
1383 * <!-- end-user-doc -->
1384 * @generated
1385 * @ordered
1386 */
1387 int LITERAL__MEMBERS = EXPRESSION__MEMBERS;
856 1388
857 /** 1389 /**
858 * The number of structural features of the '<em>Literal</em>' class. 1390 * The number of structural features of the '<em>Literal</em>' class.
@@ -861,17 +1393,26 @@ public interface SolverLanguagePackage extends EPackage
861 * @generated 1393 * @generated
862 * @ordered 1394 * @ordered
863 */ 1395 */
864 int LITERAL_FEATURE_COUNT = 0; 1396 int LITERAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0;
865 1397
866 /** 1398 /**
867 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl <em>Variable</em>}' class. 1399 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl <em>Logic Literal</em>}' class.
868 * <!-- begin-user-doc --> 1400 * <!-- begin-user-doc -->
869 * <!-- end-user-doc --> 1401 * <!-- end-user-doc -->
870 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl 1402 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl
871 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getVariable() 1403 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLogicLiteral()
872 * @generated 1404 * @generated
873 */ 1405 */
874 int VARIABLE = 32; 1406 int LOGIC_LITERAL = 23;
1407
1408 /**
1409 * The feature id for the '<em><b>Abstract</b></em>' attribute.
1410 * <!-- begin-user-doc -->
1411 * <!-- end-user-doc -->
1412 * @generated
1413 * @ordered
1414 */
1415 int LOGIC_LITERAL__ABSTRACT = LITERAL__ABSTRACT;
875 1416
876 /** 1417 /**
877 * The feature id for the '<em><b>Name</b></em>' attribute. 1418 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -880,120 +1421,117 @@ public interface SolverLanguagePackage extends EPackage
880 * @generated 1421 * @generated
881 * @ordered 1422 * @ordered
882 */ 1423 */
883 int VARIABLE__NAME = LITERAL_FEATURE_COUNT + 0; 1424 int LOGIC_LITERAL__NAME = LITERAL__NAME;
884 1425
885 /** 1426 /**
886 * The number of structural features of the '<em>Variable</em>' class. 1427 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
887 * <!-- begin-user-doc --> 1428 * <!-- begin-user-doc -->
888 * <!-- end-user-doc --> 1429 * <!-- end-user-doc -->
889 * @generated 1430 * @generated
890 * @ordered 1431 * @ordered
891 */ 1432 */
892 int VARIABLE_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1; 1433 int LOGIC_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES;
893 1434
894 /** 1435 /**
895 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl <em>All Instances</em>}' class. 1436 * The feature id for the '<em><b>Members</b></em>' containment reference list.
896 * <!-- begin-user-doc --> 1437 * <!-- begin-user-doc -->
897 * <!-- end-user-doc --> 1438 * <!-- end-user-doc -->
898 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl
899 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAllInstances()
900 * @generated 1439 * @generated
1440 * @ordered
901 */ 1441 */
902 int ALL_INSTANCES = 33; 1442 int LOGIC_LITERAL__MEMBERS = LITERAL__MEMBERS;
903 1443
904 /** 1444 /**
905 * The feature id for the '<em><b>Symbol</b></em>' containment reference. 1445 * The feature id for the '<em><b>Value</b></em>' attribute.
906 * <!-- begin-user-doc --> 1446 * <!-- begin-user-doc -->
907 * <!-- end-user-doc --> 1447 * <!-- end-user-doc -->
908 * @generated 1448 * @generated
909 * @ordered 1449 * @ordered
910 */ 1450 */
911 int ALL_INSTANCES__SYMBOL = COMPLEX_OBJECT_FEATURE_COUNT + 0; 1451 int LOGIC_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
912 1452
913 /** 1453 /**
914 * The number of structural features of the '<em>All Instances</em>' class. 1454 * The number of structural features of the '<em>Logic Literal</em>' class.
915 * <!-- begin-user-doc --> 1455 * <!-- begin-user-doc -->
916 * <!-- end-user-doc --> 1456 * <!-- end-user-doc -->
917 * @generated 1457 * @generated
918 * @ordered 1458 * @ordered
919 */ 1459 */
920 int ALL_INSTANCES_FEATURE_COUNT = COMPLEX_OBJECT_FEATURE_COUNT + 1; 1460 int LOGIC_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
921 1461
922 /** 1462 /**
923 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllObjectsImpl <em>All Objects</em>}' class. 1463 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl <em>Numeric Literal</em>}' class.
924 * <!-- begin-user-doc --> 1464 * <!-- begin-user-doc -->
925 * <!-- end-user-doc --> 1465 * <!-- end-user-doc -->
926 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AllObjectsImpl 1466 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl
927 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAllObjects() 1467 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNumericLiteral()
928 * @generated 1468 * @generated
929 */ 1469 */
930 int ALL_OBJECTS = 34; 1470 int NUMERIC_LITERAL = 24;
931 1471
932 /** 1472 /**
933 * The number of structural features of the '<em>All Objects</em>' class. 1473 * The feature id for the '<em><b>Abstract</b></em>' attribute.
934 * <!-- begin-user-doc --> 1474 * <!-- begin-user-doc -->
935 * <!-- end-user-doc --> 1475 * <!-- end-user-doc -->
936 * @generated 1476 * @generated
937 * @ordered 1477 * @ordered
938 */ 1478 */
939 int ALL_OBJECTS_FEATURE_COUNT = COMPLEX_OBJECT_FEATURE_COUNT + 0; 1479 int NUMERIC_LITERAL__ABSTRACT = LITERAL__ABSTRACT;
940 1480
941 /** 1481 /**
942 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl <em>Default Interpretation</em>}' class. 1482 * The feature id for the '<em><b>Name</b></em>' attribute.
943 * <!-- begin-user-doc --> 1483 * <!-- begin-user-doc -->
944 * <!-- end-user-doc --> 1484 * <!-- end-user-doc -->
945 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl
946 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDefaultInterpretation()
947 * @generated 1485 * @generated
1486 * @ordered
948 */ 1487 */
949 int DEFAULT_INTERPRETATION = 35; 1488 int NUMERIC_LITERAL__NAME = LITERAL__NAME;
950 1489
951 /** 1490 /**
952 * The feature id for the '<em><b>Interpretation</b></em>' containment reference. 1491 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
953 * <!-- begin-user-doc --> 1492 * <!-- begin-user-doc -->
954 * <!-- end-user-doc --> 1493 * <!-- end-user-doc -->
955 * @generated 1494 * @generated
956 * @ordered 1495 * @ordered
957 */ 1496 */
958 int DEFAULT_INTERPRETATION__INTERPRETATION = INTERPRETATION_FEATURE_COUNT + 0; 1497 int NUMERIC_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES;
959 1498
960 /** 1499 /**
961 * The number of structural features of the '<em>Default Interpretation</em>' class. 1500 * The feature id for the '<em><b>Members</b></em>' containment reference list.
962 * <!-- begin-user-doc --> 1501 * <!-- begin-user-doc -->
963 * <!-- end-user-doc --> 1502 * <!-- end-user-doc -->
964 * @generated 1503 * @generated
965 * @ordered 1504 * @ordered
966 */ 1505 */
967 int DEFAULT_INTERPRETATION_FEATURE_COUNT = INTERPRETATION_FEATURE_COUNT + 1; 1506 int NUMERIC_LITERAL__MEMBERS = LITERAL__MEMBERS;
968 1507
969 /** 1508 /**
970 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CDInterpretationImpl <em>CD Interpretation</em>}' class. 1509 * The feature id for the '<em><b>Value</b></em>' attribute.
971 * <!-- begin-user-doc --> 1510 * <!-- begin-user-doc -->
972 * <!-- end-user-doc --> 1511 * <!-- end-user-doc -->
973 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CDInterpretationImpl
974 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCDInterpretation()
975 * @generated 1512 * @generated
1513 * @ordered
976 */ 1514 */
977 int CD_INTERPRETATION = 36; 1515 int NUMERIC_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
978 1516
979 /** 1517 /**
980 * The number of structural features of the '<em>CD Interpretation</em>' class. 1518 * The number of structural features of the '<em>Numeric Literal</em>' class.
981 * <!-- begin-user-doc --> 1519 * <!-- begin-user-doc -->
982 * <!-- end-user-doc --> 1520 * <!-- end-user-doc -->
983 * @generated 1521 * @generated
984 * @ordered 1522 * @ordered
985 */ 1523 */
986 int CD_INTERPRETATION_FEATURE_COUNT = INTERPRETATION_FEATURE_COUNT + 0; 1524 int NUMERIC_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
987 1525
988 /** 1526 /**
989 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl <em>Class Interpretation</em>}' class. 1527 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.InfinityLiteralImpl <em>Infinity Literal</em>}' class.
990 * <!-- begin-user-doc --> 1528 * <!-- begin-user-doc -->
991 * <!-- end-user-doc --> 1529 * <!-- end-user-doc -->
992 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl 1530 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.InfinityLiteralImpl
993 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getClassInterpretation() 1531 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInfinityLiteral()
994 * @generated 1532 * @generated
995 */ 1533 */
996 int CLASS_INTERPRETATION = 37; 1534 int INFINITY_LITERAL = 25;
997 1535
998 /** 1536 /**
999 * The feature id for the '<em><b>Abstract</b></em>' attribute. 1537 * The feature id for the '<em><b>Abstract</b></em>' attribute.
@@ -1002,90 +1540,172 @@ public interface SolverLanguagePackage extends EPackage
1002 * @generated 1540 * @generated
1003 * @ordered 1541 * @ordered
1004 */ 1542 */
1005 int CLASS_INTERPRETATION__ABSTRACT = CD_INTERPRETATION_FEATURE_COUNT + 0; 1543 int INFINITY_LITERAL__ABSTRACT = LITERAL__ABSTRACT;
1544
1545 /**
1546 * The feature id for the '<em><b>Name</b></em>' attribute.
1547 * <!-- begin-user-doc -->
1548 * <!-- end-user-doc -->
1549 * @generated
1550 * @ordered
1551 */
1552 int INFINITY_LITERAL__NAME = LITERAL__NAME;
1553
1554 /**
1555 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1556 * <!-- begin-user-doc -->
1557 * <!-- end-user-doc -->
1558 * @generated
1559 * @ordered
1560 */
1561 int INFINITY_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES;
1562
1563 /**
1564 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1565 * <!-- begin-user-doc -->
1566 * <!-- end-user-doc -->
1567 * @generated
1568 * @ordered
1569 */
1570 int INFINITY_LITERAL__MEMBERS = LITERAL__MEMBERS;
1571
1572 /**
1573 * The number of structural features of the '<em>Infinity Literal</em>' class.
1574 * <!-- begin-user-doc -->
1575 * <!-- end-user-doc -->
1576 * @generated
1577 * @ordered
1578 */
1579 int INFINITY_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 0;
1580
1581 /**
1582 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EmptyIntervalLiteralImpl <em>Empty Interval Literal</em>}' class.
1583 * <!-- begin-user-doc -->
1584 * <!-- end-user-doc -->
1585 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EmptyIntervalLiteralImpl
1586 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEmptyIntervalLiteral()
1587 * @generated
1588 */
1589 int EMPTY_INTERVAL_LITERAL = 26;
1590
1591 /**
1592 * The feature id for the '<em><b>Abstract</b></em>' attribute.
1593 * <!-- begin-user-doc -->
1594 * <!-- end-user-doc -->
1595 * @generated
1596 * @ordered
1597 */
1598 int EMPTY_INTERVAL_LITERAL__ABSTRACT = LITERAL__ABSTRACT;
1599
1600 /**
1601 * The feature id for the '<em><b>Name</b></em>' attribute.
1602 * <!-- begin-user-doc -->
1603 * <!-- end-user-doc -->
1604 * @generated
1605 * @ordered
1606 */
1607 int EMPTY_INTERVAL_LITERAL__NAME = LITERAL__NAME;
1608
1609 /**
1610 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1611 * <!-- begin-user-doc -->
1612 * <!-- end-user-doc -->
1613 * @generated
1614 * @ordered
1615 */
1616 int EMPTY_INTERVAL_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES;
1006 1617
1007 /** 1618 /**
1008 * The feature id for the '<em><b>Symbol</b></em>' containment reference. 1619 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1009 * <!-- begin-user-doc --> 1620 * <!-- begin-user-doc -->
1010 * <!-- end-user-doc --> 1621 * <!-- end-user-doc -->
1011 * @generated 1622 * @generated
1012 * @ordered 1623 * @ordered
1013 */ 1624 */
1014 int CLASS_INTERPRETATION__SYMBOL = CD_INTERPRETATION_FEATURE_COUNT + 1; 1625 int EMPTY_INTERVAL_LITERAL__MEMBERS = LITERAL__MEMBERS;
1015 1626
1016 /** 1627 /**
1017 * The feature id for the '<em><b>Supertypes</b></em>' containment reference list. 1628 * The number of structural features of the '<em>Empty Interval Literal</em>' class.
1018 * <!-- begin-user-doc --> 1629 * <!-- begin-user-doc -->
1019 * <!-- end-user-doc --> 1630 * <!-- end-user-doc -->
1020 * @generated 1631 * @generated
1021 * @ordered 1632 * @ordered
1022 */ 1633 */
1023 int CLASS_INTERPRETATION__SUPERTYPES = CD_INTERPRETATION_FEATURE_COUNT + 2; 1634 int EMPTY_INTERVAL_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 0;
1635
1636 /**
1637 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl <em>String Literal</em>}' class.
1638 * <!-- begin-user-doc -->
1639 * <!-- end-user-doc -->
1640 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl
1641 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringLiteral()
1642 * @generated
1643 */
1644 int STRING_LITERAL = 27;
1024 1645
1025 /** 1646 /**
1026 * The feature id for the '<em><b>Fielt</b></em>' containment reference list. 1647 * The feature id for the '<em><b>Abstract</b></em>' attribute.
1027 * <!-- begin-user-doc --> 1648 * <!-- begin-user-doc -->
1028 * <!-- end-user-doc --> 1649 * <!-- end-user-doc -->
1029 * @generated 1650 * @generated
1030 * @ordered 1651 * @ordered
1031 */ 1652 */
1032 int CLASS_INTERPRETATION__FIELT = CD_INTERPRETATION_FEATURE_COUNT + 3; 1653 int STRING_LITERAL__ABSTRACT = LITERAL__ABSTRACT;
1033 1654
1034 /** 1655 /**
1035 * The number of structural features of the '<em>Class Interpretation</em>' class. 1656 * The feature id for the '<em><b>Name</b></em>' attribute.
1036 * <!-- begin-user-doc --> 1657 * <!-- begin-user-doc -->
1037 * <!-- end-user-doc --> 1658 * <!-- end-user-doc -->
1038 * @generated 1659 * @generated
1039 * @ordered 1660 * @ordered
1040 */ 1661 */
1041 int CLASS_INTERPRETATION_FEATURE_COUNT = CD_INTERPRETATION_FEATURE_COUNT + 4; 1662 int STRING_LITERAL__NAME = LITERAL__NAME;
1042 1663
1043 /** 1664 /**
1044 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl <em>Enum Interpretation</em>}' class. 1665 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1045 * <!-- begin-user-doc --> 1666 * <!-- begin-user-doc -->
1046 * <!-- end-user-doc --> 1667 * <!-- end-user-doc -->
1047 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl
1048 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEnumInterpretation()
1049 * @generated 1668 * @generated
1669 * @ordered
1050 */ 1670 */
1051 int ENUM_INTERPRETATION = 38; 1671 int STRING_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES;
1052 1672
1053 /** 1673 /**
1054 * The feature id for the '<em><b>Symbol</b></em>' containment reference. 1674 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1055 * <!-- begin-user-doc --> 1675 * <!-- begin-user-doc -->
1056 * <!-- end-user-doc --> 1676 * <!-- end-user-doc -->
1057 * @generated 1677 * @generated
1058 * @ordered 1678 * @ordered
1059 */ 1679 */
1060 int ENUM_INTERPRETATION__SYMBOL = CD_INTERPRETATION_FEATURE_COUNT + 0; 1680 int STRING_LITERAL__MEMBERS = LITERAL__MEMBERS;
1061 1681
1062 /** 1682 /**
1063 * The feature id for the '<em><b>Objects</b></em>' containment reference list. 1683 * The feature id for the '<em><b>Value</b></em>' attribute.
1064 * <!-- begin-user-doc --> 1684 * <!-- begin-user-doc -->
1065 * <!-- end-user-doc --> 1685 * <!-- end-user-doc -->
1066 * @generated 1686 * @generated
1067 * @ordered 1687 * @ordered
1068 */ 1688 */
1069 int ENUM_INTERPRETATION__OBJECTS = CD_INTERPRETATION_FEATURE_COUNT + 1; 1689 int STRING_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
1070 1690
1071 /** 1691 /**
1072 * The number of structural features of the '<em>Enum Interpretation</em>' class. 1692 * The number of structural features of the '<em>String Literal</em>' class.
1073 * <!-- begin-user-doc --> 1693 * <!-- begin-user-doc -->
1074 * <!-- end-user-doc --> 1694 * <!-- end-user-doc -->
1075 * @generated 1695 * @generated
1076 * @ordered 1696 * @ordered
1077 */ 1697 */
1078 int ENUM_INTERPRETATION_FEATURE_COUNT = CD_INTERPRETATION_FEATURE_COUNT + 2; 1698 int STRING_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
1079 1699
1080 /** 1700 /**
1081 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl <em>Field Relation Interpretation</em>}' class. 1701 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl <em>Member Definition</em>}' class.
1082 * <!-- begin-user-doc --> 1702 * <!-- begin-user-doc -->
1083 * <!-- end-user-doc --> 1703 * <!-- end-user-doc -->
1084 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl 1704 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl
1085 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getFieldRelationInterpretation() 1705 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMemberDefinition()
1086 * @generated 1706 * @generated
1087 */ 1707 */
1088 int FIELD_RELATION_INTERPRETATION = 39; 1708 int MEMBER_DEFINITION = 28;
1089 1709
1090 /** 1710 /**
1091 * The feature id for the '<em><b>Containment</b></em>' attribute. 1711 * The feature id for the '<em><b>Containment</b></em>' attribute.
@@ -1094,16 +1714,16 @@ public interface SolverLanguagePackage extends EPackage
1094 * @generated 1714 * @generated
1095 * @ordered 1715 * @ordered
1096 */ 1716 */
1097 int FIELD_RELATION_INTERPRETATION__CONTAINMENT = 0; 1717 int MEMBER_DEFINITION__CONTAINMENT = 0;
1098 1718
1099 /** 1719 /**
1100 * The feature id for the '<em><b>Symbol</b></em>' containment reference. 1720 * The feature id for the '<em><b>Type</b></em>' reference.
1101 * <!-- begin-user-doc --> 1721 * <!-- begin-user-doc -->
1102 * <!-- end-user-doc --> 1722 * <!-- end-user-doc -->
1103 * @generated 1723 * @generated
1104 * @ordered 1724 * @ordered
1105 */ 1725 */
1106 int FIELD_RELATION_INTERPRETATION__SYMBOL = 1; 1726 int MEMBER_DEFINITION__TYPE = 1;
1107 1727
1108 /** 1728 /**
1109 * The feature id for the '<em><b>Multiplicity</b></em>' containment reference. 1729 * The feature id for the '<em><b>Multiplicity</b></em>' containment reference.
@@ -1112,334 +1732,1092 @@ public interface SolverLanguagePackage extends EPackage
1112 * @generated 1732 * @generated
1113 * @ordered 1733 * @ordered
1114 */ 1734 */
1115 int FIELD_RELATION_INTERPRETATION__MULTIPLICITY = 2; 1735 int MEMBER_DEFINITION__MULTIPLICITY = 2;
1116 1736
1117 /** 1737 /**
1118 * The feature id for the '<em><b>Target</b></em>' containment reference. 1738 * The feature id for the '<em><b>Name</b></em>' attribute.
1119 * <!-- begin-user-doc --> 1739 * <!-- begin-user-doc -->
1120 * <!-- end-user-doc --> 1740 * <!-- end-user-doc -->
1121 * @generated 1741 * @generated
1122 * @ordered 1742 * @ordered
1123 */ 1743 */
1124 int FIELD_RELATION_INTERPRETATION__TARGET = 3; 1744 int MEMBER_DEFINITION__NAME = 3;
1125 1745
1126 /** 1746 /**
1127 * The number of structural features of the '<em>Field Relation Interpretation</em>' class. 1747 * The feature id for the '<em><b>Opposite</b></em>' reference.
1128 * <!-- begin-user-doc --> 1748 * <!-- begin-user-doc -->
1129 * <!-- end-user-doc --> 1749 * <!-- end-user-doc -->
1130 * @generated 1750 * @generated
1131 * @ordered 1751 * @ordered
1132 */ 1752 */
1133 int FIELD_RELATION_INTERPRETATION_FEATURE_COUNT = 4; 1753 int MEMBER_DEFINITION__OPPOSITE = 4;
1134 1754
1135 /** 1755 /**
1136 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl <em>Global Relation Interpretation</em>}' class. 1756 * The number of structural features of the '<em>Member Definition</em>' class.
1137 * <!-- begin-user-doc --> 1757 * <!-- begin-user-doc -->
1138 * <!-- end-user-doc --> 1758 * <!-- end-user-doc -->
1139 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl
1140 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getGlobalRelationInterpretation()
1141 * @generated 1759 * @generated
1760 * @ordered
1142 */ 1761 */
1143 int GLOBAL_RELATION_INTERPRETATION = 40; 1762 int MEMBER_DEFINITION_FEATURE_COUNT = 5;
1144 1763
1145 /** 1764 /**
1146 * The feature id for the '<em><b>Containment</b></em>' attribute. 1765 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityImpl <em>Multiplicity</em>}' class.
1766 * <!-- begin-user-doc -->
1767 * <!-- end-user-doc -->
1768 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityImpl
1769 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMultiplicity()
1770 * @generated
1771 */
1772 int MULTIPLICITY = 29;
1773
1774 /**
1775 * The number of structural features of the '<em>Multiplicity</em>' class.
1776 * <!-- begin-user-doc -->
1777 * <!-- end-user-doc -->
1778 * @generated
1779 * @ordered
1780 */
1781 int MULTIPLICITY_FEATURE_COUNT = 0;
1782
1783 /**
1784 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ManyMultiplicityImpl <em>Many Multiplicity</em>}' class.
1785 * <!-- begin-user-doc -->
1786 * <!-- end-user-doc -->
1787 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ManyMultiplicityImpl
1788 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getManyMultiplicity()
1789 * @generated
1790 */
1791 int MANY_MULTIPLICITY = 30;
1792
1793 /**
1794 * The number of structural features of the '<em>Many Multiplicity</em>' class.
1795 * <!-- begin-user-doc -->
1796 * <!-- end-user-doc -->
1797 * @generated
1798 * @ordered
1799 */
1800 int MANY_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 0;
1801
1802 /**
1803 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl <em>Exact Multiplicity</em>}' class.
1804 * <!-- begin-user-doc -->
1805 * <!-- end-user-doc -->
1806 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl
1807 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExactMultiplicity()
1808 * @generated
1809 */
1810 int EXACT_MULTIPLICITY = 31;
1811
1812 /**
1813 * The feature id for the '<em><b>Multiplicity</b></em>' attribute.
1147 * <!-- begin-user-doc --> 1814 * <!-- begin-user-doc -->
1148 * <!-- end-user-doc --> 1815 * <!-- end-user-doc -->
1149 * @generated 1816 * @generated
1150 * @ordered 1817 * @ordered
1151 */ 1818 */
1152 int GLOBAL_RELATION_INTERPRETATION__CONTAINMENT = CD_INTERPRETATION_FEATURE_COUNT + 0; 1819 int EXACT_MULTIPLICITY__MULTIPLICITY = MULTIPLICITY_FEATURE_COUNT + 0;
1153 1820
1154 /** 1821 /**
1155 * The feature id for the '<em><b>Symbol</b></em>' containment reference. 1822 * The number of structural features of the '<em>Exact Multiplicity</em>' class.
1156 * <!-- begin-user-doc --> 1823 * <!-- begin-user-doc -->
1157 * <!-- end-user-doc --> 1824 * <!-- end-user-doc -->
1158 * @generated 1825 * @generated
1159 * @ordered 1826 * @ordered
1160 */ 1827 */
1161 int GLOBAL_RELATION_INTERPRETATION__SYMBOL = CD_INTERPRETATION_FEATURE_COUNT + 1; 1828 int EXACT_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 1;
1829
1830 /**
1831 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl <em>Bounded Multiplicity</em>}' class.
1832 * <!-- begin-user-doc -->
1833 * <!-- end-user-doc -->
1834 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl
1835 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBoundedMultiplicity()
1836 * @generated
1837 */
1838 int BOUNDED_MULTIPLICITY = 32;
1162 1839
1163 /** 1840 /**
1164 * The feature id for the '<em><b>Source Multiplicity</b></em>' containment reference. 1841 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
1165 * <!-- begin-user-doc --> 1842 * <!-- begin-user-doc -->
1166 * <!-- end-user-doc --> 1843 * <!-- end-user-doc -->
1167 * @generated 1844 * @generated
1168 * @ordered 1845 * @ordered
1169 */ 1846 */
1170 int GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY = CD_INTERPRETATION_FEATURE_COUNT + 2; 1847 int BOUNDED_MULTIPLICITY__LOWER_BOUND = MULTIPLICITY_FEATURE_COUNT + 0;
1171 1848
1172 /** 1849 /**
1173 * The feature id for the '<em><b>Source</b></em>' containment reference. 1850 * The feature id for the '<em><b>Upper Bound</b></em>' attribute.
1174 * <!-- begin-user-doc --> 1851 * <!-- begin-user-doc -->
1175 * <!-- end-user-doc --> 1852 * <!-- end-user-doc -->
1176 * @generated 1853 * @generated
1177 * @ordered 1854 * @ordered
1178 */ 1855 */
1179 int GLOBAL_RELATION_INTERPRETATION__SOURCE = CD_INTERPRETATION_FEATURE_COUNT + 3; 1856 int BOUNDED_MULTIPLICITY__UPPER_BOUND = MULTIPLICITY_FEATURE_COUNT + 1;
1180 1857
1181 /** 1858 /**
1182 * The feature id for the '<em><b>Target Multiplicity</b></em>' containment reference. 1859 * The number of structural features of the '<em>Bounded Multiplicity</em>' class.
1183 * <!-- begin-user-doc --> 1860 * <!-- begin-user-doc -->
1184 * <!-- end-user-doc --> 1861 * <!-- end-user-doc -->
1185 * @generated 1862 * @generated
1186 * @ordered 1863 * @ordered
1187 */ 1864 */
1188 int GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY = CD_INTERPRETATION_FEATURE_COUNT + 4; 1865 int BOUNDED_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 2;
1866
1867 /**
1868 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl <em>Scope Definition</em>}' class.
1869 * <!-- begin-user-doc -->
1870 * <!-- end-user-doc -->
1871 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl
1872 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getScopeDefinition()
1873 * @generated
1874 */
1875 int SCOPE_DEFINITION = 33;
1189 1876
1190 /** 1877 /**
1191 * The feature id for the '<em><b>Target</b></em>' containment reference. 1878 * The feature id for the '<em><b>Abstract</b></em>' attribute.
1192 * <!-- begin-user-doc --> 1879 * <!-- begin-user-doc -->
1193 * <!-- end-user-doc --> 1880 * <!-- end-user-doc -->
1194 * @generated 1881 * @generated
1195 * @ordered 1882 * @ordered
1196 */ 1883 */
1197 int GLOBAL_RELATION_INTERPRETATION__TARGET = CD_INTERPRETATION_FEATURE_COUNT + 5; 1884 int SCOPE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT;
1198 1885
1199 /** 1886 /**
1200 * The number of structural features of the '<em>Global Relation Interpretation</em>' class. 1887 * The feature id for the '<em><b>Name</b></em>' attribute.
1201 * <!-- begin-user-doc --> 1888 * <!-- begin-user-doc -->
1202 * <!-- end-user-doc --> 1889 * <!-- end-user-doc -->
1203 * @generated 1890 * @generated
1204 * @ordered 1891 * @ordered
1205 */ 1892 */
1206 int GLOBAL_RELATION_INTERPRETATION_FEATURE_COUNT = CD_INTERPRETATION_FEATURE_COUNT + 6; 1893 int SCOPE_DEFINITION__NAME = STATEMENT__NAME;
1207 1894
1208 /** 1895 /**
1209 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl <em>Multiplicity Definition</em>}' class. 1896 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1210 * <!-- begin-user-doc --> 1897 * <!-- begin-user-doc -->
1211 * <!-- end-user-doc --> 1898 * <!-- end-user-doc -->
1212 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl
1213 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMultiplicityDefinition()
1214 * @generated 1899 * @generated
1900 * @ordered
1215 */ 1901 */
1216 int MULTIPLICITY_DEFINITION = 41; 1902 int SCOPE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
1217 1903
1218 /** 1904 /**
1219 * The feature id for the '<em><b>Lower</b></em>' attribute. 1905 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1220 * <!-- begin-user-doc --> 1906 * <!-- begin-user-doc -->
1221 * <!-- end-user-doc --> 1907 * <!-- end-user-doc -->
1222 * @generated 1908 * @generated
1223 * @ordered 1909 * @ordered
1224 */ 1910 */
1225 int MULTIPLICITY_DEFINITION__LOWER = 0; 1911 int SCOPE_DEFINITION__MEMBERS = STATEMENT__MEMBERS;
1226 1912
1227 /** 1913 /**
1228 * The feature id for the '<em><b>Upper</b></em>' attribute. 1914 * The feature id for the '<em><b>Type</b></em>' reference.
1229 * <!-- begin-user-doc --> 1915 * <!-- begin-user-doc -->
1230 * <!-- end-user-doc --> 1916 * <!-- end-user-doc -->
1231 * @generated 1917 * @generated
1232 * @ordered 1918 * @ordered
1233 */ 1919 */
1234 int MULTIPLICITY_DEFINITION__UPPER = 1; 1920 int SCOPE_DEFINITION__TYPE = STATEMENT_FEATURE_COUNT + 0;
1235 1921
1236 /** 1922 /**
1237 * The feature id for the '<em><b>Unlimited Upper</b></em>' attribute. 1923 * The number of structural features of the '<em>Scope Definition</em>' class.
1238 * <!-- begin-user-doc --> 1924 * <!-- begin-user-doc -->
1239 * <!-- end-user-doc --> 1925 * <!-- end-user-doc -->
1240 * @generated 1926 * @generated
1241 * @ordered 1927 * @ordered
1242 */ 1928 */
1243 int MULTIPLICITY_DEFINITION__UNLIMITED_UPPER = 2; 1929 int SCOPE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1;
1930
1931 /**
1932 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl <em>Exact Scope Definition</em>}' class.
1933 * <!-- begin-user-doc -->
1934 * <!-- end-user-doc -->
1935 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl
1936 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExactScopeDefinition()
1937 * @generated
1938 */
1939 int EXACT_SCOPE_DEFINITION = 34;
1244 1940
1245 /** 1941 /**
1246 * The number of structural features of the '<em>Multiplicity Definition</em>' class. 1942 * The feature id for the '<em><b>Abstract</b></em>' attribute.
1247 * <!-- begin-user-doc --> 1943 * <!-- begin-user-doc -->
1248 * <!-- end-user-doc --> 1944 * <!-- end-user-doc -->
1249 * @generated 1945 * @generated
1250 * @ordered 1946 * @ordered
1251 */ 1947 */
1252 int MULTIPLICITY_DEFINITION_FEATURE_COUNT = 3; 1948 int EXACT_SCOPE_DEFINITION__ABSTRACT = SCOPE_DEFINITION__ABSTRACT;
1253 1949
1254 /** 1950 /**
1255 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanTrueImpl <em>Boolean True</em>}' class. 1951 * The feature id for the '<em><b>Name</b></em>' attribute.
1256 * <!-- begin-user-doc --> 1952 * <!-- begin-user-doc -->
1257 * <!-- end-user-doc --> 1953 * <!-- end-user-doc -->
1258 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanTrueImpl
1259 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanTrue()
1260 * @generated 1954 * @generated
1955 * @ordered
1261 */ 1956 */
1262 int BOOLEAN_TRUE = 42; 1957 int EXACT_SCOPE_DEFINITION__NAME = SCOPE_DEFINITION__NAME;
1263 1958
1264 /** 1959 /**
1265 * The number of structural features of the '<em>Boolean True</em>' class. 1960 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1266 * <!-- begin-user-doc --> 1961 * <!-- begin-user-doc -->
1267 * <!-- end-user-doc --> 1962 * <!-- end-user-doc -->
1268 * @generated 1963 * @generated
1269 * @ordered 1964 * @ordered
1270 */ 1965 */
1271 int BOOLEAN_TRUE_FEATURE_COUNT = BOOLEAN_VALUE_FEATURE_COUNT + 0; 1966 int EXACT_SCOPE_DEFINITION__SUPERCLASSES = SCOPE_DEFINITION__SUPERCLASSES;
1272 1967
1273 /** 1968 /**
1274 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanFalseImpl <em>Boolean False</em>}' class. 1969 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1275 * <!-- begin-user-doc --> 1970 * <!-- begin-user-doc -->
1276 * <!-- end-user-doc --> 1971 * <!-- end-user-doc -->
1277 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanFalseImpl
1278 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanFalse()
1279 * @generated 1972 * @generated
1973 * @ordered
1280 */ 1974 */
1281 int BOOLEAN_FALSE = 43; 1975 int EXACT_SCOPE_DEFINITION__MEMBERS = SCOPE_DEFINITION__MEMBERS;
1282 1976
1283 /** 1977 /**
1284 * The number of structural features of the '<em>Boolean False</em>' class. 1978 * The feature id for the '<em><b>Type</b></em>' reference.
1285 * <!-- begin-user-doc --> 1979 * <!-- begin-user-doc -->
1286 * <!-- end-user-doc --> 1980 * <!-- end-user-doc -->
1287 * @generated 1981 * @generated
1288 * @ordered 1982 * @ordered
1289 */ 1983 */
1290 int BOOLEAN_FALSE_FEATURE_COUNT = BOOLEAN_VALUE_FEATURE_COUNT + 0; 1984 int EXACT_SCOPE_DEFINITION__TYPE = SCOPE_DEFINITION__TYPE;
1291 1985
1292 /** 1986 /**
1293 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TrueImpl <em>True</em>}' class. 1987 * The feature id for the '<em><b>Exact Scope</b></em>' attribute.
1294 * <!-- begin-user-doc --> 1988 * <!-- begin-user-doc -->
1295 * <!-- end-user-doc --> 1989 * <!-- end-user-doc -->
1296 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TrueImpl
1297 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTrue()
1298 * @generated 1990 * @generated
1991 * @ordered
1299 */ 1992 */
1300 int TRUE = 44; 1993 int EXACT_SCOPE_DEFINITION__EXACT_SCOPE = SCOPE_DEFINITION_FEATURE_COUNT + 0;
1301 1994
1302 /** 1995 /**
1303 * The number of structural features of the '<em>True</em>' class. 1996 * The number of structural features of the '<em>Exact Scope Definition</em>' class.
1304 * <!-- begin-user-doc --> 1997 * <!-- begin-user-doc -->
1305 * <!-- end-user-doc --> 1998 * <!-- end-user-doc -->
1306 * @generated 1999 * @generated
1307 * @ordered 2000 * @ordered
1308 */ 2001 */
1309 int TRUE_FEATURE_COUNT = TRUTH_VALUE_FEATURE_COUNT + 0; 2002 int EXACT_SCOPE_DEFINITION_FEATURE_COUNT = SCOPE_DEFINITION_FEATURE_COUNT + 1;
1310 2003
1311 /** 2004 /**
1312 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FalseImpl <em>False</em>}' class. 2005 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl <em>Bounded Scope Definition</em>}' class.
1313 * <!-- begin-user-doc --> 2006 * <!-- begin-user-doc -->
1314 * <!-- end-user-doc --> 2007 * <!-- end-user-doc -->
1315 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.FalseImpl 2008 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl
1316 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getFalse() 2009 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBoundedScopeDefinition()
1317 * @generated 2010 * @generated
1318 */ 2011 */
1319 int FALSE = 45; 2012 int BOUNDED_SCOPE_DEFINITION = 35;
1320 2013
1321 /** 2014 /**
1322 * The number of structural features of the '<em>False</em>' class. 2015 * The feature id for the '<em><b>Abstract</b></em>' attribute.
1323 * <!-- begin-user-doc --> 2016 * <!-- begin-user-doc -->
1324 * <!-- end-user-doc --> 2017 * <!-- end-user-doc -->
1325 * @generated 2018 * @generated
1326 * @ordered 2019 * @ordered
1327 */ 2020 */
1328 int FALSE_FEATURE_COUNT = TRUTH_VALUE_FEATURE_COUNT + 0; 2021 int BOUNDED_SCOPE_DEFINITION__ABSTRACT = SCOPE_DEFINITION__ABSTRACT;
1329 2022
1330 /** 2023 /**
1331 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnknownImpl <em>Unknown</em>}' class. 2024 * The feature id for the '<em><b>Name</b></em>' attribute.
1332 * <!-- begin-user-doc --> 2025 * <!-- begin-user-doc -->
1333 * <!-- end-user-doc --> 2026 * <!-- end-user-doc -->
1334 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnknownImpl
1335 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnknown()
1336 * @generated 2027 * @generated
2028 * @ordered
1337 */ 2029 */
1338 int UNKNOWN = 46; 2030 int BOUNDED_SCOPE_DEFINITION__NAME = SCOPE_DEFINITION__NAME;
1339 2031
1340 /** 2032 /**
1341 * The number of structural features of the '<em>Unknown</em>' class. 2033 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1342 * <!-- begin-user-doc --> 2034 * <!-- begin-user-doc -->
1343 * <!-- end-user-doc --> 2035 * <!-- end-user-doc -->
1344 * @generated 2036 * @generated
1345 * @ordered 2037 * @ordered
1346 */ 2038 */
1347 int UNKNOWN_FEATURE_COUNT = TRUTH_VALUE_FEATURE_COUNT + 0; 2039 int BOUNDED_SCOPE_DEFINITION__SUPERCLASSES = SCOPE_DEFINITION__SUPERCLASSES;
1348 2040
1349 /** 2041 /**
1350 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ErrorImpl <em>Error</em>}' class. 2042 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1351 * <!-- begin-user-doc --> 2043 * <!-- begin-user-doc -->
1352 * <!-- end-user-doc --> 2044 * <!-- end-user-doc -->
1353 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ErrorImpl
1354 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getError()
1355 * @generated 2045 * @generated
2046 * @ordered
1356 */ 2047 */
1357 int ERROR = 47; 2048 int BOUNDED_SCOPE_DEFINITION__MEMBERS = SCOPE_DEFINITION__MEMBERS;
1358 2049
1359 /** 2050 /**
1360 * The number of structural features of the '<em>Error</em>' class. 2051 * The feature id for the '<em><b>Type</b></em>' reference.
1361 * <!-- begin-user-doc --> 2052 * <!-- begin-user-doc -->
1362 * <!-- end-user-doc --> 2053 * <!-- end-user-doc -->
1363 * @generated 2054 * @generated
1364 * @ordered 2055 * @ordered
1365 */ 2056 */
1366 int ERROR_FEATURE_COUNT = TRUTH_VALUE_FEATURE_COUNT + 0; 2057 int BOUNDED_SCOPE_DEFINITION__TYPE = SCOPE_DEFINITION__TYPE;
1367 2058
1368 /** 2059 /**
1369 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PositiveImpl <em>Positive</em>}' class. 2060 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
1370 * <!-- begin-user-doc --> 2061 * <!-- begin-user-doc -->
1371 * <!-- end-user-doc --> 2062 * <!-- end-user-doc -->
1372 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PositiveImpl
1373 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPositive()
1374 * @generated 2063 * @generated
2064 * @ordered
1375 */ 2065 */
1376 int POSITIVE = 48; 2066 int BOUNDED_SCOPE_DEFINITION__LOWER_BOUND = SCOPE_DEFINITION_FEATURE_COUNT + 0;
1377 2067
1378 /** 2068 /**
1379 * The number of structural features of the '<em>Positive</em>' class. 2069 * The feature id for the '<em><b>Upper Bound</b></em>' attribute.
1380 * <!-- begin-user-doc --> 2070 * <!-- begin-user-doc -->
1381 * <!-- end-user-doc --> 2071 * <!-- end-user-doc -->
1382 * @generated 2072 * @generated
1383 * @ordered 2073 * @ordered
1384 */ 2074 */
1385 int POSITIVE_FEATURE_COUNT = POLARITY_FEATURE_COUNT + 0; 2075 int BOUNDED_SCOPE_DEFINITION__UPPER_BOUND = SCOPE_DEFINITION_FEATURE_COUNT + 1;
1386 2076
1387 /** 2077 /**
1388 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NegativeImpl <em>Negative</em>}' class. 2078 * The number of structural features of the '<em>Bounded Scope Definition</em>' class.
1389 * <!-- begin-user-doc --> 2079 * <!-- begin-user-doc -->
1390 * <!-- end-user-doc --> 2080 * <!-- end-user-doc -->
1391 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NegativeImpl
1392 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNegative()
1393 * @generated 2081 * @generated
2082 * @ordered
1394 */ 2083 */
1395 int NEGATIVE = 49; 2084 int BOUNDED_SCOPE_DEFINITION_FEATURE_COUNT = SCOPE_DEFINITION_FEATURE_COUNT + 2;
1396 2085
1397 /** 2086 /**
1398 * The number of structural features of the '<em>Negative</em>' class. 2087 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl <em>Lower Bounded Scope Definition</em>}' class.
2088 * <!-- begin-user-doc -->
2089 * <!-- end-user-doc -->
2090 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl
2091 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLowerBoundedScopeDefinition()
2092 * @generated
2093 */
2094 int LOWER_BOUNDED_SCOPE_DEFINITION = 36;
2095
2096 /**
2097 * The feature id for the '<em><b>Abstract</b></em>' attribute.
2098 * <!-- begin-user-doc -->
2099 * <!-- end-user-doc -->
2100 * @generated
2101 * @ordered
2102 */
2103 int LOWER_BOUNDED_SCOPE_DEFINITION__ABSTRACT = SCOPE_DEFINITION__ABSTRACT;
2104
2105 /**
2106 * The feature id for the '<em><b>Name</b></em>' attribute.
2107 * <!-- begin-user-doc -->
2108 * <!-- end-user-doc -->
2109 * @generated
2110 * @ordered
2111 */
2112 int LOWER_BOUNDED_SCOPE_DEFINITION__NAME = SCOPE_DEFINITION__NAME;
2113
2114 /**
2115 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
1399 * <!-- begin-user-doc --> 2116 * <!-- begin-user-doc -->
1400 * <!-- end-user-doc --> 2117 * <!-- end-user-doc -->
1401 * @generated 2118 * @generated
1402 * @ordered 2119 * @ordered
1403 */ 2120 */
1404 int NEGATIVE_FEATURE_COUNT = POLARITY_FEATURE_COUNT + 0; 2121 int LOWER_BOUNDED_SCOPE_DEFINITION__SUPERCLASSES = SCOPE_DEFINITION__SUPERCLASSES;
1405 2122
1406 /** 2123 /**
1407 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReflexiveClosureImpl <em>Reflexive Closure</em>}' class. 2124 * The feature id for the '<em><b>Members</b></em>' containment reference list.
1408 * <!-- begin-user-doc --> 2125 * <!-- begin-user-doc -->
1409 * <!-- end-user-doc --> 2126 * <!-- end-user-doc -->
1410 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ReflexiveClosureImpl
1411 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getReflexiveClosure()
1412 * @generated 2127 * @generated
2128 * @ordered
1413 */ 2129 */
1414 int REFLEXIVE_CLOSURE = 50; 2130 int LOWER_BOUNDED_SCOPE_DEFINITION__MEMBERS = SCOPE_DEFINITION__MEMBERS;
1415 2131
1416 /** 2132 /**
1417 * The number of structural features of the '<em>Reflexive Closure</em>' class. 2133 * The feature id for the '<em><b>Type</b></em>' reference.
1418 * <!-- begin-user-doc --> 2134 * <!-- begin-user-doc -->
1419 * <!-- end-user-doc --> 2135 * <!-- end-user-doc -->
1420 * @generated 2136 * @generated
1421 * @ordered 2137 * @ordered
1422 */ 2138 */
1423 int REFLEXIVE_CLOSURE_FEATURE_COUNT = CLOSURE_TYPE_FEATURE_COUNT + 0; 2139 int LOWER_BOUNDED_SCOPE_DEFINITION__TYPE = SCOPE_DEFINITION__TYPE;
1424 2140
1425 /** 2141 /**
1426 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IrreflexiveClosureImpl <em>Irreflexive Closure</em>}' class. 2142 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
1427 * <!-- begin-user-doc --> 2143 * <!-- begin-user-doc -->
1428 * <!-- end-user-doc --> 2144 * <!-- end-user-doc -->
1429 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IrreflexiveClosureImpl
1430 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIrreflexiveClosure()
1431 * @generated 2145 * @generated
2146 * @ordered
1432 */ 2147 */
1433 int IRREFLEXIVE_CLOSURE = 51; 2148 int LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND = SCOPE_DEFINITION_FEATURE_COUNT + 0;
1434 2149
1435 /** 2150 /**
1436 * The number of structural features of the '<em>Irreflexive Closure</em>' class. 2151 * The number of structural features of the '<em>Lower Bounded Scope Definition</em>' class.
1437 * <!-- begin-user-doc --> 2152 * <!-- begin-user-doc -->
1438 * <!-- end-user-doc --> 2153 * <!-- end-user-doc -->
1439 * @generated 2154 * @generated
1440 * @ordered 2155 * @ordered
1441 */ 2156 */
1442 int IRREFLEXIVE_CLOSURE_FEATURE_COUNT = CLOSURE_TYPE_FEATURE_COUNT + 0; 2157 int LOWER_BOUNDED_SCOPE_DEFINITION_FEATURE_COUNT = SCOPE_DEFINITION_FEATURE_COUNT + 1;
2158
2159 /**
2160 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl <em>Objective Definition</em>}' class.
2161 * <!-- begin-user-doc -->
2162 * <!-- end-user-doc -->
2163 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl
2164 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObjectiveDefinition()
2165 * @generated
2166 */
2167 int OBJECTIVE_DEFINITION = 37;
2168
2169 /**
2170 * The feature id for the '<em><b>Abstract</b></em>' attribute.
2171 * <!-- begin-user-doc -->
2172 * <!-- end-user-doc -->
2173 * @generated
2174 * @ordered
2175 */
2176 int OBJECTIVE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT;
2177
2178 /**
2179 * The feature id for the '<em><b>Name</b></em>' attribute.
2180 * <!-- begin-user-doc -->
2181 * <!-- end-user-doc -->
2182 * @generated
2183 * @ordered
2184 */
2185 int OBJECTIVE_DEFINITION__NAME = STATEMENT__NAME;
2186
2187 /**
2188 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
2189 * <!-- begin-user-doc -->
2190 * <!-- end-user-doc -->
2191 * @generated
2192 * @ordered
2193 */
2194 int OBJECTIVE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
2195
2196 /**
2197 * The feature id for the '<em><b>Members</b></em>' containment reference list.
2198 * <!-- begin-user-doc -->
2199 * <!-- end-user-doc -->
2200 * @generated
2201 * @ordered
2202 */
2203 int OBJECTIVE_DEFINITION__MEMBERS = STATEMENT__MEMBERS;
2204
2205 /**
2206 * The feature id for the '<em><b>Kind</b></em>' attribute.
2207 * <!-- begin-user-doc -->
2208 * <!-- end-user-doc -->
2209 * @generated
2210 * @ordered
2211 */
2212 int OBJECTIVE_DEFINITION__KIND = STATEMENT_FEATURE_COUNT + 0;
2213
2214 /**
2215 * The feature id for the '<em><b>Objective</b></em>' containment reference.
2216 * <!-- begin-user-doc -->
2217 * <!-- end-user-doc -->
2218 * @generated
2219 * @ordered
2220 */
2221 int OBJECTIVE_DEFINITION__OBJECTIVE = STATEMENT_FEATURE_COUNT + 1;
2222
2223 /**
2224 * The number of structural features of the '<em>Objective Definition</em>' class.
2225 * <!-- begin-user-doc -->
2226 * <!-- end-user-doc -->
2227 * @generated
2228 * @ordered
2229 */
2230 int OBJECTIVE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
2231
2232 /**
2233 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl <em>Named Element</em>}' class.
2234 * <!-- begin-user-doc -->
2235 * <!-- end-user-doc -->
2236 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl
2237 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNamedElement()
2238 * @generated
2239 */
2240 int NAMED_ELEMENT = 38;
2241
2242 /**
2243 * The feature id for the '<em><b>Name</b></em>' attribute.
2244 * <!-- begin-user-doc -->
2245 * <!-- end-user-doc -->
2246 * @generated
2247 * @ordered
2248 */
2249 int NAMED_ELEMENT__NAME = 0;
2250
2251 /**
2252 * The number of structural features of the '<em>Named Element</em>' class.
2253 * <!-- begin-user-doc -->
2254 * <!-- end-user-doc -->
2255 * @generated
2256 * @ordered
2257 */
2258 int NAMED_ELEMENT_FEATURE_COUNT = 1;
2259
2260 /**
2261 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl <em>Assertion</em>}' class.
2262 * <!-- begin-user-doc -->
2263 * <!-- end-user-doc -->
2264 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl
2265 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAssertion()
2266 * @generated
2267 */
2268 int ASSERTION = 39;
2269
2270 /**
2271 * The feature id for the '<em><b>Abstract</b></em>' attribute.
2272 * <!-- begin-user-doc -->
2273 * <!-- end-user-doc -->
2274 * @generated
2275 * @ordered
2276 */
2277 int ASSERTION__ABSTRACT = STATEMENT__ABSTRACT;
2278
2279 /**
2280 * The feature id for the '<em><b>Name</b></em>' attribute.
2281 * <!-- begin-user-doc -->
2282 * <!-- end-user-doc -->
2283 * @generated
2284 * @ordered
2285 */
2286 int ASSERTION__NAME = STATEMENT__NAME;
2287
2288 /**
2289 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
2290 * <!-- begin-user-doc -->
2291 * <!-- end-user-doc -->
2292 * @generated
2293 * @ordered
2294 */
2295 int ASSERTION__SUPERCLASSES = STATEMENT__SUPERCLASSES;
2296
2297 /**
2298 * The feature id for the '<em><b>Members</b></em>' containment reference list.
2299 * <!-- begin-user-doc -->
2300 * <!-- end-user-doc -->
2301 * @generated
2302 * @ordered
2303 */
2304 int ASSERTION__MEMBERS = STATEMENT__MEMBERS;
2305
2306 /**
2307 * The feature id for the '<em><b>Body</b></em>' containment reference.
2308 * <!-- begin-user-doc -->
2309 * <!-- end-user-doc -->
2310 * @generated
2311 * @ordered
2312 */
2313 int ASSERTION__BODY = STATEMENT_FEATURE_COUNT + 0;
2314
2315 /**
2316 * The feature id for the '<em><b>Range</b></em>' containment reference.
2317 * <!-- begin-user-doc -->
2318 * <!-- end-user-doc -->
2319 * @generated
2320 * @ordered
2321 */
2322 int ASSERTION__RANGE = STATEMENT_FEATURE_COUNT + 1;
2323
2324 /**
2325 * The number of structural features of the '<em>Assertion</em>' class.
2326 * <!-- begin-user-doc -->
2327 * <!-- end-user-doc -->
2328 * @generated
2329 * @ordered
2330 */
2331 int ASSERTION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
2332
2333 /**
2334 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl <em>Disjunction</em>}' class.
2335 * <!-- begin-user-doc -->
2336 * <!-- end-user-doc -->
2337 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl
2338 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDisjunction()
2339 * @generated
2340 */
2341 int DISJUNCTION = 40;
2342
2343 /**
2344 * The feature id for the '<em><b>Abstract</b></em>' attribute.
2345 * <!-- begin-user-doc -->
2346 * <!-- end-user-doc -->
2347 * @generated
2348 * @ordered
2349 */
2350 int DISJUNCTION__ABSTRACT = EXPRESSION__ABSTRACT;
2351
2352 /**
2353 * The feature id for the '<em><b>Name</b></em>' attribute.
2354 * <!-- begin-user-doc -->
2355 * <!-- end-user-doc -->
2356 * @generated
2357 * @ordered
2358 */
2359 int DISJUNCTION__NAME = EXPRESSION__NAME;
2360
2361 /**
2362 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
2363 * <!-- begin-user-doc -->
2364 * <!-- end-user-doc -->
2365 * @generated
2366 * @ordered
2367 */
2368 int DISJUNCTION__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
2369
2370 /**
2371 * The feature id for the '<em><b>Members</b></em>' containment reference list.
2372 * <!-- begin-user-doc -->
2373 * <!-- end-user-doc -->
2374 * @generated
2375 * @ordered
2376 */
2377 int DISJUNCTION__MEMBERS = EXPRESSION__MEMBERS;
2378
2379 /**
2380 * The feature id for the '<em><b>Children</b></em>' containment reference list.
2381 * <!-- begin-user-doc -->
2382 * <!-- end-user-doc -->
2383 * @generated
2384 * @ordered
2385 */
2386 int DISJUNCTION__CHILDREN = EXPRESSION_FEATURE_COUNT + 0;
2387
2388 /**
2389 * The number of structural features of the '<em>Disjunction</em>' class.
2390 * <!-- begin-user-doc -->
2391 * <!-- end-user-doc -->
2392 * @generated
2393 * @ordered
2394 */
2395 int DISJUNCTION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
2396
2397 /**
2398 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl <em>Switch</em>}' class.
2399 * <!-- begin-user-doc -->
2400 * <!-- end-user-doc -->
2401 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl
2402 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getSwitch()
2403 * @generated
2404 */
2405 int SWITCH = 41;
2406
2407 /**
2408 * The feature id for the '<em><b>Abstract</b></em>' attribute.
2409 * <!-- begin-user-doc -->
2410 * <!-- end-user-doc -->
2411 * @generated
2412 * @ordered
2413 */
2414 int SWITCH__ABSTRACT = EXPRESSION__ABSTRACT;
2415
2416 /**
2417 * The feature id for the '<em><b>Name</b></em>' attribute.
2418 * <!-- begin-user-doc -->
2419 * <!-- end-user-doc -->
2420 * @generated
2421 * @ordered
2422 */
2423 int SWITCH__NAME = EXPRESSION__NAME;
2424
2425 /**
2426 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
2427 * <!-- begin-user-doc -->
2428 * <!-- end-user-doc -->
2429 * @generated
2430 * @ordered
2431 */
2432 int SWITCH__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
2433
2434 /**
2435 * The feature id for the '<em><b>Members</b></em>' containment reference list.
2436 * <!-- begin-user-doc -->
2437 * <!-- end-user-doc -->
2438 * @generated
2439 * @ordered
2440 */
2441 int SWITCH__MEMBERS = EXPRESSION__MEMBERS;
2442
2443 /**
2444 * The feature id for the '<em><b>Cases</b></em>' containment reference list.
2445 * <!-- begin-user-doc -->
2446 * <!-- end-user-doc -->
2447 * @generated
2448 * @ordered
2449 */
2450 int SWITCH__CASES = EXPRESSION_FEATURE_COUNT + 0;
2451
2452 /**
2453 * The number of structural features of the '<em>Switch</em>' class.
2454 * <!-- begin-user-doc -->
2455 * <!-- end-user-doc -->
2456 * @generated
2457 * @ordered
2458 */
2459 int SWITCH_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
2460
2461 /**
2462 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl <em>Conjunction</em>}' class.
2463 * <!-- begin-user-doc -->
2464 * <!-- end-user-doc -->
2465 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl
2466 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getConjunction()
2467 * @generated
2468 */
2469 int CONJUNCTION = 42;
2470
2471 /**
2472 * The feature id for the '<em><b>Abstract</b></em>' attribute.
2473 * <!-- begin-user-doc -->
2474 * <!-- end-user-doc -->
2475 * @generated
2476 * @ordered
2477 */
2478 int CONJUNCTION__ABSTRACT = EXPRESSION__ABSTRACT;
2479
2480 /**
2481 * The feature id for the '<em><b>Name</b></em>' attribute.
2482 * <!-- begin-user-doc -->
2483 * <!-- end-user-doc -->
2484 * @generated
2485 * @ordered
2486 */
2487 int CONJUNCTION__NAME = EXPRESSION__NAME;
2488
2489 /**
2490 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
2491 * <!-- begin-user-doc -->
2492 * <!-- end-user-doc -->
2493 * @generated
2494 * @ordered
2495 */
2496 int CONJUNCTION__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
2497
2498 /**
2499 * The feature id for the '<em><b>Members</b></em>' containment reference list.
2500 * <!-- begin-user-doc -->
2501 * <!-- end-user-doc -->
2502 * @generated
2503 * @ordered
2504 */
2505 int CONJUNCTION__MEMBERS = EXPRESSION__MEMBERS;
2506
2507 /**
2508 * The feature id for the '<em><b>Children</b></em>' containment reference list.
2509 * <!-- begin-user-doc -->
2510 * <!-- end-user-doc -->
2511 * @generated
2512 * @ordered
2513 */
2514 int CONJUNCTION__CHILDREN = EXPRESSION_FEATURE_COUNT + 0;
2515
2516 /**
2517 * The number of structural features of the '<em>Conjunction</em>' class.
2518 * <!-- begin-user-doc -->
2519 * <!-- end-user-doc -->
2520 * @generated
2521 * @ordered
2522 */
2523 int CONJUNCTION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;
2524
2525 /**
2526 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl <em>Comparison</em>}' class.
2527 * <!-- begin-user-doc -->
2528 * <!-- end-user-doc -->
2529 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl
2530 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getComparison()
2531 * @generated
2532 */
2533 int COMPARISON = 43;
2534
2535 /**
2536 * The feature id for the '<em><b>Abstract</b></em>' attribute.
2537 * <!-- begin-user-doc -->
2538 * <!-- end-user-doc -->
2539 * @generated
2540 * @ordered
2541 */
2542 int COMPARISON__ABSTRACT = EXPRESSION__ABSTRACT;
2543
2544 /**
2545 * The feature id for the '<em><b>Name</b></em>' attribute.
2546 * <!-- begin-user-doc -->
2547 * <!-- end-user-doc -->
2548 * @generated
2549 * @ordered
2550 */
2551 int COMPARISON__NAME = EXPRESSION__NAME;
2552
2553 /**
2554 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
2555 * <!-- begin-user-doc -->
2556 * <!-- end-user-doc -->
2557 * @generated
2558 * @ordered
2559 */
2560 int COMPARISON__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
2561
2562 /**
2563 * The feature id for the '<em><b>Members</b></em>' containment reference list.
2564 * <!-- begin-user-doc -->
2565 * <!-- end-user-doc -->
2566 * @generated
2567 * @ordered
2568 */
2569 int COMPARISON__MEMBERS = EXPRESSION__MEMBERS;
2570
2571 /**
2572 * The feature id for the '<em><b>Left</b></em>' containment reference.
2573 * <!-- begin-user-doc -->
2574 * <!-- end-user-doc -->
2575 * @generated
2576 * @ordered
2577 */
2578 int COMPARISON__LEFT = EXPRESSION_FEATURE_COUNT + 0;
2579
2580 /**
2581 * The feature id for the '<em><b>Op</b></em>' attribute.
2582 * <!-- begin-user-doc -->
2583 * <!-- end-user-doc -->
2584 * @generated
2585 * @ordered
2586 */
2587 int COMPARISON__OP = EXPRESSION_FEATURE_COUNT + 1;
2588
2589 /**
2590 * The feature id for the '<em><b>Right</b></em>' containment reference.
2591 * <!-- begin-user-doc -->
2592 * <!-- end-user-doc -->
2593 * @generated
2594 * @ordered
2595 */
2596 int COMPARISON__RIGHT = EXPRESSION_FEATURE_COUNT + 2;
2597
2598 /**
2599 * The number of structural features of the '<em>Comparison</em>' class.
2600 * <!-- begin-user-doc -->
2601 * <!-- end-user-doc -->
2602 * @generated
2603 * @ordered
2604 */
2605 int COMPARISON_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3;
2606
2607 /**
2608 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl <em>Binary Expression</em>}' class.
2609 * <!-- begin-user-doc -->
2610 * <!-- end-user-doc -->
2611 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl
2612 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBinaryExpression()
2613 * @generated
2614 */
2615 int BINARY_EXPRESSION = 44;
2616
2617 /**
2618 * The feature id for the '<em><b>Abstract</b></em>' attribute.
2619 * <!-- begin-user-doc -->
2620 * <!-- end-user-doc -->
2621 * @generated
2622 * @ordered
2623 */
2624 int BINARY_EXPRESSION__ABSTRACT = EXPRESSION__ABSTRACT;
2625
2626 /**
2627 * The feature id for the '<em><b>Name</b></em>' attribute.
2628 * <!-- begin-user-doc -->
2629 * <!-- end-user-doc -->
2630 * @generated
2631 * @ordered
2632 */
2633 int BINARY_EXPRESSION__NAME = EXPRESSION__NAME;
2634
2635 /**
2636 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
2637 * <!-- begin-user-doc -->
2638 * <!-- end-user-doc -->
2639 * @generated
2640 * @ordered
2641 */
2642 int BINARY_EXPRESSION__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
2643
2644 /**
2645 * The feature id for the '<em><b>Members</b></em>' containment reference list.
2646 * <!-- begin-user-doc -->
2647 * <!-- end-user-doc -->
2648 * @generated
2649 * @ordered
2650 */
2651 int BINARY_EXPRESSION__MEMBERS = EXPRESSION__MEMBERS;
2652
2653 /**
2654 * The feature id for the '<em><b>Left</b></em>' containment reference.
2655 * <!-- begin-user-doc -->
2656 * <!-- end-user-doc -->
2657 * @generated
2658 * @ordered
2659 */
2660 int BINARY_EXPRESSION__LEFT = EXPRESSION_FEATURE_COUNT + 0;
2661
2662 /**
2663 * The feature id for the '<em><b>Op</b></em>' attribute.
2664 * <!-- begin-user-doc -->
2665 * <!-- end-user-doc -->
2666 * @generated
2667 * @ordered
2668 */
2669 int BINARY_EXPRESSION__OP = EXPRESSION_FEATURE_COUNT + 1;
2670
2671 /**
2672 * The feature id for the '<em><b>Right</b></em>' containment reference.
2673 * <!-- begin-user-doc -->
2674 * <!-- end-user-doc -->
2675 * @generated
2676 * @ordered
2677 */
2678 int BINARY_EXPRESSION__RIGHT = EXPRESSION_FEATURE_COUNT + 2;
2679
2680 /**
2681 * The number of structural features of the '<em>Binary Expression</em>' class.
2682 * <!-- begin-user-doc -->
2683 * <!-- end-user-doc -->
2684 * @generated
2685 * @ordered
2686 */
2687 int BINARY_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3;
2688
2689 /**
2690 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl <em>Unary Expression</em>}' class.
2691 * <!-- begin-user-doc -->
2692 * <!-- end-user-doc -->
2693 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl
2694 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnaryExpression()
2695 * @generated
2696 */
2697 int UNARY_EXPRESSION = 45;
2698
2699 /**
2700 * The feature id for the '<em><b>Abstract</b></em>' attribute.
2701 * <!-- begin-user-doc -->
2702 * <!-- end-user-doc -->
2703 * @generated
2704 * @ordered
2705 */
2706 int UNARY_EXPRESSION__ABSTRACT = EXPRESSION__ABSTRACT;
2707
2708 /**
2709 * The feature id for the '<em><b>Name</b></em>' attribute.
2710 * <!-- begin-user-doc -->
2711 * <!-- end-user-doc -->
2712 * @generated
2713 * @ordered
2714 */
2715 int UNARY_EXPRESSION__NAME = EXPRESSION__NAME;
2716
2717 /**
2718 * The feature id for the '<em><b>Superclasses</b></em>' reference list.
2719 * <!-- begin-user-doc -->
2720 * <!-- end-user-doc -->
2721 * @generated
2722 * @ordered
2723 */
2724 int UNARY_EXPRESSION__SUPERCLASSES = EXPRESSION__SUPERCLASSES;
2725
2726 /**
2727 * The feature id for the '<em><b>Members</b></em>' containment reference list.
2728 * <!-- begin-user-doc -->
2729 * <!-- end-user-doc -->
2730 * @generated
2731 * @ordered
2732 */
2733 int UNARY_EXPRESSION__MEMBERS = EXPRESSION__MEMBERS;
2734
2735 /**
2736 * The feature id for the '<em><b>Op</b></em>' attribute.
2737 * <!-- begin-user-doc -->
2738 * <!-- end-user-doc -->
2739 * @generated
2740 * @ordered
2741 */
2742 int UNARY_EXPRESSION__OP = EXPRESSION_FEATURE_COUNT + 0;
2743
2744 /**
2745 * The feature id for the '<em><b>Body</b></em>' containment reference.
2746 * <!-- begin-user-doc -->
2747 * <!-- end-user-doc -->
2748 * @generated
2749 * @ordered
2750 */
2751 int UNARY_EXPRESSION__BODY = EXPRESSION_FEATURE_COUNT + 1;
2752
2753 /**
2754 * The number of structural features of the '<em>Unary Expression</em>' class.
2755 * <!-- begin-user-doc -->
2756 * <!-- end-user-doc -->
2757 * @generated
2758 * @ordered
2759 */
2760 int UNARY_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2;
2761
2762 /**
2763 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricType <em>Metric Type</em>}' enum.
2764 * <!-- begin-user-doc -->
2765 * <!-- end-user-doc -->
2766 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType
2767 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMetricType()
2768 * @generated
2769 */
2770 int METRIC_TYPE = 46;
2771
2772 /**
2773 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator <em>Binary Operator</em>}' enum.
2774 * <!-- begin-user-doc -->
2775 * <!-- end-user-doc -->
2776 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator
2777 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBinaryOperator()
2778 * @generated
2779 */
2780 int BINARY_OPERATOR = 47;
2781
2782 /**
2783 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryOp <em>Unary Op</em>}' enum.
2784 * <!-- begin-user-doc -->
2785 * <!-- end-user-doc -->
2786 * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp
2787 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnaryOp()
2788 * @generated
2789 */
2790 int UNARY_OP = 48;
2791
2792 /**
2793 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.AggregationOp <em>Aggregation Op</em>}' enum.
2794 * <!-- begin-user-doc -->
2795 * <!-- end-user-doc -->
2796 * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp
2797 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAggregationOp()
2798 * @generated
2799 */
2800 int AGGREGATION_OP = 49;
2801
2802 /**
2803 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicValue <em>Logic Value</em>}' enum.
2804 * <!-- begin-user-doc -->
2805 * <!-- end-user-doc -->
2806 * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue
2807 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLogicValue()
2808 * @generated
2809 */
2810 int LOGIC_VALUE = 50;
2811
2812 /**
2813 * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind <em>Objective Kind</em>}' enum.
2814 * <!-- begin-user-doc -->
2815 * <!-- end-user-doc -->
2816 * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind
2817 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObjectiveKind()
2818 * @generated
2819 */
2820 int OBJECTIVE_KIND = 51;
1443 2821
1444 2822
1445 /** 2823 /**
@@ -1474,525 +2852,633 @@ public interface SolverLanguagePackage extends EPackage
1474 EClass getStatement(); 2852 EClass getStatement();
1475 2853
1476 /** 2854 /**
1477 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanValue <em>Boolean Value</em>}'. 2855 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#isAbstract <em>Abstract</em>}'.
1478 * <!-- begin-user-doc --> 2856 * <!-- begin-user-doc -->
1479 * <!-- end-user-doc --> 2857 * <!-- end-user-doc -->
1480 * @return the meta object for class '<em>Boolean Value</em>'. 2858 * @return the meta object for the attribute '<em>Abstract</em>'.
1481 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanValue 2859 * @see org.eclipse.viatra.solver.language.solverLanguage.Statement#isAbstract()
2860 * @see #getStatement()
1482 * @generated 2861 * @generated
1483 */ 2862 */
1484 EClass getBooleanValue(); 2863 EAttribute getStatement_Abstract();
1485 2864
1486 /** 2865 /**
1487 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.TruthValue <em>Truth Value</em>}'. 2866 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getName <em>Name</em>}'.
1488 * <!-- begin-user-doc --> 2867 * <!-- begin-user-doc -->
1489 * <!-- end-user-doc --> 2868 * <!-- end-user-doc -->
1490 * @return the meta object for class '<em>Truth Value</em>'. 2869 * @return the meta object for the attribute '<em>Name</em>'.
1491 * @see org.eclipse.viatra.solver.language.solverLanguage.TruthValue 2870 * @see org.eclipse.viatra.solver.language.solverLanguage.Statement#getName()
2871 * @see #getStatement()
1492 * @generated 2872 * @generated
1493 */ 2873 */
1494 EClass getTruthValue(); 2874 EAttribute getStatement_Name();
1495 2875
1496 /** 2876 /**
1497 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Interpretation <em>Interpretation</em>}'. 2877 * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getSuperclasses <em>Superclasses</em>}'.
1498 * <!-- begin-user-doc --> 2878 * <!-- begin-user-doc -->
1499 * <!-- end-user-doc --> 2879 * <!-- end-user-doc -->
1500 * @return the meta object for class '<em>Interpretation</em>'. 2880 * @return the meta object for the reference list '<em>Superclasses</em>'.
1501 * @see org.eclipse.viatra.solver.language.solverLanguage.Interpretation 2881 * @see org.eclipse.viatra.solver.language.solverLanguage.Statement#getSuperclasses()
2882 * @see #getStatement()
1502 * @generated 2883 * @generated
1503 */ 2884 */
1504 EClass getInterpretation(); 2885 EReference getStatement_Superclasses();
1505 2886
1506 /** 2887 /**
1507 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation <em>Basic Interpretation</em>}'. 2888 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getMembers <em>Members</em>}'.
1508 * <!-- begin-user-doc --> 2889 * <!-- begin-user-doc -->
1509 * <!-- end-user-doc --> 2890 * <!-- end-user-doc -->
1510 * @return the meta object for class '<em>Basic Interpretation</em>'. 2891 * @return the meta object for the containment reference list '<em>Members</em>'.
1511 * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation 2892 * @see org.eclipse.viatra.solver.language.solverLanguage.Statement#getMembers()
2893 * @see #getStatement()
1512 * @generated 2894 * @generated
1513 */ 2895 */
1514 EClass getBasicInterpretation(); 2896 EReference getStatement_Members();
1515 2897
1516 /** 2898 /**
1517 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getSymbol <em>Symbol</em>}'. 2899 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition <em>Predicate Definition</em>}'.
1518 * <!-- begin-user-doc --> 2900 * <!-- begin-user-doc -->
1519 * <!-- end-user-doc --> 2901 * <!-- end-user-doc -->
1520 * @return the meta object for the containment reference '<em>Symbol</em>'. 2902 * @return the meta object for class '<em>Predicate Definition</em>'.
1521 * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getSymbol() 2903 * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition
1522 * @see #getBasicInterpretation()
1523 * @generated 2904 * @generated
1524 */ 2905 */
1525 EReference getBasicInterpretation_Symbol(); 2906 EClass getPredicateDefinition();
1526 2907
1527 /** 2908 /**
1528 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getObjects <em>Objects</em>}'. 2909 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getHead <em>Head</em>}'.
1529 * <!-- begin-user-doc --> 2910 * <!-- begin-user-doc -->
1530 * <!-- end-user-doc --> 2911 * <!-- end-user-doc -->
1531 * @return the meta object for the containment reference list '<em>Objects</em>'. 2912 * @return the meta object for the containment reference '<em>Head</em>'.
1532 * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getObjects() 2913 * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getHead()
1533 * @see #getBasicInterpretation() 2914 * @see #getPredicateDefinition()
1534 * @generated 2915 * @generated
1535 */ 2916 */
1536 EReference getBasicInterpretation_Objects(); 2917 EReference getPredicateDefinition_Head();
1537 2918
1538 /** 2919 /**
1539 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getValue <em>Value</em>}'. 2920 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getBody <em>Body</em>}'.
1540 * <!-- begin-user-doc --> 2921 * <!-- begin-user-doc -->
1541 * <!-- end-user-doc --> 2922 * <!-- end-user-doc -->
1542 * @return the meta object for the containment reference '<em>Value</em>'. 2923 * @return the meta object for the containment reference '<em>Body</em>'.
1543 * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getValue() 2924 * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getBody()
1544 * @see #getBasicInterpretation() 2925 * @see #getPredicateDefinition()
1545 * @generated 2926 * @generated
1546 */ 2927 */
1547 EReference getBasicInterpretation_Value(); 2928 EReference getPredicateDefinition_Body();
1548 2929
1549 /** 2930 /**
1550 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Symbol <em>Symbol</em>}'. 2931 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isFunctional <em>Functional</em>}'.
1551 * <!-- begin-user-doc --> 2932 * <!-- begin-user-doc -->
1552 * <!-- end-user-doc --> 2933 * <!-- end-user-doc -->
1553 * @return the meta object for class '<em>Symbol</em>'. 2934 * @return the meta object for the attribute '<em>Functional</em>'.
1554 * @see org.eclipse.viatra.solver.language.solverLanguage.Symbol 2935 * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isFunctional()
2936 * @see #getPredicateDefinition()
1555 * @generated 2937 * @generated
1556 */ 2938 */
1557 EClass getSymbol(); 2939 EAttribute getPredicateDefinition_Functional();
1558 2940
1559 /** 2941 /**
1560 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol <em>Model Symbol</em>}'. 2942 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isError <em>Error</em>}'.
1561 * <!-- begin-user-doc --> 2943 * <!-- begin-user-doc -->
1562 * <!-- end-user-doc --> 2944 * <!-- end-user-doc -->
1563 * @return the meta object for class '<em>Model Symbol</em>'. 2945 * @return the meta object for the attribute '<em>Error</em>'.
1564 * @see org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol 2946 * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isError()
2947 * @see #getPredicateDefinition()
1565 * @generated 2948 * @generated
1566 */ 2949 */
1567 EClass getModelSymbol(); 2950 EAttribute getPredicateDefinition_Error();
1568 2951
1569 /** 2952 /**
1570 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol#getName <em>Name</em>}'. 2953 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition <em>Unnamed Error Prediate Definition</em>}'.
1571 * <!-- begin-user-doc --> 2954 * <!-- begin-user-doc -->
1572 * <!-- end-user-doc --> 2955 * <!-- end-user-doc -->
1573 * @return the meta object for the attribute '<em>Name</em>'. 2956 * @return the meta object for class '<em>Unnamed Error Prediate Definition</em>'.
1574 * @see org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol#getName() 2957 * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition
1575 * @see #getModelSymbol()
1576 * @generated 2958 * @generated
1577 */ 2959 */
1578 EAttribute getModelSymbol_Name(); 2960 EClass getUnnamedErrorPrediateDefinition();
1579 2961
1580 /** 2962 /**
1581 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol <em>Partiality Symbol</em>}'. 2963 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getArgumentList <em>Argument List</em>}'.
1582 * <!-- begin-user-doc --> 2964 * <!-- begin-user-doc -->
1583 * <!-- end-user-doc --> 2965 * <!-- end-user-doc -->
1584 * @return the meta object for class '<em>Partiality Symbol</em>'. 2966 * @return the meta object for the containment reference '<em>Argument List</em>'.
1585 * @see org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol 2967 * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getArgumentList()
2968 * @see #getUnnamedErrorPrediateDefinition()
1586 * @generated 2969 * @generated
1587 */ 2970 */
1588 EClass getPartialitySymbol(); 2971 EReference getUnnamedErrorPrediateDefinition_ArgumentList();
1589 2972
1590 /** 2973 /**
1591 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol <em>Exist Symbol</em>}'. 2974 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getBody <em>Body</em>}'.
1592 * <!-- begin-user-doc --> 2975 * <!-- begin-user-doc -->
1593 * <!-- end-user-doc --> 2976 * <!-- end-user-doc -->
1594 * @return the meta object for class '<em>Exist Symbol</em>'. 2977 * @return the meta object for the containment reference '<em>Body</em>'.
1595 * @see org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol 2978 * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getBody()
2979 * @see #getUnnamedErrorPrediateDefinition()
1596 * @generated 2980 * @generated
1597 */ 2981 */
1598 EClass getExistSymbol(); 2982 EReference getUnnamedErrorPrediateDefinition_Body();
1599 2983
1600 /** 2984 /**
1601 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol <em>Equals Symbol</em>}'. 2985 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition <em>Default Definition</em>}'.
1602 * <!-- begin-user-doc --> 2986 * <!-- begin-user-doc -->
1603 * <!-- end-user-doc --> 2987 * <!-- end-user-doc -->
1604 * @return the meta object for class '<em>Equals Symbol</em>'. 2988 * @return the meta object for class '<em>Default Definition</em>'.
1605 * @see org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol 2989 * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition
1606 * @generated 2990 * @generated
1607 */ 2991 */
1608 EClass getEqualsSymbol(); 2992 EClass getDefaultDefinition();
1609 2993
1610 /** 2994 /**
1611 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.DataSymbol <em>Data Symbol</em>}'. 2995 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getHead <em>Head</em>}'.
1612 * <!-- begin-user-doc --> 2996 * <!-- begin-user-doc -->
1613 * <!-- end-user-doc --> 2997 * <!-- end-user-doc -->
1614 * @return the meta object for class '<em>Data Symbol</em>'. 2998 * @return the meta object for the containment reference '<em>Head</em>'.
1615 * @see org.eclipse.viatra.solver.language.solverLanguage.DataSymbol 2999 * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getHead()
3000 * @see #getDefaultDefinition()
1616 * @generated 3001 * @generated
1617 */ 3002 */
1618 EClass getDataSymbol(); 3003 EReference getDefaultDefinition_Head();
1619 3004
1620 /** 3005 /**
1621 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol <em>Boolean Symbol</em>}'. 3006 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getRange <em>Range</em>}'.
1622 * <!-- begin-user-doc --> 3007 * <!-- begin-user-doc -->
1623 * <!-- end-user-doc --> 3008 * <!-- end-user-doc -->
1624 * @return the meta object for class '<em>Boolean Symbol</em>'. 3009 * @return the meta object for the containment reference '<em>Range</em>'.
1625 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol 3010 * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getRange()
3011 * @see #getDefaultDefinition()
1626 * @generated 3012 * @generated
1627 */ 3013 */
1628 EClass getBooleanSymbol(); 3014 EReference getDefaultDefinition_Range();
1629 3015
1630 /** 3016 /**
1631 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol <em>Integer Symbol</em>}'. 3017 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition <em>Extern Predicate Definition</em>}'.
1632 * <!-- begin-user-doc --> 3018 * <!-- begin-user-doc -->
1633 * <!-- end-user-doc --> 3019 * <!-- end-user-doc -->
1634 * @return the meta object for class '<em>Integer Symbol</em>'. 3020 * @return the meta object for class '<em>Extern Predicate Definition</em>'.
1635 * @see org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol 3021 * @see org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition
1636 * @generated 3022 * @generated
1637 */ 3023 */
1638 EClass getIntegerSymbol(); 3024 EClass getExternPredicateDefinition();
1639 3025
1640 /** 3026 /**
1641 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.RealSymbol <em>Real Symbol</em>}'. 3027 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition#getHead <em>Head</em>}'.
1642 * <!-- begin-user-doc --> 3028 * <!-- begin-user-doc -->
1643 * <!-- end-user-doc --> 3029 * <!-- end-user-doc -->
1644 * @return the meta object for class '<em>Real Symbol</em>'. 3030 * @return the meta object for the containment reference '<em>Head</em>'.
1645 * @see org.eclipse.viatra.solver.language.solverLanguage.RealSymbol 3031 * @see org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition#getHead()
3032 * @see #getExternPredicateDefinition()
1646 * @generated 3033 * @generated
1647 */ 3034 */
1648 EClass getRealSymbol(); 3035 EReference getExternPredicateDefinition_Head();
1649 3036
1650 /** 3037 /**
1651 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringSymbol <em>String Symbol</em>}'. 3038 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition <em>Metric Definition</em>}'.
1652 * <!-- begin-user-doc --> 3039 * <!-- begin-user-doc -->
1653 * <!-- end-user-doc --> 3040 * <!-- end-user-doc -->
1654 * @return the meta object for class '<em>String Symbol</em>'. 3041 * @return the meta object for class '<em>Metric Definition</em>'.
1655 * @see org.eclipse.viatra.solver.language.solverLanguage.StringSymbol 3042 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition
1656 * @generated 3043 * @generated
1657 */ 3044 */
1658 EClass getStringSymbol(); 3045 EClass getMetricDefinition();
1659 3046
1660 /** 3047 /**
1661 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ComplexObject <em>Complex Object</em>}'. 3048 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getHead <em>Head</em>}'.
1662 * <!-- begin-user-doc --> 3049 * <!-- begin-user-doc -->
1663 * <!-- end-user-doc --> 3050 * <!-- end-user-doc -->
1664 * @return the meta object for class '<em>Complex Object</em>'. 3051 * @return the meta object for the containment reference '<em>Head</em>'.
1665 * @see org.eclipse.viatra.solver.language.solverLanguage.ComplexObject 3052 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getHead()
3053 * @see #getMetricDefinition()
1666 * @generated 3054 * @generated
1667 */ 3055 */
1668 EClass getComplexObject(); 3056 EReference getMetricDefinition_Head();
1669 3057
1670 /** 3058 /**
1671 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Object <em>Object</em>}'. 3059 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getBody <em>Body</em>}'.
1672 * <!-- begin-user-doc --> 3060 * <!-- begin-user-doc -->
1673 * <!-- end-user-doc --> 3061 * <!-- end-user-doc -->
1674 * @return the meta object for class '<em>Object</em>'. 3062 * @return the meta object for the containment reference '<em>Body</em>'.
1675 * @see org.eclipse.viatra.solver.language.solverLanguage.Object 3063 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getBody()
3064 * @see #getMetricDefinition()
1676 * @generated 3065 * @generated
1677 */ 3066 */
1678 EClass getObject(); 3067 EReference getMetricDefinition_Body();
1679 3068
1680 /** 3069 /**
1681 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject <em>Named Object</em>}'. 3070 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getType <em>Type</em>}'.
1682 * <!-- begin-user-doc --> 3071 * <!-- begin-user-doc -->
1683 * <!-- end-user-doc --> 3072 * <!-- end-user-doc -->
1684 * @return the meta object for class '<em>Named Object</em>'. 3073 * @return the meta object for the attribute '<em>Type</em>'.
1685 * @see org.eclipse.viatra.solver.language.solverLanguage.NamedObject 3074 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getType()
3075 * @see #getMetricDefinition()
1686 * @generated 3076 * @generated
1687 */ 3077 */
1688 EClass getNamedObject(); 3078 EAttribute getMetricDefinition_Type();
1689 3079
1690 /** 3080 /**
1691 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject#getName <em>Name</em>}'. 3081 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition <em>Extern Metric Definition</em>}'.
1692 * <!-- begin-user-doc --> 3082 * <!-- begin-user-doc -->
1693 * <!-- end-user-doc --> 3083 * <!-- end-user-doc -->
1694 * @return the meta object for the attribute '<em>Name</em>'. 3084 * @return the meta object for class '<em>Extern Metric Definition</em>'.
1695 * @see org.eclipse.viatra.solver.language.solverLanguage.NamedObject#getName() 3085 * @see org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition
1696 * @see #getNamedObject()
1697 * @generated 3086 * @generated
1698 */ 3087 */
1699 EAttribute getNamedObject_Name(); 3088 EClass getExternMetricDefinition();
1700 3089
1701 /** 3090 /**
1702 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject <em>Unnamed Object</em>}'. 3091 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getType <em>Type</em>}'.
1703 * <!-- begin-user-doc --> 3092 * <!-- begin-user-doc -->
1704 * <!-- end-user-doc --> 3093 * <!-- end-user-doc -->
1705 * @return the meta object for class '<em>Unnamed Object</em>'. 3094 * @return the meta object for the attribute '<em>Type</em>'.
1706 * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject 3095 * @see org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getType()
3096 * @see #getExternMetricDefinition()
1707 * @generated 3097 * @generated
1708 */ 3098 */
1709 EClass getUnnamedObject(); 3099 EAttribute getExternMetricDefinition_Type();
1710 3100
1711 /** 3101 /**
1712 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject#getName <em>Name</em>}'. 3102 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getHead <em>Head</em>}'.
1713 * <!-- begin-user-doc --> 3103 * <!-- begin-user-doc -->
1714 * <!-- end-user-doc --> 3104 * <!-- end-user-doc -->
1715 * @return the meta object for the attribute '<em>Name</em>'. 3105 * @return the meta object for the containment reference '<em>Head</em>'.
1716 * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject#getName() 3106 * @see org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getHead()
1717 * @see #getUnnamedObject() 3107 * @see #getExternMetricDefinition()
1718 * @generated 3108 * @generated
1719 */ 3109 */
1720 EAttribute getUnnamedObject_Name(); 3110 EReference getExternMetricDefinition_Head();
1721 3111
1722 /** 3112 /**
1723 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.DataObject <em>Data Object</em>}'. 3113 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Expression <em>Expression</em>}'.
1724 * <!-- begin-user-doc --> 3114 * <!-- begin-user-doc -->
1725 * <!-- end-user-doc --> 3115 * <!-- end-user-doc -->
1726 * @return the meta object for class '<em>Data Object</em>'. 3116 * @return the meta object for class '<em>Expression</em>'.
1727 * @see org.eclipse.viatra.solver.language.solverLanguage.DataObject 3117 * @see org.eclipse.viatra.solver.language.solverLanguage.Expression
1728 * @generated 3118 * @generated
1729 */ 3119 */
1730 EClass getDataObject(); 3120 EClass getExpression();
1731 3121
1732 /** 3122 /**
1733 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject <em>Boolean Object</em>}'. 3123 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse <em>If Else</em>}'.
1734 * <!-- begin-user-doc --> 3124 * <!-- begin-user-doc -->
1735 * <!-- end-user-doc --> 3125 * <!-- end-user-doc -->
1736 * @return the meta object for class '<em>Boolean Object</em>'. 3126 * @return the meta object for class '<em>If Else</em>'.
1737 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanObject 3127 * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse
1738 * @generated 3128 * @generated
1739 */ 3129 */
1740 EClass getBooleanObject(); 3130 EClass getIfElse();
1741 3131
1742 /** 3132 /**
1743 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject#getValue <em>Value</em>}'. 3133 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getCondition <em>Condition</em>}'.
1744 * <!-- begin-user-doc --> 3134 * <!-- begin-user-doc -->
1745 * <!-- end-user-doc --> 3135 * <!-- end-user-doc -->
1746 * @return the meta object for the containment reference '<em>Value</em>'. 3136 * @return the meta object for the containment reference '<em>Condition</em>'.
1747 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanObject#getValue() 3137 * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse#getCondition()
1748 * @see #getBooleanObject() 3138 * @see #getIfElse()
1749 * @generated 3139 * @generated
1750 */ 3140 */
1751 EReference getBooleanObject_Value(); 3141 EReference getIfElse_Condition();
1752 3142
1753 /** 3143 /**
1754 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.IntObject <em>Int Object</em>}'. 3144 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getThen <em>Then</em>}'.
1755 * <!-- begin-user-doc --> 3145 * <!-- begin-user-doc -->
1756 * <!-- end-user-doc --> 3146 * <!-- end-user-doc -->
1757 * @return the meta object for class '<em>Int Object</em>'. 3147 * @return the meta object for the containment reference '<em>Then</em>'.
1758 * @see org.eclipse.viatra.solver.language.solverLanguage.IntObject 3148 * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse#getThen()
3149 * @see #getIfElse()
1759 * @generated 3150 * @generated
1760 */ 3151 */
1761 EClass getIntObject(); 3152 EReference getIfElse_Then();
1762 3153
1763 /** 3154 /**
1764 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.IntObject#getValue <em>Value</em>}'. 3155 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getElse <em>Else</em>}'.
1765 * <!-- begin-user-doc --> 3156 * <!-- begin-user-doc -->
1766 * <!-- end-user-doc --> 3157 * <!-- end-user-doc -->
1767 * @return the meta object for the attribute '<em>Value</em>'. 3158 * @return the meta object for the containment reference '<em>Else</em>'.
1768 * @see org.eclipse.viatra.solver.language.solverLanguage.IntObject#getValue() 3159 * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse#getElse()
1769 * @see #getIntObject() 3160 * @see #getIfElse()
1770 * @generated 3161 * @generated
1771 */ 3162 */
1772 EAttribute getIntObject_Value(); 3163 EReference getIfElse_Else();
1773 3164
1774 /** 3165 /**
1775 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.RealObject <em>Real Object</em>}'. 3166 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Case <em>Case</em>}'.
1776 * <!-- begin-user-doc --> 3167 * <!-- begin-user-doc -->
1777 * <!-- end-user-doc --> 3168 * <!-- end-user-doc -->
1778 * @return the meta object for class '<em>Real Object</em>'. 3169 * @return the meta object for class '<em>Case</em>'.
1779 * @see org.eclipse.viatra.solver.language.solverLanguage.RealObject 3170 * @see org.eclipse.viatra.solver.language.solverLanguage.Case
1780 * @generated 3171 * @generated
1781 */ 3172 */
1782 EClass getRealObject(); 3173 EClass getCase();
1783 3174
1784 /** 3175 /**
1785 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.RealObject#getValue <em>Value</em>}'. 3176 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getCondition <em>Condition</em>}'.
1786 * <!-- begin-user-doc --> 3177 * <!-- begin-user-doc -->
1787 * <!-- end-user-doc --> 3178 * <!-- end-user-doc -->
1788 * @return the meta object for the attribute '<em>Value</em>'. 3179 * @return the meta object for the containment reference '<em>Condition</em>'.
1789 * @see org.eclipse.viatra.solver.language.solverLanguage.RealObject#getValue() 3180 * @see org.eclipse.viatra.solver.language.solverLanguage.Case#getCondition()
1790 * @see #getRealObject() 3181 * @see #getCase()
1791 * @generated 3182 * @generated
1792 */ 3183 */
1793 EAttribute getRealObject_Value(); 3184 EReference getCase_Condition();
1794 3185
1795 /** 3186 /**
1796 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringObject <em>String Object</em>}'. 3187 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getBody <em>Body</em>}'.
1797 * <!-- begin-user-doc --> 3188 * <!-- begin-user-doc -->
1798 * <!-- end-user-doc --> 3189 * <!-- end-user-doc -->
1799 * @return the meta object for class '<em>String Object</em>'. 3190 * @return the meta object for the containment reference '<em>Body</em>'.
1800 * @see org.eclipse.viatra.solver.language.solverLanguage.StringObject 3191 * @see org.eclipse.viatra.solver.language.solverLanguage.Case#getBody()
3192 * @see #getCase()
1801 * @generated 3193 * @generated
1802 */ 3194 */
1803 EClass getStringObject(); 3195 EReference getCase_Body();
1804 3196
1805 /** 3197 /**
1806 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.StringObject#getValue <em>Value</em>}'. 3198 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Count <em>Count</em>}'.
1807 * <!-- begin-user-doc --> 3199 * <!-- begin-user-doc -->
1808 * <!-- end-user-doc --> 3200 * <!-- end-user-doc -->
1809 * @return the meta object for the attribute '<em>Value</em>'. 3201 * @return the meta object for class '<em>Count</em>'.
1810 * @see org.eclipse.viatra.solver.language.solverLanguage.StringObject#getValue() 3202 * @see org.eclipse.viatra.solver.language.solverLanguage.Count
1811 * @see #getStringObject() 3203 * @generated
3204 */
3205 EClass getCount();
3206
3207 /**
3208 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Count#getBody <em>Body</em>}'.
3209 * <!-- begin-user-doc -->
3210 * <!-- end-user-doc -->
3211 * @return the meta object for the containment reference '<em>Body</em>'.
3212 * @see org.eclipse.viatra.solver.language.solverLanguage.Count#getBody()
3213 * @see #getCount()
3214 * @generated
3215 */
3216 EReference getCount_Body();
3217
3218 /**
3219 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation <em>Aggregation</em>}'.
3220 * <!-- begin-user-doc -->
3221 * <!-- end-user-doc -->
3222 * @return the meta object for class '<em>Aggregation</em>'.
3223 * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation
3224 * @generated
3225 */
3226 EClass getAggregation();
3227
3228 /**
3229 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getOp <em>Op</em>}'.
3230 * <!-- begin-user-doc -->
3231 * <!-- end-user-doc -->
3232 * @return the meta object for the attribute '<em>Op</em>'.
3233 * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getOp()
3234 * @see #getAggregation()
3235 * @generated
3236 */
3237 EAttribute getAggregation_Op();
3238
3239 /**
3240 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getBody <em>Body</em>}'.
3241 * <!-- begin-user-doc -->
3242 * <!-- end-user-doc -->
3243 * @return the meta object for the containment reference '<em>Body</em>'.
3244 * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getBody()
3245 * @see #getAggregation()
3246 * @generated
3247 */
3248 EReference getAggregation_Body();
3249
3250 /**
3251 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getCondition <em>Condition</em>}'.
3252 * <!-- begin-user-doc -->
3253 * <!-- end-user-doc -->
3254 * @return the meta object for the containment reference '<em>Condition</em>'.
3255 * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getCondition()
3256 * @see #getAggregation()
1812 * @generated 3257 * @generated
1813 */ 3258 */
1814 EAttribute getStringObject_Value(); 3259 EReference getAggregation_Condition();
1815 3260
1816 /** 3261 /**
1817 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate <em>Predicate</em>}'. 3262 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Call <em>Call</em>}'.
1818 * <!-- begin-user-doc --> 3263 * <!-- begin-user-doc -->
1819 * <!-- end-user-doc --> 3264 * <!-- end-user-doc -->
1820 * @return the meta object for class '<em>Predicate</em>'. 3265 * @return the meta object for class '<em>Call</em>'.
1821 * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate 3266 * @see org.eclipse.viatra.solver.language.solverLanguage.Call
1822 * @generated 3267 * @generated
1823 */ 3268 */
1824 EClass getPredicate(); 3269 EClass getCall();
1825 3270
1826 /** 3271 /**
1827 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#isIsError <em>Is Error</em>}'. 3272 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getFunctor <em>Functor</em>}'.
1828 * <!-- begin-user-doc --> 3273 * <!-- begin-user-doc -->
1829 * <!-- end-user-doc --> 3274 * <!-- end-user-doc -->
1830 * @return the meta object for the attribute '<em>Is Error</em>'. 3275 * @return the meta object for the containment reference '<em>Functor</em>'.
1831 * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate#isIsError() 3276 * @see org.eclipse.viatra.solver.language.solverLanguage.Call#getFunctor()
1832 * @see #getPredicate() 3277 * @see #getCall()
1833 * @generated 3278 * @generated
1834 */ 3279 */
1835 EAttribute getPredicate_IsError(); 3280 EReference getCall_Functor();
1836 3281
1837 /** 3282 /**
1838 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getSymbol <em>Symbol</em>}'. 3283 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getArgumentList <em>Argument List</em>}'.
1839 * <!-- begin-user-doc --> 3284 * <!-- begin-user-doc -->
1840 * <!-- end-user-doc --> 3285 * <!-- end-user-doc -->
1841 * @return the meta object for the containment reference '<em>Symbol</em>'. 3286 * @return the meta object for the containment reference '<em>Argument List</em>'.
1842 * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate#getSymbol() 3287 * @see org.eclipse.viatra.solver.language.solverLanguage.Call#getArgumentList()
1843 * @see #getPredicate() 3288 * @see #getCall()
1844 * @generated 3289 * @generated
1845 */ 3290 */
1846 EReference getPredicate_Symbol(); 3291 EReference getCall_ArgumentList();
1847 3292
1848 /** 3293 /**
1849 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getParameters <em>Parameters</em>}'. 3294 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isTransitiveClosure <em>Transitive Closure</em>}'.
1850 * <!-- begin-user-doc --> 3295 * <!-- begin-user-doc -->
1851 * <!-- end-user-doc --> 3296 * <!-- end-user-doc -->
1852 * @return the meta object for the containment reference list '<em>Parameters</em>'. 3297 * @return the meta object for the attribute '<em>Transitive Closure</em>'.
1853 * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate#getParameters() 3298 * @see org.eclipse.viatra.solver.language.solverLanguage.Call#isTransitiveClosure()
1854 * @see #getPredicate() 3299 * @see #getCall()
1855 * @generated 3300 * @generated
1856 */ 3301 */
1857 EReference getPredicate_Parameters(); 3302 EAttribute getCall_TransitiveClosure();
1858 3303
1859 /** 3304 /**
1860 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getBodies <em>Bodies</em>}'. 3305 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isReflexiveTransitiveClosure <em>Reflexive Transitive Closure</em>}'.
1861 * <!-- begin-user-doc --> 3306 * <!-- begin-user-doc -->
1862 * <!-- end-user-doc --> 3307 * <!-- end-user-doc -->
1863 * @return the meta object for the containment reference list '<em>Bodies</em>'. 3308 * @return the meta object for the attribute '<em>Reflexive Transitive Closure</em>'.
1864 * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate#getBodies() 3309 * @see org.eclipse.viatra.solver.language.solverLanguage.Call#isReflexiveTransitiveClosure()
1865 * @see #getPredicate() 3310 * @see #getCall()
1866 * @generated 3311 * @generated
1867 */ 3312 */
1868 EReference getPredicate_Bodies(); 3313 EAttribute getCall_ReflexiveTransitiveClosure();
1869 3314
1870 /** 3315 /**
1871 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter <em>Parameter</em>}'. 3316 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ArgumentList <em>Argument List</em>}'.
1872 * <!-- begin-user-doc --> 3317 * <!-- begin-user-doc -->
1873 * <!-- end-user-doc --> 3318 * <!-- end-user-doc -->
1874 * @return the meta object for class '<em>Parameter</em>'. 3319 * @return the meta object for class '<em>Argument List</em>'.
1875 * @see org.eclipse.viatra.solver.language.solverLanguage.Parameter 3320 * @see org.eclipse.viatra.solver.language.solverLanguage.ArgumentList
1876 * @generated 3321 * @generated
1877 */ 3322 */
1878 EClass getParameter(); 3323 EClass getArgumentList();
1879 3324
1880 /** 3325 /**
1881 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getVariable <em>Variable</em>}'. 3326 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.ArgumentList#getArguments <em>Arguments</em>}'.
1882 * <!-- begin-user-doc --> 3327 * <!-- begin-user-doc -->
1883 * <!-- end-user-doc --> 3328 * <!-- end-user-doc -->
1884 * @return the meta object for the containment reference '<em>Variable</em>'. 3329 * @return the meta object for the containment reference list '<em>Arguments</em>'.
1885 * @see org.eclipse.viatra.solver.language.solverLanguage.Parameter#getVariable() 3330 * @see org.eclipse.viatra.solver.language.solverLanguage.ArgumentList#getArguments()
1886 * @see #getParameter() 3331 * @see #getArgumentList()
1887 * @generated 3332 * @generated
1888 */ 3333 */
1889 EReference getParameter_Variable(); 3334 EReference getArgumentList_Arguments();
1890 3335
1891 /** 3336 /**
1892 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getType <em>Type</em>}'. 3337 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Argument <em>Argument</em>}'.
1893 * <!-- begin-user-doc --> 3338 * <!-- begin-user-doc -->
1894 * <!-- end-user-doc --> 3339 * <!-- end-user-doc -->
1895 * @return the meta object for the containment reference '<em>Type</em>'. 3340 * @return the meta object for class '<em>Argument</em>'.
1896 * @see org.eclipse.viatra.solver.language.solverLanguage.Parameter#getType() 3341 * @see org.eclipse.viatra.solver.language.solverLanguage.Argument
1897 * @see #getParameter()
1898 * @generated 3342 * @generated
1899 */ 3343 */
1900 EReference getParameter_Type(); 3344 EClass getArgument();
1901 3345
1902 /** 3346 /**
1903 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody <em>Pattern Body</em>}'. 3347 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument <em>Expression Argument</em>}'.
1904 * <!-- begin-user-doc --> 3348 * <!-- begin-user-doc -->
1905 * <!-- end-user-doc --> 3349 * <!-- end-user-doc -->
1906 * @return the meta object for class '<em>Pattern Body</em>'. 3350 * @return the meta object for class '<em>Expression Argument</em>'.
1907 * @see org.eclipse.viatra.solver.language.solverLanguage.PatternBody 3351 * @see org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument
1908 * @generated 3352 * @generated
1909 */ 3353 */
1910 EClass getPatternBody(); 3354 EClass getExpressionArgument();
1911 3355
1912 /** 3356 /**
1913 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody#getConstraints <em>Constraints</em>}'. 3357 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument#getBody <em>Body</em>}'.
1914 * <!-- begin-user-doc --> 3358 * <!-- begin-user-doc -->
1915 * <!-- end-user-doc --> 3359 * <!-- end-user-doc -->
1916 * @return the meta object for the containment reference list '<em>Constraints</em>'. 3360 * @return the meta object for the containment reference '<em>Body</em>'.
1917 * @see org.eclipse.viatra.solver.language.solverLanguage.PatternBody#getConstraints() 3361 * @see org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument#getBody()
1918 * @see #getPatternBody() 3362 * @see #getExpressionArgument()
1919 * @generated 3363 * @generated
1920 */ 3364 */
1921 EReference getPatternBody_Constraints(); 3365 EReference getExpressionArgument_Body();
1922 3366
1923 /** 3367 /**
1924 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Polarity <em>Polarity</em>}'. 3368 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.StarArgument <em>Star Argument</em>}'.
1925 * <!-- begin-user-doc --> 3369 * <!-- begin-user-doc -->
1926 * <!-- end-user-doc --> 3370 * <!-- end-user-doc -->
1927 * @return the meta object for class '<em>Polarity</em>'. 3371 * @return the meta object for class '<em>Star Argument</em>'.
1928 * @see org.eclipse.viatra.solver.language.solverLanguage.Polarity 3372 * @see org.eclipse.viatra.solver.language.solverLanguage.StarArgument
1929 * @generated 3373 * @generated
1930 */ 3374 */
1931 EClass getPolarity(); 3375 EClass getStarArgument();
1932 3376
1933 /** 3377 /**
1934 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint <em>Constraint</em>}'. 3378 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument <em>Typed Argument</em>}'.
1935 * <!-- begin-user-doc --> 3379 * <!-- begin-user-doc -->
1936 * <!-- end-user-doc --> 3380 * <!-- end-user-doc -->
1937 * @return the meta object for class '<em>Constraint</em>'. 3381 * @return the meta object for class '<em>Typed Argument</em>'.
1938 * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint 3382 * @see org.eclipse.viatra.solver.language.solverLanguage.TypedArgument
1939 * @generated 3383 * @generated
1940 */ 3384 */
1941 EClass getConstraint(); 3385 EClass getTypedArgument();
1942 3386
1943 /** 3387 /**
1944 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getPolarity <em>Polarity</em>}'. 3388 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getType <em>Type</em>}'.
1945 * <!-- begin-user-doc --> 3389 * <!-- begin-user-doc -->
1946 * <!-- end-user-doc --> 3390 * <!-- end-user-doc -->
1947 * @return the meta object for the containment reference '<em>Polarity</em>'. 3391 * @return the meta object for the reference '<em>Type</em>'.
1948 * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint#getPolarity() 3392 * @see org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getType()
1949 * @see #getConstraint() 3393 * @see #getTypedArgument()
1950 * @generated 3394 * @generated
1951 */ 3395 */
1952 EReference getConstraint_Polarity(); 3396 EReference getTypedArgument_Type();
1953 3397
1954 /** 3398 /**
1955 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getSymbol <em>Symbol</em>}'. 3399 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getVariable <em>Variable</em>}'.
1956 * <!-- begin-user-doc --> 3400 * <!-- begin-user-doc -->
1957 * <!-- end-user-doc --> 3401 * <!-- end-user-doc -->
1958 * @return the meta object for the containment reference '<em>Symbol</em>'. 3402 * @return the meta object for the reference '<em>Variable</em>'.
1959 * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint#getSymbol() 3403 * @see org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getVariable()
1960 * @see #getConstraint() 3404 * @see #getTypedArgument()
1961 * @generated 3405 * @generated
1962 */ 3406 */
1963 EReference getConstraint_Symbol(); 3407 EReference getTypedArgument_Variable();
1964 3408
1965 /** 3409 /**
1966 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getParams <em>Params</em>}'. 3410 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument <em>Typed Star Argument</em>}'.
1967 * <!-- begin-user-doc --> 3411 * <!-- begin-user-doc -->
1968 * <!-- end-user-doc --> 3412 * <!-- end-user-doc -->
1969 * @return the meta object for the containment reference list '<em>Params</em>'. 3413 * @return the meta object for class '<em>Typed Star Argument</em>'.
1970 * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint#getParams() 3414 * @see org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument
1971 * @see #getConstraint()
1972 * @generated 3415 * @generated
1973 */ 3416 */
1974 EReference getConstraint_Params(); 3417 EClass getTypedStarArgument();
1975 3418
1976 /** 3419 /**
1977 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getClosureType <em>Closure Type</em>}'. 3420 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument#getType <em>Type</em>}'.
1978 * <!-- begin-user-doc --> 3421 * <!-- begin-user-doc -->
1979 * <!-- end-user-doc --> 3422 * <!-- end-user-doc -->
1980 * @return the meta object for the containment reference '<em>Closure Type</em>'. 3423 * @return the meta object for the reference '<em>Type</em>'.
1981 * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint#getClosureType() 3424 * @see org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument#getType()
1982 * @see #getConstraint() 3425 * @see #getTypedStarArgument()
1983 * @generated 3426 * @generated
1984 */ 3427 */
1985 EReference getConstraint_ClosureType(); 3428 EReference getTypedStarArgument_Type();
1986 3429
1987 /** 3430 /**
1988 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ClosureType <em>Closure Type</em>}'. 3431 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Reference <em>Reference</em>}'.
1989 * <!-- begin-user-doc --> 3432 * <!-- begin-user-doc -->
1990 * <!-- end-user-doc --> 3433 * <!-- end-user-doc -->
1991 * @return the meta object for class '<em>Closure Type</em>'. 3434 * @return the meta object for class '<em>Reference</em>'.
1992 * @see org.eclipse.viatra.solver.language.solverLanguage.ClosureType 3435 * @see org.eclipse.viatra.solver.language.solverLanguage.Reference
1993 * @generated 3436 * @generated
1994 */ 3437 */
1995 EClass getClosureType(); 3438 EClass getReference();
3439
3440 /**
3441 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Reference#getReferred <em>Referred</em>}'.
3442 * <!-- begin-user-doc -->
3443 * <!-- end-user-doc -->
3444 * @return the meta object for the reference '<em>Referred</em>'.
3445 * @see org.eclipse.viatra.solver.language.solverLanguage.Reference#getReferred()
3446 * @see #getReference()
3447 * @generated
3448 */
3449 EReference getReference_Referred();
3450
3451 /**
3452 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval <em>Interval</em>}'.
3453 * <!-- begin-user-doc -->
3454 * <!-- end-user-doc -->
3455 * @return the meta object for class '<em>Interval</em>'.
3456 * @see org.eclipse.viatra.solver.language.solverLanguage.Interval
3457 * @generated
3458 */
3459 EClass getInterval();
3460
3461 /**
3462 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getLowerBound <em>Lower Bound</em>}'.
3463 * <!-- begin-user-doc -->
3464 * <!-- end-user-doc -->
3465 * @return the meta object for the containment reference '<em>Lower Bound</em>'.
3466 * @see org.eclipse.viatra.solver.language.solverLanguage.Interval#getLowerBound()
3467 * @see #getInterval()
3468 * @generated
3469 */
3470 EReference getInterval_LowerBound();
3471
3472 /**
3473 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getUpperBound <em>Upper Bound</em>}'.
3474 * <!-- begin-user-doc -->
3475 * <!-- end-user-doc -->
3476 * @return the meta object for the containment reference '<em>Upper Bound</em>'.
3477 * @see org.eclipse.viatra.solver.language.solverLanguage.Interval#getUpperBound()
3478 * @see #getInterval()
3479 * @generated
3480 */
3481 EReference getInterval_UpperBound();
1996 3482
1997 /** 3483 /**
1998 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Literal <em>Literal</em>}'. 3484 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Literal <em>Literal</em>}'.
@@ -2005,446 +3491,646 @@ public interface SolverLanguagePackage extends EPackage
2005 EClass getLiteral(); 3491 EClass getLiteral();
2006 3492
2007 /** 3493 /**
2008 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Variable <em>Variable</em>}'. 3494 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral <em>Logic Literal</em>}'.
2009 * <!-- begin-user-doc --> 3495 * <!-- begin-user-doc -->
2010 * <!-- end-user-doc --> 3496 * <!-- end-user-doc -->
2011 * @return the meta object for class '<em>Variable</em>'. 3497 * @return the meta object for class '<em>Logic Literal</em>'.
2012 * @see org.eclipse.viatra.solver.language.solverLanguage.Variable 3498 * @see org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral
2013 * @generated 3499 * @generated
2014 */ 3500 */
2015 EClass getVariable(); 3501 EClass getLogicLiteral();
2016 3502
2017 /** 3503 /**
2018 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Variable#getName <em>Name</em>}'. 3504 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral#getValue <em>Value</em>}'.
3505 * <!-- begin-user-doc -->
3506 * <!-- end-user-doc -->
3507 * @return the meta object for the attribute '<em>Value</em>'.
3508 * @see org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral#getValue()
3509 * @see #getLogicLiteral()
3510 * @generated
3511 */
3512 EAttribute getLogicLiteral_Value();
3513
3514 /**
3515 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral <em>Numeric Literal</em>}'.
3516 * <!-- begin-user-doc -->
3517 * <!-- end-user-doc -->
3518 * @return the meta object for class '<em>Numeric Literal</em>'.
3519 * @see org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral
3520 * @generated
3521 */
3522 EClass getNumericLiteral();
3523
3524 /**
3525 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral#getValue <em>Value</em>}'.
3526 * <!-- begin-user-doc -->
3527 * <!-- end-user-doc -->
3528 * @return the meta object for the attribute '<em>Value</em>'.
3529 * @see org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral#getValue()
3530 * @see #getNumericLiteral()
3531 * @generated
3532 */
3533 EAttribute getNumericLiteral_Value();
3534
3535 /**
3536 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral <em>Infinity Literal</em>}'.
3537 * <!-- begin-user-doc -->
3538 * <!-- end-user-doc -->
3539 * @return the meta object for class '<em>Infinity Literal</em>'.
3540 * @see org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral
3541 * @generated
3542 */
3543 EClass getInfinityLiteral();
3544
3545 /**
3546 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral <em>Empty Interval Literal</em>}'.
3547 * <!-- begin-user-doc -->
3548 * <!-- end-user-doc -->
3549 * @return the meta object for class '<em>Empty Interval Literal</em>'.
3550 * @see org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral
3551 * @generated
3552 */
3553 EClass getEmptyIntervalLiteral();
3554
3555 /**
3556 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral <em>String Literal</em>}'.
3557 * <!-- begin-user-doc -->
3558 * <!-- end-user-doc -->
3559 * @return the meta object for class '<em>String Literal</em>'.
3560 * @see org.eclipse.viatra.solver.language.solverLanguage.StringLiteral
3561 * @generated
3562 */
3563 EClass getStringLiteral();
3564
3565 /**
3566 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral#getValue <em>Value</em>}'.
3567 * <!-- begin-user-doc -->
3568 * <!-- end-user-doc -->
3569 * @return the meta object for the attribute '<em>Value</em>'.
3570 * @see org.eclipse.viatra.solver.language.solverLanguage.StringLiteral#getValue()
3571 * @see #getStringLiteral()
3572 * @generated
3573 */
3574 EAttribute getStringLiteral_Value();
3575
3576 /**
3577 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition <em>Member Definition</em>}'.
3578 * <!-- begin-user-doc -->
3579 * <!-- end-user-doc -->
3580 * @return the meta object for class '<em>Member Definition</em>'.
3581 * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition
3582 * @generated
3583 */
3584 EClass getMemberDefinition();
3585
3586 /**
3587 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#isContainment <em>Containment</em>}'.
3588 * <!-- begin-user-doc -->
3589 * <!-- end-user-doc -->
3590 * @return the meta object for the attribute '<em>Containment</em>'.
3591 * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#isContainment()
3592 * @see #getMemberDefinition()
3593 * @generated
3594 */
3595 EAttribute getMemberDefinition_Containment();
3596
3597 /**
3598 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getType <em>Type</em>}'.
3599 * <!-- begin-user-doc -->
3600 * <!-- end-user-doc -->
3601 * @return the meta object for the reference '<em>Type</em>'.
3602 * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getType()
3603 * @see #getMemberDefinition()
3604 * @generated
3605 */
3606 EReference getMemberDefinition_Type();
3607
3608 /**
3609 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getMultiplicity <em>Multiplicity</em>}'.
3610 * <!-- begin-user-doc -->
3611 * <!-- end-user-doc -->
3612 * @return the meta object for the containment reference '<em>Multiplicity</em>'.
3613 * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getMultiplicity()
3614 * @see #getMemberDefinition()
3615 * @generated
3616 */
3617 EReference getMemberDefinition_Multiplicity();
3618
3619 /**
3620 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getName <em>Name</em>}'.
2019 * <!-- begin-user-doc --> 3621 * <!-- begin-user-doc -->
2020 * <!-- end-user-doc --> 3622 * <!-- end-user-doc -->
2021 * @return the meta object for the attribute '<em>Name</em>'. 3623 * @return the meta object for the attribute '<em>Name</em>'.
2022 * @see org.eclipse.viatra.solver.language.solverLanguage.Variable#getName() 3624 * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getName()
2023 * @see #getVariable() 3625 * @see #getMemberDefinition()
2024 * @generated 3626 * @generated
2025 */ 3627 */
2026 EAttribute getVariable_Name(); 3628 EAttribute getMemberDefinition_Name();
2027 3629
2028 /** 3630 /**
2029 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances <em>All Instances</em>}'. 3631 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getOpposite <em>Opposite</em>}'.
2030 * <!-- begin-user-doc --> 3632 * <!-- begin-user-doc -->
2031 * <!-- end-user-doc --> 3633 * <!-- end-user-doc -->
2032 * @return the meta object for class '<em>All Instances</em>'. 3634 * @return the meta object for the reference '<em>Opposite</em>'.
2033 * @see org.eclipse.viatra.solver.language.solverLanguage.AllInstances 3635 * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getOpposite()
3636 * @see #getMemberDefinition()
2034 * @generated 3637 * @generated
2035 */ 3638 */
2036 EClass getAllInstances(); 3639 EReference getMemberDefinition_Opposite();
2037 3640
2038 /** 3641 /**
2039 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances#getSymbol <em>Symbol</em>}'. 3642 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Multiplicity <em>Multiplicity</em>}'.
2040 * <!-- begin-user-doc --> 3643 * <!-- begin-user-doc -->
2041 * <!-- end-user-doc --> 3644 * <!-- end-user-doc -->
2042 * @return the meta object for the containment reference '<em>Symbol</em>'. 3645 * @return the meta object for class '<em>Multiplicity</em>'.
2043 * @see org.eclipse.viatra.solver.language.solverLanguage.AllInstances#getSymbol() 3646 * @see org.eclipse.viatra.solver.language.solverLanguage.Multiplicity
2044 * @see #getAllInstances()
2045 * @generated 3647 * @generated
2046 */ 3648 */
2047 EReference getAllInstances_Symbol(); 3649 EClass getMultiplicity();
2048 3650
2049 /** 3651 /**
2050 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.AllObjects <em>All Objects</em>}'. 3652 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity <em>Many Multiplicity</em>}'.
2051 * <!-- begin-user-doc --> 3653 * <!-- begin-user-doc -->
2052 * <!-- end-user-doc --> 3654 * <!-- end-user-doc -->
2053 * @return the meta object for class '<em>All Objects</em>'. 3655 * @return the meta object for class '<em>Many Multiplicity</em>'.
2054 * @see org.eclipse.viatra.solver.language.solverLanguage.AllObjects 3656 * @see org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity
2055 * @generated 3657 * @generated
2056 */ 3658 */
2057 EClass getAllObjects(); 3659 EClass getManyMultiplicity();
2058 3660
2059 /** 3661 /**
2060 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation <em>Default Interpretation</em>}'. 3662 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity <em>Exact Multiplicity</em>}'.
2061 * <!-- begin-user-doc --> 3663 * <!-- begin-user-doc -->
2062 * <!-- end-user-doc --> 3664 * <!-- end-user-doc -->
2063 * @return the meta object for class '<em>Default Interpretation</em>'. 3665 * @return the meta object for class '<em>Exact Multiplicity</em>'.
2064 * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation 3666 * @see org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity
2065 * @generated 3667 * @generated
2066 */ 3668 */
2067 EClass getDefaultInterpretation(); 3669 EClass getExactMultiplicity();
2068 3670
2069 /** 3671 /**
2070 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation#getInterpretation <em>Interpretation</em>}'. 3672 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity#getMultiplicity <em>Multiplicity</em>}'.
2071 * <!-- begin-user-doc --> 3673 * <!-- begin-user-doc -->
2072 * <!-- end-user-doc --> 3674 * <!-- end-user-doc -->
2073 * @return the meta object for the containment reference '<em>Interpretation</em>'. 3675 * @return the meta object for the attribute '<em>Multiplicity</em>'.
2074 * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation#getInterpretation() 3676 * @see org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity#getMultiplicity()
2075 * @see #getDefaultInterpretation() 3677 * @see #getExactMultiplicity()
2076 * @generated 3678 * @generated
2077 */ 3679 */
2078 EReference getDefaultInterpretation_Interpretation(); 3680 EAttribute getExactMultiplicity_Multiplicity();
2079 3681
2080 /** 3682 /**
2081 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation <em>CD Interpretation</em>}'. 3683 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity <em>Bounded Multiplicity</em>}'.
2082 * <!-- begin-user-doc --> 3684 * <!-- begin-user-doc -->
2083 * <!-- end-user-doc --> 3685 * <!-- end-user-doc -->
2084 * @return the meta object for class '<em>CD Interpretation</em>'. 3686 * @return the meta object for class '<em>Bounded Multiplicity</em>'.
2085 * @see org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation 3687 * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity
2086 * @generated 3688 * @generated
2087 */ 3689 */
2088 EClass getCDInterpretation(); 3690 EClass getBoundedMultiplicity();
2089 3691
2090 /** 3692 /**
2091 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation <em>Class Interpretation</em>}'. 3693 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getLowerBound <em>Lower Bound</em>}'.
2092 * <!-- begin-user-doc --> 3694 * <!-- begin-user-doc -->
2093 * <!-- end-user-doc --> 3695 * <!-- end-user-doc -->
2094 * @return the meta object for class '<em>Class Interpretation</em>'. 3696 * @return the meta object for the attribute '<em>Lower Bound</em>'.
2095 * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation 3697 * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getLowerBound()
3698 * @see #getBoundedMultiplicity()
2096 * @generated 3699 * @generated
2097 */ 3700 */
2098 EClass getClassInterpretation(); 3701 EAttribute getBoundedMultiplicity_LowerBound();
2099 3702
2100 /** 3703 /**
2101 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#isAbstract <em>Abstract</em>}'. 3704 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getUpperBound <em>Upper Bound</em>}'.
2102 * <!-- begin-user-doc --> 3705 * <!-- begin-user-doc -->
2103 * <!-- end-user-doc --> 3706 * <!-- end-user-doc -->
2104 * @return the meta object for the attribute '<em>Abstract</em>'. 3707 * @return the meta object for the attribute '<em>Upper Bound</em>'.
2105 * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#isAbstract() 3708 * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getUpperBound()
2106 * @see #getClassInterpretation() 3709 * @see #getBoundedMultiplicity()
2107 * @generated 3710 * @generated
2108 */ 3711 */
2109 EAttribute getClassInterpretation_Abstract(); 3712 EAttribute getBoundedMultiplicity_UpperBound();
2110 3713
2111 /** 3714 /**
2112 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSymbol <em>Symbol</em>}'. 3715 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition <em>Scope Definition</em>}'.
2113 * <!-- begin-user-doc --> 3716 * <!-- begin-user-doc -->
2114 * <!-- end-user-doc --> 3717 * <!-- end-user-doc -->
2115 * @return the meta object for the containment reference '<em>Symbol</em>'. 3718 * @return the meta object for class '<em>Scope Definition</em>'.
2116 * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSymbol() 3719 * @see org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition
2117 * @see #getClassInterpretation()
2118 * @generated 3720 * @generated
2119 */ 3721 */
2120 EReference getClassInterpretation_Symbol(); 3722 EClass getScopeDefinition();
2121 3723
2122 /** 3724 /**
2123 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSupertypes <em>Supertypes</em>}'. 3725 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition#getType <em>Type</em>}'.
2124 * <!-- begin-user-doc --> 3726 * <!-- begin-user-doc -->
2125 * <!-- end-user-doc --> 3727 * <!-- end-user-doc -->
2126 * @return the meta object for the containment reference list '<em>Supertypes</em>'. 3728 * @return the meta object for the reference '<em>Type</em>'.
2127 * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSupertypes() 3729 * @see org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition#getType()
2128 * @see #getClassInterpretation() 3730 * @see #getScopeDefinition()
2129 * @generated 3731 * @generated
2130 */ 3732 */
2131 EReference getClassInterpretation_Supertypes(); 3733 EReference getScopeDefinition_Type();
2132 3734
2133 /** 3735 /**
2134 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getFielt <em>Fielt</em>}'. 3736 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition <em>Exact Scope Definition</em>}'.
2135 * <!-- begin-user-doc --> 3737 * <!-- begin-user-doc -->
2136 * <!-- end-user-doc --> 3738 * <!-- end-user-doc -->
2137 * @return the meta object for the containment reference list '<em>Fielt</em>'. 3739 * @return the meta object for class '<em>Exact Scope Definition</em>'.
2138 * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getFielt() 3740 * @see org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition
2139 * @see #getClassInterpretation()
2140 * @generated 3741 * @generated
2141 */ 3742 */
2142 EReference getClassInterpretation_Fielt(); 3743 EClass getExactScopeDefinition();
2143 3744
2144 /** 3745 /**
2145 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation <em>Enum Interpretation</em>}'. 3746 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition#getExactScope <em>Exact Scope</em>}'.
2146 * <!-- begin-user-doc --> 3747 * <!-- begin-user-doc -->
2147 * <!-- end-user-doc --> 3748 * <!-- end-user-doc -->
2148 * @return the meta object for class '<em>Enum Interpretation</em>'. 3749 * @return the meta object for the attribute '<em>Exact Scope</em>'.
2149 * @see org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation 3750 * @see org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition#getExactScope()
3751 * @see #getExactScopeDefinition()
2150 * @generated 3752 * @generated
2151 */ 3753 */
2152 EClass getEnumInterpretation(); 3754 EAttribute getExactScopeDefinition_ExactScope();
2153 3755
2154 /** 3756 /**
2155 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getSymbol <em>Symbol</em>}'. 3757 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition <em>Bounded Scope Definition</em>}'.
2156 * <!-- begin-user-doc --> 3758 * <!-- begin-user-doc -->
2157 * <!-- end-user-doc --> 3759 * <!-- end-user-doc -->
2158 * @return the meta object for the containment reference '<em>Symbol</em>'. 3760 * @return the meta object for class '<em>Bounded Scope Definition</em>'.
2159 * @see org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getSymbol() 3761 * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition
2160 * @see #getEnumInterpretation()
2161 * @generated 3762 * @generated
2162 */ 3763 */
2163 EReference getEnumInterpretation_Symbol(); 3764 EClass getBoundedScopeDefinition();
2164 3765
2165 /** 3766 /**
2166 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getObjects <em>Objects</em>}'. 3767 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getLowerBound <em>Lower Bound</em>}'.
2167 * <!-- begin-user-doc --> 3768 * <!-- begin-user-doc -->
2168 * <!-- end-user-doc --> 3769 * <!-- end-user-doc -->
2169 * @return the meta object for the containment reference list '<em>Objects</em>'. 3770 * @return the meta object for the attribute '<em>Lower Bound</em>'.
2170 * @see org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getObjects() 3771 * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getLowerBound()
2171 * @see #getEnumInterpretation() 3772 * @see #getBoundedScopeDefinition()
2172 * @generated 3773 * @generated
2173 */ 3774 */
2174 EReference getEnumInterpretation_Objects(); 3775 EAttribute getBoundedScopeDefinition_LowerBound();
2175 3776
2176 /** 3777 /**
2177 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation <em>Field Relation Interpretation</em>}'. 3778 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getUpperBound <em>Upper Bound</em>}'.
2178 * <!-- begin-user-doc --> 3779 * <!-- begin-user-doc -->
2179 * <!-- end-user-doc --> 3780 * <!-- end-user-doc -->
2180 * @return the meta object for class '<em>Field Relation Interpretation</em>'. 3781 * @return the meta object for the attribute '<em>Upper Bound</em>'.
2181 * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation 3782 * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getUpperBound()
3783 * @see #getBoundedScopeDefinition()
2182 * @generated 3784 * @generated
2183 */ 3785 */
2184 EClass getFieldRelationInterpretation(); 3786 EAttribute getBoundedScopeDefinition_UpperBound();
2185 3787
2186 /** 3788 /**
2187 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#isContainment <em>Containment</em>}'. 3789 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition <em>Lower Bounded Scope Definition</em>}'.
2188 * <!-- begin-user-doc --> 3790 * <!-- begin-user-doc -->
2189 * <!-- end-user-doc --> 3791 * <!-- end-user-doc -->
2190 * @return the meta object for the attribute '<em>Containment</em>'. 3792 * @return the meta object for class '<em>Lower Bounded Scope Definition</em>'.
2191 * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#isContainment() 3793 * @see org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition
2192 * @see #getFieldRelationInterpretation()
2193 * @generated 3794 * @generated
2194 */ 3795 */
2195 EAttribute getFieldRelationInterpretation_Containment(); 3796 EClass getLowerBoundedScopeDefinition();
2196 3797
2197 /** 3798 /**
2198 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getSymbol <em>Symbol</em>}'. 3799 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition#getLowerBound <em>Lower Bound</em>}'.
2199 * <!-- begin-user-doc --> 3800 * <!-- begin-user-doc -->
2200 * <!-- end-user-doc --> 3801 * <!-- end-user-doc -->
2201 * @return the meta object for the containment reference '<em>Symbol</em>'. 3802 * @return the meta object for the attribute '<em>Lower Bound</em>'.
2202 * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getSymbol() 3803 * @see org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition#getLowerBound()
2203 * @see #getFieldRelationInterpretation() 3804 * @see #getLowerBoundedScopeDefinition()
2204 * @generated 3805 * @generated
2205 */ 3806 */
2206 EReference getFieldRelationInterpretation_Symbol(); 3807 EAttribute getLowerBoundedScopeDefinition_LowerBound();
2207 3808
2208 /** 3809 /**
2209 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getMultiplicity <em>Multiplicity</em>}'. 3810 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition <em>Objective Definition</em>}'.
2210 * <!-- begin-user-doc --> 3811 * <!-- begin-user-doc -->
2211 * <!-- end-user-doc --> 3812 * <!-- end-user-doc -->
2212 * @return the meta object for the containment reference '<em>Multiplicity</em>'. 3813 * @return the meta object for class '<em>Objective Definition</em>'.
2213 * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getMultiplicity() 3814 * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition
2214 * @see #getFieldRelationInterpretation()
2215 * @generated 3815 * @generated
2216 */ 3816 */
2217 EReference getFieldRelationInterpretation_Multiplicity(); 3817 EClass getObjectiveDefinition();
2218 3818
2219 /** 3819 /**
2220 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getTarget <em>Target</em>}'. 3820 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getKind <em>Kind</em>}'.
2221 * <!-- begin-user-doc --> 3821 * <!-- begin-user-doc -->
2222 * <!-- end-user-doc --> 3822 * <!-- end-user-doc -->
2223 * @return the meta object for the containment reference '<em>Target</em>'. 3823 * @return the meta object for the attribute '<em>Kind</em>'.
2224 * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getTarget() 3824 * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getKind()
2225 * @see #getFieldRelationInterpretation() 3825 * @see #getObjectiveDefinition()
2226 * @generated 3826 * @generated
2227 */ 3827 */
2228 EReference getFieldRelationInterpretation_Target(); 3828 EAttribute getObjectiveDefinition_Kind();
2229 3829
2230 /** 3830 /**
2231 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation <em>Global Relation Interpretation</em>}'. 3831 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getObjective <em>Objective</em>}'.
2232 * <!-- begin-user-doc --> 3832 * <!-- begin-user-doc -->
2233 * <!-- end-user-doc --> 3833 * <!-- end-user-doc -->
2234 * @return the meta object for class '<em>Global Relation Interpretation</em>'. 3834 * @return the meta object for the containment reference '<em>Objective</em>'.
2235 * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation 3835 * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getObjective()
3836 * @see #getObjectiveDefinition()
2236 * @generated 3837 * @generated
2237 */ 3838 */
2238 EClass getGlobalRelationInterpretation(); 3839 EReference getObjectiveDefinition_Objective();
2239 3840
2240 /** 3841 /**
2241 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#isContainment <em>Containment</em>}'. 3842 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement <em>Named Element</em>}'.
2242 * <!-- begin-user-doc --> 3843 * <!-- begin-user-doc -->
2243 * <!-- end-user-doc --> 3844 * <!-- end-user-doc -->
2244 * @return the meta object for the attribute '<em>Containment</em>'. 3845 * @return the meta object for class '<em>Named Element</em>'.
2245 * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#isContainment() 3846 * @see org.eclipse.viatra.solver.language.solverLanguage.NamedElement
2246 * @see #getGlobalRelationInterpretation() 3847 * @generated
3848 */
3849 EClass getNamedElement();
3850
3851 /**
3852 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement#getName <em>Name</em>}'.
3853 * <!-- begin-user-doc -->
3854 * <!-- end-user-doc -->
3855 * @return the meta object for the attribute '<em>Name</em>'.
3856 * @see org.eclipse.viatra.solver.language.solverLanguage.NamedElement#getName()
3857 * @see #getNamedElement()
3858 * @generated
3859 */
3860 EAttribute getNamedElement_Name();
3861
3862 /**
3863 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion <em>Assertion</em>}'.
3864 * <!-- begin-user-doc -->
3865 * <!-- end-user-doc -->
3866 * @return the meta object for class '<em>Assertion</em>'.
3867 * @see org.eclipse.viatra.solver.language.solverLanguage.Assertion
3868 * @generated
3869 */
3870 EClass getAssertion();
3871
3872 /**
3873 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getBody <em>Body</em>}'.
3874 * <!-- begin-user-doc -->
3875 * <!-- end-user-doc -->
3876 * @return the meta object for the containment reference '<em>Body</em>'.
3877 * @see org.eclipse.viatra.solver.language.solverLanguage.Assertion#getBody()
3878 * @see #getAssertion()
3879 * @generated
3880 */
3881 EReference getAssertion_Body();
3882
3883 /**
3884 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getRange <em>Range</em>}'.
3885 * <!-- begin-user-doc -->
3886 * <!-- end-user-doc -->
3887 * @return the meta object for the containment reference '<em>Range</em>'.
3888 * @see org.eclipse.viatra.solver.language.solverLanguage.Assertion#getRange()
3889 * @see #getAssertion()
3890 * @generated
3891 */
3892 EReference getAssertion_Range();
3893
3894 /**
3895 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Disjunction <em>Disjunction</em>}'.
3896 * <!-- begin-user-doc -->
3897 * <!-- end-user-doc -->
3898 * @return the meta object for class '<em>Disjunction</em>'.
3899 * @see org.eclipse.viatra.solver.language.solverLanguage.Disjunction
3900 * @generated
3901 */
3902 EClass getDisjunction();
3903
3904 /**
3905 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Disjunction#getChildren <em>Children</em>}'.
3906 * <!-- begin-user-doc -->
3907 * <!-- end-user-doc -->
3908 * @return the meta object for the containment reference list '<em>Children</em>'.
3909 * @see org.eclipse.viatra.solver.language.solverLanguage.Disjunction#getChildren()
3910 * @see #getDisjunction()
3911 * @generated
3912 */
3913 EReference getDisjunction_Children();
3914
3915 /**
3916 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Switch <em>Switch</em>}'.
3917 * <!-- begin-user-doc -->
3918 * <!-- end-user-doc -->
3919 * @return the meta object for class '<em>Switch</em>'.
3920 * @see org.eclipse.viatra.solver.language.solverLanguage.Switch
3921 * @generated
3922 */
3923 EClass getSwitch();
3924
3925 /**
3926 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Switch#getCases <em>Cases</em>}'.
3927 * <!-- begin-user-doc -->
3928 * <!-- end-user-doc -->
3929 * @return the meta object for the containment reference list '<em>Cases</em>'.
3930 * @see org.eclipse.viatra.solver.language.solverLanguage.Switch#getCases()
3931 * @see #getSwitch()
2247 * @generated 3932 * @generated
2248 */ 3933 */
2249 EAttribute getGlobalRelationInterpretation_Containment(); 3934 EReference getSwitch_Cases();
2250 3935
2251 /** 3936 /**
2252 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSymbol <em>Symbol</em>}'. 3937 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Conjunction <em>Conjunction</em>}'.
2253 * <!-- begin-user-doc --> 3938 * <!-- begin-user-doc -->
2254 * <!-- end-user-doc --> 3939 * <!-- end-user-doc -->
2255 * @return the meta object for the containment reference '<em>Symbol</em>'. 3940 * @return the meta object for class '<em>Conjunction</em>'.
2256 * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSymbol() 3941 * @see org.eclipse.viatra.solver.language.solverLanguage.Conjunction
2257 * @see #getGlobalRelationInterpretation()
2258 * @generated 3942 * @generated
2259 */ 3943 */
2260 EReference getGlobalRelationInterpretation_Symbol(); 3944 EClass getConjunction();
2261 3945
2262 /** 3946 /**
2263 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSourceMultiplicity <em>Source Multiplicity</em>}'. 3947 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Conjunction#getChildren <em>Children</em>}'.
2264 * <!-- begin-user-doc --> 3948 * <!-- begin-user-doc -->
2265 * <!-- end-user-doc --> 3949 * <!-- end-user-doc -->
2266 * @return the meta object for the containment reference '<em>Source Multiplicity</em>'. 3950 * @return the meta object for the containment reference list '<em>Children</em>'.
2267 * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSourceMultiplicity() 3951 * @see org.eclipse.viatra.solver.language.solverLanguage.Conjunction#getChildren()
2268 * @see #getGlobalRelationInterpretation() 3952 * @see #getConjunction()
2269 * @generated 3953 * @generated
2270 */ 3954 */
2271 EReference getGlobalRelationInterpretation_SourceMultiplicity(); 3955 EReference getConjunction_Children();
2272 3956
2273 /** 3957 /**
2274 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSource <em>Source</em>}'. 3958 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison <em>Comparison</em>}'.
2275 * <!-- begin-user-doc --> 3959 * <!-- begin-user-doc -->
2276 * <!-- end-user-doc --> 3960 * <!-- end-user-doc -->
2277 * @return the meta object for the containment reference '<em>Source</em>'. 3961 * @return the meta object for class '<em>Comparison</em>'.
2278 * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSource() 3962 * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison
2279 * @see #getGlobalRelationInterpretation()
2280 * @generated 3963 * @generated
2281 */ 3964 */
2282 EReference getGlobalRelationInterpretation_Source(); 3965 EClass getComparison();
2283 3966
2284 /** 3967 /**
2285 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTargetMultiplicity <em>Target Multiplicity</em>}'. 3968 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getLeft <em>Left</em>}'.
2286 * <!-- begin-user-doc --> 3969 * <!-- begin-user-doc -->
2287 * <!-- end-user-doc --> 3970 * <!-- end-user-doc -->
2288 * @return the meta object for the containment reference '<em>Target Multiplicity</em>'. 3971 * @return the meta object for the containment reference '<em>Left</em>'.
2289 * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTargetMultiplicity() 3972 * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison#getLeft()
2290 * @see #getGlobalRelationInterpretation() 3973 * @see #getComparison()
2291 * @generated 3974 * @generated
2292 */ 3975 */
2293 EReference getGlobalRelationInterpretation_TargetMultiplicity(); 3976 EReference getComparison_Left();
2294 3977
2295 /** 3978 /**
2296 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTarget <em>Target</em>}'. 3979 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getOp <em>Op</em>}'.
2297 * <!-- begin-user-doc --> 3980 * <!-- begin-user-doc -->
2298 * <!-- end-user-doc --> 3981 * <!-- end-user-doc -->
2299 * @return the meta object for the containment reference '<em>Target</em>'. 3982 * @return the meta object for the attribute '<em>Op</em>'.
2300 * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTarget() 3983 * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison#getOp()
2301 * @see #getGlobalRelationInterpretation() 3984 * @see #getComparison()
2302 * @generated 3985 * @generated
2303 */ 3986 */
2304 EReference getGlobalRelationInterpretation_Target(); 3987 EAttribute getComparison_Op();
2305 3988
2306 /** 3989 /**
2307 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition <em>Multiplicity Definition</em>}'. 3990 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getRight <em>Right</em>}'.
2308 * <!-- begin-user-doc --> 3991 * <!-- begin-user-doc -->
2309 * <!-- end-user-doc --> 3992 * <!-- end-user-doc -->
2310 * @return the meta object for class '<em>Multiplicity Definition</em>'. 3993 * @return the meta object for the containment reference '<em>Right</em>'.
2311 * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition 3994 * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison#getRight()
3995 * @see #getComparison()
2312 * @generated 3996 * @generated
2313 */ 3997 */
2314 EClass getMultiplicityDefinition(); 3998 EReference getComparison_Right();
2315 3999
2316 /** 4000 /**
2317 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getLower <em>Lower</em>}'. 4001 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression <em>Binary Expression</em>}'.
2318 * <!-- begin-user-doc --> 4002 * <!-- begin-user-doc -->
2319 * <!-- end-user-doc --> 4003 * <!-- end-user-doc -->
2320 * @return the meta object for the attribute '<em>Lower</em>'. 4004 * @return the meta object for class '<em>Binary Expression</em>'.
2321 * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getLower() 4005 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression
2322 * @see #getMultiplicityDefinition()
2323 * @generated 4006 * @generated
2324 */ 4007 */
2325 EAttribute getMultiplicityDefinition_Lower(); 4008 EClass getBinaryExpression();
2326 4009
2327 /** 4010 /**
2328 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getUpper <em>Upper</em>}'. 4011 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getLeft <em>Left</em>}'.
2329 * <!-- begin-user-doc --> 4012 * <!-- begin-user-doc -->
2330 * <!-- end-user-doc --> 4013 * <!-- end-user-doc -->
2331 * @return the meta object for the attribute '<em>Upper</em>'. 4014 * @return the meta object for the containment reference '<em>Left</em>'.
2332 * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getUpper() 4015 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getLeft()
2333 * @see #getMultiplicityDefinition() 4016 * @see #getBinaryExpression()
2334 * @generated 4017 * @generated
2335 */ 4018 */
2336 EAttribute getMultiplicityDefinition_Upper(); 4019 EReference getBinaryExpression_Left();
2337 4020
2338 /** 4021 /**
2339 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#isUnlimitedUpper <em>Unlimited Upper</em>}'. 4022 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getOp <em>Op</em>}'.
2340 * <!-- begin-user-doc --> 4023 * <!-- begin-user-doc -->
2341 * <!-- end-user-doc --> 4024 * <!-- end-user-doc -->
2342 * @return the meta object for the attribute '<em>Unlimited Upper</em>'. 4025 * @return the meta object for the attribute '<em>Op</em>'.
2343 * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#isUnlimitedUpper() 4026 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getOp()
2344 * @see #getMultiplicityDefinition() 4027 * @see #getBinaryExpression()
2345 * @generated 4028 * @generated
2346 */ 4029 */
2347 EAttribute getMultiplicityDefinition_UnlimitedUpper(); 4030 EAttribute getBinaryExpression_Op();
2348 4031
2349 /** 4032 /**
2350 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue <em>Boolean True</em>}'. 4033 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getRight <em>Right</em>}'.
2351 * <!-- begin-user-doc --> 4034 * <!-- begin-user-doc -->
2352 * <!-- end-user-doc --> 4035 * <!-- end-user-doc -->
2353 * @return the meta object for class '<em>Boolean True</em>'. 4036 * @return the meta object for the containment reference '<em>Right</em>'.
2354 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue 4037 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getRight()
4038 * @see #getBinaryExpression()
2355 * @generated 4039 * @generated
2356 */ 4040 */
2357 EClass getBooleanTrue(); 4041 EReference getBinaryExpression_Right();
2358 4042
2359 /** 4043 /**
2360 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse <em>Boolean False</em>}'. 4044 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression <em>Unary Expression</em>}'.
2361 * <!-- begin-user-doc --> 4045 * <!-- begin-user-doc -->
2362 * <!-- end-user-doc --> 4046 * <!-- end-user-doc -->
2363 * @return the meta object for class '<em>Boolean False</em>'. 4047 * @return the meta object for class '<em>Unary Expression</em>'.
2364 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse 4048 * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression
2365 * @generated 4049 * @generated
2366 */ 4050 */
2367 EClass getBooleanFalse(); 4051 EClass getUnaryExpression();
2368 4052
2369 /** 4053 /**
2370 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.True <em>True</em>}'. 4054 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getOp <em>Op</em>}'.
2371 * <!-- begin-user-doc --> 4055 * <!-- begin-user-doc -->
2372 * <!-- end-user-doc --> 4056 * <!-- end-user-doc -->
2373 * @return the meta object for class '<em>True</em>'. 4057 * @return the meta object for the attribute '<em>Op</em>'.
2374 * @see org.eclipse.viatra.solver.language.solverLanguage.True 4058 * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getOp()
4059 * @see #getUnaryExpression()
2375 * @generated 4060 * @generated
2376 */ 4061 */
2377 EClass getTrue(); 4062 EAttribute getUnaryExpression_Op();
2378 4063
2379 /** 4064 /**
2380 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.False <em>False</em>}'. 4065 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getBody <em>Body</em>}'.
2381 * <!-- begin-user-doc --> 4066 * <!-- begin-user-doc -->
2382 * <!-- end-user-doc --> 4067 * <!-- end-user-doc -->
2383 * @return the meta object for class '<em>False</em>'. 4068 * @return the meta object for the containment reference '<em>Body</em>'.
2384 * @see org.eclipse.viatra.solver.language.solverLanguage.False 4069 * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getBody()
4070 * @see #getUnaryExpression()
2385 * @generated 4071 * @generated
2386 */ 4072 */
2387 EClass getFalse(); 4073 EReference getUnaryExpression_Body();
2388 4074
2389 /** 4075 /**
2390 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Unknown <em>Unknown</em>}'. 4076 * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricType <em>Metric Type</em>}'.
2391 * <!-- begin-user-doc --> 4077 * <!-- begin-user-doc -->
2392 * <!-- end-user-doc --> 4078 * <!-- end-user-doc -->
2393 * @return the meta object for class '<em>Unknown</em>'. 4079 * @return the meta object for enum '<em>Metric Type</em>'.
2394 * @see org.eclipse.viatra.solver.language.solverLanguage.Unknown 4080 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType
2395 * @generated 4081 * @generated
2396 */ 4082 */
2397 EClass getUnknown(); 4083 EEnum getMetricType();
2398 4084
2399 /** 4085 /**
2400 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Error <em>Error</em>}'. 4086 * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator <em>Binary Operator</em>}'.
2401 * <!-- begin-user-doc --> 4087 * <!-- begin-user-doc -->
2402 * <!-- end-user-doc --> 4088 * <!-- end-user-doc -->
2403 * @return the meta object for class '<em>Error</em>'. 4089 * @return the meta object for enum '<em>Binary Operator</em>'.
2404 * @see org.eclipse.viatra.solver.language.solverLanguage.Error 4090 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator
2405 * @generated 4091 * @generated
2406 */ 4092 */
2407 EClass getError(); 4093 EEnum getBinaryOperator();
2408 4094
2409 /** 4095 /**
2410 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Positive <em>Positive</em>}'. 4096 * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryOp <em>Unary Op</em>}'.
2411 * <!-- begin-user-doc --> 4097 * <!-- begin-user-doc -->
2412 * <!-- end-user-doc --> 4098 * <!-- end-user-doc -->
2413 * @return the meta object for class '<em>Positive</em>'. 4099 * @return the meta object for enum '<em>Unary Op</em>'.
2414 * @see org.eclipse.viatra.solver.language.solverLanguage.Positive 4100 * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp
2415 * @generated 4101 * @generated
2416 */ 4102 */
2417 EClass getPositive(); 4103 EEnum getUnaryOp();
2418 4104
2419 /** 4105 /**
2420 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Negative <em>Negative</em>}'. 4106 * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.AggregationOp <em>Aggregation Op</em>}'.
2421 * <!-- begin-user-doc --> 4107 * <!-- begin-user-doc -->
2422 * <!-- end-user-doc --> 4108 * <!-- end-user-doc -->
2423 * @return the meta object for class '<em>Negative</em>'. 4109 * @return the meta object for enum '<em>Aggregation Op</em>'.
2424 * @see org.eclipse.viatra.solver.language.solverLanguage.Negative 4110 * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp
2425 * @generated 4111 * @generated
2426 */ 4112 */
2427 EClass getNegative(); 4113 EEnum getAggregationOp();
2428 4114
2429 /** 4115 /**
2430 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure <em>Reflexive Closure</em>}'. 4116 * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicValue <em>Logic Value</em>}'.
2431 * <!-- begin-user-doc --> 4117 * <!-- begin-user-doc -->
2432 * <!-- end-user-doc --> 4118 * <!-- end-user-doc -->
2433 * @return the meta object for class '<em>Reflexive Closure</em>'. 4119 * @return the meta object for enum '<em>Logic Value</em>'.
2434 * @see org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure 4120 * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue
2435 * @generated 4121 * @generated
2436 */ 4122 */
2437 EClass getReflexiveClosure(); 4123 EEnum getLogicValue();
2438 4124
2439 /** 4125 /**
2440 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure <em>Irreflexive Closure</em>}'. 4126 * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind <em>Objective Kind</em>}'.
2441 * <!-- begin-user-doc --> 4127 * <!-- begin-user-doc -->
2442 * <!-- end-user-doc --> 4128 * <!-- end-user-doc -->
2443 * @return the meta object for class '<em>Irreflexive Closure</em>'. 4129 * @return the meta object for enum '<em>Objective Kind</em>'.
2444 * @see org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure 4130 * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind
2445 * @generated 4131 * @generated
2446 */ 4132 */
2447 EClass getIrreflexiveClosure(); 4133 EEnum getObjectiveKind();
2448 4134
2449 /** 4135 /**
2450 * Returns the factory that creates the instances of the model. 4136 * Returns the factory that creates the instances of the model.
@@ -2498,462 +4184,516 @@ public interface SolverLanguagePackage extends EPackage
2498 EClass STATEMENT = eINSTANCE.getStatement(); 4184 EClass STATEMENT = eINSTANCE.getStatement();
2499 4185
2500 /** 4186 /**
2501 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanValueImpl <em>Boolean Value</em>}' class. 4187 * The meta object literal for the '<em><b>Abstract</b></em>' attribute feature.
2502 * <!-- begin-user-doc --> 4188 * <!-- begin-user-doc -->
2503 * <!-- end-user-doc --> 4189 * <!-- end-user-doc -->
2504 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanValueImpl
2505 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanValue()
2506 * @generated 4190 * @generated
2507 */ 4191 */
2508 EClass BOOLEAN_VALUE = eINSTANCE.getBooleanValue(); 4192 EAttribute STATEMENT__ABSTRACT = eINSTANCE.getStatement_Abstract();
2509 4193
2510 /** 4194 /**
2511 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TruthValueImpl <em>Truth Value</em>}' class. 4195 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
2512 * <!-- begin-user-doc --> 4196 * <!-- begin-user-doc -->
2513 * <!-- end-user-doc --> 4197 * <!-- end-user-doc -->
2514 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TruthValueImpl
2515 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTruthValue()
2516 * @generated 4198 * @generated
2517 */ 4199 */
2518 EClass TRUTH_VALUE = eINSTANCE.getTruthValue(); 4200 EAttribute STATEMENT__NAME = eINSTANCE.getStatement_Name();
2519 4201
2520 /** 4202 /**
2521 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.InterpretationImpl <em>Interpretation</em>}' class. 4203 * The meta object literal for the '<em><b>Superclasses</b></em>' reference list feature.
2522 * <!-- begin-user-doc --> 4204 * <!-- begin-user-doc -->
2523 * <!-- end-user-doc --> 4205 * <!-- end-user-doc -->
2524 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.InterpretationImpl
2525 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInterpretation()
2526 * @generated 4206 * @generated
2527 */ 4207 */
2528 EClass INTERPRETATION = eINSTANCE.getInterpretation(); 4208 EReference STATEMENT__SUPERCLASSES = eINSTANCE.getStatement_Superclasses();
2529 4209
2530 /** 4210 /**
2531 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl <em>Basic Interpretation</em>}' class. 4211 * The meta object literal for the '<em><b>Members</b></em>' containment reference list feature.
2532 * <!-- begin-user-doc --> 4212 * <!-- begin-user-doc -->
2533 * <!-- end-user-doc --> 4213 * <!-- end-user-doc -->
2534 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl
2535 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBasicInterpretation()
2536 * @generated 4214 * @generated
2537 */ 4215 */
2538 EClass BASIC_INTERPRETATION = eINSTANCE.getBasicInterpretation(); 4216 EReference STATEMENT__MEMBERS = eINSTANCE.getStatement_Members();
2539 4217
2540 /** 4218 /**
2541 * The meta object literal for the '<em><b>Symbol</b></em>' containment reference feature. 4219 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl <em>Predicate Definition</em>}' class.
2542 * <!-- begin-user-doc --> 4220 * <!-- begin-user-doc -->
2543 * <!-- end-user-doc --> 4221 * <!-- end-user-doc -->
4222 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl
4223 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPredicateDefinition()
2544 * @generated 4224 * @generated
2545 */ 4225 */
2546 EReference BASIC_INTERPRETATION__SYMBOL = eINSTANCE.getBasicInterpretation_Symbol(); 4226 EClass PREDICATE_DEFINITION = eINSTANCE.getPredicateDefinition();
2547 4227
2548 /** 4228 /**
2549 * The meta object literal for the '<em><b>Objects</b></em>' containment reference list feature. 4229 * The meta object literal for the '<em><b>Head</b></em>' containment reference feature.
2550 * <!-- begin-user-doc --> 4230 * <!-- begin-user-doc -->
2551 * <!-- end-user-doc --> 4231 * <!-- end-user-doc -->
2552 * @generated 4232 * @generated
2553 */ 4233 */
2554 EReference BASIC_INTERPRETATION__OBJECTS = eINSTANCE.getBasicInterpretation_Objects(); 4234 EReference PREDICATE_DEFINITION__HEAD = eINSTANCE.getPredicateDefinition_Head();
2555 4235
2556 /** 4236 /**
2557 * The meta object literal for the '<em><b>Value</b></em>' containment reference feature. 4237 * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
2558 * <!-- begin-user-doc --> 4238 * <!-- begin-user-doc -->
2559 * <!-- end-user-doc --> 4239 * <!-- end-user-doc -->
2560 * @generated 4240 * @generated
2561 */ 4241 */
2562 EReference BASIC_INTERPRETATION__VALUE = eINSTANCE.getBasicInterpretation_Value(); 4242 EReference PREDICATE_DEFINITION__BODY = eINSTANCE.getPredicateDefinition_Body();
2563 4243
2564 /** 4244 /**
2565 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.SymbolImpl <em>Symbol</em>}' class. 4245 * The meta object literal for the '<em><b>Functional</b></em>' attribute feature.
2566 * <!-- begin-user-doc --> 4246 * <!-- begin-user-doc -->
2567 * <!-- end-user-doc --> 4247 * <!-- end-user-doc -->
2568 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SymbolImpl
2569 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getSymbol()
2570 * @generated 4248 * @generated
2571 */ 4249 */
2572 EClass SYMBOL = eINSTANCE.getSymbol(); 4250 EAttribute PREDICATE_DEFINITION__FUNCTIONAL = eINSTANCE.getPredicateDefinition_Functional();
2573 4251
2574 /** 4252 /**
2575 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl <em>Model Symbol</em>}' class. 4253 * The meta object literal for the '<em><b>Error</b></em>' attribute feature.
2576 * <!-- begin-user-doc --> 4254 * <!-- begin-user-doc -->
2577 * <!-- end-user-doc --> 4255 * <!-- end-user-doc -->
2578 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl
2579 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getModelSymbol()
2580 * @generated 4256 * @generated
2581 */ 4257 */
2582 EClass MODEL_SYMBOL = eINSTANCE.getModelSymbol(); 4258 EAttribute PREDICATE_DEFINITION__ERROR = eINSTANCE.getPredicateDefinition_Error();
2583 4259
2584 /** 4260 /**
2585 * The meta object literal for the '<em><b>Name</b></em>' attribute feature. 4261 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl <em>Unnamed Error Prediate Definition</em>}' class.
2586 * <!-- begin-user-doc --> 4262 * <!-- begin-user-doc -->
2587 * <!-- end-user-doc --> 4263 * <!-- end-user-doc -->
4264 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl
4265 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnnamedErrorPrediateDefinition()
2588 * @generated 4266 * @generated
2589 */ 4267 */
2590 EAttribute MODEL_SYMBOL__NAME = eINSTANCE.getModelSymbol_Name(); 4268 EClass UNNAMED_ERROR_PREDIATE_DEFINITION = eINSTANCE.getUnnamedErrorPrediateDefinition();
2591 4269
2592 /** 4270 /**
2593 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PartialitySymbolImpl <em>Partiality Symbol</em>}' class. 4271 * The meta object literal for the '<em><b>Argument List</b></em>' containment reference feature.
2594 * <!-- begin-user-doc --> 4272 * <!-- begin-user-doc -->
2595 * <!-- end-user-doc --> 4273 * <!-- end-user-doc -->
2596 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PartialitySymbolImpl
2597 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPartialitySymbol()
2598 * @generated 4274 * @generated
2599 */ 4275 */
2600 EClass PARTIALITY_SYMBOL = eINSTANCE.getPartialitySymbol(); 4276 EReference UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST = eINSTANCE.getUnnamedErrorPrediateDefinition_ArgumentList();
2601 4277
2602 /** 4278 /**
2603 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExistSymbolImpl <em>Exist Symbol</em>}' class. 4279 * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
2604 * <!-- begin-user-doc --> 4280 * <!-- begin-user-doc -->
2605 * <!-- end-user-doc --> 4281 * <!-- end-user-doc -->
2606 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExistSymbolImpl
2607 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExistSymbol()
2608 * @generated 4282 * @generated
2609 */ 4283 */
2610 EClass EXIST_SYMBOL = eINSTANCE.getExistSymbol(); 4284 EReference UNNAMED_ERROR_PREDIATE_DEFINITION__BODY = eINSTANCE.getUnnamedErrorPrediateDefinition_Body();
2611 4285
2612 /** 4286 /**
2613 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EqualsSymbolImpl <em>Equals Symbol</em>}' class. 4287 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl <em>Default Definition</em>}' class.
2614 * <!-- begin-user-doc --> 4288 * <!-- begin-user-doc -->
2615 * <!-- end-user-doc --> 4289 * <!-- end-user-doc -->
2616 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EqualsSymbolImpl 4290 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl
2617 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEqualsSymbol() 4291 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDefaultDefinition()
2618 * @generated 4292 * @generated
2619 */ 4293 */
2620 EClass EQUALS_SYMBOL = eINSTANCE.getEqualsSymbol(); 4294 EClass DEFAULT_DEFINITION = eINSTANCE.getDefaultDefinition();
2621 4295
2622 /** 4296 /**
2623 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DataSymbolImpl <em>Data Symbol</em>}' class. 4297 * The meta object literal for the '<em><b>Head</b></em>' containment reference feature.
2624 * <!-- begin-user-doc --> 4298 * <!-- begin-user-doc -->
2625 * <!-- end-user-doc --> 4299 * <!-- end-user-doc -->
2626 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DataSymbolImpl
2627 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDataSymbol()
2628 * @generated 4300 * @generated
2629 */ 4301 */
2630 EClass DATA_SYMBOL = eINSTANCE.getDataSymbol(); 4302 EReference DEFAULT_DEFINITION__HEAD = eINSTANCE.getDefaultDefinition_Head();
2631 4303
2632 /** 4304 /**
2633 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanSymbolImpl <em>Boolean Symbol</em>}' class. 4305 * The meta object literal for the '<em><b>Range</b></em>' containment reference feature.
2634 * <!-- begin-user-doc --> 4306 * <!-- begin-user-doc -->
2635 * <!-- end-user-doc --> 4307 * <!-- end-user-doc -->
2636 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanSymbolImpl
2637 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanSymbol()
2638 * @generated 4308 * @generated
2639 */ 4309 */
2640 EClass BOOLEAN_SYMBOL = eINSTANCE.getBooleanSymbol(); 4310 EReference DEFAULT_DEFINITION__RANGE = eINSTANCE.getDefaultDefinition_Range();
2641 4311
2642 /** 4312 /**
2643 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntegerSymbolImpl <em>Integer Symbol</em>}' class. 4313 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl <em>Extern Predicate Definition</em>}' class.
2644 * <!-- begin-user-doc --> 4314 * <!-- begin-user-doc -->
2645 * <!-- end-user-doc --> 4315 * <!-- end-user-doc -->
2646 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntegerSymbolImpl 4316 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl
2647 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIntegerSymbol() 4317 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExternPredicateDefinition()
2648 * @generated 4318 * @generated
2649 */ 4319 */
2650 EClass INTEGER_SYMBOL = eINSTANCE.getIntegerSymbol(); 4320 EClass EXTERN_PREDICATE_DEFINITION = eINSTANCE.getExternPredicateDefinition();
2651 4321
2652 /** 4322 /**
2653 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealSymbolImpl <em>Real Symbol</em>}' class. 4323 * The meta object literal for the '<em><b>Head</b></em>' containment reference feature.
2654 * <!-- begin-user-doc --> 4324 * <!-- begin-user-doc -->
2655 * <!-- end-user-doc --> 4325 * <!-- end-user-doc -->
2656 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.RealSymbolImpl
2657 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getRealSymbol()
2658 * @generated 4326 * @generated
2659 */ 4327 */
2660 EClass REAL_SYMBOL = eINSTANCE.getRealSymbol(); 4328 EReference EXTERN_PREDICATE_DEFINITION__HEAD = eINSTANCE.getExternPredicateDefinition_Head();
2661 4329
2662 /** 4330 /**
2663 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringSymbolImpl <em>String Symbol</em>}' class. 4331 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl <em>Metric Definition</em>}' class.
2664 * <!-- begin-user-doc --> 4332 * <!-- begin-user-doc -->
2665 * <!-- end-user-doc --> 4333 * <!-- end-user-doc -->
2666 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringSymbolImpl 4334 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl
2667 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringSymbol() 4335 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMetricDefinition()
2668 * @generated 4336 * @generated
2669 */ 4337 */
2670 EClass STRING_SYMBOL = eINSTANCE.getStringSymbol(); 4338 EClass METRIC_DEFINITION = eINSTANCE.getMetricDefinition();
2671 4339
2672 /** 4340 /**
2673 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComplexObjectImpl <em>Complex Object</em>}' class. 4341 * The meta object literal for the '<em><b>Head</b></em>' containment reference feature.
2674 * <!-- begin-user-doc --> 4342 * <!-- begin-user-doc -->
2675 * <!-- end-user-doc --> 4343 * <!-- end-user-doc -->
2676 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ComplexObjectImpl
2677 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getComplexObject()
2678 * @generated 4344 * @generated
2679 */ 4345 */
2680 EClass COMPLEX_OBJECT = eINSTANCE.getComplexObject(); 4346 EReference METRIC_DEFINITION__HEAD = eINSTANCE.getMetricDefinition_Head();
2681 4347
2682 /** 4348 /**
2683 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectImpl <em>Object</em>}' class. 4349 * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
2684 * <!-- begin-user-doc --> 4350 * <!-- begin-user-doc -->
2685 * <!-- end-user-doc --> 4351 * <!-- end-user-doc -->
2686 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectImpl
2687 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObject()
2688 * @generated 4352 * @generated
2689 */ 4353 */
2690 EClass OBJECT = eINSTANCE.getObject(); 4354 EReference METRIC_DEFINITION__BODY = eINSTANCE.getMetricDefinition_Body();
2691 4355
2692 /** 4356 /**
2693 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl <em>Named Object</em>}' class. 4357 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
2694 * <!-- begin-user-doc --> 4358 * <!-- begin-user-doc -->
2695 * <!-- end-user-doc --> 4359 * <!-- end-user-doc -->
2696 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl
2697 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNamedObject()
2698 * @generated 4360 * @generated
2699 */ 4361 */
2700 EClass NAMED_OBJECT = eINSTANCE.getNamedObject(); 4362 EAttribute METRIC_DEFINITION__TYPE = eINSTANCE.getMetricDefinition_Type();
2701 4363
2702 /** 4364 /**
2703 * The meta object literal for the '<em><b>Name</b></em>' attribute feature. 4365 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl <em>Extern Metric Definition</em>}' class.
2704 * <!-- begin-user-doc --> 4366 * <!-- begin-user-doc -->
2705 * <!-- end-user-doc --> 4367 * <!-- end-user-doc -->
4368 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl
4369 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExternMetricDefinition()
2706 * @generated 4370 * @generated
2707 */ 4371 */
2708 EAttribute NAMED_OBJECT__NAME = eINSTANCE.getNamedObject_Name(); 4372 EClass EXTERN_METRIC_DEFINITION = eINSTANCE.getExternMetricDefinition();
2709 4373
2710 /** 4374 /**
2711 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl <em>Unnamed Object</em>}' class. 4375 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
2712 * <!-- begin-user-doc --> 4376 * <!-- begin-user-doc -->
2713 * <!-- end-user-doc --> 4377 * <!-- end-user-doc -->
2714 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl
2715 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnnamedObject()
2716 * @generated 4378 * @generated
2717 */ 4379 */
2718 EClass UNNAMED_OBJECT = eINSTANCE.getUnnamedObject(); 4380 EAttribute EXTERN_METRIC_DEFINITION__TYPE = eINSTANCE.getExternMetricDefinition_Type();
2719 4381
2720 /** 4382 /**
2721 * The meta object literal for the '<em><b>Name</b></em>' attribute feature. 4383 * The meta object literal for the '<em><b>Head</b></em>' containment reference feature.
2722 * <!-- begin-user-doc --> 4384 * <!-- begin-user-doc -->
2723 * <!-- end-user-doc --> 4385 * <!-- end-user-doc -->
2724 * @generated 4386 * @generated
2725 */ 4387 */
2726 EAttribute UNNAMED_OBJECT__NAME = eINSTANCE.getUnnamedObject_Name(); 4388 EReference EXTERN_METRIC_DEFINITION__HEAD = eINSTANCE.getExternMetricDefinition_Head();
2727 4389
2728 /** 4390 /**
2729 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DataObjectImpl <em>Data Object</em>}' class. 4391 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionImpl <em>Expression</em>}' class.
2730 * <!-- begin-user-doc --> 4392 * <!-- begin-user-doc -->
2731 * <!-- end-user-doc --> 4393 * <!-- end-user-doc -->
2732 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DataObjectImpl 4394 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionImpl
2733 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDataObject() 4395 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExpression()
2734 * @generated 4396 * @generated
2735 */ 4397 */
2736 EClass DATA_OBJECT = eINSTANCE.getDataObject(); 4398 EClass EXPRESSION = eINSTANCE.getExpression();
2737 4399
2738 /** 4400 /**
2739 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl <em>Boolean Object</em>}' class. 4401 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl <em>If Else</em>}' class.
2740 * <!-- begin-user-doc --> 4402 * <!-- begin-user-doc -->
2741 * <!-- end-user-doc --> 4403 * <!-- end-user-doc -->
2742 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl 4404 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl
2743 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanObject() 4405 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIfElse()
2744 * @generated 4406 * @generated
2745 */ 4407 */
2746 EClass BOOLEAN_OBJECT = eINSTANCE.getBooleanObject(); 4408 EClass IF_ELSE = eINSTANCE.getIfElse();
2747 4409
2748 /** 4410 /**
2749 * The meta object literal for the '<em><b>Value</b></em>' containment reference feature. 4411 * The meta object literal for the '<em><b>Condition</b></em>' containment reference feature.
2750 * <!-- begin-user-doc --> 4412 * <!-- begin-user-doc -->
2751 * <!-- end-user-doc --> 4413 * <!-- end-user-doc -->
2752 * @generated 4414 * @generated
2753 */ 4415 */
2754 EReference BOOLEAN_OBJECT__VALUE = eINSTANCE.getBooleanObject_Value(); 4416 EReference IF_ELSE__CONDITION = eINSTANCE.getIfElse_Condition();
2755 4417
2756 /** 4418 /**
2757 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl <em>Int Object</em>}' class. 4419 * The meta object literal for the '<em><b>Then</b></em>' containment reference feature.
2758 * <!-- begin-user-doc --> 4420 * <!-- begin-user-doc -->
2759 * <!-- end-user-doc --> 4421 * <!-- end-user-doc -->
2760 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl
2761 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIntObject()
2762 * @generated 4422 * @generated
2763 */ 4423 */
2764 EClass INT_OBJECT = eINSTANCE.getIntObject(); 4424 EReference IF_ELSE__THEN = eINSTANCE.getIfElse_Then();
2765 4425
2766 /** 4426 /**
2767 * The meta object literal for the '<em><b>Value</b></em>' attribute feature. 4427 * The meta object literal for the '<em><b>Else</b></em>' containment reference feature.
2768 * <!-- begin-user-doc --> 4428 * <!-- begin-user-doc -->
2769 * <!-- end-user-doc --> 4429 * <!-- end-user-doc -->
2770 * @generated 4430 * @generated
2771 */ 4431 */
2772 EAttribute INT_OBJECT__VALUE = eINSTANCE.getIntObject_Value(); 4432 EReference IF_ELSE__ELSE = eINSTANCE.getIfElse_Else();
2773 4433
2774 /** 4434 /**
2775 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl <em>Real Object</em>}' class. 4435 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl <em>Case</em>}' class.
2776 * <!-- begin-user-doc --> 4436 * <!-- begin-user-doc -->
2777 * <!-- end-user-doc --> 4437 * <!-- end-user-doc -->
2778 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl 4438 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl
2779 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getRealObject() 4439 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCase()
2780 * @generated 4440 * @generated
2781 */ 4441 */
2782 EClass REAL_OBJECT = eINSTANCE.getRealObject(); 4442 EClass CASE = eINSTANCE.getCase();
2783 4443
2784 /** 4444 /**
2785 * The meta object literal for the '<em><b>Value</b></em>' attribute feature. 4445 * The meta object literal for the '<em><b>Condition</b></em>' containment reference feature.
2786 * <!-- begin-user-doc --> 4446 * <!-- begin-user-doc -->
2787 * <!-- end-user-doc --> 4447 * <!-- end-user-doc -->
2788 * @generated 4448 * @generated
2789 */ 4449 */
2790 EAttribute REAL_OBJECT__VALUE = eINSTANCE.getRealObject_Value(); 4450 EReference CASE__CONDITION = eINSTANCE.getCase_Condition();
2791 4451
2792 /** 4452 /**
2793 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl <em>String Object</em>}' class. 4453 * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
2794 * <!-- begin-user-doc --> 4454 * <!-- begin-user-doc -->
2795 * <!-- end-user-doc --> 4455 * <!-- end-user-doc -->
2796 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl
2797 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringObject()
2798 * @generated 4456 * @generated
2799 */ 4457 */
2800 EClass STRING_OBJECT = eINSTANCE.getStringObject(); 4458 EReference CASE__BODY = eINSTANCE.getCase_Body();
2801 4459
2802 /** 4460 /**
2803 * The meta object literal for the '<em><b>Value</b></em>' attribute feature. 4461 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl <em>Count</em>}' class.
4462 * <!-- begin-user-doc -->
4463 * <!-- end-user-doc -->
4464 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl
4465 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCount()
4466 * @generated
4467 */
4468 EClass COUNT = eINSTANCE.getCount();
4469
4470 /**
4471 * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
4472 * <!-- begin-user-doc -->
4473 * <!-- end-user-doc -->
4474 * @generated
4475 */
4476 EReference COUNT__BODY = eINSTANCE.getCount_Body();
4477
4478 /**
4479 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl <em>Aggregation</em>}' class.
4480 * <!-- begin-user-doc -->
4481 * <!-- end-user-doc -->
4482 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl
4483 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAggregation()
4484 * @generated
4485 */
4486 EClass AGGREGATION = eINSTANCE.getAggregation();
4487
4488 /**
4489 * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
4490 * <!-- begin-user-doc -->
4491 * <!-- end-user-doc -->
4492 * @generated
4493 */
4494 EAttribute AGGREGATION__OP = eINSTANCE.getAggregation_Op();
4495
4496 /**
4497 * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
4498 * <!-- begin-user-doc -->
4499 * <!-- end-user-doc -->
4500 * @generated
4501 */
4502 EReference AGGREGATION__BODY = eINSTANCE.getAggregation_Body();
4503
4504 /**
4505 * The meta object literal for the '<em><b>Condition</b></em>' containment reference feature.
4506 * <!-- begin-user-doc -->
4507 * <!-- end-user-doc -->
4508 * @generated
4509 */
4510 EReference AGGREGATION__CONDITION = eINSTANCE.getAggregation_Condition();
4511
4512 /**
4513 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl <em>Call</em>}' class.
2804 * <!-- begin-user-doc --> 4514 * <!-- begin-user-doc -->
2805 * <!-- end-user-doc --> 4515 * <!-- end-user-doc -->
4516 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl
4517 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCall()
2806 * @generated 4518 * @generated
2807 */ 4519 */
2808 EAttribute STRING_OBJECT__VALUE = eINSTANCE.getStringObject_Value(); 4520 EClass CALL = eINSTANCE.getCall();
2809 4521
2810 /** 4522 /**
2811 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl <em>Predicate</em>}' class. 4523 * The meta object literal for the '<em><b>Functor</b></em>' containment reference feature.
2812 * <!-- begin-user-doc --> 4524 * <!-- begin-user-doc -->
2813 * <!-- end-user-doc --> 4525 * <!-- end-user-doc -->
2814 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl
2815 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPredicate()
2816 * @generated 4526 * @generated
2817 */ 4527 */
2818 EClass PREDICATE = eINSTANCE.getPredicate(); 4528 EReference CALL__FUNCTOR = eINSTANCE.getCall_Functor();
2819 4529
2820 /** 4530 /**
2821 * The meta object literal for the '<em><b>Is Error</b></em>' attribute feature. 4531 * The meta object literal for the '<em><b>Argument List</b></em>' containment reference feature.
2822 * <!-- begin-user-doc --> 4532 * <!-- begin-user-doc -->
2823 * <!-- end-user-doc --> 4533 * <!-- end-user-doc -->
2824 * @generated 4534 * @generated
2825 */ 4535 */
2826 EAttribute PREDICATE__IS_ERROR = eINSTANCE.getPredicate_IsError(); 4536 EReference CALL__ARGUMENT_LIST = eINSTANCE.getCall_ArgumentList();
2827 4537
2828 /** 4538 /**
2829 * The meta object literal for the '<em><b>Symbol</b></em>' containment reference feature. 4539 * The meta object literal for the '<em><b>Transitive Closure</b></em>' attribute feature.
2830 * <!-- begin-user-doc --> 4540 * <!-- begin-user-doc -->
2831 * <!-- end-user-doc --> 4541 * <!-- end-user-doc -->
2832 * @generated 4542 * @generated
2833 */ 4543 */
2834 EReference PREDICATE__SYMBOL = eINSTANCE.getPredicate_Symbol(); 4544 EAttribute CALL__TRANSITIVE_CLOSURE = eINSTANCE.getCall_TransitiveClosure();
2835 4545
2836 /** 4546 /**
2837 * The meta object literal for the '<em><b>Parameters</b></em>' containment reference list feature. 4547 * The meta object literal for the '<em><b>Reflexive Transitive Closure</b></em>' attribute feature.
2838 * <!-- begin-user-doc --> 4548 * <!-- begin-user-doc -->
2839 * <!-- end-user-doc --> 4549 * <!-- end-user-doc -->
2840 * @generated 4550 * @generated
2841 */ 4551 */
2842 EReference PREDICATE__PARAMETERS = eINSTANCE.getPredicate_Parameters(); 4552 EAttribute CALL__REFLEXIVE_TRANSITIVE_CLOSURE = eINSTANCE.getCall_ReflexiveTransitiveClosure();
2843 4553
2844 /** 4554 /**
2845 * The meta object literal for the '<em><b>Bodies</b></em>' containment reference list feature. 4555 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl <em>Argument List</em>}' class.
2846 * <!-- begin-user-doc --> 4556 * <!-- begin-user-doc -->
2847 * <!-- end-user-doc --> 4557 * <!-- end-user-doc -->
4558 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl
4559 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getArgumentList()
2848 * @generated 4560 * @generated
2849 */ 4561 */
2850 EReference PREDICATE__BODIES = eINSTANCE.getPredicate_Bodies(); 4562 EClass ARGUMENT_LIST = eINSTANCE.getArgumentList();
2851 4563
2852 /** 4564 /**
2853 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl <em>Parameter</em>}' class. 4565 * The meta object literal for the '<em><b>Arguments</b></em>' containment reference list feature.
2854 * <!-- begin-user-doc --> 4566 * <!-- begin-user-doc -->
2855 * <!-- end-user-doc --> 4567 * <!-- end-user-doc -->
2856 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl
2857 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getParameter()
2858 * @generated 4568 * @generated
2859 */ 4569 */
2860 EClass PARAMETER = eINSTANCE.getParameter(); 4570 EReference ARGUMENT_LIST__ARGUMENTS = eINSTANCE.getArgumentList_Arguments();
2861 4571
2862 /** 4572 /**
2863 * The meta object literal for the '<em><b>Variable</b></em>' containment reference feature. 4573 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentImpl <em>Argument</em>}' class.
2864 * <!-- begin-user-doc --> 4574 * <!-- begin-user-doc -->
2865 * <!-- end-user-doc --> 4575 * <!-- end-user-doc -->
4576 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentImpl
4577 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getArgument()
2866 * @generated 4578 * @generated
2867 */ 4579 */
2868 EReference PARAMETER__VARIABLE = eINSTANCE.getParameter_Variable(); 4580 EClass ARGUMENT = eINSTANCE.getArgument();
2869 4581
2870 /** 4582 /**
2871 * The meta object literal for the '<em><b>Type</b></em>' containment reference feature. 4583 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl <em>Expression Argument</em>}' class.
2872 * <!-- begin-user-doc --> 4584 * <!-- begin-user-doc -->
2873 * <!-- end-user-doc --> 4585 * <!-- end-user-doc -->
4586 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl
4587 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExpressionArgument()
2874 * @generated 4588 * @generated
2875 */ 4589 */
2876 EReference PARAMETER__TYPE = eINSTANCE.getParameter_Type(); 4590 EClass EXPRESSION_ARGUMENT = eINSTANCE.getExpressionArgument();
2877 4591
2878 /** 4592 /**
2879 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl <em>Pattern Body</em>}' class. 4593 * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
2880 * <!-- begin-user-doc --> 4594 * <!-- begin-user-doc -->
2881 * <!-- end-user-doc --> 4595 * <!-- end-user-doc -->
2882 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl
2883 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPatternBody()
2884 * @generated 4596 * @generated
2885 */ 4597 */
2886 EClass PATTERN_BODY = eINSTANCE.getPatternBody(); 4598 EReference EXPRESSION_ARGUMENT__BODY = eINSTANCE.getExpressionArgument_Body();
2887 4599
2888 /** 4600 /**
2889 * The meta object literal for the '<em><b>Constraints</b></em>' containment reference list feature. 4601 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StarArgumentImpl <em>Star Argument</em>}' class.
2890 * <!-- begin-user-doc --> 4602 * <!-- begin-user-doc -->
2891 * <!-- end-user-doc --> 4603 * <!-- end-user-doc -->
4604 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StarArgumentImpl
4605 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStarArgument()
2892 * @generated 4606 * @generated
2893 */ 4607 */
2894 EReference PATTERN_BODY__CONSTRAINTS = eINSTANCE.getPatternBody_Constraints(); 4608 EClass STAR_ARGUMENT = eINSTANCE.getStarArgument();
2895 4609
2896 /** 4610 /**
2897 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PolarityImpl <em>Polarity</em>}' class. 4611 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl <em>Typed Argument</em>}' class.
2898 * <!-- begin-user-doc --> 4612 * <!-- begin-user-doc -->
2899 * <!-- end-user-doc --> 4613 * <!-- end-user-doc -->
2900 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PolarityImpl 4614 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl
2901 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPolarity() 4615 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTypedArgument()
2902 * @generated 4616 * @generated
2903 */ 4617 */
2904 EClass POLARITY = eINSTANCE.getPolarity(); 4618 EClass TYPED_ARGUMENT = eINSTANCE.getTypedArgument();
2905 4619
2906 /** 4620 /**
2907 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl <em>Constraint</em>}' class. 4621 * The meta object literal for the '<em><b>Type</b></em>' reference feature.
2908 * <!-- begin-user-doc --> 4622 * <!-- begin-user-doc -->
2909 * <!-- end-user-doc --> 4623 * <!-- end-user-doc -->
2910 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl
2911 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getConstraint()
2912 * @generated 4624 * @generated
2913 */ 4625 */
2914 EClass CONSTRAINT = eINSTANCE.getConstraint(); 4626 EReference TYPED_ARGUMENT__TYPE = eINSTANCE.getTypedArgument_Type();
2915 4627
2916 /** 4628 /**
2917 * The meta object literal for the '<em><b>Polarity</b></em>' containment reference feature. 4629 * The meta object literal for the '<em><b>Variable</b></em>' reference feature.
2918 * <!-- begin-user-doc --> 4630 * <!-- begin-user-doc -->
2919 * <!-- end-user-doc --> 4631 * <!-- end-user-doc -->
2920 * @generated 4632 * @generated
2921 */ 4633 */
2922 EReference CONSTRAINT__POLARITY = eINSTANCE.getConstraint_Polarity(); 4634 EReference TYPED_ARGUMENT__VARIABLE = eINSTANCE.getTypedArgument_Variable();
2923 4635
2924 /** 4636 /**
2925 * The meta object literal for the '<em><b>Symbol</b></em>' containment reference feature. 4637 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl <em>Typed Star Argument</em>}' class.
2926 * <!-- begin-user-doc --> 4638 * <!-- begin-user-doc -->
2927 * <!-- end-user-doc --> 4639 * <!-- end-user-doc -->
4640 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl
4641 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTypedStarArgument()
2928 * @generated 4642 * @generated
2929 */ 4643 */
2930 EReference CONSTRAINT__SYMBOL = eINSTANCE.getConstraint_Symbol(); 4644 EClass TYPED_STAR_ARGUMENT = eINSTANCE.getTypedStarArgument();
2931 4645
2932 /** 4646 /**
2933 * The meta object literal for the '<em><b>Params</b></em>' containment reference list feature. 4647 * The meta object literal for the '<em><b>Type</b></em>' reference feature.
2934 * <!-- begin-user-doc --> 4648 * <!-- begin-user-doc -->
2935 * <!-- end-user-doc --> 4649 * <!-- end-user-doc -->
2936 * @generated 4650 * @generated
2937 */ 4651 */
2938 EReference CONSTRAINT__PARAMS = eINSTANCE.getConstraint_Params(); 4652 EReference TYPED_STAR_ARGUMENT__TYPE = eINSTANCE.getTypedStarArgument_Type();
2939 4653
2940 /** 4654 /**
2941 * The meta object literal for the '<em><b>Closure Type</b></em>' containment reference feature. 4655 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl <em>Reference</em>}' class.
2942 * <!-- begin-user-doc --> 4656 * <!-- begin-user-doc -->
2943 * <!-- end-user-doc --> 4657 * <!-- end-user-doc -->
4658 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl
4659 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getReference()
2944 * @generated 4660 * @generated
2945 */ 4661 */
2946 EReference CONSTRAINT__CLOSURE_TYPE = eINSTANCE.getConstraint_ClosureType(); 4662 EClass REFERENCE = eINSTANCE.getReference();
2947 4663
2948 /** 4664 /**
2949 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClosureTypeImpl <em>Closure Type</em>}' class. 4665 * The meta object literal for the '<em><b>Referred</b></em>' reference feature.
2950 * <!-- begin-user-doc --> 4666 * <!-- begin-user-doc -->
2951 * <!-- end-user-doc --> 4667 * <!-- end-user-doc -->
2952 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ClosureTypeImpl
2953 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getClosureType()
2954 * @generated 4668 * @generated
2955 */ 4669 */
2956 EClass CLOSURE_TYPE = eINSTANCE.getClosureType(); 4670 EReference REFERENCE__REFERRED = eINSTANCE.getReference_Referred();
4671
4672 /**
4673 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl <em>Interval</em>}' class.
4674 * <!-- begin-user-doc -->
4675 * <!-- end-user-doc -->
4676 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl
4677 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInterval()
4678 * @generated
4679 */
4680 EClass INTERVAL = eINSTANCE.getInterval();
4681
4682 /**
4683 * The meta object literal for the '<em><b>Lower Bound</b></em>' containment reference feature.
4684 * <!-- begin-user-doc -->
4685 * <!-- end-user-doc -->
4686 * @generated
4687 */
4688 EReference INTERVAL__LOWER_BOUND = eINSTANCE.getInterval_LowerBound();
4689
4690 /**
4691 * The meta object literal for the '<em><b>Upper Bound</b></em>' containment reference feature.
4692 * <!-- begin-user-doc -->
4693 * <!-- end-user-doc -->
4694 * @generated
4695 */
4696 EReference INTERVAL__UPPER_BOUND = eINSTANCE.getInterval_UpperBound();
2957 4697
2958 /** 4698 /**
2959 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LiteralImpl <em>Literal</em>}' class. 4699 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LiteralImpl <em>Literal</em>}' class.
@@ -2966,14 +4706,112 @@ public interface SolverLanguagePackage extends EPackage
2966 EClass LITERAL = eINSTANCE.getLiteral(); 4706 EClass LITERAL = eINSTANCE.getLiteral();
2967 4707
2968 /** 4708 /**
2969 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl <em>Variable</em>}' class. 4709 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl <em>Logic Literal</em>}' class.
4710 * <!-- begin-user-doc -->
4711 * <!-- end-user-doc -->
4712 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl
4713 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLogicLiteral()
4714 * @generated
4715 */
4716 EClass LOGIC_LITERAL = eINSTANCE.getLogicLiteral();
4717
4718 /**
4719 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
2970 * <!-- begin-user-doc --> 4720 * <!-- begin-user-doc -->
2971 * <!-- end-user-doc --> 4721 * <!-- end-user-doc -->
2972 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl
2973 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getVariable()
2974 * @generated 4722 * @generated
2975 */ 4723 */
2976 EClass VARIABLE = eINSTANCE.getVariable(); 4724 EAttribute LOGIC_LITERAL__VALUE = eINSTANCE.getLogicLiteral_Value();
4725
4726 /**
4727 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl <em>Numeric Literal</em>}' class.
4728 * <!-- begin-user-doc -->
4729 * <!-- end-user-doc -->
4730 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl
4731 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNumericLiteral()
4732 * @generated
4733 */
4734 EClass NUMERIC_LITERAL = eINSTANCE.getNumericLiteral();
4735
4736 /**
4737 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
4738 * <!-- begin-user-doc -->
4739 * <!-- end-user-doc -->
4740 * @generated
4741 */
4742 EAttribute NUMERIC_LITERAL__VALUE = eINSTANCE.getNumericLiteral_Value();
4743
4744 /**
4745 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.InfinityLiteralImpl <em>Infinity Literal</em>}' class.
4746 * <!-- begin-user-doc -->
4747 * <!-- end-user-doc -->
4748 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.InfinityLiteralImpl
4749 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInfinityLiteral()
4750 * @generated
4751 */
4752 EClass INFINITY_LITERAL = eINSTANCE.getInfinityLiteral();
4753
4754 /**
4755 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EmptyIntervalLiteralImpl <em>Empty Interval Literal</em>}' class.
4756 * <!-- begin-user-doc -->
4757 * <!-- end-user-doc -->
4758 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EmptyIntervalLiteralImpl
4759 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEmptyIntervalLiteral()
4760 * @generated
4761 */
4762 EClass EMPTY_INTERVAL_LITERAL = eINSTANCE.getEmptyIntervalLiteral();
4763
4764 /**
4765 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl <em>String Literal</em>}' class.
4766 * <!-- begin-user-doc -->
4767 * <!-- end-user-doc -->
4768 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl
4769 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringLiteral()
4770 * @generated
4771 */
4772 EClass STRING_LITERAL = eINSTANCE.getStringLiteral();
4773
4774 /**
4775 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
4776 * <!-- begin-user-doc -->
4777 * <!-- end-user-doc -->
4778 * @generated
4779 */
4780 EAttribute STRING_LITERAL__VALUE = eINSTANCE.getStringLiteral_Value();
4781
4782 /**
4783 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl <em>Member Definition</em>}' class.
4784 * <!-- begin-user-doc -->
4785 * <!-- end-user-doc -->
4786 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl
4787 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMemberDefinition()
4788 * @generated
4789 */
4790 EClass MEMBER_DEFINITION = eINSTANCE.getMemberDefinition();
4791
4792 /**
4793 * The meta object literal for the '<em><b>Containment</b></em>' attribute feature.
4794 * <!-- begin-user-doc -->
4795 * <!-- end-user-doc -->
4796 * @generated
4797 */
4798 EAttribute MEMBER_DEFINITION__CONTAINMENT = eINSTANCE.getMemberDefinition_Containment();
4799
4800 /**
4801 * The meta object literal for the '<em><b>Type</b></em>' reference feature.
4802 * <!-- begin-user-doc -->
4803 * <!-- end-user-doc -->
4804 * @generated
4805 */
4806 EReference MEMBER_DEFINITION__TYPE = eINSTANCE.getMemberDefinition_Type();
4807
4808 /**
4809 * The meta object literal for the '<em><b>Multiplicity</b></em>' containment reference feature.
4810 * <!-- begin-user-doc -->
4811 * <!-- end-user-doc -->
4812 * @generated
4813 */
4814 EReference MEMBER_DEFINITION__MULTIPLICITY = eINSTANCE.getMemberDefinition_Multiplicity();
2977 4815
2978 /** 4816 /**
2979 * The meta object literal for the '<em><b>Name</b></em>' attribute feature. 4817 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
@@ -2981,365 +4819,437 @@ public interface SolverLanguagePackage extends EPackage
2981 * <!-- end-user-doc --> 4819 * <!-- end-user-doc -->
2982 * @generated 4820 * @generated
2983 */ 4821 */
2984 EAttribute VARIABLE__NAME = eINSTANCE.getVariable_Name(); 4822 EAttribute MEMBER_DEFINITION__NAME = eINSTANCE.getMemberDefinition_Name();
2985 4823
2986 /** 4824 /**
2987 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl <em>All Instances</em>}' class. 4825 * The meta object literal for the '<em><b>Opposite</b></em>' reference feature.
2988 * <!-- begin-user-doc --> 4826 * <!-- begin-user-doc -->
2989 * <!-- end-user-doc --> 4827 * <!-- end-user-doc -->
2990 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl
2991 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAllInstances()
2992 * @generated 4828 * @generated
2993 */ 4829 */
2994 EClass ALL_INSTANCES = eINSTANCE.getAllInstances(); 4830 EReference MEMBER_DEFINITION__OPPOSITE = eINSTANCE.getMemberDefinition_Opposite();
2995 4831
2996 /** 4832 /**
2997 * The meta object literal for the '<em><b>Symbol</b></em>' containment reference feature. 4833 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityImpl <em>Multiplicity</em>}' class.
2998 * <!-- begin-user-doc --> 4834 * <!-- begin-user-doc -->
2999 * <!-- end-user-doc --> 4835 * <!-- end-user-doc -->
4836 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityImpl
4837 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMultiplicity()
3000 * @generated 4838 * @generated
3001 */ 4839 */
3002 EReference ALL_INSTANCES__SYMBOL = eINSTANCE.getAllInstances_Symbol(); 4840 EClass MULTIPLICITY = eINSTANCE.getMultiplicity();
3003 4841
3004 /** 4842 /**
3005 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllObjectsImpl <em>All Objects</em>}' class. 4843 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ManyMultiplicityImpl <em>Many Multiplicity</em>}' class.
3006 * <!-- begin-user-doc --> 4844 * <!-- begin-user-doc -->
3007 * <!-- end-user-doc --> 4845 * <!-- end-user-doc -->
3008 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AllObjectsImpl 4846 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ManyMultiplicityImpl
3009 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAllObjects() 4847 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getManyMultiplicity()
3010 * @generated 4848 * @generated
3011 */ 4849 */
3012 EClass ALL_OBJECTS = eINSTANCE.getAllObjects(); 4850 EClass MANY_MULTIPLICITY = eINSTANCE.getManyMultiplicity();
3013 4851
3014 /** 4852 /**
3015 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl <em>Default Interpretation</em>}' class. 4853 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl <em>Exact Multiplicity</em>}' class.
3016 * <!-- begin-user-doc --> 4854 * <!-- begin-user-doc -->
3017 * <!-- end-user-doc --> 4855 * <!-- end-user-doc -->
3018 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl 4856 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl
3019 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDefaultInterpretation() 4857 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExactMultiplicity()
3020 * @generated 4858 * @generated
3021 */ 4859 */
3022 EClass DEFAULT_INTERPRETATION = eINSTANCE.getDefaultInterpretation(); 4860 EClass EXACT_MULTIPLICITY = eINSTANCE.getExactMultiplicity();
3023 4861
3024 /** 4862 /**
3025 * The meta object literal for the '<em><b>Interpretation</b></em>' containment reference feature. 4863 * The meta object literal for the '<em><b>Multiplicity</b></em>' attribute feature.
3026 * <!-- begin-user-doc --> 4864 * <!-- begin-user-doc -->
3027 * <!-- end-user-doc --> 4865 * <!-- end-user-doc -->
3028 * @generated 4866 * @generated
3029 */ 4867 */
3030 EReference DEFAULT_INTERPRETATION__INTERPRETATION = eINSTANCE.getDefaultInterpretation_Interpretation(); 4868 EAttribute EXACT_MULTIPLICITY__MULTIPLICITY = eINSTANCE.getExactMultiplicity_Multiplicity();
3031 4869
3032 /** 4870 /**
3033 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CDInterpretationImpl <em>CD Interpretation</em>}' class. 4871 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl <em>Bounded Multiplicity</em>}' class.
3034 * <!-- begin-user-doc --> 4872 * <!-- begin-user-doc -->
3035 * <!-- end-user-doc --> 4873 * <!-- end-user-doc -->
3036 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CDInterpretationImpl 4874 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl
3037 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCDInterpretation() 4875 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBoundedMultiplicity()
3038 * @generated 4876 * @generated
3039 */ 4877 */
3040 EClass CD_INTERPRETATION = eINSTANCE.getCDInterpretation(); 4878 EClass BOUNDED_MULTIPLICITY = eINSTANCE.getBoundedMultiplicity();
3041 4879
3042 /** 4880 /**
3043 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl <em>Class Interpretation</em>}' class. 4881 * The meta object literal for the '<em><b>Lower Bound</b></em>' attribute feature.
3044 * <!-- begin-user-doc --> 4882 * <!-- begin-user-doc -->
3045 * <!-- end-user-doc --> 4883 * <!-- end-user-doc -->
3046 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl
3047 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getClassInterpretation()
3048 * @generated 4884 * @generated
3049 */ 4885 */
3050 EClass CLASS_INTERPRETATION = eINSTANCE.getClassInterpretation(); 4886 EAttribute BOUNDED_MULTIPLICITY__LOWER_BOUND = eINSTANCE.getBoundedMultiplicity_LowerBound();
3051 4887
3052 /** 4888 /**
3053 * The meta object literal for the '<em><b>Abstract</b></em>' attribute feature. 4889 * The meta object literal for the '<em><b>Upper Bound</b></em>' attribute feature.
3054 * <!-- begin-user-doc --> 4890 * <!-- begin-user-doc -->
3055 * <!-- end-user-doc --> 4891 * <!-- end-user-doc -->
3056 * @generated 4892 * @generated
3057 */ 4893 */
3058 EAttribute CLASS_INTERPRETATION__ABSTRACT = eINSTANCE.getClassInterpretation_Abstract(); 4894 EAttribute BOUNDED_MULTIPLICITY__UPPER_BOUND = eINSTANCE.getBoundedMultiplicity_UpperBound();
3059 4895
3060 /** 4896 /**
3061 * The meta object literal for the '<em><b>Symbol</b></em>' containment reference feature. 4897 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl <em>Scope Definition</em>}' class.
3062 * <!-- begin-user-doc --> 4898 * <!-- begin-user-doc -->
3063 * <!-- end-user-doc --> 4899 * <!-- end-user-doc -->
4900 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl
4901 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getScopeDefinition()
3064 * @generated 4902 * @generated
3065 */ 4903 */
3066 EReference CLASS_INTERPRETATION__SYMBOL = eINSTANCE.getClassInterpretation_Symbol(); 4904 EClass SCOPE_DEFINITION = eINSTANCE.getScopeDefinition();
3067 4905
3068 /** 4906 /**
3069 * The meta object literal for the '<em><b>Supertypes</b></em>' containment reference list feature. 4907 * The meta object literal for the '<em><b>Type</b></em>' reference feature.
3070 * <!-- begin-user-doc --> 4908 * <!-- begin-user-doc -->
3071 * <!-- end-user-doc --> 4909 * <!-- end-user-doc -->
3072 * @generated 4910 * @generated
3073 */ 4911 */
3074 EReference CLASS_INTERPRETATION__SUPERTYPES = eINSTANCE.getClassInterpretation_Supertypes(); 4912 EReference SCOPE_DEFINITION__TYPE = eINSTANCE.getScopeDefinition_Type();
3075 4913
3076 /** 4914 /**
3077 * The meta object literal for the '<em><b>Fielt</b></em>' containment reference list feature. 4915 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl <em>Exact Scope Definition</em>}' class.
3078 * <!-- begin-user-doc --> 4916 * <!-- begin-user-doc -->
3079 * <!-- end-user-doc --> 4917 * <!-- end-user-doc -->
4918 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl
4919 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExactScopeDefinition()
3080 * @generated 4920 * @generated
3081 */ 4921 */
3082 EReference CLASS_INTERPRETATION__FIELT = eINSTANCE.getClassInterpretation_Fielt(); 4922 EClass EXACT_SCOPE_DEFINITION = eINSTANCE.getExactScopeDefinition();
3083 4923
3084 /** 4924 /**
3085 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl <em>Enum Interpretation</em>}' class. 4925 * The meta object literal for the '<em><b>Exact Scope</b></em>' attribute feature.
3086 * <!-- begin-user-doc --> 4926 * <!-- begin-user-doc -->
3087 * <!-- end-user-doc --> 4927 * <!-- end-user-doc -->
3088 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl
3089 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEnumInterpretation()
3090 * @generated 4928 * @generated
3091 */ 4929 */
3092 EClass ENUM_INTERPRETATION = eINSTANCE.getEnumInterpretation(); 4930 EAttribute EXACT_SCOPE_DEFINITION__EXACT_SCOPE = eINSTANCE.getExactScopeDefinition_ExactScope();
3093 4931
3094 /** 4932 /**
3095 * The meta object literal for the '<em><b>Symbol</b></em>' containment reference feature. 4933 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl <em>Bounded Scope Definition</em>}' class.
3096 * <!-- begin-user-doc --> 4934 * <!-- begin-user-doc -->
3097 * <!-- end-user-doc --> 4935 * <!-- end-user-doc -->
4936 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl
4937 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBoundedScopeDefinition()
3098 * @generated 4938 * @generated
3099 */ 4939 */
3100 EReference ENUM_INTERPRETATION__SYMBOL = eINSTANCE.getEnumInterpretation_Symbol(); 4940 EClass BOUNDED_SCOPE_DEFINITION = eINSTANCE.getBoundedScopeDefinition();
3101 4941
3102 /** 4942 /**
3103 * The meta object literal for the '<em><b>Objects</b></em>' containment reference list feature. 4943 * The meta object literal for the '<em><b>Lower Bound</b></em>' attribute feature.
3104 * <!-- begin-user-doc --> 4944 * <!-- begin-user-doc -->
3105 * <!-- end-user-doc --> 4945 * <!-- end-user-doc -->
3106 * @generated 4946 * @generated
3107 */ 4947 */
3108 EReference ENUM_INTERPRETATION__OBJECTS = eINSTANCE.getEnumInterpretation_Objects(); 4948 EAttribute BOUNDED_SCOPE_DEFINITION__LOWER_BOUND = eINSTANCE.getBoundedScopeDefinition_LowerBound();
3109 4949
3110 /** 4950 /**
3111 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl <em>Field Relation Interpretation</em>}' class. 4951 * The meta object literal for the '<em><b>Upper Bound</b></em>' attribute feature.
3112 * <!-- begin-user-doc --> 4952 * <!-- begin-user-doc -->
3113 * <!-- end-user-doc --> 4953 * <!-- end-user-doc -->
3114 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl
3115 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getFieldRelationInterpretation()
3116 * @generated 4954 * @generated
3117 */ 4955 */
3118 EClass FIELD_RELATION_INTERPRETATION = eINSTANCE.getFieldRelationInterpretation(); 4956 EAttribute BOUNDED_SCOPE_DEFINITION__UPPER_BOUND = eINSTANCE.getBoundedScopeDefinition_UpperBound();
3119 4957
3120 /** 4958 /**
3121 * The meta object literal for the '<em><b>Containment</b></em>' attribute feature. 4959 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl <em>Lower Bounded Scope Definition</em>}' class.
3122 * <!-- begin-user-doc --> 4960 * <!-- begin-user-doc -->
3123 * <!-- end-user-doc --> 4961 * <!-- end-user-doc -->
4962 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl
4963 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLowerBoundedScopeDefinition()
3124 * @generated 4964 * @generated
3125 */ 4965 */
3126 EAttribute FIELD_RELATION_INTERPRETATION__CONTAINMENT = eINSTANCE.getFieldRelationInterpretation_Containment(); 4966 EClass LOWER_BOUNDED_SCOPE_DEFINITION = eINSTANCE.getLowerBoundedScopeDefinition();
3127 4967
3128 /** 4968 /**
3129 * The meta object literal for the '<em><b>Symbol</b></em>' containment reference feature. 4969 * The meta object literal for the '<em><b>Lower Bound</b></em>' attribute feature.
3130 * <!-- begin-user-doc --> 4970 * <!-- begin-user-doc -->
3131 * <!-- end-user-doc --> 4971 * <!-- end-user-doc -->
3132 * @generated 4972 * @generated
3133 */ 4973 */
3134 EReference FIELD_RELATION_INTERPRETATION__SYMBOL = eINSTANCE.getFieldRelationInterpretation_Symbol(); 4974 EAttribute LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND = eINSTANCE.getLowerBoundedScopeDefinition_LowerBound();
3135 4975
3136 /** 4976 /**
3137 * The meta object literal for the '<em><b>Multiplicity</b></em>' containment reference feature. 4977 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl <em>Objective Definition</em>}' class.
3138 * <!-- begin-user-doc --> 4978 * <!-- begin-user-doc -->
3139 * <!-- end-user-doc --> 4979 * <!-- end-user-doc -->
4980 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl
4981 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObjectiveDefinition()
3140 * @generated 4982 * @generated
3141 */ 4983 */
3142 EReference FIELD_RELATION_INTERPRETATION__MULTIPLICITY = eINSTANCE.getFieldRelationInterpretation_Multiplicity(); 4984 EClass OBJECTIVE_DEFINITION = eINSTANCE.getObjectiveDefinition();
3143 4985
3144 /** 4986 /**
3145 * The meta object literal for the '<em><b>Target</b></em>' containment reference feature. 4987 * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
3146 * <!-- begin-user-doc --> 4988 * <!-- begin-user-doc -->
3147 * <!-- end-user-doc --> 4989 * <!-- end-user-doc -->
3148 * @generated 4990 * @generated
3149 */ 4991 */
3150 EReference FIELD_RELATION_INTERPRETATION__TARGET = eINSTANCE.getFieldRelationInterpretation_Target(); 4992 EAttribute OBJECTIVE_DEFINITION__KIND = eINSTANCE.getObjectiveDefinition_Kind();
3151 4993
3152 /** 4994 /**
3153 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl <em>Global Relation Interpretation</em>}' class. 4995 * The meta object literal for the '<em><b>Objective</b></em>' containment reference feature.
3154 * <!-- begin-user-doc --> 4996 * <!-- begin-user-doc -->
3155 * <!-- end-user-doc --> 4997 * <!-- end-user-doc -->
3156 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl
3157 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getGlobalRelationInterpretation()
3158 * @generated 4998 * @generated
3159 */ 4999 */
3160 EClass GLOBAL_RELATION_INTERPRETATION = eINSTANCE.getGlobalRelationInterpretation(); 5000 EReference OBJECTIVE_DEFINITION__OBJECTIVE = eINSTANCE.getObjectiveDefinition_Objective();
3161 5001
3162 /** 5002 /**
3163 * The meta object literal for the '<em><b>Containment</b></em>' attribute feature. 5003 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl <em>Named Element</em>}' class.
5004 * <!-- begin-user-doc -->
5005 * <!-- end-user-doc -->
5006 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl
5007 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNamedElement()
5008 * @generated
5009 */
5010 EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();
5011
5012 /**
5013 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
5014 * <!-- begin-user-doc -->
5015 * <!-- end-user-doc -->
5016 * @generated
5017 */
5018 EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();
5019
5020 /**
5021 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl <em>Assertion</em>}' class.
5022 * <!-- begin-user-doc -->
5023 * <!-- end-user-doc -->
5024 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl
5025 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAssertion()
5026 * @generated
5027 */
5028 EClass ASSERTION = eINSTANCE.getAssertion();
5029
5030 /**
5031 * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
5032 * <!-- begin-user-doc -->
5033 * <!-- end-user-doc -->
5034 * @generated
5035 */
5036 EReference ASSERTION__BODY = eINSTANCE.getAssertion_Body();
5037
5038 /**
5039 * The meta object literal for the '<em><b>Range</b></em>' containment reference feature.
5040 * <!-- begin-user-doc -->
5041 * <!-- end-user-doc -->
5042 * @generated
5043 */
5044 EReference ASSERTION__RANGE = eINSTANCE.getAssertion_Range();
5045
5046 /**
5047 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl <em>Disjunction</em>}' class.
5048 * <!-- begin-user-doc -->
5049 * <!-- end-user-doc -->
5050 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl
5051 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDisjunction()
5052 * @generated
5053 */
5054 EClass DISJUNCTION = eINSTANCE.getDisjunction();
5055
5056 /**
5057 * The meta object literal for the '<em><b>Children</b></em>' containment reference list feature.
5058 * <!-- begin-user-doc -->
5059 * <!-- end-user-doc -->
5060 * @generated
5061 */
5062 EReference DISJUNCTION__CHILDREN = eINSTANCE.getDisjunction_Children();
5063
5064 /**
5065 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl <em>Switch</em>}' class.
5066 * <!-- begin-user-doc -->
5067 * <!-- end-user-doc -->
5068 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl
5069 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getSwitch()
5070 * @generated
5071 */
5072 EClass SWITCH = eINSTANCE.getSwitch();
5073
5074 /**
5075 * The meta object literal for the '<em><b>Cases</b></em>' containment reference list feature.
3164 * <!-- begin-user-doc --> 5076 * <!-- begin-user-doc -->
3165 * <!-- end-user-doc --> 5077 * <!-- end-user-doc -->
3166 * @generated 5078 * @generated
3167 */ 5079 */
3168 EAttribute GLOBAL_RELATION_INTERPRETATION__CONTAINMENT = eINSTANCE.getGlobalRelationInterpretation_Containment(); 5080 EReference SWITCH__CASES = eINSTANCE.getSwitch_Cases();
3169 5081
3170 /** 5082 /**
3171 * The meta object literal for the '<em><b>Symbol</b></em>' containment reference feature. 5083 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl <em>Conjunction</em>}' class.
3172 * <!-- begin-user-doc --> 5084 * <!-- begin-user-doc -->
3173 * <!-- end-user-doc --> 5085 * <!-- end-user-doc -->
5086 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl
5087 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getConjunction()
3174 * @generated 5088 * @generated
3175 */ 5089 */
3176 EReference GLOBAL_RELATION_INTERPRETATION__SYMBOL = eINSTANCE.getGlobalRelationInterpretation_Symbol(); 5090 EClass CONJUNCTION = eINSTANCE.getConjunction();
3177 5091
3178 /** 5092 /**
3179 * The meta object literal for the '<em><b>Source Multiplicity</b></em>' containment reference feature. 5093 * The meta object literal for the '<em><b>Children</b></em>' containment reference list feature.
3180 * <!-- begin-user-doc --> 5094 * <!-- begin-user-doc -->
3181 * <!-- end-user-doc --> 5095 * <!-- end-user-doc -->
3182 * @generated 5096 * @generated
3183 */ 5097 */
3184 EReference GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY = eINSTANCE.getGlobalRelationInterpretation_SourceMultiplicity(); 5098 EReference CONJUNCTION__CHILDREN = eINSTANCE.getConjunction_Children();
3185 5099
3186 /** 5100 /**
3187 * The meta object literal for the '<em><b>Source</b></em>' containment reference feature. 5101 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl <em>Comparison</em>}' class.
3188 * <!-- begin-user-doc --> 5102 * <!-- begin-user-doc -->
3189 * <!-- end-user-doc --> 5103 * <!-- end-user-doc -->
5104 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl
5105 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getComparison()
3190 * @generated 5106 * @generated
3191 */ 5107 */
3192 EReference GLOBAL_RELATION_INTERPRETATION__SOURCE = eINSTANCE.getGlobalRelationInterpretation_Source(); 5108 EClass COMPARISON = eINSTANCE.getComparison();
3193 5109
3194 /** 5110 /**
3195 * The meta object literal for the '<em><b>Target Multiplicity</b></em>' containment reference feature. 5111 * The meta object literal for the '<em><b>Left</b></em>' containment reference feature.
3196 * <!-- begin-user-doc --> 5112 * <!-- begin-user-doc -->
3197 * <!-- end-user-doc --> 5113 * <!-- end-user-doc -->
3198 * @generated 5114 * @generated
3199 */ 5115 */
3200 EReference GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY = eINSTANCE.getGlobalRelationInterpretation_TargetMultiplicity(); 5116 EReference COMPARISON__LEFT = eINSTANCE.getComparison_Left();
3201 5117
3202 /** 5118 /**
3203 * The meta object literal for the '<em><b>Target</b></em>' containment reference feature. 5119 * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
3204 * <!-- begin-user-doc --> 5120 * <!-- begin-user-doc -->
3205 * <!-- end-user-doc --> 5121 * <!-- end-user-doc -->
3206 * @generated 5122 * @generated
3207 */ 5123 */
3208 EReference GLOBAL_RELATION_INTERPRETATION__TARGET = eINSTANCE.getGlobalRelationInterpretation_Target(); 5124 EAttribute COMPARISON__OP = eINSTANCE.getComparison_Op();
3209 5125
3210 /** 5126 /**
3211 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl <em>Multiplicity Definition</em>}' class. 5127 * The meta object literal for the '<em><b>Right</b></em>' containment reference feature.
3212 * <!-- begin-user-doc --> 5128 * <!-- begin-user-doc -->
3213 * <!-- end-user-doc --> 5129 * <!-- end-user-doc -->
3214 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl
3215 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMultiplicityDefinition()
3216 * @generated 5130 * @generated
3217 */ 5131 */
3218 EClass MULTIPLICITY_DEFINITION = eINSTANCE.getMultiplicityDefinition(); 5132 EReference COMPARISON__RIGHT = eINSTANCE.getComparison_Right();
3219 5133
3220 /** 5134 /**
3221 * The meta object literal for the '<em><b>Lower</b></em>' attribute feature. 5135 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl <em>Binary Expression</em>}' class.
3222 * <!-- begin-user-doc --> 5136 * <!-- begin-user-doc -->
3223 * <!-- end-user-doc --> 5137 * <!-- end-user-doc -->
5138 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl
5139 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBinaryExpression()
3224 * @generated 5140 * @generated
3225 */ 5141 */
3226 EAttribute MULTIPLICITY_DEFINITION__LOWER = eINSTANCE.getMultiplicityDefinition_Lower(); 5142 EClass BINARY_EXPRESSION = eINSTANCE.getBinaryExpression();
3227 5143
3228 /** 5144 /**
3229 * The meta object literal for the '<em><b>Upper</b></em>' attribute feature. 5145 * The meta object literal for the '<em><b>Left</b></em>' containment reference feature.
3230 * <!-- begin-user-doc --> 5146 * <!-- begin-user-doc -->
3231 * <!-- end-user-doc --> 5147 * <!-- end-user-doc -->
3232 * @generated 5148 * @generated
3233 */ 5149 */
3234 EAttribute MULTIPLICITY_DEFINITION__UPPER = eINSTANCE.getMultiplicityDefinition_Upper(); 5150 EReference BINARY_EXPRESSION__LEFT = eINSTANCE.getBinaryExpression_Left();
3235 5151
3236 /** 5152 /**
3237 * The meta object literal for the '<em><b>Unlimited Upper</b></em>' attribute feature. 5153 * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
3238 * <!-- begin-user-doc --> 5154 * <!-- begin-user-doc -->
3239 * <!-- end-user-doc --> 5155 * <!-- end-user-doc -->
3240 * @generated 5156 * @generated
3241 */ 5157 */
3242 EAttribute MULTIPLICITY_DEFINITION__UNLIMITED_UPPER = eINSTANCE.getMultiplicityDefinition_UnlimitedUpper(); 5158 EAttribute BINARY_EXPRESSION__OP = eINSTANCE.getBinaryExpression_Op();
3243 5159
3244 /** 5160 /**
3245 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanTrueImpl <em>Boolean True</em>}' class. 5161 * The meta object literal for the '<em><b>Right</b></em>' containment reference feature.
3246 * <!-- begin-user-doc --> 5162 * <!-- begin-user-doc -->
3247 * <!-- end-user-doc --> 5163 * <!-- end-user-doc -->
3248 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanTrueImpl
3249 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanTrue()
3250 * @generated 5164 * @generated
3251 */ 5165 */
3252 EClass BOOLEAN_TRUE = eINSTANCE.getBooleanTrue(); 5166 EReference BINARY_EXPRESSION__RIGHT = eINSTANCE.getBinaryExpression_Right();
3253 5167
3254 /** 5168 /**
3255 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanFalseImpl <em>Boolean False</em>}' class. 5169 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl <em>Unary Expression</em>}' class.
3256 * <!-- begin-user-doc --> 5170 * <!-- begin-user-doc -->
3257 * <!-- end-user-doc --> 5171 * <!-- end-user-doc -->
3258 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanFalseImpl 5172 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl
3259 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanFalse() 5173 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnaryExpression()
3260 * @generated 5174 * @generated
3261 */ 5175 */
3262 EClass BOOLEAN_FALSE = eINSTANCE.getBooleanFalse(); 5176 EClass UNARY_EXPRESSION = eINSTANCE.getUnaryExpression();
3263 5177
3264 /** 5178 /**
3265 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TrueImpl <em>True</em>}' class. 5179 * The meta object literal for the '<em><b>Op</b></em>' attribute feature.
3266 * <!-- begin-user-doc --> 5180 * <!-- begin-user-doc -->
3267 * <!-- end-user-doc --> 5181 * <!-- end-user-doc -->
3268 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TrueImpl
3269 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTrue()
3270 * @generated 5182 * @generated
3271 */ 5183 */
3272 EClass TRUE = eINSTANCE.getTrue(); 5184 EAttribute UNARY_EXPRESSION__OP = eINSTANCE.getUnaryExpression_Op();
3273 5185
3274 /** 5186 /**
3275 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FalseImpl <em>False</em>}' class. 5187 * The meta object literal for the '<em><b>Body</b></em>' containment reference feature.
3276 * <!-- begin-user-doc --> 5188 * <!-- begin-user-doc -->
3277 * <!-- end-user-doc --> 5189 * <!-- end-user-doc -->
3278 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.FalseImpl
3279 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getFalse()
3280 * @generated 5190 * @generated
3281 */ 5191 */
3282 EClass FALSE = eINSTANCE.getFalse(); 5192 EReference UNARY_EXPRESSION__BODY = eINSTANCE.getUnaryExpression_Body();
3283 5193
3284 /** 5194 /**
3285 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnknownImpl <em>Unknown</em>}' class. 5195 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricType <em>Metric Type</em>}' enum.
3286 * <!-- begin-user-doc --> 5196 * <!-- begin-user-doc -->
3287 * <!-- end-user-doc --> 5197 * <!-- end-user-doc -->
3288 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnknownImpl 5198 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType
3289 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnknown() 5199 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMetricType()
3290 * @generated 5200 * @generated
3291 */ 5201 */
3292 EClass UNKNOWN = eINSTANCE.getUnknown(); 5202 EEnum METRIC_TYPE = eINSTANCE.getMetricType();
3293 5203
3294 /** 5204 /**
3295 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ErrorImpl <em>Error</em>}' class. 5205 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator <em>Binary Operator</em>}' enum.
3296 * <!-- begin-user-doc --> 5206 * <!-- begin-user-doc -->
3297 * <!-- end-user-doc --> 5207 * <!-- end-user-doc -->
3298 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ErrorImpl 5208 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator
3299 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getError() 5209 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBinaryOperator()
3300 * @generated 5210 * @generated
3301 */ 5211 */
3302 EClass ERROR = eINSTANCE.getError(); 5212 EEnum BINARY_OPERATOR = eINSTANCE.getBinaryOperator();
3303 5213
3304 /** 5214 /**
3305 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PositiveImpl <em>Positive</em>}' class. 5215 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryOp <em>Unary Op</em>}' enum.
3306 * <!-- begin-user-doc --> 5216 * <!-- begin-user-doc -->
3307 * <!-- end-user-doc --> 5217 * <!-- end-user-doc -->
3308 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PositiveImpl 5218 * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp
3309 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPositive() 5219 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnaryOp()
3310 * @generated 5220 * @generated
3311 */ 5221 */
3312 EClass POSITIVE = eINSTANCE.getPositive(); 5222 EEnum UNARY_OP = eINSTANCE.getUnaryOp();
3313 5223
3314 /** 5224 /**
3315 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NegativeImpl <em>Negative</em>}' class. 5225 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.AggregationOp <em>Aggregation Op</em>}' enum.
3316 * <!-- begin-user-doc --> 5226 * <!-- begin-user-doc -->
3317 * <!-- end-user-doc --> 5227 * <!-- end-user-doc -->
3318 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NegativeImpl 5228 * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp
3319 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNegative() 5229 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAggregationOp()
3320 * @generated 5230 * @generated
3321 */ 5231 */
3322 EClass NEGATIVE = eINSTANCE.getNegative(); 5232 EEnum AGGREGATION_OP = eINSTANCE.getAggregationOp();
3323 5233
3324 /** 5234 /**
3325 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReflexiveClosureImpl <em>Reflexive Closure</em>}' class. 5235 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicValue <em>Logic Value</em>}' enum.
3326 * <!-- begin-user-doc --> 5236 * <!-- begin-user-doc -->
3327 * <!-- end-user-doc --> 5237 * <!-- end-user-doc -->
3328 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ReflexiveClosureImpl 5238 * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue
3329 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getReflexiveClosure() 5239 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLogicValue()
3330 * @generated 5240 * @generated
3331 */ 5241 */
3332 EClass REFLEXIVE_CLOSURE = eINSTANCE.getReflexiveClosure(); 5242 EEnum LOGIC_VALUE = eINSTANCE.getLogicValue();
3333 5243
3334 /** 5244 /**
3335 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IrreflexiveClosureImpl <em>Irreflexive Closure</em>}' class. 5245 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind <em>Objective Kind</em>}' enum.
3336 * <!-- begin-user-doc --> 5246 * <!-- begin-user-doc -->
3337 * <!-- end-user-doc --> 5247 * <!-- end-user-doc -->
3338 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IrreflexiveClosureImpl 5248 * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind
3339 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIrreflexiveClosure() 5249 * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObjectiveKind()
3340 * @generated 5250 * @generated
3341 */ 5251 */
3342 EClass IRREFLEXIVE_CLOSURE = eINSTANCE.getIrreflexiveClosure(); 5252 EEnum OBJECTIVE_KIND = eINSTANCE.getObjectiveKind();
3343 5253
3344 } 5254 }
3345 5255
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringSymbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StarArgument.java
index f3d6d8ee..4e4bed1b 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringSymbol.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StarArgument.java
@@ -1,19 +1,19 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
6 6
7/** 7/**
8 * <!-- begin-user-doc --> 8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>String Symbol</b></em>'. 9 * A representation of the model object '<em><b>Star Argument</b></em>'.
10 * <!-- end-user-doc --> 10 * <!-- end-user-doc -->
11 * 11 *
12 * 12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringSymbol() 13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStarArgument()
14 * @model 14 * @model
15 * @generated 15 * @generated
16 */ 16 */
17public interface StringSymbol extends DataSymbol 17public interface StarArgument extends Argument
18{ 18{
19} // StringSymbol 19} // StarArgument
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Statement.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Statement.java
index f3da8f9c..9c3be9d6 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Statement.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Statement.java
@@ -1,8 +1,10 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
6import org.eclipse.emf.common.util.EList;
7
6import org.eclipse.emf.ecore.EObject; 8import org.eclipse.emf.ecore.EObject;
7 9
8/** 10/**
@@ -10,6 +12,15 @@ import org.eclipse.emf.ecore.EObject;
10 * A representation of the model object '<em><b>Statement</b></em>'. 12 * A representation of the model object '<em><b>Statement</b></em>'.
11 * <!-- end-user-doc --> 13 * <!-- end-user-doc -->
12 * 14 *
15 * <p>
16 * The following features are supported:
17 * </p>
18 * <ul>
19 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#isAbstract <em>Abstract</em>}</li>
20 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getName <em>Name</em>}</li>
21 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getSuperclasses <em>Superclasses</em>}</li>
22 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getMembers <em>Members</em>}</li>
23 * </ul>
13 * 24 *
14 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement() 25 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement()
15 * @model 26 * @model
@@ -17,4 +28,72 @@ import org.eclipse.emf.ecore.EObject;
17 */ 28 */
18public interface Statement extends EObject 29public interface Statement extends EObject
19{ 30{
31 /**
32 * Returns the value of the '<em><b>Abstract</b></em>' attribute.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Abstract</em>' attribute.
36 * @see #setAbstract(boolean)
37 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement_Abstract()
38 * @model
39 * @generated
40 */
41 boolean isAbstract();
42
43 /**
44 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#isAbstract <em>Abstract</em>}' attribute.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>Abstract</em>' attribute.
48 * @see #isAbstract()
49 * @generated
50 */
51 void setAbstract(boolean value);
52
53 /**
54 * Returns the value of the '<em><b>Name</b></em>' attribute.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @return the value of the '<em>Name</em>' attribute.
58 * @see #setName(String)
59 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement_Name()
60 * @model
61 * @generated
62 */
63 String getName();
64
65 /**
66 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getName <em>Name</em>}' attribute.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @param value the new value of the '<em>Name</em>' attribute.
70 * @see #getName()
71 * @generated
72 */
73 void setName(String value);
74
75 /**
76 * Returns the value of the '<em><b>Superclasses</b></em>' reference list.
77 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement}.
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @return the value of the '<em>Superclasses</em>' reference list.
81 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement_Superclasses()
82 * @model
83 * @generated
84 */
85 EList<NamedElement> getSuperclasses();
86
87 /**
88 * Returns the value of the '<em><b>Members</b></em>' containment reference list.
89 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition}.
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @return the value of the '<em>Members</em>' containment reference list.
93 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement_Members()
94 * @model containment="true"
95 * @generated
96 */
97 EList<MemberDefinition> getMembers();
98
20} // Statement 99} // Statement
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringObject.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringLiteral.java
index d1d3ee6d..dc4d6487 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringObject.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringLiteral.java
@@ -1,26 +1,26 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage; 4package org.eclipse.viatra.solver.language.solverLanguage;
5 5
6 6
7/** 7/**
8 * <!-- begin-user-doc --> 8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>String Object</b></em>'. 9 * A representation of the model object '<em><b>String Literal</b></em>'.
10 * <!-- end-user-doc --> 10 * <!-- end-user-doc -->
11 * 11 *
12 * <p> 12 * <p>
13 * The following features are supported: 13 * The following features are supported:
14 * </p> 14 * </p>
15 * <ul> 15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.StringObject#getValue <em>Value</em>}</li> 16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral#getValue <em>Value</em>}</li>
17 * </ul> 17 * </ul>
18 * 18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringObject() 19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringLiteral()
20 * @model 20 * @model
21 * @generated 21 * @generated
22 */ 22 */
23public interface StringObject extends DataObject 23public interface StringLiteral extends Literal
24{ 24{
25 /** 25 /**
26 * Returns the value of the '<em><b>Value</b></em>' attribute. 26 * Returns the value of the '<em><b>Value</b></em>' attribute.
@@ -28,14 +28,14 @@ public interface StringObject extends DataObject
28 * <!-- end-user-doc --> 28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Value</em>' attribute. 29 * @return the value of the '<em>Value</em>' attribute.
30 * @see #setValue(String) 30 * @see #setValue(String)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringObject_Value() 31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringLiteral_Value()
32 * @model 32 * @model
33 * @generated 33 * @generated
34 */ 34 */
35 String getValue(); 35 String getValue();
36 36
37 /** 37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.StringObject#getValue <em>Value</em>}' attribute. 38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral#getValue <em>Value</em>}' attribute.
39 * <!-- begin-user-doc --> 39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc --> 40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Value</em>' attribute. 41 * @param value the new value of the '<em>Value</em>' attribute.
@@ -44,4 +44,4 @@ public interface StringObject extends DataObject
44 */ 44 */
45 void setValue(String value); 45 void setValue(String value);
46 46
47} // StringObject 47} // StringLiteral
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Switch.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Switch.java
new file mode 100644
index 00000000..92504b5d
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Switch.java
@@ -0,0 +1,38 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.common.util.EList;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Switch</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Switch#getCases <em>Cases</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getSwitch()
21 * @model
22 * @generated
23 */
24public interface Switch extends Expression
25{
26 /**
27 * Returns the value of the '<em><b>Cases</b></em>' containment reference list.
28 * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Case}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Cases</em>' containment reference list.
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getSwitch_Cases()
33 * @model containment="true"
34 * @generated
35 */
36 EList<Case> getCases();
37
38} // Switch
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Symbol.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Symbol.java
deleted file mode 100644
index dcf2a01a..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Symbol.java
+++ /dev/null
@@ -1,20 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Symbol</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 *
14 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getSymbol()
15 * @model
16 * @generated
17 */
18public interface Symbol extends EObject
19{
20} // Symbol
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/True.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/True.java
deleted file mode 100644
index d125d86a..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/True.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>True</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTrue()
14 * @model
15 * @generated
16 */
17public interface True extends TruthValue
18{
19} // True
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TruthValue.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TruthValue.java
deleted file mode 100644
index 48e2b8e8..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TruthValue.java
+++ /dev/null
@@ -1,20 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import org.eclipse.emf.ecore.EObject;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Truth Value</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 *
14 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTruthValue()
15 * @model
16 * @generated
17 */
18public interface TruthValue extends EObject
19{
20} // TruthValue
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedArgument.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedArgument.java
new file mode 100644
index 00000000..f903338a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedArgument.java
@@ -0,0 +1,70 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Typed Argument</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getType <em>Type</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getVariable <em>Variable</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedArgument()
21 * @model
22 * @generated
23 */
24public interface TypedArgument extends Argument
25{
26 /**
27 * Returns the value of the '<em><b>Type</b></em>' reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Type</em>' reference.
31 * @see #setType(NamedElement)
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedArgument_Type()
33 * @model
34 * @generated
35 */
36 NamedElement getType();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getType <em>Type</em>}' reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Type</em>' reference.
43 * @see #getType()
44 * @generated
45 */
46 void setType(NamedElement value);
47
48 /**
49 * Returns the value of the '<em><b>Variable</b></em>' reference.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Variable</em>' reference.
53 * @see #setVariable(NamedElement)
54 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedArgument_Variable()
55 * @model
56 * @generated
57 */
58 NamedElement getVariable();
59
60 /**
61 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getVariable <em>Variable</em>}' reference.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Variable</em>' reference.
65 * @see #getVariable()
66 * @generated
67 */
68 void setVariable(NamedElement value);
69
70} // TypedArgument
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedStarArgument.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedStarArgument.java
new file mode 100644
index 00000000..2b8bc002
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedStarArgument.java
@@ -0,0 +1,47 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Typed Star Argument</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument#getType <em>Type</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedStarArgument()
20 * @model
21 * @generated
22 */
23public interface TypedStarArgument extends Argument
24{
25 /**
26 * Returns the value of the '<em><b>Type</b></em>' reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Type</em>' reference.
30 * @see #setType(NamedElement)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedStarArgument_Type()
32 * @model
33 * @generated
34 */
35 NamedElement getType();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument#getType <em>Type</em>}' reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Type</em>' reference.
42 * @see #getType()
43 * @generated
44 */
45 void setType(NamedElement value);
46
47} // TypedStarArgument
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryExpression.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryExpression.java
new file mode 100644
index 00000000..5c2356cd
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryExpression.java
@@ -0,0 +1,73 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Unary Expression</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getOp <em>Op</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getBody <em>Body</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnaryExpression()
21 * @model
22 * @generated
23 */
24public interface UnaryExpression extends Expression
25{
26 /**
27 * Returns the value of the '<em><b>Op</b></em>' attribute.
28 * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.UnaryOp}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Op</em>' attribute.
32 * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp
33 * @see #setOp(UnaryOp)
34 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnaryExpression_Op()
35 * @model
36 * @generated
37 */
38 UnaryOp getOp();
39
40 /**
41 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getOp <em>Op</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @param value the new value of the '<em>Op</em>' attribute.
45 * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp
46 * @see #getOp()
47 * @generated
48 */
49 void setOp(UnaryOp value);
50
51 /**
52 * Returns the value of the '<em><b>Body</b></em>' containment reference.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return the value of the '<em>Body</em>' containment reference.
56 * @see #setBody(Expression)
57 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnaryExpression_Body()
58 * @model containment="true"
59 * @generated
60 */
61 Expression getBody();
62
63 /**
64 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getBody <em>Body</em>}' containment reference.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @param value the new value of the '<em>Body</em>' containment reference.
68 * @see #getBody()
69 * @generated
70 */
71 void setBody(Expression value);
72
73} // UnaryExpression
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryOp.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryOp.java
new file mode 100644
index 00000000..e426f4f1
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryOp.java
@@ -0,0 +1,317 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6import java.util.Arrays;
7import java.util.Collections;
8import java.util.List;
9
10import org.eclipse.emf.common.util.Enumerator;
11
12/**
13 * <!-- begin-user-doc -->
14 * A representation of the literals of the enumeration '<em><b>Unary Op</b></em>',
15 * and utility methods for working with them.
16 * <!-- end-user-doc -->
17 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnaryOp()
18 * @model
19 * @generated
20 */
21public enum UnaryOp implements Enumerator
22{
23 /**
24 * The '<em><b>NEG</b></em>' literal object.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @see #NEG_VALUE
28 * @generated
29 * @ordered
30 */
31 NEG(0, "NEG", "!"),
32
33 /**
34 * The '<em><b>PLUS</b></em>' literal object.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @see #PLUS_VALUE
38 * @generated
39 * @ordered
40 */
41 PLUS(1, "PLUS", "+"),
42
43 /**
44 * The '<em><b>MINUS</b></em>' literal object.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #MINUS_VALUE
48 * @generated
49 * @ordered
50 */
51 MINUS(2, "MINUS", "-"),
52
53 /**
54 * The '<em><b>MAY</b></em>' literal object.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @see #MAY_VALUE
58 * @generated
59 * @ordered
60 */
61 MAY(3, "MAY", "may"),
62
63 /**
64 * The '<em><b>MUST</b></em>' literal object.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @see #MUST_VALUE
68 * @generated
69 * @ordered
70 */
71 MUST(4, "MUST", "must"),
72
73 /**
74 * The '<em><b>CURRENT</b></em>' literal object.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #CURRENT_VALUE
78 * @generated
79 * @ordered
80 */
81 CURRENT(5, "CURRENT", "current");
82
83 /**
84 * The '<em><b>NEG</b></em>' literal value.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @see #NEG
88 * @model literal="!"
89 * @generated
90 * @ordered
91 */
92 public static final int NEG_VALUE = 0;
93
94 /**
95 * The '<em><b>PLUS</b></em>' literal value.
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @see #PLUS
99 * @model literal="+"
100 * @generated
101 * @ordered
102 */
103 public static final int PLUS_VALUE = 1;
104
105 /**
106 * The '<em><b>MINUS</b></em>' literal value.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @see #MINUS
110 * @model literal="-"
111 * @generated
112 * @ordered
113 */
114 public static final int MINUS_VALUE = 2;
115
116 /**
117 * The '<em><b>MAY</b></em>' literal value.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @see #MAY
121 * @model literal="may"
122 * @generated
123 * @ordered
124 */
125 public static final int MAY_VALUE = 3;
126
127 /**
128 * The '<em><b>MUST</b></em>' literal value.
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @see #MUST
132 * @model literal="must"
133 * @generated
134 * @ordered
135 */
136 public static final int MUST_VALUE = 4;
137
138 /**
139 * The '<em><b>CURRENT</b></em>' literal value.
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @see #CURRENT
143 * @model literal="current"
144 * @generated
145 * @ordered
146 */
147 public static final int CURRENT_VALUE = 5;
148
149 /**
150 * An array of all the '<em><b>Unary Op</b></em>' enumerators.
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 private static final UnaryOp[] VALUES_ARRAY =
156 new UnaryOp[]
157 {
158 NEG,
159 PLUS,
160 MINUS,
161 MAY,
162 MUST,
163 CURRENT,
164 };
165
166 /**
167 * A public read-only list of all the '<em><b>Unary Op</b></em>' enumerators.
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @generated
171 */
172 public static final List<UnaryOp> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
173
174 /**
175 * Returns the '<em><b>Unary Op</b></em>' literal with the specified literal value.
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @param literal the literal.
179 * @return the matching enumerator or <code>null</code>.
180 * @generated
181 */
182 public static UnaryOp get(String literal)
183 {
184 for (int i = 0; i < VALUES_ARRAY.length; ++i)
185 {
186 UnaryOp result = VALUES_ARRAY[i];
187 if (result.toString().equals(literal))
188 {
189 return result;
190 }
191 }
192 return null;
193 }
194
195 /**
196 * Returns the '<em><b>Unary Op</b></em>' literal with the specified name.
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @param name the name.
200 * @return the matching enumerator or <code>null</code>.
201 * @generated
202 */
203 public static UnaryOp getByName(String name)
204 {
205 for (int i = 0; i < VALUES_ARRAY.length; ++i)
206 {
207 UnaryOp result = VALUES_ARRAY[i];
208 if (result.getName().equals(name))
209 {
210 return result;
211 }
212 }
213 return null;
214 }
215
216 /**
217 * Returns the '<em><b>Unary Op</b></em>' literal with the specified integer value.
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @param value the integer value.
221 * @return the matching enumerator or <code>null</code>.
222 * @generated
223 */
224 public static UnaryOp get(int value)
225 {
226 switch (value)
227 {
228 case NEG_VALUE: return NEG;
229 case PLUS_VALUE: return PLUS;
230 case MINUS_VALUE: return MINUS;
231 case MAY_VALUE: return MAY;
232 case MUST_VALUE: return MUST;
233 case CURRENT_VALUE: return CURRENT;
234 }
235 return null;
236 }
237
238 /**
239 * <!-- begin-user-doc -->
240 * <!-- end-user-doc -->
241 * @generated
242 */
243 private final int value;
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 private final String name;
251
252 /**
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @generated
256 */
257 private final String literal;
258
259 /**
260 * Only this class can construct instances.
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 private UnaryOp(int value, String name, String literal)
266 {
267 this.value = value;
268 this.name = name;
269 this.literal = literal;
270 }
271
272 /**
273 * <!-- begin-user-doc -->
274 * <!-- end-user-doc -->
275 * @generated
276 */
277 @Override
278 public int getValue()
279 {
280 return value;
281 }
282
283 /**
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 */
288 @Override
289 public String getName()
290 {
291 return name;
292 }
293
294 /**
295 * <!-- begin-user-doc -->
296 * <!-- end-user-doc -->
297 * @generated
298 */
299 @Override
300 public String getLiteral()
301 {
302 return literal;
303 }
304
305 /**
306 * Returns the literal value of the enumerator, which is its string representation.
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public String toString()
313 {
314 return literal;
315 }
316
317} //UnaryOp
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Unknown.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Unknown.java
deleted file mode 100644
index 496f433a..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Unknown.java
+++ /dev/null
@@ -1,19 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Unknown</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnknown()
14 * @model
15 * @generated
16 */
17public interface Unknown extends TruthValue
18{
19} // Unknown
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedErrorPrediateDefinition.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedErrorPrediateDefinition.java
new file mode 100644
index 00000000..54621550
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedErrorPrediateDefinition.java
@@ -0,0 +1,70 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Unnamed Error Prediate Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getArgumentList <em>Argument List</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getBody <em>Body</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedErrorPrediateDefinition()
21 * @model
22 * @generated
23 */
24public interface UnnamedErrorPrediateDefinition extends Statement
25{
26 /**
27 * Returns the value of the '<em><b>Argument List</b></em>' containment reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Argument List</em>' containment reference.
31 * @see #setArgumentList(ArgumentList)
32 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedErrorPrediateDefinition_ArgumentList()
33 * @model containment="true"
34 * @generated
35 */
36 ArgumentList getArgumentList();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getArgumentList <em>Argument List</em>}' containment reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Argument List</em>' containment reference.
43 * @see #getArgumentList()
44 * @generated
45 */
46 void setArgumentList(ArgumentList value);
47
48 /**
49 * Returns the value of the '<em><b>Body</b></em>' containment reference.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Body</em>' containment reference.
53 * @see #setBody(Expression)
54 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedErrorPrediateDefinition_Body()
55 * @model containment="true"
56 * @generated
57 */
58 Expression getBody();
59
60 /**
61 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getBody <em>Body</em>}' containment reference.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Body</em>' containment reference.
65 * @see #getBody()
66 * @generated
67 */
68 void setBody(Expression value);
69
70} // UnnamedErrorPrediateDefinition
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedObject.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedObject.java
deleted file mode 100644
index 152ee782..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedObject.java
+++ /dev/null
@@ -1,47 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Unnamed Object</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject#getName <em>Name</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedObject()
20 * @model
21 * @generated
22 */
23public interface UnnamedObject extends org.eclipse.viatra.solver.language.solverLanguage.Object
24{
25 /**
26 * Returns the value of the '<em><b>Name</b></em>' attribute.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Name</em>' attribute.
30 * @see #setName(String)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedObject_Name()
32 * @model
33 * @generated
34 */
35 String getName();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject#getName <em>Name</em>}' attribute.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Name</em>' attribute.
42 * @see #getName()
43 * @generated
44 */
45 void setName(String value);
46
47} // UnnamedObject
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Variable.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Variable.java
deleted file mode 100644
index 2f915fa7..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Variable.java
+++ /dev/null
@@ -1,47 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage;
5
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Variable</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.Variable#getName <em>Name</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getVariable()
20 * @model
21 * @generated
22 */
23public interface Variable extends Literal
24{
25 /**
26 * Returns the value of the '<em><b>Name</b></em>' attribute.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Name</em>' attribute.
30 * @see #setName(String)
31 * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getVariable_Name()
32 * @model
33 * @generated
34 */
35 String getName();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Variable#getName <em>Name</em>}' attribute.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Name</em>' attribute.
42 * @see #getName()
43 * @generated
44 */
45 void setName(String value);
46
47} // Variable
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AggregationImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AggregationImpl.java
new file mode 100644
index 00000000..542f3c40
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AggregationImpl.java
@@ -0,0 +1,343 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Aggregation;
15import org.eclipse.viatra.solver.language.solverLanguage.AggregationOp;
16import org.eclipse.viatra.solver.language.solverLanguage.Expression;
17import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Aggregation</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl#getOp <em>Op</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl#getBody <em>Body</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl#getCondition <em>Condition</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class AggregationImpl extends ExpressionImpl implements Aggregation
35{
36 /**
37 * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getOp()
41 * @generated
42 * @ordered
43 */
44 protected static final AggregationOp OP_EDEFAULT = AggregationOp.ONLY;
45
46 /**
47 * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @see #getOp()
51 * @generated
52 * @ordered
53 */
54 protected AggregationOp op = OP_EDEFAULT;
55
56 /**
57 * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @see #getBody()
61 * @generated
62 * @ordered
63 */
64 protected Expression body;
65
66 /**
67 * The cached value of the '{@link #getCondition() <em>Condition</em>}' containment reference.
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @see #getCondition()
71 * @generated
72 * @ordered
73 */
74 protected Expression condition;
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 protected AggregationImpl()
82 {
83 super();
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 @Override
92 protected EClass eStaticClass()
93 {
94 return SolverLanguagePackage.Literals.AGGREGATION;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public AggregationOp getOp()
104 {
105 return op;
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 @Override
114 public void setOp(AggregationOp newOp)
115 {
116 AggregationOp oldOp = op;
117 op = newOp == null ? OP_EDEFAULT : newOp;
118 if (eNotificationRequired())
119 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__OP, oldOp, op));
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 @Override
128 public Expression getBody()
129 {
130 return body;
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs)
139 {
140 Expression oldBody = body;
141 body = newBody;
142 if (eNotificationRequired())
143 {
144 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__BODY, oldBody, newBody);
145 if (msgs == null) msgs = notification; else msgs.add(notification);
146 }
147 return msgs;
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 @Override
156 public void setBody(Expression newBody)
157 {
158 if (newBody != body)
159 {
160 NotificationChain msgs = null;
161 if (body != null)
162 msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.AGGREGATION__BODY, null, msgs);
163 if (newBody != null)
164 msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.AGGREGATION__BODY, null, msgs);
165 msgs = basicSetBody(newBody, msgs);
166 if (msgs != null) msgs.dispatch();
167 }
168 else if (eNotificationRequired())
169 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__BODY, newBody, newBody));
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
178 public Expression getCondition()
179 {
180 return condition;
181 }
182
183 /**
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @generated
187 */
188 public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs)
189 {
190 Expression oldCondition = condition;
191 condition = newCondition;
192 if (eNotificationRequired())
193 {
194 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__CONDITION, oldCondition, newCondition);
195 if (msgs == null) msgs = notification; else msgs.add(notification);
196 }
197 return msgs;
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public void setCondition(Expression newCondition)
207 {
208 if (newCondition != condition)
209 {
210 NotificationChain msgs = null;
211 if (condition != null)
212 msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.AGGREGATION__CONDITION, null, msgs);
213 if (newCondition != null)
214 msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.AGGREGATION__CONDITION, null, msgs);
215 msgs = basicSetCondition(newCondition, msgs);
216 if (msgs != null) msgs.dispatch();
217 }
218 else if (eNotificationRequired())
219 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__CONDITION, newCondition, newCondition));
220 }
221
222 /**
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
229 {
230 switch (featureID)
231 {
232 case SolverLanguagePackage.AGGREGATION__BODY:
233 return basicSetBody(null, msgs);
234 case SolverLanguagePackage.AGGREGATION__CONDITION:
235 return basicSetCondition(null, msgs);
236 }
237 return super.eInverseRemove(otherEnd, featureID, msgs);
238 }
239
240 /**
241 * <!-- begin-user-doc -->
242 * <!-- end-user-doc -->
243 * @generated
244 */
245 @Override
246 public Object eGet(int featureID, boolean resolve, boolean coreType)
247 {
248 switch (featureID)
249 {
250 case SolverLanguagePackage.AGGREGATION__OP:
251 return getOp();
252 case SolverLanguagePackage.AGGREGATION__BODY:
253 return getBody();
254 case SolverLanguagePackage.AGGREGATION__CONDITION:
255 return getCondition();
256 }
257 return super.eGet(featureID, resolve, coreType);
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public void eSet(int featureID, Object newValue)
267 {
268 switch (featureID)
269 {
270 case SolverLanguagePackage.AGGREGATION__OP:
271 setOp((AggregationOp)newValue);
272 return;
273 case SolverLanguagePackage.AGGREGATION__BODY:
274 setBody((Expression)newValue);
275 return;
276 case SolverLanguagePackage.AGGREGATION__CONDITION:
277 setCondition((Expression)newValue);
278 return;
279 }
280 super.eSet(featureID, newValue);
281 }
282
283 /**
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 */
288 @Override
289 public void eUnset(int featureID)
290 {
291 switch (featureID)
292 {
293 case SolverLanguagePackage.AGGREGATION__OP:
294 setOp(OP_EDEFAULT);
295 return;
296 case SolverLanguagePackage.AGGREGATION__BODY:
297 setBody((Expression)null);
298 return;
299 case SolverLanguagePackage.AGGREGATION__CONDITION:
300 setCondition((Expression)null);
301 return;
302 }
303 super.eUnset(featureID);
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public boolean eIsSet(int featureID)
313 {
314 switch (featureID)
315 {
316 case SolverLanguagePackage.AGGREGATION__OP:
317 return op != OP_EDEFAULT;
318 case SolverLanguagePackage.AGGREGATION__BODY:
319 return body != null;
320 case SolverLanguagePackage.AGGREGATION__CONDITION:
321 return condition != null;
322 }
323 return super.eIsSet(featureID);
324 }
325
326 /**
327 * <!-- begin-user-doc -->
328 * <!-- end-user-doc -->
329 * @generated
330 */
331 @Override
332 public String toString()
333 {
334 if (eIsProxy()) return super.toString();
335
336 StringBuilder result = new StringBuilder(super.toString());
337 result.append(" (op: ");
338 result.append(op);
339 result.append(')');
340 return result.toString();
341 }
342
343} //AggregationImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PolarityImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentImpl.java
index 7c2ae07d..d8bf8d91 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PolarityImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -7,24 +7,24 @@ import org.eclipse.emf.ecore.EClass;
7 7
8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
9 9
10import org.eclipse.viatra.solver.language.solverLanguage.Polarity; 10import org.eclipse.viatra.solver.language.solverLanguage.Argument;
11import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 11import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
12 12
13/** 13/**
14 * <!-- begin-user-doc --> 14 * <!-- begin-user-doc -->
15 * An implementation of the model object '<em><b>Polarity</b></em>'. 15 * An implementation of the model object '<em><b>Argument</b></em>'.
16 * <!-- end-user-doc --> 16 * <!-- end-user-doc -->
17 * 17 *
18 * @generated 18 * @generated
19 */ 19 */
20public class PolarityImpl extends MinimalEObjectImpl.Container implements Polarity 20public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argument
21{ 21{
22 /** 22 /**
23 * <!-- begin-user-doc --> 23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc --> 24 * <!-- end-user-doc -->
25 * @generated 25 * @generated
26 */ 26 */
27 protected PolarityImpl() 27 protected ArgumentImpl()
28 { 28 {
29 super(); 29 super();
30 } 30 }
@@ -37,7 +37,7 @@ public class PolarityImpl extends MinimalEObjectImpl.Container implements Polari
37 @Override 37 @Override
38 protected EClass eStaticClass() 38 protected EClass eStaticClass()
39 { 39 {
40 return SolverLanguagePackage.Literals.POLARITY; 40 return SolverLanguagePackage.Literals.ARGUMENT;
41 } 41 }
42 42
43} //PolarityImpl 43} //ArgumentImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PatternBodyImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentListImpl.java
index 5cd03fbf..8c16fb4f 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PatternBodyImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentListImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -17,41 +17,41 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17import org.eclipse.emf.ecore.util.EObjectContainmentEList; 17import org.eclipse.emf.ecore.util.EObjectContainmentEList;
18import org.eclipse.emf.ecore.util.InternalEList; 18import org.eclipse.emf.ecore.util.InternalEList;
19 19
20import org.eclipse.viatra.solver.language.solverLanguage.Constraint; 20import org.eclipse.viatra.solver.language.solverLanguage.Argument;
21import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; 21import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList;
22import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 22import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
23 23
24/** 24/**
25 * <!-- begin-user-doc --> 25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Pattern Body</b></em>'. 26 * An implementation of the model object '<em><b>Argument List</b></em>'.
27 * <!-- end-user-doc --> 27 * <!-- end-user-doc -->
28 * <p> 28 * <p>
29 * The following features are implemented: 29 * The following features are implemented:
30 * </p> 30 * </p>
31 * <ul> 31 * <ul>
32 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl#getConstraints <em>Constraints</em>}</li> 32 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl#getArguments <em>Arguments</em>}</li>
33 * </ul> 33 * </ul>
34 * 34 *
35 * @generated 35 * @generated
36 */ 36 */
37public class PatternBodyImpl extends MinimalEObjectImpl.Container implements PatternBody 37public class ArgumentListImpl extends MinimalEObjectImpl.Container implements ArgumentList
38{ 38{
39 /** 39 /**
40 * The cached value of the '{@link #getConstraints() <em>Constraints</em>}' containment reference list. 40 * The cached value of the '{@link #getArguments() <em>Arguments</em>}' containment reference list.
41 * <!-- begin-user-doc --> 41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc --> 42 * <!-- end-user-doc -->
43 * @see #getConstraints() 43 * @see #getArguments()
44 * @generated 44 * @generated
45 * @ordered 45 * @ordered
46 */ 46 */
47 protected EList<Constraint> constraints; 47 protected EList<Argument> arguments;
48 48
49 /** 49 /**
50 * <!-- begin-user-doc --> 50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc --> 51 * <!-- end-user-doc -->
52 * @generated 52 * @generated
53 */ 53 */
54 protected PatternBodyImpl() 54 protected ArgumentListImpl()
55 { 55 {
56 super(); 56 super();
57 } 57 }
@@ -64,7 +64,7 @@ public class PatternBodyImpl extends MinimalEObjectImpl.Container implements Pat
64 @Override 64 @Override
65 protected EClass eStaticClass() 65 protected EClass eStaticClass()
66 { 66 {
67 return SolverLanguagePackage.Literals.PATTERN_BODY; 67 return SolverLanguagePackage.Literals.ARGUMENT_LIST;
68 } 68 }
69 69
70 /** 70 /**
@@ -73,13 +73,13 @@ public class PatternBodyImpl extends MinimalEObjectImpl.Container implements Pat
73 * @generated 73 * @generated
74 */ 74 */
75 @Override 75 @Override
76 public EList<Constraint> getConstraints() 76 public EList<Argument> getArguments()
77 { 77 {
78 if (constraints == null) 78 if (arguments == null)
79 { 79 {
80 constraints = new EObjectContainmentEList<Constraint>(Constraint.class, this, SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS); 80 arguments = new EObjectContainmentEList<Argument>(Argument.class, this, SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS);
81 } 81 }
82 return constraints; 82 return arguments;
83 } 83 }
84 84
85 /** 85 /**
@@ -92,8 +92,8 @@ public class PatternBodyImpl extends MinimalEObjectImpl.Container implements Pat
92 { 92 {
93 switch (featureID) 93 switch (featureID)
94 { 94 {
95 case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: 95 case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS:
96 return ((InternalEList<?>)getConstraints()).basicRemove(otherEnd, msgs); 96 return ((InternalEList<?>)getArguments()).basicRemove(otherEnd, msgs);
97 } 97 }
98 return super.eInverseRemove(otherEnd, featureID, msgs); 98 return super.eInverseRemove(otherEnd, featureID, msgs);
99 } 99 }
@@ -108,8 +108,8 @@ public class PatternBodyImpl extends MinimalEObjectImpl.Container implements Pat
108 { 108 {
109 switch (featureID) 109 switch (featureID)
110 { 110 {
111 case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: 111 case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS:
112 return getConstraints(); 112 return getArguments();
113 } 113 }
114 return super.eGet(featureID, resolve, coreType); 114 return super.eGet(featureID, resolve, coreType);
115 } 115 }
@@ -125,9 +125,9 @@ public class PatternBodyImpl extends MinimalEObjectImpl.Container implements Pat
125 { 125 {
126 switch (featureID) 126 switch (featureID)
127 { 127 {
128 case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: 128 case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS:
129 getConstraints().clear(); 129 getArguments().clear();
130 getConstraints().addAll((Collection<? extends Constraint>)newValue); 130 getArguments().addAll((Collection<? extends Argument>)newValue);
131 return; 131 return;
132 } 132 }
133 super.eSet(featureID, newValue); 133 super.eSet(featureID, newValue);
@@ -143,8 +143,8 @@ public class PatternBodyImpl extends MinimalEObjectImpl.Container implements Pat
143 { 143 {
144 switch (featureID) 144 switch (featureID)
145 { 145 {
146 case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: 146 case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS:
147 getConstraints().clear(); 147 getArguments().clear();
148 return; 148 return;
149 } 149 }
150 super.eUnset(featureID); 150 super.eUnset(featureID);
@@ -160,10 +160,10 @@ public class PatternBodyImpl extends MinimalEObjectImpl.Container implements Pat
160 { 160 {
161 switch (featureID) 161 switch (featureID)
162 { 162 {
163 case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: 163 case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS:
164 return constraints != null && !constraints.isEmpty(); 164 return arguments != null && !arguments.isEmpty();
165 } 165 }
166 return super.eIsSet(featureID); 166 return super.eIsSet(featureID);
167 } 167 }
168 168
169} //PatternBodyImpl 169} //ArgumentListImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ParameterImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AssertionImpl.java
index 6281c4bc..8165b62e 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ParameterImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AssertionImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -10,55 +10,53 @@ import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject; 10import org.eclipse.emf.ecore.InternalEObject;
11 11
12import org.eclipse.emf.ecore.impl.ENotificationImpl; 12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
14 13
15import org.eclipse.viatra.solver.language.solverLanguage.Parameter; 14import org.eclipse.viatra.solver.language.solverLanguage.Assertion;
15import org.eclipse.viatra.solver.language.solverLanguage.Expression;
16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
17import org.eclipse.viatra.solver.language.solverLanguage.Symbol;
18import org.eclipse.viatra.solver.language.solverLanguage.Variable;
19 17
20/** 18/**
21 * <!-- begin-user-doc --> 19 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>Parameter</b></em>'. 20 * An implementation of the model object '<em><b>Assertion</b></em>'.
23 * <!-- end-user-doc --> 21 * <!-- end-user-doc -->
24 * <p> 22 * <p>
25 * The following features are implemented: 23 * The following features are implemented:
26 * </p> 24 * </p>
27 * <ul> 25 * <ul>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl#getVariable <em>Variable</em>}</li> 26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl#getBody <em>Body</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl#getType <em>Type</em>}</li> 27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl#getRange <em>Range</em>}</li>
30 * </ul> 28 * </ul>
31 * 29 *
32 * @generated 30 * @generated
33 */ 31 */
34public class ParameterImpl extends MinimalEObjectImpl.Container implements Parameter 32public class AssertionImpl extends StatementImpl implements Assertion
35{ 33{
36 /** 34 /**
37 * The cached value of the '{@link #getVariable() <em>Variable</em>}' containment reference. 35 * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
38 * <!-- begin-user-doc --> 36 * <!-- begin-user-doc -->
39 * <!-- end-user-doc --> 37 * <!-- end-user-doc -->
40 * @see #getVariable() 38 * @see #getBody()
41 * @generated 39 * @generated
42 * @ordered 40 * @ordered
43 */ 41 */
44 protected Variable variable; 42 protected Expression body;
45 43
46 /** 44 /**
47 * The cached value of the '{@link #getType() <em>Type</em>}' containment reference. 45 * The cached value of the '{@link #getRange() <em>Range</em>}' containment reference.
48 * <!-- begin-user-doc --> 46 * <!-- begin-user-doc -->
49 * <!-- end-user-doc --> 47 * <!-- end-user-doc -->
50 * @see #getType() 48 * @see #getRange()
51 * @generated 49 * @generated
52 * @ordered 50 * @ordered
53 */ 51 */
54 protected Symbol type; 52 protected Expression range;
55 53
56 /** 54 /**
57 * <!-- begin-user-doc --> 55 * <!-- begin-user-doc -->
58 * <!-- end-user-doc --> 56 * <!-- end-user-doc -->
59 * @generated 57 * @generated
60 */ 58 */
61 protected ParameterImpl() 59 protected AssertionImpl()
62 { 60 {
63 super(); 61 super();
64 } 62 }
@@ -71,7 +69,7 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
71 @Override 69 @Override
72 protected EClass eStaticClass() 70 protected EClass eStaticClass()
73 { 71 {
74 return SolverLanguagePackage.Literals.PARAMETER; 72 return SolverLanguagePackage.Literals.ASSERTION;
75 } 73 }
76 74
77 /** 75 /**
@@ -80,9 +78,9 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
80 * @generated 78 * @generated
81 */ 79 */
82 @Override 80 @Override
83 public Variable getVariable() 81 public Expression getBody()
84 { 82 {
85 return variable; 83 return body;
86 } 84 }
87 85
88 /** 86 /**
@@ -90,13 +88,13 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
90 * <!-- end-user-doc --> 88 * <!-- end-user-doc -->
91 * @generated 89 * @generated
92 */ 90 */
93 public NotificationChain basicSetVariable(Variable newVariable, NotificationChain msgs) 91 public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs)
94 { 92 {
95 Variable oldVariable = variable; 93 Expression oldBody = body;
96 variable = newVariable; 94 body = newBody;
97 if (eNotificationRequired()) 95 if (eNotificationRequired())
98 { 96 {
99 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PARAMETER__VARIABLE, oldVariable, newVariable); 97 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ASSERTION__BODY, oldBody, newBody);
100 if (msgs == null) msgs = notification; else msgs.add(notification); 98 if (msgs == null) msgs = notification; else msgs.add(notification);
101 } 99 }
102 return msgs; 100 return msgs;
@@ -108,20 +106,20 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
108 * @generated 106 * @generated
109 */ 107 */
110 @Override 108 @Override
111 public void setVariable(Variable newVariable) 109 public void setBody(Expression newBody)
112 { 110 {
113 if (newVariable != variable) 111 if (newBody != body)
114 { 112 {
115 NotificationChain msgs = null; 113 NotificationChain msgs = null;
116 if (variable != null) 114 if (body != null)
117 msgs = ((InternalEObject)variable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PARAMETER__VARIABLE, null, msgs); 115 msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ASSERTION__BODY, null, msgs);
118 if (newVariable != null) 116 if (newBody != null)
119 msgs = ((InternalEObject)newVariable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PARAMETER__VARIABLE, null, msgs); 117 msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ASSERTION__BODY, null, msgs);
120 msgs = basicSetVariable(newVariable, msgs); 118 msgs = basicSetBody(newBody, msgs);
121 if (msgs != null) msgs.dispatch(); 119 if (msgs != null) msgs.dispatch();
122 } 120 }
123 else if (eNotificationRequired()) 121 else if (eNotificationRequired())
124 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PARAMETER__VARIABLE, newVariable, newVariable)); 122 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ASSERTION__BODY, newBody, newBody));
125 } 123 }
126 124
127 /** 125 /**
@@ -130,9 +128,9 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
130 * @generated 128 * @generated
131 */ 129 */
132 @Override 130 @Override
133 public Symbol getType() 131 public Expression getRange()
134 { 132 {
135 return type; 133 return range;
136 } 134 }
137 135
138 /** 136 /**
@@ -140,13 +138,13 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
140 * <!-- end-user-doc --> 138 * <!-- end-user-doc -->
141 * @generated 139 * @generated
142 */ 140 */
143 public NotificationChain basicSetType(Symbol newType, NotificationChain msgs) 141 public NotificationChain basicSetRange(Expression newRange, NotificationChain msgs)
144 { 142 {
145 Symbol oldType = type; 143 Expression oldRange = range;
146 type = newType; 144 range = newRange;
147 if (eNotificationRequired()) 145 if (eNotificationRequired())
148 { 146 {
149 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PARAMETER__TYPE, oldType, newType); 147 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ASSERTION__RANGE, oldRange, newRange);
150 if (msgs == null) msgs = notification; else msgs.add(notification); 148 if (msgs == null) msgs = notification; else msgs.add(notification);
151 } 149 }
152 return msgs; 150 return msgs;
@@ -158,20 +156,20 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
158 * @generated 156 * @generated
159 */ 157 */
160 @Override 158 @Override
161 public void setType(Symbol newType) 159 public void setRange(Expression newRange)
162 { 160 {
163 if (newType != type) 161 if (newRange != range)
164 { 162 {
165 NotificationChain msgs = null; 163 NotificationChain msgs = null;
166 if (type != null) 164 if (range != null)
167 msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PARAMETER__TYPE, null, msgs); 165 msgs = ((InternalEObject)range).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ASSERTION__RANGE, null, msgs);
168 if (newType != null) 166 if (newRange != null)
169 msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PARAMETER__TYPE, null, msgs); 167 msgs = ((InternalEObject)newRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ASSERTION__RANGE, null, msgs);
170 msgs = basicSetType(newType, msgs); 168 msgs = basicSetRange(newRange, msgs);
171 if (msgs != null) msgs.dispatch(); 169 if (msgs != null) msgs.dispatch();
172 } 170 }
173 else if (eNotificationRequired()) 171 else if (eNotificationRequired())
174 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PARAMETER__TYPE, newType, newType)); 172 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ASSERTION__RANGE, newRange, newRange));
175 } 173 }
176 174
177 /** 175 /**
@@ -184,10 +182,10 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
184 { 182 {
185 switch (featureID) 183 switch (featureID)
186 { 184 {
187 case SolverLanguagePackage.PARAMETER__VARIABLE: 185 case SolverLanguagePackage.ASSERTION__BODY:
188 return basicSetVariable(null, msgs); 186 return basicSetBody(null, msgs);
189 case SolverLanguagePackage.PARAMETER__TYPE: 187 case SolverLanguagePackage.ASSERTION__RANGE:
190 return basicSetType(null, msgs); 188 return basicSetRange(null, msgs);
191 } 189 }
192 return super.eInverseRemove(otherEnd, featureID, msgs); 190 return super.eInverseRemove(otherEnd, featureID, msgs);
193 } 191 }
@@ -202,10 +200,10 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
202 { 200 {
203 switch (featureID) 201 switch (featureID)
204 { 202 {
205 case SolverLanguagePackage.PARAMETER__VARIABLE: 203 case SolverLanguagePackage.ASSERTION__BODY:
206 return getVariable(); 204 return getBody();
207 case SolverLanguagePackage.PARAMETER__TYPE: 205 case SolverLanguagePackage.ASSERTION__RANGE:
208 return getType(); 206 return getRange();
209 } 207 }
210 return super.eGet(featureID, resolve, coreType); 208 return super.eGet(featureID, resolve, coreType);
211 } 209 }
@@ -220,11 +218,11 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
220 { 218 {
221 switch (featureID) 219 switch (featureID)
222 { 220 {
223 case SolverLanguagePackage.PARAMETER__VARIABLE: 221 case SolverLanguagePackage.ASSERTION__BODY:
224 setVariable((Variable)newValue); 222 setBody((Expression)newValue);
225 return; 223 return;
226 case SolverLanguagePackage.PARAMETER__TYPE: 224 case SolverLanguagePackage.ASSERTION__RANGE:
227 setType((Symbol)newValue); 225 setRange((Expression)newValue);
228 return; 226 return;
229 } 227 }
230 super.eSet(featureID, newValue); 228 super.eSet(featureID, newValue);
@@ -240,11 +238,11 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
240 { 238 {
241 switch (featureID) 239 switch (featureID)
242 { 240 {
243 case SolverLanguagePackage.PARAMETER__VARIABLE: 241 case SolverLanguagePackage.ASSERTION__BODY:
244 setVariable((Variable)null); 242 setBody((Expression)null);
245 return; 243 return;
246 case SolverLanguagePackage.PARAMETER__TYPE: 244 case SolverLanguagePackage.ASSERTION__RANGE:
247 setType((Symbol)null); 245 setRange((Expression)null);
248 return; 246 return;
249 } 247 }
250 super.eUnset(featureID); 248 super.eUnset(featureID);
@@ -260,12 +258,12 @@ public class ParameterImpl extends MinimalEObjectImpl.Container implements Param
260 { 258 {
261 switch (featureID) 259 switch (featureID)
262 { 260 {
263 case SolverLanguagePackage.PARAMETER__VARIABLE: 261 case SolverLanguagePackage.ASSERTION__BODY:
264 return variable != null; 262 return body != null;
265 case SolverLanguagePackage.PARAMETER__TYPE: 263 case SolverLanguagePackage.ASSERTION__RANGE:
266 return type != null; 264 return range != null;
267 } 265 }
268 return super.eIsSet(featureID); 266 return super.eIsSet(featureID);
269 } 267 }
270 268
271} //ParameterImpl 269} //AssertionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BasicInterpretationImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BasicInterpretationImpl.java
deleted file mode 100644
index aef515f6..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BasicInterpretationImpl.java
+++ /dev/null
@@ -1,318 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import java.util.Collection;
7
8import org.eclipse.emf.common.notify.Notification;
9import org.eclipse.emf.common.notify.NotificationChain;
10
11import org.eclipse.emf.common.util.EList;
12
13import org.eclipse.emf.ecore.EClass;
14import org.eclipse.emf.ecore.InternalEObject;
15
16import org.eclipse.emf.ecore.impl.ENotificationImpl;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation;
22import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject;
23import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
24import org.eclipse.viatra.solver.language.solverLanguage.Symbol;
25import org.eclipse.viatra.solver.language.solverLanguage.TruthValue;
26
27/**
28 * <!-- begin-user-doc -->
29 * An implementation of the model object '<em><b>Basic Interpretation</b></em>'.
30 * <!-- end-user-doc -->
31 * <p>
32 * The following features are implemented:
33 * </p>
34 * <ul>
35 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl#getSymbol <em>Symbol</em>}</li>
36 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl#getObjects <em>Objects</em>}</li>
37 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl#getValue <em>Value</em>}</li>
38 * </ul>
39 *
40 * @generated
41 */
42public class BasicInterpretationImpl extends InterpretationImpl implements BasicInterpretation
43{
44 /**
45 * The cached value of the '{@link #getSymbol() <em>Symbol</em>}' containment reference.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getSymbol()
49 * @generated
50 * @ordered
51 */
52 protected Symbol symbol;
53
54 /**
55 * The cached value of the '{@link #getObjects() <em>Objects</em>}' containment reference list.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #getObjects()
59 * @generated
60 * @ordered
61 */
62 protected EList<ComplexObject> objects;
63
64 /**
65 * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @see #getValue()
69 * @generated
70 * @ordered
71 */
72 protected TruthValue value;
73
74 /**
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @generated
78 */
79 protected BasicInterpretationImpl()
80 {
81 super();
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 @Override
90 protected EClass eStaticClass()
91 {
92 return SolverLanguagePackage.Literals.BASIC_INTERPRETATION;
93 }
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 @Override
101 public Symbol getSymbol()
102 {
103 return symbol;
104 }
105
106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 public NotificationChain basicSetSymbol(Symbol newSymbol, NotificationChain msgs)
112 {
113 Symbol oldSymbol = symbol;
114 symbol = newSymbol;
115 if (eNotificationRequired())
116 {
117 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL, oldSymbol, newSymbol);
118 if (msgs == null) msgs = notification; else msgs.add(notification);
119 }
120 return msgs;
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 @Override
129 public void setSymbol(Symbol newSymbol)
130 {
131 if (newSymbol != symbol)
132 {
133 NotificationChain msgs = null;
134 if (symbol != null)
135 msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL, null, msgs);
136 if (newSymbol != null)
137 msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL, null, msgs);
138 msgs = basicSetSymbol(newSymbol, msgs);
139 if (msgs != null) msgs.dispatch();
140 }
141 else if (eNotificationRequired())
142 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL, newSymbol, newSymbol));
143 }
144
145 /**
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 */
150 @Override
151 public EList<ComplexObject> getObjects()
152 {
153 if (objects == null)
154 {
155 objects = new EObjectContainmentEList<ComplexObject>(ComplexObject.class, this, SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS);
156 }
157 return objects;
158 }
159
160 /**
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @generated
164 */
165 @Override
166 public TruthValue getValue()
167 {
168 return value;
169 }
170
171 /**
172 * <!-- begin-user-doc -->
173 * <!-- end-user-doc -->
174 * @generated
175 */
176 public NotificationChain basicSetValue(TruthValue newValue, NotificationChain msgs)
177 {
178 TruthValue oldValue = value;
179 value = newValue;
180 if (eNotificationRequired())
181 {
182 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BASIC_INTERPRETATION__VALUE, oldValue, newValue);
183 if (msgs == null) msgs = notification; else msgs.add(notification);
184 }
185 return msgs;
186 }
187
188 /**
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @generated
192 */
193 @Override
194 public void setValue(TruthValue newValue)
195 {
196 if (newValue != value)
197 {
198 NotificationChain msgs = null;
199 if (value != null)
200 msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BASIC_INTERPRETATION__VALUE, null, msgs);
201 if (newValue != null)
202 msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BASIC_INTERPRETATION__VALUE, null, msgs);
203 msgs = basicSetValue(newValue, msgs);
204 if (msgs != null) msgs.dispatch();
205 }
206 else if (eNotificationRequired())
207 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BASIC_INTERPRETATION__VALUE, newValue, newValue));
208 }
209
210 /**
211 * <!-- begin-user-doc -->
212 * <!-- end-user-doc -->
213 * @generated
214 */
215 @Override
216 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
217 {
218 switch (featureID)
219 {
220 case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL:
221 return basicSetSymbol(null, msgs);
222 case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS:
223 return ((InternalEList<?>)getObjects()).basicRemove(otherEnd, msgs);
224 case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE:
225 return basicSetValue(null, msgs);
226 }
227 return super.eInverseRemove(otherEnd, featureID, msgs);
228 }
229
230 /**
231 * <!-- begin-user-doc -->
232 * <!-- end-user-doc -->
233 * @generated
234 */
235 @Override
236 public Object eGet(int featureID, boolean resolve, boolean coreType)
237 {
238 switch (featureID)
239 {
240 case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL:
241 return getSymbol();
242 case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS:
243 return getObjects();
244 case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE:
245 return getValue();
246 }
247 return super.eGet(featureID, resolve, coreType);
248 }
249
250 /**
251 * <!-- begin-user-doc -->
252 * <!-- end-user-doc -->
253 * @generated
254 */
255 @SuppressWarnings("unchecked")
256 @Override
257 public void eSet(int featureID, Object newValue)
258 {
259 switch (featureID)
260 {
261 case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL:
262 setSymbol((Symbol)newValue);
263 return;
264 case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS:
265 getObjects().clear();
266 getObjects().addAll((Collection<? extends ComplexObject>)newValue);
267 return;
268 case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE:
269 setValue((TruthValue)newValue);
270 return;
271 }
272 super.eSet(featureID, newValue);
273 }
274
275 /**
276 * <!-- begin-user-doc -->
277 * <!-- end-user-doc -->
278 * @generated
279 */
280 @Override
281 public void eUnset(int featureID)
282 {
283 switch (featureID)
284 {
285 case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL:
286 setSymbol((Symbol)null);
287 return;
288 case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS:
289 getObjects().clear();
290 return;
291 case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE:
292 setValue((TruthValue)null);
293 return;
294 }
295 super.eUnset(featureID);
296 }
297
298 /**
299 * <!-- begin-user-doc -->
300 * <!-- end-user-doc -->
301 * @generated
302 */
303 @Override
304 public boolean eIsSet(int featureID)
305 {
306 switch (featureID)
307 {
308 case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL:
309 return symbol != null;
310 case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS:
311 return objects != null && !objects.isEmpty();
312 case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE:
313 return value != null;
314 }
315 return super.eIsSet(featureID);
316 }
317
318} //BasicInterpretationImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BinaryExpressionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BinaryExpressionImpl.java
new file mode 100644
index 00000000..adc94c4a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BinaryExpressionImpl.java
@@ -0,0 +1,343 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression;
15import org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator;
16import org.eclipse.viatra.solver.language.solverLanguage.Expression;
17import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Binary Expression</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl#getLeft <em>Left</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl#getOp <em>Op</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl#getRight <em>Right</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class BinaryExpressionImpl extends ExpressionImpl implements BinaryExpression
35{
36 /**
37 * The cached value of the '{@link #getLeft() <em>Left</em>}' containment reference.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getLeft()
41 * @generated
42 * @ordered
43 */
44 protected Expression left;
45
46 /**
47 * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @see #getOp()
51 * @generated
52 * @ordered
53 */
54 protected static final BinaryOperator OP_EDEFAULT = BinaryOperator.EQ;
55
56 /**
57 * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @see #getOp()
61 * @generated
62 * @ordered
63 */
64 protected BinaryOperator op = OP_EDEFAULT;
65
66 /**
67 * The cached value of the '{@link #getRight() <em>Right</em>}' containment reference.
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @see #getRight()
71 * @generated
72 * @ordered
73 */
74 protected Expression right;
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 protected BinaryExpressionImpl()
82 {
83 super();
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 @Override
92 protected EClass eStaticClass()
93 {
94 return SolverLanguagePackage.Literals.BINARY_EXPRESSION;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public Expression getLeft()
104 {
105 return left;
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs)
114 {
115 Expression oldLeft = left;
116 left = newLeft;
117 if (eNotificationRequired())
118 {
119 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__LEFT, oldLeft, newLeft);
120 if (msgs == null) msgs = notification; else msgs.add(notification);
121 }
122 return msgs;
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public void setLeft(Expression newLeft)
132 {
133 if (newLeft != left)
134 {
135 NotificationChain msgs = null;
136 if (left != null)
137 msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BINARY_EXPRESSION__LEFT, null, msgs);
138 if (newLeft != null)
139 msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BINARY_EXPRESSION__LEFT, null, msgs);
140 msgs = basicSetLeft(newLeft, msgs);
141 if (msgs != null) msgs.dispatch();
142 }
143 else if (eNotificationRequired())
144 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__LEFT, newLeft, newLeft));
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public BinaryOperator getOp()
154 {
155 return op;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 @Override
164 public void setOp(BinaryOperator newOp)
165 {
166 BinaryOperator oldOp = op;
167 op = newOp == null ? OP_EDEFAULT : newOp;
168 if (eNotificationRequired())
169 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__OP, oldOp, op));
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
178 public Expression getRight()
179 {
180 return right;
181 }
182
183 /**
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @generated
187 */
188 public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs)
189 {
190 Expression oldRight = right;
191 right = newRight;
192 if (eNotificationRequired())
193 {
194 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__RIGHT, oldRight, newRight);
195 if (msgs == null) msgs = notification; else msgs.add(notification);
196 }
197 return msgs;
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public void setRight(Expression newRight)
207 {
208 if (newRight != right)
209 {
210 NotificationChain msgs = null;
211 if (right != null)
212 msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BINARY_EXPRESSION__RIGHT, null, msgs);
213 if (newRight != null)
214 msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BINARY_EXPRESSION__RIGHT, null, msgs);
215 msgs = basicSetRight(newRight, msgs);
216 if (msgs != null) msgs.dispatch();
217 }
218 else if (eNotificationRequired())
219 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__RIGHT, newRight, newRight));
220 }
221
222 /**
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
229 {
230 switch (featureID)
231 {
232 case SolverLanguagePackage.BINARY_EXPRESSION__LEFT:
233 return basicSetLeft(null, msgs);
234 case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT:
235 return basicSetRight(null, msgs);
236 }
237 return super.eInverseRemove(otherEnd, featureID, msgs);
238 }
239
240 /**
241 * <!-- begin-user-doc -->
242 * <!-- end-user-doc -->
243 * @generated
244 */
245 @Override
246 public Object eGet(int featureID, boolean resolve, boolean coreType)
247 {
248 switch (featureID)
249 {
250 case SolverLanguagePackage.BINARY_EXPRESSION__LEFT:
251 return getLeft();
252 case SolverLanguagePackage.BINARY_EXPRESSION__OP:
253 return getOp();
254 case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT:
255 return getRight();
256 }
257 return super.eGet(featureID, resolve, coreType);
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public void eSet(int featureID, Object newValue)
267 {
268 switch (featureID)
269 {
270 case SolverLanguagePackage.BINARY_EXPRESSION__LEFT:
271 setLeft((Expression)newValue);
272 return;
273 case SolverLanguagePackage.BINARY_EXPRESSION__OP:
274 setOp((BinaryOperator)newValue);
275 return;
276 case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT:
277 setRight((Expression)newValue);
278 return;
279 }
280 super.eSet(featureID, newValue);
281 }
282
283 /**
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 */
288 @Override
289 public void eUnset(int featureID)
290 {
291 switch (featureID)
292 {
293 case SolverLanguagePackage.BINARY_EXPRESSION__LEFT:
294 setLeft((Expression)null);
295 return;
296 case SolverLanguagePackage.BINARY_EXPRESSION__OP:
297 setOp(OP_EDEFAULT);
298 return;
299 case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT:
300 setRight((Expression)null);
301 return;
302 }
303 super.eUnset(featureID);
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public boolean eIsSet(int featureID)
313 {
314 switch (featureID)
315 {
316 case SolverLanguagePackage.BINARY_EXPRESSION__LEFT:
317 return left != null;
318 case SolverLanguagePackage.BINARY_EXPRESSION__OP:
319 return op != OP_EDEFAULT;
320 case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT:
321 return right != null;
322 }
323 return super.eIsSet(featureID);
324 }
325
326 /**
327 * <!-- begin-user-doc -->
328 * <!-- end-user-doc -->
329 * @generated
330 */
331 @Override
332 public String toString()
333 {
334 if (eIsProxy()) return super.toString();
335
336 StringBuilder result = new StringBuilder(super.toString());
337 result.append(" (op: ");
338 result.append(op);
339 result.append(')');
340 return result.toString();
341 }
342
343} //BinaryExpressionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanFalseImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanFalseImpl.java
deleted file mode 100644
index ae78f540..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanFalseImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Boolean False</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class BooleanFalseImpl extends BooleanValueImpl implements BooleanFalse
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected BooleanFalseImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.BOOLEAN_FALSE;
39 }
40
41} //BooleanFalseImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanSymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanSymbolImpl.java
deleted file mode 100644
index 49258091..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanSymbolImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Boolean Symbol</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class BooleanSymbolImpl extends DataSymbolImpl implements BooleanSymbol
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected BooleanSymbolImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.BOOLEAN_SYMBOL;
39 }
40
41} //BooleanSymbolImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanValueImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanValueImpl.java
deleted file mode 100644
index b27ab959..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanValueImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
9
10import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue;
11import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
12
13/**
14 * <!-- begin-user-doc -->
15 * An implementation of the model object '<em><b>Boolean Value</b></em>'.
16 * <!-- end-user-doc -->
17 *
18 * @generated
19 */
20public class BooleanValueImpl extends MinimalEObjectImpl.Container implements BooleanValue
21{
22 /**
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @generated
26 */
27 protected BooleanValueImpl()
28 {
29 super();
30 }
31
32 /**
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 @Override
38 protected EClass eStaticClass()
39 {
40 return SolverLanguagePackage.Literals.BOOLEAN_VALUE;
41 }
42
43} //BooleanValueImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedMultiplicityImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedMultiplicityImpl.java
new file mode 100644
index 00000000..45a105e0
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedMultiplicityImpl.java
@@ -0,0 +1,237 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7
8import org.eclipse.emf.ecore.EClass;
9
10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11
12import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity;
13import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Bounded Multiplicity</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl#getLowerBound <em>Lower Bound</em>}</li>
24 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl#getUpperBound <em>Upper Bound</em>}</li>
25 * </ul>
26 *
27 * @generated
28 */
29public class BoundedMultiplicityImpl extends MultiplicityImpl implements BoundedMultiplicity
30{
31 /**
32 * The default value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #getLowerBound()
36 * @generated
37 * @ordered
38 */
39 protected static final int LOWER_BOUND_EDEFAULT = 0;
40
41 /**
42 * The cached value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getLowerBound()
46 * @generated
47 * @ordered
48 */
49 protected int lowerBound = LOWER_BOUND_EDEFAULT;
50
51 /**
52 * The default value of the '{@link #getUpperBound() <em>Upper Bound</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getUpperBound()
56 * @generated
57 * @ordered
58 */
59 protected static final int UPPER_BOUND_EDEFAULT = 0;
60
61 /**
62 * The cached value of the '{@link #getUpperBound() <em>Upper Bound</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getUpperBound()
66 * @generated
67 * @ordered
68 */
69 protected int upperBound = UPPER_BOUND_EDEFAULT;
70
71 /**
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 */
76 protected BoundedMultiplicityImpl()
77 {
78 super();
79 }
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 @Override
87 protected EClass eStaticClass()
88 {
89 return SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY;
90 }
91
92 /**
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @generated
96 */
97 @Override
98 public int getLowerBound()
99 {
100 return lowerBound;
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void setLowerBound(int newLowerBound)
110 {
111 int oldLowerBound = lowerBound;
112 lowerBound = newLowerBound;
113 if (eNotificationRequired())
114 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND, oldLowerBound, lowerBound));
115 }
116
117 /**
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 */
122 @Override
123 public int getUpperBound()
124 {
125 return upperBound;
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 @Override
134 public void setUpperBound(int newUpperBound)
135 {
136 int oldUpperBound = upperBound;
137 upperBound = newUpperBound;
138 if (eNotificationRequired())
139 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND, oldUpperBound, upperBound));
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public Object eGet(int featureID, boolean resolve, boolean coreType)
149 {
150 switch (featureID)
151 {
152 case SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND:
153 return getLowerBound();
154 case SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND:
155 return getUpperBound();
156 }
157 return super.eGet(featureID, resolve, coreType);
158 }
159
160 /**
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @generated
164 */
165 @Override
166 public void eSet(int featureID, Object newValue)
167 {
168 switch (featureID)
169 {
170 case SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND:
171 setLowerBound((Integer)newValue);
172 return;
173 case SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND:
174 setUpperBound((Integer)newValue);
175 return;
176 }
177 super.eSet(featureID, newValue);
178 }
179
180 /**
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 @Override
186 public void eUnset(int featureID)
187 {
188 switch (featureID)
189 {
190 case SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND:
191 setLowerBound(LOWER_BOUND_EDEFAULT);
192 return;
193 case SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND:
194 setUpperBound(UPPER_BOUND_EDEFAULT);
195 return;
196 }
197 super.eUnset(featureID);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public boolean eIsSet(int featureID)
207 {
208 switch (featureID)
209 {
210 case SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND:
211 return lowerBound != LOWER_BOUND_EDEFAULT;
212 case SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND:
213 return upperBound != UPPER_BOUND_EDEFAULT;
214 }
215 return super.eIsSet(featureID);
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 @Override
224 public String toString()
225 {
226 if (eIsProxy()) return super.toString();
227
228 StringBuilder result = new StringBuilder(super.toString());
229 result.append(" (lowerBound: ");
230 result.append(lowerBound);
231 result.append(", upperBound: ");
232 result.append(upperBound);
233 result.append(')');
234 return result.toString();
235 }
236
237} //BoundedMultiplicityImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedScopeDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedScopeDefinitionImpl.java
new file mode 100644
index 00000000..36bf4f96
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedScopeDefinitionImpl.java
@@ -0,0 +1,237 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7
8import org.eclipse.emf.ecore.EClass;
9
10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11
12import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition;
13import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Bounded Scope Definition</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl#getLowerBound <em>Lower Bound</em>}</li>
24 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl#getUpperBound <em>Upper Bound</em>}</li>
25 * </ul>
26 *
27 * @generated
28 */
29public class BoundedScopeDefinitionImpl extends ScopeDefinitionImpl implements BoundedScopeDefinition
30{
31 /**
32 * The default value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #getLowerBound()
36 * @generated
37 * @ordered
38 */
39 protected static final int LOWER_BOUND_EDEFAULT = 0;
40
41 /**
42 * The cached value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getLowerBound()
46 * @generated
47 * @ordered
48 */
49 protected int lowerBound = LOWER_BOUND_EDEFAULT;
50
51 /**
52 * The default value of the '{@link #getUpperBound() <em>Upper Bound</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getUpperBound()
56 * @generated
57 * @ordered
58 */
59 protected static final int UPPER_BOUND_EDEFAULT = 0;
60
61 /**
62 * The cached value of the '{@link #getUpperBound() <em>Upper Bound</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getUpperBound()
66 * @generated
67 * @ordered
68 */
69 protected int upperBound = UPPER_BOUND_EDEFAULT;
70
71 /**
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 */
76 protected BoundedScopeDefinitionImpl()
77 {
78 super();
79 }
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 @Override
87 protected EClass eStaticClass()
88 {
89 return SolverLanguagePackage.Literals.BOUNDED_SCOPE_DEFINITION;
90 }
91
92 /**
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @generated
96 */
97 @Override
98 public int getLowerBound()
99 {
100 return lowerBound;
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void setLowerBound(int newLowerBound)
110 {
111 int oldLowerBound = lowerBound;
112 lowerBound = newLowerBound;
113 if (eNotificationRequired())
114 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND, oldLowerBound, lowerBound));
115 }
116
117 /**
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 */
122 @Override
123 public int getUpperBound()
124 {
125 return upperBound;
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 @Override
134 public void setUpperBound(int newUpperBound)
135 {
136 int oldUpperBound = upperBound;
137 upperBound = newUpperBound;
138 if (eNotificationRequired())
139 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND, oldUpperBound, upperBound));
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public Object eGet(int featureID, boolean resolve, boolean coreType)
149 {
150 switch (featureID)
151 {
152 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND:
153 return getLowerBound();
154 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND:
155 return getUpperBound();
156 }
157 return super.eGet(featureID, resolve, coreType);
158 }
159
160 /**
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @generated
164 */
165 @Override
166 public void eSet(int featureID, Object newValue)
167 {
168 switch (featureID)
169 {
170 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND:
171 setLowerBound((Integer)newValue);
172 return;
173 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND:
174 setUpperBound((Integer)newValue);
175 return;
176 }
177 super.eSet(featureID, newValue);
178 }
179
180 /**
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 @Override
186 public void eUnset(int featureID)
187 {
188 switch (featureID)
189 {
190 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND:
191 setLowerBound(LOWER_BOUND_EDEFAULT);
192 return;
193 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND:
194 setUpperBound(UPPER_BOUND_EDEFAULT);
195 return;
196 }
197 super.eUnset(featureID);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public boolean eIsSet(int featureID)
207 {
208 switch (featureID)
209 {
210 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND:
211 return lowerBound != LOWER_BOUND_EDEFAULT;
212 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND:
213 return upperBound != UPPER_BOUND_EDEFAULT;
214 }
215 return super.eIsSet(featureID);
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 @Override
224 public String toString()
225 {
226 if (eIsProxy()) return super.toString();
227
228 StringBuilder result = new StringBuilder(super.toString());
229 result.append(" (lowerBound: ");
230 result.append(lowerBound);
231 result.append(", upperBound: ");
232 result.append(upperBound);
233 result.append(')');
234 return result.toString();
235 }
236
237} //BoundedScopeDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CDInterpretationImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CDInterpretationImpl.java
deleted file mode 100644
index b23bbba5..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CDInterpretationImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>CD Interpretation</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class CDInterpretationImpl extends InterpretationImpl implements CDInterpretation
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected CDInterpretationImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.CD_INTERPRETATION;
39 }
40
41} //CDInterpretationImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CallImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CallImpl.java
new file mode 100644
index 00000000..fde31be5
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CallImpl.java
@@ -0,0 +1,401 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList;
15import org.eclipse.viatra.solver.language.solverLanguage.Call;
16import org.eclipse.viatra.solver.language.solverLanguage.Reference;
17import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Call</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl#getFunctor <em>Functor</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl#getArgumentList <em>Argument List</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl#isTransitiveClosure <em>Transitive Closure</em>}</li>
30 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl#isReflexiveTransitiveClosure <em>Reflexive Transitive Closure</em>}</li>
31 * </ul>
32 *
33 * @generated
34 */
35public class CallImpl extends ExpressionImpl implements Call
36{
37 /**
38 * The cached value of the '{@link #getFunctor() <em>Functor</em>}' containment reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getFunctor()
42 * @generated
43 * @ordered
44 */
45 protected Reference functor;
46
47 /**
48 * The cached value of the '{@link #getArgumentList() <em>Argument List</em>}' containment reference.
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @see #getArgumentList()
52 * @generated
53 * @ordered
54 */
55 protected ArgumentList argumentList;
56
57 /**
58 * The default value of the '{@link #isTransitiveClosure() <em>Transitive Closure</em>}' attribute.
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @see #isTransitiveClosure()
62 * @generated
63 * @ordered
64 */
65 protected static final boolean TRANSITIVE_CLOSURE_EDEFAULT = false;
66
67 /**
68 * The cached value of the '{@link #isTransitiveClosure() <em>Transitive Closure</em>}' attribute.
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @see #isTransitiveClosure()
72 * @generated
73 * @ordered
74 */
75 protected boolean transitiveClosure = TRANSITIVE_CLOSURE_EDEFAULT;
76
77 /**
78 * The default value of the '{@link #isReflexiveTransitiveClosure() <em>Reflexive Transitive Closure</em>}' attribute.
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @see #isReflexiveTransitiveClosure()
82 * @generated
83 * @ordered
84 */
85 protected static final boolean REFLEXIVE_TRANSITIVE_CLOSURE_EDEFAULT = false;
86
87 /**
88 * The cached value of the '{@link #isReflexiveTransitiveClosure() <em>Reflexive Transitive Closure</em>}' attribute.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @see #isReflexiveTransitiveClosure()
92 * @generated
93 * @ordered
94 */
95 protected boolean reflexiveTransitiveClosure = REFLEXIVE_TRANSITIVE_CLOSURE_EDEFAULT;
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 protected CallImpl()
103 {
104 super();
105 }
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 @Override
113 protected EClass eStaticClass()
114 {
115 return SolverLanguagePackage.Literals.CALL;
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public Reference getFunctor()
125 {
126 return functor;
127 }
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 public NotificationChain basicSetFunctor(Reference newFunctor, NotificationChain msgs)
135 {
136 Reference oldFunctor = functor;
137 functor = newFunctor;
138 if (eNotificationRequired())
139 {
140 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__FUNCTOR, oldFunctor, newFunctor);
141 if (msgs == null) msgs = notification; else msgs.add(notification);
142 }
143 return msgs;
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 @Override
152 public void setFunctor(Reference newFunctor)
153 {
154 if (newFunctor != functor)
155 {
156 NotificationChain msgs = null;
157 if (functor != null)
158 msgs = ((InternalEObject)functor).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CALL__FUNCTOR, null, msgs);
159 if (newFunctor != null)
160 msgs = ((InternalEObject)newFunctor).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CALL__FUNCTOR, null, msgs);
161 msgs = basicSetFunctor(newFunctor, msgs);
162 if (msgs != null) msgs.dispatch();
163 }
164 else if (eNotificationRequired())
165 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__FUNCTOR, newFunctor, newFunctor));
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 @Override
174 public ArgumentList getArgumentList()
175 {
176 return argumentList;
177 }
178
179 /**
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @generated
183 */
184 public NotificationChain basicSetArgumentList(ArgumentList newArgumentList, NotificationChain msgs)
185 {
186 ArgumentList oldArgumentList = argumentList;
187 argumentList = newArgumentList;
188 if (eNotificationRequired())
189 {
190 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__ARGUMENT_LIST, oldArgumentList, newArgumentList);
191 if (msgs == null) msgs = notification; else msgs.add(notification);
192 }
193 return msgs;
194 }
195
196 /**
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @generated
200 */
201 @Override
202 public void setArgumentList(ArgumentList newArgumentList)
203 {
204 if (newArgumentList != argumentList)
205 {
206 NotificationChain msgs = null;
207 if (argumentList != null)
208 msgs = ((InternalEObject)argumentList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CALL__ARGUMENT_LIST, null, msgs);
209 if (newArgumentList != null)
210 msgs = ((InternalEObject)newArgumentList).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CALL__ARGUMENT_LIST, null, msgs);
211 msgs = basicSetArgumentList(newArgumentList, msgs);
212 if (msgs != null) msgs.dispatch();
213 }
214 else if (eNotificationRequired())
215 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__ARGUMENT_LIST, newArgumentList, newArgumentList));
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 @Override
224 public boolean isTransitiveClosure()
225 {
226 return transitiveClosure;
227 }
228
229 /**
230 * <!-- begin-user-doc -->
231 * <!-- end-user-doc -->
232 * @generated
233 */
234 @Override
235 public void setTransitiveClosure(boolean newTransitiveClosure)
236 {
237 boolean oldTransitiveClosure = transitiveClosure;
238 transitiveClosure = newTransitiveClosure;
239 if (eNotificationRequired())
240 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE, oldTransitiveClosure, transitiveClosure));
241 }
242
243 /**
244 * <!-- begin-user-doc -->
245 * <!-- end-user-doc -->
246 * @generated
247 */
248 @Override
249 public boolean isReflexiveTransitiveClosure()
250 {
251 return reflexiveTransitiveClosure;
252 }
253
254 /**
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @generated
258 */
259 @Override
260 public void setReflexiveTransitiveClosure(boolean newReflexiveTransitiveClosure)
261 {
262 boolean oldReflexiveTransitiveClosure = reflexiveTransitiveClosure;
263 reflexiveTransitiveClosure = newReflexiveTransitiveClosure;
264 if (eNotificationRequired())
265 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE, oldReflexiveTransitiveClosure, reflexiveTransitiveClosure));
266 }
267
268 /**
269 * <!-- begin-user-doc -->
270 * <!-- end-user-doc -->
271 * @generated
272 */
273 @Override
274 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
275 {
276 switch (featureID)
277 {
278 case SolverLanguagePackage.CALL__FUNCTOR:
279 return basicSetFunctor(null, msgs);
280 case SolverLanguagePackage.CALL__ARGUMENT_LIST:
281 return basicSetArgumentList(null, msgs);
282 }
283 return super.eInverseRemove(otherEnd, featureID, msgs);
284 }
285
286 /**
287 * <!-- begin-user-doc -->
288 * <!-- end-user-doc -->
289 * @generated
290 */
291 @Override
292 public Object eGet(int featureID, boolean resolve, boolean coreType)
293 {
294 switch (featureID)
295 {
296 case SolverLanguagePackage.CALL__FUNCTOR:
297 return getFunctor();
298 case SolverLanguagePackage.CALL__ARGUMENT_LIST:
299 return getArgumentList();
300 case SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE:
301 return isTransitiveClosure();
302 case SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE:
303 return isReflexiveTransitiveClosure();
304 }
305 return super.eGet(featureID, resolve, coreType);
306 }
307
308 /**
309 * <!-- begin-user-doc -->
310 * <!-- end-user-doc -->
311 * @generated
312 */
313 @Override
314 public void eSet(int featureID, Object newValue)
315 {
316 switch (featureID)
317 {
318 case SolverLanguagePackage.CALL__FUNCTOR:
319 setFunctor((Reference)newValue);
320 return;
321 case SolverLanguagePackage.CALL__ARGUMENT_LIST:
322 setArgumentList((ArgumentList)newValue);
323 return;
324 case SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE:
325 setTransitiveClosure((Boolean)newValue);
326 return;
327 case SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE:
328 setReflexiveTransitiveClosure((Boolean)newValue);
329 return;
330 }
331 super.eSet(featureID, newValue);
332 }
333
334 /**
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @generated
338 */
339 @Override
340 public void eUnset(int featureID)
341 {
342 switch (featureID)
343 {
344 case SolverLanguagePackage.CALL__FUNCTOR:
345 setFunctor((Reference)null);
346 return;
347 case SolverLanguagePackage.CALL__ARGUMENT_LIST:
348 setArgumentList((ArgumentList)null);
349 return;
350 case SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE:
351 setTransitiveClosure(TRANSITIVE_CLOSURE_EDEFAULT);
352 return;
353 case SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE:
354 setReflexiveTransitiveClosure(REFLEXIVE_TRANSITIVE_CLOSURE_EDEFAULT);
355 return;
356 }
357 super.eUnset(featureID);
358 }
359
360 /**
361 * <!-- begin-user-doc -->
362 * <!-- end-user-doc -->
363 * @generated
364 */
365 @Override
366 public boolean eIsSet(int featureID)
367 {
368 switch (featureID)
369 {
370 case SolverLanguagePackage.CALL__FUNCTOR:
371 return functor != null;
372 case SolverLanguagePackage.CALL__ARGUMENT_LIST:
373 return argumentList != null;
374 case SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE:
375 return transitiveClosure != TRANSITIVE_CLOSURE_EDEFAULT;
376 case SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE:
377 return reflexiveTransitiveClosure != REFLEXIVE_TRANSITIVE_CLOSURE_EDEFAULT;
378 }
379 return super.eIsSet(featureID);
380 }
381
382 /**
383 * <!-- begin-user-doc -->
384 * <!-- end-user-doc -->
385 * @generated
386 */
387 @Override
388 public String toString()
389 {
390 if (eIsProxy()) return super.toString();
391
392 StringBuilder result = new StringBuilder(super.toString());
393 result.append(" (transitiveClosure: ");
394 result.append(transitiveClosure);
395 result.append(", reflexiveTransitiveClosure: ");
396 result.append(reflexiveTransitiveClosure);
397 result.append(')');
398 return result.toString();
399 }
400
401} //CallImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CaseImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CaseImpl.java
new file mode 100644
index 00000000..47245831
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CaseImpl.java
@@ -0,0 +1,269 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Case;
15import org.eclipse.viatra.solver.language.solverLanguage.Expression;
16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
17
18/**
19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>Case</b></em>'.
21 * <!-- end-user-doc -->
22 * <p>
23 * The following features are implemented:
24 * </p>
25 * <ul>
26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl#getCondition <em>Condition</em>}</li>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl#getBody <em>Body</em>}</li>
28 * </ul>
29 *
30 * @generated
31 */
32public class CaseImpl extends ExpressionImpl implements Case
33{
34 /**
35 * The cached value of the '{@link #getCondition() <em>Condition</em>}' containment reference.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @see #getCondition()
39 * @generated
40 * @ordered
41 */
42 protected Expression condition;
43
44 /**
45 * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getBody()
49 * @generated
50 * @ordered
51 */
52 protected Expression body;
53
54 /**
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 protected CaseImpl()
60 {
61 super();
62 }
63
64 /**
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 @Override
70 protected EClass eStaticClass()
71 {
72 return SolverLanguagePackage.Literals.CASE;
73 }
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 @Override
81 public Expression getCondition()
82 {
83 return condition;
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs)
92 {
93 Expression oldCondition = condition;
94 condition = newCondition;
95 if (eNotificationRequired())
96 {
97 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CASE__CONDITION, oldCondition, newCondition);
98 if (msgs == null) msgs = notification; else msgs.add(notification);
99 }
100 return msgs;
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void setCondition(Expression newCondition)
110 {
111 if (newCondition != condition)
112 {
113 NotificationChain msgs = null;
114 if (condition != null)
115 msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CASE__CONDITION, null, msgs);
116 if (newCondition != null)
117 msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CASE__CONDITION, null, msgs);
118 msgs = basicSetCondition(newCondition, msgs);
119 if (msgs != null) msgs.dispatch();
120 }
121 else if (eNotificationRequired())
122 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CASE__CONDITION, newCondition, newCondition));
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public Expression getBody()
132 {
133 return body;
134 }
135
136 /**
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 */
141 public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs)
142 {
143 Expression oldBody = body;
144 body = newBody;
145 if (eNotificationRequired())
146 {
147 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CASE__BODY, oldBody, newBody);
148 if (msgs == null) msgs = notification; else msgs.add(notification);
149 }
150 return msgs;
151 }
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 @Override
159 public void setBody(Expression newBody)
160 {
161 if (newBody != body)
162 {
163 NotificationChain msgs = null;
164 if (body != null)
165 msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CASE__BODY, null, msgs);
166 if (newBody != null)
167 msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CASE__BODY, null, msgs);
168 msgs = basicSetBody(newBody, msgs);
169 if (msgs != null) msgs.dispatch();
170 }
171 else if (eNotificationRequired())
172 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CASE__BODY, newBody, newBody));
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 @Override
181 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
182 {
183 switch (featureID)
184 {
185 case SolverLanguagePackage.CASE__CONDITION:
186 return basicSetCondition(null, msgs);
187 case SolverLanguagePackage.CASE__BODY:
188 return basicSetBody(null, msgs);
189 }
190 return super.eInverseRemove(otherEnd, featureID, msgs);
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 @Override
199 public Object eGet(int featureID, boolean resolve, boolean coreType)
200 {
201 switch (featureID)
202 {
203 case SolverLanguagePackage.CASE__CONDITION:
204 return getCondition();
205 case SolverLanguagePackage.CASE__BODY:
206 return getBody();
207 }
208 return super.eGet(featureID, resolve, coreType);
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public void eSet(int featureID, Object newValue)
218 {
219 switch (featureID)
220 {
221 case SolverLanguagePackage.CASE__CONDITION:
222 setCondition((Expression)newValue);
223 return;
224 case SolverLanguagePackage.CASE__BODY:
225 setBody((Expression)newValue);
226 return;
227 }
228 super.eSet(featureID, newValue);
229 }
230
231 /**
232 * <!-- begin-user-doc -->
233 * <!-- end-user-doc -->
234 * @generated
235 */
236 @Override
237 public void eUnset(int featureID)
238 {
239 switch (featureID)
240 {
241 case SolverLanguagePackage.CASE__CONDITION:
242 setCondition((Expression)null);
243 return;
244 case SolverLanguagePackage.CASE__BODY:
245 setBody((Expression)null);
246 return;
247 }
248 super.eUnset(featureID);
249 }
250
251 /**
252 * <!-- begin-user-doc -->
253 * <!-- end-user-doc -->
254 * @generated
255 */
256 @Override
257 public boolean eIsSet(int featureID)
258 {
259 switch (featureID)
260 {
261 case SolverLanguagePackage.CASE__CONDITION:
262 return condition != null;
263 case SolverLanguagePackage.CASE__BODY:
264 return body != null;
265 }
266 return super.eIsSet(featureID);
267 }
268
269} //CaseImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClassInterpretationImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClassInterpretationImpl.java
deleted file mode 100644
index effc5970..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClassInterpretationImpl.java
+++ /dev/null
@@ -1,356 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import java.util.Collection;
7
8import org.eclipse.emf.common.notify.Notification;
9import org.eclipse.emf.common.notify.NotificationChain;
10
11import org.eclipse.emf.common.util.EList;
12
13import org.eclipse.emf.ecore.EClass;
14import org.eclipse.emf.ecore.InternalEObject;
15
16import org.eclipse.emf.ecore.impl.ENotificationImpl;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation;
22import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation;
23import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol;
24import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Class Interpretation</b></em>'.
29 * <!-- end-user-doc -->
30 * <p>
31 * The following features are implemented:
32 * </p>
33 * <ul>
34 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl#isAbstract <em>Abstract</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl#getSymbol <em>Symbol</em>}</li>
36 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl#getSupertypes <em>Supertypes</em>}</li>
37 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl#getFielt <em>Fielt</em>}</li>
38 * </ul>
39 *
40 * @generated
41 */
42public class ClassInterpretationImpl extends CDInterpretationImpl implements ClassInterpretation
43{
44 /**
45 * The default value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #isAbstract()
49 * @generated
50 * @ordered
51 */
52 protected static final boolean ABSTRACT_EDEFAULT = false;
53
54 /**
55 * The cached value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @see #isAbstract()
59 * @generated
60 * @ordered
61 */
62 protected boolean abstract_ = ABSTRACT_EDEFAULT;
63
64 /**
65 * The cached value of the '{@link #getSymbol() <em>Symbol</em>}' containment reference.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @see #getSymbol()
69 * @generated
70 * @ordered
71 */
72 protected ModelSymbol symbol;
73
74 /**
75 * The cached value of the '{@link #getSupertypes() <em>Supertypes</em>}' containment reference list.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @see #getSupertypes()
79 * @generated
80 * @ordered
81 */
82 protected EList<ModelSymbol> supertypes;
83
84 /**
85 * The cached value of the '{@link #getFielt() <em>Fielt</em>}' containment reference list.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @see #getFielt()
89 * @generated
90 * @ordered
91 */
92 protected EList<FieldRelationInterpretation> fielt;
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 protected ClassInterpretationImpl()
100 {
101 super();
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 protected EClass eStaticClass()
111 {
112 return SolverLanguagePackage.Literals.CLASS_INTERPRETATION;
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 @Override
121 public boolean isAbstract()
122 {
123 return abstract_;
124 }
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 @Override
132 public void setAbstract(boolean newAbstract)
133 {
134 boolean oldAbstract = abstract_;
135 abstract_ = newAbstract;
136 if (eNotificationRequired())
137 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT, oldAbstract, abstract_));
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 @Override
146 public ModelSymbol getSymbol()
147 {
148 return symbol;
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs)
157 {
158 ModelSymbol oldSymbol = symbol;
159 symbol = newSymbol;
160 if (eNotificationRequired())
161 {
162 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL, oldSymbol, newSymbol);
163 if (msgs == null) msgs = notification; else msgs.add(notification);
164 }
165 return msgs;
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 @Override
174 public void setSymbol(ModelSymbol newSymbol)
175 {
176 if (newSymbol != symbol)
177 {
178 NotificationChain msgs = null;
179 if (symbol != null)
180 msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL, null, msgs);
181 if (newSymbol != null)
182 msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL, null, msgs);
183 msgs = basicSetSymbol(newSymbol, msgs);
184 if (msgs != null) msgs.dispatch();
185 }
186 else if (eNotificationRequired())
187 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL, newSymbol, newSymbol));
188 }
189
190 /**
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 @Override
196 public EList<ModelSymbol> getSupertypes()
197 {
198 if (supertypes == null)
199 {
200 supertypes = new EObjectContainmentEList<ModelSymbol>(ModelSymbol.class, this, SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES);
201 }
202 return supertypes;
203 }
204
205 /**
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @generated
209 */
210 @Override
211 public EList<FieldRelationInterpretation> getFielt()
212 {
213 if (fielt == null)
214 {
215 fielt = new EObjectContainmentEList<FieldRelationInterpretation>(FieldRelationInterpretation.class, this, SolverLanguagePackage.CLASS_INTERPRETATION__FIELT);
216 }
217 return fielt;
218 }
219
220 /**
221 * <!-- begin-user-doc -->
222 * <!-- end-user-doc -->
223 * @generated
224 */
225 @Override
226 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
227 {
228 switch (featureID)
229 {
230 case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL:
231 return basicSetSymbol(null, msgs);
232 case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES:
233 return ((InternalEList<?>)getSupertypes()).basicRemove(otherEnd, msgs);
234 case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT:
235 return ((InternalEList<?>)getFielt()).basicRemove(otherEnd, msgs);
236 }
237 return super.eInverseRemove(otherEnd, featureID, msgs);
238 }
239
240 /**
241 * <!-- begin-user-doc -->
242 * <!-- end-user-doc -->
243 * @generated
244 */
245 @Override
246 public Object eGet(int featureID, boolean resolve, boolean coreType)
247 {
248 switch (featureID)
249 {
250 case SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT:
251 return isAbstract();
252 case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL:
253 return getSymbol();
254 case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES:
255 return getSupertypes();
256 case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT:
257 return getFielt();
258 }
259 return super.eGet(featureID, resolve, coreType);
260 }
261
262 /**
263 * <!-- begin-user-doc -->
264 * <!-- end-user-doc -->
265 * @generated
266 */
267 @SuppressWarnings("unchecked")
268 @Override
269 public void eSet(int featureID, Object newValue)
270 {
271 switch (featureID)
272 {
273 case SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT:
274 setAbstract((Boolean)newValue);
275 return;
276 case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL:
277 setSymbol((ModelSymbol)newValue);
278 return;
279 case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES:
280 getSupertypes().clear();
281 getSupertypes().addAll((Collection<? extends ModelSymbol>)newValue);
282 return;
283 case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT:
284 getFielt().clear();
285 getFielt().addAll((Collection<? extends FieldRelationInterpretation>)newValue);
286 return;
287 }
288 super.eSet(featureID, newValue);
289 }
290
291 /**
292 * <!-- begin-user-doc -->
293 * <!-- end-user-doc -->
294 * @generated
295 */
296 @Override
297 public void eUnset(int featureID)
298 {
299 switch (featureID)
300 {
301 case SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT:
302 setAbstract(ABSTRACT_EDEFAULT);
303 return;
304 case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL:
305 setSymbol((ModelSymbol)null);
306 return;
307 case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES:
308 getSupertypes().clear();
309 return;
310 case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT:
311 getFielt().clear();
312 return;
313 }
314 super.eUnset(featureID);
315 }
316
317 /**
318 * <!-- begin-user-doc -->
319 * <!-- end-user-doc -->
320 * @generated
321 */
322 @Override
323 public boolean eIsSet(int featureID)
324 {
325 switch (featureID)
326 {
327 case SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT:
328 return abstract_ != ABSTRACT_EDEFAULT;
329 case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL:
330 return symbol != null;
331 case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES:
332 return supertypes != null && !supertypes.isEmpty();
333 case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT:
334 return fielt != null && !fielt.isEmpty();
335 }
336 return super.eIsSet(featureID);
337 }
338
339 /**
340 * <!-- begin-user-doc -->
341 * <!-- end-user-doc -->
342 * @generated
343 */
344 @Override
345 public String toString()
346 {
347 if (eIsProxy()) return super.toString();
348
349 StringBuilder result = new StringBuilder(super.toString());
350 result.append(" (abstract: ");
351 result.append(abstract_);
352 result.append(')');
353 return result.toString();
354 }
355
356} //ClassInterpretationImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComparisonImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComparisonImpl.java
new file mode 100644
index 00000000..9e62d7ef
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComparisonImpl.java
@@ -0,0 +1,343 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator;
15import org.eclipse.viatra.solver.language.solverLanguage.Comparison;
16import org.eclipse.viatra.solver.language.solverLanguage.Expression;
17import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Comparison</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl#getLeft <em>Left</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl#getOp <em>Op</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl#getRight <em>Right</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class ComparisonImpl extends ExpressionImpl implements Comparison
35{
36 /**
37 * The cached value of the '{@link #getLeft() <em>Left</em>}' containment reference.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getLeft()
41 * @generated
42 * @ordered
43 */
44 protected Expression left;
45
46 /**
47 * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @see #getOp()
51 * @generated
52 * @ordered
53 */
54 protected static final BinaryOperator OP_EDEFAULT = BinaryOperator.EQ;
55
56 /**
57 * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @see #getOp()
61 * @generated
62 * @ordered
63 */
64 protected BinaryOperator op = OP_EDEFAULT;
65
66 /**
67 * The cached value of the '{@link #getRight() <em>Right</em>}' containment reference.
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @see #getRight()
71 * @generated
72 * @ordered
73 */
74 protected Expression right;
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 protected ComparisonImpl()
82 {
83 super();
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 @Override
92 protected EClass eStaticClass()
93 {
94 return SolverLanguagePackage.Literals.COMPARISON;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public Expression getLeft()
104 {
105 return left;
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs)
114 {
115 Expression oldLeft = left;
116 left = newLeft;
117 if (eNotificationRequired())
118 {
119 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__LEFT, oldLeft, newLeft);
120 if (msgs == null) msgs = notification; else msgs.add(notification);
121 }
122 return msgs;
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public void setLeft(Expression newLeft)
132 {
133 if (newLeft != left)
134 {
135 NotificationChain msgs = null;
136 if (left != null)
137 msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COMPARISON__LEFT, null, msgs);
138 if (newLeft != null)
139 msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COMPARISON__LEFT, null, msgs);
140 msgs = basicSetLeft(newLeft, msgs);
141 if (msgs != null) msgs.dispatch();
142 }
143 else if (eNotificationRequired())
144 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__LEFT, newLeft, newLeft));
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public BinaryOperator getOp()
154 {
155 return op;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 @Override
164 public void setOp(BinaryOperator newOp)
165 {
166 BinaryOperator oldOp = op;
167 op = newOp == null ? OP_EDEFAULT : newOp;
168 if (eNotificationRequired())
169 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__OP, oldOp, op));
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
178 public Expression getRight()
179 {
180 return right;
181 }
182
183 /**
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @generated
187 */
188 public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs)
189 {
190 Expression oldRight = right;
191 right = newRight;
192 if (eNotificationRequired())
193 {
194 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__RIGHT, oldRight, newRight);
195 if (msgs == null) msgs = notification; else msgs.add(notification);
196 }
197 return msgs;
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public void setRight(Expression newRight)
207 {
208 if (newRight != right)
209 {
210 NotificationChain msgs = null;
211 if (right != null)
212 msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COMPARISON__RIGHT, null, msgs);
213 if (newRight != null)
214 msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COMPARISON__RIGHT, null, msgs);
215 msgs = basicSetRight(newRight, msgs);
216 if (msgs != null) msgs.dispatch();
217 }
218 else if (eNotificationRequired())
219 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__RIGHT, newRight, newRight));
220 }
221
222 /**
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
229 {
230 switch (featureID)
231 {
232 case SolverLanguagePackage.COMPARISON__LEFT:
233 return basicSetLeft(null, msgs);
234 case SolverLanguagePackage.COMPARISON__RIGHT:
235 return basicSetRight(null, msgs);
236 }
237 return super.eInverseRemove(otherEnd, featureID, msgs);
238 }
239
240 /**
241 * <!-- begin-user-doc -->
242 * <!-- end-user-doc -->
243 * @generated
244 */
245 @Override
246 public Object eGet(int featureID, boolean resolve, boolean coreType)
247 {
248 switch (featureID)
249 {
250 case SolverLanguagePackage.COMPARISON__LEFT:
251 return getLeft();
252 case SolverLanguagePackage.COMPARISON__OP:
253 return getOp();
254 case SolverLanguagePackage.COMPARISON__RIGHT:
255 return getRight();
256 }
257 return super.eGet(featureID, resolve, coreType);
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public void eSet(int featureID, Object newValue)
267 {
268 switch (featureID)
269 {
270 case SolverLanguagePackage.COMPARISON__LEFT:
271 setLeft((Expression)newValue);
272 return;
273 case SolverLanguagePackage.COMPARISON__OP:
274 setOp((BinaryOperator)newValue);
275 return;
276 case SolverLanguagePackage.COMPARISON__RIGHT:
277 setRight((Expression)newValue);
278 return;
279 }
280 super.eSet(featureID, newValue);
281 }
282
283 /**
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 */
288 @Override
289 public void eUnset(int featureID)
290 {
291 switch (featureID)
292 {
293 case SolverLanguagePackage.COMPARISON__LEFT:
294 setLeft((Expression)null);
295 return;
296 case SolverLanguagePackage.COMPARISON__OP:
297 setOp(OP_EDEFAULT);
298 return;
299 case SolverLanguagePackage.COMPARISON__RIGHT:
300 setRight((Expression)null);
301 return;
302 }
303 super.eUnset(featureID);
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public boolean eIsSet(int featureID)
313 {
314 switch (featureID)
315 {
316 case SolverLanguagePackage.COMPARISON__LEFT:
317 return left != null;
318 case SolverLanguagePackage.COMPARISON__OP:
319 return op != OP_EDEFAULT;
320 case SolverLanguagePackage.COMPARISON__RIGHT:
321 return right != null;
322 }
323 return super.eIsSet(featureID);
324 }
325
326 /**
327 * <!-- begin-user-doc -->
328 * <!-- end-user-doc -->
329 * @generated
330 */
331 @Override
332 public String toString()
333 {
334 if (eIsProxy()) return super.toString();
335
336 StringBuilder result = new StringBuilder(super.toString());
337 result.append(" (op: ");
338 result.append(op);
339 result.append(')');
340 return result.toString();
341 }
342
343} //ComparisonImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComplexObjectImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComplexObjectImpl.java
deleted file mode 100644
index 09ad8a6d..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComplexObjectImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
9
10import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject;
11import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
12
13/**
14 * <!-- begin-user-doc -->
15 * An implementation of the model object '<em><b>Complex Object</b></em>'.
16 * <!-- end-user-doc -->
17 *
18 * @generated
19 */
20public class ComplexObjectImpl extends MinimalEObjectImpl.Container implements ComplexObject
21{
22 /**
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @generated
26 */
27 protected ComplexObjectImpl()
28 {
29 super();
30 }
31
32 /**
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 @Override
38 protected EClass eStaticClass()
39 {
40 return SolverLanguagePackage.Literals.COMPLEX_OBJECT;
41 }
42
43} //ComplexObjectImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConjunctionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConjunctionImpl.java
new file mode 100644
index 00000000..6a1e995a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConjunctionImpl.java
@@ -0,0 +1,167 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import java.util.Collection;
7
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.util.EObjectContainmentEList;
16import org.eclipse.emf.ecore.util.InternalEList;
17
18import org.eclipse.viatra.solver.language.solverLanguage.Conjunction;
19import org.eclipse.viatra.solver.language.solverLanguage.Expression;
20import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
21
22/**
23 * <!-- begin-user-doc -->
24 * An implementation of the model object '<em><b>Conjunction</b></em>'.
25 * <!-- end-user-doc -->
26 * <p>
27 * The following features are implemented:
28 * </p>
29 * <ul>
30 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl#getChildren <em>Children</em>}</li>
31 * </ul>
32 *
33 * @generated
34 */
35public class ConjunctionImpl extends ExpressionImpl implements Conjunction
36{
37 /**
38 * The cached value of the '{@link #getChildren() <em>Children</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getChildren()
42 * @generated
43 * @ordered
44 */
45 protected EList<Expression> children;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected ConjunctionImpl()
53 {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass()
64 {
65 return SolverLanguagePackage.Literals.CONJUNCTION;
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 @Override
74 public EList<Expression> getChildren()
75 {
76 if (children == null)
77 {
78 children = new EObjectContainmentEList<Expression>(Expression.class, this, SolverLanguagePackage.CONJUNCTION__CHILDREN);
79 }
80 return children;
81 }
82
83 /**
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @generated
87 */
88 @Override
89 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
90 {
91 switch (featureID)
92 {
93 case SolverLanguagePackage.CONJUNCTION__CHILDREN:
94 return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
95 }
96 return super.eInverseRemove(otherEnd, featureID, msgs);
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public Object eGet(int featureID, boolean resolve, boolean coreType)
106 {
107 switch (featureID)
108 {
109 case SolverLanguagePackage.CONJUNCTION__CHILDREN:
110 return getChildren();
111 }
112 return super.eGet(featureID, resolve, coreType);
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 @SuppressWarnings("unchecked")
121 @Override
122 public void eSet(int featureID, Object newValue)
123 {
124 switch (featureID)
125 {
126 case SolverLanguagePackage.CONJUNCTION__CHILDREN:
127 getChildren().clear();
128 getChildren().addAll((Collection<? extends Expression>)newValue);
129 return;
130 }
131 super.eSet(featureID, newValue);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public void eUnset(int featureID)
141 {
142 switch (featureID)
143 {
144 case SolverLanguagePackage.CONJUNCTION__CHILDREN:
145 getChildren().clear();
146 return;
147 }
148 super.eUnset(featureID);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public boolean eIsSet(int featureID)
158 {
159 switch (featureID)
160 {
161 case SolverLanguagePackage.CONJUNCTION__CHILDREN:
162 return children != null && !children.isEmpty();
163 }
164 return super.eIsSet(featureID);
165 }
166
167} //ConjunctionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConstraintImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConstraintImpl.java
deleted file mode 100644
index 2f990fee..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConstraintImpl.java
+++ /dev/null
@@ -1,393 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import java.util.Collection;
7
8import org.eclipse.emf.common.notify.Notification;
9import org.eclipse.emf.common.notify.NotificationChain;
10
11import org.eclipse.emf.common.util.EList;
12
13import org.eclipse.emf.ecore.EClass;
14import org.eclipse.emf.ecore.InternalEObject;
15
16import org.eclipse.emf.ecore.impl.ENotificationImpl;
17import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
18
19import org.eclipse.emf.ecore.util.EObjectContainmentEList;
20import org.eclipse.emf.ecore.util.InternalEList;
21
22import org.eclipse.viatra.solver.language.solverLanguage.ClosureType;
23import org.eclipse.viatra.solver.language.solverLanguage.Constraint;
24import org.eclipse.viatra.solver.language.solverLanguage.Literal;
25import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol;
26import org.eclipse.viatra.solver.language.solverLanguage.Polarity;
27import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
28
29/**
30 * <!-- begin-user-doc -->
31 * An implementation of the model object '<em><b>Constraint</b></em>'.
32 * <!-- end-user-doc -->
33 * <p>
34 * The following features are implemented:
35 * </p>
36 * <ul>
37 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl#getPolarity <em>Polarity</em>}</li>
38 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl#getSymbol <em>Symbol</em>}</li>
39 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl#getParams <em>Params</em>}</li>
40 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl#getClosureType <em>Closure Type</em>}</li>
41 * </ul>
42 *
43 * @generated
44 */
45public class ConstraintImpl extends MinimalEObjectImpl.Container implements Constraint
46{
47 /**
48 * The cached value of the '{@link #getPolarity() <em>Polarity</em>}' containment reference.
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @see #getPolarity()
52 * @generated
53 * @ordered
54 */
55 protected Polarity polarity;
56
57 /**
58 * The cached value of the '{@link #getSymbol() <em>Symbol</em>}' containment reference.
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @see #getSymbol()
62 * @generated
63 * @ordered
64 */
65 protected ModelSymbol symbol;
66
67 /**
68 * The cached value of the '{@link #getParams() <em>Params</em>}' containment reference list.
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @see #getParams()
72 * @generated
73 * @ordered
74 */
75 protected EList<Literal> params;
76
77 /**
78 * The cached value of the '{@link #getClosureType() <em>Closure Type</em>}' containment reference.
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @see #getClosureType()
82 * @generated
83 * @ordered
84 */
85 protected ClosureType closureType;
86
87 /**
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @generated
91 */
92 protected ConstraintImpl()
93 {
94 super();
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 protected EClass eStaticClass()
104 {
105 return SolverLanguagePackage.Literals.CONSTRAINT;
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 @Override
114 public Polarity getPolarity()
115 {
116 return polarity;
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 public NotificationChain basicSetPolarity(Polarity newPolarity, NotificationChain msgs)
125 {
126 Polarity oldPolarity = polarity;
127 polarity = newPolarity;
128 if (eNotificationRequired())
129 {
130 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__POLARITY, oldPolarity, newPolarity);
131 if (msgs == null) msgs = notification; else msgs.add(notification);
132 }
133 return msgs;
134 }
135
136 /**
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 */
141 @Override
142 public void setPolarity(Polarity newPolarity)
143 {
144 if (newPolarity != polarity)
145 {
146 NotificationChain msgs = null;
147 if (polarity != null)
148 msgs = ((InternalEObject)polarity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__POLARITY, null, msgs);
149 if (newPolarity != null)
150 msgs = ((InternalEObject)newPolarity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__POLARITY, null, msgs);
151 msgs = basicSetPolarity(newPolarity, msgs);
152 if (msgs != null) msgs.dispatch();
153 }
154 else if (eNotificationRequired())
155 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__POLARITY, newPolarity, newPolarity));
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 @Override
164 public ModelSymbol getSymbol()
165 {
166 return symbol;
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs)
175 {
176 ModelSymbol oldSymbol = symbol;
177 symbol = newSymbol;
178 if (eNotificationRequired())
179 {
180 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__SYMBOL, oldSymbol, newSymbol);
181 if (msgs == null) msgs = notification; else msgs.add(notification);
182 }
183 return msgs;
184 }
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 @Override
192 public void setSymbol(ModelSymbol newSymbol)
193 {
194 if (newSymbol != symbol)
195 {
196 NotificationChain msgs = null;
197 if (symbol != null)
198 msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__SYMBOL, null, msgs);
199 if (newSymbol != null)
200 msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__SYMBOL, null, msgs);
201 msgs = basicSetSymbol(newSymbol, msgs);
202 if (msgs != null) msgs.dispatch();
203 }
204 else if (eNotificationRequired())
205 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__SYMBOL, newSymbol, newSymbol));
206 }
207
208 /**
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @generated
212 */
213 @Override
214 public EList<Literal> getParams()
215 {
216 if (params == null)
217 {
218 params = new EObjectContainmentEList<Literal>(Literal.class, this, SolverLanguagePackage.CONSTRAINT__PARAMS);
219 }
220 return params;
221 }
222
223 /**
224 * <!-- begin-user-doc -->
225 * <!-- end-user-doc -->
226 * @generated
227 */
228 @Override
229 public ClosureType getClosureType()
230 {
231 return closureType;
232 }
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 public NotificationChain basicSetClosureType(ClosureType newClosureType, NotificationChain msgs)
240 {
241 ClosureType oldClosureType = closureType;
242 closureType = newClosureType;
243 if (eNotificationRequired())
244 {
245 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE, oldClosureType, newClosureType);
246 if (msgs == null) msgs = notification; else msgs.add(notification);
247 }
248 return msgs;
249 }
250
251 /**
252 * <!-- begin-user-doc -->
253 * <!-- end-user-doc -->
254 * @generated
255 */
256 @Override
257 public void setClosureType(ClosureType newClosureType)
258 {
259 if (newClosureType != closureType)
260 {
261 NotificationChain msgs = null;
262 if (closureType != null)
263 msgs = ((InternalEObject)closureType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE, null, msgs);
264 if (newClosureType != null)
265 msgs = ((InternalEObject)newClosureType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE, null, msgs);
266 msgs = basicSetClosureType(newClosureType, msgs);
267 if (msgs != null) msgs.dispatch();
268 }
269 else if (eNotificationRequired())
270 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE, newClosureType, newClosureType));
271 }
272
273 /**
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @generated
277 */
278 @Override
279 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
280 {
281 switch (featureID)
282 {
283 case SolverLanguagePackage.CONSTRAINT__POLARITY:
284 return basicSetPolarity(null, msgs);
285 case SolverLanguagePackage.CONSTRAINT__SYMBOL:
286 return basicSetSymbol(null, msgs);
287 case SolverLanguagePackage.CONSTRAINT__PARAMS:
288 return ((InternalEList<?>)getParams()).basicRemove(otherEnd, msgs);
289 case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE:
290 return basicSetClosureType(null, msgs);
291 }
292 return super.eInverseRemove(otherEnd, featureID, msgs);
293 }
294
295 /**
296 * <!-- begin-user-doc -->
297 * <!-- end-user-doc -->
298 * @generated
299 */
300 @Override
301 public Object eGet(int featureID, boolean resolve, boolean coreType)
302 {
303 switch (featureID)
304 {
305 case SolverLanguagePackage.CONSTRAINT__POLARITY:
306 return getPolarity();
307 case SolverLanguagePackage.CONSTRAINT__SYMBOL:
308 return getSymbol();
309 case SolverLanguagePackage.CONSTRAINT__PARAMS:
310 return getParams();
311 case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE:
312 return getClosureType();
313 }
314 return super.eGet(featureID, resolve, coreType);
315 }
316
317 /**
318 * <!-- begin-user-doc -->
319 * <!-- end-user-doc -->
320 * @generated
321 */
322 @SuppressWarnings("unchecked")
323 @Override
324 public void eSet(int featureID, Object newValue)
325 {
326 switch (featureID)
327 {
328 case SolverLanguagePackage.CONSTRAINT__POLARITY:
329 setPolarity((Polarity)newValue);
330 return;
331 case SolverLanguagePackage.CONSTRAINT__SYMBOL:
332 setSymbol((ModelSymbol)newValue);
333 return;
334 case SolverLanguagePackage.CONSTRAINT__PARAMS:
335 getParams().clear();
336 getParams().addAll((Collection<? extends Literal>)newValue);
337 return;
338 case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE:
339 setClosureType((ClosureType)newValue);
340 return;
341 }
342 super.eSet(featureID, newValue);
343 }
344
345 /**
346 * <!-- begin-user-doc -->
347 * <!-- end-user-doc -->
348 * @generated
349 */
350 @Override
351 public void eUnset(int featureID)
352 {
353 switch (featureID)
354 {
355 case SolverLanguagePackage.CONSTRAINT__POLARITY:
356 setPolarity((Polarity)null);
357 return;
358 case SolverLanguagePackage.CONSTRAINT__SYMBOL:
359 setSymbol((ModelSymbol)null);
360 return;
361 case SolverLanguagePackage.CONSTRAINT__PARAMS:
362 getParams().clear();
363 return;
364 case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE:
365 setClosureType((ClosureType)null);
366 return;
367 }
368 super.eUnset(featureID);
369 }
370
371 /**
372 * <!-- begin-user-doc -->
373 * <!-- end-user-doc -->
374 * @generated
375 */
376 @Override
377 public boolean eIsSet(int featureID)
378 {
379 switch (featureID)
380 {
381 case SolverLanguagePackage.CONSTRAINT__POLARITY:
382 return polarity != null;
383 case SolverLanguagePackage.CONSTRAINT__SYMBOL:
384 return symbol != null;
385 case SolverLanguagePackage.CONSTRAINT__PARAMS:
386 return params != null && !params.isEmpty();
387 case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE:
388 return closureType != null;
389 }
390 return super.eIsSet(featureID);
391 }
392
393} //ConstraintImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllInstancesImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CountImpl.java
index 5da3bf30..1609245f 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllInstancesImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CountImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -11,41 +11,41 @@ import org.eclipse.emf.ecore.InternalEObject;
11 11
12import org.eclipse.emf.ecore.impl.ENotificationImpl; 12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13 13
14import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; 14import org.eclipse.viatra.solver.language.solverLanguage.Count;
15import org.eclipse.viatra.solver.language.solverLanguage.Expression;
15import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
16import org.eclipse.viatra.solver.language.solverLanguage.Symbol;
17 17
18/** 18/**
19 * <!-- begin-user-doc --> 19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>All Instances</b></em>'. 20 * An implementation of the model object '<em><b>Count</b></em>'.
21 * <!-- end-user-doc --> 21 * <!-- end-user-doc -->
22 * <p> 22 * <p>
23 * The following features are implemented: 23 * The following features are implemented:
24 * </p> 24 * </p>
25 * <ul> 25 * <ul>
26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl#getSymbol <em>Symbol</em>}</li> 26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl#getBody <em>Body</em>}</li>
27 * </ul> 27 * </ul>
28 * 28 *
29 * @generated 29 * @generated
30 */ 30 */
31public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances 31public class CountImpl extends ExpressionImpl implements Count
32{ 32{
33 /** 33 /**
34 * The cached value of the '{@link #getSymbol() <em>Symbol</em>}' containment reference. 34 * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
35 * <!-- begin-user-doc --> 35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc --> 36 * <!-- end-user-doc -->
37 * @see #getSymbol() 37 * @see #getBody()
38 * @generated 38 * @generated
39 * @ordered 39 * @ordered
40 */ 40 */
41 protected Symbol symbol; 41 protected Expression body;
42 42
43 /** 43 /**
44 * <!-- begin-user-doc --> 44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc --> 45 * <!-- end-user-doc -->
46 * @generated 46 * @generated
47 */ 47 */
48 protected AllInstancesImpl() 48 protected CountImpl()
49 { 49 {
50 super(); 50 super();
51 } 51 }
@@ -58,7 +58,7 @@ public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances
58 @Override 58 @Override
59 protected EClass eStaticClass() 59 protected EClass eStaticClass()
60 { 60 {
61 return SolverLanguagePackage.Literals.ALL_INSTANCES; 61 return SolverLanguagePackage.Literals.COUNT;
62 } 62 }
63 63
64 /** 64 /**
@@ -67,9 +67,9 @@ public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances
67 * @generated 67 * @generated
68 */ 68 */
69 @Override 69 @Override
70 public Symbol getSymbol() 70 public Expression getBody()
71 { 71 {
72 return symbol; 72 return body;
73 } 73 }
74 74
75 /** 75 /**
@@ -77,13 +77,13 @@ public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances
77 * <!-- end-user-doc --> 77 * <!-- end-user-doc -->
78 * @generated 78 * @generated
79 */ 79 */
80 public NotificationChain basicSetSymbol(Symbol newSymbol, NotificationChain msgs) 80 public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs)
81 { 81 {
82 Symbol oldSymbol = symbol; 82 Expression oldBody = body;
83 symbol = newSymbol; 83 body = newBody;
84 if (eNotificationRequired()) 84 if (eNotificationRequired())
85 { 85 {
86 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ALL_INSTANCES__SYMBOL, oldSymbol, newSymbol); 86 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COUNT__BODY, oldBody, newBody);
87 if (msgs == null) msgs = notification; else msgs.add(notification); 87 if (msgs == null) msgs = notification; else msgs.add(notification);
88 } 88 }
89 return msgs; 89 return msgs;
@@ -95,20 +95,20 @@ public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances
95 * @generated 95 * @generated
96 */ 96 */
97 @Override 97 @Override
98 public void setSymbol(Symbol newSymbol) 98 public void setBody(Expression newBody)
99 { 99 {
100 if (newSymbol != symbol) 100 if (newBody != body)
101 { 101 {
102 NotificationChain msgs = null; 102 NotificationChain msgs = null;
103 if (symbol != null) 103 if (body != null)
104 msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ALL_INSTANCES__SYMBOL, null, msgs); 104 msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COUNT__BODY, null, msgs);
105 if (newSymbol != null) 105 if (newBody != null)
106 msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ALL_INSTANCES__SYMBOL, null, msgs); 106 msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COUNT__BODY, null, msgs);
107 msgs = basicSetSymbol(newSymbol, msgs); 107 msgs = basicSetBody(newBody, msgs);
108 if (msgs != null) msgs.dispatch(); 108 if (msgs != null) msgs.dispatch();
109 } 109 }
110 else if (eNotificationRequired()) 110 else if (eNotificationRequired())
111 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ALL_INSTANCES__SYMBOL, newSymbol, newSymbol)); 111 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COUNT__BODY, newBody, newBody));
112 } 112 }
113 113
114 /** 114 /**
@@ -121,8 +121,8 @@ public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances
121 { 121 {
122 switch (featureID) 122 switch (featureID)
123 { 123 {
124 case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: 124 case SolverLanguagePackage.COUNT__BODY:
125 return basicSetSymbol(null, msgs); 125 return basicSetBody(null, msgs);
126 } 126 }
127 return super.eInverseRemove(otherEnd, featureID, msgs); 127 return super.eInverseRemove(otherEnd, featureID, msgs);
128 } 128 }
@@ -137,8 +137,8 @@ public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances
137 { 137 {
138 switch (featureID) 138 switch (featureID)
139 { 139 {
140 case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: 140 case SolverLanguagePackage.COUNT__BODY:
141 return getSymbol(); 141 return getBody();
142 } 142 }
143 return super.eGet(featureID, resolve, coreType); 143 return super.eGet(featureID, resolve, coreType);
144 } 144 }
@@ -153,8 +153,8 @@ public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances
153 { 153 {
154 switch (featureID) 154 switch (featureID)
155 { 155 {
156 case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: 156 case SolverLanguagePackage.COUNT__BODY:
157 setSymbol((Symbol)newValue); 157 setBody((Expression)newValue);
158 return; 158 return;
159 } 159 }
160 super.eSet(featureID, newValue); 160 super.eSet(featureID, newValue);
@@ -170,8 +170,8 @@ public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances
170 { 170 {
171 switch (featureID) 171 switch (featureID)
172 { 172 {
173 case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: 173 case SolverLanguagePackage.COUNT__BODY:
174 setSymbol((Symbol)null); 174 setBody((Expression)null);
175 return; 175 return;
176 } 176 }
177 super.eUnset(featureID); 177 super.eUnset(featureID);
@@ -187,10 +187,10 @@ public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances
187 { 187 {
188 switch (featureID) 188 switch (featureID)
189 { 189 {
190 case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: 190 case SolverLanguagePackage.COUNT__BODY:
191 return symbol != null; 191 return body != null;
192 } 192 }
193 return super.eIsSet(featureID); 193 return super.eIsSet(featureID);
194 } 194 }
195 195
196} //AllInstancesImpl 196} //CountImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataObjectImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataObjectImpl.java
deleted file mode 100644
index 33bee29f..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataObjectImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.DataObject;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Data Object</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class DataObjectImpl extends ObjectImpl implements DataObject
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected DataObjectImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.DATA_OBJECT;
39 }
40
41} //DataObjectImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataSymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataSymbolImpl.java
deleted file mode 100644
index 221b4783..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataSymbolImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Data Symbol</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class DataSymbolImpl extends SymbolImpl implements DataSymbol
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected DataSymbolImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.DATA_SYMBOL;
39 }
40
41} //DataSymbolImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultDefinitionImpl.java
new file mode 100644
index 00000000..c1eaa71a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultDefinitionImpl.java
@@ -0,0 +1,270 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Call;
15import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition;
16import org.eclipse.viatra.solver.language.solverLanguage.Expression;
17import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Default Definition</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl#getHead <em>Head</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl#getRange <em>Range</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public class DefaultDefinitionImpl extends StatementImpl implements DefaultDefinition
34{
35 /**
36 * The cached value of the '{@link #getHead() <em>Head</em>}' containment reference.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getHead()
40 * @generated
41 * @ordered
42 */
43 protected Call head;
44
45 /**
46 * The cached value of the '{@link #getRange() <em>Range</em>}' containment reference.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getRange()
50 * @generated
51 * @ordered
52 */
53 protected Expression range;
54
55 /**
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @generated
59 */
60 protected DefaultDefinitionImpl()
61 {
62 super();
63 }
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 @Override
71 protected EClass eStaticClass()
72 {
73 return SolverLanguagePackage.Literals.DEFAULT_DEFINITION;
74 }
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 @Override
82 public Call getHead()
83 {
84 return head;
85 }
86
87 /**
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @generated
91 */
92 public NotificationChain basicSetHead(Call newHead, NotificationChain msgs)
93 {
94 Call oldHead = head;
95 head = newHead;
96 if (eNotificationRequired())
97 {
98 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_DEFINITION__HEAD, oldHead, newHead);
99 if (msgs == null) msgs = notification; else msgs.add(notification);
100 }
101 return msgs;
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 public void setHead(Call newHead)
111 {
112 if (newHead != head)
113 {
114 NotificationChain msgs = null;
115 if (head != null)
116 msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_DEFINITION__HEAD, null, msgs);
117 if (newHead != null)
118 msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_DEFINITION__HEAD, null, msgs);
119 msgs = basicSetHead(newHead, msgs);
120 if (msgs != null) msgs.dispatch();
121 }
122 else if (eNotificationRequired())
123 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_DEFINITION__HEAD, newHead, newHead));
124 }
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 @Override
132 public Expression getRange()
133 {
134 return range;
135 }
136
137 /**
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @generated
141 */
142 public NotificationChain basicSetRange(Expression newRange, NotificationChain msgs)
143 {
144 Expression oldRange = range;
145 range = newRange;
146 if (eNotificationRequired())
147 {
148 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_DEFINITION__RANGE, oldRange, newRange);
149 if (msgs == null) msgs = notification; else msgs.add(notification);
150 }
151 return msgs;
152 }
153
154 /**
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @generated
158 */
159 @Override
160 public void setRange(Expression newRange)
161 {
162 if (newRange != range)
163 {
164 NotificationChain msgs = null;
165 if (range != null)
166 msgs = ((InternalEObject)range).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_DEFINITION__RANGE, null, msgs);
167 if (newRange != null)
168 msgs = ((InternalEObject)newRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_DEFINITION__RANGE, null, msgs);
169 msgs = basicSetRange(newRange, msgs);
170 if (msgs != null) msgs.dispatch();
171 }
172 else if (eNotificationRequired())
173 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_DEFINITION__RANGE, newRange, newRange));
174 }
175
176 /**
177 * <!-- begin-user-doc -->
178 * <!-- end-user-doc -->
179 * @generated
180 */
181 @Override
182 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
183 {
184 switch (featureID)
185 {
186 case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD:
187 return basicSetHead(null, msgs);
188 case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE:
189 return basicSetRange(null, msgs);
190 }
191 return super.eInverseRemove(otherEnd, featureID, msgs);
192 }
193
194 /**
195 * <!-- begin-user-doc -->
196 * <!-- end-user-doc -->
197 * @generated
198 */
199 @Override
200 public Object eGet(int featureID, boolean resolve, boolean coreType)
201 {
202 switch (featureID)
203 {
204 case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD:
205 return getHead();
206 case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE:
207 return getRange();
208 }
209 return super.eGet(featureID, resolve, coreType);
210 }
211
212 /**
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @generated
216 */
217 @Override
218 public void eSet(int featureID, Object newValue)
219 {
220 switch (featureID)
221 {
222 case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD:
223 setHead((Call)newValue);
224 return;
225 case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE:
226 setRange((Expression)newValue);
227 return;
228 }
229 super.eSet(featureID, newValue);
230 }
231
232 /**
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @generated
236 */
237 @Override
238 public void eUnset(int featureID)
239 {
240 switch (featureID)
241 {
242 case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD:
243 setHead((Call)null);
244 return;
245 case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE:
246 setRange((Expression)null);
247 return;
248 }
249 super.eUnset(featureID);
250 }
251
252 /**
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @generated
256 */
257 @Override
258 public boolean eIsSet(int featureID)
259 {
260 switch (featureID)
261 {
262 case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD:
263 return head != null;
264 case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE:
265 return range != null;
266 }
267 return super.eIsSet(featureID);
268 }
269
270} //DefaultDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DisjunctionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DisjunctionImpl.java
new file mode 100644
index 00000000..ecdb14d8
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DisjunctionImpl.java
@@ -0,0 +1,167 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import java.util.Collection;
7
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.util.EObjectContainmentEList;
16import org.eclipse.emf.ecore.util.InternalEList;
17
18import org.eclipse.viatra.solver.language.solverLanguage.Disjunction;
19import org.eclipse.viatra.solver.language.solverLanguage.Expression;
20import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
21
22/**
23 * <!-- begin-user-doc -->
24 * An implementation of the model object '<em><b>Disjunction</b></em>'.
25 * <!-- end-user-doc -->
26 * <p>
27 * The following features are implemented:
28 * </p>
29 * <ul>
30 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl#getChildren <em>Children</em>}</li>
31 * </ul>
32 *
33 * @generated
34 */
35public class DisjunctionImpl extends ExpressionImpl implements Disjunction
36{
37 /**
38 * The cached value of the '{@link #getChildren() <em>Children</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getChildren()
42 * @generated
43 * @ordered
44 */
45 protected EList<Expression> children;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected DisjunctionImpl()
53 {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass()
64 {
65 return SolverLanguagePackage.Literals.DISJUNCTION;
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 @Override
74 public EList<Expression> getChildren()
75 {
76 if (children == null)
77 {
78 children = new EObjectContainmentEList<Expression>(Expression.class, this, SolverLanguagePackage.DISJUNCTION__CHILDREN);
79 }
80 return children;
81 }
82
83 /**
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @generated
87 */
88 @Override
89 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
90 {
91 switch (featureID)
92 {
93 case SolverLanguagePackage.DISJUNCTION__CHILDREN:
94 return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
95 }
96 return super.eInverseRemove(otherEnd, featureID, msgs);
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public Object eGet(int featureID, boolean resolve, boolean coreType)
106 {
107 switch (featureID)
108 {
109 case SolverLanguagePackage.DISJUNCTION__CHILDREN:
110 return getChildren();
111 }
112 return super.eGet(featureID, resolve, coreType);
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 @SuppressWarnings("unchecked")
121 @Override
122 public void eSet(int featureID, Object newValue)
123 {
124 switch (featureID)
125 {
126 case SolverLanguagePackage.DISJUNCTION__CHILDREN:
127 getChildren().clear();
128 getChildren().addAll((Collection<? extends Expression>)newValue);
129 return;
130 }
131 super.eSet(featureID, newValue);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public void eUnset(int featureID)
141 {
142 switch (featureID)
143 {
144 case SolverLanguagePackage.DISJUNCTION__CHILDREN:
145 getChildren().clear();
146 return;
147 }
148 super.eUnset(featureID);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public boolean eIsSet(int featureID)
158 {
159 switch (featureID)
160 {
161 case SolverLanguagePackage.DISJUNCTION__CHILDREN:
162 return children != null && !children.isEmpty();
163 }
164 return super.eIsSet(featureID);
165 }
166
167} //DisjunctionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnknownImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EmptyIntervalLiteralImpl.java
index 44195feb..1ebf38ad 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnknownImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EmptyIntervalLiteralImpl.java
@@ -1,28 +1,28 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
6import org.eclipse.emf.ecore.EClass; 6import org.eclipse.emf.ecore.EClass;
7 7
8import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral;
8import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
9import org.eclipse.viatra.solver.language.solverLanguage.Unknown;
10 10
11/** 11/**
12 * <!-- begin-user-doc --> 12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Unknown</b></em>'. 13 * An implementation of the model object '<em><b>Empty Interval Literal</b></em>'.
14 * <!-- end-user-doc --> 14 * <!-- end-user-doc -->
15 * 15 *
16 * @generated 16 * @generated
17 */ 17 */
18public class UnknownImpl extends TruthValueImpl implements Unknown 18public class EmptyIntervalLiteralImpl extends LiteralImpl implements EmptyIntervalLiteral
19{ 19{
20 /** 20 /**
21 * <!-- begin-user-doc --> 21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc --> 22 * <!-- end-user-doc -->
23 * @generated 23 * @generated
24 */ 24 */
25 protected UnknownImpl() 25 protected EmptyIntervalLiteralImpl()
26 { 26 {
27 super(); 27 super();
28 } 28 }
@@ -35,7 +35,7 @@ public class UnknownImpl extends TruthValueImpl implements Unknown
35 @Override 35 @Override
36 protected EClass eStaticClass() 36 protected EClass eStaticClass()
37 { 37 {
38 return SolverLanguagePackage.Literals.UNKNOWN; 38 return SolverLanguagePackage.Literals.EMPTY_INTERVAL_LITERAL;
39 } 39 }
40 40
41} //UnknownImpl 41} //EmptyIntervalLiteralImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EnumInterpretationImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EnumInterpretationImpl.java
deleted file mode 100644
index efa12ea6..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EnumInterpretationImpl.java
+++ /dev/null
@@ -1,244 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import java.util.Collection;
7
8import org.eclipse.emf.common.notify.Notification;
9import org.eclipse.emf.common.notify.NotificationChain;
10
11import org.eclipse.emf.common.util.EList;
12
13import org.eclipse.emf.ecore.EClass;
14import org.eclipse.emf.ecore.InternalEObject;
15
16import org.eclipse.emf.ecore.impl.ENotificationImpl;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation;
22import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol;
23import org.eclipse.viatra.solver.language.solverLanguage.NamedObject;
24import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Enum Interpretation</b></em>'.
29 * <!-- end-user-doc -->
30 * <p>
31 * The following features are implemented:
32 * </p>
33 * <ul>
34 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl#getSymbol <em>Symbol</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl#getObjects <em>Objects</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class EnumInterpretationImpl extends CDInterpretationImpl implements EnumInterpretation
41{
42 /**
43 * The cached value of the '{@link #getSymbol() <em>Symbol</em>}' containment reference.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @see #getSymbol()
47 * @generated
48 * @ordered
49 */
50 protected ModelSymbol symbol;
51
52 /**
53 * The cached value of the '{@link #getObjects() <em>Objects</em>}' containment reference list.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @see #getObjects()
57 * @generated
58 * @ordered
59 */
60 protected EList<NamedObject> objects;
61
62 /**
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @generated
66 */
67 protected EnumInterpretationImpl()
68 {
69 super();
70 }
71
72 /**
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @generated
76 */
77 @Override
78 protected EClass eStaticClass()
79 {
80 return SolverLanguagePackage.Literals.ENUM_INTERPRETATION;
81 }
82
83 /**
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @generated
87 */
88 @Override
89 public ModelSymbol getSymbol()
90 {
91 return symbol;
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs)
100 {
101 ModelSymbol oldSymbol = symbol;
102 symbol = newSymbol;
103 if (eNotificationRequired())
104 {
105 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL, oldSymbol, newSymbol);
106 if (msgs == null) msgs = notification; else msgs.add(notification);
107 }
108 return msgs;
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 @Override
117 public void setSymbol(ModelSymbol newSymbol)
118 {
119 if (newSymbol != symbol)
120 {
121 NotificationChain msgs = null;
122 if (symbol != null)
123 msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL, null, msgs);
124 if (newSymbol != null)
125 msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL, null, msgs);
126 msgs = basicSetSymbol(newSymbol, msgs);
127 if (msgs != null) msgs.dispatch();
128 }
129 else if (eNotificationRequired())
130 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL, newSymbol, newSymbol));
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 @Override
139 public EList<NamedObject> getObjects()
140 {
141 if (objects == null)
142 {
143 objects = new EObjectContainmentEList<NamedObject>(NamedObject.class, this, SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS);
144 }
145 return objects;
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
155 {
156 switch (featureID)
157 {
158 case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL:
159 return basicSetSymbol(null, msgs);
160 case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS:
161 return ((InternalEList<?>)getObjects()).basicRemove(otherEnd, msgs);
162 }
163 return super.eInverseRemove(otherEnd, featureID, msgs);
164 }
165
166 /**
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @generated
170 */
171 @Override
172 public Object eGet(int featureID, boolean resolve, boolean coreType)
173 {
174 switch (featureID)
175 {
176 case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL:
177 return getSymbol();
178 case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS:
179 return getObjects();
180 }
181 return super.eGet(featureID, resolve, coreType);
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 @SuppressWarnings("unchecked")
190 @Override
191 public void eSet(int featureID, Object newValue)
192 {
193 switch (featureID)
194 {
195 case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL:
196 setSymbol((ModelSymbol)newValue);
197 return;
198 case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS:
199 getObjects().clear();
200 getObjects().addAll((Collection<? extends NamedObject>)newValue);
201 return;
202 }
203 super.eSet(featureID, newValue);
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 @Override
212 public void eUnset(int featureID)
213 {
214 switch (featureID)
215 {
216 case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL:
217 setSymbol((ModelSymbol)null);
218 return;
219 case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS:
220 getObjects().clear();
221 return;
222 }
223 super.eUnset(featureID);
224 }
225
226 /**
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @generated
230 */
231 @Override
232 public boolean eIsSet(int featureID)
233 {
234 switch (featureID)
235 {
236 case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL:
237 return symbol != null;
238 case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS:
239 return objects != null && !objects.isEmpty();
240 }
241 return super.eIsSet(featureID);
242 }
243
244} //EnumInterpretationImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EqualsSymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EqualsSymbolImpl.java
deleted file mode 100644
index 33929f42..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EqualsSymbolImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Equals Symbol</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class EqualsSymbolImpl extends PartialitySymbolImpl implements EqualsSymbol
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected EqualsSymbolImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.EQUALS_SYMBOL;
39 }
40
41} //EqualsSymbolImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ErrorImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ErrorImpl.java
deleted file mode 100644
index e58094a7..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ErrorImpl.java
+++ /dev/null
@@ -1,40 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Error</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class ErrorImpl extends TruthValueImpl implements org.eclipse.viatra.solver.language.solverLanguage.Error
18{
19 /**
20 * <!-- begin-user-doc -->
21 * <!-- end-user-doc -->
22 * @generated
23 */
24 protected ErrorImpl()
25 {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass()
36 {
37 return SolverLanguagePackage.Literals.ERROR;
38 }
39
40} //ErrorImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ModelSymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactMultiplicityImpl.java
index bd195572..3751de39 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ModelSymbolImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactMultiplicityImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -9,50 +9,50 @@ import org.eclipse.emf.ecore.EClass;
9 9
10import org.eclipse.emf.ecore.impl.ENotificationImpl; 10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11 11
12import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; 12import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity;
13import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 13import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
14 14
15/** 15/**
16 * <!-- begin-user-doc --> 16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Model Symbol</b></em>'. 17 * An implementation of the model object '<em><b>Exact Multiplicity</b></em>'.
18 * <!-- end-user-doc --> 18 * <!-- end-user-doc -->
19 * <p> 19 * <p>
20 * The following features are implemented: 20 * The following features are implemented:
21 * </p> 21 * </p>
22 * <ul> 22 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl#getName <em>Name</em>}</li> 23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl#getMultiplicity <em>Multiplicity</em>}</li>
24 * </ul> 24 * </ul>
25 * 25 *
26 * @generated 26 * @generated
27 */ 27 */
28public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol 28public class ExactMultiplicityImpl extends MultiplicityImpl implements ExactMultiplicity
29{ 29{
30 /** 30 /**
31 * The default value of the '{@link #getName() <em>Name</em>}' attribute. 31 * The default value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' attribute.
32 * <!-- begin-user-doc --> 32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc --> 33 * <!-- end-user-doc -->
34 * @see #getName() 34 * @see #getMultiplicity()
35 * @generated 35 * @generated
36 * @ordered 36 * @ordered
37 */ 37 */
38 protected static final String NAME_EDEFAULT = null; 38 protected static final int MULTIPLICITY_EDEFAULT = 0;
39 39
40 /** 40 /**
41 * The cached value of the '{@link #getName() <em>Name</em>}' attribute. 41 * The cached value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' attribute.
42 * <!-- begin-user-doc --> 42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc --> 43 * <!-- end-user-doc -->
44 * @see #getName() 44 * @see #getMultiplicity()
45 * @generated 45 * @generated
46 * @ordered 46 * @ordered
47 */ 47 */
48 protected String name = NAME_EDEFAULT; 48 protected int multiplicity = MULTIPLICITY_EDEFAULT;
49 49
50 /** 50 /**
51 * <!-- begin-user-doc --> 51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc --> 52 * <!-- end-user-doc -->
53 * @generated 53 * @generated
54 */ 54 */
55 protected ModelSymbolImpl() 55 protected ExactMultiplicityImpl()
56 { 56 {
57 super(); 57 super();
58 } 58 }
@@ -65,7 +65,7 @@ public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol
65 @Override 65 @Override
66 protected EClass eStaticClass() 66 protected EClass eStaticClass()
67 { 67 {
68 return SolverLanguagePackage.Literals.MODEL_SYMBOL; 68 return SolverLanguagePackage.Literals.EXACT_MULTIPLICITY;
69 } 69 }
70 70
71 /** 71 /**
@@ -74,9 +74,9 @@ public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol
74 * @generated 74 * @generated
75 */ 75 */
76 @Override 76 @Override
77 public String getName() 77 public int getMultiplicity()
78 { 78 {
79 return name; 79 return multiplicity;
80 } 80 }
81 81
82 /** 82 /**
@@ -85,12 +85,12 @@ public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol
85 * @generated 85 * @generated
86 */ 86 */
87 @Override 87 @Override
88 public void setName(String newName) 88 public void setMultiplicity(int newMultiplicity)
89 { 89 {
90 String oldName = name; 90 int oldMultiplicity = multiplicity;
91 name = newName; 91 multiplicity = newMultiplicity;
92 if (eNotificationRequired()) 92 if (eNotificationRequired())
93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MODEL_SYMBOL__NAME, oldName, name)); 93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY, oldMultiplicity, multiplicity));
94 } 94 }
95 95
96 /** 96 /**
@@ -103,8 +103,8 @@ public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol
103 { 103 {
104 switch (featureID) 104 switch (featureID)
105 { 105 {
106 case SolverLanguagePackage.MODEL_SYMBOL__NAME: 106 case SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY:
107 return getName(); 107 return getMultiplicity();
108 } 108 }
109 return super.eGet(featureID, resolve, coreType); 109 return super.eGet(featureID, resolve, coreType);
110 } 110 }
@@ -119,8 +119,8 @@ public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol
119 { 119 {
120 switch (featureID) 120 switch (featureID)
121 { 121 {
122 case SolverLanguagePackage.MODEL_SYMBOL__NAME: 122 case SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY:
123 setName((String)newValue); 123 setMultiplicity((Integer)newValue);
124 return; 124 return;
125 } 125 }
126 super.eSet(featureID, newValue); 126 super.eSet(featureID, newValue);
@@ -136,8 +136,8 @@ public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol
136 { 136 {
137 switch (featureID) 137 switch (featureID)
138 { 138 {
139 case SolverLanguagePackage.MODEL_SYMBOL__NAME: 139 case SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY:
140 setName(NAME_EDEFAULT); 140 setMultiplicity(MULTIPLICITY_EDEFAULT);
141 return; 141 return;
142 } 142 }
143 super.eUnset(featureID); 143 super.eUnset(featureID);
@@ -153,8 +153,8 @@ public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol
153 { 153 {
154 switch (featureID) 154 switch (featureID)
155 { 155 {
156 case SolverLanguagePackage.MODEL_SYMBOL__NAME: 156 case SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY:
157 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); 157 return multiplicity != MULTIPLICITY_EDEFAULT;
158 } 158 }
159 return super.eIsSet(featureID); 159 return super.eIsSet(featureID);
160 } 160 }
@@ -170,10 +170,10 @@ public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol
170 if (eIsProxy()) return super.toString(); 170 if (eIsProxy()) return super.toString();
171 171
172 StringBuilder result = new StringBuilder(super.toString()); 172 StringBuilder result = new StringBuilder(super.toString());
173 result.append(" (name: "); 173 result.append(" (multiplicity: ");
174 result.append(name); 174 result.append(multiplicity);
175 result.append(')'); 175 result.append(')');
176 return result.toString(); 176 return result.toString();
177 } 177 }
178 178
179} //ModelSymbolImpl 179} //ExactMultiplicityImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedObjectImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactScopeDefinitionImpl.java
index 9d907661..faf51904 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedObjectImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactScopeDefinitionImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -9,50 +9,50 @@ import org.eclipse.emf.ecore.EClass;
9 9
10import org.eclipse.emf.ecore.impl.ENotificationImpl; 10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11 11
12import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; 12import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition;
13import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 13import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
14 14
15/** 15/**
16 * <!-- begin-user-doc --> 16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Named Object</b></em>'. 17 * An implementation of the model object '<em><b>Exact Scope Definition</b></em>'.
18 * <!-- end-user-doc --> 18 * <!-- end-user-doc -->
19 * <p> 19 * <p>
20 * The following features are implemented: 20 * The following features are implemented:
21 * </p> 21 * </p>
22 * <ul> 22 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl#getName <em>Name</em>}</li> 23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl#getExactScope <em>Exact Scope</em>}</li>
24 * </ul> 24 * </ul>
25 * 25 *
26 * @generated 26 * @generated
27 */ 27 */
28public class NamedObjectImpl extends ObjectImpl implements NamedObject 28public class ExactScopeDefinitionImpl extends ScopeDefinitionImpl implements ExactScopeDefinition
29{ 29{
30 /** 30 /**
31 * The default value of the '{@link #getName() <em>Name</em>}' attribute. 31 * The default value of the '{@link #getExactScope() <em>Exact Scope</em>}' attribute.
32 * <!-- begin-user-doc --> 32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc --> 33 * <!-- end-user-doc -->
34 * @see #getName() 34 * @see #getExactScope()
35 * @generated 35 * @generated
36 * @ordered 36 * @ordered
37 */ 37 */
38 protected static final String NAME_EDEFAULT = null; 38 protected static final int EXACT_SCOPE_EDEFAULT = 0;
39 39
40 /** 40 /**
41 * The cached value of the '{@link #getName() <em>Name</em>}' attribute. 41 * The cached value of the '{@link #getExactScope() <em>Exact Scope</em>}' attribute.
42 * <!-- begin-user-doc --> 42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc --> 43 * <!-- end-user-doc -->
44 * @see #getName() 44 * @see #getExactScope()
45 * @generated 45 * @generated
46 * @ordered 46 * @ordered
47 */ 47 */
48 protected String name = NAME_EDEFAULT; 48 protected int exactScope = EXACT_SCOPE_EDEFAULT;
49 49
50 /** 50 /**
51 * <!-- begin-user-doc --> 51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc --> 52 * <!-- end-user-doc -->
53 * @generated 53 * @generated
54 */ 54 */
55 protected NamedObjectImpl() 55 protected ExactScopeDefinitionImpl()
56 { 56 {
57 super(); 57 super();
58 } 58 }
@@ -65,7 +65,7 @@ public class NamedObjectImpl extends ObjectImpl implements NamedObject
65 @Override 65 @Override
66 protected EClass eStaticClass() 66 protected EClass eStaticClass()
67 { 67 {
68 return SolverLanguagePackage.Literals.NAMED_OBJECT; 68 return SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION;
69 } 69 }
70 70
71 /** 71 /**
@@ -74,9 +74,9 @@ public class NamedObjectImpl extends ObjectImpl implements NamedObject
74 * @generated 74 * @generated
75 */ 75 */
76 @Override 76 @Override
77 public String getName() 77 public int getExactScope()
78 { 78 {
79 return name; 79 return exactScope;
80 } 80 }
81 81
82 /** 82 /**
@@ -85,12 +85,12 @@ public class NamedObjectImpl extends ObjectImpl implements NamedObject
85 * @generated 85 * @generated
86 */ 86 */
87 @Override 87 @Override
88 public void setName(String newName) 88 public void setExactScope(int newExactScope)
89 { 89 {
90 String oldName = name; 90 int oldExactScope = exactScope;
91 name = newName; 91 exactScope = newExactScope;
92 if (eNotificationRequired()) 92 if (eNotificationRequired())
93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.NAMED_OBJECT__NAME, oldName, name)); 93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE, oldExactScope, exactScope));
94 } 94 }
95 95
96 /** 96 /**
@@ -103,8 +103,8 @@ public class NamedObjectImpl extends ObjectImpl implements NamedObject
103 { 103 {
104 switch (featureID) 104 switch (featureID)
105 { 105 {
106 case SolverLanguagePackage.NAMED_OBJECT__NAME: 106 case SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE:
107 return getName(); 107 return getExactScope();
108 } 108 }
109 return super.eGet(featureID, resolve, coreType); 109 return super.eGet(featureID, resolve, coreType);
110 } 110 }
@@ -119,8 +119,8 @@ public class NamedObjectImpl extends ObjectImpl implements NamedObject
119 { 119 {
120 switch (featureID) 120 switch (featureID)
121 { 121 {
122 case SolverLanguagePackage.NAMED_OBJECT__NAME: 122 case SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE:
123 setName((String)newValue); 123 setExactScope((Integer)newValue);
124 return; 124 return;
125 } 125 }
126 super.eSet(featureID, newValue); 126 super.eSet(featureID, newValue);
@@ -136,8 +136,8 @@ public class NamedObjectImpl extends ObjectImpl implements NamedObject
136 { 136 {
137 switch (featureID) 137 switch (featureID)
138 { 138 {
139 case SolverLanguagePackage.NAMED_OBJECT__NAME: 139 case SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE:
140 setName(NAME_EDEFAULT); 140 setExactScope(EXACT_SCOPE_EDEFAULT);
141 return; 141 return;
142 } 142 }
143 super.eUnset(featureID); 143 super.eUnset(featureID);
@@ -153,8 +153,8 @@ public class NamedObjectImpl extends ObjectImpl implements NamedObject
153 { 153 {
154 switch (featureID) 154 switch (featureID)
155 { 155 {
156 case SolverLanguagePackage.NAMED_OBJECT__NAME: 156 case SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE:
157 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); 157 return exactScope != EXACT_SCOPE_EDEFAULT;
158 } 158 }
159 return super.eIsSet(featureID); 159 return super.eIsSet(featureID);
160 } 160 }
@@ -170,10 +170,10 @@ public class NamedObjectImpl extends ObjectImpl implements NamedObject
170 if (eIsProxy()) return super.toString(); 170 if (eIsProxy()) return super.toString();
171 171
172 StringBuilder result = new StringBuilder(super.toString()); 172 StringBuilder result = new StringBuilder(super.toString());
173 result.append(" (name: "); 173 result.append(" (exactScope: ");
174 result.append(name); 174 result.append(exactScope);
175 result.append(')'); 175 result.append(')');
176 return result.toString(); 176 return result.toString();
177 } 177 }
178 178
179} //NamedObjectImpl 179} //ExactScopeDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExistSymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExistSymbolImpl.java
deleted file mode 100644
index 2fd59e41..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExistSymbolImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Exist Symbol</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class ExistSymbolImpl extends PartialitySymbolImpl implements ExistSymbol
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected ExistSymbolImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.EXIST_SYMBOL;
39 }
40
41} //ExistSymbolImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanObjectImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionArgumentImpl.java
index cb1a3ff4..f83c1cb3 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanObjectImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionArgumentImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -11,41 +11,41 @@ import org.eclipse.emf.ecore.InternalEObject;
11 11
12import org.eclipse.emf.ecore.impl.ENotificationImpl; 12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13 13
14import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; 14import org.eclipse.viatra.solver.language.solverLanguage.Expression;
15import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue; 15import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument;
16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
17 17
18/** 18/**
19 * <!-- begin-user-doc --> 19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>Boolean Object</b></em>'. 20 * An implementation of the model object '<em><b>Expression Argument</b></em>'.
21 * <!-- end-user-doc --> 21 * <!-- end-user-doc -->
22 * <p> 22 * <p>
23 * The following features are implemented: 23 * The following features are implemented:
24 * </p> 24 * </p>
25 * <ul> 25 * <ul>
26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl#getValue <em>Value</em>}</li> 26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl#getBody <em>Body</em>}</li>
27 * </ul> 27 * </ul>
28 * 28 *
29 * @generated 29 * @generated
30 */ 30 */
31public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject 31public class ExpressionArgumentImpl extends ArgumentImpl implements ExpressionArgument
32{ 32{
33 /** 33 /**
34 * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference. 34 * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
35 * <!-- begin-user-doc --> 35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc --> 36 * <!-- end-user-doc -->
37 * @see #getValue() 37 * @see #getBody()
38 * @generated 38 * @generated
39 * @ordered 39 * @ordered
40 */ 40 */
41 protected BooleanValue value; 41 protected Expression body;
42 42
43 /** 43 /**
44 * <!-- begin-user-doc --> 44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc --> 45 * <!-- end-user-doc -->
46 * @generated 46 * @generated
47 */ 47 */
48 protected BooleanObjectImpl() 48 protected ExpressionArgumentImpl()
49 { 49 {
50 super(); 50 super();
51 } 51 }
@@ -58,7 +58,7 @@ public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject
58 @Override 58 @Override
59 protected EClass eStaticClass() 59 protected EClass eStaticClass()
60 { 60 {
61 return SolverLanguagePackage.Literals.BOOLEAN_OBJECT; 61 return SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT;
62 } 62 }
63 63
64 /** 64 /**
@@ -67,9 +67,9 @@ public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject
67 * @generated 67 * @generated
68 */ 68 */
69 @Override 69 @Override
70 public BooleanValue getValue() 70 public Expression getBody()
71 { 71 {
72 return value; 72 return body;
73 } 73 }
74 74
75 /** 75 /**
@@ -77,13 +77,13 @@ public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject
77 * <!-- end-user-doc --> 77 * <!-- end-user-doc -->
78 * @generated 78 * @generated
79 */ 79 */
80 public NotificationChain basicSetValue(BooleanValue newValue, NotificationChain msgs) 80 public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs)
81 { 81 {
82 BooleanValue oldValue = value; 82 Expression oldBody = body;
83 value = newValue; 83 body = newBody;
84 if (eNotificationRequired()) 84 if (eNotificationRequired())
85 { 85 {
86 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOOLEAN_OBJECT__VALUE, oldValue, newValue); 86 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY, oldBody, newBody);
87 if (msgs == null) msgs = notification; else msgs.add(notification); 87 if (msgs == null) msgs = notification; else msgs.add(notification);
88 } 88 }
89 return msgs; 89 return msgs;
@@ -95,20 +95,20 @@ public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject
95 * @generated 95 * @generated
96 */ 96 */
97 @Override 97 @Override
98 public void setValue(BooleanValue newValue) 98 public void setBody(Expression newBody)
99 { 99 {
100 if (newValue != value) 100 if (newBody != body)
101 { 101 {
102 NotificationChain msgs = null; 102 NotificationChain msgs = null;
103 if (value != null) 103 if (body != null)
104 msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BOOLEAN_OBJECT__VALUE, null, msgs); 104 msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY, null, msgs);
105 if (newValue != null) 105 if (newBody != null)
106 msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BOOLEAN_OBJECT__VALUE, null, msgs); 106 msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY, null, msgs);
107 msgs = basicSetValue(newValue, msgs); 107 msgs = basicSetBody(newBody, msgs);
108 if (msgs != null) msgs.dispatch(); 108 if (msgs != null) msgs.dispatch();
109 } 109 }
110 else if (eNotificationRequired()) 110 else if (eNotificationRequired())
111 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOOLEAN_OBJECT__VALUE, newValue, newValue)); 111 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY, newBody, newBody));
112 } 112 }
113 113
114 /** 114 /**
@@ -121,8 +121,8 @@ public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject
121 { 121 {
122 switch (featureID) 122 switch (featureID)
123 { 123 {
124 case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: 124 case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY:
125 return basicSetValue(null, msgs); 125 return basicSetBody(null, msgs);
126 } 126 }
127 return super.eInverseRemove(otherEnd, featureID, msgs); 127 return super.eInverseRemove(otherEnd, featureID, msgs);
128 } 128 }
@@ -137,8 +137,8 @@ public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject
137 { 137 {
138 switch (featureID) 138 switch (featureID)
139 { 139 {
140 case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: 140 case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY:
141 return getValue(); 141 return getBody();
142 } 142 }
143 return super.eGet(featureID, resolve, coreType); 143 return super.eGet(featureID, resolve, coreType);
144 } 144 }
@@ -153,8 +153,8 @@ public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject
153 { 153 {
154 switch (featureID) 154 switch (featureID)
155 { 155 {
156 case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: 156 case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY:
157 setValue((BooleanValue)newValue); 157 setBody((Expression)newValue);
158 return; 158 return;
159 } 159 }
160 super.eSet(featureID, newValue); 160 super.eSet(featureID, newValue);
@@ -170,8 +170,8 @@ public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject
170 { 170 {
171 switch (featureID) 171 switch (featureID)
172 { 172 {
173 case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: 173 case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY:
174 setValue((BooleanValue)null); 174 setBody((Expression)null);
175 return; 175 return;
176 } 176 }
177 super.eUnset(featureID); 177 super.eUnset(featureID);
@@ -187,10 +187,10 @@ public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject
187 { 187 {
188 switch (featureID) 188 switch (featureID)
189 { 189 {
190 case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: 190 case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY:
191 return value != null; 191 return body != null;
192 } 192 }
193 return super.eIsSet(featureID); 193 return super.eIsSet(featureID);
194 } 194 }
195 195
196} //BooleanObjectImpl 196} //ExpressionArgumentImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FalseImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionImpl.java
index 332f9af3..585e3c41 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FalseImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionImpl.java
@@ -1,28 +1,28 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
6import org.eclipse.emf.ecore.EClass; 6import org.eclipse.emf.ecore.EClass;
7 7
8import org.eclipse.viatra.solver.language.solverLanguage.False; 8import org.eclipse.viatra.solver.language.solverLanguage.Expression;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10 10
11/** 11/**
12 * <!-- begin-user-doc --> 12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>False</b></em>'. 13 * An implementation of the model object '<em><b>Expression</b></em>'.
14 * <!-- end-user-doc --> 14 * <!-- end-user-doc -->
15 * 15 *
16 * @generated 16 * @generated
17 */ 17 */
18public class FalseImpl extends TruthValueImpl implements False 18public class ExpressionImpl extends StatementImpl implements Expression
19{ 19{
20 /** 20 /**
21 * <!-- begin-user-doc --> 21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc --> 22 * <!-- end-user-doc -->
23 * @generated 23 * @generated
24 */ 24 */
25 protected FalseImpl() 25 protected ExpressionImpl()
26 { 26 {
27 super(); 27 super();
28 } 28 }
@@ -35,7 +35,7 @@ public class FalseImpl extends TruthValueImpl implements False
35 @Override 35 @Override
36 protected EClass eStaticClass() 36 protected EClass eStaticClass()
37 { 37 {
38 return SolverLanguagePackage.Literals.FALSE; 38 return SolverLanguagePackage.Literals.EXPRESSION;
39 } 39 }
40 40
41} //FalseImpl 41} //ExpressionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternMetricDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternMetricDefinitionImpl.java
new file mode 100644
index 00000000..e324c38a
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternMetricDefinitionImpl.java
@@ -0,0 +1,270 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Call;
15import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition;
16import org.eclipse.viatra.solver.language.solverLanguage.MetricType;
17import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Extern Metric Definition</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl#getType <em>Type</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl#getHead <em>Head</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public class ExternMetricDefinitionImpl extends StatementImpl implements ExternMetricDefinition
34{
35 /**
36 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getType()
40 * @generated
41 * @ordered
42 */
43 protected static final MetricType TYPE_EDEFAULT = MetricType.INT;
44
45 /**
46 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getType()
50 * @generated
51 * @ordered
52 */
53 protected MetricType type = TYPE_EDEFAULT;
54
55 /**
56 * The cached value of the '{@link #getHead() <em>Head</em>}' containment reference.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #getHead()
60 * @generated
61 * @ordered
62 */
63 protected Call head;
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 protected ExternMetricDefinitionImpl()
71 {
72 super();
73 }
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 @Override
81 protected EClass eStaticClass()
82 {
83 return SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION;
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 @Override
92 public MetricType getType()
93 {
94 return type;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public void setType(MetricType newType)
104 {
105 MetricType oldType = type;
106 type = newType == null ? TYPE_EDEFAULT : newType;
107 if (eNotificationRequired())
108 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE, oldType, type));
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 @Override
117 public Call getHead()
118 {
119 return head;
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public NotificationChain basicSetHead(Call newHead, NotificationChain msgs)
128 {
129 Call oldHead = head;
130 head = newHead;
131 if (eNotificationRequired())
132 {
133 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD, oldHead, newHead);
134 if (msgs == null) msgs = notification; else msgs.add(notification);
135 }
136 return msgs;
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public void setHead(Call newHead)
146 {
147 if (newHead != head)
148 {
149 NotificationChain msgs = null;
150 if (head != null)
151 msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD, null, msgs);
152 if (newHead != null)
153 msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD, null, msgs);
154 msgs = basicSetHead(newHead, msgs);
155 if (msgs != null) msgs.dispatch();
156 }
157 else if (eNotificationRequired())
158 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD, newHead, newHead));
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 @Override
167 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
168 {
169 switch (featureID)
170 {
171 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD:
172 return basicSetHead(null, msgs);
173 }
174 return super.eInverseRemove(otherEnd, featureID, msgs);
175 }
176
177 /**
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @generated
181 */
182 @Override
183 public Object eGet(int featureID, boolean resolve, boolean coreType)
184 {
185 switch (featureID)
186 {
187 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE:
188 return getType();
189 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD:
190 return getHead();
191 }
192 return super.eGet(featureID, resolve, coreType);
193 }
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 @Override
201 public void eSet(int featureID, Object newValue)
202 {
203 switch (featureID)
204 {
205 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE:
206 setType((MetricType)newValue);
207 return;
208 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD:
209 setHead((Call)newValue);
210 return;
211 }
212 super.eSet(featureID, newValue);
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 @Override
221 public void eUnset(int featureID)
222 {
223 switch (featureID)
224 {
225 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE:
226 setType(TYPE_EDEFAULT);
227 return;
228 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD:
229 setHead((Call)null);
230 return;
231 }
232 super.eUnset(featureID);
233 }
234
235 /**
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @generated
239 */
240 @Override
241 public boolean eIsSet(int featureID)
242 {
243 switch (featureID)
244 {
245 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE:
246 return type != TYPE_EDEFAULT;
247 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD:
248 return head != null;
249 }
250 return super.eIsSet(featureID);
251 }
252
253 /**
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 @Override
259 public String toString()
260 {
261 if (eIsProxy()) return super.toString();
262
263 StringBuilder result = new StringBuilder(super.toString());
264 result.append(" (type: ");
265 result.append(type);
266 result.append(')');
267 return result.toString();
268 }
269
270} //ExternMetricDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultInterpretationImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternPredicateDefinitionImpl.java
index eb2835a0..0605cb0f 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultInterpretationImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternPredicateDefinitionImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -11,41 +11,41 @@ import org.eclipse.emf.ecore.InternalEObject;
11 11
12import org.eclipse.emf.ecore.impl.ENotificationImpl; 12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13 13
14import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; 14import org.eclipse.viatra.solver.language.solverLanguage.Call;
15import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; 15import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition;
16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
17 17
18/** 18/**
19 * <!-- begin-user-doc --> 19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>Default Interpretation</b></em>'. 20 * An implementation of the model object '<em><b>Extern Predicate Definition</b></em>'.
21 * <!-- end-user-doc --> 21 * <!-- end-user-doc -->
22 * <p> 22 * <p>
23 * The following features are implemented: 23 * The following features are implemented:
24 * </p> 24 * </p>
25 * <ul> 25 * <ul>
26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl#getInterpretation <em>Interpretation</em>}</li> 26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl#getHead <em>Head</em>}</li>
27 * </ul> 27 * </ul>
28 * 28 *
29 * @generated 29 * @generated
30 */ 30 */
31public class DefaultInterpretationImpl extends InterpretationImpl implements DefaultInterpretation 31public class ExternPredicateDefinitionImpl extends StatementImpl implements ExternPredicateDefinition
32{ 32{
33 /** 33 /**
34 * The cached value of the '{@link #getInterpretation() <em>Interpretation</em>}' containment reference. 34 * The cached value of the '{@link #getHead() <em>Head</em>}' containment reference.
35 * <!-- begin-user-doc --> 35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc --> 36 * <!-- end-user-doc -->
37 * @see #getInterpretation() 37 * @see #getHead()
38 * @generated 38 * @generated
39 * @ordered 39 * @ordered
40 */ 40 */
41 protected BasicInterpretation interpretation; 41 protected Call head;
42 42
43 /** 43 /**
44 * <!-- begin-user-doc --> 44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc --> 45 * <!-- end-user-doc -->
46 * @generated 46 * @generated
47 */ 47 */
48 protected DefaultInterpretationImpl() 48 protected ExternPredicateDefinitionImpl()
49 { 49 {
50 super(); 50 super();
51 } 51 }
@@ -58,7 +58,7 @@ public class DefaultInterpretationImpl extends InterpretationImpl implements Def
58 @Override 58 @Override
59 protected EClass eStaticClass() 59 protected EClass eStaticClass()
60 { 60 {
61 return SolverLanguagePackage.Literals.DEFAULT_INTERPRETATION; 61 return SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION;
62 } 62 }
63 63
64 /** 64 /**
@@ -67,9 +67,9 @@ public class DefaultInterpretationImpl extends InterpretationImpl implements Def
67 * @generated 67 * @generated
68 */ 68 */
69 @Override 69 @Override
70 public BasicInterpretation getInterpretation() 70 public Call getHead()
71 { 71 {
72 return interpretation; 72 return head;
73 } 73 }
74 74
75 /** 75 /**
@@ -77,13 +77,13 @@ public class DefaultInterpretationImpl extends InterpretationImpl implements Def
77 * <!-- end-user-doc --> 77 * <!-- end-user-doc -->
78 * @generated 78 * @generated
79 */ 79 */
80 public NotificationChain basicSetInterpretation(BasicInterpretation newInterpretation, NotificationChain msgs) 80 public NotificationChain basicSetHead(Call newHead, NotificationChain msgs)
81 { 81 {
82 BasicInterpretation oldInterpretation = interpretation; 82 Call oldHead = head;
83 interpretation = newInterpretation; 83 head = newHead;
84 if (eNotificationRequired()) 84 if (eNotificationRequired())
85 { 85 {
86 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION, oldInterpretation, newInterpretation); 86 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD, oldHead, newHead);
87 if (msgs == null) msgs = notification; else msgs.add(notification); 87 if (msgs == null) msgs = notification; else msgs.add(notification);
88 } 88 }
89 return msgs; 89 return msgs;
@@ -95,20 +95,20 @@ public class DefaultInterpretationImpl extends InterpretationImpl implements Def
95 * @generated 95 * @generated
96 */ 96 */
97 @Override 97 @Override
98 public void setInterpretation(BasicInterpretation newInterpretation) 98 public void setHead(Call newHead)
99 { 99 {
100 if (newInterpretation != interpretation) 100 if (newHead != head)
101 { 101 {
102 NotificationChain msgs = null; 102 NotificationChain msgs = null;
103 if (interpretation != null) 103 if (head != null)
104 msgs = ((InternalEObject)interpretation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION, null, msgs); 104 msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD, null, msgs);
105 if (newInterpretation != null) 105 if (newHead != null)
106 msgs = ((InternalEObject)newInterpretation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION, null, msgs); 106 msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD, null, msgs);
107 msgs = basicSetInterpretation(newInterpretation, msgs); 107 msgs = basicSetHead(newHead, msgs);
108 if (msgs != null) msgs.dispatch(); 108 if (msgs != null) msgs.dispatch();
109 } 109 }
110 else if (eNotificationRequired()) 110 else if (eNotificationRequired())
111 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION, newInterpretation, newInterpretation)); 111 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD, newHead, newHead));
112 } 112 }
113 113
114 /** 114 /**
@@ -121,8 +121,8 @@ public class DefaultInterpretationImpl extends InterpretationImpl implements Def
121 { 121 {
122 switch (featureID) 122 switch (featureID)
123 { 123 {
124 case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: 124 case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD:
125 return basicSetInterpretation(null, msgs); 125 return basicSetHead(null, msgs);
126 } 126 }
127 return super.eInverseRemove(otherEnd, featureID, msgs); 127 return super.eInverseRemove(otherEnd, featureID, msgs);
128 } 128 }
@@ -137,8 +137,8 @@ public class DefaultInterpretationImpl extends InterpretationImpl implements Def
137 { 137 {
138 switch (featureID) 138 switch (featureID)
139 { 139 {
140 case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: 140 case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD:
141 return getInterpretation(); 141 return getHead();
142 } 142 }
143 return super.eGet(featureID, resolve, coreType); 143 return super.eGet(featureID, resolve, coreType);
144 } 144 }
@@ -153,8 +153,8 @@ public class DefaultInterpretationImpl extends InterpretationImpl implements Def
153 { 153 {
154 switch (featureID) 154 switch (featureID)
155 { 155 {
156 case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: 156 case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD:
157 setInterpretation((BasicInterpretation)newValue); 157 setHead((Call)newValue);
158 return; 158 return;
159 } 159 }
160 super.eSet(featureID, newValue); 160 super.eSet(featureID, newValue);
@@ -170,8 +170,8 @@ public class DefaultInterpretationImpl extends InterpretationImpl implements Def
170 { 170 {
171 switch (featureID) 171 switch (featureID)
172 { 172 {
173 case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: 173 case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD:
174 setInterpretation((BasicInterpretation)null); 174 setHead((Call)null);
175 return; 175 return;
176 } 176 }
177 super.eUnset(featureID); 177 super.eUnset(featureID);
@@ -187,10 +187,10 @@ public class DefaultInterpretationImpl extends InterpretationImpl implements Def
187 { 187 {
188 switch (featureID) 188 switch (featureID)
189 { 189 {
190 case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: 190 case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD:
191 return interpretation != null; 191 return head != null;
192 } 192 }
193 return super.eIsSet(featureID); 193 return super.eIsSet(featureID);
194 } 194 }
195 195
196} //DefaultInterpretationImpl 196} //ExternPredicateDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FieldRelationInterpretationImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FieldRelationInterpretationImpl.java
deleted file mode 100644
index ea9b80b2..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FieldRelationInterpretationImpl.java
+++ /dev/null
@@ -1,418 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
14
15import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation;
16import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol;
17import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition;
18import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
19import org.eclipse.viatra.solver.language.solverLanguage.Symbol;
20
21/**
22 * <!-- begin-user-doc -->
23 * An implementation of the model object '<em><b>Field Relation Interpretation</b></em>'.
24 * <!-- end-user-doc -->
25 * <p>
26 * The following features are implemented:
27 * </p>
28 * <ul>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl#isContainment <em>Containment</em>}</li>
30 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl#getSymbol <em>Symbol</em>}</li>
31 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl#getMultiplicity <em>Multiplicity</em>}</li>
32 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl#getTarget <em>Target</em>}</li>
33 * </ul>
34 *
35 * @generated
36 */
37public class FieldRelationInterpretationImpl extends MinimalEObjectImpl.Container implements FieldRelationInterpretation
38{
39 /**
40 * The default value of the '{@link #isContainment() <em>Containment</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #isContainment()
44 * @generated
45 * @ordered
46 */
47 protected static final boolean CONTAINMENT_EDEFAULT = false;
48
49 /**
50 * The cached value of the '{@link #isContainment() <em>Containment</em>}' attribute.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #isContainment()
54 * @generated
55 * @ordered
56 */
57 protected boolean containment = CONTAINMENT_EDEFAULT;
58
59 /**
60 * The cached value of the '{@link #getSymbol() <em>Symbol</em>}' containment reference.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see #getSymbol()
64 * @generated
65 * @ordered
66 */
67 protected ModelSymbol symbol;
68
69 /**
70 * The cached value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' containment reference.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @see #getMultiplicity()
74 * @generated
75 * @ordered
76 */
77 protected MultiplicityDefinition multiplicity;
78
79 /**
80 * The cached value of the '{@link #getTarget() <em>Target</em>}' containment reference.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @see #getTarget()
84 * @generated
85 * @ordered
86 */
87 protected Symbol target;
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 protected FieldRelationInterpretationImpl()
95 {
96 super();
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 protected EClass eStaticClass()
106 {
107 return SolverLanguagePackage.Literals.FIELD_RELATION_INTERPRETATION;
108 }
109
110 /**
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 @Override
116 public boolean isContainment()
117 {
118 return containment;
119 }
120
121 /**
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @generated
125 */
126 @Override
127 public void setContainment(boolean newContainment)
128 {
129 boolean oldContainment = containment;
130 containment = newContainment;
131 if (eNotificationRequired())
132 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT, oldContainment, containment));
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 @Override
141 public ModelSymbol getSymbol()
142 {
143 return symbol;
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs)
152 {
153 ModelSymbol oldSymbol = symbol;
154 symbol = newSymbol;
155 if (eNotificationRequired())
156 {
157 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL, oldSymbol, newSymbol);
158 if (msgs == null) msgs = notification; else msgs.add(notification);
159 }
160 return msgs;
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 @Override
169 public void setSymbol(ModelSymbol newSymbol)
170 {
171 if (newSymbol != symbol)
172 {
173 NotificationChain msgs = null;
174 if (symbol != null)
175 msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL, null, msgs);
176 if (newSymbol != null)
177 msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL, null, msgs);
178 msgs = basicSetSymbol(newSymbol, msgs);
179 if (msgs != null) msgs.dispatch();
180 }
181 else if (eNotificationRequired())
182 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL, newSymbol, newSymbol));
183 }
184
185 /**
186 * <!-- begin-user-doc -->
187 * <!-- end-user-doc -->
188 * @generated
189 */
190 @Override
191 public MultiplicityDefinition getMultiplicity()
192 {
193 return multiplicity;
194 }
195
196 /**
197 * <!-- begin-user-doc -->
198 * <!-- end-user-doc -->
199 * @generated
200 */
201 public NotificationChain basicSetMultiplicity(MultiplicityDefinition newMultiplicity, NotificationChain msgs)
202 {
203 MultiplicityDefinition oldMultiplicity = multiplicity;
204 multiplicity = newMultiplicity;
205 if (eNotificationRequired())
206 {
207 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY, oldMultiplicity, newMultiplicity);
208 if (msgs == null) msgs = notification; else msgs.add(notification);
209 }
210 return msgs;
211 }
212
213 /**
214 * <!-- begin-user-doc -->
215 * <!-- end-user-doc -->
216 * @generated
217 */
218 @Override
219 public void setMultiplicity(MultiplicityDefinition newMultiplicity)
220 {
221 if (newMultiplicity != multiplicity)
222 {
223 NotificationChain msgs = null;
224 if (multiplicity != null)
225 msgs = ((InternalEObject)multiplicity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY, null, msgs);
226 if (newMultiplicity != null)
227 msgs = ((InternalEObject)newMultiplicity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY, null, msgs);
228 msgs = basicSetMultiplicity(newMultiplicity, msgs);
229 if (msgs != null) msgs.dispatch();
230 }
231 else if (eNotificationRequired())
232 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY, newMultiplicity, newMultiplicity));
233 }
234
235 /**
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @generated
239 */
240 @Override
241 public Symbol getTarget()
242 {
243 return target;
244 }
245
246 /**
247 * <!-- begin-user-doc -->
248 * <!-- end-user-doc -->
249 * @generated
250 */
251 public NotificationChain basicSetTarget(Symbol newTarget, NotificationChain msgs)
252 {
253 Symbol oldTarget = target;
254 target = newTarget;
255 if (eNotificationRequired())
256 {
257 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET, oldTarget, newTarget);
258 if (msgs == null) msgs = notification; else msgs.add(notification);
259 }
260 return msgs;
261 }
262
263 /**
264 * <!-- begin-user-doc -->
265 * <!-- end-user-doc -->
266 * @generated
267 */
268 @Override
269 public void setTarget(Symbol newTarget)
270 {
271 if (newTarget != target)
272 {
273 NotificationChain msgs = null;
274 if (target != null)
275 msgs = ((InternalEObject)target).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET, null, msgs);
276 if (newTarget != null)
277 msgs = ((InternalEObject)newTarget).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET, null, msgs);
278 msgs = basicSetTarget(newTarget, msgs);
279 if (msgs != null) msgs.dispatch();
280 }
281 else if (eNotificationRequired())
282 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET, newTarget, newTarget));
283 }
284
285 /**
286 * <!-- begin-user-doc -->
287 * <!-- end-user-doc -->
288 * @generated
289 */
290 @Override
291 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
292 {
293 switch (featureID)
294 {
295 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL:
296 return basicSetSymbol(null, msgs);
297 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY:
298 return basicSetMultiplicity(null, msgs);
299 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET:
300 return basicSetTarget(null, msgs);
301 }
302 return super.eInverseRemove(otherEnd, featureID, msgs);
303 }
304
305 /**
306 * <!-- begin-user-doc -->
307 * <!-- end-user-doc -->
308 * @generated
309 */
310 @Override
311 public Object eGet(int featureID, boolean resolve, boolean coreType)
312 {
313 switch (featureID)
314 {
315 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT:
316 return isContainment();
317 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL:
318 return getSymbol();
319 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY:
320 return getMultiplicity();
321 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET:
322 return getTarget();
323 }
324 return super.eGet(featureID, resolve, coreType);
325 }
326
327 /**
328 * <!-- begin-user-doc -->
329 * <!-- end-user-doc -->
330 * @generated
331 */
332 @Override
333 public void eSet(int featureID, Object newValue)
334 {
335 switch (featureID)
336 {
337 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT:
338 setContainment((Boolean)newValue);
339 return;
340 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL:
341 setSymbol((ModelSymbol)newValue);
342 return;
343 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY:
344 setMultiplicity((MultiplicityDefinition)newValue);
345 return;
346 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET:
347 setTarget((Symbol)newValue);
348 return;
349 }
350 super.eSet(featureID, newValue);
351 }
352
353 /**
354 * <!-- begin-user-doc -->
355 * <!-- end-user-doc -->
356 * @generated
357 */
358 @Override
359 public void eUnset(int featureID)
360 {
361 switch (featureID)
362 {
363 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT:
364 setContainment(CONTAINMENT_EDEFAULT);
365 return;
366 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL:
367 setSymbol((ModelSymbol)null);
368 return;
369 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY:
370 setMultiplicity((MultiplicityDefinition)null);
371 return;
372 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET:
373 setTarget((Symbol)null);
374 return;
375 }
376 super.eUnset(featureID);
377 }
378
379 /**
380 * <!-- begin-user-doc -->
381 * <!-- end-user-doc -->
382 * @generated
383 */
384 @Override
385 public boolean eIsSet(int featureID)
386 {
387 switch (featureID)
388 {
389 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT:
390 return containment != CONTAINMENT_EDEFAULT;
391 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL:
392 return symbol != null;
393 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY:
394 return multiplicity != null;
395 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET:
396 return target != null;
397 }
398 return super.eIsSet(featureID);
399 }
400
401 /**
402 * <!-- begin-user-doc -->
403 * <!-- end-user-doc -->
404 * @generated
405 */
406 @Override
407 public String toString()
408 {
409 if (eIsProxy()) return super.toString();
410
411 StringBuilder result = new StringBuilder(super.toString());
412 result.append(" (containment: ");
413 result.append(containment);
414 result.append(')');
415 return result.toString();
416 }
417
418} //FieldRelationInterpretationImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/GlobalRelationInterpretationImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/GlobalRelationInterpretationImpl.java
deleted file mode 100644
index 52f7a67d..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/GlobalRelationInterpretationImpl.java
+++ /dev/null
@@ -1,563 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation;
15import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol;
16import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition;
17import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
18import org.eclipse.viatra.solver.language.solverLanguage.Symbol;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>Global Relation Interpretation</b></em>'.
23 * <!-- end-user-doc -->
24 * <p>
25 * The following features are implemented:
26 * </p>
27 * <ul>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#isContainment <em>Containment</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getSymbol <em>Symbol</em>}</li>
30 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getSourceMultiplicity <em>Source Multiplicity</em>}</li>
31 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getSource <em>Source</em>}</li>
32 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getTargetMultiplicity <em>Target Multiplicity</em>}</li>
33 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getTarget <em>Target</em>}</li>
34 * </ul>
35 *
36 * @generated
37 */
38public class GlobalRelationInterpretationImpl extends CDInterpretationImpl implements GlobalRelationInterpretation
39{
40 /**
41 * The default value of the '{@link #isContainment() <em>Containment</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @see #isContainment()
45 * @generated
46 * @ordered
47 */
48 protected static final boolean CONTAINMENT_EDEFAULT = false;
49
50 /**
51 * The cached value of the '{@link #isContainment() <em>Containment</em>}' attribute.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #isContainment()
55 * @generated
56 * @ordered
57 */
58 protected boolean containment = CONTAINMENT_EDEFAULT;
59
60 /**
61 * The cached value of the '{@link #getSymbol() <em>Symbol</em>}' containment reference.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see #getSymbol()
65 * @generated
66 * @ordered
67 */
68 protected ModelSymbol symbol;
69
70 /**
71 * The cached value of the '{@link #getSourceMultiplicity() <em>Source Multiplicity</em>}' containment reference.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @see #getSourceMultiplicity()
75 * @generated
76 * @ordered
77 */
78 protected MultiplicityDefinition sourceMultiplicity;
79
80 /**
81 * The cached value of the '{@link #getSource() <em>Source</em>}' containment reference.
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @see #getSource()
85 * @generated
86 * @ordered
87 */
88 protected Symbol source;
89
90 /**
91 * The cached value of the '{@link #getTargetMultiplicity() <em>Target Multiplicity</em>}' containment reference.
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @see #getTargetMultiplicity()
95 * @generated
96 * @ordered
97 */
98 protected MultiplicityDefinition targetMultiplicity;
99
100 /**
101 * The cached value of the '{@link #getTarget() <em>Target</em>}' containment reference.
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @see #getTarget()
105 * @generated
106 * @ordered
107 */
108 protected Symbol target;
109
110 /**
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 protected GlobalRelationInterpretationImpl()
116 {
117 super();
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 @Override
126 protected EClass eStaticClass()
127 {
128 return SolverLanguagePackage.Literals.GLOBAL_RELATION_INTERPRETATION;
129 }
130
131 /**
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @generated
135 */
136 @Override
137 public boolean isContainment()
138 {
139 return containment;
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public void setContainment(boolean newContainment)
149 {
150 boolean oldContainment = containment;
151 containment = newContainment;
152 if (eNotificationRequired())
153 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT, oldContainment, containment));
154 }
155
156 /**
157 * <!-- begin-user-doc -->
158 * <!-- end-user-doc -->
159 * @generated
160 */
161 @Override
162 public ModelSymbol getSymbol()
163 {
164 return symbol;
165 }
166
167 /**
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @generated
171 */
172 public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs)
173 {
174 ModelSymbol oldSymbol = symbol;
175 symbol = newSymbol;
176 if (eNotificationRequired())
177 {
178 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL, oldSymbol, newSymbol);
179 if (msgs == null) msgs = notification; else msgs.add(notification);
180 }
181 return msgs;
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 @Override
190 public void setSymbol(ModelSymbol newSymbol)
191 {
192 if (newSymbol != symbol)
193 {
194 NotificationChain msgs = null;
195 if (symbol != null)
196 msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL, null, msgs);
197 if (newSymbol != null)
198 msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL, null, msgs);
199 msgs = basicSetSymbol(newSymbol, msgs);
200 if (msgs != null) msgs.dispatch();
201 }
202 else if (eNotificationRequired())
203 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL, newSymbol, newSymbol));
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 @Override
212 public MultiplicityDefinition getSourceMultiplicity()
213 {
214 return sourceMultiplicity;
215 }
216
217 /**
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 */
222 public NotificationChain basicSetSourceMultiplicity(MultiplicityDefinition newSourceMultiplicity, NotificationChain msgs)
223 {
224 MultiplicityDefinition oldSourceMultiplicity = sourceMultiplicity;
225 sourceMultiplicity = newSourceMultiplicity;
226 if (eNotificationRequired())
227 {
228 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY, oldSourceMultiplicity, newSourceMultiplicity);
229 if (msgs == null) msgs = notification; else msgs.add(notification);
230 }
231 return msgs;
232 }
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 @Override
240 public void setSourceMultiplicity(MultiplicityDefinition newSourceMultiplicity)
241 {
242 if (newSourceMultiplicity != sourceMultiplicity)
243 {
244 NotificationChain msgs = null;
245 if (sourceMultiplicity != null)
246 msgs = ((InternalEObject)sourceMultiplicity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY, null, msgs);
247 if (newSourceMultiplicity != null)
248 msgs = ((InternalEObject)newSourceMultiplicity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY, null, msgs);
249 msgs = basicSetSourceMultiplicity(newSourceMultiplicity, msgs);
250 if (msgs != null) msgs.dispatch();
251 }
252 else if (eNotificationRequired())
253 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY, newSourceMultiplicity, newSourceMultiplicity));
254 }
255
256 /**
257 * <!-- begin-user-doc -->
258 * <!-- end-user-doc -->
259 * @generated
260 */
261 @Override
262 public Symbol getSource()
263 {
264 return source;
265 }
266
267 /**
268 * <!-- begin-user-doc -->
269 * <!-- end-user-doc -->
270 * @generated
271 */
272 public NotificationChain basicSetSource(Symbol newSource, NotificationChain msgs)
273 {
274 Symbol oldSource = source;
275 source = newSource;
276 if (eNotificationRequired())
277 {
278 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE, oldSource, newSource);
279 if (msgs == null) msgs = notification; else msgs.add(notification);
280 }
281 return msgs;
282 }
283
284 /**
285 * <!-- begin-user-doc -->
286 * <!-- end-user-doc -->
287 * @generated
288 */
289 @Override
290 public void setSource(Symbol newSource)
291 {
292 if (newSource != source)
293 {
294 NotificationChain msgs = null;
295 if (source != null)
296 msgs = ((InternalEObject)source).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE, null, msgs);
297 if (newSource != null)
298 msgs = ((InternalEObject)newSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE, null, msgs);
299 msgs = basicSetSource(newSource, msgs);
300 if (msgs != null) msgs.dispatch();
301 }
302 else if (eNotificationRequired())
303 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE, newSource, newSource));
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public MultiplicityDefinition getTargetMultiplicity()
313 {
314 return targetMultiplicity;
315 }
316
317 /**
318 * <!-- begin-user-doc -->
319 * <!-- end-user-doc -->
320 * @generated
321 */
322 public NotificationChain basicSetTargetMultiplicity(MultiplicityDefinition newTargetMultiplicity, NotificationChain msgs)
323 {
324 MultiplicityDefinition oldTargetMultiplicity = targetMultiplicity;
325 targetMultiplicity = newTargetMultiplicity;
326 if (eNotificationRequired())
327 {
328 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY, oldTargetMultiplicity, newTargetMultiplicity);
329 if (msgs == null) msgs = notification; else msgs.add(notification);
330 }
331 return msgs;
332 }
333
334 /**
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @generated
338 */
339 @Override
340 public void setTargetMultiplicity(MultiplicityDefinition newTargetMultiplicity)
341 {
342 if (newTargetMultiplicity != targetMultiplicity)
343 {
344 NotificationChain msgs = null;
345 if (targetMultiplicity != null)
346 msgs = ((InternalEObject)targetMultiplicity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY, null, msgs);
347 if (newTargetMultiplicity != null)
348 msgs = ((InternalEObject)newTargetMultiplicity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY, null, msgs);
349 msgs = basicSetTargetMultiplicity(newTargetMultiplicity, msgs);
350 if (msgs != null) msgs.dispatch();
351 }
352 else if (eNotificationRequired())
353 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY, newTargetMultiplicity, newTargetMultiplicity));
354 }
355
356 /**
357 * <!-- begin-user-doc -->
358 * <!-- end-user-doc -->
359 * @generated
360 */
361 @Override
362 public Symbol getTarget()
363 {
364 return target;
365 }
366
367 /**
368 * <!-- begin-user-doc -->
369 * <!-- end-user-doc -->
370 * @generated
371 */
372 public NotificationChain basicSetTarget(Symbol newTarget, NotificationChain msgs)
373 {
374 Symbol oldTarget = target;
375 target = newTarget;
376 if (eNotificationRequired())
377 {
378 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET, oldTarget, newTarget);
379 if (msgs == null) msgs = notification; else msgs.add(notification);
380 }
381 return msgs;
382 }
383
384 /**
385 * <!-- begin-user-doc -->
386 * <!-- end-user-doc -->
387 * @generated
388 */
389 @Override
390 public void setTarget(Symbol newTarget)
391 {
392 if (newTarget != target)
393 {
394 NotificationChain msgs = null;
395 if (target != null)
396 msgs = ((InternalEObject)target).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET, null, msgs);
397 if (newTarget != null)
398 msgs = ((InternalEObject)newTarget).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET, null, msgs);
399 msgs = basicSetTarget(newTarget, msgs);
400 if (msgs != null) msgs.dispatch();
401 }
402 else if (eNotificationRequired())
403 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET, newTarget, newTarget));
404 }
405
406 /**
407 * <!-- begin-user-doc -->
408 * <!-- end-user-doc -->
409 * @generated
410 */
411 @Override
412 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
413 {
414 switch (featureID)
415 {
416 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL:
417 return basicSetSymbol(null, msgs);
418 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY:
419 return basicSetSourceMultiplicity(null, msgs);
420 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE:
421 return basicSetSource(null, msgs);
422 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY:
423 return basicSetTargetMultiplicity(null, msgs);
424 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET:
425 return basicSetTarget(null, msgs);
426 }
427 return super.eInverseRemove(otherEnd, featureID, msgs);
428 }
429
430 /**
431 * <!-- begin-user-doc -->
432 * <!-- end-user-doc -->
433 * @generated
434 */
435 @Override
436 public Object eGet(int featureID, boolean resolve, boolean coreType)
437 {
438 switch (featureID)
439 {
440 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT:
441 return isContainment();
442 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL:
443 return getSymbol();
444 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY:
445 return getSourceMultiplicity();
446 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE:
447 return getSource();
448 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY:
449 return getTargetMultiplicity();
450 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET:
451 return getTarget();
452 }
453 return super.eGet(featureID, resolve, coreType);
454 }
455
456 /**
457 * <!-- begin-user-doc -->
458 * <!-- end-user-doc -->
459 * @generated
460 */
461 @Override
462 public void eSet(int featureID, Object newValue)
463 {
464 switch (featureID)
465 {
466 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT:
467 setContainment((Boolean)newValue);
468 return;
469 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL:
470 setSymbol((ModelSymbol)newValue);
471 return;
472 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY:
473 setSourceMultiplicity((MultiplicityDefinition)newValue);
474 return;
475 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE:
476 setSource((Symbol)newValue);
477 return;
478 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY:
479 setTargetMultiplicity((MultiplicityDefinition)newValue);
480 return;
481 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET:
482 setTarget((Symbol)newValue);
483 return;
484 }
485 super.eSet(featureID, newValue);
486 }
487
488 /**
489 * <!-- begin-user-doc -->
490 * <!-- end-user-doc -->
491 * @generated
492 */
493 @Override
494 public void eUnset(int featureID)
495 {
496 switch (featureID)
497 {
498 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT:
499 setContainment(CONTAINMENT_EDEFAULT);
500 return;
501 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL:
502 setSymbol((ModelSymbol)null);
503 return;
504 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY:
505 setSourceMultiplicity((MultiplicityDefinition)null);
506 return;
507 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE:
508 setSource((Symbol)null);
509 return;
510 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY:
511 setTargetMultiplicity((MultiplicityDefinition)null);
512 return;
513 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET:
514 setTarget((Symbol)null);
515 return;
516 }
517 super.eUnset(featureID);
518 }
519
520 /**
521 * <!-- begin-user-doc -->
522 * <!-- end-user-doc -->
523 * @generated
524 */
525 @Override
526 public boolean eIsSet(int featureID)
527 {
528 switch (featureID)
529 {
530 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT:
531 return containment != CONTAINMENT_EDEFAULT;
532 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL:
533 return symbol != null;
534 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY:
535 return sourceMultiplicity != null;
536 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE:
537 return source != null;
538 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY:
539 return targetMultiplicity != null;
540 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET:
541 return target != null;
542 }
543 return super.eIsSet(featureID);
544 }
545
546 /**
547 * <!-- begin-user-doc -->
548 * <!-- end-user-doc -->
549 * @generated
550 */
551 @Override
552 public String toString()
553 {
554 if (eIsProxy()) return super.toString();
555
556 StringBuilder result = new StringBuilder(super.toString());
557 result.append(" (containment: ");
558 result.append(containment);
559 result.append(')');
560 return result.toString();
561 }
562
563} //GlobalRelationInterpretationImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IfElseImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IfElseImpl.java
new file mode 100644
index 00000000..1b873568
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IfElseImpl.java
@@ -0,0 +1,342 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Expression;
15import org.eclipse.viatra.solver.language.solverLanguage.IfElse;
16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
17
18/**
19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>If Else</b></em>'.
21 * <!-- end-user-doc -->
22 * <p>
23 * The following features are implemented:
24 * </p>
25 * <ul>
26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl#getCondition <em>Condition</em>}</li>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl#getThen <em>Then</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl#getElse <em>Else</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public class IfElseImpl extends ExpressionImpl implements IfElse
34{
35 /**
36 * The cached value of the '{@link #getCondition() <em>Condition</em>}' containment reference.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getCondition()
40 * @generated
41 * @ordered
42 */
43 protected Expression condition;
44
45 /**
46 * The cached value of the '{@link #getThen() <em>Then</em>}' containment reference.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getThen()
50 * @generated
51 * @ordered
52 */
53 protected Expression then;
54
55 /**
56 * The cached value of the '{@link #getElse() <em>Else</em>}' containment reference.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #getElse()
60 * @generated
61 * @ordered
62 */
63 protected Expression else_;
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 protected IfElseImpl()
71 {
72 super();
73 }
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 @Override
81 protected EClass eStaticClass()
82 {
83 return SolverLanguagePackage.Literals.IF_ELSE;
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 @Override
92 public Expression getCondition()
93 {
94 return condition;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs)
103 {
104 Expression oldCondition = condition;
105 condition = newCondition;
106 if (eNotificationRequired())
107 {
108 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__CONDITION, oldCondition, newCondition);
109 if (msgs == null) msgs = notification; else msgs.add(notification);
110 }
111 return msgs;
112 }
113
114 /**
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @generated
118 */
119 @Override
120 public void setCondition(Expression newCondition)
121 {
122 if (newCondition != condition)
123 {
124 NotificationChain msgs = null;
125 if (condition != null)
126 msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__CONDITION, null, msgs);
127 if (newCondition != null)
128 msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__CONDITION, null, msgs);
129 msgs = basicSetCondition(newCondition, msgs);
130 if (msgs != null) msgs.dispatch();
131 }
132 else if (eNotificationRequired())
133 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__CONDITION, newCondition, newCondition));
134 }
135
136 /**
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 */
141 @Override
142 public Expression getThen()
143 {
144 return then;
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 public NotificationChain basicSetThen(Expression newThen, NotificationChain msgs)
153 {
154 Expression oldThen = then;
155 then = newThen;
156 if (eNotificationRequired())
157 {
158 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__THEN, oldThen, newThen);
159 if (msgs == null) msgs = notification; else msgs.add(notification);
160 }
161 return msgs;
162 }
163
164 /**
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 @Override
170 public void setThen(Expression newThen)
171 {
172 if (newThen != then)
173 {
174 NotificationChain msgs = null;
175 if (then != null)
176 msgs = ((InternalEObject)then).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__THEN, null, msgs);
177 if (newThen != null)
178 msgs = ((InternalEObject)newThen).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__THEN, null, msgs);
179 msgs = basicSetThen(newThen, msgs);
180 if (msgs != null) msgs.dispatch();
181 }
182 else if (eNotificationRequired())
183 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__THEN, newThen, newThen));
184 }
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 @Override
192 public Expression getElse()
193 {
194 return else_;
195 }
196
197 /**
198 * <!-- begin-user-doc -->
199 * <!-- end-user-doc -->
200 * @generated
201 */
202 public NotificationChain basicSetElse(Expression newElse, NotificationChain msgs)
203 {
204 Expression oldElse = else_;
205 else_ = newElse;
206 if (eNotificationRequired())
207 {
208 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__ELSE, oldElse, newElse);
209 if (msgs == null) msgs = notification; else msgs.add(notification);
210 }
211 return msgs;
212 }
213
214 /**
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @generated
218 */
219 @Override
220 public void setElse(Expression newElse)
221 {
222 if (newElse != else_)
223 {
224 NotificationChain msgs = null;
225 if (else_ != null)
226 msgs = ((InternalEObject)else_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__ELSE, null, msgs);
227 if (newElse != null)
228 msgs = ((InternalEObject)newElse).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__ELSE, null, msgs);
229 msgs = basicSetElse(newElse, msgs);
230 if (msgs != null) msgs.dispatch();
231 }
232 else if (eNotificationRequired())
233 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__ELSE, newElse, newElse));
234 }
235
236 /**
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @generated
240 */
241 @Override
242 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
243 {
244 switch (featureID)
245 {
246 case SolverLanguagePackage.IF_ELSE__CONDITION:
247 return basicSetCondition(null, msgs);
248 case SolverLanguagePackage.IF_ELSE__THEN:
249 return basicSetThen(null, msgs);
250 case SolverLanguagePackage.IF_ELSE__ELSE:
251 return basicSetElse(null, msgs);
252 }
253 return super.eInverseRemove(otherEnd, featureID, msgs);
254 }
255
256 /**
257 * <!-- begin-user-doc -->
258 * <!-- end-user-doc -->
259 * @generated
260 */
261 @Override
262 public Object eGet(int featureID, boolean resolve, boolean coreType)
263 {
264 switch (featureID)
265 {
266 case SolverLanguagePackage.IF_ELSE__CONDITION:
267 return getCondition();
268 case SolverLanguagePackage.IF_ELSE__THEN:
269 return getThen();
270 case SolverLanguagePackage.IF_ELSE__ELSE:
271 return getElse();
272 }
273 return super.eGet(featureID, resolve, coreType);
274 }
275
276 /**
277 * <!-- begin-user-doc -->
278 * <!-- end-user-doc -->
279 * @generated
280 */
281 @Override
282 public void eSet(int featureID, Object newValue)
283 {
284 switch (featureID)
285 {
286 case SolverLanguagePackage.IF_ELSE__CONDITION:
287 setCondition((Expression)newValue);
288 return;
289 case SolverLanguagePackage.IF_ELSE__THEN:
290 setThen((Expression)newValue);
291 return;
292 case SolverLanguagePackage.IF_ELSE__ELSE:
293 setElse((Expression)newValue);
294 return;
295 }
296 super.eSet(featureID, newValue);
297 }
298
299 /**
300 * <!-- begin-user-doc -->
301 * <!-- end-user-doc -->
302 * @generated
303 */
304 @Override
305 public void eUnset(int featureID)
306 {
307 switch (featureID)
308 {
309 case SolverLanguagePackage.IF_ELSE__CONDITION:
310 setCondition((Expression)null);
311 return;
312 case SolverLanguagePackage.IF_ELSE__THEN:
313 setThen((Expression)null);
314 return;
315 case SolverLanguagePackage.IF_ELSE__ELSE:
316 setElse((Expression)null);
317 return;
318 }
319 super.eUnset(featureID);
320 }
321
322 /**
323 * <!-- begin-user-doc -->
324 * <!-- end-user-doc -->
325 * @generated
326 */
327 @Override
328 public boolean eIsSet(int featureID)
329 {
330 switch (featureID)
331 {
332 case SolverLanguagePackage.IF_ELSE__CONDITION:
333 return condition != null;
334 case SolverLanguagePackage.IF_ELSE__THEN:
335 return then != null;
336 case SolverLanguagePackage.IF_ELSE__ELSE:
337 return else_ != null;
338 }
339 return super.eIsSet(featureID);
340 }
341
342} //IfElseImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanTrueImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InfinityLiteralImpl.java
index 4d110ee9..e796f5a0 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanTrueImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InfinityLiteralImpl.java
@@ -1,28 +1,28 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
6import org.eclipse.emf.ecore.EClass; 6import org.eclipse.emf.ecore.EClass;
7 7
8import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; 8import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10 10
11/** 11/**
12 * <!-- begin-user-doc --> 12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Boolean True</b></em>'. 13 * An implementation of the model object '<em><b>Infinity Literal</b></em>'.
14 * <!-- end-user-doc --> 14 * <!-- end-user-doc -->
15 * 15 *
16 * @generated 16 * @generated
17 */ 17 */
18public class BooleanTrueImpl extends BooleanValueImpl implements BooleanTrue 18public class InfinityLiteralImpl extends LiteralImpl implements InfinityLiteral
19{ 19{
20 /** 20 /**
21 * <!-- begin-user-doc --> 21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc --> 22 * <!-- end-user-doc -->
23 * @generated 23 * @generated
24 */ 24 */
25 protected BooleanTrueImpl() 25 protected InfinityLiteralImpl()
26 { 26 {
27 super(); 27 super();
28 } 28 }
@@ -35,7 +35,7 @@ public class BooleanTrueImpl extends BooleanValueImpl implements BooleanTrue
35 @Override 35 @Override
36 protected EClass eStaticClass() 36 protected EClass eStaticClass()
37 { 37 {
38 return SolverLanguagePackage.Literals.BOOLEAN_TRUE; 38 return SolverLanguagePackage.Literals.INFINITY_LITERAL;
39 } 39 }
40 40
41} //BooleanTrueImpl 41} //InfinityLiteralImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntegerSymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntegerSymbolImpl.java
deleted file mode 100644
index bcd978fa..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntegerSymbolImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Integer Symbol</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class IntegerSymbolImpl extends DataSymbolImpl implements IntegerSymbol
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected IntegerSymbolImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.INTEGER_SYMBOL;
39 }
40
41} //IntegerSymbolImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InterpretationImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InterpretationImpl.java
deleted file mode 100644
index fb41d77d..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InterpretationImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.Interpretation;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Interpretation</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class InterpretationImpl extends StatementImpl implements Interpretation
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected InterpretationImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.INTERPRETATION;
39 }
40
41} //InterpretationImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntervalImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntervalImpl.java
new file mode 100644
index 00000000..e6107ef8
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntervalImpl.java
@@ -0,0 +1,269 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Expression;
15import org.eclipse.viatra.solver.language.solverLanguage.Interval;
16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
17
18/**
19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>Interval</b></em>'.
21 * <!-- end-user-doc -->
22 * <p>
23 * The following features are implemented:
24 * </p>
25 * <ul>
26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl#getLowerBound <em>Lower Bound</em>}</li>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl#getUpperBound <em>Upper Bound</em>}</li>
28 * </ul>
29 *
30 * @generated
31 */
32public class IntervalImpl extends ExpressionImpl implements Interval
33{
34 /**
35 * The cached value of the '{@link #getLowerBound() <em>Lower Bound</em>}' containment reference.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @see #getLowerBound()
39 * @generated
40 * @ordered
41 */
42 protected Expression lowerBound;
43
44 /**
45 * The cached value of the '{@link #getUpperBound() <em>Upper Bound</em>}' containment reference.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see #getUpperBound()
49 * @generated
50 * @ordered
51 */
52 protected Expression upperBound;
53
54 /**
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 protected IntervalImpl()
60 {
61 super();
62 }
63
64 /**
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @generated
68 */
69 @Override
70 protected EClass eStaticClass()
71 {
72 return SolverLanguagePackage.Literals.INTERVAL;
73 }
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 @Override
81 public Expression getLowerBound()
82 {
83 return lowerBound;
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 public NotificationChain basicSetLowerBound(Expression newLowerBound, NotificationChain msgs)
92 {
93 Expression oldLowerBound = lowerBound;
94 lowerBound = newLowerBound;
95 if (eNotificationRequired())
96 {
97 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INTERVAL__LOWER_BOUND, oldLowerBound, newLowerBound);
98 if (msgs == null) msgs = notification; else msgs.add(notification);
99 }
100 return msgs;
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void setLowerBound(Expression newLowerBound)
110 {
111 if (newLowerBound != lowerBound)
112 {
113 NotificationChain msgs = null;
114 if (lowerBound != null)
115 msgs = ((InternalEObject)lowerBound).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.INTERVAL__LOWER_BOUND, null, msgs);
116 if (newLowerBound != null)
117 msgs = ((InternalEObject)newLowerBound).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.INTERVAL__LOWER_BOUND, null, msgs);
118 msgs = basicSetLowerBound(newLowerBound, msgs);
119 if (msgs != null) msgs.dispatch();
120 }
121 else if (eNotificationRequired())
122 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INTERVAL__LOWER_BOUND, newLowerBound, newLowerBound));
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public Expression getUpperBound()
132 {
133 return upperBound;
134 }
135
136 /**
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 */
141 public NotificationChain basicSetUpperBound(Expression newUpperBound, NotificationChain msgs)
142 {
143 Expression oldUpperBound = upperBound;
144 upperBound = newUpperBound;
145 if (eNotificationRequired())
146 {
147 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INTERVAL__UPPER_BOUND, oldUpperBound, newUpperBound);
148 if (msgs == null) msgs = notification; else msgs.add(notification);
149 }
150 return msgs;
151 }
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 @Override
159 public void setUpperBound(Expression newUpperBound)
160 {
161 if (newUpperBound != upperBound)
162 {
163 NotificationChain msgs = null;
164 if (upperBound != null)
165 msgs = ((InternalEObject)upperBound).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.INTERVAL__UPPER_BOUND, null, msgs);
166 if (newUpperBound != null)
167 msgs = ((InternalEObject)newUpperBound).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.INTERVAL__UPPER_BOUND, null, msgs);
168 msgs = basicSetUpperBound(newUpperBound, msgs);
169 if (msgs != null) msgs.dispatch();
170 }
171 else if (eNotificationRequired())
172 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INTERVAL__UPPER_BOUND, newUpperBound, newUpperBound));
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 @Override
181 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
182 {
183 switch (featureID)
184 {
185 case SolverLanguagePackage.INTERVAL__LOWER_BOUND:
186 return basicSetLowerBound(null, msgs);
187 case SolverLanguagePackage.INTERVAL__UPPER_BOUND:
188 return basicSetUpperBound(null, msgs);
189 }
190 return super.eInverseRemove(otherEnd, featureID, msgs);
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 @Override
199 public Object eGet(int featureID, boolean resolve, boolean coreType)
200 {
201 switch (featureID)
202 {
203 case SolverLanguagePackage.INTERVAL__LOWER_BOUND:
204 return getLowerBound();
205 case SolverLanguagePackage.INTERVAL__UPPER_BOUND:
206 return getUpperBound();
207 }
208 return super.eGet(featureID, resolve, coreType);
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 @Override
217 public void eSet(int featureID, Object newValue)
218 {
219 switch (featureID)
220 {
221 case SolverLanguagePackage.INTERVAL__LOWER_BOUND:
222 setLowerBound((Expression)newValue);
223 return;
224 case SolverLanguagePackage.INTERVAL__UPPER_BOUND:
225 setUpperBound((Expression)newValue);
226 return;
227 }
228 super.eSet(featureID, newValue);
229 }
230
231 /**
232 * <!-- begin-user-doc -->
233 * <!-- end-user-doc -->
234 * @generated
235 */
236 @Override
237 public void eUnset(int featureID)
238 {
239 switch (featureID)
240 {
241 case SolverLanguagePackage.INTERVAL__LOWER_BOUND:
242 setLowerBound((Expression)null);
243 return;
244 case SolverLanguagePackage.INTERVAL__UPPER_BOUND:
245 setUpperBound((Expression)null);
246 return;
247 }
248 super.eUnset(featureID);
249 }
250
251 /**
252 * <!-- begin-user-doc -->
253 * <!-- end-user-doc -->
254 * @generated
255 */
256 @Override
257 public boolean eIsSet(int featureID)
258 {
259 switch (featureID)
260 {
261 case SolverLanguagePackage.INTERVAL__LOWER_BOUND:
262 return lowerBound != null;
263 case SolverLanguagePackage.INTERVAL__UPPER_BOUND:
264 return upperBound != null;
265 }
266 return super.eIsSet(featureID);
267 }
268
269} //IntervalImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IrreflexiveClosureImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IrreflexiveClosureImpl.java
deleted file mode 100644
index 07ad66f9..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IrreflexiveClosureImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Irreflexive Closure</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class IrreflexiveClosureImpl extends ClosureTypeImpl implements IrreflexiveClosure
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected IrreflexiveClosureImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.IRREFLEXIVE_CLOSURE;
39 }
40
41} //IrreflexiveClosureImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LiteralImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LiteralImpl.java
index 518aa2b7..2983566c 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LiteralImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LiteralImpl.java
@@ -1,12 +1,10 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
6import org.eclipse.emf.ecore.EClass; 6import org.eclipse.emf.ecore.EClass;
7 7
8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
9
10import org.eclipse.viatra.solver.language.solverLanguage.Literal; 8import org.eclipse.viatra.solver.language.solverLanguage.Literal;
11import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
12 10
@@ -17,7 +15,7 @@ import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
17 * 15 *
18 * @generated 16 * @generated
19 */ 17 */
20public class LiteralImpl extends MinimalEObjectImpl.Container implements Literal 18public class LiteralImpl extends ExpressionImpl implements Literal
21{ 19{
22 /** 20 /**
23 * <!-- begin-user-doc --> 21 * <!-- begin-user-doc -->
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntObjectImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LogicLiteralImpl.java
index fa844b68..2bc27a20 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntObjectImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LogicLiteralImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -9,23 +9,24 @@ import org.eclipse.emf.ecore.EClass;
9 9
10import org.eclipse.emf.ecore.impl.ENotificationImpl; 10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11 11
12import org.eclipse.viatra.solver.language.solverLanguage.IntObject; 12import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral;
13import org.eclipse.viatra.solver.language.solverLanguage.LogicValue;
13import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 14import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
14 15
15/** 16/**
16 * <!-- begin-user-doc --> 17 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Int Object</b></em>'. 18 * An implementation of the model object '<em><b>Logic Literal</b></em>'.
18 * <!-- end-user-doc --> 19 * <!-- end-user-doc -->
19 * <p> 20 * <p>
20 * The following features are implemented: 21 * The following features are implemented:
21 * </p> 22 * </p>
22 * <ul> 23 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl#getValue <em>Value</em>}</li> 24 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl#getValue <em>Value</em>}</li>
24 * </ul> 25 * </ul>
25 * 26 *
26 * @generated 27 * @generated
27 */ 28 */
28public class IntObjectImpl extends DataObjectImpl implements IntObject 29public class LogicLiteralImpl extends LiteralImpl implements LogicLiteral
29{ 30{
30 /** 31 /**
31 * The default value of the '{@link #getValue() <em>Value</em>}' attribute. 32 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
@@ -35,7 +36,7 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
35 * @generated 36 * @generated
36 * @ordered 37 * @ordered
37 */ 38 */
38 protected static final int VALUE_EDEFAULT = 0; 39 protected static final LogicValue VALUE_EDEFAULT = LogicValue.TRUE;
39 40
40 /** 41 /**
41 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. 42 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
@@ -45,14 +46,14 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
45 * @generated 46 * @generated
46 * @ordered 47 * @ordered
47 */ 48 */
48 protected int value = VALUE_EDEFAULT; 49 protected LogicValue value = VALUE_EDEFAULT;
49 50
50 /** 51 /**
51 * <!-- begin-user-doc --> 52 * <!-- begin-user-doc -->
52 * <!-- end-user-doc --> 53 * <!-- end-user-doc -->
53 * @generated 54 * @generated
54 */ 55 */
55 protected IntObjectImpl() 56 protected LogicLiteralImpl()
56 { 57 {
57 super(); 58 super();
58 } 59 }
@@ -65,7 +66,7 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
65 @Override 66 @Override
66 protected EClass eStaticClass() 67 protected EClass eStaticClass()
67 { 68 {
68 return SolverLanguagePackage.Literals.INT_OBJECT; 69 return SolverLanguagePackage.Literals.LOGIC_LITERAL;
69 } 70 }
70 71
71 /** 72 /**
@@ -74,7 +75,7 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
74 * @generated 75 * @generated
75 */ 76 */
76 @Override 77 @Override
77 public int getValue() 78 public LogicValue getValue()
78 { 79 {
79 return value; 80 return value;
80 } 81 }
@@ -85,12 +86,12 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
85 * @generated 86 * @generated
86 */ 87 */
87 @Override 88 @Override
88 public void setValue(int newValue) 89 public void setValue(LogicValue newValue)
89 { 90 {
90 int oldValue = value; 91 LogicValue oldValue = value;
91 value = newValue; 92 value = newValue == null ? VALUE_EDEFAULT : newValue;
92 if (eNotificationRequired()) 93 if (eNotificationRequired())
93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INT_OBJECT__VALUE, oldValue, value)); 94 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.LOGIC_LITERAL__VALUE, oldValue, value));
94 } 95 }
95 96
96 /** 97 /**
@@ -103,7 +104,7 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
103 { 104 {
104 switch (featureID) 105 switch (featureID)
105 { 106 {
106 case SolverLanguagePackage.INT_OBJECT__VALUE: 107 case SolverLanguagePackage.LOGIC_LITERAL__VALUE:
107 return getValue(); 108 return getValue();
108 } 109 }
109 return super.eGet(featureID, resolve, coreType); 110 return super.eGet(featureID, resolve, coreType);
@@ -119,8 +120,8 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
119 { 120 {
120 switch (featureID) 121 switch (featureID)
121 { 122 {
122 case SolverLanguagePackage.INT_OBJECT__VALUE: 123 case SolverLanguagePackage.LOGIC_LITERAL__VALUE:
123 setValue((Integer)newValue); 124 setValue((LogicValue)newValue);
124 return; 125 return;
125 } 126 }
126 super.eSet(featureID, newValue); 127 super.eSet(featureID, newValue);
@@ -136,7 +137,7 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
136 { 137 {
137 switch (featureID) 138 switch (featureID)
138 { 139 {
139 case SolverLanguagePackage.INT_OBJECT__VALUE: 140 case SolverLanguagePackage.LOGIC_LITERAL__VALUE:
140 setValue(VALUE_EDEFAULT); 141 setValue(VALUE_EDEFAULT);
141 return; 142 return;
142 } 143 }
@@ -153,7 +154,7 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
153 { 154 {
154 switch (featureID) 155 switch (featureID)
155 { 156 {
156 case SolverLanguagePackage.INT_OBJECT__VALUE: 157 case SolverLanguagePackage.LOGIC_LITERAL__VALUE:
157 return value != VALUE_EDEFAULT; 158 return value != VALUE_EDEFAULT;
158 } 159 }
159 return super.eIsSet(featureID); 160 return super.eIsSet(featureID);
@@ -176,4 +177,4 @@ public class IntObjectImpl extends DataObjectImpl implements IntObject
176 return result.toString(); 177 return result.toString();
177 } 178 }
178 179
179} //IntObjectImpl 180} //LogicLiteralImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LowerBoundedScopeDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LowerBoundedScopeDefinitionImpl.java
new file mode 100644
index 00000000..5eb671f3
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LowerBoundedScopeDefinitionImpl.java
@@ -0,0 +1,179 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7
8import org.eclipse.emf.ecore.EClass;
9
10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11
12import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition;
13import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Lower Bounded Scope Definition</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl#getLowerBound <em>Lower Bound</em>}</li>
24 * </ul>
25 *
26 * @generated
27 */
28public class LowerBoundedScopeDefinitionImpl extends ScopeDefinitionImpl implements LowerBoundedScopeDefinition
29{
30 /**
31 * The default value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @see #getLowerBound()
35 * @generated
36 * @ordered
37 */
38 protected static final int LOWER_BOUND_EDEFAULT = 0;
39
40 /**
41 * The cached value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @see #getLowerBound()
45 * @generated
46 * @ordered
47 */
48 protected int lowerBound = LOWER_BOUND_EDEFAULT;
49
50 /**
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @generated
54 */
55 protected LowerBoundedScopeDefinitionImpl()
56 {
57 super();
58 }
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 @Override
66 protected EClass eStaticClass()
67 {
68 return SolverLanguagePackage.Literals.LOWER_BOUNDED_SCOPE_DEFINITION;
69 }
70
71 /**
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 */
76 @Override
77 public int getLowerBound()
78 {
79 return lowerBound;
80 }
81
82 /**
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @generated
86 */
87 @Override
88 public void setLowerBound(int newLowerBound)
89 {
90 int oldLowerBound = lowerBound;
91 lowerBound = newLowerBound;
92 if (eNotificationRequired())
93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND, oldLowerBound, lowerBound));
94 }
95
96 /**
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @generated
100 */
101 @Override
102 public Object eGet(int featureID, boolean resolve, boolean coreType)
103 {
104 switch (featureID)
105 {
106 case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND:
107 return getLowerBound();
108 }
109 return super.eGet(featureID, resolve, coreType);
110 }
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 @Override
118 public void eSet(int featureID, Object newValue)
119 {
120 switch (featureID)
121 {
122 case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND:
123 setLowerBound((Integer)newValue);
124 return;
125 }
126 super.eSet(featureID, newValue);
127 }
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 @Override
135 public void eUnset(int featureID)
136 {
137 switch (featureID)
138 {
139 case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND:
140 setLowerBound(LOWER_BOUND_EDEFAULT);
141 return;
142 }
143 super.eUnset(featureID);
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 @Override
152 public boolean eIsSet(int featureID)
153 {
154 switch (featureID)
155 {
156 case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND:
157 return lowerBound != LOWER_BOUND_EDEFAULT;
158 }
159 return super.eIsSet(featureID);
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 @Override
168 public String toString()
169 {
170 if (eIsProxy()) return super.toString();
171
172 StringBuilder result = new StringBuilder(super.toString());
173 result.append(" (lowerBound: ");
174 result.append(lowerBound);
175 result.append(')');
176 return result.toString();
177 }
178
179} //LowerBoundedScopeDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllObjectsImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ManyMultiplicityImpl.java
index b1e9c3d0..c248b4ea 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllObjectsImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ManyMultiplicityImpl.java
@@ -1,28 +1,28 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
6import org.eclipse.emf.ecore.EClass; 6import org.eclipse.emf.ecore.EClass;
7 7
8import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; 8import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10 10
11/** 11/**
12 * <!-- begin-user-doc --> 12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>All Objects</b></em>'. 13 * An implementation of the model object '<em><b>Many Multiplicity</b></em>'.
14 * <!-- end-user-doc --> 14 * <!-- end-user-doc -->
15 * 15 *
16 * @generated 16 * @generated
17 */ 17 */
18public class AllObjectsImpl extends ComplexObjectImpl implements AllObjects 18public class ManyMultiplicityImpl extends MultiplicityImpl implements ManyMultiplicity
19{ 19{
20 /** 20 /**
21 * <!-- begin-user-doc --> 21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc --> 22 * <!-- end-user-doc -->
23 * @generated 23 * @generated
24 */ 24 */
25 protected AllObjectsImpl() 25 protected ManyMultiplicityImpl()
26 { 26 {
27 super(); 27 super();
28 } 28 }
@@ -35,7 +35,7 @@ public class AllObjectsImpl extends ComplexObjectImpl implements AllObjects
35 @Override 35 @Override
36 protected EClass eStaticClass() 36 protected EClass eStaticClass()
37 { 37 {
38 return SolverLanguagePackage.Literals.ALL_OBJECTS; 38 return SolverLanguagePackage.Literals.MANY_MULTIPLICITY;
39 } 39 }
40 40
41} //AllObjectsImpl 41} //ManyMultiplicityImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MemberDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MemberDefinitionImpl.java
new file mode 100644
index 00000000..69021347
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MemberDefinitionImpl.java
@@ -0,0 +1,463 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
14
15import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition;
16import org.eclipse.viatra.solver.language.solverLanguage.Multiplicity;
17import org.eclipse.viatra.solver.language.solverLanguage.NamedElement;
18import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
19
20/**
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>Member Definition</b></em>'.
23 * <!-- end-user-doc -->
24 * <p>
25 * The following features are implemented:
26 * </p>
27 * <ul>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#isContainment <em>Containment</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#getType <em>Type</em>}</li>
30 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#getMultiplicity <em>Multiplicity</em>}</li>
31 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#getName <em>Name</em>}</li>
32 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#getOpposite <em>Opposite</em>}</li>
33 * </ul>
34 *
35 * @generated
36 */
37public class MemberDefinitionImpl extends MinimalEObjectImpl.Container implements MemberDefinition
38{
39 /**
40 * The default value of the '{@link #isContainment() <em>Containment</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #isContainment()
44 * @generated
45 * @ordered
46 */
47 protected static final boolean CONTAINMENT_EDEFAULT = false;
48
49 /**
50 * The cached value of the '{@link #isContainment() <em>Containment</em>}' attribute.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #isContainment()
54 * @generated
55 * @ordered
56 */
57 protected boolean containment = CONTAINMENT_EDEFAULT;
58
59 /**
60 * The cached value of the '{@link #getType() <em>Type</em>}' reference.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see #getType()
64 * @generated
65 * @ordered
66 */
67 protected NamedElement type;
68
69 /**
70 * The cached value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' containment reference.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @see #getMultiplicity()
74 * @generated
75 * @ordered
76 */
77 protected Multiplicity multiplicity;
78
79 /**
80 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @see #getName()
84 * @generated
85 * @ordered
86 */
87 protected static final String NAME_EDEFAULT = null;
88
89 /**
90 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @see #getName()
94 * @generated
95 * @ordered
96 */
97 protected String name = NAME_EDEFAULT;
98
99 /**
100 * The cached value of the '{@link #getOpposite() <em>Opposite</em>}' reference.
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @see #getOpposite()
104 * @generated
105 * @ordered
106 */
107 protected NamedElement opposite;
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 protected MemberDefinitionImpl()
115 {
116 super();
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 protected EClass eStaticClass()
126 {
127 return SolverLanguagePackage.Literals.MEMBER_DEFINITION;
128 }
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 @Override
136 public boolean isContainment()
137 {
138 return containment;
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 @Override
147 public void setContainment(boolean newContainment)
148 {
149 boolean oldContainment = containment;
150 containment = newContainment;
151 if (eNotificationRequired())
152 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT, oldContainment, containment));
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 @Override
161 public NamedElement getType()
162 {
163 if (type != null && type.eIsProxy())
164 {
165 InternalEObject oldType = (InternalEObject)type;
166 type = (NamedElement)eResolveProxy(oldType);
167 if (type != oldType)
168 {
169 if (eNotificationRequired())
170 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.MEMBER_DEFINITION__TYPE, oldType, type));
171 }
172 }
173 return type;
174 }
175
176 /**
177 * <!-- begin-user-doc -->
178 * <!-- end-user-doc -->
179 * @generated
180 */
181 public NamedElement basicGetType()
182 {
183 return type;
184 }
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 @Override
192 public void setType(NamedElement newType)
193 {
194 NamedElement oldType = type;
195 type = newType;
196 if (eNotificationRequired())
197 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__TYPE, oldType, type));
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public Multiplicity getMultiplicity()
207 {
208 return multiplicity;
209 }
210
211 /**
212 * <!-- begin-user-doc -->
213 * <!-- end-user-doc -->
214 * @generated
215 */
216 public NotificationChain basicSetMultiplicity(Multiplicity newMultiplicity, NotificationChain msgs)
217 {
218 Multiplicity oldMultiplicity = multiplicity;
219 multiplicity = newMultiplicity;
220 if (eNotificationRequired())
221 {
222 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY, oldMultiplicity, newMultiplicity);
223 if (msgs == null) msgs = notification; else msgs.add(notification);
224 }
225 return msgs;
226 }
227
228 /**
229 * <!-- begin-user-doc -->
230 * <!-- end-user-doc -->
231 * @generated
232 */
233 @Override
234 public void setMultiplicity(Multiplicity newMultiplicity)
235 {
236 if (newMultiplicity != multiplicity)
237 {
238 NotificationChain msgs = null;
239 if (multiplicity != null)
240 msgs = ((InternalEObject)multiplicity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY, null, msgs);
241 if (newMultiplicity != null)
242 msgs = ((InternalEObject)newMultiplicity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY, null, msgs);
243 msgs = basicSetMultiplicity(newMultiplicity, msgs);
244 if (msgs != null) msgs.dispatch();
245 }
246 else if (eNotificationRequired())
247 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY, newMultiplicity, newMultiplicity));
248 }
249
250 /**
251 * <!-- begin-user-doc -->
252 * <!-- end-user-doc -->
253 * @generated
254 */
255 @Override
256 public String getName()
257 {
258 return name;
259 }
260
261 /**
262 * <!-- begin-user-doc -->
263 * <!-- end-user-doc -->
264 * @generated
265 */
266 @Override
267 public void setName(String newName)
268 {
269 String oldName = name;
270 name = newName;
271 if (eNotificationRequired())
272 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__NAME, oldName, name));
273 }
274
275 /**
276 * <!-- begin-user-doc -->
277 * <!-- end-user-doc -->
278 * @generated
279 */
280 @Override
281 public NamedElement getOpposite()
282 {
283 if (opposite != null && opposite.eIsProxy())
284 {
285 InternalEObject oldOpposite = (InternalEObject)opposite;
286 opposite = (NamedElement)eResolveProxy(oldOpposite);
287 if (opposite != oldOpposite)
288 {
289 if (eNotificationRequired())
290 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE, oldOpposite, opposite));
291 }
292 }
293 return opposite;
294 }
295
296 /**
297 * <!-- begin-user-doc -->
298 * <!-- end-user-doc -->
299 * @generated
300 */
301 public NamedElement basicGetOpposite()
302 {
303 return opposite;
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public void setOpposite(NamedElement newOpposite)
313 {
314 NamedElement oldOpposite = opposite;
315 opposite = newOpposite;
316 if (eNotificationRequired())
317 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE, oldOpposite, opposite));
318 }
319
320 /**
321 * <!-- begin-user-doc -->
322 * <!-- end-user-doc -->
323 * @generated
324 */
325 @Override
326 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
327 {
328 switch (featureID)
329 {
330 case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY:
331 return basicSetMultiplicity(null, msgs);
332 }
333 return super.eInverseRemove(otherEnd, featureID, msgs);
334 }
335
336 /**
337 * <!-- begin-user-doc -->
338 * <!-- end-user-doc -->
339 * @generated
340 */
341 @Override
342 public Object eGet(int featureID, boolean resolve, boolean coreType)
343 {
344 switch (featureID)
345 {
346 case SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT:
347 return isContainment();
348 case SolverLanguagePackage.MEMBER_DEFINITION__TYPE:
349 if (resolve) return getType();
350 return basicGetType();
351 case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY:
352 return getMultiplicity();
353 case SolverLanguagePackage.MEMBER_DEFINITION__NAME:
354 return getName();
355 case SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE:
356 if (resolve) return getOpposite();
357 return basicGetOpposite();
358 }
359 return super.eGet(featureID, resolve, coreType);
360 }
361
362 /**
363 * <!-- begin-user-doc -->
364 * <!-- end-user-doc -->
365 * @generated
366 */
367 @Override
368 public void eSet(int featureID, Object newValue)
369 {
370 switch (featureID)
371 {
372 case SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT:
373 setContainment((Boolean)newValue);
374 return;
375 case SolverLanguagePackage.MEMBER_DEFINITION__TYPE:
376 setType((NamedElement)newValue);
377 return;
378 case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY:
379 setMultiplicity((Multiplicity)newValue);
380 return;
381 case SolverLanguagePackage.MEMBER_DEFINITION__NAME:
382 setName((String)newValue);
383 return;
384 case SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE:
385 setOpposite((NamedElement)newValue);
386 return;
387 }
388 super.eSet(featureID, newValue);
389 }
390
391 /**
392 * <!-- begin-user-doc -->
393 * <!-- end-user-doc -->
394 * @generated
395 */
396 @Override
397 public void eUnset(int featureID)
398 {
399 switch (featureID)
400 {
401 case SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT:
402 setContainment(CONTAINMENT_EDEFAULT);
403 return;
404 case SolverLanguagePackage.MEMBER_DEFINITION__TYPE:
405 setType((NamedElement)null);
406 return;
407 case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY:
408 setMultiplicity((Multiplicity)null);
409 return;
410 case SolverLanguagePackage.MEMBER_DEFINITION__NAME:
411 setName(NAME_EDEFAULT);
412 return;
413 case SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE:
414 setOpposite((NamedElement)null);
415 return;
416 }
417 super.eUnset(featureID);
418 }
419
420 /**
421 * <!-- begin-user-doc -->
422 * <!-- end-user-doc -->
423 * @generated
424 */
425 @Override
426 public boolean eIsSet(int featureID)
427 {
428 switch (featureID)
429 {
430 case SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT:
431 return containment != CONTAINMENT_EDEFAULT;
432 case SolverLanguagePackage.MEMBER_DEFINITION__TYPE:
433 return type != null;
434 case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY:
435 return multiplicity != null;
436 case SolverLanguagePackage.MEMBER_DEFINITION__NAME:
437 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
438 case SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE:
439 return opposite != null;
440 }
441 return super.eIsSet(featureID);
442 }
443
444 /**
445 * <!-- begin-user-doc -->
446 * <!-- end-user-doc -->
447 * @generated
448 */
449 @Override
450 public String toString()
451 {
452 if (eIsProxy()) return super.toString();
453
454 StringBuilder result = new StringBuilder(super.toString());
455 result.append(" (containment: ");
456 result.append(containment);
457 result.append(", name: ");
458 result.append(name);
459 result.append(')');
460 return result.toString();
461 }
462
463} //MemberDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MetricDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MetricDefinitionImpl.java
new file mode 100644
index 00000000..8f84d2f1
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MetricDefinitionImpl.java
@@ -0,0 +1,343 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Expression;
15import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition;
16import org.eclipse.viatra.solver.language.solverLanguage.MetricType;
17import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Metric Definition</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl#getHead <em>Head</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl#getBody <em>Body</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl#getType <em>Type</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class MetricDefinitionImpl extends StatementImpl implements MetricDefinition
35{
36 /**
37 * The cached value of the '{@link #getHead() <em>Head</em>}' containment reference.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getHead()
41 * @generated
42 * @ordered
43 */
44 protected Expression head;
45
46 /**
47 * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @see #getBody()
51 * @generated
52 * @ordered
53 */
54 protected Expression body;
55
56 /**
57 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @see #getType()
61 * @generated
62 * @ordered
63 */
64 protected static final MetricType TYPE_EDEFAULT = MetricType.INT;
65
66 /**
67 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @see #getType()
71 * @generated
72 * @ordered
73 */
74 protected MetricType type = TYPE_EDEFAULT;
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 protected MetricDefinitionImpl()
82 {
83 super();
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 @Override
92 protected EClass eStaticClass()
93 {
94 return SolverLanguagePackage.Literals.METRIC_DEFINITION;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public Expression getHead()
104 {
105 return head;
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 public NotificationChain basicSetHead(Expression newHead, NotificationChain msgs)
114 {
115 Expression oldHead = head;
116 head = newHead;
117 if (eNotificationRequired())
118 {
119 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__HEAD, oldHead, newHead);
120 if (msgs == null) msgs = notification; else msgs.add(notification);
121 }
122 return msgs;
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public void setHead(Expression newHead)
132 {
133 if (newHead != head)
134 {
135 NotificationChain msgs = null;
136 if (head != null)
137 msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.METRIC_DEFINITION__HEAD, null, msgs);
138 if (newHead != null)
139 msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.METRIC_DEFINITION__HEAD, null, msgs);
140 msgs = basicSetHead(newHead, msgs);
141 if (msgs != null) msgs.dispatch();
142 }
143 else if (eNotificationRequired())
144 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__HEAD, newHead, newHead));
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public Expression getBody()
154 {
155 return body;
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs)
164 {
165 Expression oldBody = body;
166 body = newBody;
167 if (eNotificationRequired())
168 {
169 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__BODY, oldBody, newBody);
170 if (msgs == null) msgs = notification; else msgs.add(notification);
171 }
172 return msgs;
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 @Override
181 public void setBody(Expression newBody)
182 {
183 if (newBody != body)
184 {
185 NotificationChain msgs = null;
186 if (body != null)
187 msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.METRIC_DEFINITION__BODY, null, msgs);
188 if (newBody != null)
189 msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.METRIC_DEFINITION__BODY, null, msgs);
190 msgs = basicSetBody(newBody, msgs);
191 if (msgs != null) msgs.dispatch();
192 }
193 else if (eNotificationRequired())
194 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__BODY, newBody, newBody));
195 }
196
197 /**
198 * <!-- begin-user-doc -->
199 * <!-- end-user-doc -->
200 * @generated
201 */
202 @Override
203 public MetricType getType()
204 {
205 return type;
206 }
207
208 /**
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @generated
212 */
213 @Override
214 public void setType(MetricType newType)
215 {
216 MetricType oldType = type;
217 type = newType == null ? TYPE_EDEFAULT : newType;
218 if (eNotificationRequired())
219 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__TYPE, oldType, type));
220 }
221
222 /**
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 @Override
228 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
229 {
230 switch (featureID)
231 {
232 case SolverLanguagePackage.METRIC_DEFINITION__HEAD:
233 return basicSetHead(null, msgs);
234 case SolverLanguagePackage.METRIC_DEFINITION__BODY:
235 return basicSetBody(null, msgs);
236 }
237 return super.eInverseRemove(otherEnd, featureID, msgs);
238 }
239
240 /**
241 * <!-- begin-user-doc -->
242 * <!-- end-user-doc -->
243 * @generated
244 */
245 @Override
246 public Object eGet(int featureID, boolean resolve, boolean coreType)
247 {
248 switch (featureID)
249 {
250 case SolverLanguagePackage.METRIC_DEFINITION__HEAD:
251 return getHead();
252 case SolverLanguagePackage.METRIC_DEFINITION__BODY:
253 return getBody();
254 case SolverLanguagePackage.METRIC_DEFINITION__TYPE:
255 return getType();
256 }
257 return super.eGet(featureID, resolve, coreType);
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 @Override
266 public void eSet(int featureID, Object newValue)
267 {
268 switch (featureID)
269 {
270 case SolverLanguagePackage.METRIC_DEFINITION__HEAD:
271 setHead((Expression)newValue);
272 return;
273 case SolverLanguagePackage.METRIC_DEFINITION__BODY:
274 setBody((Expression)newValue);
275 return;
276 case SolverLanguagePackage.METRIC_DEFINITION__TYPE:
277 setType((MetricType)newValue);
278 return;
279 }
280 super.eSet(featureID, newValue);
281 }
282
283 /**
284 * <!-- begin-user-doc -->
285 * <!-- end-user-doc -->
286 * @generated
287 */
288 @Override
289 public void eUnset(int featureID)
290 {
291 switch (featureID)
292 {
293 case SolverLanguagePackage.METRIC_DEFINITION__HEAD:
294 setHead((Expression)null);
295 return;
296 case SolverLanguagePackage.METRIC_DEFINITION__BODY:
297 setBody((Expression)null);
298 return;
299 case SolverLanguagePackage.METRIC_DEFINITION__TYPE:
300 setType(TYPE_EDEFAULT);
301 return;
302 }
303 super.eUnset(featureID);
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @generated
310 */
311 @Override
312 public boolean eIsSet(int featureID)
313 {
314 switch (featureID)
315 {
316 case SolverLanguagePackage.METRIC_DEFINITION__HEAD:
317 return head != null;
318 case SolverLanguagePackage.METRIC_DEFINITION__BODY:
319 return body != null;
320 case SolverLanguagePackage.METRIC_DEFINITION__TYPE:
321 return type != TYPE_EDEFAULT;
322 }
323 return super.eIsSet(featureID);
324 }
325
326 /**
327 * <!-- begin-user-doc -->
328 * <!-- end-user-doc -->
329 * @generated
330 */
331 @Override
332 public String toString()
333 {
334 if (eIsProxy()) return super.toString();
335
336 StringBuilder result = new StringBuilder(super.toString());
337 result.append(" (type: ");
338 result.append(type);
339 result.append(')');
340 return result.toString();
341 }
342
343} //MetricDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityDefinitionImpl.java
deleted file mode 100644
index a346568c..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityDefinitionImpl.java
+++ /dev/null
@@ -1,296 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7
8import org.eclipse.emf.ecore.EClass;
9
10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
12
13import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition;
14import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model object '<em><b>Multiplicity Definition</b></em>'.
19 * <!-- end-user-doc -->
20 * <p>
21 * The following features are implemented:
22 * </p>
23 * <ul>
24 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl#getLower <em>Lower</em>}</li>
25 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl#getUpper <em>Upper</em>}</li>
26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl#isUnlimitedUpper <em>Unlimited Upper</em>}</li>
27 * </ul>
28 *
29 * @generated
30 */
31public class MultiplicityDefinitionImpl extends MinimalEObjectImpl.Container implements MultiplicityDefinition
32{
33 /**
34 * The default value of the '{@link #getLower() <em>Lower</em>}' attribute.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @see #getLower()
38 * @generated
39 * @ordered
40 */
41 protected static final int LOWER_EDEFAULT = 0;
42
43 /**
44 * The cached value of the '{@link #getLower() <em>Lower</em>}' attribute.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #getLower()
48 * @generated
49 * @ordered
50 */
51 protected int lower = LOWER_EDEFAULT;
52
53 /**
54 * The default value of the '{@link #getUpper() <em>Upper</em>}' attribute.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @see #getUpper()
58 * @generated
59 * @ordered
60 */
61 protected static final int UPPER_EDEFAULT = 0;
62
63 /**
64 * The cached value of the '{@link #getUpper() <em>Upper</em>}' attribute.
65 * <!-- begin-user-doc -->
66 * <!-- end-user-doc -->
67 * @see #getUpper()
68 * @generated
69 * @ordered
70 */
71 protected int upper = UPPER_EDEFAULT;
72
73 /**
74 * The default value of the '{@link #isUnlimitedUpper() <em>Unlimited Upper</em>}' attribute.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #isUnlimitedUpper()
78 * @generated
79 * @ordered
80 */
81 protected static final boolean UNLIMITED_UPPER_EDEFAULT = false;
82
83 /**
84 * The cached value of the '{@link #isUnlimitedUpper() <em>Unlimited Upper</em>}' attribute.
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @see #isUnlimitedUpper()
88 * @generated
89 * @ordered
90 */
91 protected boolean unlimitedUpper = UNLIMITED_UPPER_EDEFAULT;
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 protected MultiplicityDefinitionImpl()
99 {
100 super();
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 protected EClass eStaticClass()
110 {
111 return SolverLanguagePackage.Literals.MULTIPLICITY_DEFINITION;
112 }
113
114 /**
115 * <!-- begin-user-doc -->
116 * <!-- end-user-doc -->
117 * @generated
118 */
119 @Override
120 public int getLower()
121 {
122 return lower;
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public void setLower(int newLower)
132 {
133 int oldLower = lower;
134 lower = newLower;
135 if (eNotificationRequired())
136 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER, oldLower, lower));
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public int getUpper()
146 {
147 return upper;
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 @Override
156 public void setUpper(int newUpper)
157 {
158 int oldUpper = upper;
159 upper = newUpper;
160 if (eNotificationRequired())
161 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER, oldUpper, upper));
162 }
163
164 /**
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 @Override
170 public boolean isUnlimitedUpper()
171 {
172 return unlimitedUpper;
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 @Override
181 public void setUnlimitedUpper(boolean newUnlimitedUpper)
182 {
183 boolean oldUnlimitedUpper = unlimitedUpper;
184 unlimitedUpper = newUnlimitedUpper;
185 if (eNotificationRequired())
186 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER, oldUnlimitedUpper, unlimitedUpper));
187 }
188
189 /**
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 */
194 @Override
195 public Object eGet(int featureID, boolean resolve, boolean coreType)
196 {
197 switch (featureID)
198 {
199 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER:
200 return getLower();
201 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER:
202 return getUpper();
203 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER:
204 return isUnlimitedUpper();
205 }
206 return super.eGet(featureID, resolve, coreType);
207 }
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 @Override
215 public void eSet(int featureID, Object newValue)
216 {
217 switch (featureID)
218 {
219 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER:
220 setLower((Integer)newValue);
221 return;
222 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER:
223 setUpper((Integer)newValue);
224 return;
225 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER:
226 setUnlimitedUpper((Boolean)newValue);
227 return;
228 }
229 super.eSet(featureID, newValue);
230 }
231
232 /**
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @generated
236 */
237 @Override
238 public void eUnset(int featureID)
239 {
240 switch (featureID)
241 {
242 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER:
243 setLower(LOWER_EDEFAULT);
244 return;
245 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER:
246 setUpper(UPPER_EDEFAULT);
247 return;
248 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER:
249 setUnlimitedUpper(UNLIMITED_UPPER_EDEFAULT);
250 return;
251 }
252 super.eUnset(featureID);
253 }
254
255 /**
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 */
260 @Override
261 public boolean eIsSet(int featureID)
262 {
263 switch (featureID)
264 {
265 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER:
266 return lower != LOWER_EDEFAULT;
267 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER:
268 return upper != UPPER_EDEFAULT;
269 case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER:
270 return unlimitedUpper != UNLIMITED_UPPER_EDEFAULT;
271 }
272 return super.eIsSet(featureID);
273 }
274
275 /**
276 * <!-- begin-user-doc -->
277 * <!-- end-user-doc -->
278 * @generated
279 */
280 @Override
281 public String toString()
282 {
283 if (eIsProxy()) return super.toString();
284
285 StringBuilder result = new StringBuilder(super.toString());
286 result.append(" (lower: ");
287 result.append(lower);
288 result.append(", upper: ");
289 result.append(upper);
290 result.append(", unlimitedUpper: ");
291 result.append(unlimitedUpper);
292 result.append(')');
293 return result.toString();
294 }
295
296} //MultiplicityDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClosureTypeImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityImpl.java
index 98136f79..935cf5be 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClosureTypeImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -7,24 +7,24 @@ import org.eclipse.emf.ecore.EClass;
7 7
8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
9 9
10import org.eclipse.viatra.solver.language.solverLanguage.ClosureType; 10import org.eclipse.viatra.solver.language.solverLanguage.Multiplicity;
11import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 11import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
12 12
13/** 13/**
14 * <!-- begin-user-doc --> 14 * <!-- begin-user-doc -->
15 * An implementation of the model object '<em><b>Closure Type</b></em>'. 15 * An implementation of the model object '<em><b>Multiplicity</b></em>'.
16 * <!-- end-user-doc --> 16 * <!-- end-user-doc -->
17 * 17 *
18 * @generated 18 * @generated
19 */ 19 */
20public class ClosureTypeImpl extends MinimalEObjectImpl.Container implements ClosureType 20public class MultiplicityImpl extends MinimalEObjectImpl.Container implements Multiplicity
21{ 21{
22 /** 22 /**
23 * <!-- begin-user-doc --> 23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc --> 24 * <!-- end-user-doc -->
25 * @generated 25 * @generated
26 */ 26 */
27 protected ClosureTypeImpl() 27 protected MultiplicityImpl()
28 { 28 {
29 super(); 29 super();
30 } 30 }
@@ -37,7 +37,7 @@ public class ClosureTypeImpl extends MinimalEObjectImpl.Container implements Clo
37 @Override 37 @Override
38 protected EClass eStaticClass() 38 protected EClass eStaticClass()
39 { 39 {
40 return SolverLanguagePackage.Literals.CLOSURE_TYPE; 40 return SolverLanguagePackage.Literals.MULTIPLICITY;
41 } 41 }
42 42
43} //ClosureTypeImpl 43} //MultiplicityImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/VariableImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedElementImpl.java
index 9a254023..a94f9894 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/VariableImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedElementImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -8,24 +8,25 @@ import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.ecore.EClass; 8import org.eclipse.emf.ecore.EClass;
9 9
10import org.eclipse.emf.ecore.impl.ENotificationImpl; 10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
11 12
13import org.eclipse.viatra.solver.language.solverLanguage.NamedElement;
12import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 14import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
13import org.eclipse.viatra.solver.language.solverLanguage.Variable;
14 15
15/** 16/**
16 * <!-- begin-user-doc --> 17 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Variable</b></em>'. 18 * An implementation of the model object '<em><b>Named Element</b></em>'.
18 * <!-- end-user-doc --> 19 * <!-- end-user-doc -->
19 * <p> 20 * <p>
20 * The following features are implemented: 21 * The following features are implemented:
21 * </p> 22 * </p>
22 * <ul> 23 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl#getName <em>Name</em>}</li> 24 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl#getName <em>Name</em>}</li>
24 * </ul> 25 * </ul>
25 * 26 *
26 * @generated 27 * @generated
27 */ 28 */
28public class VariableImpl extends LiteralImpl implements Variable 29public class NamedElementImpl extends MinimalEObjectImpl.Container implements NamedElement
29{ 30{
30 /** 31 /**
31 * The default value of the '{@link #getName() <em>Name</em>}' attribute. 32 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
@@ -52,7 +53,7 @@ public class VariableImpl extends LiteralImpl implements Variable
52 * <!-- end-user-doc --> 53 * <!-- end-user-doc -->
53 * @generated 54 * @generated
54 */ 55 */
55 protected VariableImpl() 56 protected NamedElementImpl()
56 { 57 {
57 super(); 58 super();
58 } 59 }
@@ -65,7 +66,7 @@ public class VariableImpl extends LiteralImpl implements Variable
65 @Override 66 @Override
66 protected EClass eStaticClass() 67 protected EClass eStaticClass()
67 { 68 {
68 return SolverLanguagePackage.Literals.VARIABLE; 69 return SolverLanguagePackage.Literals.NAMED_ELEMENT;
69 } 70 }
70 71
71 /** 72 /**
@@ -90,7 +91,7 @@ public class VariableImpl extends LiteralImpl implements Variable
90 String oldName = name; 91 String oldName = name;
91 name = newName; 92 name = newName;
92 if (eNotificationRequired()) 93 if (eNotificationRequired())
93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.VARIABLE__NAME, oldName, name)); 94 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.NAMED_ELEMENT__NAME, oldName, name));
94 } 95 }
95 96
96 /** 97 /**
@@ -103,7 +104,7 @@ public class VariableImpl extends LiteralImpl implements Variable
103 { 104 {
104 switch (featureID) 105 switch (featureID)
105 { 106 {
106 case SolverLanguagePackage.VARIABLE__NAME: 107 case SolverLanguagePackage.NAMED_ELEMENT__NAME:
107 return getName(); 108 return getName();
108 } 109 }
109 return super.eGet(featureID, resolve, coreType); 110 return super.eGet(featureID, resolve, coreType);
@@ -119,7 +120,7 @@ public class VariableImpl extends LiteralImpl implements Variable
119 { 120 {
120 switch (featureID) 121 switch (featureID)
121 { 122 {
122 case SolverLanguagePackage.VARIABLE__NAME: 123 case SolverLanguagePackage.NAMED_ELEMENT__NAME:
123 setName((String)newValue); 124 setName((String)newValue);
124 return; 125 return;
125 } 126 }
@@ -136,7 +137,7 @@ public class VariableImpl extends LiteralImpl implements Variable
136 { 137 {
137 switch (featureID) 138 switch (featureID)
138 { 139 {
139 case SolverLanguagePackage.VARIABLE__NAME: 140 case SolverLanguagePackage.NAMED_ELEMENT__NAME:
140 setName(NAME_EDEFAULT); 141 setName(NAME_EDEFAULT);
141 return; 142 return;
142 } 143 }
@@ -153,7 +154,7 @@ public class VariableImpl extends LiteralImpl implements Variable
153 { 154 {
154 switch (featureID) 155 switch (featureID)
155 { 156 {
156 case SolverLanguagePackage.VARIABLE__NAME: 157 case SolverLanguagePackage.NAMED_ELEMENT__NAME:
157 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); 158 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
158 } 159 }
159 return super.eIsSet(featureID); 160 return super.eIsSet(featureID);
@@ -176,4 +177,4 @@ public class VariableImpl extends LiteralImpl implements Variable
176 return result.toString(); 177 return result.toString();
177 } 178 }
178 179
179} //VariableImpl 180} //NamedElementImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NegativeImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NegativeImpl.java
deleted file mode 100644
index a30b228f..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NegativeImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.Negative;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Negative</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class NegativeImpl extends PolarityImpl implements Negative
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected NegativeImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.NEGATIVE;
39 }
40
41} //NegativeImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealObjectImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NumericLiteralImpl.java
index bc32a9a6..04622dfb 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealObjectImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NumericLiteralImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -11,23 +11,23 @@ import org.eclipse.emf.ecore.EClass;
11 11
12import org.eclipse.emf.ecore.impl.ENotificationImpl; 12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13 13
14import org.eclipse.viatra.solver.language.solverLanguage.RealObject; 14import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral;
15import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 15import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
16 16
17/** 17/**
18 * <!-- begin-user-doc --> 18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Real Object</b></em>'. 19 * An implementation of the model object '<em><b>Numeric Literal</b></em>'.
20 * <!-- end-user-doc --> 20 * <!-- end-user-doc -->
21 * <p> 21 * <p>
22 * The following features are implemented: 22 * The following features are implemented:
23 * </p> 23 * </p>
24 * <ul> 24 * <ul>
25 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl#getValue <em>Value</em>}</li> 25 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl#getValue <em>Value</em>}</li>
26 * </ul> 26 * </ul>
27 * 27 *
28 * @generated 28 * @generated
29 */ 29 */
30public class RealObjectImpl extends DataObjectImpl implements RealObject 30public class NumericLiteralImpl extends LiteralImpl implements NumericLiteral
31{ 31{
32 /** 32 /**
33 * The default value of the '{@link #getValue() <em>Value</em>}' attribute. 33 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
@@ -54,7 +54,7 @@ public class RealObjectImpl extends DataObjectImpl implements RealObject
54 * <!-- end-user-doc --> 54 * <!-- end-user-doc -->
55 * @generated 55 * @generated
56 */ 56 */
57 protected RealObjectImpl() 57 protected NumericLiteralImpl()
58 { 58 {
59 super(); 59 super();
60 } 60 }
@@ -67,7 +67,7 @@ public class RealObjectImpl extends DataObjectImpl implements RealObject
67 @Override 67 @Override
68 protected EClass eStaticClass() 68 protected EClass eStaticClass()
69 { 69 {
70 return SolverLanguagePackage.Literals.REAL_OBJECT; 70 return SolverLanguagePackage.Literals.NUMERIC_LITERAL;
71 } 71 }
72 72
73 /** 73 /**
@@ -92,7 +92,7 @@ public class RealObjectImpl extends DataObjectImpl implements RealObject
92 BigDecimal oldValue = value; 92 BigDecimal oldValue = value;
93 value = newValue; 93 value = newValue;
94 if (eNotificationRequired()) 94 if (eNotificationRequired())
95 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.REAL_OBJECT__VALUE, oldValue, value)); 95 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.NUMERIC_LITERAL__VALUE, oldValue, value));
96 } 96 }
97 97
98 /** 98 /**
@@ -105,7 +105,7 @@ public class RealObjectImpl extends DataObjectImpl implements RealObject
105 { 105 {
106 switch (featureID) 106 switch (featureID)
107 { 107 {
108 case SolverLanguagePackage.REAL_OBJECT__VALUE: 108 case SolverLanguagePackage.NUMERIC_LITERAL__VALUE:
109 return getValue(); 109 return getValue();
110 } 110 }
111 return super.eGet(featureID, resolve, coreType); 111 return super.eGet(featureID, resolve, coreType);
@@ -121,7 +121,7 @@ public class RealObjectImpl extends DataObjectImpl implements RealObject
121 { 121 {
122 switch (featureID) 122 switch (featureID)
123 { 123 {
124 case SolverLanguagePackage.REAL_OBJECT__VALUE: 124 case SolverLanguagePackage.NUMERIC_LITERAL__VALUE:
125 setValue((BigDecimal)newValue); 125 setValue((BigDecimal)newValue);
126 return; 126 return;
127 } 127 }
@@ -138,7 +138,7 @@ public class RealObjectImpl extends DataObjectImpl implements RealObject
138 { 138 {
139 switch (featureID) 139 switch (featureID)
140 { 140 {
141 case SolverLanguagePackage.REAL_OBJECT__VALUE: 141 case SolverLanguagePackage.NUMERIC_LITERAL__VALUE:
142 setValue(VALUE_EDEFAULT); 142 setValue(VALUE_EDEFAULT);
143 return; 143 return;
144 } 144 }
@@ -155,7 +155,7 @@ public class RealObjectImpl extends DataObjectImpl implements RealObject
155 { 155 {
156 switch (featureID) 156 switch (featureID)
157 { 157 {
158 case SolverLanguagePackage.REAL_OBJECT__VALUE: 158 case SolverLanguagePackage.NUMERIC_LITERAL__VALUE:
159 return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); 159 return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
160 } 160 }
161 return super.eIsSet(featureID); 161 return super.eIsSet(featureID);
@@ -178,4 +178,4 @@ public class RealObjectImpl extends DataObjectImpl implements RealObject
178 return result.toString(); 178 return result.toString();
179 } 179 }
180 180
181} //RealObjectImpl 181} //NumericLiteralImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectImpl.java
deleted file mode 100644
index d2f9b8d9..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectImpl.java
+++ /dev/null
@@ -1,40 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Object</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class ObjectImpl extends ComplexObjectImpl implements org.eclipse.viatra.solver.language.solverLanguage.Object
18{
19 /**
20 * <!-- begin-user-doc -->
21 * <!-- end-user-doc -->
22 * @generated
23 */
24 protected ObjectImpl()
25 {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass()
36 {
37 return SolverLanguagePackage.Literals.OBJECT;
38 }
39
40} //ObjectImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectiveDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectiveDefinitionImpl.java
new file mode 100644
index 00000000..43b16e31
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectiveDefinitionImpl.java
@@ -0,0 +1,270 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Expression;
15import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition;
16import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind;
17import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Objective Definition</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl#getKind <em>Kind</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl#getObjective <em>Objective</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public class ObjectiveDefinitionImpl extends StatementImpl implements ObjectiveDefinition
34{
35 /**
36 * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getKind()
40 * @generated
41 * @ordered
42 */
43 protected static final ObjectiveKind KIND_EDEFAULT = ObjectiveKind.MINIMIZE;
44
45 /**
46 * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getKind()
50 * @generated
51 * @ordered
52 */
53 protected ObjectiveKind kind = KIND_EDEFAULT;
54
55 /**
56 * The cached value of the '{@link #getObjective() <em>Objective</em>}' containment reference.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #getObjective()
60 * @generated
61 * @ordered
62 */
63 protected Expression objective;
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 protected ObjectiveDefinitionImpl()
71 {
72 super();
73 }
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 @Override
81 protected EClass eStaticClass()
82 {
83 return SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION;
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 @Override
92 public ObjectiveKind getKind()
93 {
94 return kind;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public void setKind(ObjectiveKind newKind)
104 {
105 ObjectiveKind oldKind = kind;
106 kind = newKind == null ? KIND_EDEFAULT : newKind;
107 if (eNotificationRequired())
108 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND, oldKind, kind));
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 @Override
117 public Expression getObjective()
118 {
119 return objective;
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public NotificationChain basicSetObjective(Expression newObjective, NotificationChain msgs)
128 {
129 Expression oldObjective = objective;
130 objective = newObjective;
131 if (eNotificationRequired())
132 {
133 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE, oldObjective, newObjective);
134 if (msgs == null) msgs = notification; else msgs.add(notification);
135 }
136 return msgs;
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public void setObjective(Expression newObjective)
146 {
147 if (newObjective != objective)
148 {
149 NotificationChain msgs = null;
150 if (objective != null)
151 msgs = ((InternalEObject)objective).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE, null, msgs);
152 if (newObjective != null)
153 msgs = ((InternalEObject)newObjective).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE, null, msgs);
154 msgs = basicSetObjective(newObjective, msgs);
155 if (msgs != null) msgs.dispatch();
156 }
157 else if (eNotificationRequired())
158 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE, newObjective, newObjective));
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 @Override
167 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
168 {
169 switch (featureID)
170 {
171 case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE:
172 return basicSetObjective(null, msgs);
173 }
174 return super.eInverseRemove(otherEnd, featureID, msgs);
175 }
176
177 /**
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @generated
181 */
182 @Override
183 public Object eGet(int featureID, boolean resolve, boolean coreType)
184 {
185 switch (featureID)
186 {
187 case SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND:
188 return getKind();
189 case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE:
190 return getObjective();
191 }
192 return super.eGet(featureID, resolve, coreType);
193 }
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 @Override
201 public void eSet(int featureID, Object newValue)
202 {
203 switch (featureID)
204 {
205 case SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND:
206 setKind((ObjectiveKind)newValue);
207 return;
208 case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE:
209 setObjective((Expression)newValue);
210 return;
211 }
212 super.eSet(featureID, newValue);
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 @Override
221 public void eUnset(int featureID)
222 {
223 switch (featureID)
224 {
225 case SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND:
226 setKind(KIND_EDEFAULT);
227 return;
228 case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE:
229 setObjective((Expression)null);
230 return;
231 }
232 super.eUnset(featureID);
233 }
234
235 /**
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @generated
239 */
240 @Override
241 public boolean eIsSet(int featureID)
242 {
243 switch (featureID)
244 {
245 case SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND:
246 return kind != KIND_EDEFAULT;
247 case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE:
248 return objective != null;
249 }
250 return super.eIsSet(featureID);
251 }
252
253 /**
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 @Override
259 public String toString()
260 {
261 if (eIsProxy()) return super.toString();
262
263 StringBuilder result = new StringBuilder(super.toString());
264 result.append(" (kind: ");
265 result.append(kind);
266 result.append(')');
267 return result.toString();
268 }
269
270} //ObjectiveDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PartialitySymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PartialitySymbolImpl.java
deleted file mode 100644
index efc2c5f5..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PartialitySymbolImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Partiality Symbol</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class PartialitySymbolImpl extends SymbolImpl implements PartialitySymbol
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected PartialitySymbolImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.PARTIALITY_SYMBOL;
39 }
40
41} //PartialitySymbolImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PositiveImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PositiveImpl.java
deleted file mode 100644
index 130cfe7a..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PositiveImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.Positive;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Positive</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class PositiveImpl extends PolarityImpl implements Positive
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected PositiveImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.POSITIVE;
39 }
40
41} //PositiveImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateDefinitionImpl.java
new file mode 100644
index 00000000..50130f01
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateDefinitionImpl.java
@@ -0,0 +1,400 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Expression;
15import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition;
16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
17
18/**
19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>Predicate Definition</b></em>'.
21 * <!-- end-user-doc -->
22 * <p>
23 * The following features are implemented:
24 * </p>
25 * <ul>
26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl#getHead <em>Head</em>}</li>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl#getBody <em>Body</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl#isFunctional <em>Functional</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl#isError <em>Error</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class PredicateDefinitionImpl extends StatementImpl implements PredicateDefinition
35{
36 /**
37 * The cached value of the '{@link #getHead() <em>Head</em>}' containment reference.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @see #getHead()
41 * @generated
42 * @ordered
43 */
44 protected Expression head;
45
46 /**
47 * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @see #getBody()
51 * @generated
52 * @ordered
53 */
54 protected Expression body;
55
56 /**
57 * The default value of the '{@link #isFunctional() <em>Functional</em>}' attribute.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @see #isFunctional()
61 * @generated
62 * @ordered
63 */
64 protected static final boolean FUNCTIONAL_EDEFAULT = false;
65
66 /**
67 * The cached value of the '{@link #isFunctional() <em>Functional</em>}' attribute.
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @see #isFunctional()
71 * @generated
72 * @ordered
73 */
74 protected boolean functional = FUNCTIONAL_EDEFAULT;
75
76 /**
77 * The default value of the '{@link #isError() <em>Error</em>}' attribute.
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @see #isError()
81 * @generated
82 * @ordered
83 */
84 protected static final boolean ERROR_EDEFAULT = false;
85
86 /**
87 * The cached value of the '{@link #isError() <em>Error</em>}' attribute.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @see #isError()
91 * @generated
92 * @ordered
93 */
94 protected boolean error = ERROR_EDEFAULT;
95
96 /**
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @generated
100 */
101 protected PredicateDefinitionImpl()
102 {
103 super();
104 }
105
106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 @Override
112 protected EClass eStaticClass()
113 {
114 return SolverLanguagePackage.Literals.PREDICATE_DEFINITION;
115 }
116
117 /**
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 */
122 @Override
123 public Expression getHead()
124 {
125 return head;
126 }
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 public NotificationChain basicSetHead(Expression newHead, NotificationChain msgs)
134 {
135 Expression oldHead = head;
136 head = newHead;
137 if (eNotificationRequired())
138 {
139 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__HEAD, oldHead, newHead);
140 if (msgs == null) msgs = notification; else msgs.add(notification);
141 }
142 return msgs;
143 }
144
145 /**
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 */
150 @Override
151 public void setHead(Expression newHead)
152 {
153 if (newHead != head)
154 {
155 NotificationChain msgs = null;
156 if (head != null)
157 msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE_DEFINITION__HEAD, null, msgs);
158 if (newHead != null)
159 msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE_DEFINITION__HEAD, null, msgs);
160 msgs = basicSetHead(newHead, msgs);
161 if (msgs != null) msgs.dispatch();
162 }
163 else if (eNotificationRequired())
164 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__HEAD, newHead, newHead));
165 }
166
167 /**
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @generated
171 */
172 @Override
173 public Expression getBody()
174 {
175 return body;
176 }
177
178 /**
179 * <!-- begin-user-doc -->
180 * <!-- end-user-doc -->
181 * @generated
182 */
183 public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs)
184 {
185 Expression oldBody = body;
186 body = newBody;
187 if (eNotificationRequired())
188 {
189 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__BODY, oldBody, newBody);
190 if (msgs == null) msgs = notification; else msgs.add(notification);
191 }
192 return msgs;
193 }
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 @Override
201 public void setBody(Expression newBody)
202 {
203 if (newBody != body)
204 {
205 NotificationChain msgs = null;
206 if (body != null)
207 msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE_DEFINITION__BODY, null, msgs);
208 if (newBody != null)
209 msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE_DEFINITION__BODY, null, msgs);
210 msgs = basicSetBody(newBody, msgs);
211 if (msgs != null) msgs.dispatch();
212 }
213 else if (eNotificationRequired())
214 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__BODY, newBody, newBody));
215 }
216
217 /**
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 */
222 @Override
223 public boolean isFunctional()
224 {
225 return functional;
226 }
227
228 /**
229 * <!-- begin-user-doc -->
230 * <!-- end-user-doc -->
231 * @generated
232 */
233 @Override
234 public void setFunctional(boolean newFunctional)
235 {
236 boolean oldFunctional = functional;
237 functional = newFunctional;
238 if (eNotificationRequired())
239 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL, oldFunctional, functional));
240 }
241
242 /**
243 * <!-- begin-user-doc -->
244 * <!-- end-user-doc -->
245 * @generated
246 */
247 @Override
248 public boolean isError()
249 {
250 return error;
251 }
252
253 /**
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 @Override
259 public void setError(boolean newError)
260 {
261 boolean oldError = error;
262 error = newError;
263 if (eNotificationRequired())
264 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__ERROR, oldError, error));
265 }
266
267 /**
268 * <!-- begin-user-doc -->
269 * <!-- end-user-doc -->
270 * @generated
271 */
272 @Override
273 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
274 {
275 switch (featureID)
276 {
277 case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD:
278 return basicSetHead(null, msgs);
279 case SolverLanguagePackage.PREDICATE_DEFINITION__BODY:
280 return basicSetBody(null, msgs);
281 }
282 return super.eInverseRemove(otherEnd, featureID, msgs);
283 }
284
285 /**
286 * <!-- begin-user-doc -->
287 * <!-- end-user-doc -->
288 * @generated
289 */
290 @Override
291 public Object eGet(int featureID, boolean resolve, boolean coreType)
292 {
293 switch (featureID)
294 {
295 case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD:
296 return getHead();
297 case SolverLanguagePackage.PREDICATE_DEFINITION__BODY:
298 return getBody();
299 case SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL:
300 return isFunctional();
301 case SolverLanguagePackage.PREDICATE_DEFINITION__ERROR:
302 return isError();
303 }
304 return super.eGet(featureID, resolve, coreType);
305 }
306
307 /**
308 * <!-- begin-user-doc -->
309 * <!-- end-user-doc -->
310 * @generated
311 */
312 @Override
313 public void eSet(int featureID, Object newValue)
314 {
315 switch (featureID)
316 {
317 case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD:
318 setHead((Expression)newValue);
319 return;
320 case SolverLanguagePackage.PREDICATE_DEFINITION__BODY:
321 setBody((Expression)newValue);
322 return;
323 case SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL:
324 setFunctional((Boolean)newValue);
325 return;
326 case SolverLanguagePackage.PREDICATE_DEFINITION__ERROR:
327 setError((Boolean)newValue);
328 return;
329 }
330 super.eSet(featureID, newValue);
331 }
332
333 /**
334 * <!-- begin-user-doc -->
335 * <!-- end-user-doc -->
336 * @generated
337 */
338 @Override
339 public void eUnset(int featureID)
340 {
341 switch (featureID)
342 {
343 case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD:
344 setHead((Expression)null);
345 return;
346 case SolverLanguagePackage.PREDICATE_DEFINITION__BODY:
347 setBody((Expression)null);
348 return;
349 case SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL:
350 setFunctional(FUNCTIONAL_EDEFAULT);
351 return;
352 case SolverLanguagePackage.PREDICATE_DEFINITION__ERROR:
353 setError(ERROR_EDEFAULT);
354 return;
355 }
356 super.eUnset(featureID);
357 }
358
359 /**
360 * <!-- begin-user-doc -->
361 * <!-- end-user-doc -->
362 * @generated
363 */
364 @Override
365 public boolean eIsSet(int featureID)
366 {
367 switch (featureID)
368 {
369 case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD:
370 return head != null;
371 case SolverLanguagePackage.PREDICATE_DEFINITION__BODY:
372 return body != null;
373 case SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL:
374 return functional != FUNCTIONAL_EDEFAULT;
375 case SolverLanguagePackage.PREDICATE_DEFINITION__ERROR:
376 return error != ERROR_EDEFAULT;
377 }
378 return super.eIsSet(featureID);
379 }
380
381 /**
382 * <!-- begin-user-doc -->
383 * <!-- end-user-doc -->
384 * @generated
385 */
386 @Override
387 public String toString()
388 {
389 if (eIsProxy()) return super.toString();
390
391 StringBuilder result = new StringBuilder(super.toString());
392 result.append(" (functional: ");
393 result.append(functional);
394 result.append(", error: ");
395 result.append(error);
396 result.append(')');
397 return result.toString();
398 }
399
400} //PredicateDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateImpl.java
deleted file mode 100644
index d3c7366d..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateImpl.java
+++ /dev/null
@@ -1,357 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import java.util.Collection;
7
8import org.eclipse.emf.common.notify.Notification;
9import org.eclipse.emf.common.notify.NotificationChain;
10
11import org.eclipse.emf.common.util.EList;
12
13import org.eclipse.emf.ecore.EClass;
14import org.eclipse.emf.ecore.InternalEObject;
15
16import org.eclipse.emf.ecore.impl.ENotificationImpl;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol;
22import org.eclipse.viatra.solver.language.solverLanguage.Parameter;
23import org.eclipse.viatra.solver.language.solverLanguage.PatternBody;
24import org.eclipse.viatra.solver.language.solverLanguage.Predicate;
25import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
26
27/**
28 * <!-- begin-user-doc -->
29 * An implementation of the model object '<em><b>Predicate</b></em>'.
30 * <!-- end-user-doc -->
31 * <p>
32 * The following features are implemented:
33 * </p>
34 * <ul>
35 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl#isIsError <em>Is Error</em>}</li>
36 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl#getSymbol <em>Symbol</em>}</li>
37 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl#getParameters <em>Parameters</em>}</li>
38 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl#getBodies <em>Bodies</em>}</li>
39 * </ul>
40 *
41 * @generated
42 */
43public class PredicateImpl extends StatementImpl implements Predicate
44{
45 /**
46 * The default value of the '{@link #isIsError() <em>Is Error</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #isIsError()
50 * @generated
51 * @ordered
52 */
53 protected static final boolean IS_ERROR_EDEFAULT = false;
54
55 /**
56 * The cached value of the '{@link #isIsError() <em>Is Error</em>}' attribute.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #isIsError()
60 * @generated
61 * @ordered
62 */
63 protected boolean isError = IS_ERROR_EDEFAULT;
64
65 /**
66 * The cached value of the '{@link #getSymbol() <em>Symbol</em>}' containment reference.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @see #getSymbol()
70 * @generated
71 * @ordered
72 */
73 protected ModelSymbol symbol;
74
75 /**
76 * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @see #getParameters()
80 * @generated
81 * @ordered
82 */
83 protected EList<Parameter> parameters;
84
85 /**
86 * The cached value of the '{@link #getBodies() <em>Bodies</em>}' containment reference list.
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @see #getBodies()
90 * @generated
91 * @ordered
92 */
93 protected EList<PatternBody> bodies;
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 protected PredicateImpl()
101 {
102 super();
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 protected EClass eStaticClass()
112 {
113 return SolverLanguagePackage.Literals.PREDICATE;
114 }
115
116 /**
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 */
121 @Override
122 public boolean isIsError()
123 {
124 return isError;
125 }
126
127 /**
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 @Override
133 public void setIsError(boolean newIsError)
134 {
135 boolean oldIsError = isError;
136 isError = newIsError;
137 if (eNotificationRequired())
138 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE__IS_ERROR, oldIsError, isError));
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 @Override
147 public ModelSymbol getSymbol()
148 {
149 return symbol;
150 }
151
152 /**
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 */
157 public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs)
158 {
159 ModelSymbol oldSymbol = symbol;
160 symbol = newSymbol;
161 if (eNotificationRequired())
162 {
163 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE__SYMBOL, oldSymbol, newSymbol);
164 if (msgs == null) msgs = notification; else msgs.add(notification);
165 }
166 return msgs;
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 @Override
175 public void setSymbol(ModelSymbol newSymbol)
176 {
177 if (newSymbol != symbol)
178 {
179 NotificationChain msgs = null;
180 if (symbol != null)
181 msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE__SYMBOL, null, msgs);
182 if (newSymbol != null)
183 msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE__SYMBOL, null, msgs);
184 msgs = basicSetSymbol(newSymbol, msgs);
185 if (msgs != null) msgs.dispatch();
186 }
187 else if (eNotificationRequired())
188 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE__SYMBOL, newSymbol, newSymbol));
189 }
190
191 /**
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 */
196 @Override
197 public EList<Parameter> getParameters()
198 {
199 if (parameters == null)
200 {
201 parameters = new EObjectContainmentEList<Parameter>(Parameter.class, this, SolverLanguagePackage.PREDICATE__PARAMETERS);
202 }
203 return parameters;
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 @Override
212 public EList<PatternBody> getBodies()
213 {
214 if (bodies == null)
215 {
216 bodies = new EObjectContainmentEList<PatternBody>(PatternBody.class, this, SolverLanguagePackage.PREDICATE__BODIES);
217 }
218 return bodies;
219 }
220
221 /**
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @generated
225 */
226 @Override
227 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
228 {
229 switch (featureID)
230 {
231 case SolverLanguagePackage.PREDICATE__SYMBOL:
232 return basicSetSymbol(null, msgs);
233 case SolverLanguagePackage.PREDICATE__PARAMETERS:
234 return ((InternalEList<?>)getParameters()).basicRemove(otherEnd, msgs);
235 case SolverLanguagePackage.PREDICATE__BODIES:
236 return ((InternalEList<?>)getBodies()).basicRemove(otherEnd, msgs);
237 }
238 return super.eInverseRemove(otherEnd, featureID, msgs);
239 }
240
241 /**
242 * <!-- begin-user-doc -->
243 * <!-- end-user-doc -->
244 * @generated
245 */
246 @Override
247 public Object eGet(int featureID, boolean resolve, boolean coreType)
248 {
249 switch (featureID)
250 {
251 case SolverLanguagePackage.PREDICATE__IS_ERROR:
252 return isIsError();
253 case SolverLanguagePackage.PREDICATE__SYMBOL:
254 return getSymbol();
255 case SolverLanguagePackage.PREDICATE__PARAMETERS:
256 return getParameters();
257 case SolverLanguagePackage.PREDICATE__BODIES:
258 return getBodies();
259 }
260 return super.eGet(featureID, resolve, coreType);
261 }
262
263 /**
264 * <!-- begin-user-doc -->
265 * <!-- end-user-doc -->
266 * @generated
267 */
268 @SuppressWarnings("unchecked")
269 @Override
270 public void eSet(int featureID, Object newValue)
271 {
272 switch (featureID)
273 {
274 case SolverLanguagePackage.PREDICATE__IS_ERROR:
275 setIsError((Boolean)newValue);
276 return;
277 case SolverLanguagePackage.PREDICATE__SYMBOL:
278 setSymbol((ModelSymbol)newValue);
279 return;
280 case SolverLanguagePackage.PREDICATE__PARAMETERS:
281 getParameters().clear();
282 getParameters().addAll((Collection<? extends Parameter>)newValue);
283 return;
284 case SolverLanguagePackage.PREDICATE__BODIES:
285 getBodies().clear();
286 getBodies().addAll((Collection<? extends PatternBody>)newValue);
287 return;
288 }
289 super.eSet(featureID, newValue);
290 }
291
292 /**
293 * <!-- begin-user-doc -->
294 * <!-- end-user-doc -->
295 * @generated
296 */
297 @Override
298 public void eUnset(int featureID)
299 {
300 switch (featureID)
301 {
302 case SolverLanguagePackage.PREDICATE__IS_ERROR:
303 setIsError(IS_ERROR_EDEFAULT);
304 return;
305 case SolverLanguagePackage.PREDICATE__SYMBOL:
306 setSymbol((ModelSymbol)null);
307 return;
308 case SolverLanguagePackage.PREDICATE__PARAMETERS:
309 getParameters().clear();
310 return;
311 case SolverLanguagePackage.PREDICATE__BODIES:
312 getBodies().clear();
313 return;
314 }
315 super.eUnset(featureID);
316 }
317
318 /**
319 * <!-- begin-user-doc -->
320 * <!-- end-user-doc -->
321 * @generated
322 */
323 @Override
324 public boolean eIsSet(int featureID)
325 {
326 switch (featureID)
327 {
328 case SolverLanguagePackage.PREDICATE__IS_ERROR:
329 return isError != IS_ERROR_EDEFAULT;
330 case SolverLanguagePackage.PREDICATE__SYMBOL:
331 return symbol != null;
332 case SolverLanguagePackage.PREDICATE__PARAMETERS:
333 return parameters != null && !parameters.isEmpty();
334 case SolverLanguagePackage.PREDICATE__BODIES:
335 return bodies != null && !bodies.isEmpty();
336 }
337 return super.eIsSet(featureID);
338 }
339
340 /**
341 * <!-- begin-user-doc -->
342 * <!-- end-user-doc -->
343 * @generated
344 */
345 @Override
346 public String toString()
347 {
348 if (eIsProxy()) return super.toString();
349
350 StringBuilder result = new StringBuilder(super.toString());
351 result.append(" (isError: ");
352 result.append(isError);
353 result.append(')');
354 return result.toString();
355 }
356
357} //PredicateImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ProblemImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ProblemImpl.java
index e5cc3585..744e604d 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ProblemImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ProblemImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealSymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealSymbolImpl.java
deleted file mode 100644
index 8cfd0980..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealSymbolImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Real Symbol</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class RealSymbolImpl extends DataSymbolImpl implements RealSymbol
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected RealSymbolImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.REAL_SYMBOL;
39 }
40
41} //RealSymbolImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReferenceImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReferenceImpl.java
new file mode 100644
index 00000000..be44c0e9
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReferenceImpl.java
@@ -0,0 +1,175 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.InternalEObject;
10
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
12
13import org.eclipse.viatra.solver.language.solverLanguage.NamedElement;
14import org.eclipse.viatra.solver.language.solverLanguage.Reference;
15import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Reference</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl#getReferred <em>Referred</em>}</li>
26 * </ul>
27 *
28 * @generated
29 */
30public class ReferenceImpl extends ExpressionImpl implements Reference
31{
32 /**
33 * The cached value of the '{@link #getReferred() <em>Referred</em>}' reference.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @see #getReferred()
37 * @generated
38 * @ordered
39 */
40 protected NamedElement referred;
41
42 /**
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @generated
46 */
47 protected ReferenceImpl()
48 {
49 super();
50 }
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 @Override
58 protected EClass eStaticClass()
59 {
60 return SolverLanguagePackage.Literals.REFERENCE;
61 }
62
63 /**
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 @Override
69 public NamedElement getReferred()
70 {
71 if (referred != null && referred.eIsProxy())
72 {
73 InternalEObject oldReferred = (InternalEObject)referred;
74 referred = (NamedElement)eResolveProxy(oldReferred);
75 if (referred != oldReferred)
76 {
77 if (eNotificationRequired())
78 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.REFERENCE__REFERRED, oldReferred, referred));
79 }
80 }
81 return referred;
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 public NamedElement basicGetReferred()
90 {
91 return referred;
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 @Override
100 public void setReferred(NamedElement newReferred)
101 {
102 NamedElement oldReferred = referred;
103 referred = newReferred;
104 if (eNotificationRequired())
105 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.REFERENCE__REFERRED, oldReferred, referred));
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 @Override
114 public Object eGet(int featureID, boolean resolve, boolean coreType)
115 {
116 switch (featureID)
117 {
118 case SolverLanguagePackage.REFERENCE__REFERRED:
119 if (resolve) return getReferred();
120 return basicGetReferred();
121 }
122 return super.eGet(featureID, resolve, coreType);
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public void eSet(int featureID, Object newValue)
132 {
133 switch (featureID)
134 {
135 case SolverLanguagePackage.REFERENCE__REFERRED:
136 setReferred((NamedElement)newValue);
137 return;
138 }
139 super.eSet(featureID, newValue);
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public void eUnset(int featureID)
149 {
150 switch (featureID)
151 {
152 case SolverLanguagePackage.REFERENCE__REFERRED:
153 setReferred((NamedElement)null);
154 return;
155 }
156 super.eUnset(featureID);
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 @Override
165 public boolean eIsSet(int featureID)
166 {
167 switch (featureID)
168 {
169 case SolverLanguagePackage.REFERENCE__REFERRED:
170 return referred != null;
171 }
172 return super.eIsSet(featureID);
173 }
174
175} //ReferenceImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReflexiveClosureImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReflexiveClosureImpl.java
deleted file mode 100644
index 111b48cb..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReflexiveClosureImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure;
9import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>Reflexive Closure</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class ReflexiveClosureImpl extends ClosureTypeImpl implements ReflexiveClosure
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected ReflexiveClosureImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.REFLEXIVE_CLOSURE;
39 }
40
41} //ReflexiveClosureImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ScopeDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ScopeDefinitionImpl.java
new file mode 100644
index 00000000..be109307
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ScopeDefinitionImpl.java
@@ -0,0 +1,175 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.InternalEObject;
10
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
12
13import org.eclipse.viatra.solver.language.solverLanguage.NamedElement;
14import org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition;
15import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Scope Definition</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl#getType <em>Type</em>}</li>
26 * </ul>
27 *
28 * @generated
29 */
30public class ScopeDefinitionImpl extends StatementImpl implements ScopeDefinition
31{
32 /**
33 * The cached value of the '{@link #getType() <em>Type</em>}' reference.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @see #getType()
37 * @generated
38 * @ordered
39 */
40 protected NamedElement type;
41
42 /**
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @generated
46 */
47 protected ScopeDefinitionImpl()
48 {
49 super();
50 }
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 @Override
58 protected EClass eStaticClass()
59 {
60 return SolverLanguagePackage.Literals.SCOPE_DEFINITION;
61 }
62
63 /**
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 @Override
69 public NamedElement getType()
70 {
71 if (type != null && type.eIsProxy())
72 {
73 InternalEObject oldType = (InternalEObject)type;
74 type = (NamedElement)eResolveProxy(oldType);
75 if (type != oldType)
76 {
77 if (eNotificationRequired())
78 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.SCOPE_DEFINITION__TYPE, oldType, type));
79 }
80 }
81 return type;
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 public NamedElement basicGetType()
90 {
91 return type;
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 @Override
100 public void setType(NamedElement newType)
101 {
102 NamedElement oldType = type;
103 type = newType;
104 if (eNotificationRequired())
105 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.SCOPE_DEFINITION__TYPE, oldType, type));
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 @Override
114 public Object eGet(int featureID, boolean resolve, boolean coreType)
115 {
116 switch (featureID)
117 {
118 case SolverLanguagePackage.SCOPE_DEFINITION__TYPE:
119 if (resolve) return getType();
120 return basicGetType();
121 }
122 return super.eGet(featureID, resolve, coreType);
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public void eSet(int featureID, Object newValue)
132 {
133 switch (featureID)
134 {
135 case SolverLanguagePackage.SCOPE_DEFINITION__TYPE:
136 setType((NamedElement)newValue);
137 return;
138 }
139 super.eSet(featureID, newValue);
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public void eUnset(int featureID)
149 {
150 switch (featureID)
151 {
152 case SolverLanguagePackage.SCOPE_DEFINITION__TYPE:
153 setType((NamedElement)null);
154 return;
155 }
156 super.eUnset(featureID);
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 @Override
165 public boolean eIsSet(int featureID)
166 {
167 switch (featureID)
168 {
169 case SolverLanguagePackage.SCOPE_DEFINITION__TYPE:
170 return type != null;
171 }
172 return super.eIsSet(featureID);
173 }
174
175} //ScopeDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguageFactoryImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguageFactoryImpl.java
index 5cb1dcdc..8a5976c2 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguageFactoryImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguageFactoryImpl.java
@@ -1,9 +1,10 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
6import org.eclipse.emf.ecore.EClass; 6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EDataType;
7import org.eclipse.emf.ecore.EObject; 8import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage; 9import org.eclipse.emf.ecore.EPackage;
9 10
@@ -11,58 +12,7 @@ import org.eclipse.emf.ecore.impl.EFactoryImpl;
11 12
12import org.eclipse.emf.ecore.plugin.EcorePlugin; 13import org.eclipse.emf.ecore.plugin.EcorePlugin;
13 14
14import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; 15import org.eclipse.viatra.solver.language.solverLanguage.*;
15import org.eclipse.viatra.solver.language.solverLanguage.AllObjects;
16import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation;
17import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse;
18import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject;
19import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol;
20import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue;
21import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue;
22import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation;
23import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation;
24import org.eclipse.viatra.solver.language.solverLanguage.ClosureType;
25import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject;
26import org.eclipse.viatra.solver.language.solverLanguage.Constraint;
27import org.eclipse.viatra.solver.language.solverLanguage.DataObject;
28import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol;
29import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation;
30import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation;
31import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol;
32import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol;
33import org.eclipse.viatra.solver.language.solverLanguage.False;
34import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation;
35import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation;
36import org.eclipse.viatra.solver.language.solverLanguage.IntObject;
37import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol;
38import org.eclipse.viatra.solver.language.solverLanguage.Interpretation;
39import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure;
40import org.eclipse.viatra.solver.language.solverLanguage.Literal;
41import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol;
42import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition;
43import org.eclipse.viatra.solver.language.solverLanguage.NamedObject;
44import org.eclipse.viatra.solver.language.solverLanguage.Negative;
45import org.eclipse.viatra.solver.language.solverLanguage.Parameter;
46import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol;
47import org.eclipse.viatra.solver.language.solverLanguage.PatternBody;
48import org.eclipse.viatra.solver.language.solverLanguage.Polarity;
49import org.eclipse.viatra.solver.language.solverLanguage.Positive;
50import org.eclipse.viatra.solver.language.solverLanguage.Predicate;
51import org.eclipse.viatra.solver.language.solverLanguage.Problem;
52import org.eclipse.viatra.solver.language.solverLanguage.RealObject;
53import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol;
54import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure;
55import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguageFactory;
56import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
57import org.eclipse.viatra.solver.language.solverLanguage.Statement;
58import org.eclipse.viatra.solver.language.solverLanguage.StringObject;
59import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol;
60import org.eclipse.viatra.solver.language.solverLanguage.Symbol;
61import org.eclipse.viatra.solver.language.solverLanguage.True;
62import org.eclipse.viatra.solver.language.solverLanguage.TruthValue;
63import org.eclipse.viatra.solver.language.solverLanguage.Unknown;
64import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject;
65import org.eclipse.viatra.solver.language.solverLanguage.Variable;
66 16
67/** 17/**
68 * <!-- begin-user-doc --> 18 * <!-- begin-user-doc -->
@@ -118,56 +68,50 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
118 { 68 {
119 case SolverLanguagePackage.PROBLEM: return createProblem(); 69 case SolverLanguagePackage.PROBLEM: return createProblem();
120 case SolverLanguagePackage.STATEMENT: return createStatement(); 70 case SolverLanguagePackage.STATEMENT: return createStatement();
121 case SolverLanguagePackage.BOOLEAN_VALUE: return createBooleanValue(); 71 case SolverLanguagePackage.PREDICATE_DEFINITION: return createPredicateDefinition();
122 case SolverLanguagePackage.TRUTH_VALUE: return createTruthValue(); 72 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION: return createUnnamedErrorPrediateDefinition();
123 case SolverLanguagePackage.INTERPRETATION: return createInterpretation(); 73 case SolverLanguagePackage.DEFAULT_DEFINITION: return createDefaultDefinition();
124 case SolverLanguagePackage.BASIC_INTERPRETATION: return createBasicInterpretation(); 74 case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION: return createExternPredicateDefinition();
125 case SolverLanguagePackage.SYMBOL: return createSymbol(); 75 case SolverLanguagePackage.METRIC_DEFINITION: return createMetricDefinition();
126 case SolverLanguagePackage.MODEL_SYMBOL: return createModelSymbol(); 76 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION: return createExternMetricDefinition();
127 case SolverLanguagePackage.PARTIALITY_SYMBOL: return createPartialitySymbol(); 77 case SolverLanguagePackage.EXPRESSION: return createExpression();
128 case SolverLanguagePackage.EXIST_SYMBOL: return createExistSymbol(); 78 case SolverLanguagePackage.IF_ELSE: return createIfElse();
129 case SolverLanguagePackage.EQUALS_SYMBOL: return createEqualsSymbol(); 79 case SolverLanguagePackage.CASE: return createCase();
130 case SolverLanguagePackage.DATA_SYMBOL: return createDataSymbol(); 80 case SolverLanguagePackage.COUNT: return createCount();
131 case SolverLanguagePackage.BOOLEAN_SYMBOL: return createBooleanSymbol(); 81 case SolverLanguagePackage.AGGREGATION: return createAggregation();
132 case SolverLanguagePackage.INTEGER_SYMBOL: return createIntegerSymbol(); 82 case SolverLanguagePackage.CALL: return createCall();
133 case SolverLanguagePackage.REAL_SYMBOL: return createRealSymbol(); 83 case SolverLanguagePackage.ARGUMENT_LIST: return createArgumentList();
134 case SolverLanguagePackage.STRING_SYMBOL: return createStringSymbol(); 84 case SolverLanguagePackage.ARGUMENT: return createArgument();
135 case SolverLanguagePackage.COMPLEX_OBJECT: return createComplexObject(); 85 case SolverLanguagePackage.EXPRESSION_ARGUMENT: return createExpressionArgument();
136 case SolverLanguagePackage.OBJECT: return createObject(); 86 case SolverLanguagePackage.STAR_ARGUMENT: return createStarArgument();
137 case SolverLanguagePackage.NAMED_OBJECT: return createNamedObject(); 87 case SolverLanguagePackage.TYPED_ARGUMENT: return createTypedArgument();
138 case SolverLanguagePackage.UNNAMED_OBJECT: return createUnnamedObject(); 88 case SolverLanguagePackage.TYPED_STAR_ARGUMENT: return createTypedStarArgument();
139 case SolverLanguagePackage.DATA_OBJECT: return createDataObject(); 89 case SolverLanguagePackage.REFERENCE: return createReference();
140 case SolverLanguagePackage.BOOLEAN_OBJECT: return createBooleanObject(); 90 case SolverLanguagePackage.INTERVAL: return createInterval();
141 case SolverLanguagePackage.INT_OBJECT: return createIntObject();
142 case SolverLanguagePackage.REAL_OBJECT: return createRealObject();
143 case SolverLanguagePackage.STRING_OBJECT: return createStringObject();
144 case SolverLanguagePackage.PREDICATE: return createPredicate();
145 case SolverLanguagePackage.PARAMETER: return createParameter();
146 case SolverLanguagePackage.PATTERN_BODY: return createPatternBody();
147 case SolverLanguagePackage.POLARITY: return createPolarity();
148 case SolverLanguagePackage.CONSTRAINT: return createConstraint();
149 case SolverLanguagePackage.CLOSURE_TYPE: return createClosureType();
150 case SolverLanguagePackage.LITERAL: return createLiteral(); 91 case SolverLanguagePackage.LITERAL: return createLiteral();
151 case SolverLanguagePackage.VARIABLE: return createVariable(); 92 case SolverLanguagePackage.LOGIC_LITERAL: return createLogicLiteral();
152 case SolverLanguagePackage.ALL_INSTANCES: return createAllInstances(); 93 case SolverLanguagePackage.NUMERIC_LITERAL: return createNumericLiteral();
153 case SolverLanguagePackage.ALL_OBJECTS: return createAllObjects(); 94 case SolverLanguagePackage.INFINITY_LITERAL: return createInfinityLiteral();
154 case SolverLanguagePackage.DEFAULT_INTERPRETATION: return createDefaultInterpretation(); 95 case SolverLanguagePackage.EMPTY_INTERVAL_LITERAL: return createEmptyIntervalLiteral();
155 case SolverLanguagePackage.CD_INTERPRETATION: return createCDInterpretation(); 96 case SolverLanguagePackage.STRING_LITERAL: return createStringLiteral();
156 case SolverLanguagePackage.CLASS_INTERPRETATION: return createClassInterpretation(); 97 case SolverLanguagePackage.MEMBER_DEFINITION: return createMemberDefinition();
157 case SolverLanguagePackage.ENUM_INTERPRETATION: return createEnumInterpretation(); 98 case SolverLanguagePackage.MULTIPLICITY: return createMultiplicity();
158 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION: return createFieldRelationInterpretation(); 99 case SolverLanguagePackage.MANY_MULTIPLICITY: return createManyMultiplicity();
159 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION: return createGlobalRelationInterpretation(); 100 case SolverLanguagePackage.EXACT_MULTIPLICITY: return createExactMultiplicity();
160 case SolverLanguagePackage.MULTIPLICITY_DEFINITION: return createMultiplicityDefinition(); 101 case SolverLanguagePackage.BOUNDED_MULTIPLICITY: return createBoundedMultiplicity();
161 case SolverLanguagePackage.BOOLEAN_TRUE: return createBooleanTrue(); 102 case SolverLanguagePackage.SCOPE_DEFINITION: return createScopeDefinition();
162 case SolverLanguagePackage.BOOLEAN_FALSE: return createBooleanFalse(); 103 case SolverLanguagePackage.EXACT_SCOPE_DEFINITION: return createExactScopeDefinition();
163 case SolverLanguagePackage.TRUE: return createTrue(); 104 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION: return createBoundedScopeDefinition();
164 case SolverLanguagePackage.FALSE: return createFalse(); 105 case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION: return createLowerBoundedScopeDefinition();
165 case SolverLanguagePackage.UNKNOWN: return createUnknown(); 106 case SolverLanguagePackage.OBJECTIVE_DEFINITION: return createObjectiveDefinition();
166 case SolverLanguagePackage.ERROR: return createError(); 107 case SolverLanguagePackage.NAMED_ELEMENT: return createNamedElement();
167 case SolverLanguagePackage.POSITIVE: return createPositive(); 108 case SolverLanguagePackage.ASSERTION: return createAssertion();
168 case SolverLanguagePackage.NEGATIVE: return createNegative(); 109 case SolverLanguagePackage.DISJUNCTION: return createDisjunction();
169 case SolverLanguagePackage.REFLEXIVE_CLOSURE: return createReflexiveClosure(); 110 case SolverLanguagePackage.SWITCH: return createSwitch();
170 case SolverLanguagePackage.IRREFLEXIVE_CLOSURE: return createIrreflexiveClosure(); 111 case SolverLanguagePackage.CONJUNCTION: return createConjunction();
112 case SolverLanguagePackage.COMPARISON: return createComparison();
113 case SolverLanguagePackage.BINARY_EXPRESSION: return createBinaryExpression();
114 case SolverLanguagePackage.UNARY_EXPRESSION: return createUnaryExpression();
171 default: 115 default:
172 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); 116 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
173 } 117 }
@@ -179,6 +123,60 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
179 * @generated 123 * @generated
180 */ 124 */
181 @Override 125 @Override
126 public Object createFromString(EDataType eDataType, String initialValue)
127 {
128 switch (eDataType.getClassifierID())
129 {
130 case SolverLanguagePackage.METRIC_TYPE:
131 return createMetricTypeFromString(eDataType, initialValue);
132 case SolverLanguagePackage.BINARY_OPERATOR:
133 return createBinaryOperatorFromString(eDataType, initialValue);
134 case SolverLanguagePackage.UNARY_OP:
135 return createUnaryOpFromString(eDataType, initialValue);
136 case SolverLanguagePackage.AGGREGATION_OP:
137 return createAggregationOpFromString(eDataType, initialValue);
138 case SolverLanguagePackage.LOGIC_VALUE:
139 return createLogicValueFromString(eDataType, initialValue);
140 case SolverLanguagePackage.OBJECTIVE_KIND:
141 return createObjectiveKindFromString(eDataType, initialValue);
142 default:
143 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
144 }
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public String convertToString(EDataType eDataType, Object instanceValue)
154 {
155 switch (eDataType.getClassifierID())
156 {
157 case SolverLanguagePackage.METRIC_TYPE:
158 return convertMetricTypeToString(eDataType, instanceValue);
159 case SolverLanguagePackage.BINARY_OPERATOR:
160 return convertBinaryOperatorToString(eDataType, instanceValue);
161 case SolverLanguagePackage.UNARY_OP:
162 return convertUnaryOpToString(eDataType, instanceValue);
163 case SolverLanguagePackage.AGGREGATION_OP:
164 return convertAggregationOpToString(eDataType, instanceValue);
165 case SolverLanguagePackage.LOGIC_VALUE:
166 return convertLogicValueToString(eDataType, instanceValue);
167 case SolverLanguagePackage.OBJECTIVE_KIND:
168 return convertObjectiveKindToString(eDataType, instanceValue);
169 default:
170 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
171 }
172 }
173
174 /**
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @generated
178 */
179 @Override
182 public Problem createProblem() 180 public Problem createProblem()
183 { 181 {
184 ProblemImpl problem = new ProblemImpl(); 182 ProblemImpl problem = new ProblemImpl();
@@ -203,10 +201,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
203 * @generated 201 * @generated
204 */ 202 */
205 @Override 203 @Override
206 public BooleanValue createBooleanValue() 204 public PredicateDefinition createPredicateDefinition()
207 { 205 {
208 BooleanValueImpl booleanValue = new BooleanValueImpl(); 206 PredicateDefinitionImpl predicateDefinition = new PredicateDefinitionImpl();
209 return booleanValue; 207 return predicateDefinition;
210 } 208 }
211 209
212 /** 210 /**
@@ -215,10 +213,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
215 * @generated 213 * @generated
216 */ 214 */
217 @Override 215 @Override
218 public TruthValue createTruthValue() 216 public UnnamedErrorPrediateDefinition createUnnamedErrorPrediateDefinition()
219 { 217 {
220 TruthValueImpl truthValue = new TruthValueImpl(); 218 UnnamedErrorPrediateDefinitionImpl unnamedErrorPrediateDefinition = new UnnamedErrorPrediateDefinitionImpl();
221 return truthValue; 219 return unnamedErrorPrediateDefinition;
222 } 220 }
223 221
224 /** 222 /**
@@ -227,10 +225,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
227 * @generated 225 * @generated
228 */ 226 */
229 @Override 227 @Override
230 public Interpretation createInterpretation() 228 public DefaultDefinition createDefaultDefinition()
231 { 229 {
232 InterpretationImpl interpretation = new InterpretationImpl(); 230 DefaultDefinitionImpl defaultDefinition = new DefaultDefinitionImpl();
233 return interpretation; 231 return defaultDefinition;
234 } 232 }
235 233
236 /** 234 /**
@@ -239,10 +237,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
239 * @generated 237 * @generated
240 */ 238 */
241 @Override 239 @Override
242 public BasicInterpretation createBasicInterpretation() 240 public ExternPredicateDefinition createExternPredicateDefinition()
243 { 241 {
244 BasicInterpretationImpl basicInterpretation = new BasicInterpretationImpl(); 242 ExternPredicateDefinitionImpl externPredicateDefinition = new ExternPredicateDefinitionImpl();
245 return basicInterpretation; 243 return externPredicateDefinition;
246 } 244 }
247 245
248 /** 246 /**
@@ -251,10 +249,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
251 * @generated 249 * @generated
252 */ 250 */
253 @Override 251 @Override
254 public Symbol createSymbol() 252 public MetricDefinition createMetricDefinition()
255 { 253 {
256 SymbolImpl symbol = new SymbolImpl(); 254 MetricDefinitionImpl metricDefinition = new MetricDefinitionImpl();
257 return symbol; 255 return metricDefinition;
258 } 256 }
259 257
260 /** 258 /**
@@ -263,10 +261,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
263 * @generated 261 * @generated
264 */ 262 */
265 @Override 263 @Override
266 public ModelSymbol createModelSymbol() 264 public ExternMetricDefinition createExternMetricDefinition()
267 { 265 {
268 ModelSymbolImpl modelSymbol = new ModelSymbolImpl(); 266 ExternMetricDefinitionImpl externMetricDefinition = new ExternMetricDefinitionImpl();
269 return modelSymbol; 267 return externMetricDefinition;
270 } 268 }
271 269
272 /** 270 /**
@@ -275,10 +273,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
275 * @generated 273 * @generated
276 */ 274 */
277 @Override 275 @Override
278 public PartialitySymbol createPartialitySymbol() 276 public Expression createExpression()
279 { 277 {
280 PartialitySymbolImpl partialitySymbol = new PartialitySymbolImpl(); 278 ExpressionImpl expression = new ExpressionImpl();
281 return partialitySymbol; 279 return expression;
282 } 280 }
283 281
284 /** 282 /**
@@ -287,10 +285,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
287 * @generated 285 * @generated
288 */ 286 */
289 @Override 287 @Override
290 public ExistSymbol createExistSymbol() 288 public IfElse createIfElse()
291 { 289 {
292 ExistSymbolImpl existSymbol = new ExistSymbolImpl(); 290 IfElseImpl ifElse = new IfElseImpl();
293 return existSymbol; 291 return ifElse;
294 } 292 }
295 293
296 /** 294 /**
@@ -299,10 +297,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
299 * @generated 297 * @generated
300 */ 298 */
301 @Override 299 @Override
302 public EqualsSymbol createEqualsSymbol() 300 public Case createCase()
303 { 301 {
304 EqualsSymbolImpl equalsSymbol = new EqualsSymbolImpl(); 302 CaseImpl case_ = new CaseImpl();
305 return equalsSymbol; 303 return case_;
306 } 304 }
307 305
308 /** 306 /**
@@ -311,10 +309,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
311 * @generated 309 * @generated
312 */ 310 */
313 @Override 311 @Override
314 public DataSymbol createDataSymbol() 312 public Count createCount()
315 { 313 {
316 DataSymbolImpl dataSymbol = new DataSymbolImpl(); 314 CountImpl count = new CountImpl();
317 return dataSymbol; 315 return count;
318 } 316 }
319 317
320 /** 318 /**
@@ -323,10 +321,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
323 * @generated 321 * @generated
324 */ 322 */
325 @Override 323 @Override
326 public BooleanSymbol createBooleanSymbol() 324 public Aggregation createAggregation()
327 { 325 {
328 BooleanSymbolImpl booleanSymbol = new BooleanSymbolImpl(); 326 AggregationImpl aggregation = new AggregationImpl();
329 return booleanSymbol; 327 return aggregation;
330 } 328 }
331 329
332 /** 330 /**
@@ -335,10 +333,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
335 * @generated 333 * @generated
336 */ 334 */
337 @Override 335 @Override
338 public IntegerSymbol createIntegerSymbol() 336 public Call createCall()
339 { 337 {
340 IntegerSymbolImpl integerSymbol = new IntegerSymbolImpl(); 338 CallImpl call = new CallImpl();
341 return integerSymbol; 339 return call;
342 } 340 }
343 341
344 /** 342 /**
@@ -347,10 +345,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
347 * @generated 345 * @generated
348 */ 346 */
349 @Override 347 @Override
350 public RealSymbol createRealSymbol() 348 public ArgumentList createArgumentList()
351 { 349 {
352 RealSymbolImpl realSymbol = new RealSymbolImpl(); 350 ArgumentListImpl argumentList = new ArgumentListImpl();
353 return realSymbol; 351 return argumentList;
354 } 352 }
355 353
356 /** 354 /**
@@ -359,10 +357,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
359 * @generated 357 * @generated
360 */ 358 */
361 @Override 359 @Override
362 public StringSymbol createStringSymbol() 360 public Argument createArgument()
363 { 361 {
364 StringSymbolImpl stringSymbol = new StringSymbolImpl(); 362 ArgumentImpl argument = new ArgumentImpl();
365 return stringSymbol; 363 return argument;
366 } 364 }
367 365
368 /** 366 /**
@@ -371,10 +369,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
371 * @generated 369 * @generated
372 */ 370 */
373 @Override 371 @Override
374 public ComplexObject createComplexObject() 372 public ExpressionArgument createExpressionArgument()
375 { 373 {
376 ComplexObjectImpl complexObject = new ComplexObjectImpl(); 374 ExpressionArgumentImpl expressionArgument = new ExpressionArgumentImpl();
377 return complexObject; 375 return expressionArgument;
378 } 376 }
379 377
380 /** 378 /**
@@ -383,10 +381,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
383 * @generated 381 * @generated
384 */ 382 */
385 @Override 383 @Override
386 public org.eclipse.viatra.solver.language.solverLanguage.Object createObject() 384 public StarArgument createStarArgument()
387 { 385 {
388 ObjectImpl object = new ObjectImpl(); 386 StarArgumentImpl starArgument = new StarArgumentImpl();
389 return object; 387 return starArgument;
390 } 388 }
391 389
392 /** 390 /**
@@ -395,10 +393,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
395 * @generated 393 * @generated
396 */ 394 */
397 @Override 395 @Override
398 public NamedObject createNamedObject() 396 public TypedArgument createTypedArgument()
399 { 397 {
400 NamedObjectImpl namedObject = new NamedObjectImpl(); 398 TypedArgumentImpl typedArgument = new TypedArgumentImpl();
401 return namedObject; 399 return typedArgument;
402 } 400 }
403 401
404 /** 402 /**
@@ -407,10 +405,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
407 * @generated 405 * @generated
408 */ 406 */
409 @Override 407 @Override
410 public UnnamedObject createUnnamedObject() 408 public TypedStarArgument createTypedStarArgument()
411 { 409 {
412 UnnamedObjectImpl unnamedObject = new UnnamedObjectImpl(); 410 TypedStarArgumentImpl typedStarArgument = new TypedStarArgumentImpl();
413 return unnamedObject; 411 return typedStarArgument;
414 } 412 }
415 413
416 /** 414 /**
@@ -419,10 +417,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
419 * @generated 417 * @generated
420 */ 418 */
421 @Override 419 @Override
422 public DataObject createDataObject() 420 public Reference createReference()
423 { 421 {
424 DataObjectImpl dataObject = new DataObjectImpl(); 422 ReferenceImpl reference = new ReferenceImpl();
425 return dataObject; 423 return reference;
426 } 424 }
427 425
428 /** 426 /**
@@ -431,10 +429,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
431 * @generated 429 * @generated
432 */ 430 */
433 @Override 431 @Override
434 public BooleanObject createBooleanObject() 432 public Interval createInterval()
435 { 433 {
436 BooleanObjectImpl booleanObject = new BooleanObjectImpl(); 434 IntervalImpl interval = new IntervalImpl();
437 return booleanObject; 435 return interval;
438 } 436 }
439 437
440 /** 438 /**
@@ -443,10 +441,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
443 * @generated 441 * @generated
444 */ 442 */
445 @Override 443 @Override
446 public IntObject createIntObject() 444 public Literal createLiteral()
447 { 445 {
448 IntObjectImpl intObject = new IntObjectImpl(); 446 LiteralImpl literal = new LiteralImpl();
449 return intObject; 447 return literal;
450 } 448 }
451 449
452 /** 450 /**
@@ -455,10 +453,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
455 * @generated 453 * @generated
456 */ 454 */
457 @Override 455 @Override
458 public RealObject createRealObject() 456 public LogicLiteral createLogicLiteral()
459 { 457 {
460 RealObjectImpl realObject = new RealObjectImpl(); 458 LogicLiteralImpl logicLiteral = new LogicLiteralImpl();
461 return realObject; 459 return logicLiteral;
462 } 460 }
463 461
464 /** 462 /**
@@ -467,10 +465,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
467 * @generated 465 * @generated
468 */ 466 */
469 @Override 467 @Override
470 public StringObject createStringObject() 468 public NumericLiteral createNumericLiteral()
471 { 469 {
472 StringObjectImpl stringObject = new StringObjectImpl(); 470 NumericLiteralImpl numericLiteral = new NumericLiteralImpl();
473 return stringObject; 471 return numericLiteral;
474 } 472 }
475 473
476 /** 474 /**
@@ -479,10 +477,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
479 * @generated 477 * @generated
480 */ 478 */
481 @Override 479 @Override
482 public Predicate createPredicate() 480 public InfinityLiteral createInfinityLiteral()
483 { 481 {
484 PredicateImpl predicate = new PredicateImpl(); 482 InfinityLiteralImpl infinityLiteral = new InfinityLiteralImpl();
485 return predicate; 483 return infinityLiteral;
486 } 484 }
487 485
488 /** 486 /**
@@ -491,10 +489,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
491 * @generated 489 * @generated
492 */ 490 */
493 @Override 491 @Override
494 public Parameter createParameter() 492 public EmptyIntervalLiteral createEmptyIntervalLiteral()
495 { 493 {
496 ParameterImpl parameter = new ParameterImpl(); 494 EmptyIntervalLiteralImpl emptyIntervalLiteral = new EmptyIntervalLiteralImpl();
497 return parameter; 495 return emptyIntervalLiteral;
498 } 496 }
499 497
500 /** 498 /**
@@ -503,10 +501,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
503 * @generated 501 * @generated
504 */ 502 */
505 @Override 503 @Override
506 public PatternBody createPatternBody() 504 public StringLiteral createStringLiteral()
507 { 505 {
508 PatternBodyImpl patternBody = new PatternBodyImpl(); 506 StringLiteralImpl stringLiteral = new StringLiteralImpl();
509 return patternBody; 507 return stringLiteral;
510 } 508 }
511 509
512 /** 510 /**
@@ -515,10 +513,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
515 * @generated 513 * @generated
516 */ 514 */
517 @Override 515 @Override
518 public Polarity createPolarity() 516 public MemberDefinition createMemberDefinition()
519 { 517 {
520 PolarityImpl polarity = new PolarityImpl(); 518 MemberDefinitionImpl memberDefinition = new MemberDefinitionImpl();
521 return polarity; 519 return memberDefinition;
522 } 520 }
523 521
524 /** 522 /**
@@ -527,10 +525,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
527 * @generated 525 * @generated
528 */ 526 */
529 @Override 527 @Override
530 public Constraint createConstraint() 528 public Multiplicity createMultiplicity()
531 { 529 {
532 ConstraintImpl constraint = new ConstraintImpl(); 530 MultiplicityImpl multiplicity = new MultiplicityImpl();
533 return constraint; 531 return multiplicity;
534 } 532 }
535 533
536 /** 534 /**
@@ -539,10 +537,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
539 * @generated 537 * @generated
540 */ 538 */
541 @Override 539 @Override
542 public ClosureType createClosureType() 540 public ManyMultiplicity createManyMultiplicity()
543 { 541 {
544 ClosureTypeImpl closureType = new ClosureTypeImpl(); 542 ManyMultiplicityImpl manyMultiplicity = new ManyMultiplicityImpl();
545 return closureType; 543 return manyMultiplicity;
546 } 544 }
547 545
548 /** 546 /**
@@ -551,10 +549,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
551 * @generated 549 * @generated
552 */ 550 */
553 @Override 551 @Override
554 public Literal createLiteral() 552 public ExactMultiplicity createExactMultiplicity()
555 { 553 {
556 LiteralImpl literal = new LiteralImpl(); 554 ExactMultiplicityImpl exactMultiplicity = new ExactMultiplicityImpl();
557 return literal; 555 return exactMultiplicity;
558 } 556 }
559 557
560 /** 558 /**
@@ -563,10 +561,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
563 * @generated 561 * @generated
564 */ 562 */
565 @Override 563 @Override
566 public Variable createVariable() 564 public BoundedMultiplicity createBoundedMultiplicity()
567 { 565 {
568 VariableImpl variable = new VariableImpl(); 566 BoundedMultiplicityImpl boundedMultiplicity = new BoundedMultiplicityImpl();
569 return variable; 567 return boundedMultiplicity;
570 } 568 }
571 569
572 /** 570 /**
@@ -575,10 +573,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
575 * @generated 573 * @generated
576 */ 574 */
577 @Override 575 @Override
578 public AllInstances createAllInstances() 576 public ScopeDefinition createScopeDefinition()
579 { 577 {
580 AllInstancesImpl allInstances = new AllInstancesImpl(); 578 ScopeDefinitionImpl scopeDefinition = new ScopeDefinitionImpl();
581 return allInstances; 579 return scopeDefinition;
582 } 580 }
583 581
584 /** 582 /**
@@ -587,10 +585,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
587 * @generated 585 * @generated
588 */ 586 */
589 @Override 587 @Override
590 public AllObjects createAllObjects() 588 public ExactScopeDefinition createExactScopeDefinition()
591 { 589 {
592 AllObjectsImpl allObjects = new AllObjectsImpl(); 590 ExactScopeDefinitionImpl exactScopeDefinition = new ExactScopeDefinitionImpl();
593 return allObjects; 591 return exactScopeDefinition;
594 } 592 }
595 593
596 /** 594 /**
@@ -599,10 +597,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
599 * @generated 597 * @generated
600 */ 598 */
601 @Override 599 @Override
602 public DefaultInterpretation createDefaultInterpretation() 600 public BoundedScopeDefinition createBoundedScopeDefinition()
603 { 601 {
604 DefaultInterpretationImpl defaultInterpretation = new DefaultInterpretationImpl(); 602 BoundedScopeDefinitionImpl boundedScopeDefinition = new BoundedScopeDefinitionImpl();
605 return defaultInterpretation; 603 return boundedScopeDefinition;
606 } 604 }
607 605
608 /** 606 /**
@@ -611,10 +609,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
611 * @generated 609 * @generated
612 */ 610 */
613 @Override 611 @Override
614 public CDInterpretation createCDInterpretation() 612 public LowerBoundedScopeDefinition createLowerBoundedScopeDefinition()
615 { 613 {
616 CDInterpretationImpl cdInterpretation = new CDInterpretationImpl(); 614 LowerBoundedScopeDefinitionImpl lowerBoundedScopeDefinition = new LowerBoundedScopeDefinitionImpl();
617 return cdInterpretation; 615 return lowerBoundedScopeDefinition;
618 } 616 }
619 617
620 /** 618 /**
@@ -623,10 +621,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
623 * @generated 621 * @generated
624 */ 622 */
625 @Override 623 @Override
626 public ClassInterpretation createClassInterpretation() 624 public ObjectiveDefinition createObjectiveDefinition()
627 { 625 {
628 ClassInterpretationImpl classInterpretation = new ClassInterpretationImpl(); 626 ObjectiveDefinitionImpl objectiveDefinition = new ObjectiveDefinitionImpl();
629 return classInterpretation; 627 return objectiveDefinition;
630 } 628 }
631 629
632 /** 630 /**
@@ -635,10 +633,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
635 * @generated 633 * @generated
636 */ 634 */
637 @Override 635 @Override
638 public EnumInterpretation createEnumInterpretation() 636 public NamedElement createNamedElement()
639 { 637 {
640 EnumInterpretationImpl enumInterpretation = new EnumInterpretationImpl(); 638 NamedElementImpl namedElement = new NamedElementImpl();
641 return enumInterpretation; 639 return namedElement;
642 } 640 }
643 641
644 /** 642 /**
@@ -647,10 +645,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
647 * @generated 645 * @generated
648 */ 646 */
649 @Override 647 @Override
650 public FieldRelationInterpretation createFieldRelationInterpretation() 648 public Assertion createAssertion()
651 { 649 {
652 FieldRelationInterpretationImpl fieldRelationInterpretation = new FieldRelationInterpretationImpl(); 650 AssertionImpl assertion = new AssertionImpl();
653 return fieldRelationInterpretation; 651 return assertion;
654 } 652 }
655 653
656 /** 654 /**
@@ -659,10 +657,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
659 * @generated 657 * @generated
660 */ 658 */
661 @Override 659 @Override
662 public GlobalRelationInterpretation createGlobalRelationInterpretation() 660 public Disjunction createDisjunction()
663 { 661 {
664 GlobalRelationInterpretationImpl globalRelationInterpretation = new GlobalRelationInterpretationImpl(); 662 DisjunctionImpl disjunction = new DisjunctionImpl();
665 return globalRelationInterpretation; 663 return disjunction;
666 } 664 }
667 665
668 /** 666 /**
@@ -671,10 +669,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
671 * @generated 669 * @generated
672 */ 670 */
673 @Override 671 @Override
674 public MultiplicityDefinition createMultiplicityDefinition() 672 public Switch createSwitch()
675 { 673 {
676 MultiplicityDefinitionImpl multiplicityDefinition = new MultiplicityDefinitionImpl(); 674 SwitchImpl switch_ = new SwitchImpl();
677 return multiplicityDefinition; 675 return switch_;
678 } 676 }
679 677
680 /** 678 /**
@@ -683,10 +681,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
683 * @generated 681 * @generated
684 */ 682 */
685 @Override 683 @Override
686 public BooleanTrue createBooleanTrue() 684 public Conjunction createConjunction()
687 { 685 {
688 BooleanTrueImpl booleanTrue = new BooleanTrueImpl(); 686 ConjunctionImpl conjunction = new ConjunctionImpl();
689 return booleanTrue; 687 return conjunction;
690 } 688 }
691 689
692 /** 690 /**
@@ -695,10 +693,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
695 * @generated 693 * @generated
696 */ 694 */
697 @Override 695 @Override
698 public BooleanFalse createBooleanFalse() 696 public Comparison createComparison()
699 { 697 {
700 BooleanFalseImpl booleanFalse = new BooleanFalseImpl(); 698 ComparisonImpl comparison = new ComparisonImpl();
701 return booleanFalse; 699 return comparison;
702 } 700 }
703 701
704 /** 702 /**
@@ -707,10 +705,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
707 * @generated 705 * @generated
708 */ 706 */
709 @Override 707 @Override
710 public True createTrue() 708 public BinaryExpression createBinaryExpression()
711 { 709 {
712 TrueImpl true_ = new TrueImpl(); 710 BinaryExpressionImpl binaryExpression = new BinaryExpressionImpl();
713 return true_; 711 return binaryExpression;
714 } 712 }
715 713
716 /** 714 /**
@@ -719,10 +717,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
719 * @generated 717 * @generated
720 */ 718 */
721 @Override 719 @Override
722 public False createFalse() 720 public UnaryExpression createUnaryExpression()
723 { 721 {
724 FalseImpl false_ = new FalseImpl(); 722 UnaryExpressionImpl unaryExpression = new UnaryExpressionImpl();
725 return false_; 723 return unaryExpression;
726 } 724 }
727 725
728 /** 726 /**
@@ -730,11 +728,11 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
730 * <!-- end-user-doc --> 728 * <!-- end-user-doc -->
731 * @generated 729 * @generated
732 */ 730 */
733 @Override 731 public MetricType createMetricTypeFromString(EDataType eDataType, String initialValue)
734 public Unknown createUnknown()
735 { 732 {
736 UnknownImpl unknown = new UnknownImpl(); 733 MetricType result = MetricType.get(initialValue);
737 return unknown; 734 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
735 return result;
738 } 736 }
739 737
740 /** 738 /**
@@ -742,11 +740,9 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
742 * <!-- end-user-doc --> 740 * <!-- end-user-doc -->
743 * @generated 741 * @generated
744 */ 742 */
745 @Override 743 public String convertMetricTypeToString(EDataType eDataType, Object instanceValue)
746 public org.eclipse.viatra.solver.language.solverLanguage.Error createError()
747 { 744 {
748 ErrorImpl error = new ErrorImpl(); 745 return instanceValue == null ? null : instanceValue.toString();
749 return error;
750 } 746 }
751 747
752 /** 748 /**
@@ -754,11 +750,11 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
754 * <!-- end-user-doc --> 750 * <!-- end-user-doc -->
755 * @generated 751 * @generated
756 */ 752 */
757 @Override 753 public BinaryOperator createBinaryOperatorFromString(EDataType eDataType, String initialValue)
758 public Positive createPositive()
759 { 754 {
760 PositiveImpl positive = new PositiveImpl(); 755 BinaryOperator result = BinaryOperator.get(initialValue);
761 return positive; 756 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
757 return result;
762 } 758 }
763 759
764 /** 760 /**
@@ -766,11 +762,9 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
766 * <!-- end-user-doc --> 762 * <!-- end-user-doc -->
767 * @generated 763 * @generated
768 */ 764 */
769 @Override 765 public String convertBinaryOperatorToString(EDataType eDataType, Object instanceValue)
770 public Negative createNegative()
771 { 766 {
772 NegativeImpl negative = new NegativeImpl(); 767 return instanceValue == null ? null : instanceValue.toString();
773 return negative;
774 } 768 }
775 769
776 /** 770 /**
@@ -778,11 +772,11 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
778 * <!-- end-user-doc --> 772 * <!-- end-user-doc -->
779 * @generated 773 * @generated
780 */ 774 */
781 @Override 775 public UnaryOp createUnaryOpFromString(EDataType eDataType, String initialValue)
782 public ReflexiveClosure createReflexiveClosure()
783 { 776 {
784 ReflexiveClosureImpl reflexiveClosure = new ReflexiveClosureImpl(); 777 UnaryOp result = UnaryOp.get(initialValue);
785 return reflexiveClosure; 778 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
779 return result;
786 } 780 }
787 781
788 /** 782 /**
@@ -790,11 +784,75 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan
790 * <!-- end-user-doc --> 784 * <!-- end-user-doc -->
791 * @generated 785 * @generated
792 */ 786 */
793 @Override 787 public String convertUnaryOpToString(EDataType eDataType, Object instanceValue)
794 public IrreflexiveClosure createIrreflexiveClosure() 788 {
789 return instanceValue == null ? null : instanceValue.toString();
790 }
791
792 /**
793 * <!-- begin-user-doc -->
794 * <!-- end-user-doc -->
795 * @generated
796 */
797 public AggregationOp createAggregationOpFromString(EDataType eDataType, String initialValue)
798 {
799 AggregationOp result = AggregationOp.get(initialValue);
800 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
801 return result;
802 }
803
804 /**
805 * <!-- begin-user-doc -->
806 * <!-- end-user-doc -->
807 * @generated
808 */
809 public String convertAggregationOpToString(EDataType eDataType, Object instanceValue)
810 {
811 return instanceValue == null ? null : instanceValue.toString();
812 }
813
814 /**
815 * <!-- begin-user-doc -->
816 * <!-- end-user-doc -->
817 * @generated
818 */
819 public LogicValue createLogicValueFromString(EDataType eDataType, String initialValue)
820 {
821 LogicValue result = LogicValue.get(initialValue);
822 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
823 return result;
824 }
825
826 /**
827 * <!-- begin-user-doc -->
828 * <!-- end-user-doc -->
829 * @generated
830 */
831 public String convertLogicValueToString(EDataType eDataType, Object instanceValue)
832 {
833 return instanceValue == null ? null : instanceValue.toString();
834 }
835
836 /**
837 * <!-- begin-user-doc -->
838 * <!-- end-user-doc -->
839 * @generated
840 */
841 public ObjectiveKind createObjectiveKindFromString(EDataType eDataType, String initialValue)
842 {
843 ObjectiveKind result = ObjectiveKind.get(initialValue);
844 if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
845 return result;
846 }
847
848 /**
849 * <!-- begin-user-doc -->
850 * <!-- end-user-doc -->
851 * @generated
852 */
853 public String convertObjectiveKindToString(EDataType eDataType, Object instanceValue)
795 { 854 {
796 IrreflexiveClosureImpl irreflexiveClosure = new IrreflexiveClosureImpl(); 855 return instanceValue == null ? null : instanceValue.toString();
797 return irreflexiveClosure;
798 } 856 }
799 857
800 /** 858 /**
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 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
6import org.eclipse.emf.ecore.EAttribute; 6import org.eclipse.emf.ecore.EAttribute;
7import org.eclipse.emf.ecore.EClass; 7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage; 9import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference; 10import org.eclipse.emf.ecore.EReference;
10 11
11import org.eclipse.emf.ecore.impl.EPackageImpl; 12import org.eclipse.emf.ecore.impl.EPackageImpl;
12 13
13import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; 14import org.eclipse.viatra.solver.language.solverLanguage.Aggregation;
14import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; 15import org.eclipse.viatra.solver.language.solverLanguage.AggregationOp;
15import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; 16import org.eclipse.viatra.solver.language.solverLanguage.Argument;
16import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse; 17import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList;
17import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; 18import org.eclipse.viatra.solver.language.solverLanguage.Assertion;
18import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol; 19import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression;
19import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; 20import org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator;
20import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue; 21import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity;
21import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation; 22import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition;
22import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation; 23import org.eclipse.viatra.solver.language.solverLanguage.Call;
23import org.eclipse.viatra.solver.language.solverLanguage.ClosureType; 24import org.eclipse.viatra.solver.language.solverLanguage.Case;
24import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject; 25import org.eclipse.viatra.solver.language.solverLanguage.Comparison;
25import org.eclipse.viatra.solver.language.solverLanguage.Constraint; 26import org.eclipse.viatra.solver.language.solverLanguage.Conjunction;
26import org.eclipse.viatra.solver.language.solverLanguage.DataObject; 27import org.eclipse.viatra.solver.language.solverLanguage.Count;
27import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol; 28import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition;
28import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; 29import org.eclipse.viatra.solver.language.solverLanguage.Disjunction;
29import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation; 30import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral;
30import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol; 31import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity;
31import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol; 32import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition;
32import org.eclipse.viatra.solver.language.solverLanguage.False; 33import org.eclipse.viatra.solver.language.solverLanguage.Expression;
33import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; 34import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument;
34import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation; 35import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition;
35import org.eclipse.viatra.solver.language.solverLanguage.IntObject; 36import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition;
36import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol; 37import org.eclipse.viatra.solver.language.solverLanguage.IfElse;
37import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; 38import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral;
38import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure; 39import org.eclipse.viatra.solver.language.solverLanguage.Interval;
39import org.eclipse.viatra.solver.language.solverLanguage.Literal; 40import org.eclipse.viatra.solver.language.solverLanguage.Literal;
40import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; 41import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral;
41import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; 42import org.eclipse.viatra.solver.language.solverLanguage.LogicValue;
42import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; 43import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition;
43import org.eclipse.viatra.solver.language.solverLanguage.Negative; 44import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity;
44import org.eclipse.viatra.solver.language.solverLanguage.Parameter; 45import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition;
45import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol; 46import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition;
46import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; 47import org.eclipse.viatra.solver.language.solverLanguage.MetricType;
47import org.eclipse.viatra.solver.language.solverLanguage.Polarity; 48import org.eclipse.viatra.solver.language.solverLanguage.Multiplicity;
48import org.eclipse.viatra.solver.language.solverLanguage.Positive; 49import org.eclipse.viatra.solver.language.solverLanguage.NamedElement;
49import org.eclipse.viatra.solver.language.solverLanguage.Predicate; 50import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral;
51import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition;
52import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind;
53import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition;
50import org.eclipse.viatra.solver.language.solverLanguage.Problem; 54import org.eclipse.viatra.solver.language.solverLanguage.Problem;
51import org.eclipse.viatra.solver.language.solverLanguage.RealObject; 55import org.eclipse.viatra.solver.language.solverLanguage.Reference;
52import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol; 56import org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition;
53import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure;
54import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguageFactory; 57import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguageFactory;
55import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 58import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
59import org.eclipse.viatra.solver.language.solverLanguage.StarArgument;
56import org.eclipse.viatra.solver.language.solverLanguage.Statement; 60import org.eclipse.viatra.solver.language.solverLanguage.Statement;
57import org.eclipse.viatra.solver.language.solverLanguage.StringObject; 61import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral;
58import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; 62import org.eclipse.viatra.solver.language.solverLanguage.Switch;
59import org.eclipse.viatra.solver.language.solverLanguage.Symbol; 63import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument;
60import org.eclipse.viatra.solver.language.solverLanguage.True; 64import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument;
61import org.eclipse.viatra.solver.language.solverLanguage.TruthValue; 65import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression;
62import org.eclipse.viatra.solver.language.solverLanguage.Unknown; 66import org.eclipse.viatra.solver.language.solverLanguage.UnaryOp;
63import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject; 67import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition;
64import org.eclipse.viatra.solver.language.solverLanguage.Variable;
65 68
66/** 69/**
67 * <!-- begin-user-doc --> 70 * <!-- begin-user-doc -->
@@ -90,350 +93,350 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
90 * <!-- end-user-doc --> 93 * <!-- end-user-doc -->
91 * @generated 94 * @generated
92 */ 95 */
93 private EClass booleanValueEClass = null; 96 private EClass predicateDefinitionEClass = null;
94 97
95 /** 98 /**
96 * <!-- begin-user-doc --> 99 * <!-- begin-user-doc -->
97 * <!-- end-user-doc --> 100 * <!-- end-user-doc -->
98 * @generated 101 * @generated
99 */ 102 */
100 private EClass truthValueEClass = null; 103 private EClass unnamedErrorPrediateDefinitionEClass = null;
101 104
102 /** 105 /**
103 * <!-- begin-user-doc --> 106 * <!-- begin-user-doc -->
104 * <!-- end-user-doc --> 107 * <!-- end-user-doc -->
105 * @generated 108 * @generated
106 */ 109 */
107 private EClass interpretationEClass = null; 110 private EClass defaultDefinitionEClass = null;
108 111
109 /** 112 /**
110 * <!-- begin-user-doc --> 113 * <!-- begin-user-doc -->
111 * <!-- end-user-doc --> 114 * <!-- end-user-doc -->
112 * @generated 115 * @generated
113 */ 116 */
114 private EClass basicInterpretationEClass = null; 117 private EClass externPredicateDefinitionEClass = null;
115 118
116 /** 119 /**
117 * <!-- begin-user-doc --> 120 * <!-- begin-user-doc -->
118 * <!-- end-user-doc --> 121 * <!-- end-user-doc -->
119 * @generated 122 * @generated
120 */ 123 */
121 private EClass symbolEClass = null; 124 private EClass metricDefinitionEClass = null;
122 125
123 /** 126 /**
124 * <!-- begin-user-doc --> 127 * <!-- begin-user-doc -->
125 * <!-- end-user-doc --> 128 * <!-- end-user-doc -->
126 * @generated 129 * @generated
127 */ 130 */
128 private EClass modelSymbolEClass = null; 131 private EClass externMetricDefinitionEClass = null;
129 132
130 /** 133 /**
131 * <!-- begin-user-doc --> 134 * <!-- begin-user-doc -->
132 * <!-- end-user-doc --> 135 * <!-- end-user-doc -->
133 * @generated 136 * @generated
134 */ 137 */
135 private EClass partialitySymbolEClass = null; 138 private EClass expressionEClass = null;
136 139
137 /** 140 /**
138 * <!-- begin-user-doc --> 141 * <!-- begin-user-doc -->
139 * <!-- end-user-doc --> 142 * <!-- end-user-doc -->
140 * @generated 143 * @generated
141 */ 144 */
142 private EClass existSymbolEClass = null; 145 private EClass ifElseEClass = null;
143 146
144 /** 147 /**
145 * <!-- begin-user-doc --> 148 * <!-- begin-user-doc -->
146 * <!-- end-user-doc --> 149 * <!-- end-user-doc -->
147 * @generated 150 * @generated
148 */ 151 */
149 private EClass equalsSymbolEClass = null; 152 private EClass caseEClass = null;
150 153
151 /** 154 /**
152 * <!-- begin-user-doc --> 155 * <!-- begin-user-doc -->
153 * <!-- end-user-doc --> 156 * <!-- end-user-doc -->
154 * @generated 157 * @generated
155 */ 158 */
156 private EClass dataSymbolEClass = null; 159 private EClass countEClass = null;
157 160
158 /** 161 /**
159 * <!-- begin-user-doc --> 162 * <!-- begin-user-doc -->
160 * <!-- end-user-doc --> 163 * <!-- end-user-doc -->
161 * @generated 164 * @generated
162 */ 165 */
163 private EClass booleanSymbolEClass = null; 166 private EClass aggregationEClass = null;
164 167
165 /** 168 /**
166 * <!-- begin-user-doc --> 169 * <!-- begin-user-doc -->
167 * <!-- end-user-doc --> 170 * <!-- end-user-doc -->
168 * @generated 171 * @generated
169 */ 172 */
170 private EClass integerSymbolEClass = null; 173 private EClass callEClass = null;
171 174
172 /** 175 /**
173 * <!-- begin-user-doc --> 176 * <!-- begin-user-doc -->
174 * <!-- end-user-doc --> 177 * <!-- end-user-doc -->
175 * @generated 178 * @generated
176 */ 179 */
177 private EClass realSymbolEClass = null; 180 private EClass argumentListEClass = null;
178 181
179 /** 182 /**
180 * <!-- begin-user-doc --> 183 * <!-- begin-user-doc -->
181 * <!-- end-user-doc --> 184 * <!-- end-user-doc -->
182 * @generated 185 * @generated
183 */ 186 */
184 private EClass stringSymbolEClass = null; 187 private EClass argumentEClass = null;
185 188
186 /** 189 /**
187 * <!-- begin-user-doc --> 190 * <!-- begin-user-doc -->
188 * <!-- end-user-doc --> 191 * <!-- end-user-doc -->
189 * @generated 192 * @generated
190 */ 193 */
191 private EClass complexObjectEClass = null; 194 private EClass expressionArgumentEClass = null;
192 195
193 /** 196 /**
194 * <!-- begin-user-doc --> 197 * <!-- begin-user-doc -->
195 * <!-- end-user-doc --> 198 * <!-- end-user-doc -->
196 * @generated 199 * @generated
197 */ 200 */
198 private EClass objectEClass = null; 201 private EClass starArgumentEClass = null;
199 202
200 /** 203 /**
201 * <!-- begin-user-doc --> 204 * <!-- begin-user-doc -->
202 * <!-- end-user-doc --> 205 * <!-- end-user-doc -->
203 * @generated 206 * @generated
204 */ 207 */
205 private EClass namedObjectEClass = null; 208 private EClass typedArgumentEClass = null;
206 209
207 /** 210 /**
208 * <!-- begin-user-doc --> 211 * <!-- begin-user-doc -->
209 * <!-- end-user-doc --> 212 * <!-- end-user-doc -->
210 * @generated 213 * @generated
211 */ 214 */
212 private EClass unnamedObjectEClass = null; 215 private EClass typedStarArgumentEClass = null;
213 216
214 /** 217 /**
215 * <!-- begin-user-doc --> 218 * <!-- begin-user-doc -->
216 * <!-- end-user-doc --> 219 * <!-- end-user-doc -->
217 * @generated 220 * @generated
218 */ 221 */
219 private EClass dataObjectEClass = null; 222 private EClass referenceEClass = null;
220 223
221 /** 224 /**
222 * <!-- begin-user-doc --> 225 * <!-- begin-user-doc -->
223 * <!-- end-user-doc --> 226 * <!-- end-user-doc -->
224 * @generated 227 * @generated
225 */ 228 */
226 private EClass booleanObjectEClass = null; 229 private EClass intervalEClass = null;
227 230
228 /** 231 /**
229 * <!-- begin-user-doc --> 232 * <!-- begin-user-doc -->
230 * <!-- end-user-doc --> 233 * <!-- end-user-doc -->
231 * @generated 234 * @generated
232 */ 235 */
233 private EClass intObjectEClass = null; 236 private EClass literalEClass = null;
234 237
235 /** 238 /**
236 * <!-- begin-user-doc --> 239 * <!-- begin-user-doc -->
237 * <!-- end-user-doc --> 240 * <!-- end-user-doc -->
238 * @generated 241 * @generated
239 */ 242 */
240 private EClass realObjectEClass = null; 243 private EClass logicLiteralEClass = null;
241 244
242 /** 245 /**
243 * <!-- begin-user-doc --> 246 * <!-- begin-user-doc -->
244 * <!-- end-user-doc --> 247 * <!-- end-user-doc -->
245 * @generated 248 * @generated
246 */ 249 */
247 private EClass stringObjectEClass = null; 250 private EClass numericLiteralEClass = null;
248 251
249 /** 252 /**
250 * <!-- begin-user-doc --> 253 * <!-- begin-user-doc -->
251 * <!-- end-user-doc --> 254 * <!-- end-user-doc -->
252 * @generated 255 * @generated
253 */ 256 */
254 private EClass predicateEClass = null; 257 private EClass infinityLiteralEClass = null;
255 258
256 /** 259 /**
257 * <!-- begin-user-doc --> 260 * <!-- begin-user-doc -->
258 * <!-- end-user-doc --> 261 * <!-- end-user-doc -->
259 * @generated 262 * @generated
260 */ 263 */
261 private EClass parameterEClass = null; 264 private EClass emptyIntervalLiteralEClass = null;
262 265
263 /** 266 /**
264 * <!-- begin-user-doc --> 267 * <!-- begin-user-doc -->
265 * <!-- end-user-doc --> 268 * <!-- end-user-doc -->
266 * @generated 269 * @generated
267 */ 270 */
268 private EClass patternBodyEClass = null; 271 private EClass stringLiteralEClass = null;
269 272
270 /** 273 /**
271 * <!-- begin-user-doc --> 274 * <!-- begin-user-doc -->
272 * <!-- end-user-doc --> 275 * <!-- end-user-doc -->
273 * @generated 276 * @generated
274 */ 277 */
275 private EClass polarityEClass = null; 278 private EClass memberDefinitionEClass = null;
276 279
277 /** 280 /**
278 * <!-- begin-user-doc --> 281 * <!-- begin-user-doc -->
279 * <!-- end-user-doc --> 282 * <!-- end-user-doc -->
280 * @generated 283 * @generated
281 */ 284 */
282 private EClass constraintEClass = null; 285 private EClass multiplicityEClass = null;
283 286
284 /** 287 /**
285 * <!-- begin-user-doc --> 288 * <!-- begin-user-doc -->
286 * <!-- end-user-doc --> 289 * <!-- end-user-doc -->
287 * @generated 290 * @generated
288 */ 291 */
289 private EClass closureTypeEClass = null; 292 private EClass manyMultiplicityEClass = null;
290 293
291 /** 294 /**
292 * <!-- begin-user-doc --> 295 * <!-- begin-user-doc -->
293 * <!-- end-user-doc --> 296 * <!-- end-user-doc -->
294 * @generated 297 * @generated
295 */ 298 */
296 private EClass literalEClass = null; 299 private EClass exactMultiplicityEClass = null;
297 300
298 /** 301 /**
299 * <!-- begin-user-doc --> 302 * <!-- begin-user-doc -->
300 * <!-- end-user-doc --> 303 * <!-- end-user-doc -->
301 * @generated 304 * @generated
302 */ 305 */
303 private EClass variableEClass = null; 306 private EClass boundedMultiplicityEClass = null;
304 307
305 /** 308 /**
306 * <!-- begin-user-doc --> 309 * <!-- begin-user-doc -->
307 * <!-- end-user-doc --> 310 * <!-- end-user-doc -->
308 * @generated 311 * @generated
309 */ 312 */
310 private EClass allInstancesEClass = null; 313 private EClass scopeDefinitionEClass = null;
311 314
312 /** 315 /**
313 * <!-- begin-user-doc --> 316 * <!-- begin-user-doc -->
314 * <!-- end-user-doc --> 317 * <!-- end-user-doc -->
315 * @generated 318 * @generated
316 */ 319 */
317 private EClass allObjectsEClass = null; 320 private EClass exactScopeDefinitionEClass = null;
318 321
319 /** 322 /**
320 * <!-- begin-user-doc --> 323 * <!-- begin-user-doc -->
321 * <!-- end-user-doc --> 324 * <!-- end-user-doc -->
322 * @generated 325 * @generated
323 */ 326 */
324 private EClass defaultInterpretationEClass = null; 327 private EClass boundedScopeDefinitionEClass = null;
325 328
326 /** 329 /**
327 * <!-- begin-user-doc --> 330 * <!-- begin-user-doc -->
328 * <!-- end-user-doc --> 331 * <!-- end-user-doc -->
329 * @generated 332 * @generated
330 */ 333 */
331 private EClass cdInterpretationEClass = null; 334 private EClass lowerBoundedScopeDefinitionEClass = null;
332 335
333 /** 336 /**
334 * <!-- begin-user-doc --> 337 * <!-- begin-user-doc -->
335 * <!-- end-user-doc --> 338 * <!-- end-user-doc -->
336 * @generated 339 * @generated
337 */ 340 */
338 private EClass classInterpretationEClass = null; 341 private EClass objectiveDefinitionEClass = null;
339 342
340 /** 343 /**
341 * <!-- begin-user-doc --> 344 * <!-- begin-user-doc -->
342 * <!-- end-user-doc --> 345 * <!-- end-user-doc -->
343 * @generated 346 * @generated
344 */ 347 */
345 private EClass enumInterpretationEClass = null; 348 private EClass namedElementEClass = null;
346 349
347 /** 350 /**
348 * <!-- begin-user-doc --> 351 * <!-- begin-user-doc -->
349 * <!-- end-user-doc --> 352 * <!-- end-user-doc -->
350 * @generated 353 * @generated
351 */ 354 */
352 private EClass fieldRelationInterpretationEClass = null; 355 private EClass assertionEClass = null;
353 356
354 /** 357 /**
355 * <!-- begin-user-doc --> 358 * <!-- begin-user-doc -->
356 * <!-- end-user-doc --> 359 * <!-- end-user-doc -->
357 * @generated 360 * @generated
358 */ 361 */
359 private EClass globalRelationInterpretationEClass = null; 362 private EClass disjunctionEClass = null;
360 363
361 /** 364 /**
362 * <!-- begin-user-doc --> 365 * <!-- begin-user-doc -->
363 * <!-- end-user-doc --> 366 * <!-- end-user-doc -->
364 * @generated 367 * @generated
365 */ 368 */
366 private EClass multiplicityDefinitionEClass = null; 369 private EClass switchEClass = null;
367 370
368 /** 371 /**
369 * <!-- begin-user-doc --> 372 * <!-- begin-user-doc -->
370 * <!-- end-user-doc --> 373 * <!-- end-user-doc -->
371 * @generated 374 * @generated
372 */ 375 */
373 private EClass booleanTrueEClass = null; 376 private EClass conjunctionEClass = null;
374 377
375 /** 378 /**
376 * <!-- begin-user-doc --> 379 * <!-- begin-user-doc -->
377 * <!-- end-user-doc --> 380 * <!-- end-user-doc -->
378 * @generated 381 * @generated
379 */ 382 */
380 private EClass booleanFalseEClass = null; 383 private EClass comparisonEClass = null;
381 384
382 /** 385 /**
383 * <!-- begin-user-doc --> 386 * <!-- begin-user-doc -->
384 * <!-- end-user-doc --> 387 * <!-- end-user-doc -->
385 * @generated 388 * @generated
386 */ 389 */
387 private EClass trueEClass = null; 390 private EClass binaryExpressionEClass = null;
388 391
389 /** 392 /**
390 * <!-- begin-user-doc --> 393 * <!-- begin-user-doc -->
391 * <!-- end-user-doc --> 394 * <!-- end-user-doc -->
392 * @generated 395 * @generated
393 */ 396 */
394 private EClass falseEClass = null; 397 private EClass unaryExpressionEClass = null;
395 398
396 /** 399 /**
397 * <!-- begin-user-doc --> 400 * <!-- begin-user-doc -->
398 * <!-- end-user-doc --> 401 * <!-- end-user-doc -->
399 * @generated 402 * @generated
400 */ 403 */
401 private EClass unknownEClass = null; 404 private EEnum metricTypeEEnum = null;
402 405
403 /** 406 /**
404 * <!-- begin-user-doc --> 407 * <!-- begin-user-doc -->
405 * <!-- end-user-doc --> 408 * <!-- end-user-doc -->
406 * @generated 409 * @generated
407 */ 410 */
408 private EClass errorEClass = null; 411 private EEnum binaryOperatorEEnum = null;
409 412
410 /** 413 /**
411 * <!-- begin-user-doc --> 414 * <!-- begin-user-doc -->
412 * <!-- end-user-doc --> 415 * <!-- end-user-doc -->
413 * @generated 416 * @generated
414 */ 417 */
415 private EClass positiveEClass = null; 418 private EEnum unaryOpEEnum = null;
416 419
417 /** 420 /**
418 * <!-- begin-user-doc --> 421 * <!-- begin-user-doc -->
419 * <!-- end-user-doc --> 422 * <!-- end-user-doc -->
420 * @generated 423 * @generated
421 */ 424 */
422 private EClass negativeEClass = null; 425 private EEnum aggregationOpEEnum = null;
423 426
424 /** 427 /**
425 * <!-- begin-user-doc --> 428 * <!-- begin-user-doc -->
426 * <!-- end-user-doc --> 429 * <!-- end-user-doc -->
427 * @generated 430 * @generated
428 */ 431 */
429 private EClass reflexiveClosureEClass = null; 432 private EEnum logicValueEEnum = null;
430 433
431 /** 434 /**
432 * <!-- begin-user-doc --> 435 * <!-- begin-user-doc -->
433 * <!-- end-user-doc --> 436 * <!-- end-user-doc -->
434 * @generated 437 * @generated
435 */ 438 */
436 private EClass irreflexiveClosureEClass = null; 439 private EEnum objectiveKindEEnum = null;
437 440
438 /** 441 /**
439 * Creates an instance of the model <b>Package</b>, registered with 442 * Creates an instance of the model <b>Package</b>, registered with
@@ -537,9 +540,108 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
537 * @generated 540 * @generated
538 */ 541 */
539 @Override 542 @Override
540 public EClass getBooleanValue() 543 public EAttribute getStatement_Abstract()
544 {
545 return (EAttribute)statementEClass.getEStructuralFeatures().get(0);
546 }
547
548 /**
549 * <!-- begin-user-doc -->
550 * <!-- end-user-doc -->
551 * @generated
552 */
553 @Override
554 public EAttribute getStatement_Name()
555 {
556 return (EAttribute)statementEClass.getEStructuralFeatures().get(1);
557 }
558
559 /**
560 * <!-- begin-user-doc -->
561 * <!-- end-user-doc -->
562 * @generated
563 */
564 @Override
565 public EReference getStatement_Superclasses()
566 {
567 return (EReference)statementEClass.getEStructuralFeatures().get(2);
568 }
569
570 /**
571 * <!-- begin-user-doc -->
572 * <!-- end-user-doc -->
573 * @generated
574 */
575 @Override
576 public EReference getStatement_Members()
577 {
578 return (EReference)statementEClass.getEStructuralFeatures().get(3);
579 }
580
581 /**
582 * <!-- begin-user-doc -->
583 * <!-- end-user-doc -->
584 * @generated
585 */
586 @Override
587 public EClass getPredicateDefinition()
588 {
589 return predicateDefinitionEClass;
590 }
591
592 /**
593 * <!-- begin-user-doc -->
594 * <!-- end-user-doc -->
595 * @generated
596 */
597 @Override
598 public EReference getPredicateDefinition_Head()
599 {
600 return (EReference)predicateDefinitionEClass.getEStructuralFeatures().get(0);
601 }
602
603 /**
604 * <!-- begin-user-doc -->
605 * <!-- end-user-doc -->
606 * @generated
607 */
608 @Override
609 public EReference getPredicateDefinition_Body()
610 {
611 return (EReference)predicateDefinitionEClass.getEStructuralFeatures().get(1);
612 }
613
614 /**
615 * <!-- begin-user-doc -->
616 * <!-- end-user-doc -->
617 * @generated
618 */
619 @Override
620 public EAttribute getPredicateDefinition_Functional()
621 {
622 return (EAttribute)predicateDefinitionEClass.getEStructuralFeatures().get(2);
623 }
624
625 /**
626 * <!-- begin-user-doc -->
627 * <!-- end-user-doc -->
628 * @generated
629 */
630 @Override
631 public EAttribute getPredicateDefinition_Error()
632 {
633 return (EAttribute)predicateDefinitionEClass.getEStructuralFeatures().get(3);
634 }
635
636 /**
637 * <!-- begin-user-doc -->
638 * <!-- end-user-doc -->
639 * @generated
640 */
641 @Override
642 public EClass getUnnamedErrorPrediateDefinition()
541 { 643 {
542 return booleanValueEClass; 644 return unnamedErrorPrediateDefinitionEClass;
543 } 645 }
544 646
545 /** 647 /**
@@ -548,9 +650,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
548 * @generated 650 * @generated
549 */ 651 */
550 @Override 652 @Override
551 public EClass getTruthValue() 653 public EReference getUnnamedErrorPrediateDefinition_ArgumentList()
552 { 654 {
553 return truthValueEClass; 655 return (EReference)unnamedErrorPrediateDefinitionEClass.getEStructuralFeatures().get(0);
554 } 656 }
555 657
556 /** 658 /**
@@ -559,9 +661,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
559 * @generated 661 * @generated
560 */ 662 */
561 @Override 663 @Override
562 public EClass getInterpretation() 664 public EReference getUnnamedErrorPrediateDefinition_Body()
563 { 665 {
564 return interpretationEClass; 666 return (EReference)unnamedErrorPrediateDefinitionEClass.getEStructuralFeatures().get(1);
565 } 667 }
566 668
567 /** 669 /**
@@ -570,9 +672,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
570 * @generated 672 * @generated
571 */ 673 */
572 @Override 674 @Override
573 public EClass getBasicInterpretation() 675 public EClass getDefaultDefinition()
574 { 676 {
575 return basicInterpretationEClass; 677 return defaultDefinitionEClass;
576 } 678 }
577 679
578 /** 680 /**
@@ -581,9 +683,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
581 * @generated 683 * @generated
582 */ 684 */
583 @Override 685 @Override
584 public EReference getBasicInterpretation_Symbol() 686 public EReference getDefaultDefinition_Head()
585 { 687 {
586 return (EReference)basicInterpretationEClass.getEStructuralFeatures().get(0); 688 return (EReference)defaultDefinitionEClass.getEStructuralFeatures().get(0);
587 } 689 }
588 690
589 /** 691 /**
@@ -592,9 +694,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
592 * @generated 694 * @generated
593 */ 695 */
594 @Override 696 @Override
595 public EReference getBasicInterpretation_Objects() 697 public EReference getDefaultDefinition_Range()
596 { 698 {
597 return (EReference)basicInterpretationEClass.getEStructuralFeatures().get(1); 699 return (EReference)defaultDefinitionEClass.getEStructuralFeatures().get(1);
598 } 700 }
599 701
600 /** 702 /**
@@ -603,9 +705,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
603 * @generated 705 * @generated
604 */ 706 */
605 @Override 707 @Override
606 public EReference getBasicInterpretation_Value() 708 public EClass getExternPredicateDefinition()
607 { 709 {
608 return (EReference)basicInterpretationEClass.getEStructuralFeatures().get(2); 710 return externPredicateDefinitionEClass;
609 } 711 }
610 712
611 /** 713 /**
@@ -614,9 +716,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
614 * @generated 716 * @generated
615 */ 717 */
616 @Override 718 @Override
617 public EClass getSymbol() 719 public EReference getExternPredicateDefinition_Head()
618 { 720 {
619 return symbolEClass; 721 return (EReference)externPredicateDefinitionEClass.getEStructuralFeatures().get(0);
620 } 722 }
621 723
622 /** 724 /**
@@ -625,9 +727,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
625 * @generated 727 * @generated
626 */ 728 */
627 @Override 729 @Override
628 public EClass getModelSymbol() 730 public EClass getMetricDefinition()
629 { 731 {
630 return modelSymbolEClass; 732 return metricDefinitionEClass;
631 } 733 }
632 734
633 /** 735 /**
@@ -636,9 +738,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
636 * @generated 738 * @generated
637 */ 739 */
638 @Override 740 @Override
639 public EAttribute getModelSymbol_Name() 741 public EReference getMetricDefinition_Head()
640 { 742 {
641 return (EAttribute)modelSymbolEClass.getEStructuralFeatures().get(0); 743 return (EReference)metricDefinitionEClass.getEStructuralFeatures().get(0);
642 } 744 }
643 745
644 /** 746 /**
@@ -647,9 +749,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
647 * @generated 749 * @generated
648 */ 750 */
649 @Override 751 @Override
650 public EClass getPartialitySymbol() 752 public EReference getMetricDefinition_Body()
651 { 753 {
652 return partialitySymbolEClass; 754 return (EReference)metricDefinitionEClass.getEStructuralFeatures().get(1);
653 } 755 }
654 756
655 /** 757 /**
@@ -658,9 +760,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
658 * @generated 760 * @generated
659 */ 761 */
660 @Override 762 @Override
661 public EClass getExistSymbol() 763 public EAttribute getMetricDefinition_Type()
662 { 764 {
663 return existSymbolEClass; 765 return (EAttribute)metricDefinitionEClass.getEStructuralFeatures().get(2);
664 } 766 }
665 767
666 /** 768 /**
@@ -669,9 +771,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
669 * @generated 771 * @generated
670 */ 772 */
671 @Override 773 @Override
672 public EClass getEqualsSymbol() 774 public EClass getExternMetricDefinition()
673 { 775 {
674 return equalsSymbolEClass; 776 return externMetricDefinitionEClass;
675 } 777 }
676 778
677 /** 779 /**
@@ -680,9 +782,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
680 * @generated 782 * @generated
681 */ 783 */
682 @Override 784 @Override
683 public EClass getDataSymbol() 785 public EAttribute getExternMetricDefinition_Type()
684 { 786 {
685 return dataSymbolEClass; 787 return (EAttribute)externMetricDefinitionEClass.getEStructuralFeatures().get(0);
686 } 788 }
687 789
688 /** 790 /**
@@ -691,9 +793,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
691 * @generated 793 * @generated
692 */ 794 */
693 @Override 795 @Override
694 public EClass getBooleanSymbol() 796 public EReference getExternMetricDefinition_Head()
695 { 797 {
696 return booleanSymbolEClass; 798 return (EReference)externMetricDefinitionEClass.getEStructuralFeatures().get(1);
697 } 799 }
698 800
699 /** 801 /**
@@ -702,9 +804,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
702 * @generated 804 * @generated
703 */ 805 */
704 @Override 806 @Override
705 public EClass getIntegerSymbol() 807 public EClass getExpression()
706 { 808 {
707 return integerSymbolEClass; 809 return expressionEClass;
708 } 810 }
709 811
710 /** 812 /**
@@ -713,9 +815,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
713 * @generated 815 * @generated
714 */ 816 */
715 @Override 817 @Override
716 public EClass getRealSymbol() 818 public EClass getIfElse()
717 { 819 {
718 return realSymbolEClass; 820 return ifElseEClass;
719 } 821 }
720 822
721 /** 823 /**
@@ -724,9 +826,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
724 * @generated 826 * @generated
725 */ 827 */
726 @Override 828 @Override
727 public EClass getStringSymbol() 829 public EReference getIfElse_Condition()
728 { 830 {
729 return stringSymbolEClass; 831 return (EReference)ifElseEClass.getEStructuralFeatures().get(0);
730 } 832 }
731 833
732 /** 834 /**
@@ -735,9 +837,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
735 * @generated 837 * @generated
736 */ 838 */
737 @Override 839 @Override
738 public EClass getComplexObject() 840 public EReference getIfElse_Then()
739 { 841 {
740 return complexObjectEClass; 842 return (EReference)ifElseEClass.getEStructuralFeatures().get(1);
741 } 843 }
742 844
743 /** 845 /**
@@ -746,9 +848,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
746 * @generated 848 * @generated
747 */ 849 */
748 @Override 850 @Override
749 public EClass getObject() 851 public EReference getIfElse_Else()
750 { 852 {
751 return objectEClass; 853 return (EReference)ifElseEClass.getEStructuralFeatures().get(2);
752 } 854 }
753 855
754 /** 856 /**
@@ -757,9 +859,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
757 * @generated 859 * @generated
758 */ 860 */
759 @Override 861 @Override
760 public EClass getNamedObject() 862 public EClass getCase()
761 { 863 {
762 return namedObjectEClass; 864 return caseEClass;
763 } 865 }
764 866
765 /** 867 /**
@@ -768,9 +870,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
768 * @generated 870 * @generated
769 */ 871 */
770 @Override 872 @Override
771 public EAttribute getNamedObject_Name() 873 public EReference getCase_Condition()
772 { 874 {
773 return (EAttribute)namedObjectEClass.getEStructuralFeatures().get(0); 875 return (EReference)caseEClass.getEStructuralFeatures().get(0);
774 } 876 }
775 877
776 /** 878 /**
@@ -779,9 +881,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
779 * @generated 881 * @generated
780 */ 882 */
781 @Override 883 @Override
782 public EClass getUnnamedObject() 884 public EReference getCase_Body()
783 { 885 {
784 return unnamedObjectEClass; 886 return (EReference)caseEClass.getEStructuralFeatures().get(1);
785 } 887 }
786 888
787 /** 889 /**
@@ -790,9 +892,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
790 * @generated 892 * @generated
791 */ 893 */
792 @Override 894 @Override
793 public EAttribute getUnnamedObject_Name() 895 public EClass getCount()
794 { 896 {
795 return (EAttribute)unnamedObjectEClass.getEStructuralFeatures().get(0); 897 return countEClass;
796 } 898 }
797 899
798 /** 900 /**
@@ -801,9 +903,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
801 * @generated 903 * @generated
802 */ 904 */
803 @Override 905 @Override
804 public EClass getDataObject() 906 public EReference getCount_Body()
805 { 907 {
806 return dataObjectEClass; 908 return (EReference)countEClass.getEStructuralFeatures().get(0);
807 } 909 }
808 910
809 /** 911 /**
@@ -812,9 +914,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
812 * @generated 914 * @generated
813 */ 915 */
814 @Override 916 @Override
815 public EClass getBooleanObject() 917 public EClass getAggregation()
816 { 918 {
817 return booleanObjectEClass; 919 return aggregationEClass;
818 } 920 }
819 921
820 /** 922 /**
@@ -823,9 +925,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
823 * @generated 925 * @generated
824 */ 926 */
825 @Override 927 @Override
826 public EReference getBooleanObject_Value() 928 public EAttribute getAggregation_Op()
827 { 929 {
828 return (EReference)booleanObjectEClass.getEStructuralFeatures().get(0); 930 return (EAttribute)aggregationEClass.getEStructuralFeatures().get(0);
829 } 931 }
830 932
831 /** 933 /**
@@ -834,9 +936,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
834 * @generated 936 * @generated
835 */ 937 */
836 @Override 938 @Override
837 public EClass getIntObject() 939 public EReference getAggregation_Body()
838 { 940 {
839 return intObjectEClass; 941 return (EReference)aggregationEClass.getEStructuralFeatures().get(1);
840 } 942 }
841 943
842 /** 944 /**
@@ -845,9 +947,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
845 * @generated 947 * @generated
846 */ 948 */
847 @Override 949 @Override
848 public EAttribute getIntObject_Value() 950 public EReference getAggregation_Condition()
849 { 951 {
850 return (EAttribute)intObjectEClass.getEStructuralFeatures().get(0); 952 return (EReference)aggregationEClass.getEStructuralFeatures().get(2);
851 } 953 }
852 954
853 /** 955 /**
@@ -856,9 +958,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
856 * @generated 958 * @generated
857 */ 959 */
858 @Override 960 @Override
859 public EClass getRealObject() 961 public EClass getCall()
860 { 962 {
861 return realObjectEClass; 963 return callEClass;
862 } 964 }
863 965
864 /** 966 /**
@@ -867,9 +969,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
867 * @generated 969 * @generated
868 */ 970 */
869 @Override 971 @Override
870 public EAttribute getRealObject_Value() 972 public EReference getCall_Functor()
871 { 973 {
872 return (EAttribute)realObjectEClass.getEStructuralFeatures().get(0); 974 return (EReference)callEClass.getEStructuralFeatures().get(0);
873 } 975 }
874 976
875 /** 977 /**
@@ -878,9 +980,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
878 * @generated 980 * @generated
879 */ 981 */
880 @Override 982 @Override
881 public EClass getStringObject() 983 public EReference getCall_ArgumentList()
882 { 984 {
883 return stringObjectEClass; 985 return (EReference)callEClass.getEStructuralFeatures().get(1);
884 } 986 }
885 987
886 /** 988 /**
@@ -889,9 +991,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
889 * @generated 991 * @generated
890 */ 992 */
891 @Override 993 @Override
892 public EAttribute getStringObject_Value() 994 public EAttribute getCall_TransitiveClosure()
893 { 995 {
894 return (EAttribute)stringObjectEClass.getEStructuralFeatures().get(0); 996 return (EAttribute)callEClass.getEStructuralFeatures().get(2);
895 } 997 }
896 998
897 /** 999 /**
@@ -900,9 +1002,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
900 * @generated 1002 * @generated
901 */ 1003 */
902 @Override 1004 @Override
903 public EClass getPredicate() 1005 public EAttribute getCall_ReflexiveTransitiveClosure()
904 { 1006 {
905 return predicateEClass; 1007 return (EAttribute)callEClass.getEStructuralFeatures().get(3);
906 } 1008 }
907 1009
908 /** 1010 /**
@@ -911,9 +1013,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
911 * @generated 1013 * @generated
912 */ 1014 */
913 @Override 1015 @Override
914 public EAttribute getPredicate_IsError() 1016 public EClass getArgumentList()
915 { 1017 {
916 return (EAttribute)predicateEClass.getEStructuralFeatures().get(0); 1018 return argumentListEClass;
917 } 1019 }
918 1020
919 /** 1021 /**
@@ -922,9 +1024,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
922 * @generated 1024 * @generated
923 */ 1025 */
924 @Override 1026 @Override
925 public EReference getPredicate_Symbol() 1027 public EReference getArgumentList_Arguments()
926 { 1028 {
927 return (EReference)predicateEClass.getEStructuralFeatures().get(1); 1029 return (EReference)argumentListEClass.getEStructuralFeatures().get(0);
928 } 1030 }
929 1031
930 /** 1032 /**
@@ -933,9 +1035,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
933 * @generated 1035 * @generated
934 */ 1036 */
935 @Override 1037 @Override
936 public EReference getPredicate_Parameters() 1038 public EClass getArgument()
937 { 1039 {
938 return (EReference)predicateEClass.getEStructuralFeatures().get(2); 1040 return argumentEClass;
939 } 1041 }
940 1042
941 /** 1043 /**
@@ -944,9 +1046,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
944 * @generated 1046 * @generated
945 */ 1047 */
946 @Override 1048 @Override
947 public EReference getPredicate_Bodies() 1049 public EClass getExpressionArgument()
948 { 1050 {
949 return (EReference)predicateEClass.getEStructuralFeatures().get(3); 1051 return expressionArgumentEClass;
950 } 1052 }
951 1053
952 /** 1054 /**
@@ -955,9 +1057,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
955 * @generated 1057 * @generated
956 */ 1058 */
957 @Override 1059 @Override
958 public EClass getParameter() 1060 public EReference getExpressionArgument_Body()
959 { 1061 {
960 return parameterEClass; 1062 return (EReference)expressionArgumentEClass.getEStructuralFeatures().get(0);
961 } 1063 }
962 1064
963 /** 1065 /**
@@ -966,9 +1068,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
966 * @generated 1068 * @generated
967 */ 1069 */
968 @Override 1070 @Override
969 public EReference getParameter_Variable() 1071 public EClass getStarArgument()
970 { 1072 {
971 return (EReference)parameterEClass.getEStructuralFeatures().get(0); 1073 return starArgumentEClass;
972 } 1074 }
973 1075
974 /** 1076 /**
@@ -977,9 +1079,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
977 * @generated 1079 * @generated
978 */ 1080 */
979 @Override 1081 @Override
980 public EReference getParameter_Type() 1082 public EClass getTypedArgument()
981 { 1083 {
982 return (EReference)parameterEClass.getEStructuralFeatures().get(1); 1084 return typedArgumentEClass;
983 } 1085 }
984 1086
985 /** 1087 /**
@@ -988,9 +1090,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
988 * @generated 1090 * @generated
989 */ 1091 */
990 @Override 1092 @Override
991 public EClass getPatternBody() 1093 public EReference getTypedArgument_Type()
992 { 1094 {
993 return patternBodyEClass; 1095 return (EReference)typedArgumentEClass.getEStructuralFeatures().get(0);
994 } 1096 }
995 1097
996 /** 1098 /**
@@ -999,9 +1101,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
999 * @generated 1101 * @generated
1000 */ 1102 */
1001 @Override 1103 @Override
1002 public EReference getPatternBody_Constraints() 1104 public EReference getTypedArgument_Variable()
1003 { 1105 {
1004 return (EReference)patternBodyEClass.getEStructuralFeatures().get(0); 1106 return (EReference)typedArgumentEClass.getEStructuralFeatures().get(1);
1005 } 1107 }
1006 1108
1007 /** 1109 /**
@@ -1010,9 +1112,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1010 * @generated 1112 * @generated
1011 */ 1113 */
1012 @Override 1114 @Override
1013 public EClass getPolarity() 1115 public EClass getTypedStarArgument()
1014 { 1116 {
1015 return polarityEClass; 1117 return typedStarArgumentEClass;
1016 } 1118 }
1017 1119
1018 /** 1120 /**
@@ -1021,9 +1123,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1021 * @generated 1123 * @generated
1022 */ 1124 */
1023 @Override 1125 @Override
1024 public EClass getConstraint() 1126 public EReference getTypedStarArgument_Type()
1025 { 1127 {
1026 return constraintEClass; 1128 return (EReference)typedStarArgumentEClass.getEStructuralFeatures().get(0);
1027 } 1129 }
1028 1130
1029 /** 1131 /**
@@ -1032,9 +1134,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1032 * @generated 1134 * @generated
1033 */ 1135 */
1034 @Override 1136 @Override
1035 public EReference getConstraint_Polarity() 1137 public EClass getReference()
1036 { 1138 {
1037 return (EReference)constraintEClass.getEStructuralFeatures().get(0); 1139 return referenceEClass;
1038 } 1140 }
1039 1141
1040 /** 1142 /**
@@ -1043,9 +1145,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1043 * @generated 1145 * @generated
1044 */ 1146 */
1045 @Override 1147 @Override
1046 public EReference getConstraint_Symbol() 1148 public EReference getReference_Referred()
1047 { 1149 {
1048 return (EReference)constraintEClass.getEStructuralFeatures().get(1); 1150 return (EReference)referenceEClass.getEStructuralFeatures().get(0);
1049 } 1151 }
1050 1152
1051 /** 1153 /**
@@ -1054,9 +1156,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1054 * @generated 1156 * @generated
1055 */ 1157 */
1056 @Override 1158 @Override
1057 public EReference getConstraint_Params() 1159 public EClass getInterval()
1058 { 1160 {
1059 return (EReference)constraintEClass.getEStructuralFeatures().get(2); 1161 return intervalEClass;
1060 } 1162 }
1061 1163
1062 /** 1164 /**
@@ -1065,9 +1167,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1065 * @generated 1167 * @generated
1066 */ 1168 */
1067 @Override 1169 @Override
1068 public EReference getConstraint_ClosureType() 1170 public EReference getInterval_LowerBound()
1069 { 1171 {
1070 return (EReference)constraintEClass.getEStructuralFeatures().get(3); 1172 return (EReference)intervalEClass.getEStructuralFeatures().get(0);
1071 } 1173 }
1072 1174
1073 /** 1175 /**
@@ -1076,9 +1178,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1076 * @generated 1178 * @generated
1077 */ 1179 */
1078 @Override 1180 @Override
1079 public EClass getClosureType() 1181 public EReference getInterval_UpperBound()
1080 { 1182 {
1081 return closureTypeEClass; 1183 return (EReference)intervalEClass.getEStructuralFeatures().get(1);
1082 } 1184 }
1083 1185
1084 /** 1186 /**
@@ -1098,9 +1200,207 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1098 * @generated 1200 * @generated
1099 */ 1201 */
1100 @Override 1202 @Override
1101 public EClass getVariable() 1203 public EClass getLogicLiteral()
1204 {
1205 return logicLiteralEClass;
1206 }
1207
1208 /**
1209 * <!-- begin-user-doc -->
1210 * <!-- end-user-doc -->
1211 * @generated
1212 */
1213 @Override
1214 public EAttribute getLogicLiteral_Value()
1215 {
1216 return (EAttribute)logicLiteralEClass.getEStructuralFeatures().get(0);
1217 }
1218
1219 /**
1220 * <!-- begin-user-doc -->
1221 * <!-- end-user-doc -->
1222 * @generated
1223 */
1224 @Override
1225 public EClass getNumericLiteral()
1226 {
1227 return numericLiteralEClass;
1228 }
1229
1230 /**
1231 * <!-- begin-user-doc -->
1232 * <!-- end-user-doc -->
1233 * @generated
1234 */
1235 @Override
1236 public EAttribute getNumericLiteral_Value()
1237 {
1238 return (EAttribute)numericLiteralEClass.getEStructuralFeatures().get(0);
1239 }
1240
1241 /**
1242 * <!-- begin-user-doc -->
1243 * <!-- end-user-doc -->
1244 * @generated
1245 */
1246 @Override
1247 public EClass getInfinityLiteral()
1248 {
1249 return infinityLiteralEClass;
1250 }
1251
1252 /**
1253 * <!-- begin-user-doc -->
1254 * <!-- end-user-doc -->
1255 * @generated
1256 */
1257 @Override
1258 public EClass getEmptyIntervalLiteral()
1259 {
1260 return emptyIntervalLiteralEClass;
1261 }
1262
1263 /**
1264 * <!-- begin-user-doc -->
1265 * <!-- end-user-doc -->
1266 * @generated
1267 */
1268 @Override
1269 public EClass getStringLiteral()
1270 {
1271 return stringLiteralEClass;
1272 }
1273
1274 /**
1275 * <!-- begin-user-doc -->
1276 * <!-- end-user-doc -->
1277 * @generated
1278 */
1279 @Override
1280 public EAttribute getStringLiteral_Value()
1281 {
1282 return (EAttribute)stringLiteralEClass.getEStructuralFeatures().get(0);
1283 }
1284
1285 /**
1286 * <!-- begin-user-doc -->
1287 * <!-- end-user-doc -->
1288 * @generated
1289 */
1290 @Override
1291 public EClass getMemberDefinition()
1292 {
1293 return memberDefinitionEClass;
1294 }
1295
1296 /**
1297 * <!-- begin-user-doc -->
1298 * <!-- end-user-doc -->
1299 * @generated
1300 */
1301 @Override
1302 public EAttribute getMemberDefinition_Containment()
1303 {
1304 return (EAttribute)memberDefinitionEClass.getEStructuralFeatures().get(0);
1305 }
1306
1307 /**
1308 * <!-- begin-user-doc -->
1309 * <!-- end-user-doc -->
1310 * @generated
1311 */
1312 @Override
1313 public EReference getMemberDefinition_Type()
1314 {
1315 return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(1);
1316 }
1317
1318 /**
1319 * <!-- begin-user-doc -->
1320 * <!-- end-user-doc -->
1321 * @generated
1322 */
1323 @Override
1324 public EReference getMemberDefinition_Multiplicity()
1325 {
1326 return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(2);
1327 }
1328
1329 /**
1330 * <!-- begin-user-doc -->
1331 * <!-- end-user-doc -->
1332 * @generated
1333 */
1334 @Override
1335 public EAttribute getMemberDefinition_Name()
1336 {
1337 return (EAttribute)memberDefinitionEClass.getEStructuralFeatures().get(3);
1338 }
1339
1340 /**
1341 * <!-- begin-user-doc -->
1342 * <!-- end-user-doc -->
1343 * @generated
1344 */
1345 @Override
1346 public EReference getMemberDefinition_Opposite()
1347 {
1348 return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(4);
1349 }
1350
1351 /**
1352 * <!-- begin-user-doc -->
1353 * <!-- end-user-doc -->
1354 * @generated
1355 */
1356 @Override
1357 public EClass getMultiplicity()
1358 {
1359 return multiplicityEClass;
1360 }
1361
1362 /**
1363 * <!-- begin-user-doc -->
1364 * <!-- end-user-doc -->
1365 * @generated
1366 */
1367 @Override
1368 public EClass getManyMultiplicity()
1369 {
1370 return manyMultiplicityEClass;
1371 }
1372
1373 /**
1374 * <!-- begin-user-doc -->
1375 * <!-- end-user-doc -->
1376 * @generated
1377 */
1378 @Override
1379 public EClass getExactMultiplicity()
1380 {
1381 return exactMultiplicityEClass;
1382 }
1383
1384 /**
1385 * <!-- begin-user-doc -->
1386 * <!-- end-user-doc -->
1387 * @generated
1388 */
1389 @Override
1390 public EAttribute getExactMultiplicity_Multiplicity()
1391 {
1392 return (EAttribute)exactMultiplicityEClass.getEStructuralFeatures().get(0);
1393 }
1394
1395 /**
1396 * <!-- begin-user-doc -->
1397 * <!-- end-user-doc -->
1398 * @generated
1399 */
1400 @Override
1401 public EClass getBoundedMultiplicity()
1102 { 1402 {
1103 return variableEClass; 1403 return boundedMultiplicityEClass;
1104 } 1404 }
1105 1405
1106 /** 1406 /**
@@ -1109,9 +1409,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1109 * @generated 1409 * @generated
1110 */ 1410 */
1111 @Override 1411 @Override
1112 public EAttribute getVariable_Name() 1412 public EAttribute getBoundedMultiplicity_LowerBound()
1113 { 1413 {
1114 return (EAttribute)variableEClass.getEStructuralFeatures().get(0); 1414 return (EAttribute)boundedMultiplicityEClass.getEStructuralFeatures().get(0);
1115 } 1415 }
1116 1416
1117 /** 1417 /**
@@ -1120,9 +1420,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1120 * @generated 1420 * @generated
1121 */ 1421 */
1122 @Override 1422 @Override
1123 public EClass getAllInstances() 1423 public EAttribute getBoundedMultiplicity_UpperBound()
1124 { 1424 {
1125 return allInstancesEClass; 1425 return (EAttribute)boundedMultiplicityEClass.getEStructuralFeatures().get(1);
1126 } 1426 }
1127 1427
1128 /** 1428 /**
@@ -1131,9 +1431,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1131 * @generated 1431 * @generated
1132 */ 1432 */
1133 @Override 1433 @Override
1134 public EReference getAllInstances_Symbol() 1434 public EClass getScopeDefinition()
1135 { 1435 {
1136 return (EReference)allInstancesEClass.getEStructuralFeatures().get(0); 1436 return scopeDefinitionEClass;
1137 } 1437 }
1138 1438
1139 /** 1439 /**
@@ -1142,9 +1442,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1142 * @generated 1442 * @generated
1143 */ 1443 */
1144 @Override 1444 @Override
1145 public EClass getAllObjects() 1445 public EReference getScopeDefinition_Type()
1146 { 1446 {
1147 return allObjectsEClass; 1447 return (EReference)scopeDefinitionEClass.getEStructuralFeatures().get(0);
1148 } 1448 }
1149 1449
1150 /** 1450 /**
@@ -1153,9 +1453,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1153 * @generated 1453 * @generated
1154 */ 1454 */
1155 @Override 1455 @Override
1156 public EClass getDefaultInterpretation() 1456 public EClass getExactScopeDefinition()
1157 { 1457 {
1158 return defaultInterpretationEClass; 1458 return exactScopeDefinitionEClass;
1159 } 1459 }
1160 1460
1161 /** 1461 /**
@@ -1164,9 +1464,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1164 * @generated 1464 * @generated
1165 */ 1465 */
1166 @Override 1466 @Override
1167 public EReference getDefaultInterpretation_Interpretation() 1467 public EAttribute getExactScopeDefinition_ExactScope()
1168 { 1468 {
1169 return (EReference)defaultInterpretationEClass.getEStructuralFeatures().get(0); 1469 return (EAttribute)exactScopeDefinitionEClass.getEStructuralFeatures().get(0);
1170 } 1470 }
1171 1471
1172 /** 1472 /**
@@ -1175,9 +1475,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1175 * @generated 1475 * @generated
1176 */ 1476 */
1177 @Override 1477 @Override
1178 public EClass getCDInterpretation() 1478 public EClass getBoundedScopeDefinition()
1179 { 1479 {
1180 return cdInterpretationEClass; 1480 return boundedScopeDefinitionEClass;
1181 } 1481 }
1182 1482
1183 /** 1483 /**
@@ -1186,9 +1486,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1186 * @generated 1486 * @generated
1187 */ 1487 */
1188 @Override 1488 @Override
1189 public EClass getClassInterpretation() 1489 public EAttribute getBoundedScopeDefinition_LowerBound()
1190 { 1490 {
1191 return classInterpretationEClass; 1491 return (EAttribute)boundedScopeDefinitionEClass.getEStructuralFeatures().get(0);
1192 } 1492 }
1193 1493
1194 /** 1494 /**
@@ -1197,9 +1497,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1197 * @generated 1497 * @generated
1198 */ 1498 */
1199 @Override 1499 @Override
1200 public EAttribute getClassInterpretation_Abstract() 1500 public EAttribute getBoundedScopeDefinition_UpperBound()
1201 { 1501 {
1202 return (EAttribute)classInterpretationEClass.getEStructuralFeatures().get(0); 1502 return (EAttribute)boundedScopeDefinitionEClass.getEStructuralFeatures().get(1);
1203 } 1503 }
1204 1504
1205 /** 1505 /**
@@ -1208,9 +1508,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1208 * @generated 1508 * @generated
1209 */ 1509 */
1210 @Override 1510 @Override
1211 public EReference getClassInterpretation_Symbol() 1511 public EClass getLowerBoundedScopeDefinition()
1212 { 1512 {
1213 return (EReference)classInterpretationEClass.getEStructuralFeatures().get(1); 1513 return lowerBoundedScopeDefinitionEClass;
1214 } 1514 }
1215 1515
1216 /** 1516 /**
@@ -1219,9 +1519,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1219 * @generated 1519 * @generated
1220 */ 1520 */
1221 @Override 1521 @Override
1222 public EReference getClassInterpretation_Supertypes() 1522 public EAttribute getLowerBoundedScopeDefinition_LowerBound()
1223 { 1523 {
1224 return (EReference)classInterpretationEClass.getEStructuralFeatures().get(2); 1524 return (EAttribute)lowerBoundedScopeDefinitionEClass.getEStructuralFeatures().get(0);
1225 } 1525 }
1226 1526
1227 /** 1527 /**
@@ -1230,9 +1530,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1230 * @generated 1530 * @generated
1231 */ 1531 */
1232 @Override 1532 @Override
1233 public EReference getClassInterpretation_Fielt() 1533 public EClass getObjectiveDefinition()
1234 { 1534 {
1235 return (EReference)classInterpretationEClass.getEStructuralFeatures().get(3); 1535 return objectiveDefinitionEClass;
1236 } 1536 }
1237 1537
1238 /** 1538 /**
@@ -1241,9 +1541,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1241 * @generated 1541 * @generated
1242 */ 1542 */
1243 @Override 1543 @Override
1244 public EClass getEnumInterpretation() 1544 public EAttribute getObjectiveDefinition_Kind()
1245 { 1545 {
1246 return enumInterpretationEClass; 1546 return (EAttribute)objectiveDefinitionEClass.getEStructuralFeatures().get(0);
1247 } 1547 }
1248 1548
1249 /** 1549 /**
@@ -1252,9 +1552,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1252 * @generated 1552 * @generated
1253 */ 1553 */
1254 @Override 1554 @Override
1255 public EReference getEnumInterpretation_Symbol() 1555 public EReference getObjectiveDefinition_Objective()
1256 { 1556 {
1257 return (EReference)enumInterpretationEClass.getEStructuralFeatures().get(0); 1557 return (EReference)objectiveDefinitionEClass.getEStructuralFeatures().get(1);
1258 } 1558 }
1259 1559
1260 /** 1560 /**
@@ -1263,9 +1563,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1263 * @generated 1563 * @generated
1264 */ 1564 */
1265 @Override 1565 @Override
1266 public EReference getEnumInterpretation_Objects() 1566 public EClass getNamedElement()
1267 { 1567 {
1268 return (EReference)enumInterpretationEClass.getEStructuralFeatures().get(1); 1568 return namedElementEClass;
1269 } 1569 }
1270 1570
1271 /** 1571 /**
@@ -1274,9 +1574,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1274 * @generated 1574 * @generated
1275 */ 1575 */
1276 @Override 1576 @Override
1277 public EClass getFieldRelationInterpretation() 1577 public EAttribute getNamedElement_Name()
1278 { 1578 {
1279 return fieldRelationInterpretationEClass; 1579 return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0);
1280 } 1580 }
1281 1581
1282 /** 1582 /**
@@ -1285,9 +1585,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1285 * @generated 1585 * @generated
1286 */ 1586 */
1287 @Override 1587 @Override
1288 public EAttribute getFieldRelationInterpretation_Containment() 1588 public EClass getAssertion()
1289 { 1589 {
1290 return (EAttribute)fieldRelationInterpretationEClass.getEStructuralFeatures().get(0); 1590 return assertionEClass;
1291 } 1591 }
1292 1592
1293 /** 1593 /**
@@ -1296,9 +1596,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1296 * @generated 1596 * @generated
1297 */ 1597 */
1298 @Override 1598 @Override
1299 public EReference getFieldRelationInterpretation_Symbol() 1599 public EReference getAssertion_Body()
1300 { 1600 {
1301 return (EReference)fieldRelationInterpretationEClass.getEStructuralFeatures().get(1); 1601 return (EReference)assertionEClass.getEStructuralFeatures().get(0);
1302 } 1602 }
1303 1603
1304 /** 1604 /**
@@ -1307,9 +1607,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1307 * @generated 1607 * @generated
1308 */ 1608 */
1309 @Override 1609 @Override
1310 public EReference getFieldRelationInterpretation_Multiplicity() 1610 public EReference getAssertion_Range()
1311 { 1611 {
1312 return (EReference)fieldRelationInterpretationEClass.getEStructuralFeatures().get(2); 1612 return (EReference)assertionEClass.getEStructuralFeatures().get(1);
1313 } 1613 }
1314 1614
1315 /** 1615 /**
@@ -1318,9 +1618,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1318 * @generated 1618 * @generated
1319 */ 1619 */
1320 @Override 1620 @Override
1321 public EReference getFieldRelationInterpretation_Target() 1621 public EClass getDisjunction()
1322 { 1622 {
1323 return (EReference)fieldRelationInterpretationEClass.getEStructuralFeatures().get(3); 1623 return disjunctionEClass;
1324 } 1624 }
1325 1625
1326 /** 1626 /**
@@ -1329,9 +1629,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1329 * @generated 1629 * @generated
1330 */ 1630 */
1331 @Override 1631 @Override
1332 public EClass getGlobalRelationInterpretation() 1632 public EReference getDisjunction_Children()
1333 { 1633 {
1334 return globalRelationInterpretationEClass; 1634 return (EReference)disjunctionEClass.getEStructuralFeatures().get(0);
1335 } 1635 }
1336 1636
1337 /** 1637 /**
@@ -1340,9 +1640,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1340 * @generated 1640 * @generated
1341 */ 1641 */
1342 @Override 1642 @Override
1343 public EAttribute getGlobalRelationInterpretation_Containment() 1643 public EClass getSwitch()
1344 { 1644 {
1345 return (EAttribute)globalRelationInterpretationEClass.getEStructuralFeatures().get(0); 1645 return switchEClass;
1346 } 1646 }
1347 1647
1348 /** 1648 /**
@@ -1351,9 +1651,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1351 * @generated 1651 * @generated
1352 */ 1652 */
1353 @Override 1653 @Override
1354 public EReference getGlobalRelationInterpretation_Symbol() 1654 public EReference getSwitch_Cases()
1355 { 1655 {
1356 return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(1); 1656 return (EReference)switchEClass.getEStructuralFeatures().get(0);
1357 } 1657 }
1358 1658
1359 /** 1659 /**
@@ -1362,9 +1662,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1362 * @generated 1662 * @generated
1363 */ 1663 */
1364 @Override 1664 @Override
1365 public EReference getGlobalRelationInterpretation_SourceMultiplicity() 1665 public EClass getConjunction()
1366 { 1666 {
1367 return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(2); 1667 return conjunctionEClass;
1368 } 1668 }
1369 1669
1370 /** 1670 /**
@@ -1373,9 +1673,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1373 * @generated 1673 * @generated
1374 */ 1674 */
1375 @Override 1675 @Override
1376 public EReference getGlobalRelationInterpretation_Source() 1676 public EReference getConjunction_Children()
1377 { 1677 {
1378 return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(3); 1678 return (EReference)conjunctionEClass.getEStructuralFeatures().get(0);
1379 } 1679 }
1380 1680
1381 /** 1681 /**
@@ -1384,9 +1684,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1384 * @generated 1684 * @generated
1385 */ 1685 */
1386 @Override 1686 @Override
1387 public EReference getGlobalRelationInterpretation_TargetMultiplicity() 1687 public EClass getComparison()
1388 { 1688 {
1389 return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(4); 1689 return comparisonEClass;
1390 } 1690 }
1391 1691
1392 /** 1692 /**
@@ -1395,9 +1695,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1395 * @generated 1695 * @generated
1396 */ 1696 */
1397 @Override 1697 @Override
1398 public EReference getGlobalRelationInterpretation_Target() 1698 public EReference getComparison_Left()
1399 { 1699 {
1400 return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(5); 1700 return (EReference)comparisonEClass.getEStructuralFeatures().get(0);
1401 } 1701 }
1402 1702
1403 /** 1703 /**
@@ -1406,9 +1706,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1406 * @generated 1706 * @generated
1407 */ 1707 */
1408 @Override 1708 @Override
1409 public EClass getMultiplicityDefinition() 1709 public EAttribute getComparison_Op()
1410 { 1710 {
1411 return multiplicityDefinitionEClass; 1711 return (EAttribute)comparisonEClass.getEStructuralFeatures().get(1);
1412 } 1712 }
1413 1713
1414 /** 1714 /**
@@ -1417,9 +1717,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1417 * @generated 1717 * @generated
1418 */ 1718 */
1419 @Override 1719 @Override
1420 public EAttribute getMultiplicityDefinition_Lower() 1720 public EReference getComparison_Right()
1421 { 1721 {
1422 return (EAttribute)multiplicityDefinitionEClass.getEStructuralFeatures().get(0); 1722 return (EReference)comparisonEClass.getEStructuralFeatures().get(2);
1423 } 1723 }
1424 1724
1425 /** 1725 /**
@@ -1428,9 +1728,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1428 * @generated 1728 * @generated
1429 */ 1729 */
1430 @Override 1730 @Override
1431 public EAttribute getMultiplicityDefinition_Upper() 1731 public EClass getBinaryExpression()
1432 { 1732 {
1433 return (EAttribute)multiplicityDefinitionEClass.getEStructuralFeatures().get(1); 1733 return binaryExpressionEClass;
1434 } 1734 }
1435 1735
1436 /** 1736 /**
@@ -1439,9 +1739,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1439 * @generated 1739 * @generated
1440 */ 1740 */
1441 @Override 1741 @Override
1442 public EAttribute getMultiplicityDefinition_UnlimitedUpper() 1742 public EReference getBinaryExpression_Left()
1443 { 1743 {
1444 return (EAttribute)multiplicityDefinitionEClass.getEStructuralFeatures().get(2); 1744 return (EReference)binaryExpressionEClass.getEStructuralFeatures().get(0);
1445 } 1745 }
1446 1746
1447 /** 1747 /**
@@ -1450,9 +1750,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1450 * @generated 1750 * @generated
1451 */ 1751 */
1452 @Override 1752 @Override
1453 public EClass getBooleanTrue() 1753 public EAttribute getBinaryExpression_Op()
1454 { 1754 {
1455 return booleanTrueEClass; 1755 return (EAttribute)binaryExpressionEClass.getEStructuralFeatures().get(1);
1456 } 1756 }
1457 1757
1458 /** 1758 /**
@@ -1461,9 +1761,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1461 * @generated 1761 * @generated
1462 */ 1762 */
1463 @Override 1763 @Override
1464 public EClass getBooleanFalse() 1764 public EReference getBinaryExpression_Right()
1465 { 1765 {
1466 return booleanFalseEClass; 1766 return (EReference)binaryExpressionEClass.getEStructuralFeatures().get(2);
1467 } 1767 }
1468 1768
1469 /** 1769 /**
@@ -1472,9 +1772,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1472 * @generated 1772 * @generated
1473 */ 1773 */
1474 @Override 1774 @Override
1475 public EClass getTrue() 1775 public EClass getUnaryExpression()
1476 { 1776 {
1477 return trueEClass; 1777 return unaryExpressionEClass;
1478 } 1778 }
1479 1779
1480 /** 1780 /**
@@ -1483,9 +1783,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1483 * @generated 1783 * @generated
1484 */ 1784 */
1485 @Override 1785 @Override
1486 public EClass getFalse() 1786 public EAttribute getUnaryExpression_Op()
1487 { 1787 {
1488 return falseEClass; 1788 return (EAttribute)unaryExpressionEClass.getEStructuralFeatures().get(0);
1489 } 1789 }
1490 1790
1491 /** 1791 /**
@@ -1494,9 +1794,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1494 * @generated 1794 * @generated
1495 */ 1795 */
1496 @Override 1796 @Override
1497 public EClass getUnknown() 1797 public EReference getUnaryExpression_Body()
1498 { 1798 {
1499 return unknownEClass; 1799 return (EReference)unaryExpressionEClass.getEStructuralFeatures().get(1);
1500 } 1800 }
1501 1801
1502 /** 1802 /**
@@ -1505,9 +1805,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1505 * @generated 1805 * @generated
1506 */ 1806 */
1507 @Override 1807 @Override
1508 public EClass getError() 1808 public EEnum getMetricType()
1509 { 1809 {
1510 return errorEClass; 1810 return metricTypeEEnum;
1511 } 1811 }
1512 1812
1513 /** 1813 /**
@@ -1516,9 +1816,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1516 * @generated 1816 * @generated
1517 */ 1817 */
1518 @Override 1818 @Override
1519 public EClass getPositive() 1819 public EEnum getBinaryOperator()
1520 { 1820 {
1521 return positiveEClass; 1821 return binaryOperatorEEnum;
1522 } 1822 }
1523 1823
1524 /** 1824 /**
@@ -1527,9 +1827,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1527 * @generated 1827 * @generated
1528 */ 1828 */
1529 @Override 1829 @Override
1530 public EClass getNegative() 1830 public EEnum getUnaryOp()
1531 { 1831 {
1532 return negativeEClass; 1832 return unaryOpEEnum;
1533 } 1833 }
1534 1834
1535 /** 1835 /**
@@ -1538,9 +1838,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1538 * @generated 1838 * @generated
1539 */ 1839 */
1540 @Override 1840 @Override
1541 public EClass getReflexiveClosure() 1841 public EEnum getAggregationOp()
1542 { 1842 {
1543 return reflexiveClosureEClass; 1843 return aggregationOpEEnum;
1544 } 1844 }
1545 1845
1546 /** 1846 /**
@@ -1549,9 +1849,20 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1549 * @generated 1849 * @generated
1550 */ 1850 */
1551 @Override 1851 @Override
1552 public EClass getIrreflexiveClosure() 1852 public EEnum getLogicValue()
1553 { 1853 {
1554 return irreflexiveClosureEClass; 1854 return logicValueEEnum;
1855 }
1856
1857 /**
1858 * <!-- begin-user-doc -->
1859 * <!-- end-user-doc -->
1860 * @generated
1861 */
1862 @Override
1863 public EEnum getObjectiveKind()
1864 {
1865 return objectiveKindEEnum;
1555 } 1866 }
1556 1867
1557 /** 1868 /**
@@ -1589,149 +1900,173 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1589 createEReference(problemEClass, PROBLEM__STATEMENTS); 1900 createEReference(problemEClass, PROBLEM__STATEMENTS);
1590 1901
1591 statementEClass = createEClass(STATEMENT); 1902 statementEClass = createEClass(STATEMENT);
1903 createEAttribute(statementEClass, STATEMENT__ABSTRACT);
1904 createEAttribute(statementEClass, STATEMENT__NAME);
1905 createEReference(statementEClass, STATEMENT__SUPERCLASSES);
1906 createEReference(statementEClass, STATEMENT__MEMBERS);
1592 1907
1593 booleanValueEClass = createEClass(BOOLEAN_VALUE); 1908 predicateDefinitionEClass = createEClass(PREDICATE_DEFINITION);
1594 1909 createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__HEAD);
1595 truthValueEClass = createEClass(TRUTH_VALUE); 1910 createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__BODY);
1596 1911 createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__FUNCTIONAL);
1597 interpretationEClass = createEClass(INTERPRETATION); 1912 createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__ERROR);
1598
1599 basicInterpretationEClass = createEClass(BASIC_INTERPRETATION);
1600 createEReference(basicInterpretationEClass, BASIC_INTERPRETATION__SYMBOL);
1601 createEReference(basicInterpretationEClass, BASIC_INTERPRETATION__OBJECTS);
1602 createEReference(basicInterpretationEClass, BASIC_INTERPRETATION__VALUE);
1603
1604 symbolEClass = createEClass(SYMBOL);
1605 1913
1606 modelSymbolEClass = createEClass(MODEL_SYMBOL); 1914 unnamedErrorPrediateDefinitionEClass = createEClass(UNNAMED_ERROR_PREDIATE_DEFINITION);
1607 createEAttribute(modelSymbolEClass, MODEL_SYMBOL__NAME); 1915 createEReference(unnamedErrorPrediateDefinitionEClass, UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST);
1916 createEReference(unnamedErrorPrediateDefinitionEClass, UNNAMED_ERROR_PREDIATE_DEFINITION__BODY);
1608 1917
1609 partialitySymbolEClass = createEClass(PARTIALITY_SYMBOL); 1918 defaultDefinitionEClass = createEClass(DEFAULT_DEFINITION);
1919 createEReference(defaultDefinitionEClass, DEFAULT_DEFINITION__HEAD);
1920 createEReference(defaultDefinitionEClass, DEFAULT_DEFINITION__RANGE);
1610 1921
1611 existSymbolEClass = createEClass(EXIST_SYMBOL); 1922 externPredicateDefinitionEClass = createEClass(EXTERN_PREDICATE_DEFINITION);
1923 createEReference(externPredicateDefinitionEClass, EXTERN_PREDICATE_DEFINITION__HEAD);
1612 1924
1613 equalsSymbolEClass = createEClass(EQUALS_SYMBOL); 1925 metricDefinitionEClass = createEClass(METRIC_DEFINITION);
1926 createEReference(metricDefinitionEClass, METRIC_DEFINITION__HEAD);
1927 createEReference(metricDefinitionEClass, METRIC_DEFINITION__BODY);
1928 createEAttribute(metricDefinitionEClass, METRIC_DEFINITION__TYPE);
1614 1929
1615 dataSymbolEClass = createEClass(DATA_SYMBOL); 1930 externMetricDefinitionEClass = createEClass(EXTERN_METRIC_DEFINITION);
1931 createEAttribute(externMetricDefinitionEClass, EXTERN_METRIC_DEFINITION__TYPE);
1932 createEReference(externMetricDefinitionEClass, EXTERN_METRIC_DEFINITION__HEAD);
1616 1933
1617 booleanSymbolEClass = createEClass(BOOLEAN_SYMBOL); 1934 expressionEClass = createEClass(EXPRESSION);
1618 1935
1619 integerSymbolEClass = createEClass(INTEGER_SYMBOL); 1936 ifElseEClass = createEClass(IF_ELSE);
1937 createEReference(ifElseEClass, IF_ELSE__CONDITION);
1938 createEReference(ifElseEClass, IF_ELSE__THEN);
1939 createEReference(ifElseEClass, IF_ELSE__ELSE);
1620 1940
1621 realSymbolEClass = createEClass(REAL_SYMBOL); 1941 caseEClass = createEClass(CASE);
1942 createEReference(caseEClass, CASE__CONDITION);
1943 createEReference(caseEClass, CASE__BODY);
1622 1944
1623 stringSymbolEClass = createEClass(STRING_SYMBOL); 1945 countEClass = createEClass(COUNT);
1946 createEReference(countEClass, COUNT__BODY);
1624 1947
1625 complexObjectEClass = createEClass(COMPLEX_OBJECT); 1948 aggregationEClass = createEClass(AGGREGATION);
1949 createEAttribute(aggregationEClass, AGGREGATION__OP);
1950 createEReference(aggregationEClass, AGGREGATION__BODY);
1951 createEReference(aggregationEClass, AGGREGATION__CONDITION);
1626 1952
1627 objectEClass = createEClass(OBJECT); 1953 callEClass = createEClass(CALL);
1954 createEReference(callEClass, CALL__FUNCTOR);
1955 createEReference(callEClass, CALL__ARGUMENT_LIST);
1956 createEAttribute(callEClass, CALL__TRANSITIVE_CLOSURE);
1957 createEAttribute(callEClass, CALL__REFLEXIVE_TRANSITIVE_CLOSURE);
1628 1958
1629 namedObjectEClass = createEClass(NAMED_OBJECT); 1959 argumentListEClass = createEClass(ARGUMENT_LIST);
1630 createEAttribute(namedObjectEClass, NAMED_OBJECT__NAME); 1960 createEReference(argumentListEClass, ARGUMENT_LIST__ARGUMENTS);
1631 1961
1632 unnamedObjectEClass = createEClass(UNNAMED_OBJECT); 1962 argumentEClass = createEClass(ARGUMENT);
1633 createEAttribute(unnamedObjectEClass, UNNAMED_OBJECT__NAME);
1634 1963
1635 dataObjectEClass = createEClass(DATA_OBJECT); 1964 expressionArgumentEClass = createEClass(EXPRESSION_ARGUMENT);
1965 createEReference(expressionArgumentEClass, EXPRESSION_ARGUMENT__BODY);
1636 1966
1637 booleanObjectEClass = createEClass(BOOLEAN_OBJECT); 1967 starArgumentEClass = createEClass(STAR_ARGUMENT);
1638 createEReference(booleanObjectEClass, BOOLEAN_OBJECT__VALUE);
1639 1968
1640 intObjectEClass = createEClass(INT_OBJECT); 1969 typedArgumentEClass = createEClass(TYPED_ARGUMENT);
1641 createEAttribute(intObjectEClass, INT_OBJECT__VALUE); 1970 createEReference(typedArgumentEClass, TYPED_ARGUMENT__TYPE);
1971 createEReference(typedArgumentEClass, TYPED_ARGUMENT__VARIABLE);
1642 1972
1643 realObjectEClass = createEClass(REAL_OBJECT); 1973 typedStarArgumentEClass = createEClass(TYPED_STAR_ARGUMENT);
1644 createEAttribute(realObjectEClass, REAL_OBJECT__VALUE); 1974 createEReference(typedStarArgumentEClass, TYPED_STAR_ARGUMENT__TYPE);
1645 1975
1646 stringObjectEClass = createEClass(STRING_OBJECT); 1976 referenceEClass = createEClass(REFERENCE);
1647 createEAttribute(stringObjectEClass, STRING_OBJECT__VALUE); 1977 createEReference(referenceEClass, REFERENCE__REFERRED);
1648 1978
1649 predicateEClass = createEClass(PREDICATE); 1979 intervalEClass = createEClass(INTERVAL);
1650 createEAttribute(predicateEClass, PREDICATE__IS_ERROR); 1980 createEReference(intervalEClass, INTERVAL__LOWER_BOUND);
1651 createEReference(predicateEClass, PREDICATE__SYMBOL); 1981 createEReference(intervalEClass, INTERVAL__UPPER_BOUND);
1652 createEReference(predicateEClass, PREDICATE__PARAMETERS);
1653 createEReference(predicateEClass, PREDICATE__BODIES);
1654 1982
1655 parameterEClass = createEClass(PARAMETER); 1983 literalEClass = createEClass(LITERAL);
1656 createEReference(parameterEClass, PARAMETER__VARIABLE);
1657 createEReference(parameterEClass, PARAMETER__TYPE);
1658
1659 patternBodyEClass = createEClass(PATTERN_BODY);
1660 createEReference(patternBodyEClass, PATTERN_BODY__CONSTRAINTS);
1661 1984
1662 polarityEClass = createEClass(POLARITY); 1985 logicLiteralEClass = createEClass(LOGIC_LITERAL);
1986 createEAttribute(logicLiteralEClass, LOGIC_LITERAL__VALUE);
1663 1987
1664 constraintEClass = createEClass(CONSTRAINT); 1988 numericLiteralEClass = createEClass(NUMERIC_LITERAL);
1665 createEReference(constraintEClass, CONSTRAINT__POLARITY); 1989 createEAttribute(numericLiteralEClass, NUMERIC_LITERAL__VALUE);
1666 createEReference(constraintEClass, CONSTRAINT__SYMBOL);
1667 createEReference(constraintEClass, CONSTRAINT__PARAMS);
1668 createEReference(constraintEClass, CONSTRAINT__CLOSURE_TYPE);
1669 1990
1670 closureTypeEClass = createEClass(CLOSURE_TYPE); 1991 infinityLiteralEClass = createEClass(INFINITY_LITERAL);
1671 1992
1672 literalEClass = createEClass(LITERAL); 1993 emptyIntervalLiteralEClass = createEClass(EMPTY_INTERVAL_LITERAL);
1673 1994
1674 variableEClass = createEClass(VARIABLE); 1995 stringLiteralEClass = createEClass(STRING_LITERAL);
1675 createEAttribute(variableEClass, VARIABLE__NAME); 1996 createEAttribute(stringLiteralEClass, STRING_LITERAL__VALUE);
1676 1997
1677 allInstancesEClass = createEClass(ALL_INSTANCES); 1998 memberDefinitionEClass = createEClass(MEMBER_DEFINITION);
1678 createEReference(allInstancesEClass, ALL_INSTANCES__SYMBOL); 1999 createEAttribute(memberDefinitionEClass, MEMBER_DEFINITION__CONTAINMENT);
2000 createEReference(memberDefinitionEClass, MEMBER_DEFINITION__TYPE);
2001 createEReference(memberDefinitionEClass, MEMBER_DEFINITION__MULTIPLICITY);
2002 createEAttribute(memberDefinitionEClass, MEMBER_DEFINITION__NAME);
2003 createEReference(memberDefinitionEClass, MEMBER_DEFINITION__OPPOSITE);
1679 2004
1680 allObjectsEClass = createEClass(ALL_OBJECTS); 2005 multiplicityEClass = createEClass(MULTIPLICITY);
1681 2006
1682 defaultInterpretationEClass = createEClass(DEFAULT_INTERPRETATION); 2007 manyMultiplicityEClass = createEClass(MANY_MULTIPLICITY);
1683 createEReference(defaultInterpretationEClass, DEFAULT_INTERPRETATION__INTERPRETATION);
1684 2008
1685 cdInterpretationEClass = createEClass(CD_INTERPRETATION); 2009 exactMultiplicityEClass = createEClass(EXACT_MULTIPLICITY);
2010 createEAttribute(exactMultiplicityEClass, EXACT_MULTIPLICITY__MULTIPLICITY);
1686 2011
1687 classInterpretationEClass = createEClass(CLASS_INTERPRETATION); 2012 boundedMultiplicityEClass = createEClass(BOUNDED_MULTIPLICITY);
1688 createEAttribute(classInterpretationEClass, CLASS_INTERPRETATION__ABSTRACT); 2013 createEAttribute(boundedMultiplicityEClass, BOUNDED_MULTIPLICITY__LOWER_BOUND);
1689 createEReference(classInterpretationEClass, CLASS_INTERPRETATION__SYMBOL); 2014 createEAttribute(boundedMultiplicityEClass, BOUNDED_MULTIPLICITY__UPPER_BOUND);
1690 createEReference(classInterpretationEClass, CLASS_INTERPRETATION__SUPERTYPES);
1691 createEReference(classInterpretationEClass, CLASS_INTERPRETATION__FIELT);
1692 2015
1693 enumInterpretationEClass = createEClass(ENUM_INTERPRETATION); 2016 scopeDefinitionEClass = createEClass(SCOPE_DEFINITION);
1694 createEReference(enumInterpretationEClass, ENUM_INTERPRETATION__SYMBOL); 2017 createEReference(scopeDefinitionEClass, SCOPE_DEFINITION__TYPE);
1695 createEReference(enumInterpretationEClass, ENUM_INTERPRETATION__OBJECTS);
1696 2018
1697 fieldRelationInterpretationEClass = createEClass(FIELD_RELATION_INTERPRETATION); 2019 exactScopeDefinitionEClass = createEClass(EXACT_SCOPE_DEFINITION);
1698 createEAttribute(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__CONTAINMENT); 2020 createEAttribute(exactScopeDefinitionEClass, EXACT_SCOPE_DEFINITION__EXACT_SCOPE);
1699 createEReference(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__SYMBOL);
1700 createEReference(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__MULTIPLICITY);
1701 createEReference(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__TARGET);
1702 2021
1703 globalRelationInterpretationEClass = createEClass(GLOBAL_RELATION_INTERPRETATION); 2022 boundedScopeDefinitionEClass = createEClass(BOUNDED_SCOPE_DEFINITION);
1704 createEAttribute(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__CONTAINMENT); 2023 createEAttribute(boundedScopeDefinitionEClass, BOUNDED_SCOPE_DEFINITION__LOWER_BOUND);
1705 createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__SYMBOL); 2024 createEAttribute(boundedScopeDefinitionEClass, BOUNDED_SCOPE_DEFINITION__UPPER_BOUND);
1706 createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY);
1707 createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__SOURCE);
1708 createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY);
1709 createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__TARGET);
1710 2025
1711 multiplicityDefinitionEClass = createEClass(MULTIPLICITY_DEFINITION); 2026 lowerBoundedScopeDefinitionEClass = createEClass(LOWER_BOUNDED_SCOPE_DEFINITION);
1712 createEAttribute(multiplicityDefinitionEClass, MULTIPLICITY_DEFINITION__LOWER); 2027 createEAttribute(lowerBoundedScopeDefinitionEClass, LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND);
1713 createEAttribute(multiplicityDefinitionEClass, MULTIPLICITY_DEFINITION__UPPER);
1714 createEAttribute(multiplicityDefinitionEClass, MULTIPLICITY_DEFINITION__UNLIMITED_UPPER);
1715 2028
1716 booleanTrueEClass = createEClass(BOOLEAN_TRUE); 2029 objectiveDefinitionEClass = createEClass(OBJECTIVE_DEFINITION);
2030 createEAttribute(objectiveDefinitionEClass, OBJECTIVE_DEFINITION__KIND);
2031 createEReference(objectiveDefinitionEClass, OBJECTIVE_DEFINITION__OBJECTIVE);
1717 2032
1718 booleanFalseEClass = createEClass(BOOLEAN_FALSE); 2033 namedElementEClass = createEClass(NAMED_ELEMENT);
2034 createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
1719 2035
1720 trueEClass = createEClass(TRUE); 2036 assertionEClass = createEClass(ASSERTION);
2037 createEReference(assertionEClass, ASSERTION__BODY);
2038 createEReference(assertionEClass, ASSERTION__RANGE);
1721 2039
1722 falseEClass = createEClass(FALSE); 2040 disjunctionEClass = createEClass(DISJUNCTION);
2041 createEReference(disjunctionEClass, DISJUNCTION__CHILDREN);
1723 2042
1724 unknownEClass = createEClass(UNKNOWN); 2043 switchEClass = createEClass(SWITCH);
2044 createEReference(switchEClass, SWITCH__CASES);
1725 2045
1726 errorEClass = createEClass(ERROR); 2046 conjunctionEClass = createEClass(CONJUNCTION);
2047 createEReference(conjunctionEClass, CONJUNCTION__CHILDREN);
1727 2048
1728 positiveEClass = createEClass(POSITIVE); 2049 comparisonEClass = createEClass(COMPARISON);
2050 createEReference(comparisonEClass, COMPARISON__LEFT);
2051 createEAttribute(comparisonEClass, COMPARISON__OP);
2052 createEReference(comparisonEClass, COMPARISON__RIGHT);
1729 2053
1730 negativeEClass = createEClass(NEGATIVE); 2054 binaryExpressionEClass = createEClass(BINARY_EXPRESSION);
2055 createEReference(binaryExpressionEClass, BINARY_EXPRESSION__LEFT);
2056 createEAttribute(binaryExpressionEClass, BINARY_EXPRESSION__OP);
2057 createEReference(binaryExpressionEClass, BINARY_EXPRESSION__RIGHT);
1731 2058
1732 reflexiveClosureEClass = createEClass(REFLEXIVE_CLOSURE); 2059 unaryExpressionEClass = createEClass(UNARY_EXPRESSION);
2060 createEAttribute(unaryExpressionEClass, UNARY_EXPRESSION__OP);
2061 createEReference(unaryExpressionEClass, UNARY_EXPRESSION__BODY);
1733 2062
1734 irreflexiveClosureEClass = createEClass(IRREFLEXIVE_CLOSURE); 2063 // Create enums
2064 metricTypeEEnum = createEEnum(METRIC_TYPE);
2065 binaryOperatorEEnum = createEEnum(BINARY_OPERATOR);
2066 unaryOpEEnum = createEEnum(UNARY_OP);
2067 aggregationOpEEnum = createEEnum(AGGREGATION_OP);
2068 logicValueEEnum = createEEnum(LOGIC_VALUE);
2069 objectiveKindEEnum = createEEnum(OBJECTIVE_KIND);
1735 } 2070 }
1736 2071
1737 /** 2072 /**
@@ -1763,195 +2098,255 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan
1763 // Set bounds for type parameters 2098 // Set bounds for type parameters
1764 2099
1765 // Add supertypes to classes 2100 // Add supertypes to classes
1766 interpretationEClass.getESuperTypes().add(this.getStatement()); 2101 predicateDefinitionEClass.getESuperTypes().add(this.getStatement());
1767 basicInterpretationEClass.getESuperTypes().add(this.getInterpretation()); 2102 unnamedErrorPrediateDefinitionEClass.getESuperTypes().add(this.getStatement());
1768 modelSymbolEClass.getESuperTypes().add(this.getSymbol()); 2103 defaultDefinitionEClass.getESuperTypes().add(this.getStatement());
1769 partialitySymbolEClass.getESuperTypes().add(this.getSymbol()); 2104 externPredicateDefinitionEClass.getESuperTypes().add(this.getStatement());
1770 existSymbolEClass.getESuperTypes().add(this.getPartialitySymbol()); 2105 metricDefinitionEClass.getESuperTypes().add(this.getStatement());
1771 equalsSymbolEClass.getESuperTypes().add(this.getPartialitySymbol()); 2106 externMetricDefinitionEClass.getESuperTypes().add(this.getStatement());
1772 dataSymbolEClass.getESuperTypes().add(this.getSymbol()); 2107 expressionEClass.getESuperTypes().add(this.getStatement());
1773 booleanSymbolEClass.getESuperTypes().add(this.getDataSymbol()); 2108 ifElseEClass.getESuperTypes().add(this.getExpression());
1774 integerSymbolEClass.getESuperTypes().add(this.getDataSymbol()); 2109 caseEClass.getESuperTypes().add(this.getExpression());
1775 realSymbolEClass.getESuperTypes().add(this.getDataSymbol()); 2110 countEClass.getESuperTypes().add(this.getExpression());
1776 stringSymbolEClass.getESuperTypes().add(this.getDataSymbol()); 2111 aggregationEClass.getESuperTypes().add(this.getExpression());
1777 objectEClass.getESuperTypes().add(this.getComplexObject()); 2112 callEClass.getESuperTypes().add(this.getExpression());
1778 namedObjectEClass.getESuperTypes().add(this.getObject()); 2113 expressionArgumentEClass.getESuperTypes().add(this.getArgument());
1779 namedObjectEClass.getESuperTypes().add(this.getLiteral()); 2114 starArgumentEClass.getESuperTypes().add(this.getArgument());
1780 unnamedObjectEClass.getESuperTypes().add(this.getObject()); 2115 typedArgumentEClass.getESuperTypes().add(this.getArgument());
1781 dataObjectEClass.getESuperTypes().add(this.getObject()); 2116 typedStarArgumentEClass.getESuperTypes().add(this.getArgument());
1782 dataObjectEClass.getESuperTypes().add(this.getLiteral()); 2117 referenceEClass.getESuperTypes().add(this.getExpression());
1783 booleanObjectEClass.getESuperTypes().add(this.getDataObject()); 2118 intervalEClass.getESuperTypes().add(this.getExpression());
1784 intObjectEClass.getESuperTypes().add(this.getDataObject()); 2119 literalEClass.getESuperTypes().add(this.getExpression());
1785 realObjectEClass.getESuperTypes().add(this.getDataObject()); 2120 logicLiteralEClass.getESuperTypes().add(this.getLiteral());
1786 stringObjectEClass.getESuperTypes().add(this.getDataObject()); 2121 numericLiteralEClass.getESuperTypes().add(this.getLiteral());
1787 predicateEClass.getESuperTypes().add(this.getStatement()); 2122 infinityLiteralEClass.getESuperTypes().add(this.getLiteral());
1788 variableEClass.getESuperTypes().add(this.getLiteral()); 2123 emptyIntervalLiteralEClass.getESuperTypes().add(this.getLiteral());
1789 allInstancesEClass.getESuperTypes().add(this.getComplexObject()); 2124 stringLiteralEClass.getESuperTypes().add(this.getLiteral());
1790 allObjectsEClass.getESuperTypes().add(this.getComplexObject()); 2125 manyMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
1791 defaultInterpretationEClass.getESuperTypes().add(this.getInterpretation()); 2126 exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
1792 cdInterpretationEClass.getESuperTypes().add(this.getInterpretation()); 2127 boundedMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
1793 classInterpretationEClass.getESuperTypes().add(this.getCDInterpretation()); 2128 scopeDefinitionEClass.getESuperTypes().add(this.getStatement());
1794 enumInterpretationEClass.getESuperTypes().add(this.getCDInterpretation()); 2129 exactScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition());
1795 globalRelationInterpretationEClass.getESuperTypes().add(this.getCDInterpretation()); 2130 boundedScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition());
1796 booleanTrueEClass.getESuperTypes().add(this.getBooleanValue()); 2131 lowerBoundedScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition());
1797 booleanFalseEClass.getESuperTypes().add(this.getBooleanValue()); 2132 objectiveDefinitionEClass.getESuperTypes().add(this.getStatement());
1798 trueEClass.getESuperTypes().add(this.getTruthValue()); 2133 assertionEClass.getESuperTypes().add(this.getStatement());
1799 falseEClass.getESuperTypes().add(this.getTruthValue()); 2134 disjunctionEClass.getESuperTypes().add(this.getExpression());
1800 unknownEClass.getESuperTypes().add(this.getTruthValue()); 2135 switchEClass.getESuperTypes().add(this.getExpression());
1801 errorEClass.getESuperTypes().add(this.getTruthValue()); 2136 conjunctionEClass.getESuperTypes().add(this.getExpression());
1802 positiveEClass.getESuperTypes().add(this.getPolarity()); 2137 comparisonEClass.getESuperTypes().add(this.getExpression());
1803 negativeEClass.getESuperTypes().add(this.getPolarity()); 2138 binaryExpressionEClass.getESuperTypes().add(this.getExpression());
1804 reflexiveClosureEClass.getESuperTypes().add(this.getClosureType()); 2139 unaryExpressionEClass.getESuperTypes().add(this.getExpression());
1805 irreflexiveClosureEClass.getESuperTypes().add(this.getClosureType());
1806 2140
1807 // Initialize classes and features; add operations and parameters 2141 // Initialize classes and features; add operations and parameters
1808 initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2142 initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1809 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); 2143 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);
1810 2144
1811 initEClass(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2145 initEClass(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2146 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);
2147 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);
2148 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);
2149 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);
1812 2150
1813 initEClass(booleanValueEClass, BooleanValue.class, "BooleanValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2151 initEClass(predicateDefinitionEClass, PredicateDefinition.class, "PredicateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1814 2152 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);
1815 initEClass(truthValueEClass, TruthValue.class, "TruthValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2153 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);
1816 2154 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);
1817 initEClass(interpretationEClass, Interpretation.class, "Interpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2155 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);
1818
1819 initEClass(basicInterpretationEClass, BasicInterpretation.class, "BasicInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1820 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);
1821 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);
1822 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);
1823
1824 initEClass(symbolEClass, Symbol.class, "Symbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1825
1826 initEClass(modelSymbolEClass, ModelSymbol.class, "ModelSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1827 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);
1828
1829 initEClass(partialitySymbolEClass, PartialitySymbol.class, "PartialitySymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1830 2156
1831 initEClass(existSymbolEClass, ExistSymbol.class, "ExistSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2157 initEClass(unnamedErrorPrediateDefinitionEClass, UnnamedErrorPrediateDefinition.class, "UnnamedErrorPrediateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2158 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);
2159 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);
1832 2160
1833 initEClass(equalsSymbolEClass, EqualsSymbol.class, "EqualsSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2161 initEClass(defaultDefinitionEClass, DefaultDefinition.class, "DefaultDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2162 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);
2163 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);
1834 2164
1835 initEClass(dataSymbolEClass, DataSymbol.class, "DataSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2165 initEClass(externPredicateDefinitionEClass, ExternPredicateDefinition.class, "ExternPredicateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2166 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);
1836 2167
1837 initEClass(booleanSymbolEClass, BooleanSymbol.class, "BooleanSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2168 initEClass(metricDefinitionEClass, MetricDefinition.class, "MetricDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2169 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);
2170 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);
2171 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);
1838 2172
1839 initEClass(integerSymbolEClass, IntegerSymbol.class, "IntegerSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2173 initEClass(externMetricDefinitionEClass, ExternMetricDefinition.class, "ExternMetricDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2174 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);
2175 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);
1840 2176
1841 initEClass(realSymbolEClass, RealSymbol.class, "RealSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2177 initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1842 2178
1843 initEClass(stringSymbolEClass, StringSymbol.class, "StringSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2179 initEClass(ifElseEClass, IfElse.class, "IfElse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2180 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);
2181 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);
2182 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);
1844 2183
1845 initEClass(complexObjectEClass, ComplexObject.class, "ComplexObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2184 initEClass(caseEClass, Case.class, "Case", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2185 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);
2186 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);
1846 2187
1847 initEClass(objectEClass, org.eclipse.viatra.solver.language.solverLanguage.Object.class, "Object", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2188 initEClass(countEClass, Count.class, "Count", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2189 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);
1848 2190
1849 initEClass(namedObjectEClass, NamedObject.class, "NamedObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2191 initEClass(aggregationEClass, Aggregation.class, "Aggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1850 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); 2192 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);
2193 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);
2194 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);
1851 2195
1852 initEClass(unnamedObjectEClass, UnnamedObject.class, "UnnamedObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2196 initEClass(callEClass, Call.class, "Call", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1853 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); 2197 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);
2198 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);
2199 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);
2200 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);
1854 2201
1855 initEClass(dataObjectEClass, DataObject.class, "DataObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2202 initEClass(argumentListEClass, ArgumentList.class, "ArgumentList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2203 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);
1856 2204
1857 initEClass(booleanObjectEClass, BooleanObject.class, "BooleanObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2205 initEClass(argumentEClass, Argument.class, "Argument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1858 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);
1859 2206
1860 initEClass(intObjectEClass, IntObject.class, "IntObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2207 initEClass(expressionArgumentEClass, ExpressionArgument.class, "ExpressionArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1861 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); 2208 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);
1862 2209
1863 initEClass(realObjectEClass, RealObject.class, "RealObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2210 initEClass(starArgumentEClass, StarArgument.class, "StarArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1864 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);
1865 2211
1866 initEClass(stringObjectEClass, StringObject.class, "StringObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2212 initEClass(typedArgumentEClass, TypedArgument.class, "TypedArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1867 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); 2213 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);
2214 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);
1868 2215
1869 initEClass(predicateEClass, Predicate.class, "Predicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2216 initEClass(typedStarArgumentEClass, TypedStarArgument.class, "TypedStarArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1870 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); 2217 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);
1871 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);
1872 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);
1873 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);
1874 2218
1875 initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2219 initEClass(referenceEClass, Reference.class, "Reference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1876 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); 2220 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);
1877 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);
1878 2221
1879 initEClass(patternBodyEClass, PatternBody.class, "PatternBody", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2222 initEClass(intervalEClass, Interval.class, "Interval", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1880 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); 2223 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);
1881 2224 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);
1882 initEClass(polarityEClass, Polarity.class, "Polarity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1883
1884 initEClass(constraintEClass, Constraint.class, "Constraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1885 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);
1886 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);
1887 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);
1888 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);
1889
1890 initEClass(closureTypeEClass, ClosureType.class, "ClosureType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1891 2225
1892 initEClass(literalEClass, Literal.class, "Literal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2226 initEClass(literalEClass, Literal.class, "Literal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1893 2227
1894 initEClass(variableEClass, Variable.class, "Variable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2228 initEClass(logicLiteralEClass, LogicLiteral.class, "LogicLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1895 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); 2229 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);
1896
1897 initEClass(allInstancesEClass, AllInstances.class, "AllInstances", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1898 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);
1899
1900 initEClass(allObjectsEClass, AllObjects.class, "AllObjects", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1901
1902 initEClass(defaultInterpretationEClass, DefaultInterpretation.class, "DefaultInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1903 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);
1904
1905 initEClass(cdInterpretationEClass, CDInterpretation.class, "CDInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1906
1907 initEClass(classInterpretationEClass, ClassInterpretation.class, "ClassInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1908 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);
1909 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);
1910 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);
1911 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);
1912
1913 initEClass(enumInterpretationEClass, EnumInterpretation.class, "EnumInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1914 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);
1915 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);
1916
1917 initEClass(fieldRelationInterpretationEClass, FieldRelationInterpretation.class, "FieldRelationInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1918 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);
1919 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);
1920 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);
1921 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);
1922
1923 initEClass(globalRelationInterpretationEClass, GlobalRelationInterpretation.class, "GlobalRelationInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1924 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);
1925 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);
1926 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);
1927 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);
1928 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);
1929 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);
1930
1931 initEClass(multiplicityDefinitionEClass, MultiplicityDefinition.class, "MultiplicityDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1932 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);
1933 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);
1934 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);
1935
1936 initEClass(booleanTrueEClass, BooleanTrue.class, "BooleanTrue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1937
1938 initEClass(booleanFalseEClass, BooleanFalse.class, "BooleanFalse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1939
1940 initEClass(trueEClass, True.class, "True", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1941
1942 initEClass(falseEClass, False.class, "False", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1943
1944 initEClass(unknownEClass, Unknown.class, "Unknown", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1945 2230
1946 initEClass(errorEClass, org.eclipse.viatra.solver.language.solverLanguage.Error.class, "Error", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2231 initEClass(numericLiteralEClass, NumericLiteral.class, "NumericLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2232 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);
1947 2233
1948 initEClass(positiveEClass, Positive.class, "Positive", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2234 initEClass(infinityLiteralEClass, InfinityLiteral.class, "InfinityLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1949 2235
1950 initEClass(negativeEClass, Negative.class, "Negative", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2236 initEClass(emptyIntervalLiteralEClass, EmptyIntervalLiteral.class, "EmptyIntervalLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1951 2237
1952 initEClass(reflexiveClosureEClass, ReflexiveClosure.class, "ReflexiveClosure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2238 initEClass(stringLiteralEClass, StringLiteral.class, "StringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2239 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);
1953 2240
1954 initEClass(irreflexiveClosureEClass, IrreflexiveClosure.class, "IrreflexiveClosure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 2241 initEClass(memberDefinitionEClass, MemberDefinition.class, "MemberDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2242 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);
2243 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);
2244 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);
2245 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);
2246 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);
2247
2248 initEClass(multiplicityEClass, Multiplicity.class, "Multiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2249
2250 initEClass(manyMultiplicityEClass, ManyMultiplicity.class, "ManyMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2251
2252 initEClass(exactMultiplicityEClass, ExactMultiplicity.class, "ExactMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2253 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);
2254
2255 initEClass(boundedMultiplicityEClass, BoundedMultiplicity.class, "BoundedMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2256 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);
2257 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);
2258
2259 initEClass(scopeDefinitionEClass, ScopeDefinition.class, "ScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2260 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);
2261
2262 initEClass(exactScopeDefinitionEClass, ExactScopeDefinition.class, "ExactScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2263 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);
2264
2265 initEClass(boundedScopeDefinitionEClass, BoundedScopeDefinition.class, "BoundedScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2266 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);
2267 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);
2268
2269 initEClass(lowerBoundedScopeDefinitionEClass, LowerBoundedScopeDefinition.class, "LowerBoundedScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2270 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);
2271
2272 initEClass(objectiveDefinitionEClass, ObjectiveDefinition.class, "ObjectiveDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2273 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);
2274 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);
2275
2276 initEClass(namedElementEClass, NamedElement.class, "NamedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2277 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);
2278
2279 initEClass(assertionEClass, Assertion.class, "Assertion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2280 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);
2281 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);
2282
2283 initEClass(disjunctionEClass, Disjunction.class, "Disjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2284 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);
2285
2286 initEClass(switchEClass, Switch.class, "Switch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2287 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);
2288
2289 initEClass(conjunctionEClass, Conjunction.class, "Conjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2290 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);
2291
2292 initEClass(comparisonEClass, Comparison.class, "Comparison", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2293 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);
2294 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);
2295 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);
2296
2297 initEClass(binaryExpressionEClass, BinaryExpression.class, "BinaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2298 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);
2299 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);
2300 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);
2301
2302 initEClass(unaryExpressionEClass, UnaryExpression.class, "UnaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
2303 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);
2304 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);
2305
2306 // Initialize enums and add enum literals
2307 initEEnum(metricTypeEEnum, MetricType.class, "MetricType");
2308 addEEnumLiteral(metricTypeEEnum, MetricType.INT);
2309 addEEnumLiteral(metricTypeEEnum, MetricType.REAL);
2310
2311 initEEnum(binaryOperatorEEnum, BinaryOperator.class, "BinaryOperator");
2312 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.EQ);
2313 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.NOT_EQ);
2314 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.LESS);
2315 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.LESS_EQ);
2316 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.GREATER);
2317 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.GREATER_EQ);
2318 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.IN);
2319 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.ADD);
2320 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.SUB);
2321 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.MUL);
2322 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.DIV);
2323 addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.POW);
2324
2325 initEEnum(unaryOpEEnum, UnaryOp.class, "UnaryOp");
2326 addEEnumLiteral(unaryOpEEnum, UnaryOp.NEG);
2327 addEEnumLiteral(unaryOpEEnum, UnaryOp.PLUS);
2328 addEEnumLiteral(unaryOpEEnum, UnaryOp.MINUS);
2329 addEEnumLiteral(unaryOpEEnum, UnaryOp.MAY);
2330 addEEnumLiteral(unaryOpEEnum, UnaryOp.MUST);
2331 addEEnumLiteral(unaryOpEEnum, UnaryOp.CURRENT);
2332
2333 initEEnum(aggregationOpEEnum, AggregationOp.class, "AggregationOp");
2334 addEEnumLiteral(aggregationOpEEnum, AggregationOp.ONLY);
2335 addEEnumLiteral(aggregationOpEEnum, AggregationOp.SUM);
2336 addEEnumLiteral(aggregationOpEEnum, AggregationOp.PROD);
2337 addEEnumLiteral(aggregationOpEEnum, AggregationOp.AVG);
2338 addEEnumLiteral(aggregationOpEEnum, AggregationOp.MIN);
2339 addEEnumLiteral(aggregationOpEEnum, AggregationOp.MAX);
2340
2341 initEEnum(logicValueEEnum, LogicValue.class, "LogicValue");
2342 addEEnumLiteral(logicValueEEnum, LogicValue.TRUE);
2343 addEEnumLiteral(logicValueEEnum, LogicValue.FALSE);
2344 addEEnumLiteral(logicValueEEnum, LogicValue.UNKNOWN);
2345 addEEnumLiteral(logicValueEEnum, LogicValue.ERROR);
2346
2347 initEEnum(objectiveKindEEnum, ObjectiveKind.class, "ObjectiveKind");
2348 addEEnumLiteral(objectiveKindEEnum, ObjectiveKind.MINIMIZE);
2349 addEEnumLiteral(objectiveKindEEnum, ObjectiveKind.MAXIMIZE);
1955 2350
1956 // Create resource 2351 // Create resource
1957 createResource(eNS_URI); 2352 createResource(eNS_URI);
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringSymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StarArgumentImpl.java
index faf3f06a..b0cecaab 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringSymbolImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StarArgumentImpl.java
@@ -1,28 +1,28 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
6import org.eclipse.emf.ecore.EClass; 6import org.eclipse.emf.ecore.EClass;
7 7
8import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 8import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
9import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; 9import org.eclipse.viatra.solver.language.solverLanguage.StarArgument;
10 10
11/** 11/**
12 * <!-- begin-user-doc --> 12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>String Symbol</b></em>'. 13 * An implementation of the model object '<em><b>Star Argument</b></em>'.
14 * <!-- end-user-doc --> 14 * <!-- end-user-doc -->
15 * 15 *
16 * @generated 16 * @generated
17 */ 17 */
18public class StringSymbolImpl extends DataSymbolImpl implements StringSymbol 18public class StarArgumentImpl extends ArgumentImpl implements StarArgument
19{ 19{
20 /** 20 /**
21 * <!-- begin-user-doc --> 21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc --> 22 * <!-- end-user-doc -->
23 * @generated 23 * @generated
24 */ 24 */
25 protected StringSymbolImpl() 25 protected StarArgumentImpl()
26 { 26 {
27 super(); 27 super();
28 } 28 }
@@ -35,7 +35,7 @@ public class StringSymbolImpl extends DataSymbolImpl implements StringSymbol
35 @Override 35 @Override
36 protected EClass eStaticClass() 36 protected EClass eStaticClass()
37 { 37 {
38 return SolverLanguagePackage.Literals.STRING_SYMBOL; 38 return SolverLanguagePackage.Literals.STAR_ARGUMENT;
39 } 39 }
40 40
41} //StringSymbolImpl 41} //StarArgumentImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StatementImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StatementImpl.java
index 6e660396..dbd697ec 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StatementImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StatementImpl.java
@@ -1,12 +1,27 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
6import java.util.Collection;
7
8import org.eclipse.emf.common.notify.Notification;
9import org.eclipse.emf.common.notify.NotificationChain;
10
11import org.eclipse.emf.common.util.EList;
12
6import org.eclipse.emf.ecore.EClass; 13import org.eclipse.emf.ecore.EClass;
14import org.eclipse.emf.ecore.InternalEObject;
7 15
16import org.eclipse.emf.ecore.impl.ENotificationImpl;
8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 17import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
9 18
19import org.eclipse.emf.ecore.util.EObjectContainmentEList;
20import org.eclipse.emf.ecore.util.EObjectResolvingEList;
21import org.eclipse.emf.ecore.util.InternalEList;
22
23import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition;
24import org.eclipse.viatra.solver.language.solverLanguage.NamedElement;
10import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 25import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
11import org.eclipse.viatra.solver.language.solverLanguage.Statement; 26import org.eclipse.viatra.solver.language.solverLanguage.Statement;
12 27
@@ -14,12 +29,81 @@ import org.eclipse.viatra.solver.language.solverLanguage.Statement;
14 * <!-- begin-user-doc --> 29 * <!-- begin-user-doc -->
15 * An implementation of the model object '<em><b>Statement</b></em>'. 30 * An implementation of the model object '<em><b>Statement</b></em>'.
16 * <!-- end-user-doc --> 31 * <!-- end-user-doc -->
32 * <p>
33 * The following features are implemented:
34 * </p>
35 * <ul>
36 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StatementImpl#isAbstract <em>Abstract</em>}</li>
37 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StatementImpl#getName <em>Name</em>}</li>
38 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StatementImpl#getSuperclasses <em>Superclasses</em>}</li>
39 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StatementImpl#getMembers <em>Members</em>}</li>
40 * </ul>
17 * 41 *
18 * @generated 42 * @generated
19 */ 43 */
20public class StatementImpl extends MinimalEObjectImpl.Container implements Statement 44public class StatementImpl extends MinimalEObjectImpl.Container implements Statement
21{ 45{
22 /** 46 /**
47 * The default value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @see #isAbstract()
51 * @generated
52 * @ordered
53 */
54 protected static final boolean ABSTRACT_EDEFAULT = false;
55
56 /**
57 * The cached value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @see #isAbstract()
61 * @generated
62 * @ordered
63 */
64 protected boolean abstract_ = ABSTRACT_EDEFAULT;
65
66 /**
67 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @see #getName()
71 * @generated
72 * @ordered
73 */
74 protected static final String NAME_EDEFAULT = null;
75
76 /**
77 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @see #getName()
81 * @generated
82 * @ordered
83 */
84 protected String name = NAME_EDEFAULT;
85
86 /**
87 * The cached value of the '{@link #getSuperclasses() <em>Superclasses</em>}' reference list.
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @see #getSuperclasses()
91 * @generated
92 * @ordered
93 */
94 protected EList<NamedElement> superclasses;
95
96 /**
97 * The cached value of the '{@link #getMembers() <em>Members</em>}' containment reference list.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @see #getMembers()
101 * @generated
102 * @ordered
103 */
104 protected EList<MemberDefinition> members;
105
106 /**
23 * <!-- begin-user-doc --> 107 * <!-- begin-user-doc -->
24 * <!-- end-user-doc --> 108 * <!-- end-user-doc -->
25 * @generated 109 * @generated
@@ -40,4 +124,218 @@ public class StatementImpl extends MinimalEObjectImpl.Container implements State
40 return SolverLanguagePackage.Literals.STATEMENT; 124 return SolverLanguagePackage.Literals.STATEMENT;
41 } 125 }
42 126
127 /**
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 @Override
133 public boolean isAbstract()
134 {
135 return abstract_;
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 @Override
144 public void setAbstract(boolean newAbstract)
145 {
146 boolean oldAbstract = abstract_;
147 abstract_ = newAbstract;
148 if (eNotificationRequired())
149 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.STATEMENT__ABSTRACT, oldAbstract, abstract_));
150 }
151
152 /**
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 */
157 @Override
158 public String getName()
159 {
160 return name;
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 @Override
169 public void setName(String newName)
170 {
171 String oldName = name;
172 name = newName;
173 if (eNotificationRequired())
174 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.STATEMENT__NAME, oldName, name));
175 }
176
177 /**
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @generated
181 */
182 @Override
183 public EList<NamedElement> getSuperclasses()
184 {
185 if (superclasses == null)
186 {
187 superclasses = new EObjectResolvingEList<NamedElement>(NamedElement.class, this, SolverLanguagePackage.STATEMENT__SUPERCLASSES);
188 }
189 return superclasses;
190 }
191
192 /**
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @generated
196 */
197 @Override
198 public EList<MemberDefinition> getMembers()
199 {
200 if (members == null)
201 {
202 members = new EObjectContainmentEList<MemberDefinition>(MemberDefinition.class, this, SolverLanguagePackage.STATEMENT__MEMBERS);
203 }
204 return members;
205 }
206
207 /**
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 */
212 @Override
213 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
214 {
215 switch (featureID)
216 {
217 case SolverLanguagePackage.STATEMENT__MEMBERS:
218 return ((InternalEList<?>)getMembers()).basicRemove(otherEnd, msgs);
219 }
220 return super.eInverseRemove(otherEnd, featureID, msgs);
221 }
222
223 /**
224 * <!-- begin-user-doc -->
225 * <!-- end-user-doc -->
226 * @generated
227 */
228 @Override
229 public Object eGet(int featureID, boolean resolve, boolean coreType)
230 {
231 switch (featureID)
232 {
233 case SolverLanguagePackage.STATEMENT__ABSTRACT:
234 return isAbstract();
235 case SolverLanguagePackage.STATEMENT__NAME:
236 return getName();
237 case SolverLanguagePackage.STATEMENT__SUPERCLASSES:
238 return getSuperclasses();
239 case SolverLanguagePackage.STATEMENT__MEMBERS:
240 return getMembers();
241 }
242 return super.eGet(featureID, resolve, coreType);
243 }
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 @SuppressWarnings("unchecked")
251 @Override
252 public void eSet(int featureID, Object newValue)
253 {
254 switch (featureID)
255 {
256 case SolverLanguagePackage.STATEMENT__ABSTRACT:
257 setAbstract((Boolean)newValue);
258 return;
259 case SolverLanguagePackage.STATEMENT__NAME:
260 setName((String)newValue);
261 return;
262 case SolverLanguagePackage.STATEMENT__SUPERCLASSES:
263 getSuperclasses().clear();
264 getSuperclasses().addAll((Collection<? extends NamedElement>)newValue);
265 return;
266 case SolverLanguagePackage.STATEMENT__MEMBERS:
267 getMembers().clear();
268 getMembers().addAll((Collection<? extends MemberDefinition>)newValue);
269 return;
270 }
271 super.eSet(featureID, newValue);
272 }
273
274 /**
275 * <!-- begin-user-doc -->
276 * <!-- end-user-doc -->
277 * @generated
278 */
279 @Override
280 public void eUnset(int featureID)
281 {
282 switch (featureID)
283 {
284 case SolverLanguagePackage.STATEMENT__ABSTRACT:
285 setAbstract(ABSTRACT_EDEFAULT);
286 return;
287 case SolverLanguagePackage.STATEMENT__NAME:
288 setName(NAME_EDEFAULT);
289 return;
290 case SolverLanguagePackage.STATEMENT__SUPERCLASSES:
291 getSuperclasses().clear();
292 return;
293 case SolverLanguagePackage.STATEMENT__MEMBERS:
294 getMembers().clear();
295 return;
296 }
297 super.eUnset(featureID);
298 }
299
300 /**
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 */
305 @Override
306 public boolean eIsSet(int featureID)
307 {
308 switch (featureID)
309 {
310 case SolverLanguagePackage.STATEMENT__ABSTRACT:
311 return abstract_ != ABSTRACT_EDEFAULT;
312 case SolverLanguagePackage.STATEMENT__NAME:
313 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
314 case SolverLanguagePackage.STATEMENT__SUPERCLASSES:
315 return superclasses != null && !superclasses.isEmpty();
316 case SolverLanguagePackage.STATEMENT__MEMBERS:
317 return members != null && !members.isEmpty();
318 }
319 return super.eIsSet(featureID);
320 }
321
322 /**
323 * <!-- begin-user-doc -->
324 * <!-- end-user-doc -->
325 * @generated
326 */
327 @Override
328 public String toString()
329 {
330 if (eIsProxy()) return super.toString();
331
332 StringBuilder result = new StringBuilder(super.toString());
333 result.append(" (abstract: ");
334 result.append(abstract_);
335 result.append(", name: ");
336 result.append(name);
337 result.append(')');
338 return result.toString();
339 }
340
43} //StatementImpl 341} //StatementImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringObjectImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringLiteralImpl.java
index 7a7866a7..2b0b2720 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringObjectImpl.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringLiteralImpl.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl; 4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5 5
@@ -10,22 +10,22 @@ import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.impl.ENotificationImpl; 10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11 11
12import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; 12import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
13import org.eclipse.viatra.solver.language.solverLanguage.StringObject; 13import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral;
14 14
15/** 15/**
16 * <!-- begin-user-doc --> 16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>String Object</b></em>'. 17 * An implementation of the model object '<em><b>String Literal</b></em>'.
18 * <!-- end-user-doc --> 18 * <!-- end-user-doc -->
19 * <p> 19 * <p>
20 * The following features are implemented: 20 * The following features are implemented:
21 * </p> 21 * </p>
22 * <ul> 22 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl#getValue <em>Value</em>}</li> 23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl#getValue <em>Value</em>}</li>
24 * </ul> 24 * </ul>
25 * 25 *
26 * @generated 26 * @generated
27 */ 27 */
28public class StringObjectImpl extends DataObjectImpl implements StringObject 28public class StringLiteralImpl extends LiteralImpl implements StringLiteral
29{ 29{
30 /** 30 /**
31 * The default value of the '{@link #getValue() <em>Value</em>}' attribute. 31 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
@@ -52,7 +52,7 @@ public class StringObjectImpl extends DataObjectImpl implements StringObject
52 * <!-- end-user-doc --> 52 * <!-- end-user-doc -->
53 * @generated 53 * @generated
54 */ 54 */
55 protected StringObjectImpl() 55 protected StringLiteralImpl()
56 { 56 {
57 super(); 57 super();
58 } 58 }
@@ -65,7 +65,7 @@ public class StringObjectImpl extends DataObjectImpl implements StringObject
65 @Override 65 @Override
66 protected EClass eStaticClass() 66 protected EClass eStaticClass()
67 { 67 {
68 return SolverLanguagePackage.Literals.STRING_OBJECT; 68 return SolverLanguagePackage.Literals.STRING_LITERAL;
69 } 69 }
70 70
71 /** 71 /**
@@ -90,7 +90,7 @@ public class StringObjectImpl extends DataObjectImpl implements StringObject
90 String oldValue = value; 90 String oldValue = value;
91 value = newValue; 91 value = newValue;
92 if (eNotificationRequired()) 92 if (eNotificationRequired())
93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.STRING_OBJECT__VALUE, oldValue, value)); 93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.STRING_LITERAL__VALUE, oldValue, value));
94 } 94 }
95 95
96 /** 96 /**
@@ -103,7 +103,7 @@ public class StringObjectImpl extends DataObjectImpl implements StringObject
103 { 103 {
104 switch (featureID) 104 switch (featureID)
105 { 105 {
106 case SolverLanguagePackage.STRING_OBJECT__VALUE: 106 case SolverLanguagePackage.STRING_LITERAL__VALUE:
107 return getValue(); 107 return getValue();
108 } 108 }
109 return super.eGet(featureID, resolve, coreType); 109 return super.eGet(featureID, resolve, coreType);
@@ -119,7 +119,7 @@ public class StringObjectImpl extends DataObjectImpl implements StringObject
119 { 119 {
120 switch (featureID) 120 switch (featureID)
121 { 121 {
122 case SolverLanguagePackage.STRING_OBJECT__VALUE: 122 case SolverLanguagePackage.STRING_LITERAL__VALUE:
123 setValue((String)newValue); 123 setValue((String)newValue);
124 return; 124 return;
125 } 125 }
@@ -136,7 +136,7 @@ public class StringObjectImpl extends DataObjectImpl implements StringObject
136 { 136 {
137 switch (featureID) 137 switch (featureID)
138 { 138 {
139 case SolverLanguagePackage.STRING_OBJECT__VALUE: 139 case SolverLanguagePackage.STRING_LITERAL__VALUE:
140 setValue(VALUE_EDEFAULT); 140 setValue(VALUE_EDEFAULT);
141 return; 141 return;
142 } 142 }
@@ -153,7 +153,7 @@ public class StringObjectImpl extends DataObjectImpl implements StringObject
153 { 153 {
154 switch (featureID) 154 switch (featureID)
155 { 155 {
156 case SolverLanguagePackage.STRING_OBJECT__VALUE: 156 case SolverLanguagePackage.STRING_LITERAL__VALUE:
157 return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); 157 return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
158 } 158 }
159 return super.eIsSet(featureID); 159 return super.eIsSet(featureID);
@@ -176,4 +176,4 @@ public class StringObjectImpl extends DataObjectImpl implements StringObject
176 return result.toString(); 176 return result.toString();
177 } 177 }
178 178
179} //StringObjectImpl 179} //StringLiteralImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SwitchImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SwitchImpl.java
new file mode 100644
index 00000000..fefd5be6
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SwitchImpl.java
@@ -0,0 +1,167 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import java.util.Collection;
7
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.util.EObjectContainmentEList;
16import org.eclipse.emf.ecore.util.InternalEList;
17
18import org.eclipse.viatra.solver.language.solverLanguage.Case;
19import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
20import org.eclipse.viatra.solver.language.solverLanguage.Switch;
21
22/**
23 * <!-- begin-user-doc -->
24 * An implementation of the model object '<em><b>Switch</b></em>'.
25 * <!-- end-user-doc -->
26 * <p>
27 * The following features are implemented:
28 * </p>
29 * <ul>
30 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl#getCases <em>Cases</em>}</li>
31 * </ul>
32 *
33 * @generated
34 */
35public class SwitchImpl extends ExpressionImpl implements Switch
36{
37 /**
38 * The cached value of the '{@link #getCases() <em>Cases</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getCases()
42 * @generated
43 * @ordered
44 */
45 protected EList<Case> cases;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected SwitchImpl()
53 {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass()
64 {
65 return SolverLanguagePackage.Literals.SWITCH;
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 @Override
74 public EList<Case> getCases()
75 {
76 if (cases == null)
77 {
78 cases = new EObjectContainmentEList<Case>(Case.class, this, SolverLanguagePackage.SWITCH__CASES);
79 }
80 return cases;
81 }
82
83 /**
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @generated
87 */
88 @Override
89 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
90 {
91 switch (featureID)
92 {
93 case SolverLanguagePackage.SWITCH__CASES:
94 return ((InternalEList<?>)getCases()).basicRemove(otherEnd, msgs);
95 }
96 return super.eInverseRemove(otherEnd, featureID, msgs);
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public Object eGet(int featureID, boolean resolve, boolean coreType)
106 {
107 switch (featureID)
108 {
109 case SolverLanguagePackage.SWITCH__CASES:
110 return getCases();
111 }
112 return super.eGet(featureID, resolve, coreType);
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 @SuppressWarnings("unchecked")
121 @Override
122 public void eSet(int featureID, Object newValue)
123 {
124 switch (featureID)
125 {
126 case SolverLanguagePackage.SWITCH__CASES:
127 getCases().clear();
128 getCases().addAll((Collection<? extends Case>)newValue);
129 return;
130 }
131 super.eSet(featureID, newValue);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @Override
140 public void eUnset(int featureID)
141 {
142 switch (featureID)
143 {
144 case SolverLanguagePackage.SWITCH__CASES:
145 getCases().clear();
146 return;
147 }
148 super.eUnset(featureID);
149 }
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 @Override
157 public boolean eIsSet(int featureID)
158 {
159 switch (featureID)
160 {
161 case SolverLanguagePackage.SWITCH__CASES:
162 return cases != null && !cases.isEmpty();
163 }
164 return super.eIsSet(featureID);
165 }
166
167} //SwitchImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SymbolImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SymbolImpl.java
deleted file mode 100644
index 15d1294e..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SymbolImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
9
10import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
11import org.eclipse.viatra.solver.language.solverLanguage.Symbol;
12
13/**
14 * <!-- begin-user-doc -->
15 * An implementation of the model object '<em><b>Symbol</b></em>'.
16 * <!-- end-user-doc -->
17 *
18 * @generated
19 */
20public class SymbolImpl extends MinimalEObjectImpl.Container implements Symbol
21{
22 /**
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @generated
26 */
27 protected SymbolImpl()
28 {
29 super();
30 }
31
32 /**
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 @Override
38 protected EClass eStaticClass()
39 {
40 return SolverLanguagePackage.Literals.SYMBOL;
41 }
42
43} //SymbolImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TrueImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TrueImpl.java
deleted file mode 100644
index c0e04a9a..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TrueImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
9import org.eclipse.viatra.solver.language.solverLanguage.True;
10
11/**
12 * <!-- begin-user-doc -->
13 * An implementation of the model object '<em><b>True</b></em>'.
14 * <!-- end-user-doc -->
15 *
16 * @generated
17 */
18public class TrueImpl extends TruthValueImpl implements True
19{
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected TrueImpl()
26 {
27 super();
28 }
29
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 @Override
36 protected EClass eStaticClass()
37 {
38 return SolverLanguagePackage.Literals.TRUE;
39 }
40
41} //TrueImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TruthValueImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TruthValueImpl.java
deleted file mode 100644
index f5b0fba6..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TruthValueImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.ecore.EClass;
7
8import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
9
10import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
11import org.eclipse.viatra.solver.language.solverLanguage.TruthValue;
12
13/**
14 * <!-- begin-user-doc -->
15 * An implementation of the model object '<em><b>Truth Value</b></em>'.
16 * <!-- end-user-doc -->
17 *
18 * @generated
19 */
20public class TruthValueImpl extends MinimalEObjectImpl.Container implements TruthValue
21{
22 /**
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @generated
26 */
27 protected TruthValueImpl()
28 {
29 super();
30 }
31
32 /**
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 @Override
38 protected EClass eStaticClass()
39 {
40 return SolverLanguagePackage.Literals.TRUTH_VALUE;
41 }
42
43} //TruthValueImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedArgumentImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedArgumentImpl.java
new file mode 100644
index 00000000..2d93f402
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedArgumentImpl.java
@@ -0,0 +1,242 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.InternalEObject;
10
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
12
13import org.eclipse.viatra.solver.language.solverLanguage.NamedElement;
14import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
15import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Typed Argument</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl#getType <em>Type</em>}</li>
26 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl#getVariable <em>Variable</em>}</li>
27 * </ul>
28 *
29 * @generated
30 */
31public class TypedArgumentImpl extends ArgumentImpl implements TypedArgument
32{
33 /**
34 * The cached value of the '{@link #getType() <em>Type</em>}' reference.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @see #getType()
38 * @generated
39 * @ordered
40 */
41 protected NamedElement type;
42
43 /**
44 * The cached value of the '{@link #getVariable() <em>Variable</em>}' reference.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @see #getVariable()
48 * @generated
49 * @ordered
50 */
51 protected NamedElement variable;
52
53 /**
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @generated
57 */
58 protected TypedArgumentImpl()
59 {
60 super();
61 }
62
63 /**
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 @Override
69 protected EClass eStaticClass()
70 {
71 return SolverLanguagePackage.Literals.TYPED_ARGUMENT;
72 }
73
74 /**
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @generated
78 */
79 @Override
80 public NamedElement getType()
81 {
82 if (type != null && type.eIsProxy())
83 {
84 InternalEObject oldType = (InternalEObject)type;
85 type = (NamedElement)eResolveProxy(oldType);
86 if (type != oldType)
87 {
88 if (eNotificationRequired())
89 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.TYPED_ARGUMENT__TYPE, oldType, type));
90 }
91 }
92 return type;
93 }
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 public NamedElement basicGetType()
101 {
102 return type;
103 }
104
105 /**
106 * <!-- begin-user-doc -->
107 * <!-- end-user-doc -->
108 * @generated
109 */
110 @Override
111 public void setType(NamedElement newType)
112 {
113 NamedElement oldType = type;
114 type = newType;
115 if (eNotificationRequired())
116 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.TYPED_ARGUMENT__TYPE, oldType, type));
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public NamedElement getVariable()
126 {
127 if (variable != null && variable.eIsProxy())
128 {
129 InternalEObject oldVariable = (InternalEObject)variable;
130 variable = (NamedElement)eResolveProxy(oldVariable);
131 if (variable != oldVariable)
132 {
133 if (eNotificationRequired())
134 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE, oldVariable, variable));
135 }
136 }
137 return variable;
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 public NamedElement basicGetVariable()
146 {
147 return variable;
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 @Override
156 public void setVariable(NamedElement newVariable)
157 {
158 NamedElement oldVariable = variable;
159 variable = newVariable;
160 if (eNotificationRequired())
161 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE, oldVariable, variable));
162 }
163
164 /**
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 @Override
170 public Object eGet(int featureID, boolean resolve, boolean coreType)
171 {
172 switch (featureID)
173 {
174 case SolverLanguagePackage.TYPED_ARGUMENT__TYPE:
175 if (resolve) return getType();
176 return basicGetType();
177 case SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE:
178 if (resolve) return getVariable();
179 return basicGetVariable();
180 }
181 return super.eGet(featureID, resolve, coreType);
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 @Override
190 public void eSet(int featureID, Object newValue)
191 {
192 switch (featureID)
193 {
194 case SolverLanguagePackage.TYPED_ARGUMENT__TYPE:
195 setType((NamedElement)newValue);
196 return;
197 case SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE:
198 setVariable((NamedElement)newValue);
199 return;
200 }
201 super.eSet(featureID, newValue);
202 }
203
204 /**
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @generated
208 */
209 @Override
210 public void eUnset(int featureID)
211 {
212 switch (featureID)
213 {
214 case SolverLanguagePackage.TYPED_ARGUMENT__TYPE:
215 setType((NamedElement)null);
216 return;
217 case SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE:
218 setVariable((NamedElement)null);
219 return;
220 }
221 super.eUnset(featureID);
222 }
223
224 /**
225 * <!-- begin-user-doc -->
226 * <!-- end-user-doc -->
227 * @generated
228 */
229 @Override
230 public boolean eIsSet(int featureID)
231 {
232 switch (featureID)
233 {
234 case SolverLanguagePackage.TYPED_ARGUMENT__TYPE:
235 return type != null;
236 case SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE:
237 return variable != null;
238 }
239 return super.eIsSet(featureID);
240 }
241
242} //TypedArgumentImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedStarArgumentImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedStarArgumentImpl.java
new file mode 100644
index 00000000..dd2b46bc
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedStarArgumentImpl.java
@@ -0,0 +1,175 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.InternalEObject;
10
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
12
13import org.eclipse.viatra.solver.language.solverLanguage.NamedElement;
14import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
15import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Typed Star Argument</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl#getType <em>Type</em>}</li>
26 * </ul>
27 *
28 * @generated
29 */
30public class TypedStarArgumentImpl extends ArgumentImpl implements TypedStarArgument
31{
32 /**
33 * The cached value of the '{@link #getType() <em>Type</em>}' reference.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @see #getType()
37 * @generated
38 * @ordered
39 */
40 protected NamedElement type;
41
42 /**
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @generated
46 */
47 protected TypedStarArgumentImpl()
48 {
49 super();
50 }
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 @Override
58 protected EClass eStaticClass()
59 {
60 return SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT;
61 }
62
63 /**
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 @Override
69 public NamedElement getType()
70 {
71 if (type != null && type.eIsProxy())
72 {
73 InternalEObject oldType = (InternalEObject)type;
74 type = (NamedElement)eResolveProxy(oldType);
75 if (type != oldType)
76 {
77 if (eNotificationRequired())
78 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE, oldType, type));
79 }
80 }
81 return type;
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 public NamedElement basicGetType()
90 {
91 return type;
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 @Override
100 public void setType(NamedElement newType)
101 {
102 NamedElement oldType = type;
103 type = newType;
104 if (eNotificationRequired())
105 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE, oldType, type));
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 @Override
114 public Object eGet(int featureID, boolean resolve, boolean coreType)
115 {
116 switch (featureID)
117 {
118 case SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE:
119 if (resolve) return getType();
120 return basicGetType();
121 }
122 return super.eGet(featureID, resolve, coreType);
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 @Override
131 public void eSet(int featureID, Object newValue)
132 {
133 switch (featureID)
134 {
135 case SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE:
136 setType((NamedElement)newValue);
137 return;
138 }
139 super.eSet(featureID, newValue);
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public void eUnset(int featureID)
149 {
150 switch (featureID)
151 {
152 case SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE:
153 setType((NamedElement)null);
154 return;
155 }
156 super.eUnset(featureID);
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 @Override
165 public boolean eIsSet(int featureID)
166 {
167 switch (featureID)
168 {
169 case SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE:
170 return type != null;
171 }
172 return super.eIsSet(featureID);
173 }
174
175} //TypedStarArgumentImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnaryExpressionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnaryExpressionImpl.java
new file mode 100644
index 00000000..ee5ebfbb
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnaryExpressionImpl.java
@@ -0,0 +1,270 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.Expression;
15import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
16import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression;
17import org.eclipse.viatra.solver.language.solverLanguage.UnaryOp;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Unary Expression</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl#getOp <em>Op</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl#getBody <em>Body</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public class UnaryExpressionImpl extends ExpressionImpl implements UnaryExpression
34{
35 /**
36 * The default value of the '{@link #getOp() <em>Op</em>}' attribute.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getOp()
40 * @generated
41 * @ordered
42 */
43 protected static final UnaryOp OP_EDEFAULT = UnaryOp.NEG;
44
45 /**
46 * The cached value of the '{@link #getOp() <em>Op</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getOp()
50 * @generated
51 * @ordered
52 */
53 protected UnaryOp op = OP_EDEFAULT;
54
55 /**
56 * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #getBody()
60 * @generated
61 * @ordered
62 */
63 protected Expression body;
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 protected UnaryExpressionImpl()
71 {
72 super();
73 }
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 @Override
81 protected EClass eStaticClass()
82 {
83 return SolverLanguagePackage.Literals.UNARY_EXPRESSION;
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 @Override
92 public UnaryOp getOp()
93 {
94 return op;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public void setOp(UnaryOp newOp)
104 {
105 UnaryOp oldOp = op;
106 op = newOp == null ? OP_EDEFAULT : newOp;
107 if (eNotificationRequired())
108 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNARY_EXPRESSION__OP, oldOp, op));
109 }
110
111 /**
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @generated
115 */
116 @Override
117 public Expression getBody()
118 {
119 return body;
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs)
128 {
129 Expression oldBody = body;
130 body = newBody;
131 if (eNotificationRequired())
132 {
133 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNARY_EXPRESSION__BODY, oldBody, newBody);
134 if (msgs == null) msgs = notification; else msgs.add(notification);
135 }
136 return msgs;
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public void setBody(Expression newBody)
146 {
147 if (newBody != body)
148 {
149 NotificationChain msgs = null;
150 if (body != null)
151 msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNARY_EXPRESSION__BODY, null, msgs);
152 if (newBody != null)
153 msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNARY_EXPRESSION__BODY, null, msgs);
154 msgs = basicSetBody(newBody, msgs);
155 if (msgs != null) msgs.dispatch();
156 }
157 else if (eNotificationRequired())
158 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNARY_EXPRESSION__BODY, newBody, newBody));
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 @Override
167 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
168 {
169 switch (featureID)
170 {
171 case SolverLanguagePackage.UNARY_EXPRESSION__BODY:
172 return basicSetBody(null, msgs);
173 }
174 return super.eInverseRemove(otherEnd, featureID, msgs);
175 }
176
177 /**
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @generated
181 */
182 @Override
183 public Object eGet(int featureID, boolean resolve, boolean coreType)
184 {
185 switch (featureID)
186 {
187 case SolverLanguagePackage.UNARY_EXPRESSION__OP:
188 return getOp();
189 case SolverLanguagePackage.UNARY_EXPRESSION__BODY:
190 return getBody();
191 }
192 return super.eGet(featureID, resolve, coreType);
193 }
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 @Override
201 public void eSet(int featureID, Object newValue)
202 {
203 switch (featureID)
204 {
205 case SolverLanguagePackage.UNARY_EXPRESSION__OP:
206 setOp((UnaryOp)newValue);
207 return;
208 case SolverLanguagePackage.UNARY_EXPRESSION__BODY:
209 setBody((Expression)newValue);
210 return;
211 }
212 super.eSet(featureID, newValue);
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 @Override
221 public void eUnset(int featureID)
222 {
223 switch (featureID)
224 {
225 case SolverLanguagePackage.UNARY_EXPRESSION__OP:
226 setOp(OP_EDEFAULT);
227 return;
228 case SolverLanguagePackage.UNARY_EXPRESSION__BODY:
229 setBody((Expression)null);
230 return;
231 }
232 super.eUnset(featureID);
233 }
234
235 /**
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @generated
239 */
240 @Override
241 public boolean eIsSet(int featureID)
242 {
243 switch (featureID)
244 {
245 case SolverLanguagePackage.UNARY_EXPRESSION__OP:
246 return op != OP_EDEFAULT;
247 case SolverLanguagePackage.UNARY_EXPRESSION__BODY:
248 return body != null;
249 }
250 return super.eIsSet(featureID);
251 }
252
253 /**
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 @Override
259 public String toString()
260 {
261 if (eIsProxy()) return super.toString();
262
263 StringBuilder result = new StringBuilder(super.toString());
264 result.append(" (op: ");
265 result.append(op);
266 result.append(')');
267 return result.toString();
268 }
269
270} //UnaryExpressionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedErrorPrediateDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedErrorPrediateDefinitionImpl.java
new file mode 100644
index 00000000..cd6a3271
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedErrorPrediateDefinitionImpl.java
@@ -0,0 +1,270 @@
1/**
2 * generated by Xtext 2.21.0
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.ecore.EClass;
10import org.eclipse.emf.ecore.InternalEObject;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList;
15import org.eclipse.viatra.solver.language.solverLanguage.Expression;
16import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
17import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Unnamed Error Prediate Definition</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl#getArgumentList <em>Argument List</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl#getBody <em>Body</em>}</li>
29 * </ul>
30 *
31 * @generated
32 */
33public class UnnamedErrorPrediateDefinitionImpl extends StatementImpl implements UnnamedErrorPrediateDefinition
34{
35 /**
36 * The cached value of the '{@link #getArgumentList() <em>Argument List</em>}' containment reference.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getArgumentList()
40 * @generated
41 * @ordered
42 */
43 protected ArgumentList argumentList;
44
45 /**
46 * The cached value of the '{@link #getBody() <em>Body</em>}' containment reference.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getBody()
50 * @generated
51 * @ordered
52 */
53 protected Expression body;
54
55 /**
56 * <!-- begin-user-doc -->
57 * <!-- end-user-doc -->
58 * @generated
59 */
60 protected UnnamedErrorPrediateDefinitionImpl()
61 {
62 super();
63 }
64
65 /**
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @generated
69 */
70 @Override
71 protected EClass eStaticClass()
72 {
73 return SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION;
74 }
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 @Override
82 public ArgumentList getArgumentList()
83 {
84 return argumentList;
85 }
86
87 /**
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
90 * @generated
91 */
92 public NotificationChain basicSetArgumentList(ArgumentList newArgumentList, NotificationChain msgs)
93 {
94 ArgumentList oldArgumentList = argumentList;
95 argumentList = newArgumentList;
96 if (eNotificationRequired())
97 {
98 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST, oldArgumentList, newArgumentList);
99 if (msgs == null) msgs = notification; else msgs.add(notification);
100 }
101 return msgs;
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 @Override
110 public void setArgumentList(ArgumentList newArgumentList)
111 {
112 if (newArgumentList != argumentList)
113 {
114 NotificationChain msgs = null;
115 if (argumentList != null)
116 msgs = ((InternalEObject)argumentList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST, null, msgs);
117 if (newArgumentList != null)
118 msgs = ((InternalEObject)newArgumentList).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST, null, msgs);
119 msgs = basicSetArgumentList(newArgumentList, msgs);
120 if (msgs != null) msgs.dispatch();
121 }
122 else if (eNotificationRequired())
123 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST, newArgumentList, newArgumentList));
124 }
125
126 /**
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 */
131 @Override
132 public Expression getBody()
133 {
134 return body;
135 }
136
137 /**
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @generated
141 */
142 public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs)
143 {
144 Expression oldBody = body;
145 body = newBody;
146 if (eNotificationRequired())
147 {
148 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY, oldBody, newBody);
149 if (msgs == null) msgs = notification; else msgs.add(notification);
150 }
151 return msgs;
152 }
153
154 /**
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @generated
158 */
159 @Override
160 public void setBody(Expression newBody)
161 {
162 if (newBody != body)
163 {
164 NotificationChain msgs = null;
165 if (body != null)
166 msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY, null, msgs);
167 if (newBody != null)
168 msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY, null, msgs);
169 msgs = basicSetBody(newBody, msgs);
170 if (msgs != null) msgs.dispatch();
171 }
172 else if (eNotificationRequired())
173 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY, newBody, newBody));
174 }
175
176 /**
177 * <!-- begin-user-doc -->
178 * <!-- end-user-doc -->
179 * @generated
180 */
181 @Override
182 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
183 {
184 switch (featureID)
185 {
186 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST:
187 return basicSetArgumentList(null, msgs);
188 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY:
189 return basicSetBody(null, msgs);
190 }
191 return super.eInverseRemove(otherEnd, featureID, msgs);
192 }
193
194 /**
195 * <!-- begin-user-doc -->
196 * <!-- end-user-doc -->
197 * @generated
198 */
199 @Override
200 public Object eGet(int featureID, boolean resolve, boolean coreType)
201 {
202 switch (featureID)
203 {
204 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST:
205 return getArgumentList();
206 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY:
207 return getBody();
208 }
209 return super.eGet(featureID, resolve, coreType);
210 }
211
212 /**
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @generated
216 */
217 @Override
218 public void eSet(int featureID, Object newValue)
219 {
220 switch (featureID)
221 {
222 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST:
223 setArgumentList((ArgumentList)newValue);
224 return;
225 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY:
226 setBody((Expression)newValue);
227 return;
228 }
229 super.eSet(featureID, newValue);
230 }
231
232 /**
233 * <!-- begin-user-doc -->
234 * <!-- end-user-doc -->
235 * @generated
236 */
237 @Override
238 public void eUnset(int featureID)
239 {
240 switch (featureID)
241 {
242 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST:
243 setArgumentList((ArgumentList)null);
244 return;
245 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY:
246 setBody((Expression)null);
247 return;
248 }
249 super.eUnset(featureID);
250 }
251
252 /**
253 * <!-- begin-user-doc -->
254 * <!-- end-user-doc -->
255 * @generated
256 */
257 @Override
258 public boolean eIsSet(int featureID)
259 {
260 switch (featureID)
261 {
262 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST:
263 return argumentList != null;
264 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY:
265 return body != null;
266 }
267 return super.eIsSet(featureID);
268 }
269
270} //UnnamedErrorPrediateDefinitionImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedObjectImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedObjectImpl.java
deleted file mode 100644
index 39bec164..00000000
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedObjectImpl.java
+++ /dev/null
@@ -1,179 +0,0 @@
1/**
2 * generated by Xtext 2.18.0.M3
3 */
4package org.eclipse.viatra.solver.language.solverLanguage.impl;
5
6import org.eclipse.emf.common.notify.Notification;
7
8import org.eclipse.emf.ecore.EClass;
9
10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11
12import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
13import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Unnamed Object</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl#getName <em>Name</em>}</li>
24 * </ul>
25 *
26 * @generated
27 */
28public class UnnamedObjectImpl extends ObjectImpl implements UnnamedObject
29{
30 /**
31 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @see #getName()
35 * @generated
36 * @ordered
37 */
38 protected static final String NAME_EDEFAULT = null;
39
40 /**
41 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @see #getName()
45 * @generated
46 * @ordered
47 */
48 protected String name = NAME_EDEFAULT;
49
50 /**
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @generated
54 */
55 protected UnnamedObjectImpl()
56 {
57 super();
58 }
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 @Override
66 protected EClass eStaticClass()
67 {
68 return SolverLanguagePackage.Literals.UNNAMED_OBJECT;
69 }
70
71 /**
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 */
76 @Override
77 public String getName()
78 {
79 return name;
80 }
81
82 /**
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @generated
86 */
87 @Override
88 public void setName(String newName)
89 {
90 String oldName = name;
91 name = newName;
92 if (eNotificationRequired())
93 eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_OBJECT__NAME, oldName, name));
94 }
95
96 /**
97 * <!-- begin-user-doc -->
98 * <!-- end-user-doc -->
99 * @generated
100 */
101 @Override
102 public Object eGet(int featureID, boolean resolve, boolean coreType)
103 {
104 switch (featureID)
105 {
106 case SolverLanguagePackage.UNNAMED_OBJECT__NAME:
107 return getName();
108 }
109 return super.eGet(featureID, resolve, coreType);
110 }
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 @Override
118 public void eSet(int featureID, Object newValue)
119 {
120 switch (featureID)
121 {
122 case SolverLanguagePackage.UNNAMED_OBJECT__NAME:
123 setName((String)newValue);
124 return;
125 }
126 super.eSet(featureID, newValue);
127 }
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 @Override
135 public void eUnset(int featureID)
136 {
137 switch (featureID)
138 {
139 case SolverLanguagePackage.UNNAMED_OBJECT__NAME:
140 setName(NAME_EDEFAULT);
141 return;
142 }
143 super.eUnset(featureID);
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 @Override
152 public boolean eIsSet(int featureID)
153 {
154 switch (featureID)
155 {
156 case SolverLanguagePackage.UNNAMED_OBJECT__NAME:
157 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
158 }
159 return super.eIsSet(featureID);
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 @Override
168 public String toString()
169 {
170 if (eIsProxy()) return super.toString();
171
172 StringBuilder result = new StringBuilder(super.toString());
173 result.append(" (name: ");
174 result.append(name);
175 result.append(')');
176 return result.toString();
177 }
178
179} //UnnamedObjectImpl
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageAdapterFactory.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageAdapterFactory.java
index 9931598c..e46d6779 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageAdapterFactory.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageAdapterFactory.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.util; 4package org.eclipse.viatra.solver.language.solverLanguage.util;
5 5
@@ -10,57 +10,7 @@ import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
10 10
11import org.eclipse.emf.ecore.EObject; 11import org.eclipse.emf.ecore.EObject;
12 12
13import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; 13import org.eclipse.viatra.solver.language.solverLanguage.*;
14import org.eclipse.viatra.solver.language.solverLanguage.AllObjects;
15import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation;
16import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse;
17import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject;
18import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol;
19import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue;
20import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue;
21import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation;
22import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation;
23import org.eclipse.viatra.solver.language.solverLanguage.ClosureType;
24import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject;
25import org.eclipse.viatra.solver.language.solverLanguage.Constraint;
26import org.eclipse.viatra.solver.language.solverLanguage.DataObject;
27import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol;
28import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation;
29import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation;
30import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol;
31import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol;
32import org.eclipse.viatra.solver.language.solverLanguage.False;
33import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation;
34import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation;
35import org.eclipse.viatra.solver.language.solverLanguage.IntObject;
36import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol;
37import org.eclipse.viatra.solver.language.solverLanguage.Interpretation;
38import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure;
39import org.eclipse.viatra.solver.language.solverLanguage.Literal;
40import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol;
41import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition;
42import org.eclipse.viatra.solver.language.solverLanguage.NamedObject;
43import org.eclipse.viatra.solver.language.solverLanguage.Negative;
44import org.eclipse.viatra.solver.language.solverLanguage.Parameter;
45import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol;
46import org.eclipse.viatra.solver.language.solverLanguage.PatternBody;
47import org.eclipse.viatra.solver.language.solverLanguage.Polarity;
48import org.eclipse.viatra.solver.language.solverLanguage.Positive;
49import org.eclipse.viatra.solver.language.solverLanguage.Predicate;
50import org.eclipse.viatra.solver.language.solverLanguage.Problem;
51import org.eclipse.viatra.solver.language.solverLanguage.RealObject;
52import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol;
53import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure;
54import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
55import org.eclipse.viatra.solver.language.solverLanguage.Statement;
56import org.eclipse.viatra.solver.language.solverLanguage.StringObject;
57import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol;
58import org.eclipse.viatra.solver.language.solverLanguage.Symbol;
59import org.eclipse.viatra.solver.language.solverLanguage.True;
60import org.eclipse.viatra.solver.language.solverLanguage.TruthValue;
61import org.eclipse.viatra.solver.language.solverLanguage.Unknown;
62import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject;
63import org.eclipse.viatra.solver.language.solverLanguage.Variable;
64 14
65/** 15/**
66 * <!-- begin-user-doc --> 16 * <!-- begin-user-doc -->
@@ -136,254 +86,224 @@ public class SolverLanguageAdapterFactory extends AdapterFactoryImpl
136 return createStatementAdapter(); 86 return createStatementAdapter();
137 } 87 }
138 @Override 88 @Override
139 public Adapter caseBooleanValue(BooleanValue object) 89 public Adapter casePredicateDefinition(PredicateDefinition object)
140 { 90 {
141 return createBooleanValueAdapter(); 91 return createPredicateDefinitionAdapter();
142 } 92 }
143 @Override 93 @Override
144 public Adapter caseTruthValue(TruthValue object) 94 public Adapter caseUnnamedErrorPrediateDefinition(UnnamedErrorPrediateDefinition object)
145 { 95 {
146 return createTruthValueAdapter(); 96 return createUnnamedErrorPrediateDefinitionAdapter();
147 } 97 }
148 @Override 98 @Override
149 public Adapter caseInterpretation(Interpretation object) 99 public Adapter caseDefaultDefinition(DefaultDefinition object)
150 { 100 {
151 return createInterpretationAdapter(); 101 return createDefaultDefinitionAdapter();
152 } 102 }
153 @Override 103 @Override
154 public Adapter caseBasicInterpretation(BasicInterpretation object) 104 public Adapter caseExternPredicateDefinition(ExternPredicateDefinition object)
155 { 105 {
156 return createBasicInterpretationAdapter(); 106 return createExternPredicateDefinitionAdapter();
157 } 107 }
158 @Override 108 @Override
159 public Adapter caseSymbol(Symbol object) 109 public Adapter caseMetricDefinition(MetricDefinition object)
160 { 110 {
161 return createSymbolAdapter(); 111 return createMetricDefinitionAdapter();
162 } 112 }
163 @Override 113 @Override
164 public Adapter caseModelSymbol(ModelSymbol object) 114 public Adapter caseExternMetricDefinition(ExternMetricDefinition object)
165 { 115 {
166 return createModelSymbolAdapter(); 116 return createExternMetricDefinitionAdapter();
167 } 117 }
168 @Override 118 @Override
169 public Adapter casePartialitySymbol(PartialitySymbol object) 119 public Adapter caseExpression(Expression object)
170 { 120 {
171 return createPartialitySymbolAdapter(); 121 return createExpressionAdapter();
172 } 122 }
173 @Override 123 @Override
174 public Adapter caseExistSymbol(ExistSymbol object) 124 public Adapter caseIfElse(IfElse object)
175 { 125 {
176 return createExistSymbolAdapter(); 126 return createIfElseAdapter();
177 } 127 }
178 @Override 128 @Override
179 public Adapter caseEqualsSymbol(EqualsSymbol object) 129 public Adapter caseCase(Case object)
180 { 130 {
181 return createEqualsSymbolAdapter(); 131 return createCaseAdapter();
182 } 132 }
183 @Override 133 @Override
184 public Adapter caseDataSymbol(DataSymbol object) 134 public Adapter caseCount(Count object)
185 { 135 {
186 return createDataSymbolAdapter(); 136 return createCountAdapter();
187 } 137 }
188 @Override 138 @Override
189 public Adapter caseBooleanSymbol(BooleanSymbol object) 139 public Adapter caseAggregation(Aggregation object)
190 { 140 {
191 return createBooleanSymbolAdapter(); 141 return createAggregationAdapter();
192 } 142 }
193 @Override 143 @Override
194 public Adapter caseIntegerSymbol(IntegerSymbol object) 144 public Adapter caseCall(Call object)
195 { 145 {
196 return createIntegerSymbolAdapter(); 146 return createCallAdapter();
197 } 147 }
198 @Override 148 @Override
199 public Adapter caseRealSymbol(RealSymbol object) 149 public Adapter caseArgumentList(ArgumentList object)
200 { 150 {
201 return createRealSymbolAdapter(); 151 return createArgumentListAdapter();
202 } 152 }
203 @Override 153 @Override
204 public Adapter caseStringSymbol(StringSymbol object) 154 public Adapter caseArgument(Argument object)
205 { 155 {
206 return createStringSymbolAdapter(); 156 return createArgumentAdapter();
207 } 157 }
208 @Override 158 @Override
209 public Adapter caseComplexObject(ComplexObject object) 159 public Adapter caseExpressionArgument(ExpressionArgument object)
210 { 160 {
211 return createComplexObjectAdapter(); 161 return createExpressionArgumentAdapter();
212 } 162 }
213 @Override 163 @Override
214 public Adapter caseObject(org.eclipse.viatra.solver.language.solverLanguage.Object object) 164 public Adapter caseStarArgument(StarArgument object)
215 { 165 {
216 return createObjectAdapter(); 166 return createStarArgumentAdapter();
217 } 167 }
218 @Override 168 @Override
219 public Adapter caseNamedObject(NamedObject object) 169 public Adapter caseTypedArgument(TypedArgument object)
220 { 170 {
221 return createNamedObjectAdapter(); 171 return createTypedArgumentAdapter();
222 } 172 }
223 @Override 173 @Override
224 public Adapter caseUnnamedObject(UnnamedObject object) 174 public Adapter caseTypedStarArgument(TypedStarArgument object)
225 { 175 {
226 return createUnnamedObjectAdapter(); 176 return createTypedStarArgumentAdapter();
227 } 177 }
228 @Override 178 @Override
229 public Adapter caseDataObject(DataObject object) 179 public Adapter caseReference(Reference object)
230 { 180 {
231 return createDataObjectAdapter(); 181 return createReferenceAdapter();
232 } 182 }
233 @Override 183 @Override
234 public Adapter caseBooleanObject(BooleanObject object) 184 public Adapter caseInterval(Interval object)
235 { 185 {
236 return createBooleanObjectAdapter(); 186 return createIntervalAdapter();
237 } 187 }
238 @Override 188 @Override
239 public Adapter caseIntObject(IntObject object) 189 public Adapter caseLiteral(Literal object)
240 {
241 return createIntObjectAdapter();
242 }
243 @Override
244 public Adapter caseRealObject(RealObject object)
245 {
246 return createRealObjectAdapter();
247 }
248 @Override
249 public Adapter caseStringObject(StringObject object)
250 {
251 return createStringObjectAdapter();
252 }
253 @Override
254 public Adapter casePredicate(Predicate object)
255 {
256 return createPredicateAdapter();
257 }
258 @Override
259 public Adapter caseParameter(Parameter object)
260 {
261 return createParameterAdapter();
262 }
263 @Override
264 public Adapter casePatternBody(PatternBody object)
265 {
266 return createPatternBodyAdapter();
267 }
268 @Override
269 public Adapter casePolarity(Polarity object)
270 { 190 {
271 return createPolarityAdapter(); 191 return createLiteralAdapter();
272 } 192 }
273 @Override 193 @Override
274 public Adapter caseConstraint(Constraint object) 194 public Adapter caseLogicLiteral(LogicLiteral object)
275 { 195 {
276 return createConstraintAdapter(); 196 return createLogicLiteralAdapter();
277 } 197 }
278 @Override 198 @Override
279 public Adapter caseClosureType(ClosureType object) 199 public Adapter caseNumericLiteral(NumericLiteral object)
280 { 200 {
281 return createClosureTypeAdapter(); 201 return createNumericLiteralAdapter();
282 } 202 }
283 @Override 203 @Override
284 public Adapter caseLiteral(Literal object) 204 public Adapter caseInfinityLiteral(InfinityLiteral object)
285 { 205 {
286 return createLiteralAdapter(); 206 return createInfinityLiteralAdapter();
287 } 207 }
288 @Override 208 @Override
289 public Adapter caseVariable(Variable object) 209 public Adapter caseEmptyIntervalLiteral(EmptyIntervalLiteral object)
290 { 210 {
291 return createVariableAdapter(); 211 return createEmptyIntervalLiteralAdapter();
292 } 212 }
293 @Override 213 @Override
294 public Adapter caseAllInstances(AllInstances object) 214 public Adapter caseStringLiteral(StringLiteral object)
295 { 215 {
296 return createAllInstancesAdapter(); 216 return createStringLiteralAdapter();
297 } 217 }
298 @Override 218 @Override
299 public Adapter caseAllObjects(AllObjects object) 219 public Adapter caseMemberDefinition(MemberDefinition object)
300 { 220 {
301 return createAllObjectsAdapter(); 221 return createMemberDefinitionAdapter();
302 } 222 }
303 @Override 223 @Override
304 public Adapter caseDefaultInterpretation(DefaultInterpretation object) 224 public Adapter caseMultiplicity(Multiplicity object)
305 { 225 {
306 return createDefaultInterpretationAdapter(); 226 return createMultiplicityAdapter();
307 } 227 }
308 @Override 228 @Override
309 public Adapter caseCDInterpretation(CDInterpretation object) 229 public Adapter caseManyMultiplicity(ManyMultiplicity object)
310 { 230 {
311 return createCDInterpretationAdapter(); 231 return createManyMultiplicityAdapter();
312 } 232 }
313 @Override 233 @Override
314 public Adapter caseClassInterpretation(ClassInterpretation object) 234 public Adapter caseExactMultiplicity(ExactMultiplicity object)
315 { 235 {
316 return createClassInterpretationAdapter(); 236 return createExactMultiplicityAdapter();
317 } 237 }
318 @Override 238 @Override
319 public Adapter caseEnumInterpretation(EnumInterpretation object) 239 public Adapter caseBoundedMultiplicity(BoundedMultiplicity object)
320 { 240 {
321 return createEnumInterpretationAdapter(); 241 return createBoundedMultiplicityAdapter();
322 } 242 }
323 @Override 243 @Override
324 public Adapter caseFieldRelationInterpretation(FieldRelationInterpretation object) 244 public Adapter caseScopeDefinition(ScopeDefinition object)
325 { 245 {
326 return createFieldRelationInterpretationAdapter(); 246 return createScopeDefinitionAdapter();
327 } 247 }
328 @Override 248 @Override
329 public Adapter caseGlobalRelationInterpretation(GlobalRelationInterpretation object) 249 public Adapter caseExactScopeDefinition(ExactScopeDefinition object)
330 { 250 {
331 return createGlobalRelationInterpretationAdapter(); 251 return createExactScopeDefinitionAdapter();
332 } 252 }
333 @Override 253 @Override
334 public Adapter caseMultiplicityDefinition(MultiplicityDefinition object) 254 public Adapter caseBoundedScopeDefinition(BoundedScopeDefinition object)
335 { 255 {
336 return createMultiplicityDefinitionAdapter(); 256 return createBoundedScopeDefinitionAdapter();
337 } 257 }
338 @Override 258 @Override
339 public Adapter caseBooleanTrue(BooleanTrue object) 259 public Adapter caseLowerBoundedScopeDefinition(LowerBoundedScopeDefinition object)
340 { 260 {
341 return createBooleanTrueAdapter(); 261 return createLowerBoundedScopeDefinitionAdapter();
342 } 262 }
343 @Override 263 @Override
344 public Adapter caseBooleanFalse(BooleanFalse object) 264 public Adapter caseObjectiveDefinition(ObjectiveDefinition object)
345 { 265 {
346 return createBooleanFalseAdapter(); 266 return createObjectiveDefinitionAdapter();
347 } 267 }
348 @Override 268 @Override
349 public Adapter caseTrue(True object) 269 public Adapter caseNamedElement(NamedElement object)
350 { 270 {
351 return createTrueAdapter(); 271 return createNamedElementAdapter();
352 } 272 }
353 @Override 273 @Override
354 public Adapter caseFalse(False object) 274 public Adapter caseAssertion(Assertion object)
355 { 275 {
356 return createFalseAdapter(); 276 return createAssertionAdapter();
357 } 277 }
358 @Override 278 @Override
359 public Adapter caseUnknown(Unknown object) 279 public Adapter caseDisjunction(Disjunction object)
360 { 280 {
361 return createUnknownAdapter(); 281 return createDisjunctionAdapter();
362 } 282 }
363 @Override 283 @Override
364 public Adapter caseError(org.eclipse.viatra.solver.language.solverLanguage.Error object) 284 public Adapter caseSwitch(Switch object)
365 { 285 {
366 return createErrorAdapter(); 286 return createSwitchAdapter();
367 } 287 }
368 @Override 288 @Override
369 public Adapter casePositive(Positive object) 289 public Adapter caseConjunction(Conjunction object)
370 { 290 {
371 return createPositiveAdapter(); 291 return createConjunctionAdapter();
372 } 292 }
373 @Override 293 @Override
374 public Adapter caseNegative(Negative object) 294 public Adapter caseComparison(Comparison object)
375 { 295 {
376 return createNegativeAdapter(); 296 return createComparisonAdapter();
377 } 297 }
378 @Override 298 @Override
379 public Adapter caseReflexiveClosure(ReflexiveClosure object) 299 public Adapter caseBinaryExpression(BinaryExpression object)
380 { 300 {
381 return createReflexiveClosureAdapter(); 301 return createBinaryExpressionAdapter();
382 } 302 }
383 @Override 303 @Override
384 public Adapter caseIrreflexiveClosure(IrreflexiveClosure object) 304 public Adapter caseUnaryExpression(UnaryExpression object)
385 { 305 {
386 return createIrreflexiveClosureAdapter(); 306 return createUnaryExpressionAdapter();
387 } 307 }
388 @Override 308 @Override
389 public Adapter defaultCase(EObject object) 309 public Adapter defaultCase(EObject object)
@@ -438,751 +358,661 @@ public class SolverLanguageAdapterFactory extends AdapterFactoryImpl
438 } 358 }
439 359
440 /** 360 /**
441 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanValue <em>Boolean Value</em>}'. 361 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition <em>Predicate Definition</em>}'.
442 * <!-- begin-user-doc -->
443 * This default implementation returns null so that we can easily ignore cases;
444 * it's useful to ignore a case when inheritance will catch all the cases anyway.
445 * <!-- end-user-doc -->
446 * @return the new adapter.
447 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanValue
448 * @generated
449 */
450 public Adapter createBooleanValueAdapter()
451 {
452 return null;
453 }
454
455 /**
456 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.TruthValue <em>Truth Value</em>}'.
457 * <!-- begin-user-doc -->
458 * This default implementation returns null so that we can easily ignore cases;
459 * it's useful to ignore a case when inheritance will catch all the cases anyway.
460 * <!-- end-user-doc -->
461 * @return the new adapter.
462 * @see org.eclipse.viatra.solver.language.solverLanguage.TruthValue
463 * @generated
464 */
465 public Adapter createTruthValueAdapter()
466 {
467 return null;
468 }
469
470 /**
471 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Interpretation <em>Interpretation</em>}'.
472 * <!-- begin-user-doc -->
473 * This default implementation returns null so that we can easily ignore cases;
474 * it's useful to ignore a case when inheritance will catch all the cases anyway.
475 * <!-- end-user-doc -->
476 * @return the new adapter.
477 * @see org.eclipse.viatra.solver.language.solverLanguage.Interpretation
478 * @generated
479 */
480 public Adapter createInterpretationAdapter()
481 {
482 return null;
483 }
484
485 /**
486 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation <em>Basic Interpretation</em>}'.
487 * <!-- begin-user-doc -->
488 * This default implementation returns null so that we can easily ignore cases;
489 * it's useful to ignore a case when inheritance will catch all the cases anyway.
490 * <!-- end-user-doc -->
491 * @return the new adapter.
492 * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation
493 * @generated
494 */
495 public Adapter createBasicInterpretationAdapter()
496 {
497 return null;
498 }
499
500 /**
501 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Symbol <em>Symbol</em>}'.
502 * <!-- begin-user-doc -->
503 * This default implementation returns null so that we can easily ignore cases;
504 * it's useful to ignore a case when inheritance will catch all the cases anyway.
505 * <!-- end-user-doc -->
506 * @return the new adapter.
507 * @see org.eclipse.viatra.solver.language.solverLanguage.Symbol
508 * @generated
509 */
510 public Adapter createSymbolAdapter()
511 {
512 return null;
513 }
514
515 /**
516 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol <em>Model Symbol</em>}'.
517 * <!-- begin-user-doc --> 362 * <!-- begin-user-doc -->
518 * This default implementation returns null so that we can easily ignore cases; 363 * This default implementation returns null so that we can easily ignore cases;
519 * it's useful to ignore a case when inheritance will catch all the cases anyway. 364 * it's useful to ignore a case when inheritance will catch all the cases anyway.
520 * <!-- end-user-doc --> 365 * <!-- end-user-doc -->
521 * @return the new adapter. 366 * @return the new adapter.
522 * @see org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol 367 * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition
523 * @generated 368 * @generated
524 */ 369 */
525 public Adapter createModelSymbolAdapter() 370 public Adapter createPredicateDefinitionAdapter()
526 { 371 {
527 return null; 372 return null;
528 } 373 }
529 374
530 /** 375 /**
531 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol <em>Partiality Symbol</em>}'. 376 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition <em>Unnamed Error Prediate Definition</em>}'.
532 * <!-- begin-user-doc --> 377 * <!-- begin-user-doc -->
533 * This default implementation returns null so that we can easily ignore cases; 378 * This default implementation returns null so that we can easily ignore cases;
534 * it's useful to ignore a case when inheritance will catch all the cases anyway. 379 * it's useful to ignore a case when inheritance will catch all the cases anyway.
535 * <!-- end-user-doc --> 380 * <!-- end-user-doc -->
536 * @return the new adapter. 381 * @return the new adapter.
537 * @see org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol 382 * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition
538 * @generated 383 * @generated
539 */ 384 */
540 public Adapter createPartialitySymbolAdapter() 385 public Adapter createUnnamedErrorPrediateDefinitionAdapter()
541 { 386 {
542 return null; 387 return null;
543 } 388 }
544 389
545 /** 390 /**
546 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol <em>Exist Symbol</em>}'. 391 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition <em>Default Definition</em>}'.
547 * <!-- begin-user-doc --> 392 * <!-- begin-user-doc -->
548 * This default implementation returns null so that we can easily ignore cases; 393 * This default implementation returns null so that we can easily ignore cases;
549 * it's useful to ignore a case when inheritance will catch all the cases anyway. 394 * it's useful to ignore a case when inheritance will catch all the cases anyway.
550 * <!-- end-user-doc --> 395 * <!-- end-user-doc -->
551 * @return the new adapter. 396 * @return the new adapter.
552 * @see org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol 397 * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition
553 * @generated 398 * @generated
554 */ 399 */
555 public Adapter createExistSymbolAdapter() 400 public Adapter createDefaultDefinitionAdapter()
556 { 401 {
557 return null; 402 return null;
558 } 403 }
559 404
560 /** 405 /**
561 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol <em>Equals Symbol</em>}'. 406 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition <em>Extern Predicate Definition</em>}'.
562 * <!-- begin-user-doc --> 407 * <!-- begin-user-doc -->
563 * This default implementation returns null so that we can easily ignore cases; 408 * This default implementation returns null so that we can easily ignore cases;
564 * it's useful to ignore a case when inheritance will catch all the cases anyway. 409 * it's useful to ignore a case when inheritance will catch all the cases anyway.
565 * <!-- end-user-doc --> 410 * <!-- end-user-doc -->
566 * @return the new adapter. 411 * @return the new adapter.
567 * @see org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol 412 * @see org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition
568 * @generated 413 * @generated
569 */ 414 */
570 public Adapter createEqualsSymbolAdapter() 415 public Adapter createExternPredicateDefinitionAdapter()
571 { 416 {
572 return null; 417 return null;
573 } 418 }
574 419
575 /** 420 /**
576 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.DataSymbol <em>Data Symbol</em>}'. 421 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition <em>Metric Definition</em>}'.
577 * <!-- begin-user-doc --> 422 * <!-- begin-user-doc -->
578 * This default implementation returns null so that we can easily ignore cases; 423 * This default implementation returns null so that we can easily ignore cases;
579 * it's useful to ignore a case when inheritance will catch all the cases anyway. 424 * it's useful to ignore a case when inheritance will catch all the cases anyway.
580 * <!-- end-user-doc --> 425 * <!-- end-user-doc -->
581 * @return the new adapter. 426 * @return the new adapter.
582 * @see org.eclipse.viatra.solver.language.solverLanguage.DataSymbol 427 * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition
583 * @generated 428 * @generated
584 */ 429 */
585 public Adapter createDataSymbolAdapter() 430 public Adapter createMetricDefinitionAdapter()
586 { 431 {
587 return null; 432 return null;
588 } 433 }
589 434
590 /** 435 /**
591 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol <em>Boolean Symbol</em>}'. 436 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition <em>Extern Metric Definition</em>}'.
592 * <!-- begin-user-doc --> 437 * <!-- begin-user-doc -->
593 * This default implementation returns null so that we can easily ignore cases; 438 * This default implementation returns null so that we can easily ignore cases;
594 * it's useful to ignore a case when inheritance will catch all the cases anyway. 439 * it's useful to ignore a case when inheritance will catch all the cases anyway.
595 * <!-- end-user-doc --> 440 * <!-- end-user-doc -->
596 * @return the new adapter. 441 * @return the new adapter.
597 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol 442 * @see org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition
598 * @generated 443 * @generated
599 */ 444 */
600 public Adapter createBooleanSymbolAdapter() 445 public Adapter createExternMetricDefinitionAdapter()
601 { 446 {
602 return null; 447 return null;
603 } 448 }
604 449
605 /** 450 /**
606 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol <em>Integer Symbol</em>}'. 451 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Expression <em>Expression</em>}'.
607 * <!-- begin-user-doc --> 452 * <!-- begin-user-doc -->
608 * This default implementation returns null so that we can easily ignore cases; 453 * This default implementation returns null so that we can easily ignore cases;
609 * it's useful to ignore a case when inheritance will catch all the cases anyway. 454 * it's useful to ignore a case when inheritance will catch all the cases anyway.
610 * <!-- end-user-doc --> 455 * <!-- end-user-doc -->
611 * @return the new adapter. 456 * @return the new adapter.
612 * @see org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol 457 * @see org.eclipse.viatra.solver.language.solverLanguage.Expression
613 * @generated 458 * @generated
614 */ 459 */
615 public Adapter createIntegerSymbolAdapter() 460 public Adapter createExpressionAdapter()
616 { 461 {
617 return null; 462 return null;
618 } 463 }
619 464
620 /** 465 /**
621 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.RealSymbol <em>Real Symbol</em>}'. 466 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse <em>If Else</em>}'.
622 * <!-- begin-user-doc --> 467 * <!-- begin-user-doc -->
623 * This default implementation returns null so that we can easily ignore cases; 468 * This default implementation returns null so that we can easily ignore cases;
624 * it's useful to ignore a case when inheritance will catch all the cases anyway. 469 * it's useful to ignore a case when inheritance will catch all the cases anyway.
625 * <!-- end-user-doc --> 470 * <!-- end-user-doc -->
626 * @return the new adapter. 471 * @return the new adapter.
627 * @see org.eclipse.viatra.solver.language.solverLanguage.RealSymbol 472 * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse
628 * @generated 473 * @generated
629 */ 474 */
630 public Adapter createRealSymbolAdapter() 475 public Adapter createIfElseAdapter()
631 { 476 {
632 return null; 477 return null;
633 } 478 }
634 479
635 /** 480 /**
636 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringSymbol <em>String Symbol</em>}'. 481 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Case <em>Case</em>}'.
637 * <!-- begin-user-doc --> 482 * <!-- begin-user-doc -->
638 * This default implementation returns null so that we can easily ignore cases; 483 * This default implementation returns null so that we can easily ignore cases;
639 * it's useful to ignore a case when inheritance will catch all the cases anyway. 484 * it's useful to ignore a case when inheritance will catch all the cases anyway.
640 * <!-- end-user-doc --> 485 * <!-- end-user-doc -->
641 * @return the new adapter. 486 * @return the new adapter.
642 * @see org.eclipse.viatra.solver.language.solverLanguage.StringSymbol 487 * @see org.eclipse.viatra.solver.language.solverLanguage.Case
643 * @generated 488 * @generated
644 */ 489 */
645 public Adapter createStringSymbolAdapter() 490 public Adapter createCaseAdapter()
646 { 491 {
647 return null; 492 return null;
648 } 493 }
649 494
650 /** 495 /**
651 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ComplexObject <em>Complex Object</em>}'. 496 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Count <em>Count</em>}'.
652 * <!-- begin-user-doc --> 497 * <!-- begin-user-doc -->
653 * This default implementation returns null so that we can easily ignore cases; 498 * This default implementation returns null so that we can easily ignore cases;
654 * it's useful to ignore a case when inheritance will catch all the cases anyway. 499 * it's useful to ignore a case when inheritance will catch all the cases anyway.
655 * <!-- end-user-doc --> 500 * <!-- end-user-doc -->
656 * @return the new adapter. 501 * @return the new adapter.
657 * @see org.eclipse.viatra.solver.language.solverLanguage.ComplexObject 502 * @see org.eclipse.viatra.solver.language.solverLanguage.Count
658 * @generated 503 * @generated
659 */ 504 */
660 public Adapter createComplexObjectAdapter() 505 public Adapter createCountAdapter()
661 { 506 {
662 return null; 507 return null;
663 } 508 }
664 509
665 /** 510 /**
666 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Object <em>Object</em>}'. 511 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation <em>Aggregation</em>}'.
667 * <!-- begin-user-doc --> 512 * <!-- begin-user-doc -->
668 * This default implementation returns null so that we can easily ignore cases; 513 * This default implementation returns null so that we can easily ignore cases;
669 * it's useful to ignore a case when inheritance will catch all the cases anyway. 514 * it's useful to ignore a case when inheritance will catch all the cases anyway.
670 * <!-- end-user-doc --> 515 * <!-- end-user-doc -->
671 * @return the new adapter. 516 * @return the new adapter.
672 * @see org.eclipse.viatra.solver.language.solverLanguage.Object 517 * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation
673 * @generated 518 * @generated
674 */ 519 */
675 public Adapter createObjectAdapter() 520 public Adapter createAggregationAdapter()
676 { 521 {
677 return null; 522 return null;
678 } 523 }
679 524
680 /** 525 /**
681 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject <em>Named Object</em>}'. 526 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Call <em>Call</em>}'.
682 * <!-- begin-user-doc --> 527 * <!-- begin-user-doc -->
683 * This default implementation returns null so that we can easily ignore cases; 528 * This default implementation returns null so that we can easily ignore cases;
684 * it's useful to ignore a case when inheritance will catch all the cases anyway. 529 * it's useful to ignore a case when inheritance will catch all the cases anyway.
685 * <!-- end-user-doc --> 530 * <!-- end-user-doc -->
686 * @return the new adapter. 531 * @return the new adapter.
687 * @see org.eclipse.viatra.solver.language.solverLanguage.NamedObject 532 * @see org.eclipse.viatra.solver.language.solverLanguage.Call
688 * @generated 533 * @generated
689 */ 534 */
690 public Adapter createNamedObjectAdapter() 535 public Adapter createCallAdapter()
691 { 536 {
692 return null; 537 return null;
693 } 538 }
694 539
695 /** 540 /**
696 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject <em>Unnamed Object</em>}'. 541 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ArgumentList <em>Argument List</em>}'.
697 * <!-- begin-user-doc --> 542 * <!-- begin-user-doc -->
698 * This default implementation returns null so that we can easily ignore cases; 543 * This default implementation returns null so that we can easily ignore cases;
699 * it's useful to ignore a case when inheritance will catch all the cases anyway. 544 * it's useful to ignore a case when inheritance will catch all the cases anyway.
700 * <!-- end-user-doc --> 545 * <!-- end-user-doc -->
701 * @return the new adapter. 546 * @return the new adapter.
702 * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject 547 * @see org.eclipse.viatra.solver.language.solverLanguage.ArgumentList
703 * @generated 548 * @generated
704 */ 549 */
705 public Adapter createUnnamedObjectAdapter() 550 public Adapter createArgumentListAdapter()
706 { 551 {
707 return null; 552 return null;
708 } 553 }
709 554
710 /** 555 /**
711 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.DataObject <em>Data Object</em>}'. 556 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Argument <em>Argument</em>}'.
712 * <!-- begin-user-doc --> 557 * <!-- begin-user-doc -->
713 * This default implementation returns null so that we can easily ignore cases; 558 * This default implementation returns null so that we can easily ignore cases;
714 * it's useful to ignore a case when inheritance will catch all the cases anyway. 559 * it's useful to ignore a case when inheritance will catch all the cases anyway.
715 * <!-- end-user-doc --> 560 * <!-- end-user-doc -->
716 * @return the new adapter. 561 * @return the new adapter.
717 * @see org.eclipse.viatra.solver.language.solverLanguage.DataObject 562 * @see org.eclipse.viatra.solver.language.solverLanguage.Argument
718 * @generated 563 * @generated
719 */ 564 */
720 public Adapter createDataObjectAdapter() 565 public Adapter createArgumentAdapter()
721 { 566 {
722 return null; 567 return null;
723 } 568 }
724 569
725 /** 570 /**
726 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject <em>Boolean Object</em>}'. 571 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument <em>Expression Argument</em>}'.
727 * <!-- begin-user-doc --> 572 * <!-- begin-user-doc -->
728 * This default implementation returns null so that we can easily ignore cases; 573 * This default implementation returns null so that we can easily ignore cases;
729 * it's useful to ignore a case when inheritance will catch all the cases anyway. 574 * it's useful to ignore a case when inheritance will catch all the cases anyway.
730 * <!-- end-user-doc --> 575 * <!-- end-user-doc -->
731 * @return the new adapter. 576 * @return the new adapter.
732 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanObject 577 * @see org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument
733 * @generated 578 * @generated
734 */ 579 */
735 public Adapter createBooleanObjectAdapter() 580 public Adapter createExpressionArgumentAdapter()
736 { 581 {
737 return null; 582 return null;
738 } 583 }
739 584
740 /** 585 /**
741 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.IntObject <em>Int Object</em>}'. 586 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.StarArgument <em>Star Argument</em>}'.
742 * <!-- begin-user-doc --> 587 * <!-- begin-user-doc -->
743 * This default implementation returns null so that we can easily ignore cases; 588 * This default implementation returns null so that we can easily ignore cases;
744 * it's useful to ignore a case when inheritance will catch all the cases anyway. 589 * it's useful to ignore a case when inheritance will catch all the cases anyway.
745 * <!-- end-user-doc --> 590 * <!-- end-user-doc -->
746 * @return the new adapter. 591 * @return the new adapter.
747 * @see org.eclipse.viatra.solver.language.solverLanguage.IntObject 592 * @see org.eclipse.viatra.solver.language.solverLanguage.StarArgument
748 * @generated 593 * @generated
749 */ 594 */
750 public Adapter createIntObjectAdapter() 595 public Adapter createStarArgumentAdapter()
751 { 596 {
752 return null; 597 return null;
753 } 598 }
754 599
755 /** 600 /**
756 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.RealObject <em>Real Object</em>}'. 601 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument <em>Typed Argument</em>}'.
757 * <!-- begin-user-doc --> 602 * <!-- begin-user-doc -->
758 * This default implementation returns null so that we can easily ignore cases; 603 * This default implementation returns null so that we can easily ignore cases;
759 * it's useful to ignore a case when inheritance will catch all the cases anyway. 604 * it's useful to ignore a case when inheritance will catch all the cases anyway.
760 * <!-- end-user-doc --> 605 * <!-- end-user-doc -->
761 * @return the new adapter. 606 * @return the new adapter.
762 * @see org.eclipse.viatra.solver.language.solverLanguage.RealObject 607 * @see org.eclipse.viatra.solver.language.solverLanguage.TypedArgument
763 * @generated 608 * @generated
764 */ 609 */
765 public Adapter createRealObjectAdapter() 610 public Adapter createTypedArgumentAdapter()
766 { 611 {
767 return null; 612 return null;
768 } 613 }
769 614
770 /** 615 /**
771 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringObject <em>String Object</em>}'. 616 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument <em>Typed Star Argument</em>}'.
772 * <!-- begin-user-doc --> 617 * <!-- begin-user-doc -->
773 * This default implementation returns null so that we can easily ignore cases; 618 * This default implementation returns null so that we can easily ignore cases;
774 * it's useful to ignore a case when inheritance will catch all the cases anyway. 619 * it's useful to ignore a case when inheritance will catch all the cases anyway.
775 * <!-- end-user-doc --> 620 * <!-- end-user-doc -->
776 * @return the new adapter. 621 * @return the new adapter.
777 * @see org.eclipse.viatra.solver.language.solverLanguage.StringObject 622 * @see org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument
778 * @generated 623 * @generated
779 */ 624 */
780 public Adapter createStringObjectAdapter() 625 public Adapter createTypedStarArgumentAdapter()
781 { 626 {
782 return null; 627 return null;
783 } 628 }
784 629
785 /** 630 /**
786 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate <em>Predicate</em>}'. 631 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Reference <em>Reference</em>}'.
787 * <!-- begin-user-doc --> 632 * <!-- begin-user-doc -->
788 * This default implementation returns null so that we can easily ignore cases; 633 * This default implementation returns null so that we can easily ignore cases;
789 * it's useful to ignore a case when inheritance will catch all the cases anyway. 634 * it's useful to ignore a case when inheritance will catch all the cases anyway.
790 * <!-- end-user-doc --> 635 * <!-- end-user-doc -->
791 * @return the new adapter. 636 * @return the new adapter.
792 * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate 637 * @see org.eclipse.viatra.solver.language.solverLanguage.Reference
793 * @generated 638 * @generated
794 */ 639 */
795 public Adapter createPredicateAdapter() 640 public Adapter createReferenceAdapter()
796 { 641 {
797 return null; 642 return null;
798 } 643 }
799 644
800 /** 645 /**
801 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter <em>Parameter</em>}'. 646 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval <em>Interval</em>}'.
802 * <!-- begin-user-doc --> 647 * <!-- begin-user-doc -->
803 * This default implementation returns null so that we can easily ignore cases; 648 * This default implementation returns null so that we can easily ignore cases;
804 * it's useful to ignore a case when inheritance will catch all the cases anyway. 649 * it's useful to ignore a case when inheritance will catch all the cases anyway.
805 * <!-- end-user-doc --> 650 * <!-- end-user-doc -->
806 * @return the new adapter. 651 * @return the new adapter.
807 * @see org.eclipse.viatra.solver.language.solverLanguage.Parameter 652 * @see org.eclipse.viatra.solver.language.solverLanguage.Interval
808 * @generated 653 * @generated
809 */ 654 */
810 public Adapter createParameterAdapter() 655 public Adapter createIntervalAdapter()
811 { 656 {
812 return null; 657 return null;
813 } 658 }
814 659
815 /** 660 /**
816 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody <em>Pattern Body</em>}'. 661 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Literal <em>Literal</em>}'.
817 * <!-- begin-user-doc -->
818 * This default implementation returns null so that we can easily ignore cases;
819 * it's useful to ignore a case when inheritance will catch all the cases anyway.
820 * <!-- end-user-doc -->
821 * @return the new adapter.
822 * @see org.eclipse.viatra.solver.language.solverLanguage.PatternBody
823 * @generated
824 */
825 public Adapter createPatternBodyAdapter()
826 {
827 return null;
828 }
829
830 /**
831 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Polarity <em>Polarity</em>}'.
832 * <!-- begin-user-doc --> 662 * <!-- begin-user-doc -->
833 * This default implementation returns null so that we can easily ignore cases; 663 * This default implementation returns null so that we can easily ignore cases;
834 * it's useful to ignore a case when inheritance will catch all the cases anyway. 664 * it's useful to ignore a case when inheritance will catch all the cases anyway.
835 * <!-- end-user-doc --> 665 * <!-- end-user-doc -->
836 * @return the new adapter. 666 * @return the new adapter.
837 * @see org.eclipse.viatra.solver.language.solverLanguage.Polarity 667 * @see org.eclipse.viatra.solver.language.solverLanguage.Literal
838 * @generated 668 * @generated
839 */ 669 */
840 public Adapter createPolarityAdapter() 670 public Adapter createLiteralAdapter()
841 { 671 {
842 return null; 672 return null;
843 } 673 }
844 674
845 /** 675 /**
846 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint <em>Constraint</em>}'. 676 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral <em>Logic Literal</em>}'.
847 * <!-- begin-user-doc --> 677 * <!-- begin-user-doc -->
848 * This default implementation returns null so that we can easily ignore cases; 678 * This default implementation returns null so that we can easily ignore cases;
849 * it's useful to ignore a case when inheritance will catch all the cases anyway. 679 * it's useful to ignore a case when inheritance will catch all the cases anyway.
850 * <!-- end-user-doc --> 680 * <!-- end-user-doc -->
851 * @return the new adapter. 681 * @return the new adapter.
852 * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint 682 * @see org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral
853 * @generated 683 * @generated
854 */ 684 */
855 public Adapter createConstraintAdapter() 685 public Adapter createLogicLiteralAdapter()
856 { 686 {
857 return null; 687 return null;
858 } 688 }
859 689
860 /** 690 /**
861 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ClosureType <em>Closure Type</em>}'. 691 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral <em>Numeric Literal</em>}'.
862 * <!-- begin-user-doc --> 692 * <!-- begin-user-doc -->
863 * This default implementation returns null so that we can easily ignore cases; 693 * This default implementation returns null so that we can easily ignore cases;
864 * it's useful to ignore a case when inheritance will catch all the cases anyway. 694 * it's useful to ignore a case when inheritance will catch all the cases anyway.
865 * <!-- end-user-doc --> 695 * <!-- end-user-doc -->
866 * @return the new adapter. 696 * @return the new adapter.
867 * @see org.eclipse.viatra.solver.language.solverLanguage.ClosureType 697 * @see org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral
868 * @generated 698 * @generated
869 */ 699 */
870 public Adapter createClosureTypeAdapter() 700 public Adapter createNumericLiteralAdapter()
871 { 701 {
872 return null; 702 return null;
873 } 703 }
874 704
875 /** 705 /**
876 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Literal <em>Literal</em>}'. 706 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral <em>Infinity Literal</em>}'.
877 * <!-- begin-user-doc --> 707 * <!-- begin-user-doc -->
878 * This default implementation returns null so that we can easily ignore cases; 708 * This default implementation returns null so that we can easily ignore cases;
879 * it's useful to ignore a case when inheritance will catch all the cases anyway. 709 * it's useful to ignore a case when inheritance will catch all the cases anyway.
880 * <!-- end-user-doc --> 710 * <!-- end-user-doc -->
881 * @return the new adapter. 711 * @return the new adapter.
882 * @see org.eclipse.viatra.solver.language.solverLanguage.Literal 712 * @see org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral
883 * @generated 713 * @generated
884 */ 714 */
885 public Adapter createLiteralAdapter() 715 public Adapter createInfinityLiteralAdapter()
886 { 716 {
887 return null; 717 return null;
888 } 718 }
889 719
890 /** 720 /**
891 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Variable <em>Variable</em>}'. 721 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral <em>Empty Interval Literal</em>}'.
892 * <!-- begin-user-doc --> 722 * <!-- begin-user-doc -->
893 * This default implementation returns null so that we can easily ignore cases; 723 * This default implementation returns null so that we can easily ignore cases;
894 * it's useful to ignore a case when inheritance will catch all the cases anyway. 724 * it's useful to ignore a case when inheritance will catch all the cases anyway.
895 * <!-- end-user-doc --> 725 * <!-- end-user-doc -->
896 * @return the new adapter. 726 * @return the new adapter.
897 * @see org.eclipse.viatra.solver.language.solverLanguage.Variable 727 * @see org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral
898 * @generated 728 * @generated
899 */ 729 */
900 public Adapter createVariableAdapter() 730 public Adapter createEmptyIntervalLiteralAdapter()
901 { 731 {
902 return null; 732 return null;
903 } 733 }
904 734
905 /** 735 /**
906 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances <em>All Instances</em>}'. 736 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral <em>String Literal</em>}'.
907 * <!-- begin-user-doc --> 737 * <!-- begin-user-doc -->
908 * This default implementation returns null so that we can easily ignore cases; 738 * This default implementation returns null so that we can easily ignore cases;
909 * it's useful to ignore a case when inheritance will catch all the cases anyway. 739 * it's useful to ignore a case when inheritance will catch all the cases anyway.
910 * <!-- end-user-doc --> 740 * <!-- end-user-doc -->
911 * @return the new adapter. 741 * @return the new adapter.
912 * @see org.eclipse.viatra.solver.language.solverLanguage.AllInstances 742 * @see org.eclipse.viatra.solver.language.solverLanguage.StringLiteral
913 * @generated 743 * @generated
914 */ 744 */
915 public Adapter createAllInstancesAdapter() 745 public Adapter createStringLiteralAdapter()
916 { 746 {
917 return null; 747 return null;
918 } 748 }
919 749
920 /** 750 /**
921 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.AllObjects <em>All Objects</em>}'. 751 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition <em>Member Definition</em>}'.
922 * <!-- begin-user-doc --> 752 * <!-- begin-user-doc -->
923 * This default implementation returns null so that we can easily ignore cases; 753 * This default implementation returns null so that we can easily ignore cases;
924 * it's useful to ignore a case when inheritance will catch all the cases anyway. 754 * it's useful to ignore a case when inheritance will catch all the cases anyway.
925 * <!-- end-user-doc --> 755 * <!-- end-user-doc -->
926 * @return the new adapter. 756 * @return the new adapter.
927 * @see org.eclipse.viatra.solver.language.solverLanguage.AllObjects 757 * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition
928 * @generated 758 * @generated
929 */ 759 */
930 public Adapter createAllObjectsAdapter() 760 public Adapter createMemberDefinitionAdapter()
931 { 761 {
932 return null; 762 return null;
933 } 763 }
934 764
935 /** 765 /**
936 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation <em>Default Interpretation</em>}'. 766 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Multiplicity <em>Multiplicity</em>}'.
937 * <!-- begin-user-doc --> 767 * <!-- begin-user-doc -->
938 * This default implementation returns null so that we can easily ignore cases; 768 * This default implementation returns null so that we can easily ignore cases;
939 * it's useful to ignore a case when inheritance will catch all the cases anyway. 769 * it's useful to ignore a case when inheritance will catch all the cases anyway.
940 * <!-- end-user-doc --> 770 * <!-- end-user-doc -->
941 * @return the new adapter. 771 * @return the new adapter.
942 * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation 772 * @see org.eclipse.viatra.solver.language.solverLanguage.Multiplicity
943 * @generated 773 * @generated
944 */ 774 */
945 public Adapter createDefaultInterpretationAdapter() 775 public Adapter createMultiplicityAdapter()
946 { 776 {
947 return null; 777 return null;
948 } 778 }
949 779
950 /** 780 /**
951 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation <em>CD Interpretation</em>}'. 781 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity <em>Many Multiplicity</em>}'.
952 * <!-- begin-user-doc --> 782 * <!-- begin-user-doc -->
953 * This default implementation returns null so that we can easily ignore cases; 783 * This default implementation returns null so that we can easily ignore cases;
954 * it's useful to ignore a case when inheritance will catch all the cases anyway. 784 * it's useful to ignore a case when inheritance will catch all the cases anyway.
955 * <!-- end-user-doc --> 785 * <!-- end-user-doc -->
956 * @return the new adapter. 786 * @return the new adapter.
957 * @see org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation 787 * @see org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity
958 * @generated 788 * @generated
959 */ 789 */
960 public Adapter createCDInterpretationAdapter() 790 public Adapter createManyMultiplicityAdapter()
961 { 791 {
962 return null; 792 return null;
963 } 793 }
964 794
965 /** 795 /**
966 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation <em>Class Interpretation</em>}'. 796 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity <em>Exact Multiplicity</em>}'.
967 * <!-- begin-user-doc --> 797 * <!-- begin-user-doc -->
968 * This default implementation returns null so that we can easily ignore cases; 798 * This default implementation returns null so that we can easily ignore cases;
969 * it's useful to ignore a case when inheritance will catch all the cases anyway. 799 * it's useful to ignore a case when inheritance will catch all the cases anyway.
970 * <!-- end-user-doc --> 800 * <!-- end-user-doc -->
971 * @return the new adapter. 801 * @return the new adapter.
972 * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation 802 * @see org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity
973 * @generated 803 * @generated
974 */ 804 */
975 public Adapter createClassInterpretationAdapter() 805 public Adapter createExactMultiplicityAdapter()
976 { 806 {
977 return null; 807 return null;
978 } 808 }
979 809
980 /** 810 /**
981 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation <em>Enum Interpretation</em>}'. 811 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity <em>Bounded Multiplicity</em>}'.
982 * <!-- begin-user-doc --> 812 * <!-- begin-user-doc -->
983 * This default implementation returns null so that we can easily ignore cases; 813 * This default implementation returns null so that we can easily ignore cases;
984 * it's useful to ignore a case when inheritance will catch all the cases anyway. 814 * it's useful to ignore a case when inheritance will catch all the cases anyway.
985 * <!-- end-user-doc --> 815 * <!-- end-user-doc -->
986 * @return the new adapter. 816 * @return the new adapter.
987 * @see org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation 817 * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity
988 * @generated 818 * @generated
989 */ 819 */
990 public Adapter createEnumInterpretationAdapter() 820 public Adapter createBoundedMultiplicityAdapter()
991 { 821 {
992 return null; 822 return null;
993 } 823 }
994 824
995 /** 825 /**
996 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation <em>Field Relation Interpretation</em>}'. 826 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition <em>Scope Definition</em>}'.
997 * <!-- begin-user-doc --> 827 * <!-- begin-user-doc -->
998 * This default implementation returns null so that we can easily ignore cases; 828 * This default implementation returns null so that we can easily ignore cases;
999 * it's useful to ignore a case when inheritance will catch all the cases anyway. 829 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1000 * <!-- end-user-doc --> 830 * <!-- end-user-doc -->
1001 * @return the new adapter. 831 * @return the new adapter.
1002 * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation 832 * @see org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition
1003 * @generated 833 * @generated
1004 */ 834 */
1005 public Adapter createFieldRelationInterpretationAdapter() 835 public Adapter createScopeDefinitionAdapter()
1006 { 836 {
1007 return null; 837 return null;
1008 } 838 }
1009 839
1010 /** 840 /**
1011 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation <em>Global Relation Interpretation</em>}'. 841 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition <em>Exact Scope Definition</em>}'.
1012 * <!-- begin-user-doc --> 842 * <!-- begin-user-doc -->
1013 * This default implementation returns null so that we can easily ignore cases; 843 * This default implementation returns null so that we can easily ignore cases;
1014 * it's useful to ignore a case when inheritance will catch all the cases anyway. 844 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1015 * <!-- end-user-doc --> 845 * <!-- end-user-doc -->
1016 * @return the new adapter. 846 * @return the new adapter.
1017 * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation 847 * @see org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition
1018 * @generated 848 * @generated
1019 */ 849 */
1020 public Adapter createGlobalRelationInterpretationAdapter() 850 public Adapter createExactScopeDefinitionAdapter()
1021 { 851 {
1022 return null; 852 return null;
1023 } 853 }
1024 854
1025 /** 855 /**
1026 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition <em>Multiplicity Definition</em>}'. 856 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition <em>Bounded Scope Definition</em>}'.
1027 * <!-- begin-user-doc --> 857 * <!-- begin-user-doc -->
1028 * This default implementation returns null so that we can easily ignore cases; 858 * This default implementation returns null so that we can easily ignore cases;
1029 * it's useful to ignore a case when inheritance will catch all the cases anyway. 859 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1030 * <!-- end-user-doc --> 860 * <!-- end-user-doc -->
1031 * @return the new adapter. 861 * @return the new adapter.
1032 * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition 862 * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition
1033 * @generated 863 * @generated
1034 */ 864 */
1035 public Adapter createMultiplicityDefinitionAdapter() 865 public Adapter createBoundedScopeDefinitionAdapter()
1036 { 866 {
1037 return null; 867 return null;
1038 } 868 }
1039 869
1040 /** 870 /**
1041 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue <em>Boolean True</em>}'. 871 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition <em>Lower Bounded Scope Definition</em>}'.
1042 * <!-- begin-user-doc --> 872 * <!-- begin-user-doc -->
1043 * This default implementation returns null so that we can easily ignore cases; 873 * This default implementation returns null so that we can easily ignore cases;
1044 * it's useful to ignore a case when inheritance will catch all the cases anyway. 874 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1045 * <!-- end-user-doc --> 875 * <!-- end-user-doc -->
1046 * @return the new adapter. 876 * @return the new adapter.
1047 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue 877 * @see org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition
1048 * @generated 878 * @generated
1049 */ 879 */
1050 public Adapter createBooleanTrueAdapter() 880 public Adapter createLowerBoundedScopeDefinitionAdapter()
1051 { 881 {
1052 return null; 882 return null;
1053 } 883 }
1054 884
1055 /** 885 /**
1056 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse <em>Boolean False</em>}'. 886 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition <em>Objective Definition</em>}'.
1057 * <!-- begin-user-doc --> 887 * <!-- begin-user-doc -->
1058 * This default implementation returns null so that we can easily ignore cases; 888 * This default implementation returns null so that we can easily ignore cases;
1059 * it's useful to ignore a case when inheritance will catch all the cases anyway. 889 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1060 * <!-- end-user-doc --> 890 * <!-- end-user-doc -->
1061 * @return the new adapter. 891 * @return the new adapter.
1062 * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse 892 * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition
1063 * @generated 893 * @generated
1064 */ 894 */
1065 public Adapter createBooleanFalseAdapter() 895 public Adapter createObjectiveDefinitionAdapter()
1066 { 896 {
1067 return null; 897 return null;
1068 } 898 }
1069 899
1070 /** 900 /**
1071 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.True <em>True</em>}'. 901 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement <em>Named Element</em>}'.
1072 * <!-- begin-user-doc --> 902 * <!-- begin-user-doc -->
1073 * This default implementation returns null so that we can easily ignore cases; 903 * This default implementation returns null so that we can easily ignore cases;
1074 * it's useful to ignore a case when inheritance will catch all the cases anyway. 904 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1075 * <!-- end-user-doc --> 905 * <!-- end-user-doc -->
1076 * @return the new adapter. 906 * @return the new adapter.
1077 * @see org.eclipse.viatra.solver.language.solverLanguage.True 907 * @see org.eclipse.viatra.solver.language.solverLanguage.NamedElement
1078 * @generated 908 * @generated
1079 */ 909 */
1080 public Adapter createTrueAdapter() 910 public Adapter createNamedElementAdapter()
1081 { 911 {
1082 return null; 912 return null;
1083 } 913 }
1084 914
1085 /** 915 /**
1086 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.False <em>False</em>}'. 916 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion <em>Assertion</em>}'.
1087 * <!-- begin-user-doc --> 917 * <!-- begin-user-doc -->
1088 * This default implementation returns null so that we can easily ignore cases; 918 * This default implementation returns null so that we can easily ignore cases;
1089 * it's useful to ignore a case when inheritance will catch all the cases anyway. 919 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1090 * <!-- end-user-doc --> 920 * <!-- end-user-doc -->
1091 * @return the new adapter. 921 * @return the new adapter.
1092 * @see org.eclipse.viatra.solver.language.solverLanguage.False 922 * @see org.eclipse.viatra.solver.language.solverLanguage.Assertion
1093 * @generated 923 * @generated
1094 */ 924 */
1095 public Adapter createFalseAdapter() 925 public Adapter createAssertionAdapter()
1096 { 926 {
1097 return null; 927 return null;
1098 } 928 }
1099 929
1100 /** 930 /**
1101 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Unknown <em>Unknown</em>}'. 931 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Disjunction <em>Disjunction</em>}'.
1102 * <!-- begin-user-doc --> 932 * <!-- begin-user-doc -->
1103 * This default implementation returns null so that we can easily ignore cases; 933 * This default implementation returns null so that we can easily ignore cases;
1104 * it's useful to ignore a case when inheritance will catch all the cases anyway. 934 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1105 * <!-- end-user-doc --> 935 * <!-- end-user-doc -->
1106 * @return the new adapter. 936 * @return the new adapter.
1107 * @see org.eclipse.viatra.solver.language.solverLanguage.Unknown 937 * @see org.eclipse.viatra.solver.language.solverLanguage.Disjunction
1108 * @generated 938 * @generated
1109 */ 939 */
1110 public Adapter createUnknownAdapter() 940 public Adapter createDisjunctionAdapter()
1111 { 941 {
1112 return null; 942 return null;
1113 } 943 }
1114 944
1115 /** 945 /**
1116 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Error <em>Error</em>}'. 946 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Switch <em>Switch</em>}'.
1117 * <!-- begin-user-doc --> 947 * <!-- begin-user-doc -->
1118 * This default implementation returns null so that we can easily ignore cases; 948 * This default implementation returns null so that we can easily ignore cases;
1119 * it's useful to ignore a case when inheritance will catch all the cases anyway. 949 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1120 * <!-- end-user-doc --> 950 * <!-- end-user-doc -->
1121 * @return the new adapter. 951 * @return the new adapter.
1122 * @see org.eclipse.viatra.solver.language.solverLanguage.Error 952 * @see org.eclipse.viatra.solver.language.solverLanguage.Switch
1123 * @generated 953 * @generated
1124 */ 954 */
1125 public Adapter createErrorAdapter() 955 public Adapter createSwitchAdapter()
1126 { 956 {
1127 return null; 957 return null;
1128 } 958 }
1129 959
1130 /** 960 /**
1131 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Positive <em>Positive</em>}'. 961 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Conjunction <em>Conjunction</em>}'.
1132 * <!-- begin-user-doc --> 962 * <!-- begin-user-doc -->
1133 * This default implementation returns null so that we can easily ignore cases; 963 * This default implementation returns null so that we can easily ignore cases;
1134 * it's useful to ignore a case when inheritance will catch all the cases anyway. 964 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1135 * <!-- end-user-doc --> 965 * <!-- end-user-doc -->
1136 * @return the new adapter. 966 * @return the new adapter.
1137 * @see org.eclipse.viatra.solver.language.solverLanguage.Positive 967 * @see org.eclipse.viatra.solver.language.solverLanguage.Conjunction
1138 * @generated 968 * @generated
1139 */ 969 */
1140 public Adapter createPositiveAdapter() 970 public Adapter createConjunctionAdapter()
1141 { 971 {
1142 return null; 972 return null;
1143 } 973 }
1144 974
1145 /** 975 /**
1146 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Negative <em>Negative</em>}'. 976 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison <em>Comparison</em>}'.
1147 * <!-- begin-user-doc --> 977 * <!-- begin-user-doc -->
1148 * This default implementation returns null so that we can easily ignore cases; 978 * This default implementation returns null so that we can easily ignore cases;
1149 * it's useful to ignore a case when inheritance will catch all the cases anyway. 979 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1150 * <!-- end-user-doc --> 980 * <!-- end-user-doc -->
1151 * @return the new adapter. 981 * @return the new adapter.
1152 * @see org.eclipse.viatra.solver.language.solverLanguage.Negative 982 * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison
1153 * @generated 983 * @generated
1154 */ 984 */
1155 public Adapter createNegativeAdapter() 985 public Adapter createComparisonAdapter()
1156 { 986 {
1157 return null; 987 return null;
1158 } 988 }
1159 989
1160 /** 990 /**
1161 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure <em>Reflexive Closure</em>}'. 991 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression <em>Binary Expression</em>}'.
1162 * <!-- begin-user-doc --> 992 * <!-- begin-user-doc -->
1163 * This default implementation returns null so that we can easily ignore cases; 993 * This default implementation returns null so that we can easily ignore cases;
1164 * it's useful to ignore a case when inheritance will catch all the cases anyway. 994 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1165 * <!-- end-user-doc --> 995 * <!-- end-user-doc -->
1166 * @return the new adapter. 996 * @return the new adapter.
1167 * @see org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure 997 * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression
1168 * @generated 998 * @generated
1169 */ 999 */
1170 public Adapter createReflexiveClosureAdapter() 1000 public Adapter createBinaryExpressionAdapter()
1171 { 1001 {
1172 return null; 1002 return null;
1173 } 1003 }
1174 1004
1175 /** 1005 /**
1176 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure <em>Irreflexive Closure</em>}'. 1006 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression <em>Unary Expression</em>}'.
1177 * <!-- begin-user-doc --> 1007 * <!-- begin-user-doc -->
1178 * This default implementation returns null so that we can easily ignore cases; 1008 * This default implementation returns null so that we can easily ignore cases;
1179 * it's useful to ignore a case when inheritance will catch all the cases anyway. 1009 * it's useful to ignore a case when inheritance will catch all the cases anyway.
1180 * <!-- end-user-doc --> 1010 * <!-- end-user-doc -->
1181 * @return the new adapter. 1011 * @return the new adapter.
1182 * @see org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure 1012 * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression
1183 * @generated 1013 * @generated
1184 */ 1014 */
1185 public Adapter createIrreflexiveClosureAdapter() 1015 public Adapter createUnaryExpressionAdapter()
1186 { 1016 {
1187 return null; 1017 return null;
1188 } 1018 }
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageSwitch.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageSwitch.java
index 6f6bcd17..f64b6bc0 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageSwitch.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/util/SolverLanguageSwitch.java
@@ -1,5 +1,5 @@
1/** 1/**
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.solverLanguage.util; 4package org.eclipse.viatra.solver.language.solverLanguage.util;
5 5
@@ -8,57 +8,7 @@ import org.eclipse.emf.ecore.EPackage;
8 8
9import org.eclipse.emf.ecore.util.Switch; 9import org.eclipse.emf.ecore.util.Switch;
10 10
11import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; 11import org.eclipse.viatra.solver.language.solverLanguage.*;
12import org.eclipse.viatra.solver.language.solverLanguage.AllObjects;
13import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation;
14import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse;
15import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject;
16import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol;
17import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue;
18import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue;
19import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation;
20import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation;
21import org.eclipse.viatra.solver.language.solverLanguage.ClosureType;
22import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject;
23import org.eclipse.viatra.solver.language.solverLanguage.Constraint;
24import org.eclipse.viatra.solver.language.solverLanguage.DataObject;
25import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol;
26import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation;
27import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation;
28import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol;
29import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol;
30import org.eclipse.viatra.solver.language.solverLanguage.False;
31import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation;
32import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation;
33import org.eclipse.viatra.solver.language.solverLanguage.IntObject;
34import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol;
35import org.eclipse.viatra.solver.language.solverLanguage.Interpretation;
36import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure;
37import org.eclipse.viatra.solver.language.solverLanguage.Literal;
38import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol;
39import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition;
40import org.eclipse.viatra.solver.language.solverLanguage.NamedObject;
41import org.eclipse.viatra.solver.language.solverLanguage.Negative;
42import org.eclipse.viatra.solver.language.solverLanguage.Parameter;
43import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol;
44import org.eclipse.viatra.solver.language.solverLanguage.PatternBody;
45import org.eclipse.viatra.solver.language.solverLanguage.Polarity;
46import org.eclipse.viatra.solver.language.solverLanguage.Positive;
47import org.eclipse.viatra.solver.language.solverLanguage.Predicate;
48import org.eclipse.viatra.solver.language.solverLanguage.Problem;
49import org.eclipse.viatra.solver.language.solverLanguage.RealObject;
50import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol;
51import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure;
52import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage;
53import org.eclipse.viatra.solver.language.solverLanguage.Statement;
54import org.eclipse.viatra.solver.language.solverLanguage.StringObject;
55import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol;
56import org.eclipse.viatra.solver.language.solverLanguage.Symbol;
57import org.eclipse.viatra.solver.language.solverLanguage.True;
58import org.eclipse.viatra.solver.language.solverLanguage.TruthValue;
59import org.eclipse.viatra.solver.language.solverLanguage.Unknown;
60import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject;
61import org.eclipse.viatra.solver.language.solverLanguage.Variable;
62 12
63/** 13/**
64 * <!-- begin-user-doc --> 14 * <!-- begin-user-doc -->
@@ -137,423 +87,377 @@ public class SolverLanguageSwitch<T> extends Switch<T>
137 if (result == null) result = defaultCase(theEObject); 87 if (result == null) result = defaultCase(theEObject);
138 return result; 88 return result;
139 } 89 }
140 case SolverLanguagePackage.BOOLEAN_VALUE: 90 case SolverLanguagePackage.PREDICATE_DEFINITION:
141 { 91 {
142 BooleanValue booleanValue = (BooleanValue)theEObject; 92 PredicateDefinition predicateDefinition = (PredicateDefinition)theEObject;
143 T result = caseBooleanValue(booleanValue); 93 T result = casePredicateDefinition(predicateDefinition);
94 if (result == null) result = caseStatement(predicateDefinition);
144 if (result == null) result = defaultCase(theEObject); 95 if (result == null) result = defaultCase(theEObject);
145 return result; 96 return result;
146 } 97 }
147 case SolverLanguagePackage.TRUTH_VALUE: 98 case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION:
148 { 99 {
149 TruthValue truthValue = (TruthValue)theEObject; 100 UnnamedErrorPrediateDefinition unnamedErrorPrediateDefinition = (UnnamedErrorPrediateDefinition)theEObject;
150 T result = caseTruthValue(truthValue); 101 T result = caseUnnamedErrorPrediateDefinition(unnamedErrorPrediateDefinition);
102 if (result == null) result = caseStatement(unnamedErrorPrediateDefinition);
151 if (result == null) result = defaultCase(theEObject); 103 if (result == null) result = defaultCase(theEObject);
152 return result; 104 return result;
153 } 105 }
154 case SolverLanguagePackage.INTERPRETATION: 106 case SolverLanguagePackage.DEFAULT_DEFINITION:
155 { 107 {
156 Interpretation interpretation = (Interpretation)theEObject; 108 DefaultDefinition defaultDefinition = (DefaultDefinition)theEObject;
157 T result = caseInterpretation(interpretation); 109 T result = caseDefaultDefinition(defaultDefinition);
158 if (result == null) result = caseStatement(interpretation); 110 if (result == null) result = caseStatement(defaultDefinition);
159 if (result == null) result = defaultCase(theEObject); 111 if (result == null) result = defaultCase(theEObject);
160 return result; 112 return result;
161 } 113 }
162 case SolverLanguagePackage.BASIC_INTERPRETATION: 114 case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION:
163 { 115 {
164 BasicInterpretation basicInterpretation = (BasicInterpretation)theEObject; 116 ExternPredicateDefinition externPredicateDefinition = (ExternPredicateDefinition)theEObject;
165 T result = caseBasicInterpretation(basicInterpretation); 117 T result = caseExternPredicateDefinition(externPredicateDefinition);
166 if (result == null) result = caseInterpretation(basicInterpretation); 118 if (result == null) result = caseStatement(externPredicateDefinition);
167 if (result == null) result = caseStatement(basicInterpretation);
168 if (result == null) result = defaultCase(theEObject); 119 if (result == null) result = defaultCase(theEObject);
169 return result; 120 return result;
170 } 121 }
171 case SolverLanguagePackage.SYMBOL: 122 case SolverLanguagePackage.METRIC_DEFINITION:
172 { 123 {
173 Symbol symbol = (Symbol)theEObject; 124 MetricDefinition metricDefinition = (MetricDefinition)theEObject;
174 T result = caseSymbol(symbol); 125 T result = caseMetricDefinition(metricDefinition);
126 if (result == null) result = caseStatement(metricDefinition);
175 if (result == null) result = defaultCase(theEObject); 127 if (result == null) result = defaultCase(theEObject);
176 return result; 128 return result;
177 } 129 }
178 case SolverLanguagePackage.MODEL_SYMBOL: 130 case SolverLanguagePackage.EXTERN_METRIC_DEFINITION:
179 { 131 {
180 ModelSymbol modelSymbol = (ModelSymbol)theEObject; 132 ExternMetricDefinition externMetricDefinition = (ExternMetricDefinition)theEObject;
181 T result = caseModelSymbol(modelSymbol); 133 T result = caseExternMetricDefinition(externMetricDefinition);
182 if (result == null) result = caseSymbol(modelSymbol); 134 if (result == null) result = caseStatement(externMetricDefinition);
183 if (result == null) result = defaultCase(theEObject); 135 if (result == null) result = defaultCase(theEObject);
184 return result; 136 return result;
185 } 137 }
186 case SolverLanguagePackage.PARTIALITY_SYMBOL: 138 case SolverLanguagePackage.EXPRESSION:
187 { 139 {
188 PartialitySymbol partialitySymbol = (PartialitySymbol)theEObject; 140 Expression expression = (Expression)theEObject;
189 T result = casePartialitySymbol(partialitySymbol); 141 T result = caseExpression(expression);
190 if (result == null) result = caseSymbol(partialitySymbol); 142 if (result == null) result = caseStatement(expression);
191 if (result == null) result = defaultCase(theEObject); 143 if (result == null) result = defaultCase(theEObject);
192 return result; 144 return result;
193 } 145 }
194 case SolverLanguagePackage.EXIST_SYMBOL: 146 case SolverLanguagePackage.IF_ELSE:
195 { 147 {
196 ExistSymbol existSymbol = (ExistSymbol)theEObject; 148 IfElse ifElse = (IfElse)theEObject;
197 T result = caseExistSymbol(existSymbol); 149 T result = caseIfElse(ifElse);
198 if (result == null) result = casePartialitySymbol(existSymbol); 150 if (result == null) result = caseExpression(ifElse);
199 if (result == null) result = caseSymbol(existSymbol); 151 if (result == null) result = caseStatement(ifElse);
200 if (result == null) result = defaultCase(theEObject); 152 if (result == null) result = defaultCase(theEObject);
201 return result; 153 return result;
202 } 154 }
203 case SolverLanguagePackage.EQUALS_SYMBOL: 155 case SolverLanguagePackage.CASE:
204 { 156 {
205 EqualsSymbol equalsSymbol = (EqualsSymbol)theEObject; 157 Case case_ = (Case)theEObject;
206 T result = caseEqualsSymbol(equalsSymbol); 158 T result = caseCase(case_);
207 if (result == null) result = casePartialitySymbol(equalsSymbol); 159 if (result == null) result = caseExpression(case_);
208 if (result == null) result = caseSymbol(equalsSymbol); 160 if (result == null) result = caseStatement(case_);
209 if (result == null) result = defaultCase(theEObject); 161 if (result == null) result = defaultCase(theEObject);
210 return result; 162 return result;
211 } 163 }
212 case SolverLanguagePackage.DATA_SYMBOL: 164 case SolverLanguagePackage.COUNT:
213 { 165 {
214 DataSymbol dataSymbol = (DataSymbol)theEObject; 166 Count count = (Count)theEObject;
215 T result = caseDataSymbol(dataSymbol); 167 T result = caseCount(count);
216 if (result == null) result = caseSymbol(dataSymbol); 168 if (result == null) result = caseExpression(count);
169 if (result == null) result = caseStatement(count);
217 if (result == null) result = defaultCase(theEObject); 170 if (result == null) result = defaultCase(theEObject);
218 return result; 171 return result;
219 } 172 }
220 case SolverLanguagePackage.BOOLEAN_SYMBOL: 173 case SolverLanguagePackage.AGGREGATION:
221 { 174 {
222 BooleanSymbol booleanSymbol = (BooleanSymbol)theEObject; 175 Aggregation aggregation = (Aggregation)theEObject;
223 T result = caseBooleanSymbol(booleanSymbol); 176 T result = caseAggregation(aggregation);
224 if (result == null) result = caseDataSymbol(booleanSymbol); 177 if (result == null) result = caseExpression(aggregation);
225 if (result == null) result = caseSymbol(booleanSymbol); 178 if (result == null) result = caseStatement(aggregation);
226 if (result == null) result = defaultCase(theEObject); 179 if (result == null) result = defaultCase(theEObject);
227 return result; 180 return result;
228 } 181 }
229 case SolverLanguagePackage.INTEGER_SYMBOL: 182 case SolverLanguagePackage.CALL:
230 { 183 {
231 IntegerSymbol integerSymbol = (IntegerSymbol)theEObject; 184 Call call = (Call)theEObject;
232 T result = caseIntegerSymbol(integerSymbol); 185 T result = caseCall(call);
233 if (result == null) result = caseDataSymbol(integerSymbol); 186 if (result == null) result = caseExpression(call);
234 if (result == null) result = caseSymbol(integerSymbol); 187 if (result == null) result = caseStatement(call);
235 if (result == null) result = defaultCase(theEObject); 188 if (result == null) result = defaultCase(theEObject);
236 return result; 189 return result;
237 } 190 }
238 case SolverLanguagePackage.REAL_SYMBOL: 191 case SolverLanguagePackage.ARGUMENT_LIST:
239 { 192 {
240 RealSymbol realSymbol = (RealSymbol)theEObject; 193 ArgumentList argumentList = (ArgumentList)theEObject;
241 T result = caseRealSymbol(realSymbol); 194 T result = caseArgumentList(argumentList);
242 if (result == null) result = caseDataSymbol(realSymbol);
243 if (result == null) result = caseSymbol(realSymbol);
244 if (result == null) result = defaultCase(theEObject); 195 if (result == null) result = defaultCase(theEObject);
245 return result; 196 return result;
246 } 197 }
247 case SolverLanguagePackage.STRING_SYMBOL: 198 case SolverLanguagePackage.ARGUMENT:
248 { 199 {
249 StringSymbol stringSymbol = (StringSymbol)theEObject; 200 Argument argument = (Argument)theEObject;
250 T result = caseStringSymbol(stringSymbol); 201 T result = caseArgument(argument);
251 if (result == null) result = caseDataSymbol(stringSymbol);
252 if (result == null) result = caseSymbol(stringSymbol);
253 if (result == null) result = defaultCase(theEObject); 202 if (result == null) result = defaultCase(theEObject);
254 return result; 203 return result;
255 } 204 }
256 case SolverLanguagePackage.COMPLEX_OBJECT: 205 case SolverLanguagePackage.EXPRESSION_ARGUMENT:
257 { 206 {
258 ComplexObject complexObject = (ComplexObject)theEObject; 207 ExpressionArgument expressionArgument = (ExpressionArgument)theEObject;
259 T result = caseComplexObject(complexObject); 208 T result = caseExpressionArgument(expressionArgument);
209 if (result == null) result = caseArgument(expressionArgument);
260 if (result == null) result = defaultCase(theEObject); 210 if (result == null) result = defaultCase(theEObject);
261 return result; 211 return result;
262 } 212 }
263 case SolverLanguagePackage.OBJECT: 213 case SolverLanguagePackage.STAR_ARGUMENT:
264 { 214 {
265 org.eclipse.viatra.solver.language.solverLanguage.Object object = (org.eclipse.viatra.solver.language.solverLanguage.Object)theEObject; 215 StarArgument starArgument = (StarArgument)theEObject;
266 T result = caseObject(object); 216 T result = caseStarArgument(starArgument);
267 if (result == null) result = caseComplexObject(object); 217 if (result == null) result = caseArgument(starArgument);
268 if (result == null) result = defaultCase(theEObject); 218 if (result == null) result = defaultCase(theEObject);
269 return result; 219 return result;
270 } 220 }
271 case SolverLanguagePackage.NAMED_OBJECT: 221 case SolverLanguagePackage.TYPED_ARGUMENT:
272 { 222 {
273 NamedObject namedObject = (NamedObject)theEObject; 223 TypedArgument typedArgument = (TypedArgument)theEObject;
274 T result = caseNamedObject(namedObject); 224 T result = caseTypedArgument(typedArgument);
275 if (result == null) result = caseObject(namedObject); 225 if (result == null) result = caseArgument(typedArgument);
276 if (result == null) result = caseLiteral(namedObject);
277 if (result == null) result = caseComplexObject(namedObject);
278 if (result == null) result = defaultCase(theEObject); 226 if (result == null) result = defaultCase(theEObject);
279 return result; 227 return result;
280 } 228 }
281 case SolverLanguagePackage.UNNAMED_OBJECT: 229 case SolverLanguagePackage.TYPED_STAR_ARGUMENT:
282 { 230 {
283 UnnamedObject unnamedObject = (UnnamedObject)theEObject; 231 TypedStarArgument typedStarArgument = (TypedStarArgument)theEObject;
284 T result = caseUnnamedObject(unnamedObject); 232 T result = caseTypedStarArgument(typedStarArgument);
285 if (result == null) result = caseObject(unnamedObject); 233 if (result == null) result = caseArgument(typedStarArgument);
286 if (result == null) result = caseComplexObject(unnamedObject);
287 if (result == null) result = defaultCase(theEObject); 234 if (result == null) result = defaultCase(theEObject);
288 return result; 235 return result;
289 } 236 }
290 case SolverLanguagePackage.DATA_OBJECT: 237 case SolverLanguagePackage.REFERENCE:
291 { 238 {
292 DataObject dataObject = (DataObject)theEObject; 239 Reference reference = (Reference)theEObject;
293 T result = caseDataObject(dataObject); 240 T result = caseReference(reference);
294 if (result == null) result = caseObject(dataObject); 241 if (result == null) result = caseExpression(reference);
295 if (result == null) result = caseLiteral(dataObject); 242 if (result == null) result = caseStatement(reference);
296 if (result == null) result = caseComplexObject(dataObject);
297 if (result == null) result = defaultCase(theEObject); 243 if (result == null) result = defaultCase(theEObject);
298 return result; 244 return result;
299 } 245 }
300 case SolverLanguagePackage.BOOLEAN_OBJECT: 246 case SolverLanguagePackage.INTERVAL:
301 { 247 {
302 BooleanObject booleanObject = (BooleanObject)theEObject; 248 Interval interval = (Interval)theEObject;
303 T result = caseBooleanObject(booleanObject); 249 T result = caseInterval(interval);
304 if (result == null) result = caseDataObject(booleanObject); 250 if (result == null) result = caseExpression(interval);
305 if (result == null) result = caseObject(booleanObject); 251 if (result == null) result = caseStatement(interval);
306 if (result == null) result = caseLiteral(booleanObject);
307 if (result == null) result = caseComplexObject(booleanObject);
308 if (result == null) result = defaultCase(theEObject); 252 if (result == null) result = defaultCase(theEObject);
309 return result; 253 return result;
310 } 254 }
311 case SolverLanguagePackage.INT_OBJECT: 255 case SolverLanguagePackage.LITERAL:
312 {
313 IntObject intObject = (IntObject)theEObject;
314 T result = caseIntObject(intObject);
315 if (result == null) result = caseDataObject(intObject);
316 if (result == null) result = caseObject(intObject);
317 if (result == null) result = caseLiteral(intObject);
318 if (result == null) result = caseComplexObject(intObject);
319 if (result == null) result = defaultCase(theEObject);
320 return result;
321 }
322 case SolverLanguagePackage.REAL_OBJECT:
323 {
324 RealObject realObject = (RealObject)theEObject;
325 T result = caseRealObject(realObject);
326 if (result == null) result = caseDataObject(realObject);
327 if (result == null) result = caseObject(realObject);
328 if (result == null) result = caseLiteral(realObject);
329 if (result == null) result = caseComplexObject(realObject);
330 if (result == null) result = defaultCase(theEObject);
331 return result;
332 }
333 case SolverLanguagePackage.STRING_OBJECT:
334 {
335 StringObject stringObject = (StringObject)theEObject;
336 T result = caseStringObject(stringObject);
337 if (result == null) result = caseDataObject(stringObject);
338 if (result == null) result = caseObject(stringObject);
339 if (result == null) result = caseLiteral(stringObject);
340 if (result == null) result = caseComplexObject(stringObject);
341 if (result == null) result = defaultCase(theEObject);
342 return result;
343 }
344 case SolverLanguagePackage.PREDICATE:
345 {
346 Predicate predicate = (Predicate)theEObject;
347 T result = casePredicate(predicate);
348 if (result == null) result = caseStatement(predicate);
349 if (result == null) result = defaultCase(theEObject);
350 return result;
351 }
352 case SolverLanguagePackage.PARAMETER:
353 {
354 Parameter parameter = (Parameter)theEObject;
355 T result = caseParameter(parameter);
356 if (result == null) result = defaultCase(theEObject);
357 return result;
358 }
359 case SolverLanguagePackage.PATTERN_BODY:
360 { 256 {
361 PatternBody patternBody = (PatternBody)theEObject; 257 Literal literal = (Literal)theEObject;
362 T result = casePatternBody(patternBody); 258 T result = caseLiteral(literal);
259 if (result == null) result = caseExpression(literal);
260 if (result == null) result = caseStatement(literal);
363 if (result == null) result = defaultCase(theEObject); 261 if (result == null) result = defaultCase(theEObject);
364 return result; 262 return result;
365 } 263 }
366 case SolverLanguagePackage.POLARITY: 264 case SolverLanguagePackage.LOGIC_LITERAL:
367 { 265 {
368 Polarity polarity = (Polarity)theEObject; 266 LogicLiteral logicLiteral = (LogicLiteral)theEObject;
369 T result = casePolarity(polarity); 267 T result = caseLogicLiteral(logicLiteral);
268 if (result == null) result = caseLiteral(logicLiteral);
269 if (result == null) result = caseExpression(logicLiteral);
270 if (result == null) result = caseStatement(logicLiteral);
370 if (result == null) result = defaultCase(theEObject); 271 if (result == null) result = defaultCase(theEObject);
371 return result; 272 return result;
372 } 273 }
373 case SolverLanguagePackage.CONSTRAINT: 274 case SolverLanguagePackage.NUMERIC_LITERAL:
374 { 275 {
375 Constraint constraint = (Constraint)theEObject; 276 NumericLiteral numericLiteral = (NumericLiteral)theEObject;
376 T result = caseConstraint(constraint); 277 T result = caseNumericLiteral(numericLiteral);
278 if (result == null) result = caseLiteral(numericLiteral);
279 if (result == null) result = caseExpression(numericLiteral);
280 if (result == null) result = caseStatement(numericLiteral);
377 if (result == null) result = defaultCase(theEObject); 281 if (result == null) result = defaultCase(theEObject);
378 return result; 282 return result;
379 } 283 }
380 case SolverLanguagePackage.CLOSURE_TYPE: 284 case SolverLanguagePackage.INFINITY_LITERAL:
381 { 285 {
382 ClosureType closureType = (ClosureType)theEObject; 286 InfinityLiteral infinityLiteral = (InfinityLiteral)theEObject;
383 T result = caseClosureType(closureType); 287 T result = caseInfinityLiteral(infinityLiteral);
288 if (result == null) result = caseLiteral(infinityLiteral);
289 if (result == null) result = caseExpression(infinityLiteral);
290 if (result == null) result = caseStatement(infinityLiteral);
384 if (result == null) result = defaultCase(theEObject); 291 if (result == null) result = defaultCase(theEObject);
385 return result; 292 return result;
386 } 293 }
387 case SolverLanguagePackage.LITERAL: 294 case SolverLanguagePackage.EMPTY_INTERVAL_LITERAL:
388 { 295 {
389 Literal literal = (Literal)theEObject; 296 EmptyIntervalLiteral emptyIntervalLiteral = (EmptyIntervalLiteral)theEObject;
390 T result = caseLiteral(literal); 297 T result = caseEmptyIntervalLiteral(emptyIntervalLiteral);
298 if (result == null) result = caseLiteral(emptyIntervalLiteral);
299 if (result == null) result = caseExpression(emptyIntervalLiteral);
300 if (result == null) result = caseStatement(emptyIntervalLiteral);
391 if (result == null) result = defaultCase(theEObject); 301 if (result == null) result = defaultCase(theEObject);
392 return result; 302 return result;
393 } 303 }
394 case SolverLanguagePackage.VARIABLE: 304 case SolverLanguagePackage.STRING_LITERAL:
395 { 305 {
396 Variable variable = (Variable)theEObject; 306 StringLiteral stringLiteral = (StringLiteral)theEObject;
397 T result = caseVariable(variable); 307 T result = caseStringLiteral(stringLiteral);
398 if (result == null) result = caseLiteral(variable); 308 if (result == null) result = caseLiteral(stringLiteral);
309 if (result == null) result = caseExpression(stringLiteral);
310 if (result == null) result = caseStatement(stringLiteral);
399 if (result == null) result = defaultCase(theEObject); 311 if (result == null) result = defaultCase(theEObject);
400 return result; 312 return result;
401 } 313 }
402 case SolverLanguagePackage.ALL_INSTANCES: 314 case SolverLanguagePackage.MEMBER_DEFINITION:
403 { 315 {
404 AllInstances allInstances = (AllInstances)theEObject; 316 MemberDefinition memberDefinition = (MemberDefinition)theEObject;
405 T result = caseAllInstances(allInstances); 317 T result = caseMemberDefinition(memberDefinition);
406 if (result == null) result = caseComplexObject(allInstances);
407 if (result == null) result = defaultCase(theEObject); 318 if (result == null) result = defaultCase(theEObject);
408 return result; 319 return result;
409 } 320 }
410 case SolverLanguagePackage.ALL_OBJECTS: 321 case SolverLanguagePackage.MULTIPLICITY:
411 { 322 {
412 AllObjects allObjects = (AllObjects)theEObject; 323 Multiplicity multiplicity = (Multiplicity)theEObject;
413 T result = caseAllObjects(allObjects); 324 T result = caseMultiplicity(multiplicity);
414 if (result == null) result = caseComplexObject(allObjects);
415 if (result == null) result = defaultCase(theEObject); 325 if (result == null) result = defaultCase(theEObject);
416 return result; 326 return result;
417 } 327 }
418 case SolverLanguagePackage.DEFAULT_INTERPRETATION: 328 case SolverLanguagePackage.MANY_MULTIPLICITY:
419 { 329 {
420 DefaultInterpretation defaultInterpretation = (DefaultInterpretation)theEObject; 330 ManyMultiplicity manyMultiplicity = (ManyMultiplicity)theEObject;
421 T result = caseDefaultInterpretation(defaultInterpretation); 331 T result = caseManyMultiplicity(manyMultiplicity);
422 if (result == null) result = caseInterpretation(defaultInterpretation); 332 if (result == null) result = caseMultiplicity(manyMultiplicity);
423 if (result == null) result = caseStatement(defaultInterpretation);
424 if (result == null) result = defaultCase(theEObject); 333 if (result == null) result = defaultCase(theEObject);
425 return result; 334 return result;
426 } 335 }
427 case SolverLanguagePackage.CD_INTERPRETATION: 336 case SolverLanguagePackage.EXACT_MULTIPLICITY:
428 { 337 {
429 CDInterpretation cdInterpretation = (CDInterpretation)theEObject; 338 ExactMultiplicity exactMultiplicity = (ExactMultiplicity)theEObject;
430 T result = caseCDInterpretation(cdInterpretation); 339 T result = caseExactMultiplicity(exactMultiplicity);
431 if (result == null) result = caseInterpretation(cdInterpretation); 340 if (result == null) result = caseMultiplicity(exactMultiplicity);
432 if (result == null) result = caseStatement(cdInterpretation);
433 if (result == null) result = defaultCase(theEObject); 341 if (result == null) result = defaultCase(theEObject);
434 return result; 342 return result;
435 } 343 }
436 case SolverLanguagePackage.CLASS_INTERPRETATION: 344 case SolverLanguagePackage.BOUNDED_MULTIPLICITY:
437 { 345 {
438 ClassInterpretation classInterpretation = (ClassInterpretation)theEObject; 346 BoundedMultiplicity boundedMultiplicity = (BoundedMultiplicity)theEObject;
439 T result = caseClassInterpretation(classInterpretation); 347 T result = caseBoundedMultiplicity(boundedMultiplicity);
440 if (result == null) result = caseCDInterpretation(classInterpretation); 348 if (result == null) result = caseMultiplicity(boundedMultiplicity);
441 if (result == null) result = caseInterpretation(classInterpretation);
442 if (result == null) result = caseStatement(classInterpretation);
443 if (result == null) result = defaultCase(theEObject); 349 if (result == null) result = defaultCase(theEObject);
444 return result; 350 return result;
445 } 351 }
446 case SolverLanguagePackage.ENUM_INTERPRETATION: 352 case SolverLanguagePackage.SCOPE_DEFINITION:
447 { 353 {
448 EnumInterpretation enumInterpretation = (EnumInterpretation)theEObject; 354 ScopeDefinition scopeDefinition = (ScopeDefinition)theEObject;
449 T result = caseEnumInterpretation(enumInterpretation); 355 T result = caseScopeDefinition(scopeDefinition);
450 if (result == null) result = caseCDInterpretation(enumInterpretation); 356 if (result == null) result = caseStatement(scopeDefinition);
451 if (result == null) result = caseInterpretation(enumInterpretation);
452 if (result == null) result = caseStatement(enumInterpretation);
453 if (result == null) result = defaultCase(theEObject); 357 if (result == null) result = defaultCase(theEObject);
454 return result; 358 return result;
455 } 359 }
456 case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION: 360 case SolverLanguagePackage.EXACT_SCOPE_DEFINITION:
457 { 361 {
458 FieldRelationInterpretation fieldRelationInterpretation = (FieldRelationInterpretation)theEObject; 362 ExactScopeDefinition exactScopeDefinition = (ExactScopeDefinition)theEObject;
459 T result = caseFieldRelationInterpretation(fieldRelationInterpretation); 363 T result = caseExactScopeDefinition(exactScopeDefinition);
364 if (result == null) result = caseScopeDefinition(exactScopeDefinition);
365 if (result == null) result = caseStatement(exactScopeDefinition);
460 if (result == null) result = defaultCase(theEObject); 366 if (result == null) result = defaultCase(theEObject);
461 return result; 367 return result;
462 } 368 }
463 case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION: 369 case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION:
464 { 370 {
465 GlobalRelationInterpretation globalRelationInterpretation = (GlobalRelationInterpretation)theEObject; 371 BoundedScopeDefinition boundedScopeDefinition = (BoundedScopeDefinition)theEObject;
466 T result = caseGlobalRelationInterpretation(globalRelationInterpretation); 372 T result = caseBoundedScopeDefinition(boundedScopeDefinition);
467 if (result == null) result = caseCDInterpretation(globalRelationInterpretation); 373 if (result == null) result = caseScopeDefinition(boundedScopeDefinition);
468 if (result == null) result = caseInterpretation(globalRelationInterpretation); 374 if (result == null) result = caseStatement(boundedScopeDefinition);
469 if (result == null) result = caseStatement(globalRelationInterpretation);
470 if (result == null) result = defaultCase(theEObject); 375 if (result == null) result = defaultCase(theEObject);
471 return result; 376 return result;
472 } 377 }
473 case SolverLanguagePackage.MULTIPLICITY_DEFINITION: 378 case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION:
474 { 379 {
475 MultiplicityDefinition multiplicityDefinition = (MultiplicityDefinition)theEObject; 380 LowerBoundedScopeDefinition lowerBoundedScopeDefinition = (LowerBoundedScopeDefinition)theEObject;
476 T result = caseMultiplicityDefinition(multiplicityDefinition); 381 T result = caseLowerBoundedScopeDefinition(lowerBoundedScopeDefinition);
382 if (result == null) result = caseScopeDefinition(lowerBoundedScopeDefinition);
383 if (result == null) result = caseStatement(lowerBoundedScopeDefinition);
477 if (result == null) result = defaultCase(theEObject); 384 if (result == null) result = defaultCase(theEObject);
478 return result; 385 return result;
479 } 386 }
480 case SolverLanguagePackage.BOOLEAN_TRUE: 387 case SolverLanguagePackage.OBJECTIVE_DEFINITION:
481 { 388 {
482 BooleanTrue booleanTrue = (BooleanTrue)theEObject; 389 ObjectiveDefinition objectiveDefinition = (ObjectiveDefinition)theEObject;
483 T result = caseBooleanTrue(booleanTrue); 390 T result = caseObjectiveDefinition(objectiveDefinition);
484 if (result == null) result = caseBooleanValue(booleanTrue); 391 if (result == null) result = caseStatement(objectiveDefinition);
485 if (result == null) result = defaultCase(theEObject); 392 if (result == null) result = defaultCase(theEObject);
486 return result; 393 return result;
487 } 394 }
488 case SolverLanguagePackage.BOOLEAN_FALSE: 395 case SolverLanguagePackage.NAMED_ELEMENT:
489 { 396 {
490 BooleanFalse booleanFalse = (BooleanFalse)theEObject; 397 NamedElement namedElement = (NamedElement)theEObject;
491 T result = caseBooleanFalse(booleanFalse); 398 T result = caseNamedElement(namedElement);
492 if (result == null) result = caseBooleanValue(booleanFalse);
493 if (result == null) result = defaultCase(theEObject); 399 if (result == null) result = defaultCase(theEObject);
494 return result; 400 return result;
495 } 401 }
496 case SolverLanguagePackage.TRUE: 402 case SolverLanguagePackage.ASSERTION:
497 { 403 {
498 True true_ = (True)theEObject; 404 Assertion assertion = (Assertion)theEObject;
499 T result = caseTrue(true_); 405 T result = caseAssertion(assertion);
500 if (result == null) result = caseTruthValue(true_); 406 if (result == null) result = caseStatement(assertion);
501 if (result == null) result = defaultCase(theEObject); 407 if (result == null) result = defaultCase(theEObject);
502 return result; 408 return result;
503 } 409 }
504 case SolverLanguagePackage.FALSE: 410 case SolverLanguagePackage.DISJUNCTION:
505 { 411 {
506 False false_ = (False)theEObject; 412 Disjunction disjunction = (Disjunction)theEObject;
507 T result = caseFalse(false_); 413 T result = caseDisjunction(disjunction);
508 if (result == null) result = caseTruthValue(false_); 414 if (result == null) result = caseExpression(disjunction);
415 if (result == null) result = caseStatement(disjunction);
509 if (result == null) result = defaultCase(theEObject); 416 if (result == null) result = defaultCase(theEObject);
510 return result; 417 return result;
511 } 418 }
512 case SolverLanguagePackage.UNKNOWN: 419 case SolverLanguagePackage.SWITCH:
513 { 420 {
514 Unknown unknown = (Unknown)theEObject; 421 org.eclipse.viatra.solver.language.solverLanguage.Switch switch_ = (org.eclipse.viatra.solver.language.solverLanguage.Switch)theEObject;
515 T result = caseUnknown(unknown); 422 T result = caseSwitch(switch_);
516 if (result == null) result = caseTruthValue(unknown); 423 if (result == null) result = caseExpression(switch_);
424 if (result == null) result = caseStatement(switch_);
517 if (result == null) result = defaultCase(theEObject); 425 if (result == null) result = defaultCase(theEObject);
518 return result; 426 return result;
519 } 427 }
520 case SolverLanguagePackage.ERROR: 428 case SolverLanguagePackage.CONJUNCTION:
521 { 429 {
522 org.eclipse.viatra.solver.language.solverLanguage.Error error = (org.eclipse.viatra.solver.language.solverLanguage.Error)theEObject; 430 Conjunction conjunction = (Conjunction)theEObject;
523 T result = caseError(error); 431 T result = caseConjunction(conjunction);
524 if (result == null) result = caseTruthValue(error); 432 if (result == null) result = caseExpression(conjunction);
433 if (result == null) result = caseStatement(conjunction);
525 if (result == null) result = defaultCase(theEObject); 434 if (result == null) result = defaultCase(theEObject);
526 return result; 435 return result;
527 } 436 }
528 case SolverLanguagePackage.POSITIVE: 437 case SolverLanguagePackage.COMPARISON:
529 { 438 {
530 Positive positive = (Positive)theEObject; 439 Comparison comparison = (Comparison)theEObject;
531 T result = casePositive(positive); 440 T result = caseComparison(comparison);
532 if (result == null) result = casePolarity(positive); 441 if (result == null) result = caseExpression(comparison);
442 if (result == null) result = caseStatement(comparison);
533 if (result == null) result = defaultCase(theEObject); 443 if (result == null) result = defaultCase(theEObject);
534 return result; 444 return result;
535 } 445 }
536 case SolverLanguagePackage.NEGATIVE: 446 case SolverLanguagePackage.BINARY_EXPRESSION:
537 { 447 {
538 Negative negative = (Negative)theEObject; 448 BinaryExpression binaryExpression = (BinaryExpression)theEObject;
539 T result = caseNegative(negative); 449 T result = caseBinaryExpression(binaryExpression);
540 if (result == null) result = casePolarity(negative); 450 if (result == null) result = caseExpression(binaryExpression);
451 if (result == null) result = caseStatement(binaryExpression);
541 if (result == null) result = defaultCase(theEObject); 452 if (result == null) result = defaultCase(theEObject);
542 return result; 453 return result;
543 } 454 }
544 case SolverLanguagePackage.REFLEXIVE_CLOSURE: 455 case SolverLanguagePackage.UNARY_EXPRESSION:
545 { 456 {
546 ReflexiveClosure reflexiveClosure = (ReflexiveClosure)theEObject; 457 UnaryExpression unaryExpression = (UnaryExpression)theEObject;
547 T result = caseReflexiveClosure(reflexiveClosure); 458 T result = caseUnaryExpression(unaryExpression);
548 if (result == null) result = caseClosureType(reflexiveClosure); 459 if (result == null) result = caseExpression(unaryExpression);
549 if (result == null) result = defaultCase(theEObject); 460 if (result == null) result = caseStatement(unaryExpression);
550 return result;
551 }
552 case SolverLanguagePackage.IRREFLEXIVE_CLOSURE:
553 {
554 IrreflexiveClosure irreflexiveClosure = (IrreflexiveClosure)theEObject;
555 T result = caseIrreflexiveClosure(irreflexiveClosure);
556 if (result == null) result = caseClosureType(irreflexiveClosure);
557 if (result == null) result = defaultCase(theEObject); 461 if (result == null) result = defaultCase(theEObject);
558 return result; 462 return result;
559 } 463 }
@@ -594,801 +498,705 @@ public class SolverLanguageSwitch<T> extends Switch<T>
594 } 498 }
595 499
596 /** 500 /**
597 * Returns the result of interpreting the object as an instance of '<em>Boolean Value</em>'. 501 * Returns the result of interpreting the object as an instance of '<em>Predicate Definition</em>'.
598 * <!-- begin-user-doc -->
599 * This implementation returns null;
600 * returning a non-null result will terminate the switch.
601 * <!-- end-user-doc -->
602 * @param object the target of the switch.
603 * @return the result of interpreting the object as an instance of '<em>Boolean Value</em>'.
604 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
605 * @generated
606 */
607 public T caseBooleanValue(BooleanValue object)
608 {
609 return null;
610 }
611
612 /**
613 * Returns the result of interpreting the object as an instance of '<em>Truth Value</em>'.
614 * <!-- begin-user-doc -->
615 * This implementation returns null;
616 * returning a non-null result will terminate the switch.
617 * <!-- end-user-doc -->
618 * @param object the target of the switch.
619 * @return the result of interpreting the object as an instance of '<em>Truth Value</em>'.
620 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
621 * @generated
622 */
623 public T caseTruthValue(TruthValue object)
624 {
625 return null;
626 }
627
628 /**
629 * Returns the result of interpreting the object as an instance of '<em>Interpretation</em>'.
630 * <!-- begin-user-doc -->
631 * This implementation returns null;
632 * returning a non-null result will terminate the switch.
633 * <!-- end-user-doc -->
634 * @param object the target of the switch.
635 * @return the result of interpreting the object as an instance of '<em>Interpretation</em>'.
636 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
637 * @generated
638 */
639 public T caseInterpretation(Interpretation object)
640 {
641 return null;
642 }
643
644 /**
645 * Returns the result of interpreting the object as an instance of '<em>Basic Interpretation</em>'.
646 * <!-- begin-user-doc --> 502 * <!-- begin-user-doc -->
647 * This implementation returns null; 503 * This implementation returns null;
648 * returning a non-null result will terminate the switch. 504 * returning a non-null result will terminate the switch.
649 * <!-- end-user-doc --> 505 * <!-- end-user-doc -->
650 * @param object the target of the switch. 506 * @param object the target of the switch.
651 * @return the result of interpreting the object as an instance of '<em>Basic Interpretation</em>'. 507 * @return the result of interpreting the object as an instance of '<em>Predicate Definition</em>'.
652 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 508 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
653 * @generated 509 * @generated
654 */ 510 */
655 public T caseBasicInterpretation(BasicInterpretation object) 511 public T casePredicateDefinition(PredicateDefinition object)
656 { 512 {
657 return null; 513 return null;
658 } 514 }
659 515
660 /** 516 /**
661 * Returns the result of interpreting the object as an instance of '<em>Symbol</em>'. 517 * Returns the result of interpreting the object as an instance of '<em>Unnamed Error Prediate Definition</em>'.
662 * <!-- begin-user-doc --> 518 * <!-- begin-user-doc -->
663 * This implementation returns null; 519 * This implementation returns null;
664 * returning a non-null result will terminate the switch. 520 * returning a non-null result will terminate the switch.
665 * <!-- end-user-doc --> 521 * <!-- end-user-doc -->
666 * @param object the target of the switch. 522 * @param object the target of the switch.
667 * @return the result of interpreting the object as an instance of '<em>Symbol</em>'. 523 * @return the result of interpreting the object as an instance of '<em>Unnamed Error Prediate Definition</em>'.
668 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 524 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
669 * @generated 525 * @generated
670 */ 526 */
671 public T caseSymbol(Symbol object) 527 public T caseUnnamedErrorPrediateDefinition(UnnamedErrorPrediateDefinition object)
672 { 528 {
673 return null; 529 return null;
674 } 530 }
675 531
676 /** 532 /**
677 * Returns the result of interpreting the object as an instance of '<em>Model Symbol</em>'. 533 * Returns the result of interpreting the object as an instance of '<em>Default Definition</em>'.
678 * <!-- begin-user-doc --> 534 * <!-- begin-user-doc -->
679 * This implementation returns null; 535 * This implementation returns null;
680 * returning a non-null result will terminate the switch. 536 * returning a non-null result will terminate the switch.
681 * <!-- end-user-doc --> 537 * <!-- end-user-doc -->
682 * @param object the target of the switch. 538 * @param object the target of the switch.
683 * @return the result of interpreting the object as an instance of '<em>Model Symbol</em>'. 539 * @return the result of interpreting the object as an instance of '<em>Default Definition</em>'.
684 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 540 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
685 * @generated 541 * @generated
686 */ 542 */
687 public T caseModelSymbol(ModelSymbol object) 543 public T caseDefaultDefinition(DefaultDefinition object)
688 { 544 {
689 return null; 545 return null;
690 } 546 }
691 547
692 /** 548 /**
693 * Returns the result of interpreting the object as an instance of '<em>Partiality Symbol</em>'. 549 * Returns the result of interpreting the object as an instance of '<em>Extern Predicate Definition</em>'.
694 * <!-- begin-user-doc --> 550 * <!-- begin-user-doc -->
695 * This implementation returns null; 551 * This implementation returns null;
696 * returning a non-null result will terminate the switch. 552 * returning a non-null result will terminate the switch.
697 * <!-- end-user-doc --> 553 * <!-- end-user-doc -->
698 * @param object the target of the switch. 554 * @param object the target of the switch.
699 * @return the result of interpreting the object as an instance of '<em>Partiality Symbol</em>'. 555 * @return the result of interpreting the object as an instance of '<em>Extern Predicate Definition</em>'.
700 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 556 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
701 * @generated 557 * @generated
702 */ 558 */
703 public T casePartialitySymbol(PartialitySymbol object) 559 public T caseExternPredicateDefinition(ExternPredicateDefinition object)
704 { 560 {
705 return null; 561 return null;
706 } 562 }
707 563
708 /** 564 /**
709 * Returns the result of interpreting the object as an instance of '<em>Exist Symbol</em>'. 565 * Returns the result of interpreting the object as an instance of '<em>Metric Definition</em>'.
710 * <!-- begin-user-doc --> 566 * <!-- begin-user-doc -->
711 * This implementation returns null; 567 * This implementation returns null;
712 * returning a non-null result will terminate the switch. 568 * returning a non-null result will terminate the switch.
713 * <!-- end-user-doc --> 569 * <!-- end-user-doc -->
714 * @param object the target of the switch. 570 * @param object the target of the switch.
715 * @return the result of interpreting the object as an instance of '<em>Exist Symbol</em>'. 571 * @return the result of interpreting the object as an instance of '<em>Metric Definition</em>'.
716 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 572 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
717 * @generated 573 * @generated
718 */ 574 */
719 public T caseExistSymbol(ExistSymbol object) 575 public T caseMetricDefinition(MetricDefinition object)
720 { 576 {
721 return null; 577 return null;
722 } 578 }
723 579
724 /** 580 /**
725 * Returns the result of interpreting the object as an instance of '<em>Equals Symbol</em>'. 581 * Returns the result of interpreting the object as an instance of '<em>Extern Metric Definition</em>'.
726 * <!-- begin-user-doc --> 582 * <!-- begin-user-doc -->
727 * This implementation returns null; 583 * This implementation returns null;
728 * returning a non-null result will terminate the switch. 584 * returning a non-null result will terminate the switch.
729 * <!-- end-user-doc --> 585 * <!-- end-user-doc -->
730 * @param object the target of the switch. 586 * @param object the target of the switch.
731 * @return the result of interpreting the object as an instance of '<em>Equals Symbol</em>'. 587 * @return the result of interpreting the object as an instance of '<em>Extern Metric Definition</em>'.
732 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 588 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
733 * @generated 589 * @generated
734 */ 590 */
735 public T caseEqualsSymbol(EqualsSymbol object) 591 public T caseExternMetricDefinition(ExternMetricDefinition object)
736 { 592 {
737 return null; 593 return null;
738 } 594 }
739 595
740 /** 596 /**
741 * Returns the result of interpreting the object as an instance of '<em>Data Symbol</em>'. 597 * Returns the result of interpreting the object as an instance of '<em>Expression</em>'.
742 * <!-- begin-user-doc --> 598 * <!-- begin-user-doc -->
743 * This implementation returns null; 599 * This implementation returns null;
744 * returning a non-null result will terminate the switch. 600 * returning a non-null result will terminate the switch.
745 * <!-- end-user-doc --> 601 * <!-- end-user-doc -->
746 * @param object the target of the switch. 602 * @param object the target of the switch.
747 * @return the result of interpreting the object as an instance of '<em>Data Symbol</em>'. 603 * @return the result of interpreting the object as an instance of '<em>Expression</em>'.
748 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 604 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
749 * @generated 605 * @generated
750 */ 606 */
751 public T caseDataSymbol(DataSymbol object) 607 public T caseExpression(Expression object)
752 { 608 {
753 return null; 609 return null;
754 } 610 }
755 611
756 /** 612 /**
757 * Returns the result of interpreting the object as an instance of '<em>Boolean Symbol</em>'. 613 * Returns the result of interpreting the object as an instance of '<em>If Else</em>'.
758 * <!-- begin-user-doc --> 614 * <!-- begin-user-doc -->
759 * This implementation returns null; 615 * This implementation returns null;
760 * returning a non-null result will terminate the switch. 616 * returning a non-null result will terminate the switch.
761 * <!-- end-user-doc --> 617 * <!-- end-user-doc -->
762 * @param object the target of the switch. 618 * @param object the target of the switch.
763 * @return the result of interpreting the object as an instance of '<em>Boolean Symbol</em>'. 619 * @return the result of interpreting the object as an instance of '<em>If Else</em>'.
764 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 620 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
765 * @generated 621 * @generated
766 */ 622 */
767 public T caseBooleanSymbol(BooleanSymbol object) 623 public T caseIfElse(IfElse object)
768 { 624 {
769 return null; 625 return null;
770 } 626 }
771 627
772 /** 628 /**
773 * Returns the result of interpreting the object as an instance of '<em>Integer Symbol</em>'. 629 * Returns the result of interpreting the object as an instance of '<em>Case</em>'.
774 * <!-- begin-user-doc --> 630 * <!-- begin-user-doc -->
775 * This implementation returns null; 631 * This implementation returns null;
776 * returning a non-null result will terminate the switch. 632 * returning a non-null result will terminate the switch.
777 * <!-- end-user-doc --> 633 * <!-- end-user-doc -->
778 * @param object the target of the switch. 634 * @param object the target of the switch.
779 * @return the result of interpreting the object as an instance of '<em>Integer Symbol</em>'. 635 * @return the result of interpreting the object as an instance of '<em>Case</em>'.
780 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 636 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
781 * @generated 637 * @generated
782 */ 638 */
783 public T caseIntegerSymbol(IntegerSymbol object) 639 public T caseCase(Case object)
784 { 640 {
785 return null; 641 return null;
786 } 642 }
787 643
788 /** 644 /**
789 * Returns the result of interpreting the object as an instance of '<em>Real Symbol</em>'. 645 * Returns the result of interpreting the object as an instance of '<em>Count</em>'.
790 * <!-- begin-user-doc --> 646 * <!-- begin-user-doc -->
791 * This implementation returns null; 647 * This implementation returns null;
792 * returning a non-null result will terminate the switch. 648 * returning a non-null result will terminate the switch.
793 * <!-- end-user-doc --> 649 * <!-- end-user-doc -->
794 * @param object the target of the switch. 650 * @param object the target of the switch.
795 * @return the result of interpreting the object as an instance of '<em>Real Symbol</em>'. 651 * @return the result of interpreting the object as an instance of '<em>Count</em>'.
796 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 652 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
797 * @generated 653 * @generated
798 */ 654 */
799 public T caseRealSymbol(RealSymbol object) 655 public T caseCount(Count object)
800 { 656 {
801 return null; 657 return null;
802 } 658 }
803 659
804 /** 660 /**
805 * Returns the result of interpreting the object as an instance of '<em>String Symbol</em>'. 661 * Returns the result of interpreting the object as an instance of '<em>Aggregation</em>'.
806 * <!-- begin-user-doc --> 662 * <!-- begin-user-doc -->
807 * This implementation returns null; 663 * This implementation returns null;
808 * returning a non-null result will terminate the switch. 664 * returning a non-null result will terminate the switch.
809 * <!-- end-user-doc --> 665 * <!-- end-user-doc -->
810 * @param object the target of the switch. 666 * @param object the target of the switch.
811 * @return the result of interpreting the object as an instance of '<em>String Symbol</em>'. 667 * @return the result of interpreting the object as an instance of '<em>Aggregation</em>'.
812 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 668 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
813 * @generated 669 * @generated
814 */ 670 */
815 public T caseStringSymbol(StringSymbol object) 671 public T caseAggregation(Aggregation object)
816 { 672 {
817 return null; 673 return null;
818 } 674 }
819 675
820 /** 676 /**
821 * Returns the result of interpreting the object as an instance of '<em>Complex Object</em>'. 677 * Returns the result of interpreting the object as an instance of '<em>Call</em>'.
822 * <!-- begin-user-doc --> 678 * <!-- begin-user-doc -->
823 * This implementation returns null; 679 * This implementation returns null;
824 * returning a non-null result will terminate the switch. 680 * returning a non-null result will terminate the switch.
825 * <!-- end-user-doc --> 681 * <!-- end-user-doc -->
826 * @param object the target of the switch. 682 * @param object the target of the switch.
827 * @return the result of interpreting the object as an instance of '<em>Complex Object</em>'. 683 * @return the result of interpreting the object as an instance of '<em>Call</em>'.
828 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 684 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
829 * @generated 685 * @generated
830 */ 686 */
831 public T caseComplexObject(ComplexObject object) 687 public T caseCall(Call object)
832 { 688 {
833 return null; 689 return null;
834 } 690 }
835 691
836 /** 692 /**
837 * Returns the result of interpreting the object as an instance of '<em>Object</em>'. 693 * Returns the result of interpreting the object as an instance of '<em>Argument List</em>'.
838 * <!-- begin-user-doc --> 694 * <!-- begin-user-doc -->
839 * This implementation returns null; 695 * This implementation returns null;
840 * returning a non-null result will terminate the switch. 696 * returning a non-null result will terminate the switch.
841 * <!-- end-user-doc --> 697 * <!-- end-user-doc -->
842 * @param object the target of the switch. 698 * @param object the target of the switch.
843 * @return the result of interpreting the object as an instance of '<em>Object</em>'. 699 * @return the result of interpreting the object as an instance of '<em>Argument List</em>'.
844 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 700 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
845 * @generated 701 * @generated
846 */ 702 */
847 public T caseObject(org.eclipse.viatra.solver.language.solverLanguage.Object object) 703 public T caseArgumentList(ArgumentList object)
848 { 704 {
849 return null; 705 return null;
850 } 706 }
851 707
852 /** 708 /**
853 * Returns the result of interpreting the object as an instance of '<em>Named Object</em>'. 709 * Returns the result of interpreting the object as an instance of '<em>Argument</em>'.
854 * <!-- begin-user-doc --> 710 * <!-- begin-user-doc -->
855 * This implementation returns null; 711 * This implementation returns null;
856 * returning a non-null result will terminate the switch. 712 * returning a non-null result will terminate the switch.
857 * <!-- end-user-doc --> 713 * <!-- end-user-doc -->
858 * @param object the target of the switch. 714 * @param object the target of the switch.
859 * @return the result of interpreting the object as an instance of '<em>Named Object</em>'. 715 * @return the result of interpreting the object as an instance of '<em>Argument</em>'.
860 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 716 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
861 * @generated 717 * @generated
862 */ 718 */
863 public T caseNamedObject(NamedObject object) 719 public T caseArgument(Argument object)
864 { 720 {
865 return null; 721 return null;
866 } 722 }
867 723
868 /** 724 /**
869 * Returns the result of interpreting the object as an instance of '<em>Unnamed Object</em>'. 725 * Returns the result of interpreting the object as an instance of '<em>Expression Argument</em>'.
870 * <!-- begin-user-doc --> 726 * <!-- begin-user-doc -->
871 * This implementation returns null; 727 * This implementation returns null;
872 * returning a non-null result will terminate the switch. 728 * returning a non-null result will terminate the switch.
873 * <!-- end-user-doc --> 729 * <!-- end-user-doc -->
874 * @param object the target of the switch. 730 * @param object the target of the switch.
875 * @return the result of interpreting the object as an instance of '<em>Unnamed Object</em>'. 731 * @return the result of interpreting the object as an instance of '<em>Expression Argument</em>'.
876 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 732 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
877 * @generated 733 * @generated
878 */ 734 */
879 public T caseUnnamedObject(UnnamedObject object) 735 public T caseExpressionArgument(ExpressionArgument object)
880 { 736 {
881 return null; 737 return null;
882 } 738 }
883 739
884 /** 740 /**
885 * Returns the result of interpreting the object as an instance of '<em>Data Object</em>'. 741 * Returns the result of interpreting the object as an instance of '<em>Star Argument</em>'.
886 * <!-- begin-user-doc --> 742 * <!-- begin-user-doc -->
887 * This implementation returns null; 743 * This implementation returns null;
888 * returning a non-null result will terminate the switch. 744 * returning a non-null result will terminate the switch.
889 * <!-- end-user-doc --> 745 * <!-- end-user-doc -->
890 * @param object the target of the switch. 746 * @param object the target of the switch.
891 * @return the result of interpreting the object as an instance of '<em>Data Object</em>'. 747 * @return the result of interpreting the object as an instance of '<em>Star Argument</em>'.
892 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 748 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
893 * @generated 749 * @generated
894 */ 750 */
895 public T caseDataObject(DataObject object) 751 public T caseStarArgument(StarArgument object)
896 { 752 {
897 return null; 753 return null;
898 } 754 }
899 755
900 /** 756 /**
901 * Returns the result of interpreting the object as an instance of '<em>Boolean Object</em>'. 757 * Returns the result of interpreting the object as an instance of '<em>Typed Argument</em>'.
902 * <!-- begin-user-doc --> 758 * <!-- begin-user-doc -->
903 * This implementation returns null; 759 * This implementation returns null;
904 * returning a non-null result will terminate the switch. 760 * returning a non-null result will terminate the switch.
905 * <!-- end-user-doc --> 761 * <!-- end-user-doc -->
906 * @param object the target of the switch. 762 * @param object the target of the switch.
907 * @return the result of interpreting the object as an instance of '<em>Boolean Object</em>'. 763 * @return the result of interpreting the object as an instance of '<em>Typed Argument</em>'.
908 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 764 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
909 * @generated 765 * @generated
910 */ 766 */
911 public T caseBooleanObject(BooleanObject object) 767 public T caseTypedArgument(TypedArgument object)
912 { 768 {
913 return null; 769 return null;
914 } 770 }
915 771
916 /** 772 /**
917 * Returns the result of interpreting the object as an instance of '<em>Int Object</em>'. 773 * Returns the result of interpreting the object as an instance of '<em>Typed Star Argument</em>'.
918 * <!-- begin-user-doc --> 774 * <!-- begin-user-doc -->
919 * This implementation returns null; 775 * This implementation returns null;
920 * returning a non-null result will terminate the switch. 776 * returning a non-null result will terminate the switch.
921 * <!-- end-user-doc --> 777 * <!-- end-user-doc -->
922 * @param object the target of the switch. 778 * @param object the target of the switch.
923 * @return the result of interpreting the object as an instance of '<em>Int Object</em>'. 779 * @return the result of interpreting the object as an instance of '<em>Typed Star Argument</em>'.
924 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 780 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
925 * @generated 781 * @generated
926 */ 782 */
927 public T caseIntObject(IntObject object) 783 public T caseTypedStarArgument(TypedStarArgument object)
928 { 784 {
929 return null; 785 return null;
930 } 786 }
931 787
932 /** 788 /**
933 * Returns the result of interpreting the object as an instance of '<em>Real Object</em>'. 789 * Returns the result of interpreting the object as an instance of '<em>Reference</em>'.
934 * <!-- begin-user-doc --> 790 * <!-- begin-user-doc -->
935 * This implementation returns null; 791 * This implementation returns null;
936 * returning a non-null result will terminate the switch. 792 * returning a non-null result will terminate the switch.
937 * <!-- end-user-doc --> 793 * <!-- end-user-doc -->
938 * @param object the target of the switch. 794 * @param object the target of the switch.
939 * @return the result of interpreting the object as an instance of '<em>Real Object</em>'. 795 * @return the result of interpreting the object as an instance of '<em>Reference</em>'.
940 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 796 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
941 * @generated 797 * @generated
942 */ 798 */
943 public T caseRealObject(RealObject object) 799 public T caseReference(Reference object)
944 { 800 {
945 return null; 801 return null;
946 } 802 }
947 803
948 /** 804 /**
949 * Returns the result of interpreting the object as an instance of '<em>String Object</em>'. 805 * Returns the result of interpreting the object as an instance of '<em>Interval</em>'.
950 * <!-- begin-user-doc --> 806 * <!-- begin-user-doc -->
951 * This implementation returns null; 807 * This implementation returns null;
952 * returning a non-null result will terminate the switch. 808 * returning a non-null result will terminate the switch.
953 * <!-- end-user-doc --> 809 * <!-- end-user-doc -->
954 * @param object the target of the switch. 810 * @param object the target of the switch.
955 * @return the result of interpreting the object as an instance of '<em>String Object</em>'. 811 * @return the result of interpreting the object as an instance of '<em>Interval</em>'.
956 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 812 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
957 * @generated 813 * @generated
958 */ 814 */
959 public T caseStringObject(StringObject object) 815 public T caseInterval(Interval object)
960 { 816 {
961 return null; 817 return null;
962 } 818 }
963 819
964 /** 820 /**
965 * Returns the result of interpreting the object as an instance of '<em>Predicate</em>'. 821 * Returns the result of interpreting the object as an instance of '<em>Literal</em>'.
966 * <!-- begin-user-doc -->
967 * This implementation returns null;
968 * returning a non-null result will terminate the switch.
969 * <!-- end-user-doc -->
970 * @param object the target of the switch.
971 * @return the result of interpreting the object as an instance of '<em>Predicate</em>'.
972 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
973 * @generated
974 */
975 public T casePredicate(Predicate object)
976 {
977 return null;
978 }
979
980 /**
981 * Returns the result of interpreting the object as an instance of '<em>Parameter</em>'.
982 * <!-- begin-user-doc -->
983 * This implementation returns null;
984 * returning a non-null result will terminate the switch.
985 * <!-- end-user-doc -->
986 * @param object the target of the switch.
987 * @return the result of interpreting the object as an instance of '<em>Parameter</em>'.
988 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
989 * @generated
990 */
991 public T caseParameter(Parameter object)
992 {
993 return null;
994 }
995
996 /**
997 * Returns the result of interpreting the object as an instance of '<em>Pattern Body</em>'.
998 * <!-- begin-user-doc -->
999 * This implementation returns null;
1000 * returning a non-null result will terminate the switch.
1001 * <!-- end-user-doc -->
1002 * @param object the target of the switch.
1003 * @return the result of interpreting the object as an instance of '<em>Pattern Body</em>'.
1004 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1005 * @generated
1006 */
1007 public T casePatternBody(PatternBody object)
1008 {
1009 return null;
1010 }
1011
1012 /**
1013 * Returns the result of interpreting the object as an instance of '<em>Polarity</em>'.
1014 * <!-- begin-user-doc --> 822 * <!-- begin-user-doc -->
1015 * This implementation returns null; 823 * This implementation returns null;
1016 * returning a non-null result will terminate the switch. 824 * returning a non-null result will terminate the switch.
1017 * <!-- end-user-doc --> 825 * <!-- end-user-doc -->
1018 * @param object the target of the switch. 826 * @param object the target of the switch.
1019 * @return the result of interpreting the object as an instance of '<em>Polarity</em>'. 827 * @return the result of interpreting the object as an instance of '<em>Literal</em>'.
1020 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 828 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1021 * @generated 829 * @generated
1022 */ 830 */
1023 public T casePolarity(Polarity object) 831 public T caseLiteral(Literal object)
1024 { 832 {
1025 return null; 833 return null;
1026 } 834 }
1027 835
1028 /** 836 /**
1029 * Returns the result of interpreting the object as an instance of '<em>Constraint</em>'. 837 * Returns the result of interpreting the object as an instance of '<em>Logic Literal</em>'.
1030 * <!-- begin-user-doc --> 838 * <!-- begin-user-doc -->
1031 * This implementation returns null; 839 * This implementation returns null;
1032 * returning a non-null result will terminate the switch. 840 * returning a non-null result will terminate the switch.
1033 * <!-- end-user-doc --> 841 * <!-- end-user-doc -->
1034 * @param object the target of the switch. 842 * @param object the target of the switch.
1035 * @return the result of interpreting the object as an instance of '<em>Constraint</em>'. 843 * @return the result of interpreting the object as an instance of '<em>Logic Literal</em>'.
1036 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 844 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1037 * @generated 845 * @generated
1038 */ 846 */
1039 public T caseConstraint(Constraint object) 847 public T caseLogicLiteral(LogicLiteral object)
1040 { 848 {
1041 return null; 849 return null;
1042 } 850 }
1043 851
1044 /** 852 /**
1045 * Returns the result of interpreting the object as an instance of '<em>Closure Type</em>'. 853 * Returns the result of interpreting the object as an instance of '<em>Numeric Literal</em>'.
1046 * <!-- begin-user-doc --> 854 * <!-- begin-user-doc -->
1047 * This implementation returns null; 855 * This implementation returns null;
1048 * returning a non-null result will terminate the switch. 856 * returning a non-null result will terminate the switch.
1049 * <!-- end-user-doc --> 857 * <!-- end-user-doc -->
1050 * @param object the target of the switch. 858 * @param object the target of the switch.
1051 * @return the result of interpreting the object as an instance of '<em>Closure Type</em>'. 859 * @return the result of interpreting the object as an instance of '<em>Numeric Literal</em>'.
1052 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 860 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1053 * @generated 861 * @generated
1054 */ 862 */
1055 public T caseClosureType(ClosureType object) 863 public T caseNumericLiteral(NumericLiteral object)
1056 { 864 {
1057 return null; 865 return null;
1058 } 866 }
1059 867
1060 /** 868 /**
1061 * Returns the result of interpreting the object as an instance of '<em>Literal</em>'. 869 * Returns the result of interpreting the object as an instance of '<em>Infinity Literal</em>'.
1062 * <!-- begin-user-doc --> 870 * <!-- begin-user-doc -->
1063 * This implementation returns null; 871 * This implementation returns null;
1064 * returning a non-null result will terminate the switch. 872 * returning a non-null result will terminate the switch.
1065 * <!-- end-user-doc --> 873 * <!-- end-user-doc -->
1066 * @param object the target of the switch. 874 * @param object the target of the switch.
1067 * @return the result of interpreting the object as an instance of '<em>Literal</em>'. 875 * @return the result of interpreting the object as an instance of '<em>Infinity Literal</em>'.
1068 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 876 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1069 * @generated 877 * @generated
1070 */ 878 */
1071 public T caseLiteral(Literal object) 879 public T caseInfinityLiteral(InfinityLiteral object)
1072 { 880 {
1073 return null; 881 return null;
1074 } 882 }
1075 883
1076 /** 884 /**
1077 * Returns the result of interpreting the object as an instance of '<em>Variable</em>'. 885 * Returns the result of interpreting the object as an instance of '<em>Empty Interval Literal</em>'.
1078 * <!-- begin-user-doc --> 886 * <!-- begin-user-doc -->
1079 * This implementation returns null; 887 * This implementation returns null;
1080 * returning a non-null result will terminate the switch. 888 * returning a non-null result will terminate the switch.
1081 * <!-- end-user-doc --> 889 * <!-- end-user-doc -->
1082 * @param object the target of the switch. 890 * @param object the target of the switch.
1083 * @return the result of interpreting the object as an instance of '<em>Variable</em>'. 891 * @return the result of interpreting the object as an instance of '<em>Empty Interval Literal</em>'.
1084 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 892 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1085 * @generated 893 * @generated
1086 */ 894 */
1087 public T caseVariable(Variable object) 895 public T caseEmptyIntervalLiteral(EmptyIntervalLiteral object)
1088 { 896 {
1089 return null; 897 return null;
1090 } 898 }
1091 899
1092 /** 900 /**
1093 * Returns the result of interpreting the object as an instance of '<em>All Instances</em>'. 901 * Returns the result of interpreting the object as an instance of '<em>String Literal</em>'.
1094 * <!-- begin-user-doc --> 902 * <!-- begin-user-doc -->
1095 * This implementation returns null; 903 * This implementation returns null;
1096 * returning a non-null result will terminate the switch. 904 * returning a non-null result will terminate the switch.
1097 * <!-- end-user-doc --> 905 * <!-- end-user-doc -->
1098 * @param object the target of the switch. 906 * @param object the target of the switch.
1099 * @return the result of interpreting the object as an instance of '<em>All Instances</em>'. 907 * @return the result of interpreting the object as an instance of '<em>String Literal</em>'.
1100 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 908 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1101 * @generated 909 * @generated
1102 */ 910 */
1103 public T caseAllInstances(AllInstances object) 911 public T caseStringLiteral(StringLiteral object)
1104 { 912 {
1105 return null; 913 return null;
1106 } 914 }
1107 915
1108 /** 916 /**
1109 * Returns the result of interpreting the object as an instance of '<em>All Objects</em>'. 917 * Returns the result of interpreting the object as an instance of '<em>Member Definition</em>'.
1110 * <!-- begin-user-doc --> 918 * <!-- begin-user-doc -->
1111 * This implementation returns null; 919 * This implementation returns null;
1112 * returning a non-null result will terminate the switch. 920 * returning a non-null result will terminate the switch.
1113 * <!-- end-user-doc --> 921 * <!-- end-user-doc -->
1114 * @param object the target of the switch. 922 * @param object the target of the switch.
1115 * @return the result of interpreting the object as an instance of '<em>All Objects</em>'. 923 * @return the result of interpreting the object as an instance of '<em>Member Definition</em>'.
1116 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 924 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1117 * @generated 925 * @generated
1118 */ 926 */
1119 public T caseAllObjects(AllObjects object) 927 public T caseMemberDefinition(MemberDefinition object)
1120 { 928 {
1121 return null; 929 return null;
1122 } 930 }
1123 931
1124 /** 932 /**
1125 * Returns the result of interpreting the object as an instance of '<em>Default Interpretation</em>'. 933 * Returns the result of interpreting the object as an instance of '<em>Multiplicity</em>'.
1126 * <!-- begin-user-doc --> 934 * <!-- begin-user-doc -->
1127 * This implementation returns null; 935 * This implementation returns null;
1128 * returning a non-null result will terminate the switch. 936 * returning a non-null result will terminate the switch.
1129 * <!-- end-user-doc --> 937 * <!-- end-user-doc -->
1130 * @param object the target of the switch. 938 * @param object the target of the switch.
1131 * @return the result of interpreting the object as an instance of '<em>Default Interpretation</em>'. 939 * @return the result of interpreting the object as an instance of '<em>Multiplicity</em>'.
1132 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 940 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1133 * @generated 941 * @generated
1134 */ 942 */
1135 public T caseDefaultInterpretation(DefaultInterpretation object) 943 public T caseMultiplicity(Multiplicity object)
1136 { 944 {
1137 return null; 945 return null;
1138 } 946 }
1139 947
1140 /** 948 /**
1141 * Returns the result of interpreting the object as an instance of '<em>CD Interpretation</em>'. 949 * Returns the result of interpreting the object as an instance of '<em>Many Multiplicity</em>'.
1142 * <!-- begin-user-doc --> 950 * <!-- begin-user-doc -->
1143 * This implementation returns null; 951 * This implementation returns null;
1144 * returning a non-null result will terminate the switch. 952 * returning a non-null result will terminate the switch.
1145 * <!-- end-user-doc --> 953 * <!-- end-user-doc -->
1146 * @param object the target of the switch. 954 * @param object the target of the switch.
1147 * @return the result of interpreting the object as an instance of '<em>CD Interpretation</em>'. 955 * @return the result of interpreting the object as an instance of '<em>Many Multiplicity</em>'.
1148 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 956 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1149 * @generated 957 * @generated
1150 */ 958 */
1151 public T caseCDInterpretation(CDInterpretation object) 959 public T caseManyMultiplicity(ManyMultiplicity object)
1152 { 960 {
1153 return null; 961 return null;
1154 } 962 }
1155 963
1156 /** 964 /**
1157 * Returns the result of interpreting the object as an instance of '<em>Class Interpretation</em>'. 965 * Returns the result of interpreting the object as an instance of '<em>Exact Multiplicity</em>'.
1158 * <!-- begin-user-doc --> 966 * <!-- begin-user-doc -->
1159 * This implementation returns null; 967 * This implementation returns null;
1160 * returning a non-null result will terminate the switch. 968 * returning a non-null result will terminate the switch.
1161 * <!-- end-user-doc --> 969 * <!-- end-user-doc -->
1162 * @param object the target of the switch. 970 * @param object the target of the switch.
1163 * @return the result of interpreting the object as an instance of '<em>Class Interpretation</em>'. 971 * @return the result of interpreting the object as an instance of '<em>Exact Multiplicity</em>'.
1164 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 972 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1165 * @generated 973 * @generated
1166 */ 974 */
1167 public T caseClassInterpretation(ClassInterpretation object) 975 public T caseExactMultiplicity(ExactMultiplicity object)
1168 { 976 {
1169 return null; 977 return null;
1170 } 978 }
1171 979
1172 /** 980 /**
1173 * Returns the result of interpreting the object as an instance of '<em>Enum Interpretation</em>'. 981 * Returns the result of interpreting the object as an instance of '<em>Bounded Multiplicity</em>'.
1174 * <!-- begin-user-doc --> 982 * <!-- begin-user-doc -->
1175 * This implementation returns null; 983 * This implementation returns null;
1176 * returning a non-null result will terminate the switch. 984 * returning a non-null result will terminate the switch.
1177 * <!-- end-user-doc --> 985 * <!-- end-user-doc -->
1178 * @param object the target of the switch. 986 * @param object the target of the switch.
1179 * @return the result of interpreting the object as an instance of '<em>Enum Interpretation</em>'. 987 * @return the result of interpreting the object as an instance of '<em>Bounded Multiplicity</em>'.
1180 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 988 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1181 * @generated 989 * @generated
1182 */ 990 */
1183 public T caseEnumInterpretation(EnumInterpretation object) 991 public T caseBoundedMultiplicity(BoundedMultiplicity object)
1184 { 992 {
1185 return null; 993 return null;
1186 } 994 }
1187 995
1188 /** 996 /**
1189 * Returns the result of interpreting the object as an instance of '<em>Field Relation Interpretation</em>'. 997 * Returns the result of interpreting the object as an instance of '<em>Scope Definition</em>'.
1190 * <!-- begin-user-doc --> 998 * <!-- begin-user-doc -->
1191 * This implementation returns null; 999 * This implementation returns null;
1192 * returning a non-null result will terminate the switch. 1000 * returning a non-null result will terminate the switch.
1193 * <!-- end-user-doc --> 1001 * <!-- end-user-doc -->
1194 * @param object the target of the switch. 1002 * @param object the target of the switch.
1195 * @return the result of interpreting the object as an instance of '<em>Field Relation Interpretation</em>'. 1003 * @return the result of interpreting the object as an instance of '<em>Scope Definition</em>'.
1196 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1004 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1197 * @generated 1005 * @generated
1198 */ 1006 */
1199 public T caseFieldRelationInterpretation(FieldRelationInterpretation object) 1007 public T caseScopeDefinition(ScopeDefinition object)
1200 { 1008 {
1201 return null; 1009 return null;
1202 } 1010 }
1203 1011
1204 /** 1012 /**
1205 * Returns the result of interpreting the object as an instance of '<em>Global Relation Interpretation</em>'. 1013 * Returns the result of interpreting the object as an instance of '<em>Exact Scope Definition</em>'.
1206 * <!-- begin-user-doc --> 1014 * <!-- begin-user-doc -->
1207 * This implementation returns null; 1015 * This implementation returns null;
1208 * returning a non-null result will terminate the switch. 1016 * returning a non-null result will terminate the switch.
1209 * <!-- end-user-doc --> 1017 * <!-- end-user-doc -->
1210 * @param object the target of the switch. 1018 * @param object the target of the switch.
1211 * @return the result of interpreting the object as an instance of '<em>Global Relation Interpretation</em>'. 1019 * @return the result of interpreting the object as an instance of '<em>Exact Scope Definition</em>'.
1212 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1020 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1213 * @generated 1021 * @generated
1214 */ 1022 */
1215 public T caseGlobalRelationInterpretation(GlobalRelationInterpretation object) 1023 public T caseExactScopeDefinition(ExactScopeDefinition object)
1216 { 1024 {
1217 return null; 1025 return null;
1218 } 1026 }
1219 1027
1220 /** 1028 /**
1221 * Returns the result of interpreting the object as an instance of '<em>Multiplicity Definition</em>'. 1029 * Returns the result of interpreting the object as an instance of '<em>Bounded Scope Definition</em>'.
1222 * <!-- begin-user-doc --> 1030 * <!-- begin-user-doc -->
1223 * This implementation returns null; 1031 * This implementation returns null;
1224 * returning a non-null result will terminate the switch. 1032 * returning a non-null result will terminate the switch.
1225 * <!-- end-user-doc --> 1033 * <!-- end-user-doc -->
1226 * @param object the target of the switch. 1034 * @param object the target of the switch.
1227 * @return the result of interpreting the object as an instance of '<em>Multiplicity Definition</em>'. 1035 * @return the result of interpreting the object as an instance of '<em>Bounded Scope Definition</em>'.
1228 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1036 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1229 * @generated 1037 * @generated
1230 */ 1038 */
1231 public T caseMultiplicityDefinition(MultiplicityDefinition object) 1039 public T caseBoundedScopeDefinition(BoundedScopeDefinition object)
1232 { 1040 {
1233 return null; 1041 return null;
1234 } 1042 }
1235 1043
1236 /** 1044 /**
1237 * Returns the result of interpreting the object as an instance of '<em>Boolean True</em>'. 1045 * Returns the result of interpreting the object as an instance of '<em>Lower Bounded Scope Definition</em>'.
1238 * <!-- begin-user-doc --> 1046 * <!-- begin-user-doc -->
1239 * This implementation returns null; 1047 * This implementation returns null;
1240 * returning a non-null result will terminate the switch. 1048 * returning a non-null result will terminate the switch.
1241 * <!-- end-user-doc --> 1049 * <!-- end-user-doc -->
1242 * @param object the target of the switch. 1050 * @param object the target of the switch.
1243 * @return the result of interpreting the object as an instance of '<em>Boolean True</em>'. 1051 * @return the result of interpreting the object as an instance of '<em>Lower Bounded Scope Definition</em>'.
1244 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1052 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1245 * @generated 1053 * @generated
1246 */ 1054 */
1247 public T caseBooleanTrue(BooleanTrue object) 1055 public T caseLowerBoundedScopeDefinition(LowerBoundedScopeDefinition object)
1248 { 1056 {
1249 return null; 1057 return null;
1250 } 1058 }
1251 1059
1252 /** 1060 /**
1253 * Returns the result of interpreting the object as an instance of '<em>Boolean False</em>'. 1061 * Returns the result of interpreting the object as an instance of '<em>Objective Definition</em>'.
1254 * <!-- begin-user-doc --> 1062 * <!-- begin-user-doc -->
1255 * This implementation returns null; 1063 * This implementation returns null;
1256 * returning a non-null result will terminate the switch. 1064 * returning a non-null result will terminate the switch.
1257 * <!-- end-user-doc --> 1065 * <!-- end-user-doc -->
1258 * @param object the target of the switch. 1066 * @param object the target of the switch.
1259 * @return the result of interpreting the object as an instance of '<em>Boolean False</em>'. 1067 * @return the result of interpreting the object as an instance of '<em>Objective Definition</em>'.
1260 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1068 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1261 * @generated 1069 * @generated
1262 */ 1070 */
1263 public T caseBooleanFalse(BooleanFalse object) 1071 public T caseObjectiveDefinition(ObjectiveDefinition object)
1264 { 1072 {
1265 return null; 1073 return null;
1266 } 1074 }
1267 1075
1268 /** 1076 /**
1269 * Returns the result of interpreting the object as an instance of '<em>True</em>'. 1077 * Returns the result of interpreting the object as an instance of '<em>Named Element</em>'.
1270 * <!-- begin-user-doc --> 1078 * <!-- begin-user-doc -->
1271 * This implementation returns null; 1079 * This implementation returns null;
1272 * returning a non-null result will terminate the switch. 1080 * returning a non-null result will terminate the switch.
1273 * <!-- end-user-doc --> 1081 * <!-- end-user-doc -->
1274 * @param object the target of the switch. 1082 * @param object the target of the switch.
1275 * @return the result of interpreting the object as an instance of '<em>True</em>'. 1083 * @return the result of interpreting the object as an instance of '<em>Named Element</em>'.
1276 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1084 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1277 * @generated 1085 * @generated
1278 */ 1086 */
1279 public T caseTrue(True object) 1087 public T caseNamedElement(NamedElement object)
1280 { 1088 {
1281 return null; 1089 return null;
1282 } 1090 }
1283 1091
1284 /** 1092 /**
1285 * Returns the result of interpreting the object as an instance of '<em>False</em>'. 1093 * Returns the result of interpreting the object as an instance of '<em>Assertion</em>'.
1286 * <!-- begin-user-doc --> 1094 * <!-- begin-user-doc -->
1287 * This implementation returns null; 1095 * This implementation returns null;
1288 * returning a non-null result will terminate the switch. 1096 * returning a non-null result will terminate the switch.
1289 * <!-- end-user-doc --> 1097 * <!-- end-user-doc -->
1290 * @param object the target of the switch. 1098 * @param object the target of the switch.
1291 * @return the result of interpreting the object as an instance of '<em>False</em>'. 1099 * @return the result of interpreting the object as an instance of '<em>Assertion</em>'.
1292 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1100 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1293 * @generated 1101 * @generated
1294 */ 1102 */
1295 public T caseFalse(False object) 1103 public T caseAssertion(Assertion object)
1296 { 1104 {
1297 return null; 1105 return null;
1298 } 1106 }
1299 1107
1300 /** 1108 /**
1301 * Returns the result of interpreting the object as an instance of '<em>Unknown</em>'. 1109 * Returns the result of interpreting the object as an instance of '<em>Disjunction</em>'.
1302 * <!-- begin-user-doc --> 1110 * <!-- begin-user-doc -->
1303 * This implementation returns null; 1111 * This implementation returns null;
1304 * returning a non-null result will terminate the switch. 1112 * returning a non-null result will terminate the switch.
1305 * <!-- end-user-doc --> 1113 * <!-- end-user-doc -->
1306 * @param object the target of the switch. 1114 * @param object the target of the switch.
1307 * @return the result of interpreting the object as an instance of '<em>Unknown</em>'. 1115 * @return the result of interpreting the object as an instance of '<em>Disjunction</em>'.
1308 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1116 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1309 * @generated 1117 * @generated
1310 */ 1118 */
1311 public T caseUnknown(Unknown object) 1119 public T caseDisjunction(Disjunction object)
1312 { 1120 {
1313 return null; 1121 return null;
1314 } 1122 }
1315 1123
1316 /** 1124 /**
1317 * Returns the result of interpreting the object as an instance of '<em>Error</em>'. 1125 * Returns the result of interpreting the object as an instance of '<em>Switch</em>'.
1318 * <!-- begin-user-doc --> 1126 * <!-- begin-user-doc -->
1319 * This implementation returns null; 1127 * This implementation returns null;
1320 * returning a non-null result will terminate the switch. 1128 * returning a non-null result will terminate the switch.
1321 * <!-- end-user-doc --> 1129 * <!-- end-user-doc -->
1322 * @param object the target of the switch. 1130 * @param object the target of the switch.
1323 * @return the result of interpreting the object as an instance of '<em>Error</em>'. 1131 * @return the result of interpreting the object as an instance of '<em>Switch</em>'.
1324 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1132 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1325 * @generated 1133 * @generated
1326 */ 1134 */
1327 public T caseError(org.eclipse.viatra.solver.language.solverLanguage.Error object) 1135 public T caseSwitch(org.eclipse.viatra.solver.language.solverLanguage.Switch object)
1328 { 1136 {
1329 return null; 1137 return null;
1330 } 1138 }
1331 1139
1332 /** 1140 /**
1333 * Returns the result of interpreting the object as an instance of '<em>Positive</em>'. 1141 * Returns the result of interpreting the object as an instance of '<em>Conjunction</em>'.
1334 * <!-- begin-user-doc --> 1142 * <!-- begin-user-doc -->
1335 * This implementation returns null; 1143 * This implementation returns null;
1336 * returning a non-null result will terminate the switch. 1144 * returning a non-null result will terminate the switch.
1337 * <!-- end-user-doc --> 1145 * <!-- end-user-doc -->
1338 * @param object the target of the switch. 1146 * @param object the target of the switch.
1339 * @return the result of interpreting the object as an instance of '<em>Positive</em>'. 1147 * @return the result of interpreting the object as an instance of '<em>Conjunction</em>'.
1340 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1148 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1341 * @generated 1149 * @generated
1342 */ 1150 */
1343 public T casePositive(Positive object) 1151 public T caseConjunction(Conjunction object)
1344 { 1152 {
1345 return null; 1153 return null;
1346 } 1154 }
1347 1155
1348 /** 1156 /**
1349 * Returns the result of interpreting the object as an instance of '<em>Negative</em>'. 1157 * Returns the result of interpreting the object as an instance of '<em>Comparison</em>'.
1350 * <!-- begin-user-doc --> 1158 * <!-- begin-user-doc -->
1351 * This implementation returns null; 1159 * This implementation returns null;
1352 * returning a non-null result will terminate the switch. 1160 * returning a non-null result will terminate the switch.
1353 * <!-- end-user-doc --> 1161 * <!-- end-user-doc -->
1354 * @param object the target of the switch. 1162 * @param object the target of the switch.
1355 * @return the result of interpreting the object as an instance of '<em>Negative</em>'. 1163 * @return the result of interpreting the object as an instance of '<em>Comparison</em>'.
1356 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1164 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1357 * @generated 1165 * @generated
1358 */ 1166 */
1359 public T caseNegative(Negative object) 1167 public T caseComparison(Comparison object)
1360 { 1168 {
1361 return null; 1169 return null;
1362 } 1170 }
1363 1171
1364 /** 1172 /**
1365 * Returns the result of interpreting the object as an instance of '<em>Reflexive Closure</em>'. 1173 * Returns the result of interpreting the object as an instance of '<em>Binary Expression</em>'.
1366 * <!-- begin-user-doc --> 1174 * <!-- begin-user-doc -->
1367 * This implementation returns null; 1175 * This implementation returns null;
1368 * returning a non-null result will terminate the switch. 1176 * returning a non-null result will terminate the switch.
1369 * <!-- end-user-doc --> 1177 * <!-- end-user-doc -->
1370 * @param object the target of the switch. 1178 * @param object the target of the switch.
1371 * @return the result of interpreting the object as an instance of '<em>Reflexive Closure</em>'. 1179 * @return the result of interpreting the object as an instance of '<em>Binary Expression</em>'.
1372 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1180 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1373 * @generated 1181 * @generated
1374 */ 1182 */
1375 public T caseReflexiveClosure(ReflexiveClosure object) 1183 public T caseBinaryExpression(BinaryExpression object)
1376 { 1184 {
1377 return null; 1185 return null;
1378 } 1186 }
1379 1187
1380 /** 1188 /**
1381 * Returns the result of interpreting the object as an instance of '<em>Irreflexive Closure</em>'. 1189 * Returns the result of interpreting the object as an instance of '<em>Unary Expression</em>'.
1382 * <!-- begin-user-doc --> 1190 * <!-- begin-user-doc -->
1383 * This implementation returns null; 1191 * This implementation returns null;
1384 * returning a non-null result will terminate the switch. 1192 * returning a non-null result will terminate the switch.
1385 * <!-- end-user-doc --> 1193 * <!-- end-user-doc -->
1386 * @param object the target of the switch. 1194 * @param object the target of the switch.
1387 * @return the result of interpreting the object as an instance of '<em>Irreflexive Closure</em>'. 1195 * @return the result of interpreting the object as an instance of '<em>Unary Expression</em>'.
1388 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) 1196 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
1389 * @generated 1197 * @generated
1390 */ 1198 */
1391 public T caseIrreflexiveClosure(IrreflexiveClosure object) 1199 public T caseUnaryExpression(UnaryExpression object)
1392 { 1200 {
1393 return null; 1201 return null;
1394 } 1202 }
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/AbstractSolverLanguageValidator.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/AbstractSolverLanguageValidator.java
index e4313a24..55314a22 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/AbstractSolverLanguageValidator.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/AbstractSolverLanguageValidator.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.validation; 4package org.eclipse.viatra.solver.language.validation;
5 5
diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/SolverLanguageConfigurableIssueCodesProvider.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/SolverLanguageConfigurableIssueCodesProvider.java
index 4247dc60..a229cb60 100644
--- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/SolverLanguageConfigurableIssueCodesProvider.java
+++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/validation/SolverLanguageConfigurableIssueCodesProvider.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * generated by Xtext 2.18.0.M3 2 * generated by Xtext 2.21.0
3 */ 3 */
4package org.eclipse.viatra.solver.language.validation; 4package org.eclipse.viatra.solver.language.validation;
5 5