From 419e76265ecbdf65e960e0624be006d31ed1e191 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 8 May 2020 18:28:19 +0200 Subject: Update solver language grammar First version, still needs TokenSource and Linker to work. --- .../AbstractSolverLanguageRuntimeModule.java | 2 +- .../viatra/solver/language/SolverLanguage.xtextbin | Bin 7164 -> 11842 bytes .../SolverLanguageStandaloneSetupGenerated.java | 2 +- .../SolverLanguageAntlrTokenFileProvider.java | 2 +- .../parser/antlr/SolverLanguageParser.java | 2 +- .../parser/antlr/internal/InternalSolverLanguage.g | 4421 ++++--- .../antlr/internal/InternalSolverLanguage.tokens | 146 +- .../internal/InternalSolverLanguageLexer.java | 2477 +++- .../internal/InternalSolverLanguageParser.java | 12411 +++++++++++++------ .../AbstractSolverLanguageScopeProvider.java | 2 +- .../SolverLanguageSemanticSequencer.java | 1310 +- .../SolverLanguageSyntacticSequencer.java | 121 +- .../services/SolverLanguageGrammarAccess.java | 4044 ++++-- .../language/solverLanguage/Aggregation.java | 96 + .../language/solverLanguage/AggregationOp.java | 317 + .../language/solverLanguage/AllInstances.java | 47 - .../solver/language/solverLanguage/AllObjects.java | 19 - .../solver/language/solverLanguage/Argument.java | 20 + .../language/solverLanguage/ArgumentList.java | 40 + .../solver/language/solverLanguage/Assertion.java | 70 + .../solverLanguage/BasicInterpretation.java | 84 - .../language/solverLanguage/BinaryExpression.java | 96 + .../language/solverLanguage/BinaryOperator.java | 455 + .../language/solverLanguage/BooleanFalse.java | 19 - .../language/solverLanguage/BooleanObject.java | 47 - .../language/solverLanguage/BooleanSymbol.java | 19 - .../language/solverLanguage/BooleanTrue.java | 19 - .../language/solverLanguage/BooleanValue.java | 20 - .../solverLanguage/BoundedMultiplicity.java | 70 + .../solverLanguage/BoundedScopeDefinition.java | 70 + .../language/solverLanguage/CDInterpretation.java | 19 - .../solver/language/solverLanguage/Call.java | 116 + .../solver/language/solverLanguage/Case.java | 70 + .../solverLanguage/ClassInterpretation.java | 97 - .../language/solverLanguage/ClosureType.java | 20 - .../solver/language/solverLanguage/Comparison.java | 96 + .../language/solverLanguage/ComplexObject.java | 20 - .../language/solverLanguage/Conjunction.java | 38 + .../solver/language/solverLanguage/Constraint.java | 109 - .../solver/language/solverLanguage/Count.java | 47 + .../solver/language/solverLanguage/DataObject.java | 19 - .../solver/language/solverLanguage/DataSymbol.java | 19 - .../language/solverLanguage/DefaultDefinition.java | 70 + .../solverLanguage/DefaultInterpretation.java | 47 - .../language/solverLanguage/Disjunction.java | 38 + .../solverLanguage/EmptyIntervalLiteral.java | 19 + .../solverLanguage/EnumInterpretation.java | 61 - .../language/solverLanguage/EqualsSymbol.java | 19 - .../solver/language/solverLanguage/Error.java | 19 - .../language/solverLanguage/ExactMultiplicity.java | 47 + .../solverLanguage/ExactScopeDefinition.java | 47 + .../language/solverLanguage/ExistSymbol.java | 19 - .../solver/language/solverLanguage/Expression.java | 19 + .../solverLanguage/ExpressionArgument.java | 47 + .../solverLanguage/ExternMetricDefinition.java | 73 + .../solverLanguage/ExternPredicateDefinition.java | 47 + .../solver/language/solverLanguage/False.java | 19 - .../FieldRelationInterpretation.java | 117 - .../GlobalRelationInterpretation.java | 162 - .../solver/language/solverLanguage/IfElse.java | 93 + .../language/solverLanguage/InfinityLiteral.java | 19 + .../solver/language/solverLanguage/IntObject.java | 47 - .../language/solverLanguage/IntegerSymbol.java | 19 - .../language/solverLanguage/Interpretation.java | 19 - .../solver/language/solverLanguage/Interval.java | 70 + .../solverLanguage/IrreflexiveClosure.java | 19 - .../solver/language/solverLanguage/Literal.java | 5 +- .../language/solverLanguage/LogicLiteral.java | 50 + .../solver/language/solverLanguage/LogicValue.java | 271 + .../LowerBoundedScopeDefinition.java | 47 + .../language/solverLanguage/ManyMultiplicity.java | 19 + .../language/solverLanguage/MemberDefinition.java | 140 + .../language/solverLanguage/MetricDefinition.java | 96 + .../solver/language/solverLanguage/MetricType.java | 225 + .../language/solverLanguage/ModelSymbol.java | 47 - .../language/solverLanguage/Multiplicity.java | 20 + .../solverLanguage/MultiplicityDefinition.java | 94 - .../language/solverLanguage/NamedElement.java | 48 + .../language/solverLanguage/NamedObject.java | 47 - .../solver/language/solverLanguage/Negative.java | 19 - .../language/solverLanguage/NumericLiteral.java | 48 + .../solver/language/solverLanguage/Object.java | 19 - .../solverLanguage/ObjectiveDefinition.java | 73 + .../language/solverLanguage/ObjectiveKind.java | 225 + .../solver/language/solverLanguage/Parameter.java | 71 - .../language/solverLanguage/PartialitySymbol.java | 19 - .../language/solverLanguage/PatternBody.java | 40 - .../solver/language/solverLanguage/Polarity.java | 20 - .../solver/language/solverLanguage/Positive.java | 19 - .../solver/language/solverLanguage/Predicate.java | 97 - .../solverLanguage/PredicateDefinition.java | 116 + .../solver/language/solverLanguage/Problem.java | 2 +- .../solver/language/solverLanguage/RealObject.java | 48 - .../solver/language/solverLanguage/RealSymbol.java | 19 - .../solver/language/solverLanguage/Reference.java | 47 + .../language/solverLanguage/ReflexiveClosure.java | 19 - .../language/solverLanguage/ScopeDefinition.java | 47 + .../solverLanguage/SolverLanguageFactory.java | 320 +- .../solverLanguage/SolverLanguagePackage.java | 4134 ++++-- .../language/solverLanguage/StarArgument.java | 19 + .../solver/language/solverLanguage/Statement.java | 81 +- .../language/solverLanguage/StringLiteral.java | 47 + .../language/solverLanguage/StringObject.java | 47 - .../language/solverLanguage/StringSymbol.java | 19 - .../solver/language/solverLanguage/Switch.java | 38 + .../solver/language/solverLanguage/Symbol.java | 20 - .../solver/language/solverLanguage/True.java | 19 - .../solver/language/solverLanguage/TruthValue.java | 20 - .../language/solverLanguage/TypedArgument.java | 70 + .../language/solverLanguage/TypedStarArgument.java | 47 + .../language/solverLanguage/UnaryExpression.java | 73 + .../solver/language/solverLanguage/UnaryOp.java | 317 + .../solver/language/solverLanguage/Unknown.java | 19 - .../UnnamedErrorPrediateDefinition.java | 70 + .../language/solverLanguage/UnnamedObject.java | 47 - .../solver/language/solverLanguage/Variable.java | 47 - .../solverLanguage/impl/AggregationImpl.java | 343 + .../solverLanguage/impl/AllInstancesImpl.java | 196 - .../solverLanguage/impl/AllObjectsImpl.java | 41 - .../language/solverLanguage/impl/ArgumentImpl.java | 43 + .../solverLanguage/impl/ArgumentListImpl.java | 169 + .../solverLanguage/impl/AssertionImpl.java | 269 + .../impl/BasicInterpretationImpl.java | 318 - .../solverLanguage/impl/BinaryExpressionImpl.java | 343 + .../solverLanguage/impl/BooleanFalseImpl.java | 41 - .../solverLanguage/impl/BooleanObjectImpl.java | 196 - .../solverLanguage/impl/BooleanSymbolImpl.java | 41 - .../solverLanguage/impl/BooleanTrueImpl.java | 41 - .../solverLanguage/impl/BooleanValueImpl.java | 43 - .../impl/BoundedMultiplicityImpl.java | 237 + .../impl/BoundedScopeDefinitionImpl.java | 237 + .../solverLanguage/impl/CDInterpretationImpl.java | 41 - .../language/solverLanguage/impl/CallImpl.java | 401 + .../language/solverLanguage/impl/CaseImpl.java | 269 + .../impl/ClassInterpretationImpl.java | 356 - .../solverLanguage/impl/ClosureTypeImpl.java | 43 - .../solverLanguage/impl/ComparisonImpl.java | 343 + .../solverLanguage/impl/ComplexObjectImpl.java | 43 - .../solverLanguage/impl/ConjunctionImpl.java | 167 + .../solverLanguage/impl/ConstraintImpl.java | 393 - .../language/solverLanguage/impl/CountImpl.java | 196 + .../solverLanguage/impl/DataObjectImpl.java | 41 - .../solverLanguage/impl/DataSymbolImpl.java | 41 - .../solverLanguage/impl/DefaultDefinitionImpl.java | 270 + .../impl/DefaultInterpretationImpl.java | 196 - .../solverLanguage/impl/DisjunctionImpl.java | 167 + .../impl/EmptyIntervalLiteralImpl.java | 41 + .../impl/EnumInterpretationImpl.java | 244 - .../solverLanguage/impl/EqualsSymbolImpl.java | 41 - .../language/solverLanguage/impl/ErrorImpl.java | 40 - .../solverLanguage/impl/ExactMultiplicityImpl.java | 179 + .../impl/ExactScopeDefinitionImpl.java | 179 + .../solverLanguage/impl/ExistSymbolImpl.java | 41 - .../impl/ExpressionArgumentImpl.java | 196 + .../solverLanguage/impl/ExpressionImpl.java | 41 + .../impl/ExternMetricDefinitionImpl.java | 270 + .../impl/ExternPredicateDefinitionImpl.java | 196 + .../language/solverLanguage/impl/FalseImpl.java | 41 - .../impl/FieldRelationInterpretationImpl.java | 418 - .../impl/GlobalRelationInterpretationImpl.java | 563 - .../language/solverLanguage/impl/IfElseImpl.java | 342 + .../solverLanguage/impl/InfinityLiteralImpl.java | 41 + .../solverLanguage/impl/IntObjectImpl.java | 179 - .../solverLanguage/impl/IntegerSymbolImpl.java | 41 - .../solverLanguage/impl/InterpretationImpl.java | 41 - .../language/solverLanguage/impl/IntervalImpl.java | 269 + .../impl/IrreflexiveClosureImpl.java | 41 - .../language/solverLanguage/impl/LiteralImpl.java | 6 +- .../solverLanguage/impl/LogicLiteralImpl.java | 180 + .../impl/LowerBoundedScopeDefinitionImpl.java | 179 + .../solverLanguage/impl/ManyMultiplicityImpl.java | 41 + .../solverLanguage/impl/MemberDefinitionImpl.java | 463 + .../solverLanguage/impl/MetricDefinitionImpl.java | 343 + .../solverLanguage/impl/ModelSymbolImpl.java | 179 - .../impl/MultiplicityDefinitionImpl.java | 296 - .../solverLanguage/impl/MultiplicityImpl.java | 43 + .../solverLanguage/impl/NamedElementImpl.java | 180 + .../solverLanguage/impl/NamedObjectImpl.java | 179 - .../language/solverLanguage/impl/NegativeImpl.java | 41 - .../solverLanguage/impl/NumericLiteralImpl.java | 181 + .../language/solverLanguage/impl/ObjectImpl.java | 40 - .../impl/ObjectiveDefinitionImpl.java | 270 + .../solverLanguage/impl/ParameterImpl.java | 271 - .../solverLanguage/impl/PartialitySymbolImpl.java | 41 - .../solverLanguage/impl/PatternBodyImpl.java | 169 - .../language/solverLanguage/impl/PolarityImpl.java | 43 - .../language/solverLanguage/impl/PositiveImpl.java | 41 - .../impl/PredicateDefinitionImpl.java | 400 + .../solverLanguage/impl/PredicateImpl.java | 357 - .../language/solverLanguage/impl/ProblemImpl.java | 2 +- .../solverLanguage/impl/RealObjectImpl.java | 181 - .../solverLanguage/impl/RealSymbolImpl.java | 41 - .../solverLanguage/impl/ReferenceImpl.java | 175 + .../solverLanguage/impl/ReflexiveClosureImpl.java | 41 - .../solverLanguage/impl/ScopeDefinitionImpl.java | 175 + .../impl/SolverLanguageFactoryImpl.java | 574 +- .../impl/SolverLanguagePackageImpl.java | 1465 ++- .../solverLanguage/impl/StarArgumentImpl.java | 41 + .../solverLanguage/impl/StatementImpl.java | 300 +- .../solverLanguage/impl/StringLiteralImpl.java | 179 + .../solverLanguage/impl/StringObjectImpl.java | 179 - .../solverLanguage/impl/StringSymbolImpl.java | 41 - .../language/solverLanguage/impl/SwitchImpl.java | 167 + .../language/solverLanguage/impl/SymbolImpl.java | 43 - .../language/solverLanguage/impl/TrueImpl.java | 41 - .../solverLanguage/impl/TruthValueImpl.java | 43 - .../solverLanguage/impl/TypedArgumentImpl.java | 242 + .../solverLanguage/impl/TypedStarArgumentImpl.java | 175 + .../solverLanguage/impl/UnaryExpressionImpl.java | 270 + .../language/solverLanguage/impl/UnknownImpl.java | 41 - .../impl/UnnamedErrorPrediateDefinitionImpl.java | 270 + .../solverLanguage/impl/UnnamedObjectImpl.java | 179 - .../language/solverLanguage/impl/VariableImpl.java | 179 - .../util/SolverLanguageAdapterFactory.java | 614 +- .../solverLanguage/util/SolverLanguageSwitch.java | 856 +- .../AbstractSolverLanguageValidator.java | 2 +- ...lverLanguageConfigurableIssueCodesProvider.java | 2 +- 217 files changed, 35836 insertions(+), 19379 deletions(-) create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Aggregation.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AggregationOp.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllInstances.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/AllObjects.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Argument.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ArgumentList.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Assertion.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BasicInterpretation.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryExpression.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BinaryOperator.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanFalse.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanObject.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanSymbol.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanTrue.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BooleanValue.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedMultiplicity.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/BoundedScopeDefinition.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/CDInterpretation.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Call.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Case.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClassInterpretation.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClosureType.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Comparison.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ComplexObject.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Conjunction.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Constraint.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Count.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataObject.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DataSymbol.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultDefinition.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/DefaultInterpretation.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Disjunction.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EmptyIntervalLiteral.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EnumInterpretation.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/EqualsSymbol.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Error.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactMultiplicity.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExactScopeDefinition.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExistSymbol.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Expression.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExpressionArgument.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternMetricDefinition.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ExternPredicateDefinition.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/False.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/FieldRelationInterpretation.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/GlobalRelationInterpretation.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IfElse.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/InfinityLiteral.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntObject.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntegerSymbol.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interpretation.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Interval.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IrreflexiveClosure.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicLiteral.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicValue.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LowerBoundedScopeDefinition.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ManyMultiplicity.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MemberDefinition.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricDefinition.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MetricType.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ModelSymbol.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Multiplicity.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/MultiplicityDefinition.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedElement.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedObject.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Negative.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NumericLiteral.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Object.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveDefinition.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ObjectiveKind.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Parameter.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PartialitySymbol.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PatternBody.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Polarity.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Positive.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Predicate.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PredicateDefinition.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealObject.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealSymbol.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Reference.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ReflexiveClosure.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ScopeDefinition.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StarArgument.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringLiteral.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringObject.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringSymbol.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Switch.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Symbol.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/True.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TruthValue.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedArgument.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/TypedStarArgument.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryExpression.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnaryOp.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Unknown.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedErrorPrediateDefinition.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/UnnamedObject.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Variable.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AggregationImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllInstancesImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllObjectsImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentListImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AssertionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BasicInterpretationImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BinaryExpressionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanFalseImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanObjectImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanSymbolImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanTrueImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanValueImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedMultiplicityImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BoundedScopeDefinitionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CDInterpretationImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CallImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CaseImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClassInterpretationImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClosureTypeImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComparisonImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ComplexObjectImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConjunctionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ConstraintImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CountImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataObjectImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DataSymbolImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultDefinitionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultInterpretationImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DisjunctionImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EmptyIntervalLiteralImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EnumInterpretationImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EqualsSymbolImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ErrorImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactMultiplicityImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactScopeDefinitionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExistSymbolImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionArgumentImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternMetricDefinitionImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternPredicateDefinitionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FalseImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FieldRelationInterpretationImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/GlobalRelationInterpretationImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IfElseImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InfinityLiteralImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntObjectImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntegerSymbolImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InterpretationImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntervalImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IrreflexiveClosureImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LogicLiteralImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LowerBoundedScopeDefinitionImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ManyMultiplicityImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MemberDefinitionImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MetricDefinitionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ModelSymbolImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityDefinitionImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedElementImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedObjectImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NegativeImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NumericLiteralImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ObjectiveDefinitionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ParameterImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PartialitySymbolImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PatternBodyImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PolarityImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PositiveImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateDefinitionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PredicateImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealObjectImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealSymbolImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReferenceImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ReflexiveClosureImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ScopeDefinitionImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StarArgumentImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringLiteralImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringObjectImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringSymbolImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SwitchImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SymbolImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TrueImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TruthValueImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedArgumentImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/TypedStarArgumentImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnaryExpressionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnknownImpl.java create mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedErrorPrediateDefinitionImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnnamedObjectImpl.java delete mode 100644 Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/VariableImpl.java (limited to 'Application/org.eclipse.viatra.solver.language/src-gen/org') 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language; 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 Binary files a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin and b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/SolverLanguage.xtextbin 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language; 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.parser.antlr; 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.parser.antlr; 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ grammar InternalSolverLanguage; @@ -23,6 +23,7 @@ import org.eclipse.xtext.parser.*; import org.eclipse.xtext.parser.impl.*; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.common.util.Enumerator; import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; import org.eclipse.xtext.parser.antlr.XtextTokenStream; import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; @@ -112,35 +113,113 @@ ruleStatement returns [EObject current=null] leaveRule(); }: ( + ( + { + newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0_0()); + } + this_AssertionOrDefinition_0=ruleAssertionOrDefinition + { + $current = $this_AssertionOrDefinition_0.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_0_1()); + } + this_PredicateDefinition_1=rulePredicateDefinition + { + $current = $this_PredicateDefinition_1.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPrediateDefinitionParserRuleCall_0_2()); + } + this_UnnamedErrorPrediateDefinition_2=ruleUnnamedErrorPrediateDefinition + { + $current = $this_UnnamedErrorPrediateDefinition_2.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getDefaultDefinitionParserRuleCall_0_3()); + } + this_DefaultDefinition_3=ruleDefaultDefinition + { + $current = $this_DefaultDefinition_3.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getExternPredicateDefinitionParserRuleCall_0_4()); + } + this_ExternPredicateDefinition_4=ruleExternPredicateDefinition + { + $current = $this_ExternPredicateDefinition_4.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getMetricDefinitionParserRuleCall_0_5()); + } + this_MetricDefinition_5=ruleMetricDefinition + { + $current = $this_MetricDefinition_5.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getExternMetricDefinitionParserRuleCall_0_6()); + } + this_ExternMetricDefinition_6=ruleExternMetricDefinition + { + $current = $this_ExternMetricDefinition_6.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getClassDefinitionParserRuleCall_0_7()); + } + this_ClassDefinition_7=ruleClassDefinition + { + $current = $this_ClassDefinition_7.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getScopeDefinitionParserRuleCall_0_8()); + } + this_ScopeDefinition_8=ruleScopeDefinition + { + $current = $this_ScopeDefinition_8.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDefinitionParserRuleCall_0_9()); + } + this_ObjectiveDefinition_9=ruleObjectiveDefinition + { + $current = $this_ObjectiveDefinition_9.current; + afterParserOrEnumRuleCall(); + } + ) + this_DOT_10=RULE_DOT { - newCompositeNode(grammarAccess.getStatementAccess().getInterpretationParserRuleCall_0()); - } - this_Interpretation_0=ruleInterpretation - { - $current = $this_Interpretation_0.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getStatementAccess().getPredicateParserRuleCall_1()); - } - this_Predicate_1=rulePredicate - { - $current = $this_Predicate_1.current; - afterParserOrEnumRuleCall(); + newLeafNode(this_DOT_10, grammarAccess.getStatementAccess().getDOTTerminalRuleCall_1()); } ) ; -// Entry rule entryRuleREALLiteral -entryRuleREALLiteral returns [String current=null]: - { newCompositeNode(grammarAccess.getREALLiteralRule()); } - iv_ruleREALLiteral=ruleREALLiteral - { $current=$iv_ruleREALLiteral.current.getText(); } +// Entry rule entryRuleAssertionOrDefinition +entryRuleAssertionOrDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAssertionOrDefinitionRule()); } + iv_ruleAssertionOrDefinition=ruleAssertionOrDefinition + { $current=$iv_ruleAssertionOrDefinition.current; } EOF; -// Rule REALLiteral -ruleREALLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +// Rule AssertionOrDefinition +ruleAssertionOrDefinition returns [EObject current=null] @init { enterRule(); } @@ -148,44 +227,128 @@ ruleREALLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleTok leaveRule(); }: ( - ( - kw='-' - { - $current.merge(kw); - newLeafNode(kw, grammarAccess.getREALLiteralAccess().getHyphenMinusKeyword_0()); - } - )? - this_INT_1=RULE_INT - { - $current.merge(this_INT_1); - } - { - newLeafNode(this_INT_1, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_1()); - } - kw='.' - { - $current.merge(kw); - newLeafNode(kw, grammarAccess.getREALLiteralAccess().getFullStopKeyword_2()); - } - this_INT_3=RULE_INT { - $current.merge(this_INT_3); + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getExpressionParserRuleCall_0()); } + this_Expression_0=ruleExpression { - newLeafNode(this_INT_3, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_3()); + $current = $this_Expression_0.current; + afterParserOrEnumRuleCall(); } + ( + ( + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getAssertionOrDefinitionAccess().getAssertionBodyAction_1_0_0(), + $current); + } + ) + ( + otherlv_2=':' + { + newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_1_1_0()); + } + lv_range_3_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); + } + set( + $current, + "range", + lv_range_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? + ) + | + ( + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(), + $current); + } + ) + otherlv_5=':-' + { + newLeafNode(otherlv_5, grammarAccess.getAssertionOrDefinitionAccess().getColonHyphenMinusKeyword_1_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0()); + } + lv_body_6_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); + } + set( + $current, + "body", + lv_body_6_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + ( + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), + $current); + } + ) + otherlv_8='=' + { + newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getEqualsSignKeyword_1_2_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0()); + } + lv_body_9_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); + } + set( + $current, + "body", + lv_body_9_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + ) ) ; -// Entry rule entryRuleINTLiteral -entryRuleINTLiteral returns [String current=null]: - { newCompositeNode(grammarAccess.getINTLiteralRule()); } - iv_ruleINTLiteral=ruleINTLiteral - { $current=$iv_ruleINTLiteral.current.getText(); } +// Entry rule entryRulePredicateDefinition +entryRulePredicateDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getPredicateDefinitionRule()); } + iv_rulePredicateDefinition=rulePredicateDefinition + { $current=$iv_rulePredicateDefinition.current; } EOF; -// Rule INTLiteral -ruleINTLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +// Rule PredicateDefinition +rulePredicateDefinition returns [EObject current=null] @init { enterRule(); } @@ -194,31 +357,122 @@ ruleINTLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToke }: ( ( - kw='-' - { - $current.merge(kw); - newLeafNode(kw, grammarAccess.getINTLiteralAccess().getHyphenMinusKeyword_0()); - } - )? - this_INT_1=RULE_INT - { - $current.merge(this_INT_1); - } + ( + ( + ( + lv_functional_0_0='functional' + { + newLeafNode(lv_functional_0_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPredicateDefinitionRule()); + } + setWithLastConsumed($current, "functional", true, "functional"); + } + ) + ) + ( + ( + lv_error_1_0='error' + { + newLeafNode(lv_error_1_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPredicateDefinitionRule()); + } + setWithLastConsumed($current, "error", true, "error"); + } + ) + )? + ) + | + ( + ( + ( + lv_error_2_0='error' + { + newLeafNode(lv_error_2_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_1_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPredicateDefinitionRule()); + } + setWithLastConsumed($current, "error", true, "error"); + } + ) + ) + ( + ( + lv_functional_3_0='functional' + { + newLeafNode(lv_functional_3_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_1_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getPredicateDefinitionRule()); + } + setWithLastConsumed($current, "functional", true, "functional"); + } + ) + )? + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0()); + } + lv_head_4_0=ruleCall + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule()); + } + set( + $current, + "head", + lv_head_4_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_5=':-' { - newLeafNode(this_INT_1, grammarAccess.getINTLiteralAccess().getINTTerminalRuleCall_1()); + newLeafNode(otherlv_5, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_2()); } + ( + ( + { + newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); + } + lv_body_6_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule()); + } + set( + $current, + "body", + lv_body_6_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) ) ; -// Entry rule entryRuleBooleanValue -entryRuleBooleanValue returns [EObject current=null]: - { newCompositeNode(grammarAccess.getBooleanValueRule()); } - iv_ruleBooleanValue=ruleBooleanValue - { $current=$iv_ruleBooleanValue.current; } +// Entry rule entryRuleUnnamedErrorPrediateDefinition +entryRuleUnnamedErrorPrediateDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); } + iv_ruleUnnamedErrorPrediateDefinition=ruleUnnamedErrorPrediateDefinition + { $current=$iv_ruleUnnamedErrorPrediateDefinition.current; } EOF; -// Rule BooleanValue -ruleBooleanValue returns [EObject current=null] +// Rule UnnamedErrorPrediateDefinition +ruleUnnamedErrorPrediateDefinition returns [EObject current=null] @init { enterRule(); } @@ -226,45 +480,64 @@ ruleBooleanValue returns [EObject current=null] leaveRule(); }: ( + otherlv_0='error' + { + newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getErrorKeyword_0()); + } ( ( { - $current = forceCreateModelElement( - grammarAccess.getBooleanValueAccess().getBooleanTrueAction_0_0(), - $current); + newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0()); + } + lv_argumentList_1_0=ruleArgumentList + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); + } + set( + $current, + "argumentList", + lv_argumentList_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); + afterParserOrEnumRuleCall(); } ) - otherlv_1='true' - { - newLeafNode(otherlv_1, grammarAccess.getBooleanValueAccess().getTrueKeyword_0_1()); - } ) - | + otherlv_2=':-' + { + newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getColonHyphenMinusKeyword_2()); + } ( - otherlv_2='false' - { - newLeafNode(otherlv_2, grammarAccess.getBooleanValueAccess().getFalseKeyword_1_0()); - } ( { - $current = forceCreateModelElement( - grammarAccess.getBooleanValueAccess().getBooleanFalseAction_1_1(), - $current); + newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); + } + lv_body_3_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); + } + set( + $current, + "body", + lv_body_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); } ) ) ) ; -// Entry rule entryRuleTruthValue -entryRuleTruthValue returns [EObject current=null]: - { newCompositeNode(grammarAccess.getTruthValueRule()); } - iv_ruleTruthValue=ruleTruthValue - { $current=$iv_ruleTruthValue.current; } +// Entry rule entryRuleDefaultDefinition +entryRuleDefaultDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getDefaultDefinitionRule()); } + iv_ruleDefaultDefinition=ruleDefaultDefinition + { $current=$iv_ruleDefaultDefinition.current; } EOF; -// Rule TruthValue -ruleTruthValue returns [EObject current=null] +// Rule DefaultDefinition +ruleDefaultDefinition returns [EObject current=null] @init { enterRule(); } @@ -272,73 +545,64 @@ ruleTruthValue returns [EObject current=null] leaveRule(); }: ( + otherlv_0='default' + { + newLeafNode(otherlv_0, grammarAccess.getDefaultDefinitionAccess().getDefaultKeyword_0()); + } ( ( { - $current = forceCreateModelElement( - grammarAccess.getTruthValueAccess().getTrueAction_0_0(), - $current); - } - ) - otherlv_1='true' - { - newLeafNode(otherlv_1, grammarAccess.getTruthValueAccess().getTrueKeyword_0_1()); - } - ) - | - ( - ( - { - $current = forceCreateModelElement( - grammarAccess.getTruthValueAccess().getFalseAction_1_0(), - $current); + newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0()); } - ) - otherlv_3='false' - { - newLeafNode(otherlv_3, grammarAccess.getTruthValueAccess().getFalseKeyword_1_1()); - } - ) - | - ( - ( + lv_head_1_0=ruleCall { - $current = forceCreateModelElement( - grammarAccess.getTruthValueAccess().getUnknownAction_2_0(), - $current); + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); + } + set( + $current, + "head", + lv_head_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + afterParserOrEnumRuleCall(); } ) - otherlv_5='unknown' - { - newLeafNode(otherlv_5, grammarAccess.getTruthValueAccess().getUnknownKeyword_2_1()); - } ) - | + otherlv_2=':' + { + newLeafNode(otherlv_2, grammarAccess.getDefaultDefinitionAccess().getColonKeyword_2()); + } ( ( { - $current = forceCreateModelElement( - grammarAccess.getTruthValueAccess().getErrorAction_3_0(), - $current); + newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0()); + } + lv_range_3_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); + } + set( + $current, + "range", + lv_range_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); } ) - otherlv_7='error' - { - newLeafNode(otherlv_7, grammarAccess.getTruthValueAccess().getErrorKeyword_3_1()); - } ) ) ; -// Entry rule entryRuleInterpretation -entryRuleInterpretation returns [EObject current=null]: - { newCompositeNode(grammarAccess.getInterpretationRule()); } - iv_ruleInterpretation=ruleInterpretation - { $current=$iv_ruleInterpretation.current; } +// Entry rule entryRuleExternPredicateDefinition +entryRuleExternPredicateDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExternPredicateDefinitionRule()); } + iv_ruleExternPredicateDefinition=ruleExternPredicateDefinition + { $current=$iv_ruleExternPredicateDefinition.current; } EOF; -// Rule Interpretation -ruleInterpretation returns [EObject current=null] +// Rule ExternPredicateDefinition +ruleExternPredicateDefinition returns [EObject current=null] @init { enterRule(); } @@ -346,44 +610,45 @@ ruleInterpretation returns [EObject current=null] leaveRule(); }: ( + otherlv_0='extern' { - newCompositeNode(grammarAccess.getInterpretationAccess().getBasicInterpretationParserRuleCall_0()); - } - this_BasicInterpretation_0=ruleBasicInterpretation - { - $current = $this_BasicInterpretation_0.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getInterpretationAccess().getDefaultInterpretationParserRuleCall_1()); - } - this_DefaultInterpretation_1=ruleDefaultInterpretation - { - $current = $this_DefaultInterpretation_1.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getInterpretationAccess().getCDInterpretationParserRuleCall_2()); + newLeafNode(otherlv_0, grammarAccess.getExternPredicateDefinitionAccess().getExternKeyword_0()); } - this_CDInterpretation_2=ruleCDInterpretation + ( + ( + { + newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0()); + } + lv_head_1_0=ruleCall + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule()); + } + set( + $current, + "head", + lv_head_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='.' { - $current = $this_CDInterpretation_2.current; - afterParserOrEnumRuleCall(); + newLeafNode(otherlv_2, grammarAccess.getExternPredicateDefinitionAccess().getFullStopKeyword_2()); } ) ; -// Entry rule entryRuleBasicInterpretation -entryRuleBasicInterpretation returns [EObject current=null]: - { newCompositeNode(grammarAccess.getBasicInterpretationRule()); } - iv_ruleBasicInterpretation=ruleBasicInterpretation - { $current=$iv_ruleBasicInterpretation.current; } +// Entry rule entryRuleMetricDefinition +entryRuleMetricDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getMetricDefinitionRule()); } + iv_ruleMetricDefinition=ruleMetricDefinition + { $current=$iv_ruleMetricDefinition.current; } EOF; -// Rule BasicInterpretation -ruleBasicInterpretation returns [EObject current=null] +// Rule MetricDefinition +ruleMetricDefinition returns [EObject current=null] @init { enterRule(); } @@ -394,97 +659,60 @@ ruleBasicInterpretation returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getBasicInterpretationAccess().getSymbolSymbolParserRuleCall_0_0()); + newCompositeNode(grammarAccess.getMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_0_0()); } - lv_symbol_0_0=ruleSymbol + lv_type_0_0=ruleMetricType { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); + $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); } set( $current, - "symbol", - lv_symbol_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); + "type", + lv_type_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MetricType"); afterParserOrEnumRuleCall(); } ) ) ( - otherlv_1='(' - { - newLeafNode(otherlv_1, grammarAccess.getBasicInterpretationAccess().getLeftParenthesisKeyword_1_0()); - } ( - ( - ( - { - newCompositeNode(grammarAccess.getBasicInterpretationAccess().getObjectsComplexObjectParserRuleCall_1_1_0_0()); - } - lv_objects_2_0=ruleComplexObject - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); - } - add( - $current, - "objects", - lv_objects_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject"); - afterParserOrEnumRuleCall(); - } - ) - ) - ( - otherlv_3=',' - { - newLeafNode(otherlv_3, grammarAccess.getBasicInterpretationAccess().getCommaKeyword_1_1_1_0()); + { + newCompositeNode(grammarAccess.getMetricDefinitionAccess().getHeadExpressionParserRuleCall_1_0()); + } + lv_head_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); } - ( - ( - { - newCompositeNode(grammarAccess.getBasicInterpretationAccess().getObjectsComplexObjectParserRuleCall_1_1_1_1_0()); - } - lv_objects_4_0=ruleComplexObject - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); - } - add( - $current, - "objects", - lv_objects_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject"); - afterParserOrEnumRuleCall(); - } - ) - ) - )* - )? - otherlv_5=')' - { - newLeafNode(otherlv_5, grammarAccess.getBasicInterpretationAccess().getRightParenthesisKeyword_1_2()); - } - )? - otherlv_6=':' + set( + $current, + "head", + lv_head_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='=' { - newLeafNode(otherlv_6, grammarAccess.getBasicInterpretationAccess().getColonKeyword_2()); + newLeafNode(otherlv_2, grammarAccess.getMetricDefinitionAccess().getEqualsSignKeyword_2()); } ( ( { - newCompositeNode(grammarAccess.getBasicInterpretationAccess().getValueTruthValueParserRuleCall_3_0()); + newCompositeNode(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); } - lv_value_7_0=ruleTruthValue + lv_body_3_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); + $current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); } set( $current, - "value", - lv_value_7_0, - "org.eclipse.viatra.solver.language.SolverLanguage.TruthValue"); + "body", + lv_body_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); } ) @@ -492,15 +720,15 @@ ruleBasicInterpretation returns [EObject current=null] ) ; -// Entry rule entryRuleSymbol -entryRuleSymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getSymbolRule()); } - iv_ruleSymbol=ruleSymbol - { $current=$iv_ruleSymbol.current; } +// Entry rule entryRuleExternMetricDefinition +entryRuleExternMetricDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExternMetricDefinitionRule()); } + iv_ruleExternMetricDefinition=ruleExternMetricDefinition + { $current=$iv_ruleExternMetricDefinition.current; } EOF; -// Rule Symbol -ruleSymbol returns [EObject current=null] +// Rule ExternMetricDefinition +ruleExternMetricDefinition returns [EObject current=null] @init { enterRule(); } @@ -508,79 +736,60 @@ ruleSymbol returns [EObject current=null] leaveRule(); }: ( + otherlv_0='extern' { - newCompositeNode(grammarAccess.getSymbolAccess().getModelSymbolParserRuleCall_0()); - } - this_ModelSymbol_0=ruleModelSymbol - { - $current = $this_ModelSymbol_0.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getSymbolAccess().getPartialitySymbolParserRuleCall_1()); - } - this_PartialitySymbol_1=rulePartialitySymbol - { - $current = $this_PartialitySymbol_1.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getSymbolAccess().getDataSymbolParserRuleCall_2()); + newLeafNode(otherlv_0, grammarAccess.getExternMetricDefinitionAccess().getExternKeyword_0()); } - this_DataSymbol_2=ruleDataSymbol - { - $current = $this_DataSymbol_2.current; - afterParserOrEnumRuleCall(); - } - ) -; - -// Entry rule entryRuleModelSymbol -entryRuleModelSymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getModelSymbolRule()); } - iv_ruleModelSymbol=ruleModelSymbol - { $current=$iv_ruleModelSymbol.current; } - EOF; - -// Rule ModelSymbol -ruleModelSymbol returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( ( - lv_name_0_0=RULE_ID - { - newLeafNode(lv_name_0_0, grammarAccess.getModelSymbolAccess().getNameIDTerminalRuleCall_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getModelSymbolRule()); + ( + { + newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_1_0()); } - setWithLastConsumed( - $current, - "name", - lv_name_0_0, - "org.eclipse.xtext.common.Terminals.ID"); - } + lv_type_1_0=ruleMetricType + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); + } + set( + $current, + "type", + lv_type_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MetricType"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getHeadCallParserRuleCall_2_0()); + } + lv_head_2_0=ruleCall + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); + } + set( + $current, + "head", + lv_head_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + afterParserOrEnumRuleCall(); + } + ) ) ) ; -// Entry rule entryRulePartialitySymbol -entryRulePartialitySymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getPartialitySymbolRule()); } - iv_rulePartialitySymbol=rulePartialitySymbol - { $current=$iv_rulePartialitySymbol.current; } +// Entry rule entryRuleExpression +entryRuleExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExpressionRule()); } + iv_ruleExpression=ruleExpression + { $current=$iv_ruleExpression.current; } EOF; -// Rule PartialitySymbol -rulePartialitySymbol returns [EObject current=null] +// Rule Expression +ruleExpression returns [EObject current=null] @init { enterRule(); } @@ -589,34 +798,34 @@ rulePartialitySymbol returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getPartialitySymbolAccess().getExistSymbolParserRuleCall_0()); + newCompositeNode(grammarAccess.getExpressionAccess().getIfElseParserRuleCall_0()); } - this_ExistSymbol_0=ruleExistSymbol + this_IfElse_0=ruleIfElse { - $current = $this_ExistSymbol_0.current; + $current = $this_IfElse_0.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getPartialitySymbolAccess().getEqualsSymbolParserRuleCall_1()); + newCompositeNode(grammarAccess.getExpressionAccess().getDisjunctiveExpressionParserRuleCall_1()); } - this_EqualsSymbol_1=ruleEqualsSymbol + this_DisjunctiveExpression_1=ruleDisjunctiveExpression { - $current = $this_EqualsSymbol_1.current; + $current = $this_DisjunctiveExpression_1.current; afterParserOrEnumRuleCall(); } ) ; -// Entry rule entryRuleExistSymbol -entryRuleExistSymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getExistSymbolRule()); } - iv_ruleExistSymbol=ruleExistSymbol - { $current=$iv_ruleExistSymbol.current; } +// Entry rule entryRuleIfElse +entryRuleIfElse returns [EObject current=null]: + { newCompositeNode(grammarAccess.getIfElseRule()); } + iv_ruleIfElse=ruleIfElse + { $current=$iv_ruleIfElse.current; } EOF; -// Rule ExistSymbol -ruleExistSymbol returns [EObject current=null] +// Rule IfElse +ruleIfElse returns [EObject current=null] @init { enterRule(); } @@ -624,59 +833,87 @@ ruleExistSymbol returns [EObject current=null] leaveRule(); }: ( - otherlv_0='exists' + otherlv_0='if' { - newLeafNode(otherlv_0, grammarAccess.getExistSymbolAccess().getExistsKeyword_0()); + newLeafNode(otherlv_0, grammarAccess.getIfElseAccess().getIfKeyword_0()); } ( - { - $current = forceCreateModelElement( - grammarAccess.getExistSymbolAccess().getExistSymbolAction_1(), - $current); - } + ( + { + newCompositeNode(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0()); + } + lv_condition_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIfElseRule()); + } + set( + $current, + "condition", + lv_condition_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) ) - ) -; - -// Entry rule entryRuleEqualsSymbol -entryRuleEqualsSymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getEqualsSymbolRule()); } - iv_ruleEqualsSymbol=ruleEqualsSymbol - { $current=$iv_ruleEqualsSymbol.current; } - EOF; - -// Rule EqualsSymbol -ruleEqualsSymbol returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='equals' + otherlv_2='then' { - newLeafNode(otherlv_0, grammarAccess.getEqualsSymbolAccess().getEqualsKeyword_0()); + newLeafNode(otherlv_2, grammarAccess.getIfElseAccess().getThenKeyword_2()); } ( - { - $current = forceCreateModelElement( - grammarAccess.getEqualsSymbolAccess().getEqualsSymbolAction_1(), - $current); - } + ( + { + newCompositeNode(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0()); + } + lv_then_3_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIfElseRule()); + } + set( + $current, + "then", + lv_then_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_4='else' + { + newLeafNode(otherlv_4, grammarAccess.getIfElseAccess().getElseKeyword_4()); + } + ( + ( + { + newCompositeNode(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0()); + } + lv_else_5_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIfElseRule()); + } + set( + $current, + "else", + lv_else_5_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) ) ) ; -// Entry rule entryRuleDataSymbol -entryRuleDataSymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getDataSymbolRule()); } - iv_ruleDataSymbol=ruleDataSymbol - { $current=$iv_ruleDataSymbol.current; } +// Entry rule entryRuleDisjunctiveExpression +entryRuleDisjunctiveExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getDisjunctiveExpressionRule()); } + iv_ruleDisjunctiveExpression=ruleDisjunctiveExpression + { $current=$iv_ruleDisjunctiveExpression.current; } EOF; -// Rule DataSymbol -ruleDataSymbol returns [EObject current=null] +// Rule DisjunctiveExpression +ruleDisjunctiveExpression returns [EObject current=null] @init { enterRule(); } @@ -685,82 +922,126 @@ ruleDataSymbol returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getDataSymbolAccess().getBooleanSymbolParserRuleCall_0()); - } - this_BooleanSymbol_0=ruleBooleanSymbol - { - $current = $this_BooleanSymbol_0.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getDataSymbolAccess().getIntegerSymbolParserRuleCall_1()); - } - this_IntegerSymbol_1=ruleIntegerSymbol - { - $current = $this_IntegerSymbol_1.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getDataSymbolAccess().getRealSymbolParserRuleCall_2()); - } - this_RealSymbol_2=ruleRealSymbol - { - $current = $this_RealSymbol_2.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getDataSymbolAccess().getStringSymbolParserRuleCall_3()); + newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getConjunctiveExpressionParserRuleCall_0()); } - this_StringSymbol_3=ruleStringSymbol + this_ConjunctiveExpression_0=ruleConjunctiveExpression { - $current = $this_StringSymbol_3.current; + $current = $this_ConjunctiveExpression_0.current; afterParserOrEnumRuleCall(); } - ) -; - -// Entry rule entryRuleBooleanSymbol -entryRuleBooleanSymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getBooleanSymbolRule()); } - iv_ruleBooleanSymbol=ruleBooleanSymbol - { $current=$iv_ruleBooleanSymbol.current; } - EOF; - -// Rule BooleanSymbol -ruleBooleanSymbol returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='bool' - { - newLeafNode(otherlv_0, grammarAccess.getBooleanSymbolAccess().getBoolKeyword_0()); - } ( - { - $current = forceCreateModelElement( - grammarAccess.getBooleanSymbolAccess().getBooleanSymbolAction_1(), - $current); - } - ) + ( + ( + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getDisjunctiveExpressionAccess().getDisjunctionChildrenAction_1_0_0(), + $current); + } + ) + ( + otherlv_2=';' + { + newLeafNode(otherlv_2, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_0_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0()); + } + lv_children_3_0=ruleConjunctiveExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule()); + } + add( + $current, + "children", + lv_children_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )+ + ) + | + ( + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getDisjunctiveExpressionAccess().getCaseConditionAction_1_1_0(), + $current); + } + ) + otherlv_5='->' + { + newLeafNode(otherlv_5, grammarAccess.getDisjunctiveExpressionAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1()); + } + ( + ( + { + newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0()); + } + lv_body_6_0=ruleConjunctiveExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule()); + } + set( + $current, + "body", + lv_body_6_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getDisjunctiveExpressionAccess().getSwitchCasesAction_1_1_3(), + $current); + } + ) + ( + otherlv_8=';' + { + newLeafNode(otherlv_8, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_1_4_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getCasesCaseParserRuleCall_1_1_4_1_0()); + } + lv_cases_9_0=ruleCase + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule()); + } + add( + $current, + "cases", + lv_cases_9_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Case"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* + ) + )? ) ; -// Entry rule entryRuleIntegerSymbol -entryRuleIntegerSymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getIntegerSymbolRule()); } - iv_ruleIntegerSymbol=ruleIntegerSymbol - { $current=$iv_ruleIntegerSymbol.current; } +// Entry rule entryRuleCase +entryRuleCase returns [EObject current=null]: + { newCompositeNode(grammarAccess.getCaseRule()); } + iv_ruleCase=ruleCase + { $current=$iv_ruleCase.current; } EOF; -// Rule IntegerSymbol -ruleIntegerSymbol returns [EObject current=null] +// Rule Case +ruleCase returns [EObject current=null] @init { enterRule(); } @@ -768,59 +1049,60 @@ ruleIntegerSymbol returns [EObject current=null] leaveRule(); }: ( - otherlv_0='int' - { - newLeafNode(otherlv_0, grammarAccess.getIntegerSymbolAccess().getIntKeyword_0()); - } ( - { - $current = forceCreateModelElement( - grammarAccess.getIntegerSymbolAccess().getIntegerSymbolAction_1(), - $current); - } + ( + { + newCompositeNode(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0()); + } + lv_condition_0_0=ruleConjunctiveExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCaseRule()); + } + set( + $current, + "condition", + lv_condition_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression"); + afterParserOrEnumRuleCall(); + } + ) ) - ) -; - -// Entry rule entryRuleRealSymbol -entryRuleRealSymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getRealSymbolRule()); } - iv_ruleRealSymbol=ruleRealSymbol - { $current=$iv_ruleRealSymbol.current; } - EOF; - -// Rule RealSymbol -ruleRealSymbol returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - otherlv_0='real' + otherlv_1='->' { - newLeafNode(otherlv_0, grammarAccess.getRealSymbolAccess().getRealKeyword_0()); + newLeafNode(otherlv_1, grammarAccess.getCaseAccess().getHyphenMinusGreaterThanSignKeyword_1()); } ( - { - $current = forceCreateModelElement( - grammarAccess.getRealSymbolAccess().getRealSymbolAction_1(), - $current); - } + ( + { + newCompositeNode(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0()); + } + lv_body_2_0=ruleConjunctiveExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCaseRule()); + } + set( + $current, + "body", + lv_body_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression"); + afterParserOrEnumRuleCall(); + } + ) ) ) ; -// Entry rule entryRuleStringSymbol -entryRuleStringSymbol returns [EObject current=null]: - { newCompositeNode(grammarAccess.getStringSymbolRule()); } - iv_ruleStringSymbol=ruleStringSymbol - { $current=$iv_ruleStringSymbol.current; } +// Entry rule entryRuleConjunctiveExpression +entryRuleConjunctiveExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getConjunctiveExpressionRule()); } + iv_ruleConjunctiveExpression=ruleConjunctiveExpression + { $current=$iv_ruleConjunctiveExpression.current; } EOF; -// Rule StringSymbol -ruleStringSymbol returns [EObject current=null] +// Rule ConjunctiveExpression +ruleConjunctiveExpression returns [EObject current=null] @init { enterRule(); } @@ -828,29 +1110,60 @@ ruleStringSymbol returns [EObject current=null] leaveRule(); }: ( - otherlv_0='string' { - newLeafNode(otherlv_0, grammarAccess.getStringSymbolAccess().getStringKeyword_0()); + newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getComparisonExpressionParserRuleCall_0()); + } + this_ComparisonExpression_0=ruleComparisonExpression + { + $current = $this_ComparisonExpression_0.current; + afterParserOrEnumRuleCall(); } ( - { - $current = forceCreateModelElement( - grammarAccess.getStringSymbolAccess().getStringSymbolAction_1(), - $current); - } - ) + ( + { + $current = forceCreateModelElementAndAdd( + grammarAccess.getConjunctiveExpressionAccess().getConjunctionChildrenAction_1_0(), + $current); + } + ) + ( + otherlv_2=',' + { + newLeafNode(otherlv_2, grammarAccess.getConjunctiveExpressionAccess().getCommaKeyword_1_1_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getChildrenComparisonExpressionParserRuleCall_1_1_1_0()); + } + lv_children_3_0=ruleComparisonExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getConjunctiveExpressionRule()); + } + add( + $current, + "children", + lv_children_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )+ + )? ) ; -// Entry rule entryRuleComplexObject -entryRuleComplexObject returns [EObject current=null]: - { newCompositeNode(grammarAccess.getComplexObjectRule()); } - iv_ruleComplexObject=ruleComplexObject - { $current=$iv_ruleComplexObject.current; } +// Entry rule entryRuleComparisonExpression +entryRuleComparisonExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getComparisonExpressionRule()); } + iv_ruleComparisonExpression=ruleComparisonExpression + { $current=$iv_ruleComparisonExpression.current; } EOF; -// Rule ComplexObject -ruleComplexObject returns [EObject current=null] +// Rule ComparisonExpression +ruleComparisonExpression returns [EObject current=null] @init { enterRule(); } @@ -859,43 +1172,72 @@ ruleComplexObject returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getComplexObjectAccess().getObjectParserRuleCall_0()); - } - this_Object_0=ruleObject - { - $current = $this_Object_0.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getComplexObjectAccess().getAllInstancesParserRuleCall_1()); - } - this_AllInstances_1=ruleAllInstances - { - $current = $this_AllInstances_1.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getComplexObjectAccess().getAllObjectsParserRuleCall_2()); + newCompositeNode(grammarAccess.getComparisonExpressionAccess().getAdditiveExpressionParserRuleCall_0()); } - this_AllObjects_2=ruleAllObjects + this_AdditiveExpression_0=ruleAdditiveExpression { - $current = $this_AllObjects_2.current; + $current = $this_AdditiveExpression_0.current; afterParserOrEnumRuleCall(); } + ( + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0()); + } + lv_op_2_0=ruleComparisonOperator + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComparisonExpressionRule()); + } + set( + $current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleAdditiveExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getComparisonExpressionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? ) ; -// Entry rule entryRuleObject -entryRuleObject returns [EObject current=null]: - { newCompositeNode(grammarAccess.getObjectRule()); } - iv_ruleObject=ruleObject - { $current=$iv_ruleObject.current; } +// Entry rule entryRuleAdditiveExpression +entryRuleAdditiveExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAdditiveExpressionRule()); } + iv_ruleAdditiveExpression=ruleAdditiveExpression + { $current=$iv_ruleAdditiveExpression.current; } EOF; -// Rule Object -ruleObject returns [EObject current=null] +// Rule AdditiveExpression +ruleAdditiveExpression returns [EObject current=null] @init { enterRule(); } @@ -904,43 +1246,72 @@ ruleObject returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getObjectAccess().getNamedObjectParserRuleCall_0()); - } - this_NamedObject_0=ruleNamedObject - { - $current = $this_NamedObject_0.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getObjectAccess().getUnnamedObjectParserRuleCall_1()); - } - this_UnnamedObject_1=ruleUnnamedObject - { - $current = $this_UnnamedObject_1.current; - afterParserOrEnumRuleCall(); - } - | - { - newCompositeNode(grammarAccess.getObjectAccess().getDataObjectParserRuleCall_2()); + newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getMultiplicativeExpressionParserRuleCall_0()); } - this_DataObject_2=ruleDataObject + this_MultiplicativeExpression_0=ruleMultiplicativeExpression { - $current = $this_DataObject_2.current; + $current = $this_MultiplicativeExpression_0.current; afterParserOrEnumRuleCall(); } + ( + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getAdditiveExpressionAccess().getBinaryExpressionLeftAction_1_0(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0()); + } + lv_op_2_0=ruleAdditiveBinaryOperator + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule()); + } + set( + $current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getRightMultiplicativeExpressionParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleMultiplicativeExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* ) ; -// Entry rule entryRuleNamedObject -entryRuleNamedObject returns [EObject current=null]: - { newCompositeNode(grammarAccess.getNamedObjectRule()); } - iv_ruleNamedObject=ruleNamedObject - { $current=$iv_ruleNamedObject.current; } +// Entry rule entryRuleMultiplicativeExpression +entryRuleMultiplicativeExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getMultiplicativeExpressionRule()); } + iv_ruleMultiplicativeExpression=ruleMultiplicativeExpression + { $current=$iv_ruleMultiplicativeExpression.current; } EOF; -// Rule NamedObject -ruleNamedObject returns [EObject current=null] +// Rule MultiplicativeExpression +ruleMultiplicativeExpression returns [EObject current=null] @init { enterRule(); } @@ -948,44 +1319,73 @@ ruleNamedObject returns [EObject current=null] leaveRule(); }: ( - otherlv_0='\'' { - newLeafNode(otherlv_0, grammarAccess.getNamedObjectAccess().getApostropheKeyword_0()); + newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExponentialExpressionParserRuleCall_0()); + } + this_ExponentialExpression_0=ruleExponentialExpression + { + $current = $this_ExponentialExpression_0.current; + afterParserOrEnumRuleCall(); } ( ( - lv_name_1_0=RULE_ID { - newLeafNode(lv_name_1_0, grammarAccess.getNamedObjectAccess().getNameIDTerminalRuleCall_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getNamedObjectRule()); - } - setWithLastConsumed( - $current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); + $current = forceCreateModelElementAndSet( + grammarAccess.getMultiplicativeExpressionAccess().getBinaryExpressionLeftAction_1_0(), + $current); } ) - ) - otherlv_2='\'' - { - newLeafNode(otherlv_2, grammarAccess.getNamedObjectAccess().getApostropheKeyword_2()); - } + ( + ( + { + newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0()); + } + lv_op_2_0=ruleMultiplicativeBinaryOperator + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule()); + } + set( + $current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleExponentialExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )* ) ; -// Entry rule entryRuleUnnamedObject -entryRuleUnnamedObject returns [EObject current=null]: - { newCompositeNode(grammarAccess.getUnnamedObjectRule()); } - iv_ruleUnnamedObject=ruleUnnamedObject - { $current=$iv_ruleUnnamedObject.current; } +// Entry rule entryRuleExponentialExpression +entryRuleExponentialExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExponentialExpressionRule()); } + iv_ruleExponentialExpression=ruleExponentialExpression + { $current=$iv_ruleExponentialExpression.current; } EOF; -// Rule UnnamedObject -ruleUnnamedObject returns [EObject current=null] +// Rule ExponentialExpression +ruleExponentialExpression returns [EObject current=null] @init { enterRule(); } @@ -993,34 +1393,73 @@ ruleUnnamedObject returns [EObject current=null] leaveRule(); }: ( + { + newCompositeNode(grammarAccess.getExponentialExpressionAccess().getUnaryExpressionParserRuleCall_0()); + } + this_UnaryExpression_0=ruleUnaryExpression + { + $current = $this_UnaryExpression_0.current; + afterParserOrEnumRuleCall(); + } ( - lv_name_0_0=RULE_ID - { - newLeafNode(lv_name_0_0, grammarAccess.getUnnamedObjectAccess().getNameIDTerminalRuleCall_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getUnnamedObjectRule()); + ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getExponentialExpressionAccess().getBinaryExpressionLeftAction_1_0(), + $current); } - setWithLastConsumed( - $current, - "name", - lv_name_0_0, - "org.eclipse.xtext.common.Terminals.ID"); - } - ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getExponentialExpressionAccess().getOpExponentialOpEnumRuleCall_1_1_0()); + } + lv_op_2_0=ruleExponentialOp + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getExponentialExpressionRule()); + } + set( + $current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getExponentialExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0()); + } + lv_right_3_0=ruleExponentialExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getExponentialExpressionRule()); + } + set( + $current, + "right", + lv_right_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + )? ) ; -// Entry rule entryRuleDataObject -entryRuleDataObject returns [EObject current=null]: - { newCompositeNode(grammarAccess.getDataObjectRule()); } - iv_ruleDataObject=ruleDataObject - { $current=$iv_ruleDataObject.current; } +// Entry rule entryRuleUnaryExpression +entryRuleUnaryExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getUnaryExpressionRule()); } + iv_ruleUnaryExpression=ruleUnaryExpression + { $current=$iv_ruleUnaryExpression.current; } EOF; -// Rule DataObject -ruleDataObject returns [EObject current=null] +// Rule UnaryExpression +ruleUnaryExpression returns [EObject current=null] @init { enterRule(); } @@ -1029,52 +1468,118 @@ ruleDataObject returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getDataObjectAccess().getBooleanObjectParserRuleCall_0()); + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getAggregationExpressionParserRuleCall_0()); } - this_BooleanObject_0=ruleBooleanObject + this_AggregationExpression_0=ruleAggregationExpression { - $current = $this_BooleanObject_0.current; + $current = $this_AggregationExpression_0.current; afterParserOrEnumRuleCall(); } | + ( + ( + { + $current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryExpressionAction_1_0(), + $current); + } + ) + ( + ( + { + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0()); + } + lv_op_2_0=ruleUnaryOp + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); + } + set( + $current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0()); + } + lv_body_3_0=ruleAggregationExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); + } + set( + $current, + "body", + lv_body_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) + ) +; + +// Entry rule entryRuleAggregationExpression +entryRuleAggregationExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAggregationExpressionRule()); } + iv_ruleAggregationExpression=ruleAggregationExpression + { $current=$iv_ruleAggregationExpression.current; } + EOF; + +// Rule AggregationExpression +ruleAggregationExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( { - newCompositeNode(grammarAccess.getDataObjectAccess().getIntObjectParserRuleCall_1()); + newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAtomicExpressionParserRuleCall_0()); } - this_IntObject_1=ruleIntObject + this_AtomicExpression_0=ruleAtomicExpression { - $current = $this_IntObject_1.current; + $current = $this_AtomicExpression_0.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getDataObjectAccess().getRealObjectParserRuleCall_2()); + newCompositeNode(grammarAccess.getAggregationExpressionAccess().getCountParserRuleCall_1()); } - this_RealObject_2=ruleRealObject + this_Count_1=ruleCount { - $current = $this_RealObject_2.current; + $current = $this_Count_1.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getDataObjectAccess().getStringObjectParserRuleCall_3()); + newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAggregationParserRuleCall_2()); } - this_StringObject_3=ruleStringObject + this_Aggregation_2=ruleAggregation { - $current = $this_StringObject_3.current; + $current = $this_Aggregation_2.current; afterParserOrEnumRuleCall(); } ) ; -// Entry rule entryRuleBooleanObject -entryRuleBooleanObject returns [EObject current=null]: - { newCompositeNode(grammarAccess.getBooleanObjectRule()); } - iv_ruleBooleanObject=ruleBooleanObject - { $current=$iv_ruleBooleanObject.current; } +// Entry rule entryRuleCount +entryRuleCount returns [EObject current=null]: + { newCompositeNode(grammarAccess.getCountRule()); } + iv_ruleCount=ruleCount + { $current=$iv_ruleCount.current; } EOF; -// Rule BooleanObject -ruleBooleanObject returns [EObject current=null] +// Rule Count +ruleCount returns [EObject current=null] @init { enterRule(); } @@ -1082,71 +1587,49 @@ ruleBooleanObject returns [EObject current=null] leaveRule(); }: ( + otherlv_0='count' + { + newLeafNode(otherlv_0, grammarAccess.getCountAccess().getCountKeyword_0()); + } + otherlv_1='{' + { + newLeafNode(otherlv_1, grammarAccess.getCountAccess().getLeftCurlyBracketKeyword_1()); + } ( - { - newCompositeNode(grammarAccess.getBooleanObjectAccess().getValueBooleanValueParserRuleCall_0()); - } - lv_value_0_0=ruleBooleanValue - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getBooleanObjectRule()); + ( + { + newCompositeNode(grammarAccess.getCountAccess().getBodyExpressionParserRuleCall_2_0()); } - set( - $current, - "value", - lv_value_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.BooleanValue"); - afterParserOrEnumRuleCall(); - } - ) - ) -; - -// Entry rule entryRuleIntObject -entryRuleIntObject returns [EObject current=null]: - { newCompositeNode(grammarAccess.getIntObjectRule()); } - iv_ruleIntObject=ruleIntObject - { $current=$iv_ruleIntObject.current; } - EOF; - -// Rule IntObject -ruleIntObject returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - ( - { - newCompositeNode(grammarAccess.getIntObjectAccess().getValueINTLiteralParserRuleCall_0()); - } - lv_value_0_0=ruleINTLiteral - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getIntObjectRule()); + lv_body_2_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCountRule()); + } + set( + $current, + "body", + lv_body_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); } - set( - $current, - "value", - lv_value_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.INTLiteral"); - afterParserOrEnumRuleCall(); - } + ) ) + otherlv_3='}' + { + newLeafNode(otherlv_3, grammarAccess.getCountAccess().getRightCurlyBracketKeyword_3()); + } ) ; -// Entry rule entryRuleRealObject -entryRuleRealObject returns [EObject current=null]: - { newCompositeNode(grammarAccess.getRealObjectRule()); } - iv_ruleRealObject=ruleRealObject - { $current=$iv_ruleRealObject.current; } +// Entry rule entryRuleAggregation +entryRuleAggregation returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAggregationRule()); } + iv_ruleAggregation=ruleAggregation + { $current=$iv_ruleAggregation.current; } EOF; -// Rule RealObject -ruleRealObject returns [EObject current=null] +// Rule Aggregation +ruleAggregation returns [EObject current=null] @init { enterRule(); } @@ -1155,238 +1638,181 @@ ruleRealObject returns [EObject current=null] }: ( ( - { - newCompositeNode(grammarAccess.getRealObjectAccess().getValueREALLiteralParserRuleCall_0()); - } - lv_value_0_0=ruleREALLiteral - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getRealObjectRule()); + ( + { + newCompositeNode(grammarAccess.getAggregationAccess().getOpAggregationOpEnumRuleCall_0_0()); } - set( - $current, - "value", - lv_value_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.REALLiteral"); - afterParserOrEnumRuleCall(); - } - ) - ) -; - -// Entry rule entryRuleStringObject -entryRuleStringObject returns [EObject current=null]: - { newCompositeNode(grammarAccess.getStringObjectRule()); } - iv_ruleStringObject=ruleStringObject - { $current=$iv_ruleStringObject.current; } - EOF; - -// Rule StringObject -ruleStringObject returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - ( - lv_value_0_0=RULE_STRING - { - newLeafNode(lv_value_0_0, grammarAccess.getStringObjectAccess().getValueSTRINGTerminalRuleCall_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getStringObjectRule()); + lv_op_0_0=ruleAggregationOp + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getAggregationRule()); + } + set( + $current, + "op", + lv_op_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AggregationOp"); + afterParserOrEnumRuleCall(); } - setWithLastConsumed( - $current, - "value", - lv_value_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); - } + ) ) - ) -; - -// Entry rule entryRulePredicate -entryRulePredicate returns [EObject current=null]: - { newCompositeNode(grammarAccess.getPredicateRule()); } - iv_rulePredicate=rulePredicate - { $current=$iv_rulePredicate.current; } - EOF; - -// Rule Predicate -rulePredicate returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( + otherlv_1='{' + { + newLeafNode(otherlv_1, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_1()); + } ( ( - lv_isError_0_0='error' { - newLeafNode(lv_isError_0_0, grammarAccess.getPredicateAccess().getIsErrorErrorKeyword_0_0()); + newCompositeNode(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_2_0()); } + lv_body_2_0=ruleExpression { if ($current==null) { - $current = createModelElement(grammarAccess.getPredicateRule()); + $current = createModelElementForParent(grammarAccess.getAggregationRule()); } - setWithLastConsumed($current, "isError", true, "error"); + set( + $current, + "body", + lv_body_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); } ) - )? + ) + otherlv_3='|' + { + newLeafNode(otherlv_3, grammarAccess.getAggregationAccess().getVerticalLineKeyword_3()); + } ( ( { - newCompositeNode(grammarAccess.getPredicateAccess().getSymbolModelSymbolParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0()); } - lv_symbol_1_0=ruleModelSymbol + lv_condition_4_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getPredicateRule()); + $current = createModelElementForParent(grammarAccess.getAggregationRule()); } set( $current, - "symbol", - lv_symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); + "condition", + lv_condition_4_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); } ) ) + otherlv_5='}' + { + newLeafNode(otherlv_5, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5()); + } + ) +; + +// Entry rule entryRuleAtomicExpression +entryRuleAtomicExpression returns [EObject current=null]: + { newCompositeNode(grammarAccess.getAtomicExpressionRule()); } + iv_ruleAtomicExpression=ruleAtomicExpression + { $current=$iv_ruleAtomicExpression.current; } + EOF; + +// Rule AtomicExpression +ruleAtomicExpression returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( ( - otherlv_2='(' { - newLeafNode(otherlv_2, grammarAccess.getPredicateAccess().getLeftParenthesisKeyword_2_0()); + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceParserRuleCall_0_0()); + } + this_Reference_0=ruleReference + { + $current = $this_Reference_0.current; + afterParserOrEnumRuleCall(); } ( ( + { + $current = forceCreateModelElementAndSet( + grammarAccess.getAtomicExpressionAccess().getCallFunctorAction_0_1_0(), + $current); + } + ) + ( + ('(')=> ( { - newCompositeNode(grammarAccess.getPredicateAccess().getParametersParameterParserRuleCall_2_1_0_0()); + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getArgumentListArgumentListParserRuleCall_0_1_1_0()); } - lv_parameters_3_0=ruleParameter + lv_argumentList_2_0=ruleArgumentList { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getPredicateRule()); + $current = createModelElementForParent(grammarAccess.getAtomicExpressionRule()); } - add( + set( $current, - "parameters", - lv_parameters_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Parameter"); + "argumentList", + lv_argumentList_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); afterParserOrEnumRuleCall(); } ) ) - ( - otherlv_4=',' - { - newLeafNode(otherlv_4, grammarAccess.getPredicateAccess().getCommaKeyword_2_1_1_0()); - } - ( - ( - { - newCompositeNode(grammarAccess.getPredicateAccess().getParametersParameterParserRuleCall_2_1_1_1_0()); - } - lv_parameters_5_0=ruleParameter - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getPredicateRule()); - } - add( - $current, - "parameters", - lv_parameters_5_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Parameter"); - afterParserOrEnumRuleCall(); - } - ) - ) - )* )? - otherlv_6=')' - { - newLeafNode(otherlv_6, grammarAccess.getPredicateAccess().getRightParenthesisKeyword_2_2()); - } - )? - otherlv_7=':-' + ) + | + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIntervalParserRuleCall_1()); + } + this_Interval_3=ruleInterval + { + $current = $this_Interval_3.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralParserRuleCall_2()); + } + this_Literal_4=ruleLiteral { - newLeafNode(otherlv_7, grammarAccess.getPredicateAccess().getColonHyphenMinusKeyword_3()); + $current = $this_Literal_4.current; + afterParserOrEnumRuleCall(); } + | ( - otherlv_8='false' + otherlv_5='(' { - newLeafNode(otherlv_8, grammarAccess.getPredicateAccess().getFalseKeyword_4_0()); + newLeafNode(otherlv_5, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_3_0()); + } + { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_3_1()); + } + this_Expression_6=ruleExpression + { + $current = $this_Expression_6.current; + afterParserOrEnumRuleCall(); + } + otherlv_7=')' + { + newLeafNode(otherlv_7, grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_3_2()); } - | - ( - ( - ( - { - newCompositeNode(grammarAccess.getPredicateAccess().getBodiesPatternBodyParserRuleCall_4_1_0_0()); - } - lv_bodies_9_0=rulePatternBody - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getPredicateRule()); - } - add( - $current, - "bodies", - lv_bodies_9_0, - "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody"); - afterParserOrEnumRuleCall(); - } - ) - ) - ( - otherlv_10='|' - { - newLeafNode(otherlv_10, grammarAccess.getPredicateAccess().getVerticalLineKeyword_4_1_1_0()); - } - ( - ( - { - newCompositeNode(grammarAccess.getPredicateAccess().getBodiesPatternBodyParserRuleCall_4_1_1_1_0()); - } - lv_bodies_11_0=rulePatternBody - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getPredicateRule()); - } - add( - $current, - "bodies", - lv_bodies_11_0, - "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody"); - afterParserOrEnumRuleCall(); - } - ) - ) - )* - ) ) - otherlv_12='.' - { - newLeafNode(otherlv_12, grammarAccess.getPredicateAccess().getFullStopKeyword_5()); - } ) ; -// Entry rule entryRuleParameter -entryRuleParameter returns [EObject current=null]: - { newCompositeNode(grammarAccess.getParameterRule()); } - iv_ruleParameter=ruleParameter - { $current=$iv_ruleParameter.current; } +// Entry rule entryRuleCall +entryRuleCall returns [EObject current=null]: + { newCompositeNode(grammarAccess.getCallRule()); } + iv_ruleCall=ruleCall + { $current=$iv_ruleCall.current; } EOF; -// Rule Parameter -ruleParameter returns [EObject current=null] +// Rule Call +ruleCall returns [EObject current=null] @init { enterRule(); } @@ -1397,157 +1823,92 @@ ruleParameter returns [EObject current=null] ( ( { - newCompositeNode(grammarAccess.getParameterAccess().getVariableVariableParserRuleCall_0_0()); + newCompositeNode(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0()); } - lv_variable_0_0=ruleVariable + lv_functor_0_0=ruleReference { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getParameterRule()); + $current = createModelElementForParent(grammarAccess.getCallRule()); } set( $current, - "variable", - lv_variable_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); + "functor", + lv_functor_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Reference"); afterParserOrEnumRuleCall(); } ) ) ( - otherlv_1=':' - { - newLeafNode(otherlv_1, grammarAccess.getParameterAccess().getColonKeyword_1_0()); - } ( ( + lv_transitiveClosure_1_0=RULE_STAR { - newCompositeNode(grammarAccess.getParameterAccess().getTypeSymbolParserRuleCall_1_1_0()); + newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getCallAccess().getTransitiveClosureSTARTerminalRuleCall_1_0_0()); } - lv_type_2_0=ruleSymbol { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getParameterRule()); + $current = createModelElement(grammarAccess.getCallRule()); } - set( + setWithLastConsumed( $current, - "type", - lv_type_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); - afterParserOrEnumRuleCall(); + "transitiveClosure", + true, + "org.eclipse.viatra.solver.language.SolverLanguage.STAR"); } ) ) - )? - ) -; - -// Entry rule entryRulePatternBody -entryRulePatternBody returns [EObject current=null]: - { newCompositeNode(grammarAccess.getPatternBodyRule()); } - iv_rulePatternBody=rulePatternBody - { $current=$iv_rulePatternBody.current; } - EOF; - -// Rule PatternBody -rulePatternBody returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( - ( - { - $current = forceCreateModelElement( - grammarAccess.getPatternBodyAccess().getPatternBodyAction_0(), - $current); - } - ) - ( - otherlv_1='true' - { - newLeafNode(otherlv_1, grammarAccess.getPatternBodyAccess().getTrueKeyword_1_0()); - } | ( ( + lv_reflexiveTransitiveClosure_2_0=RULE_PLUS { - newCompositeNode(grammarAccess.getPatternBodyAccess().getConstraintsConstraintParserRuleCall_1_1_0()); + newLeafNode(lv_reflexiveTransitiveClosure_2_0, grammarAccess.getCallAccess().getReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0()); } - lv_constraints_2_0=ruleConstraint { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getPatternBodyRule()); + $current = createModelElement(grammarAccess.getCallRule()); } - add( + setWithLastConsumed( $current, - "constraints", - lv_constraints_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Constraint"); - afterParserOrEnumRuleCall(); + "reflexiveTransitiveClosure", + true, + "org.eclipse.viatra.solver.language.SolverLanguage.PLUS"); } ) - )* - ) - ) -; - -// Entry rule entryRulePolarity -entryRulePolarity returns [EObject current=null]: - { newCompositeNode(grammarAccess.getPolarityRule()); } - iv_rulePolarity=rulePolarity - { $current=$iv_rulePolarity.current; } - EOF; - -// Rule Polarity -rulePolarity returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( + ) + )? ( ( { - $current = forceCreateModelElement( - grammarAccess.getPolarityAccess().getPositiveAction_0_0(), - $current); + newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_2_0()); } - ) - otherlv_1='+' - { - newLeafNode(otherlv_1, grammarAccess.getPolarityAccess().getPlusSignKeyword_0_1()); - } - ) - | - ( - ( + lv_argumentList_3_0=ruleArgumentList { - $current = forceCreateModelElement( - grammarAccess.getPolarityAccess().getNegativeAction_1_0(), - $current); + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getCallRule()); + } + set( + $current, + "argumentList", + lv_argumentList_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); + afterParserOrEnumRuleCall(); } ) - otherlv_3='-' - { - newLeafNode(otherlv_3, grammarAccess.getPolarityAccess().getHyphenMinusKeyword_1_1()); - } ) ) ; -// Entry rule entryRuleConstraint -entryRuleConstraint returns [EObject current=null]: - { newCompositeNode(grammarAccess.getConstraintRule()); } - iv_ruleConstraint=ruleConstraint - { $current=$iv_ruleConstraint.current; } +// Entry rule entryRuleArgumentList +entryRuleArgumentList returns [EObject current=null]: + { newCompositeNode(grammarAccess.getArgumentListRule()); } + iv_ruleArgumentList=ruleArgumentList + { $current=$iv_ruleArgumentList.current; } EOF; -// Rule Constraint -ruleConstraint returns [EObject current=null] +// Rule ArgumentList +ruleArgumentList returns [EObject current=null] @init { enterRule(); } @@ -1556,185 +1917,78 @@ ruleConstraint returns [EObject current=null] }: ( ( - ( - ( - { - newCompositeNode(grammarAccess.getConstraintAccess().getPolarityPolarityParserRuleCall_0_0_0()); - } - lv_polarity_0_0=rulePolarity - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - set( - $current, - "polarity", - lv_polarity_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Polarity"); - afterParserOrEnumRuleCall(); - } - ) - )? - ( - ( - { - newCompositeNode(grammarAccess.getConstraintAccess().getSymbolModelSymbolParserRuleCall_0_1_0()); - } - lv_symbol_1_0=ruleModelSymbol - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - set( - $current, - "symbol", - lv_symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - } - ) - ) - ( - otherlv_2='(' - { - newLeafNode(otherlv_2, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_0_2_0()); - } - ( - ( - { - newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_0_2_1_0()); - } - lv_params_3_0=ruleLiteral - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - add( - $current, - "params", - lv_params_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); - afterParserOrEnumRuleCall(); - } - ) - )? - ( - otherlv_4=',' - { - newLeafNode(otherlv_4, grammarAccess.getConstraintAccess().getCommaKeyword_0_2_2_0()); - } - ( - ( - { - newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_0_2_2_1_0()); - } - lv_params_5_0=ruleLiteral - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - add( - $current, - "params", - lv_params_5_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); - afterParserOrEnumRuleCall(); - } - ) - ) - )* - otherlv_6=')' - { - newLeafNode(otherlv_6, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_0_2_3()); - } - )? - ) - | - ( - ( - ( - { - newCompositeNode(grammarAccess.getConstraintAccess().getClosureTypeClosureTypeParserRuleCall_1_0_0()); - } - lv_closureType_7_0=ruleClosureType - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - set( - $current, - "closureType", - lv_closureType_7_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ClosureType"); - afterParserOrEnumRuleCall(); - } - ) - ) - otherlv_8='(' { - newLeafNode(otherlv_8, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_1_1()); + $current = forceCreateModelElement( + grammarAccess.getArgumentListAccess().getArgumentListAction_0(), + $current); } + ) + otherlv_1='(' + { + newLeafNode(otherlv_1, grammarAccess.getArgumentListAccess().getLeftParenthesisKeyword_1()); + } + ( ( ( { - newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_1_2_0()); + newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_0_0()); } - lv_params_9_0=ruleLiteral + lv_arguments_2_0=ruleArgument { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getConstraintRule()); + $current = createModelElementForParent(grammarAccess.getArgumentListRule()); } add( $current, - "params", - lv_params_9_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); + "arguments", + lv_arguments_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Argument"); afterParserOrEnumRuleCall(); } ) - )? + ) ( - otherlv_10=',' + otherlv_3=',' { - newLeafNode(otherlv_10, grammarAccess.getConstraintAccess().getCommaKeyword_1_3_0()); + newLeafNode(otherlv_3, grammarAccess.getArgumentListAccess().getCommaKeyword_2_1_0()); } ( ( { - newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_1_3_1_0()); + newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_1_1_0()); } - lv_params_11_0=ruleLiteral + lv_arguments_4_0=ruleArgument { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getConstraintRule()); + $current = createModelElementForParent(grammarAccess.getArgumentListRule()); } add( $current, - "params", - lv_params_11_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); + "arguments", + lv_arguments_4_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Argument"); afterParserOrEnumRuleCall(); } ) ) )* - otherlv_12=')' - { - newLeafNode(otherlv_12, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_1_4()); - } - ) + )? + otherlv_5=')' + { + newLeafNode(otherlv_5, grammarAccess.getArgumentListAccess().getRightParenthesisKeyword_3()); + } ) ; -// Entry rule entryRuleClosureType -entryRuleClosureType returns [EObject current=null]: - { newCompositeNode(grammarAccess.getClosureTypeRule()); } - iv_ruleClosureType=ruleClosureType - { $current=$iv_ruleClosureType.current; } +// Entry rule entryRuleArgument +entryRuleArgument returns [EObject current=null]: + { newCompositeNode(grammarAccess.getArgumentRule()); } + iv_ruleArgument=ruleArgument + { $current=$iv_ruleArgument.current; } EOF; -// Rule ClosureType -ruleClosureType returns [EObject current=null] +// Rule Argument +ruleArgument returns [EObject current=null] @init { enterRule(); } @@ -1742,90 +1996,53 @@ ruleClosureType returns [EObject current=null] leaveRule(); }: ( - ( - ( - { - $current = forceCreateModelElement( - grammarAccess.getClosureTypeAccess().getReflexiveClosureAction_0_0(), - $current); - } - ) - otherlv_1='*' - { - newLeafNode(otherlv_1, grammarAccess.getClosureTypeAccess().getAsteriskKeyword_0_1()); - } - ) + { + newCompositeNode(grammarAccess.getArgumentAccess().getExpressionArgumentParserRuleCall_0()); + } + this_ExpressionArgument_0=ruleExpressionArgument + { + $current = $this_ExpressionArgument_0.current; + afterParserOrEnumRuleCall(); + } | - ( - ( - { - $current = forceCreateModelElement( - grammarAccess.getClosureTypeAccess().getIrreflexiveClosureAction_1_0(), - $current); - } - ) - otherlv_3='+' - { - newLeafNode(otherlv_3, grammarAccess.getClosureTypeAccess().getPlusSignKeyword_1_1()); - } - ) - ) -; - -// Entry rule entryRuleLiteral -entryRuleLiteral returns [EObject current=null]: - { newCompositeNode(grammarAccess.getLiteralRule()); } - iv_ruleLiteral=ruleLiteral - { $current=$iv_ruleLiteral.current; } - EOF; - -// Rule Literal -ruleLiteral returns [EObject current=null] -@init { - enterRule(); -} -@after { - leaveRule(); -}: - ( { - newCompositeNode(grammarAccess.getLiteralAccess().getVariableParserRuleCall_0()); + newCompositeNode(grammarAccess.getArgumentAccess().getStarArgumentParserRuleCall_1()); } - this_Variable_0=ruleVariable + this_StarArgument_1=ruleStarArgument { - $current = $this_Variable_0.current; + $current = $this_StarArgument_1.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getLiteralAccess().getDataObjectParserRuleCall_1()); + newCompositeNode(grammarAccess.getArgumentAccess().getTypedArgumentParserRuleCall_2()); } - this_DataObject_1=ruleDataObject + this_TypedArgument_2=ruleTypedArgument { - $current = $this_DataObject_1.current; + $current = $this_TypedArgument_2.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getLiteralAccess().getNamedObjectParserRuleCall_2()); + newCompositeNode(grammarAccess.getArgumentAccess().getTypedStarArgumentParserRuleCall_3()); } - this_NamedObject_2=ruleNamedObject + this_TypedStarArgument_3=ruleTypedStarArgument { - $current = $this_NamedObject_2.current; + $current = $this_TypedStarArgument_3.current; afterParserOrEnumRuleCall(); } ) ; -// Entry rule entryRuleVariable -entryRuleVariable returns [EObject current=null]: - { newCompositeNode(grammarAccess.getVariableRule()); } - iv_ruleVariable=ruleVariable - { $current=$iv_ruleVariable.current; } +// Entry rule entryRuleExpressionArgument +entryRuleExpressionArgument returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExpressionArgumentRule()); } + iv_ruleExpressionArgument=ruleExpressionArgument + { $current=$iv_ruleExpressionArgument.current; } EOF; -// Rule Variable -ruleVariable returns [EObject current=null] +// Rule ExpressionArgument +ruleExpressionArgument returns [EObject current=null] @init { enterRule(); } @@ -1834,33 +2051,34 @@ ruleVariable returns [EObject current=null] }: ( ( - lv_name_0_0=RULE_ID { - newLeafNode(lv_name_0_0, grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_0()); + newCompositeNode(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0()); } + lv_body_0_0=ruleComparisonExpression { if ($current==null) { - $current = createModelElement(grammarAccess.getVariableRule()); + $current = createModelElementForParent(grammarAccess.getExpressionArgumentRule()); } - setWithLastConsumed( + set( $current, - "name", - lv_name_0_0, - "org.eclipse.xtext.common.Terminals.ID"); + "body", + lv_body_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression"); + afterParserOrEnumRuleCall(); } ) ) ; -// Entry rule entryRuleAllInstances -entryRuleAllInstances returns [EObject current=null]: - { newCompositeNode(grammarAccess.getAllInstancesRule()); } - iv_ruleAllInstances=ruleAllInstances - { $current=$iv_ruleAllInstances.current; } +// Entry rule entryRuleStarArgument +entryRuleStarArgument returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStarArgumentRule()); } + iv_ruleStarArgument=ruleStarArgument + { $current=$iv_ruleStarArgument.current; } EOF; -// Rule AllInstances -ruleAllInstances returns [EObject current=null] +// Rule StarArgument +ruleStarArgument returns [EObject current=null] @init { enterRule(); } @@ -1868,25 +2086,64 @@ ruleAllInstances returns [EObject current=null] leaveRule(); }: ( - otherlv_0=':' + ( + { + $current = forceCreateModelElement( + grammarAccess.getStarArgumentAccess().getStarArgumentAction_0(), + $current); + } + ) + otherlv_1='*' { - newLeafNode(otherlv_0, grammarAccess.getAllInstancesAccess().getColonKeyword_0()); + newLeafNode(otherlv_1, grammarAccess.getStarArgumentAccess().getAsteriskKeyword_1()); } + ) +; + +// Entry rule entryRuleTypedArgument +entryRuleTypedArgument returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTypedArgumentRule()); } + iv_ruleTypedArgument=ruleTypedArgument + { $current=$iv_ruleTypedArgument.current; } + EOF; + +// Rule TypedArgument +ruleTypedArgument returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( ( ( { - newCompositeNode(grammarAccess.getAllInstancesAccess().getSymbolSymbolParserRuleCall_1_0()); + if ($current==null) { + $current = createModelElement(grammarAccess.getTypedArgumentRule()); + } + } + { + newCompositeNode(grammarAccess.getTypedArgumentAccess().getTypeNamedElementCrossReference_0_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); } - lv_symbol_1_0=ruleSymbol + ) + ) + ( + ( { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getAllInstancesRule()); + $current = createModelElement(grammarAccess.getTypedArgumentRule()); } - set( - $current, - "symbol", - lv_symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); + } + { + newCompositeNode(grammarAccess.getTypedArgumentAccess().getVariableNamedElementCrossReference_1_0()); + } + ruleQualifiedName + { afterParserOrEnumRuleCall(); } ) @@ -1894,15 +2151,15 @@ ruleAllInstances returns [EObject current=null] ) ; -// Entry rule entryRuleAllObjects -entryRuleAllObjects returns [EObject current=null]: - { newCompositeNode(grammarAccess.getAllObjectsRule()); } - iv_ruleAllObjects=ruleAllObjects - { $current=$iv_ruleAllObjects.current; } +// Entry rule entryRuleTypedStarArgument +entryRuleTypedStarArgument returns [EObject current=null]: + { newCompositeNode(grammarAccess.getTypedStarArgumentRule()); } + iv_ruleTypedStarArgument=ruleTypedStarArgument + { $current=$iv_ruleTypedStarArgument.current; } EOF; -// Rule AllObjects -ruleAllObjects returns [EObject current=null] +// Rule TypedStarArgument +ruleTypedStarArgument returns [EObject current=null] @init { enterRule(); } @@ -1911,28 +2168,37 @@ ruleAllObjects returns [EObject current=null] }: ( ( - { - $current = forceCreateModelElement( - grammarAccess.getAllObjectsAccess().getAllObjectsAction_0(), - $current); - } + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getTypedStarArgumentRule()); + } + } + { + newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementCrossReference_0_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) ) otherlv_1='*' { - newLeafNode(otherlv_1, grammarAccess.getAllObjectsAccess().getAsteriskKeyword_1()); + newLeafNode(otherlv_1, grammarAccess.getTypedStarArgumentAccess().getAsteriskKeyword_1()); } ) ; -// Entry rule entryRuleDefaultInterpretation -entryRuleDefaultInterpretation returns [EObject current=null]: - { newCompositeNode(grammarAccess.getDefaultInterpretationRule()); } - iv_ruleDefaultInterpretation=ruleDefaultInterpretation - { $current=$iv_ruleDefaultInterpretation.current; } +// Entry rule entryRuleReference +entryRuleReference returns [EObject current=null]: + { newCompositeNode(grammarAccess.getReferenceRule()); } + iv_ruleReference=ruleReference + { $current=$iv_ruleReference.current; } EOF; -// Rule DefaultInterpretation -ruleDefaultInterpretation returns [EObject current=null] +// Rule Reference +ruleReference returns [EObject current=null] @init { enterRule(); } @@ -1940,41 +2206,101 @@ ruleDefaultInterpretation returns [EObject current=null] leaveRule(); }: ( - otherlv_0='default' + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getReferenceRule()); + } + } + { + newCompositeNode(grammarAccess.getReferenceAccess().getReferredNamedElementCrossReference_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) +; + +// Entry rule entryRuleInterval +entryRuleInterval returns [EObject current=null]: + { newCompositeNode(grammarAccess.getIntervalRule()); } + iv_ruleInterval=ruleInterval + { $current=$iv_ruleInterval.current; } + EOF; + +// Rule Interval +ruleInterval returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='[' + { + newLeafNode(otherlv_0, grammarAccess.getIntervalAccess().getLeftSquareBracketKeyword_0()); + } + ( + ( + { + newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0()); + } + lv_lowerBound_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getIntervalRule()); + } + set( + $current, + "lowerBound", + lv_lowerBound_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='..' { - newLeafNode(otherlv_0, grammarAccess.getDefaultInterpretationAccess().getDefaultKeyword_0()); + newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2()); } ( ( { - newCompositeNode(grammarAccess.getDefaultInterpretationAccess().getInterpretationBasicInterpretationParserRuleCall_1_0()); + newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0()); } - lv_interpretation_1_0=ruleBasicInterpretation + lv_upperBound_3_0=ruleExpression { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getDefaultInterpretationRule()); + $current = createModelElementForParent(grammarAccess.getIntervalRule()); } set( $current, - "interpretation", - lv_interpretation_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.BasicInterpretation"); + "upperBound", + lv_upperBound_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); afterParserOrEnumRuleCall(); } ) ) + otherlv_4=']' + { + newLeafNode(otherlv_4, grammarAccess.getIntervalAccess().getRightSquareBracketKeyword_4()); + } ) ; -// Entry rule entryRuleCDInterpretation -entryRuleCDInterpretation returns [EObject current=null]: - { newCompositeNode(grammarAccess.getCDInterpretationRule()); } - iv_ruleCDInterpretation=ruleCDInterpretation - { $current=$iv_ruleCDInterpretation.current; } +// Entry rule entryRuleLiteral +entryRuleLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLiteralRule()); } + iv_ruleLiteral=ruleLiteral + { $current=$iv_ruleLiteral.current; } EOF; -// Rule CDInterpretation -ruleCDInterpretation returns [EObject current=null] +// Rule Literal +ruleLiteral returns [EObject current=null] @init { enterRule(); } @@ -1983,43 +2309,61 @@ ruleCDInterpretation returns [EObject current=null] }: ( { - newCompositeNode(grammarAccess.getCDInterpretationAccess().getClassInterpretationParserRuleCall_0()); + newCompositeNode(grammarAccess.getLiteralAccess().getLogicLiteralParserRuleCall_0()); + } + this_LogicLiteral_0=ruleLogicLiteral + { + $current = $this_LogicLiteral_0.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getLiteralAccess().getNumericLiteralParserRuleCall_1()); + } + this_NumericLiteral_1=ruleNumericLiteral + { + $current = $this_NumericLiteral_1.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_2()); } - this_ClassInterpretation_0=ruleClassInterpretation + this_InfinityLiteral_2=ruleInfinityLiteral { - $current = $this_ClassInterpretation_0.current; + $current = $this_InfinityLiteral_2.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getCDInterpretationAccess().getEnumInterpretationParserRuleCall_1()); + newCompositeNode(grammarAccess.getLiteralAccess().getEmptyIntervalLiteralParserRuleCall_3()); } - this_EnumInterpretation_1=ruleEnumInterpretation + this_EmptyIntervalLiteral_3=ruleEmptyIntervalLiteral { - $current = $this_EnumInterpretation_1.current; + $current = $this_EmptyIntervalLiteral_3.current; afterParserOrEnumRuleCall(); } | { - newCompositeNode(grammarAccess.getCDInterpretationAccess().getGlobalRelationInterpretationParserRuleCall_2()); + newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_4()); } - this_GlobalRelationInterpretation_2=ruleGlobalRelationInterpretation + this_StringLiteral_4=ruleStringLiteral { - $current = $this_GlobalRelationInterpretation_2.current; + $current = $this_StringLiteral_4.current; afterParserOrEnumRuleCall(); } ) ; -// Entry rule entryRuleClassInterpretation -entryRuleClassInterpretation returns [EObject current=null]: - { newCompositeNode(grammarAccess.getClassInterpretationRule()); } - iv_ruleClassInterpretation=ruleClassInterpretation - { $current=$iv_ruleClassInterpretation.current; } +// Entry rule entryRuleLogicLiteral +entryRuleLogicLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLogicLiteralRule()); } + iv_ruleLogicLiteral=ruleLogicLiteral + { $current=$iv_ruleLogicLiteral.current; } EOF; -// Rule ClassInterpretation -ruleClassInterpretation returns [EObject current=null] +// Rule LogicLiteral +ruleLogicLiteral returns [EObject current=null] @init { enterRule(); } @@ -2028,106 +2372,70 @@ ruleClassInterpretation returns [EObject current=null] }: ( ( - ( - lv_abstract_0_0='abstract' - { - newLeafNode(lv_abstract_0_0, grammarAccess.getClassInterpretationAccess().getAbstractAbstractKeyword_0_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getClassInterpretationRule()); - } - setWithLastConsumed($current, "abstract", true, "abstract"); - } - ) - )? - otherlv_1='class' - { - newLeafNode(otherlv_1, grammarAccess.getClassInterpretationAccess().getClassKeyword_1()); - } - ( - ( - { - newCompositeNode(grammarAccess.getClassInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0()); - } - lv_symbol_2_0=ruleModelSymbol - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getClassInterpretationRule()); - } - set( - $current, - "symbol", - lv_symbol_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); + { + newCompositeNode(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0()); + } + lv_value_0_0=ruleLogicValue + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getLogicLiteralRule()); } - ) + set( + $current, + "value", + lv_value_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue"); + afterParserOrEnumRuleCall(); + } ) + ) +; + +// Entry rule entryRuleNumericLiteral +entryRuleNumericLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getNumericLiteralRule()); } + iv_ruleNumericLiteral=ruleNumericLiteral + { $current=$iv_ruleNumericLiteral.current; } + EOF; + +// Rule NumericLiteral +ruleNumericLiteral returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( ( - otherlv_3='extends' { - newLeafNode(otherlv_3, grammarAccess.getClassInterpretationAccess().getExtendsKeyword_3_0()); + newCompositeNode(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0()); } - ( - ( - { - newCompositeNode(grammarAccess.getClassInterpretationAccess().getSupertypesModelSymbolParserRuleCall_3_1_0()); - } - lv_supertypes_4_0=ruleModelSymbol - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getClassInterpretationRule()); - } - add( - $current, - "supertypes", - lv_supertypes_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - } - ) - )+ - )? - otherlv_5='{' - { - newLeafNode(otherlv_5, grammarAccess.getClassInterpretationAccess().getLeftCurlyBracketKeyword_4()); - } - ( - ( - { - newCompositeNode(grammarAccess.getClassInterpretationAccess().getFieltFieldRelationInterpretationParserRuleCall_5_0()); - } - lv_fielt_6_0=ruleFieldRelationInterpretation - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getClassInterpretationRule()); - } - add( - $current, - "fielt", - lv_fielt_6_0, - "org.eclipse.viatra.solver.language.SolverLanguage.FieldRelationInterpretation"); - afterParserOrEnumRuleCall(); + lv_value_0_0=ruleReal + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getNumericLiteralRule()); } - ) - )* - otherlv_7='}' - { - newLeafNode(otherlv_7, grammarAccess.getClassInterpretationAccess().getRightCurlyBracketKeyword_6()); - } + set( + $current, + "value", + lv_value_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Real"); + afterParserOrEnumRuleCall(); + } + ) ) ; -// Entry rule entryRuleEnumInterpretation -entryRuleEnumInterpretation returns [EObject current=null]: - { newCompositeNode(grammarAccess.getEnumInterpretationRule()); } - iv_ruleEnumInterpretation=ruleEnumInterpretation - { $current=$iv_ruleEnumInterpretation.current; } +// Entry rule entryRuleInfinityLiteral +entryRuleInfinityLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getInfinityLiteralRule()); } + iv_ruleInfinityLiteral=ruleInfinityLiteral + { $current=$iv_ruleInfinityLiteral.current; } EOF; -// Rule EnumInterpretation -ruleEnumInterpretation returns [EObject current=null] +// Rule InfinityLiteral +ruleInfinityLiteral returns [EObject current=null] @init { enterRule(); } @@ -2135,68 +2443,29 @@ ruleEnumInterpretation returns [EObject current=null] leaveRule(); }: ( - otherlv_0='enum' - { - newLeafNode(otherlv_0, grammarAccess.getEnumInterpretationAccess().getEnumKeyword_0()); - } ( - ( - { - newCompositeNode(grammarAccess.getEnumInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0()); - } - lv_Symbol_1_0=ruleModelSymbol - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getEnumInterpretationRule()); - } - set( - $current, - "Symbol", - lv_Symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - } - ) + { + $current = forceCreateModelElement( + grammarAccess.getInfinityLiteralAccess().getInfinityLiteralAction_0(), + $current); + } ) - otherlv_2='{' - { - newLeafNode(otherlv_2, grammarAccess.getEnumInterpretationAccess().getLeftCurlyBracketKeyword_2()); - } - ( - ( - { - newCompositeNode(grammarAccess.getEnumInterpretationAccess().getObjectsNamedObjectParserRuleCall_3_0()); - } - lv_objects_3_0=ruleNamedObject - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getEnumInterpretationRule()); - } - add( - $current, - "objects", - lv_objects_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.NamedObject"); - afterParserOrEnumRuleCall(); - } - ) - )+ - otherlv_4='}' + otherlv_1='inf' { - newLeafNode(otherlv_4, grammarAccess.getEnumInterpretationAccess().getRightCurlyBracketKeyword_4()); + newLeafNode(otherlv_1, grammarAccess.getInfinityLiteralAccess().getInfKeyword_1()); } ) ; -// Entry rule entryRuleFieldRelationInterpretation -entryRuleFieldRelationInterpretation returns [EObject current=null]: - { newCompositeNode(grammarAccess.getFieldRelationInterpretationRule()); } - iv_ruleFieldRelationInterpretation=ruleFieldRelationInterpretation - { $current=$iv_ruleFieldRelationInterpretation.current; } +// Entry rule entryRuleEmptyIntervalLiteral +entryRuleEmptyIntervalLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getEmptyIntervalLiteralRule()); } + iv_ruleEmptyIntervalLiteral=ruleEmptyIntervalLiteral + { $current=$iv_ruleEmptyIntervalLiteral.current; } EOF; -// Rule FieldRelationInterpretation -ruleFieldRelationInterpretation returns [EObject current=null] +// Rule EmptyIntervalLiteral +ruleEmptyIntervalLiteral returns [EObject current=null] @init { enterRule(); } @@ -2205,92 +2474,189 @@ ruleFieldRelationInterpretation returns [EObject current=null] }: ( ( - ( - lv_containment_0_0='containment' - { - newLeafNode(lv_containment_0_0, grammarAccess.getFieldRelationInterpretationAccess().getContainmentContainmentKeyword_0_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getFieldRelationInterpretationRule()); - } - setWithLastConsumed($current, "containment", true, "containment"); - } - ) - )? + { + $current = forceCreateModelElement( + grammarAccess.getEmptyIntervalLiteralAccess().getEmptyIntervalLiteralAction_0(), + $current); + } + ) + otherlv_1='empty' + { + newLeafNode(otherlv_1, grammarAccess.getEmptyIntervalLiteralAccess().getEmptyKeyword_1()); + } + ) +; + +// Entry rule entryRuleStringLiteral +entryRuleStringLiteral returns [EObject current=null]: + { newCompositeNode(grammarAccess.getStringLiteralRule()); } + iv_ruleStringLiteral=ruleStringLiteral + { $current=$iv_ruleStringLiteral.current; } + EOF; + +// Rule StringLiteral +ruleStringLiteral returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + lv_value_0_0=RULE_STRING + { + newLeafNode(lv_value_0_0, grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getStringLiteralRule()); + } + setWithLastConsumed( + $current, + "value", + lv_value_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); + } + ) + ) +; + +// Entry rule entryRuleClassDefinition +entryRuleClassDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getClassDefinitionRule()); } + iv_ruleClassDefinition=ruleClassDefinition + { $current=$iv_ruleClassDefinition.current; } + EOF; + +// Rule ClassDefinition +ruleClassDefinition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( ( ( + lv_abstract_0_0='abstract' { - newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0()); + newLeafNode(lv_abstract_0_0, grammarAccess.getClassDefinitionAccess().getAbstractAbstractKeyword_0_0()); } - lv_symbol_1_0=ruleModelSymbol { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule()); + $current = createModelElement(grammarAccess.getClassDefinitionRule()); } - set( - $current, - "symbol", - lv_symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); + setWithLastConsumed($current, "abstract", true, "abstract"); } ) - ) - otherlv_2=':' + )? + otherlv_1='class' { - newLeafNode(otherlv_2, grammarAccess.getFieldRelationInterpretationAccess().getColonKeyword_2()); + newLeafNode(otherlv_1, grammarAccess.getClassDefinitionAccess().getClassKeyword_1()); } ( ( + lv_name_2_0=RULE_ID { - newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getMultiplicityMultiplicityDefinitionParserRuleCall_3_0()); + newLeafNode(lv_name_2_0, grammarAccess.getClassDefinitionAccess().getNameIDTerminalRuleCall_2_0()); } - lv_multiplicity_3_0=ruleMultiplicityDefinition { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule()); + $current = createModelElement(grammarAccess.getClassDefinitionRule()); } - set( + setWithLastConsumed( $current, - "multiplicity", - lv_multiplicity_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); - afterParserOrEnumRuleCall(); + "name", + lv_name_2_0, + "org.eclipse.xtext.common.Terminals.ID"); } ) + ) + ( + otherlv_3='extends' + { + newLeafNode(otherlv_3, grammarAccess.getClassDefinitionAccess().getExtendsKeyword_3_0()); + } + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getClassDefinitionRule()); + } + } + { + newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_1_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_5=',' + { + newLeafNode(otherlv_5, grammarAccess.getClassDefinitionAccess().getCommaKeyword_3_2_0()); + } + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getClassDefinitionRule()); + } + } + { + newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_2_1_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + )* )? + otherlv_7='{' + { + newLeafNode(otherlv_7, grammarAccess.getClassDefinitionAccess().getLeftCurlyBracketKeyword_4()); + } ( ( { - newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getTargetSymbolParserRuleCall_4_0()); + newCompositeNode(grammarAccess.getClassDefinitionAccess().getMembersMemberDefinitionParserRuleCall_5_0()); } - lv_target_4_0=ruleSymbol + lv_members_8_0=ruleMemberDefinition { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule()); + $current = createModelElementForParent(grammarAccess.getClassDefinitionRule()); } - set( + add( $current, - "target", - lv_target_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); + "members", + lv_members_8_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition"); afterParserOrEnumRuleCall(); } ) - ) + )* + otherlv_9='}' + { + newLeafNode(otherlv_9, grammarAccess.getClassDefinitionAccess().getRightCurlyBracketKeyword_6()); + } ) ; -// Entry rule entryRuleGlobalRelationInterpretation -entryRuleGlobalRelationInterpretation returns [EObject current=null]: - { newCompositeNode(grammarAccess.getGlobalRelationInterpretationRule()); } - iv_ruleGlobalRelationInterpretation=ruleGlobalRelationInterpretation - { $current=$iv_ruleGlobalRelationInterpretation.current; } +// Entry rule entryRuleMemberDefinition +entryRuleMemberDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getMemberDefinitionRule()); } + iv_ruleMemberDefinition=ruleMemberDefinition + { $current=$iv_ruleMemberDefinition.current; } EOF; -// Rule GlobalRelationInterpretation -ruleGlobalRelationInterpretation returns [EObject current=null] +// Rule MemberDefinition +ruleMemberDefinition returns [EObject current=null] @init { enterRule(); } @@ -2300,133 +2666,236 @@ ruleGlobalRelationInterpretation returns [EObject current=null] ( ( ( - lv_containment_0_0='containment' + lv_containment_0_0='contains' { - newLeafNode(lv_containment_0_0, grammarAccess.getGlobalRelationInterpretationAccess().getContainmentContainmentKeyword_0_0()); + newLeafNode(lv_containment_0_0, grammarAccess.getMemberDefinitionAccess().getContainmentContainsKeyword_0_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getGlobalRelationInterpretationRule()); + $current = createModelElement(grammarAccess.getMemberDefinitionRule()); } - setWithLastConsumed($current, "containment", true, "containment"); + setWithLastConsumed($current, "containment", true, "contains"); } ) )? - otherlv_1='relation' - { - newLeafNode(otherlv_1, grammarAccess.getGlobalRelationInterpretationAccess().getRelationKeyword_1()); - } ( ( - { - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0()); - } - lv_symbol_2_0=ruleModelSymbol { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); + $current = createModelElement(grammarAccess.getMemberDefinitionRule()); } - set( - $current, - "symbol", - lv_symbol_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); + } + { + newCompositeNode(grammarAccess.getMemberDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + } + ruleQualifiedName + { afterParserOrEnumRuleCall(); } ) ) - otherlv_3=':' - { - newLeafNode(otherlv_3, grammarAccess.getGlobalRelationInterpretationAccess().getColonKeyword_3()); - } ( ( { - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0()); + newCompositeNode(grammarAccess.getMemberDefinitionAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); } - lv_sourceMultiplicity_4_0=ruleMultiplicityDefinition + lv_multiplicity_2_0=ruleMultiplicity { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); + $current = createModelElementForParent(grammarAccess.getMemberDefinitionRule()); } set( $current, - "sourceMultiplicity", - lv_sourceMultiplicity_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); + "multiplicity", + lv_multiplicity_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity"); afterParserOrEnumRuleCall(); } ) )? ( ( + lv_name_3_0=RULE_ID { - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceSymbolParserRuleCall_5_0()); + newLeafNode(lv_name_3_0, grammarAccess.getMemberDefinitionAccess().getNameIDTerminalRuleCall_3_0()); } - lv_source_5_0=ruleSymbol { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); + $current = createModelElement(grammarAccess.getMemberDefinitionRule()); } - set( + setWithLastConsumed( $current, - "source", - lv_source_5_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); - afterParserOrEnumRuleCall(); + "name", + lv_name_3_0, + "org.eclipse.xtext.common.Terminals.ID"); } ) ) ( + otherlv_4='opposite' + { + newLeafNode(otherlv_4, grammarAccess.getMemberDefinitionAccess().getOppositeKeyword_4_0()); + } ( - { - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0()); - } - lv_targetMultiplicity_6_0=ruleMultiplicityDefinition - { - if ($current==null) { - $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getMemberDefinitionRule()); + } } - set( - $current, - "targetMultiplicity", - lv_targetMultiplicity_6_0, - "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); - afterParserOrEnumRuleCall(); - } + { + newCompositeNode(grammarAccess.getMemberDefinitionAccess().getOppositeNamedElementCrossReference_4_1_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) ) )? + ( + otherlv_6=';' + { + newLeafNode(otherlv_6, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5()); + } + )? + ) +; + +// Entry rule entryRuleMultiplicity +entryRuleMultiplicity returns [EObject current=null]: + { newCompositeNode(grammarAccess.getMultiplicityRule()); } + iv_ruleMultiplicity=ruleMultiplicity + { $current=$iv_ruleMultiplicity.current; } + EOF; + +// Rule Multiplicity +ruleMultiplicity returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + newCompositeNode(grammarAccess.getMultiplicityAccess().getManyMultiplicityParserRuleCall_0()); + } + this_ManyMultiplicity_0=ruleManyMultiplicity + { + $current = $this_ManyMultiplicity_0.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); + } + this_ExactMultiplicity_1=ruleExactMultiplicity + { + $current = $this_ExactMultiplicity_1.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getMultiplicityAccess().getBoundedMultiplicityParserRuleCall_2()); + } + this_BoundedMultiplicity_2=ruleBoundedMultiplicity + { + $current = $this_BoundedMultiplicity_2.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleManyMultiplicity +entryRuleManyMultiplicity returns [EObject current=null]: + { newCompositeNode(grammarAccess.getManyMultiplicityRule()); } + iv_ruleManyMultiplicity=ruleManyMultiplicity + { $current=$iv_ruleManyMultiplicity.current; } + EOF; + +// Rule ManyMultiplicity +ruleManyMultiplicity returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + { + $current = forceCreateModelElement( + grammarAccess.getManyMultiplicityAccess().getManyMultiplicityAction_0(), + $current); + } + ) + otherlv_1='[' + { + newLeafNode(otherlv_1, grammarAccess.getManyMultiplicityAccess().getLeftSquareBracketKeyword_1()); + } + otherlv_2=']' + { + newLeafNode(otherlv_2, grammarAccess.getManyMultiplicityAccess().getRightSquareBracketKeyword_2()); + } + ) +; + +// Entry rule entryRuleExactMultiplicity +entryRuleExactMultiplicity returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExactMultiplicityRule()); } + iv_ruleExactMultiplicity=ruleExactMultiplicity + { $current=$iv_ruleExactMultiplicity.current; } + EOF; + +// Rule ExactMultiplicity +ruleExactMultiplicity returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='[' + { + newLeafNode(otherlv_0, grammarAccess.getExactMultiplicityAccess().getLeftSquareBracketKeyword_0()); + } ( ( { - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetSymbolParserRuleCall_7_0()); + newCompositeNode(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0()); } - lv_target_7_0=ruleSymbol + lv_multiplicity_1_0=ruleUpperMultiplicty { if ($current==null) { - $current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); + $current = createModelElementForParent(grammarAccess.getExactMultiplicityRule()); } set( $current, - "target", - lv_target_7_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); + "multiplicity", + lv_multiplicity_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); afterParserOrEnumRuleCall(); } ) ) + otherlv_2=']' + { + newLeafNode(otherlv_2, grammarAccess.getExactMultiplicityAccess().getRightSquareBracketKeyword_2()); + } ) ; -// Entry rule entryRuleMultiplicityDefinition -entryRuleMultiplicityDefinition returns [EObject current=null]: - { newCompositeNode(grammarAccess.getMultiplicityDefinitionRule()); } - iv_ruleMultiplicityDefinition=ruleMultiplicityDefinition - { $current=$iv_ruleMultiplicityDefinition.current; } +// Entry rule entryRuleBoundedMultiplicity +entryRuleBoundedMultiplicity returns [EObject current=null]: + { newCompositeNode(grammarAccess.getBoundedMultiplicityRule()); } + iv_ruleBoundedMultiplicity=ruleBoundedMultiplicity + { $current=$iv_ruleBoundedMultiplicity.current; } EOF; -// Rule MultiplicityDefinition -ruleMultiplicityDefinition returns [EObject current=null] +// Rule BoundedMultiplicity +ruleBoundedMultiplicity returns [EObject current=null] @init { enterRule(); } @@ -2434,67 +2903,991 @@ ruleMultiplicityDefinition returns [EObject current=null] leaveRule(); }: ( + otherlv_0='[' + { + newLeafNode(otherlv_0, grammarAccess.getBoundedMultiplicityAccess().getLeftSquareBracketKeyword_0()); + } ( ( - lv_lower_0_0=RULE_INT + lv_lowerBound_1_0=RULE_INT { - newLeafNode(lv_lower_0_0, grammarAccess.getMultiplicityDefinitionAccess().getLowerINTTerminalRuleCall_0_0()); + newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0()); } { if ($current==null) { - $current = createModelElement(grammarAccess.getMultiplicityDefinitionRule()); + $current = createModelElement(grammarAccess.getBoundedMultiplicityRule()); } setWithLastConsumed( $current, - "lower", - lv_lower_0_0, + "lowerBound", + lv_lowerBound_1_0, "org.eclipse.xtext.common.Terminals.INT"); } ) ) - otherlv_1='..' + otherlv_2='..' { - newLeafNode(otherlv_1, grammarAccess.getMultiplicityDefinitionAccess().getFullStopFullStopKeyword_1()); + newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getFullStopFullStopKeyword_2()); } ( ( - ( - lv_upper_2_0=RULE_INT - { - newLeafNode(lv_upper_2_0, grammarAccess.getMultiplicityDefinitionAccess().getUpperINTTerminalRuleCall_2_0_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getMultiplicityDefinitionRule()); - } - setWithLastConsumed( - $current, - "upper", - lv_upper_2_0, - "org.eclipse.xtext.common.Terminals.INT"); - } - ) - ) - | - ( - ( - lv_unlimitedUpper_3_0='*' - { - newLeafNode(lv_unlimitedUpper_3_0, grammarAccess.getMultiplicityDefinitionAccess().getUnlimitedUpperAsteriskKeyword_2_1_0()); - } - { - if ($current==null) { - $current = createModelElement(grammarAccess.getMultiplicityDefinitionRule()); - } - setWithLastConsumed($current, "unlimitedUpper", true, "*"); + { + newCompositeNode(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0()); + } + lv_upperBound_3_0=ruleUpperMultiplicty + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getBoundedMultiplicityRule()); } - ) + set( + $current, + "upperBound", + lv_upperBound_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); + afterParserOrEnumRuleCall(); + } ) ) + otherlv_4=']' + { + newLeafNode(otherlv_4, grammarAccess.getBoundedMultiplicityAccess().getRightSquareBracketKeyword_4()); + } ) ; -RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"'; +// Entry rule entryRuleScopeDefinition +entryRuleScopeDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getScopeDefinitionRule()); } + iv_ruleScopeDefinition=ruleScopeDefinition + { $current=$iv_ruleScopeDefinition.current; } + EOF; + +// Rule ScopeDefinition +ruleScopeDefinition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + { + newCompositeNode(grammarAccess.getScopeDefinitionAccess().getExactScopeDefinitionParserRuleCall_0()); + } + this_ExactScopeDefinition_0=ruleExactScopeDefinition + { + $current = $this_ExactScopeDefinition_0.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getScopeDefinitionAccess().getBoundedScopeDefinitionParserRuleCall_1()); + } + this_BoundedScopeDefinition_1=ruleBoundedScopeDefinition + { + $current = $this_BoundedScopeDefinition_1.current; + afterParserOrEnumRuleCall(); + } + | + { + newCompositeNode(grammarAccess.getScopeDefinitionAccess().getLowerBoundedScopeDefinitionParserRuleCall_2()); + } + this_LowerBoundedScopeDefinition_2=ruleLowerBoundedScopeDefinition + { + $current = $this_LowerBoundedScopeDefinition_2.current; + afterParserOrEnumRuleCall(); + } + ) +; + +// Entry rule entryRuleExactScopeDefinition +entryRuleExactScopeDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getExactScopeDefinitionRule()); } + iv_ruleExactScopeDefinition=ruleExactScopeDefinition + { $current=$iv_ruleExactScopeDefinition.current; } + EOF; + +// Rule ExactScopeDefinition +ruleExactScopeDefinition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='scope' + { + newLeafNode(otherlv_0, grammarAccess.getExactScopeDefinitionAccess().getScopeKeyword_0()); + } + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); + } + } + { + newCompositeNode(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_2='==' + { + newLeafNode(otherlv_2, grammarAccess.getExactScopeDefinitionAccess().getEqualsSignEqualsSignKeyword_2()); + } + ( + ( + lv_exactScope_3_0=RULE_INT + { + newLeafNode(lv_exactScope_3_0, grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); + } + setWithLastConsumed( + $current, + "exactScope", + lv_exactScope_3_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + ) + ) + ) +; + +// Entry rule entryRuleBoundedScopeDefinition +entryRuleBoundedScopeDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getBoundedScopeDefinitionRule()); } + iv_ruleBoundedScopeDefinition=ruleBoundedScopeDefinition + { $current=$iv_ruleBoundedScopeDefinition.current; } + EOF; + +// Rule BoundedScopeDefinition +ruleBoundedScopeDefinition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='scope' + { + newLeafNode(otherlv_0, grammarAccess.getBoundedScopeDefinitionAccess().getScopeKeyword_0()); + } + ( + ( + ( + ( + ( + lv_lowerBound_1_0=RULE_INT + { + newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + $current, + "lowerBound", + lv_lowerBound_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + ) + ) + otherlv_2='<=' + { + newLeafNode(otherlv_2, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_0_1()); + } + )? + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + } + { + newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_1_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_4='<=' + { + newLeafNode(otherlv_4, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_2()); + } + ( + ( + lv_upperBound_5_0=RULE_INT + { + newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + $current, + "upperBound", + lv_upperBound_5_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + ) + ) + ) + | + ( + ( + ( + lv_upperBound_6_0=RULE_INT + { + newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + $current, + "upperBound", + lv_upperBound_6_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + ) + ) + otherlv_7='>=' + { + newLeafNode(otherlv_7, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); + } + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + } + { + newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_2_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + ( + otherlv_9='>=' + { + newLeafNode(otherlv_9, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0()); + } + ( + ( + lv_lowerBound_10_0=RULE_INT + { + newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + $current, + "lowerBound", + lv_lowerBound_10_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + ) + ) + )? + ) + ) + otherlv_11='.' + { + newLeafNode(otherlv_11, grammarAccess.getBoundedScopeDefinitionAccess().getFullStopKeyword_2()); + } + ) +; + +// Entry rule entryRuleLowerBoundedScopeDefinition +entryRuleLowerBoundedScopeDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionRule()); } + iv_ruleLowerBoundedScopeDefinition=ruleLowerBoundedScopeDefinition + { $current=$iv_ruleLowerBoundedScopeDefinition.current; } + EOF; + +// Rule LowerBoundedScopeDefinition +ruleLowerBoundedScopeDefinition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + otherlv_0='scope' + { + newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getScopeKeyword_0()); + } + ( + ( + ( + ( + lv_lowerBound_1_0=RULE_INT + { + newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + $current, + "lowerBound", + lv_lowerBound_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + ) + ) + otherlv_2='<=' + { + newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_1()); + } + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + } + } + { + newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_2_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + ) + | + ( + ( + ( + { + if ($current==null) { + $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + } + } + { + newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_0_0()); + } + ruleQualifiedName + { + afterParserOrEnumRuleCall(); + } + ) + ) + otherlv_5='>=' + { + newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); + } + ( + ( + lv_lowerBound_6_0=RULE_INT + { + newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0()); + } + { + if ($current==null) { + $current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + $current, + "lowerBound", + lv_lowerBound_6_0, + "org.eclipse.xtext.common.Terminals.INT"); + } + ) + ) + ) + ) + otherlv_7='.' + { + newLeafNode(otherlv_7, grammarAccess.getLowerBoundedScopeDefinitionAccess().getFullStopKeyword_2()); + } + ) +; + +// Entry rule entryRuleObjectiveDefinition +entryRuleObjectiveDefinition returns [EObject current=null]: + { newCompositeNode(grammarAccess.getObjectiveDefinitionRule()); } + iv_ruleObjectiveDefinition=ruleObjectiveDefinition + { $current=$iv_ruleObjectiveDefinition.current; } + EOF; + +// Rule ObjectiveDefinition +ruleObjectiveDefinition returns [EObject current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + ( + { + newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0()); + } + lv_kind_0_0=ruleObjectiveKind + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); + } + set( + $current, + "kind", + lv_kind_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind"); + afterParserOrEnumRuleCall(); + } + ) + ) + ( + ( + { + newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0()); + } + lv_objective_1_0=ruleExpression + { + if ($current==null) { + $current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); + } + set( + $current, + "objective", + lv_objective_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } + ) + ) + ) +; + +// Entry rule entryRuleUpperMultiplicty +entryRuleUpperMultiplicty returns [String current=null]: + { newCompositeNode(grammarAccess.getUpperMultiplictyRule()); } + iv_ruleUpperMultiplicty=ruleUpperMultiplicty + { $current=$iv_ruleUpperMultiplicty.current.getText(); } + EOF; + +// Rule UpperMultiplicty +ruleUpperMultiplicty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + this_INT_0=RULE_INT + { + $current.merge(this_INT_0); + } + { + newLeafNode(this_INT_0, grammarAccess.getUpperMultiplictyAccess().getINTTerminalRuleCall_0()); + } + | + kw='*' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getUpperMultiplictyAccess().getAsteriskKeyword_1()); + } + ) +; + +// Entry rule entryRuleReal +entryRuleReal returns [String current=null]@init { + HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); +}: + { newCompositeNode(grammarAccess.getRealRule()); } + iv_ruleReal=ruleReal + { $current=$iv_ruleReal.current.getText(); } + EOF; +finally { + myHiddenTokenState.restore(); +} + +// Rule Real +ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); + HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); +} +@after { + leaveRule(); +}: + ( + this_INT_0=RULE_INT + { + $current.merge(this_INT_0); + } + { + newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0()); + } + ( + kw='.' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_0()); + } + this_INT_2=RULE_INT + { + $current.merge(this_INT_2); + } + { + newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1()); + } + )? + ) +; +finally { + myHiddenTokenState.restore(); +} + +// Entry rule entryRuleQualifiedName +entryRuleQualifiedName returns [String current=null]@init { + HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); +}: + { newCompositeNode(grammarAccess.getQualifiedNameRule()); } + iv_ruleQualifiedName=ruleQualifiedName + { $current=$iv_ruleQualifiedName.current.getText(); } + EOF; +finally { + myHiddenTokenState.restore(); +} + +// Rule QualifiedName +ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] +@init { + enterRule(); + HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); +} +@after { + leaveRule(); +}: + ( + ( + this_ID_0=RULE_ID + { + $current.merge(this_ID_0); + } + { + newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_0()); + } + ( + kw='.' + { + $current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_0_1_0()); + } + this_ID_2=RULE_ID + { + $current.merge(this_ID_2); + } + { + newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_1_1()); + } + )* + ) + | + this_QUOTED_ID_3=RULE_QUOTED_ID + { + $current.merge(this_QUOTED_ID_3); + } + { + newLeafNode(this_QUOTED_ID_3, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1()); + } + ) +; +finally { + myHiddenTokenState.restore(); +} + +// Rule MetricType +ruleMetricType returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='int' + { + $current = grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='real' + { + $current = grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1()); + } + ) + ) +; + +// Rule ComparisonOperator +ruleComparisonOperator returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='==' + { + $current = grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='!=' + { + $current = grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1()); + } + ) + | + ( + enumLiteral_2='<' + { + $current = grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2()); + } + ) + | + ( + enumLiteral_3='<=' + { + $current = grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3()); + } + ) + | + ( + enumLiteral_4='>' + { + $current = grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4()); + } + ) + | + ( + enumLiteral_5='>=' + { + $current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5()); + } + ) + | + ( + enumLiteral_6='in' + { + $current = grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_6, grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6()); + } + ) + ) +; + +// Rule AdditiveBinaryOperator +ruleAdditiveBinaryOperator returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='+' + { + $current = grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='-' + { + $current = grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1()); + } + ) + ) +; + +// Rule MultiplicativeBinaryOperator +ruleMultiplicativeBinaryOperator returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='*' + { + $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='/' + { + $current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1()); + } + ) + ) +; + +// Rule ExponentialOp +ruleExponentialOp returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + enumLiteral_0='^' + { + $current = grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration()); + } + ) +; + +// Rule UnaryOp +ruleUnaryOp returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='!' + { + $current = grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='+' + { + $current = grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1()); + } + ) + | + ( + enumLiteral_2='-' + { + $current = grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2()); + } + ) + | + ( + enumLiteral_3='may' + { + $current = grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3()); + } + ) + | + ( + enumLiteral_4='must' + { + $current = grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4()); + } + ) + | + ( + enumLiteral_5='current' + { + $current = grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5()); + } + ) + ) +; + +// Rule AggregationOp +ruleAggregationOp returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='only' + { + $current = grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='sum' + { + $current = grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1()); + } + ) + | + ( + enumLiteral_2='prod' + { + $current = grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2()); + } + ) + | + ( + enumLiteral_3='avg' + { + $current = grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3()); + } + ) + | + ( + enumLiteral_4='min' + { + $current = grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4()); + } + ) + | + ( + enumLiteral_5='max' + { + $current = grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5()); + } + ) + ) +; + +// Rule LogicValue +ruleLogicValue returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='true' + { + $current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='false' + { + $current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1()); + } + ) + | + ( + enumLiteral_2='unknown' + { + $current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2()); + } + ) + | + ( + enumLiteral_3='error' + { + $current = grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3()); + } + ) + ) +; + +// Rule ObjectiveKind +ruleObjectiveKind returns [Enumerator current=null] +@init { + enterRule(); +} +@after { + leaveRule(); +}: + ( + ( + enumLiteral_0='minimize' + { + $current = grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0()); + } + ) + | + ( + enumLiteral_1='maximize' + { + $current = grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1()); + } + ) + ) +; + +RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"'; + +RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\''; + +RULE_PLUS : 'synthetic::plus'; + +RULE_STAR : 'synthetic::star'; + +RULE_DOT : 'synthetic::dot'; RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'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 @@ -'('=17 -')'=19 -'*'=31 -'+'=30 -','=18 -'-'=11 -'.'=12 -'..'=41 -':'=20 -':-'=28 -'\''=27 -'abstract'=33 -'bool'=23 -'class'=34 -'containment'=39 -'default'=32 -'enum'=38 -'equals'=22 -'error'=16 -'exists'=21 -'extends'=35 -'false'=14 -'int'=24 -'real'=25 -'relation'=40 -'string'=26 -'true'=13 -'unknown'=15 -'{'=36 -'|'=29 -'}'=37 -RULE_ANY_OTHER=10 -RULE_ID=5 -RULE_INT=4 -RULE_ML_COMMENT=7 -RULE_SL_COMMENT=8 -RULE_STRING=6 -RULE_WS=9 -T__11=11 -T__12=12 -T__13=13 -T__14=14 +'!'=60 +'!='=52 +'('=33 +')'=34 +'*'=35 +'+'=56 +','=28 +'-'=57 +'->'=27 +'.'=22 +'..'=37 +'/'=58 +':'=15 +':-'=16 +';'=26 +'<'=53 +'<='=48 +'='=17 +'=='=47 +'>'=54 +'>='=49 +'['=36 +']'=38 +'^'=59 +'abstract'=41 +'avg'=67 +'class'=42 +'contains'=44 +'count'=29 +'current'=63 +'default'=20 +'else'=25 +'empty'=40 +'error'=19 +'extends'=43 +'extern'=21 +'false'=71 +'functional'=18 +'if'=23 +'in'=55 +'inf'=39 +'int'=50 +'max'=69 +'maximize'=74 +'may'=61 +'min'=68 +'minimize'=73 +'must'=62 +'only'=64 +'opposite'=45 +'prod'=66 +'real'=51 +'scope'=46 +'sum'=65 +'then'=24 +'true'=70 +'unknown'=72 +'{'=30 +'|'=32 +'}'=31 +RULE_ANY_OTHER=14 +RULE_DOT=4 +RULE_ID=8 +RULE_INT=9 +RULE_ML_COMMENT=11 +RULE_PLUS=6 +RULE_QUOTED_ID=10 +RULE_SL_COMMENT=12 +RULE_STAR=5 +RULE_STRING=7 +RULE_WS=13 T__15=15 T__16=16 T__17=17 @@ -67,3 +96,36 @@ T__38=38 T__39=39 T__40=40 T__41=41 +T__42=42 +T__43=43 +T__44=44 +T__45=45 +T__46=46 +T__47=47 +T__48=48 +T__49=49 +T__50=50 +T__51=51 +T__52=52 +T__53=53 +T__54=54 +T__55=55 +T__56=56 +T__57=57 +T__58=58 +T__59=59 +T__60=60 +T__61=61 +T__62=62 +T__63=63 +T__64=64 +T__65=65 +T__66=66 +T__67=67 +T__68=68 +T__69=69 +T__70=70 +T__71=71 +T__72=72 +T__73=73 +T__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; @SuppressWarnings("all") public class InternalSolverLanguageLexer extends Lexer { - public static final int RULE_STRING=6; - public static final int RULE_SL_COMMENT=8; + public static final int T__50=50; public static final int T__19=19; public static final int T__15=15; - public static final int T__37=37; + public static final int T__59=59; public static final int T__16=16; - public static final int T__38=38; public static final int T__17=17; - public static final int T__39=39; public static final int T__18=18; - public static final int T__11=11; - public static final int T__33=33; - public static final int T__12=12; - public static final int T__34=34; - public static final int T__13=13; - public static final int T__35=35; - public static final int T__14=14; - public static final int T__36=36; - public static final int EOF=-1; - public static final int T__30=30; - public static final int T__31=31; - public static final int T__32=32; - public static final int RULE_ID=5; - public static final int RULE_WS=9; - public static final int RULE_ANY_OTHER=10; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__51=51; + public static final int RULE_STAR=5; + public static final int T__52=52; + public static final int T__53=53; + public static final int T__54=54; + public static final int T__60=60; + public static final int T__61=61; + public static final int RULE_ID=8; + public static final int RULE_QUOTED_ID=10; public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; - public static final int RULE_INT=4; + public static final int RULE_INT=9; public static final int T__29=29; public static final int T__22=22; - public static final int RULE_ML_COMMENT=7; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=11; public static final int T__23=23; + public static final int T__67=67; public static final int T__24=24; + public static final int T__68=68; public static final int T__25=25; - public static final int T__40=40; - public static final int T__41=41; + public static final int T__69=69; + public static final int T__62=62; + public static final int T__63=63; public static final int T__20=20; + public static final int T__64=64; public static final int T__21=21; + public static final int T__65=65; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int RULE_STRING=7; + public static final int RULE_SL_COMMENT=12; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int RULE_PLUS=6; + public static final int T__36=36; + public static final int T__73=73; + public static final int RULE_DOT=4; + public static final int EOF=-1; + public static final int T__30=30; + public static final int T__74=74; + public static final int T__31=31; + public static final int T__32=32; + public static final int RULE_WS=13; + public static final int RULE_ANY_OTHER=14; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__44=44; + public static final int T__45=45; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; // delegates // delegators @@ -65,98 +98,15 @@ public class InternalSolverLanguageLexer extends Lexer { } public String getGrammarFileName() { return "InternalSolverLanguage.g"; } - // $ANTLR start "T__11" - public final void mT__11() throws RecognitionException { - try { - int _type = T__11; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:11:7: ( '-' ) - // InternalSolverLanguage.g:11:9: '-' - { - match('-'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__11" - - // $ANTLR start "T__12" - public final void mT__12() throws RecognitionException { - try { - int _type = T__12; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:12:7: ( '.' ) - // InternalSolverLanguage.g:12:9: '.' - { - match('.'); - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__12" - - // $ANTLR start "T__13" - public final void mT__13() throws RecognitionException { - try { - int _type = T__13; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:13:7: ( 'true' ) - // InternalSolverLanguage.g:13:9: 'true' - { - match("true"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__13" - - // $ANTLR start "T__14" - public final void mT__14() throws RecognitionException { - try { - int _type = T__14; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:14:7: ( 'false' ) - // InternalSolverLanguage.g:14:9: 'false' - { - match("false"); - - - } - - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "T__14" - // $ANTLR start "T__15" public final void mT__15() throws RecognitionException { try { int _type = T__15; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:15:7: ( 'unknown' ) - // InternalSolverLanguage.g:15:9: 'unknown' + // InternalSolverLanguage.g:11:7: ( ':' ) + // InternalSolverLanguage.g:11:9: ':' { - match("unknown"); - + match(':'); } @@ -173,10 +123,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__16; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:16:7: ( 'error' ) - // InternalSolverLanguage.g:16:9: 'error' + // InternalSolverLanguage.g:12:7: ( ':-' ) + // InternalSolverLanguage.g:12:9: ':-' { - match("error"); + match(":-"); } @@ -194,10 +144,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__17; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:17:7: ( '(' ) - // InternalSolverLanguage.g:17:9: '(' + // InternalSolverLanguage.g:13:7: ( '=' ) + // InternalSolverLanguage.g:13:9: '=' { - match('('); + match('='); } @@ -214,10 +164,11 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__18; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:18:7: ( ',' ) - // InternalSolverLanguage.g:18:9: ',' + // InternalSolverLanguage.g:14:7: ( 'functional' ) + // InternalSolverLanguage.g:14:9: 'functional' { - match(','); + match("functional"); + } @@ -234,10 +185,11 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__19; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:19:7: ( ')' ) - // InternalSolverLanguage.g:19:9: ')' + // InternalSolverLanguage.g:15:7: ( 'error' ) + // InternalSolverLanguage.g:15:9: 'error' { - match(')'); + match("error"); + } @@ -254,10 +206,11 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__20; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:20:7: ( ':' ) - // InternalSolverLanguage.g:20:9: ':' + // InternalSolverLanguage.g:16:7: ( 'default' ) + // InternalSolverLanguage.g:16:9: 'default' { - match(':'); + match("default"); + } @@ -274,10 +227,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__21; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:21:7: ( 'exists' ) - // InternalSolverLanguage.g:21:9: 'exists' + // InternalSolverLanguage.g:17:7: ( 'extern' ) + // InternalSolverLanguage.g:17:9: 'extern' { - match("exists"); + match("extern"); } @@ -295,11 +248,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__22; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:22:7: ( 'equals' ) - // InternalSolverLanguage.g:22:9: 'equals' + // InternalSolverLanguage.g:18:7: ( '.' ) + // InternalSolverLanguage.g:18:9: '.' { - match("equals"); - + match('.'); } @@ -316,10 +268,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__23; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:23:7: ( 'bool' ) - // InternalSolverLanguage.g:23:9: 'bool' + // InternalSolverLanguage.g:19:7: ( 'if' ) + // InternalSolverLanguage.g:19:9: 'if' { - match("bool"); + match("if"); } @@ -337,10 +289,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__24; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:24:7: ( 'int' ) - // InternalSolverLanguage.g:24:9: 'int' + // InternalSolverLanguage.g:20:7: ( 'then' ) + // InternalSolverLanguage.g:20:9: 'then' { - match("int"); + match("then"); } @@ -358,10 +310,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__25; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:25:7: ( 'real' ) - // InternalSolverLanguage.g:25:9: 'real' + // InternalSolverLanguage.g:21:7: ( 'else' ) + // InternalSolverLanguage.g:21:9: 'else' { - match("real"); + match("else"); } @@ -379,11 +331,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__26; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:26:7: ( 'string' ) - // InternalSolverLanguage.g:26:9: 'string' + // InternalSolverLanguage.g:22:7: ( ';' ) + // InternalSolverLanguage.g:22:9: ';' { - match("string"); - + match(';'); } @@ -400,10 +351,11 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__27; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:27:7: ( '\\'' ) - // InternalSolverLanguage.g:27:9: '\\'' + // InternalSolverLanguage.g:23:7: ( '->' ) + // InternalSolverLanguage.g:23:9: '->' { - match('\''); + match("->"); + } @@ -420,11 +372,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__28; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:28:7: ( ':-' ) - // InternalSolverLanguage.g:28:9: ':-' + // InternalSolverLanguage.g:24:7: ( ',' ) + // InternalSolverLanguage.g:24:9: ',' { - match(":-"); - + match(','); } @@ -441,10 +392,11 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__29; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:29:7: ( '|' ) - // InternalSolverLanguage.g:29:9: '|' + // InternalSolverLanguage.g:25:7: ( 'count' ) + // InternalSolverLanguage.g:25:9: 'count' { - match('|'); + match("count"); + } @@ -461,10 +413,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__30; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:30:7: ( '+' ) - // InternalSolverLanguage.g:30:9: '+' + // InternalSolverLanguage.g:26:7: ( '{' ) + // InternalSolverLanguage.g:26:9: '{' { - match('+'); + match('{'); } @@ -481,10 +433,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__31; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:31:7: ( '*' ) - // InternalSolverLanguage.g:31:9: '*' + // InternalSolverLanguage.g:27:7: ( '}' ) + // InternalSolverLanguage.g:27:9: '}' { - match('*'); + match('}'); } @@ -501,11 +453,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__32; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:32:7: ( 'default' ) - // InternalSolverLanguage.g:32:9: 'default' + // InternalSolverLanguage.g:28:7: ( '|' ) + // InternalSolverLanguage.g:28:9: '|' { - match("default"); - + match('|'); } @@ -522,11 +473,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__33; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:33:7: ( 'abstract' ) - // InternalSolverLanguage.g:33:9: 'abstract' + // InternalSolverLanguage.g:29:7: ( '(' ) + // InternalSolverLanguage.g:29:9: '(' { - match("abstract"); - + match('('); } @@ -543,11 +493,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__34; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:34:7: ( 'class' ) - // InternalSolverLanguage.g:34:9: 'class' + // InternalSolverLanguage.g:30:7: ( ')' ) + // InternalSolverLanguage.g:30:9: ')' { - match("class"); - + match(')'); } @@ -564,11 +513,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__35; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:35:7: ( 'extends' ) - // InternalSolverLanguage.g:35:9: 'extends' + // InternalSolverLanguage.g:31:7: ( '*' ) + // InternalSolverLanguage.g:31:9: '*' { - match("extends"); - + match('*'); } @@ -585,10 +533,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__36; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:36:7: ( '{' ) - // InternalSolverLanguage.g:36:9: '{' + // InternalSolverLanguage.g:32:7: ( '[' ) + // InternalSolverLanguage.g:32:9: '[' { - match('{'); + match('['); } @@ -605,10 +553,11 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__37; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:37:7: ( '}' ) - // InternalSolverLanguage.g:37:9: '}' + // InternalSolverLanguage.g:33:7: ( '..' ) + // InternalSolverLanguage.g:33:9: '..' { - match('}'); + match(".."); + } @@ -625,11 +574,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__38; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:38:7: ( 'enum' ) - // InternalSolverLanguage.g:38:9: 'enum' + // InternalSolverLanguage.g:34:7: ( ']' ) + // InternalSolverLanguage.g:34:9: ']' { - match("enum"); - + match(']'); } @@ -646,10 +594,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__39; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:39:7: ( 'containment' ) - // InternalSolverLanguage.g:39:9: 'containment' + // InternalSolverLanguage.g:35:7: ( 'inf' ) + // InternalSolverLanguage.g:35:9: 'inf' { - match("containment"); + match("inf"); } @@ -667,10 +615,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__40; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:40:7: ( 'relation' ) - // InternalSolverLanguage.g:40:9: 'relation' + // InternalSolverLanguage.g:36:7: ( 'empty' ) + // InternalSolverLanguage.g:36:9: 'empty' { - match("relation"); + match("empty"); } @@ -688,10 +636,10 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = T__41; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:41:7: ( '..' ) - // InternalSolverLanguage.g:41:9: '..' + // InternalSolverLanguage.g:37:7: ( 'abstract' ) + // InternalSolverLanguage.g:37:9: 'abstract' { - match(".."); + match("abstract"); } @@ -704,60 +652,16 @@ public class InternalSolverLanguageLexer extends Lexer { } // $ANTLR end "T__41" - // $ANTLR start "RULE_STRING" - public final void mRULE_STRING() throws RecognitionException { + // $ANTLR start "T__42" + public final void mT__42() throws RecognitionException { try { - int _type = RULE_STRING; + int _type = T__42; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:2497:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) - // InternalSolverLanguage.g:2497:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + // InternalSolverLanguage.g:38:7: ( 'class' ) + // InternalSolverLanguage.g:38:9: 'class' { - match('\"'); - // InternalSolverLanguage.g:2497:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* - loop1: - do { - int alt1=3; - int LA1_0 = input.LA(1); - - if ( (LA1_0=='\\') ) { - alt1=1; - } - else if ( ((LA1_0>='\u0000' && LA1_0<='!')||(LA1_0>='#' && LA1_0<='[')||(LA1_0>=']' && LA1_0<='\uFFFF')) ) { - alt1=2; - } - - - switch (alt1) { - case 1 : - // InternalSolverLanguage.g:2497:20: '\\\\' . - { - match('\\'); - matchAny(); - - } - break; - case 2 : - // InternalSolverLanguage.g:2497:27: ~ ( ( '\\\\' | '\"' ) ) - { - if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { - input.consume(); - - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} - - - } - break; - - default : - break loop1; - } - } while (true); + match("class"); - match('\"'); } @@ -767,75 +671,80 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "RULE_STRING" + // $ANTLR end "T__42" - // $ANTLR start "RULE_ID" - public final void mRULE_ID() throws RecognitionException { + // $ANTLR start "T__43" + public final void mT__43() throws RecognitionException { try { - int _type = RULE_ID; + int _type = T__43; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:2499:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // InternalSolverLanguage.g:2499:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // InternalSolverLanguage.g:39:7: ( 'extends' ) + // InternalSolverLanguage.g:39:9: 'extends' { - // InternalSolverLanguage.g:2499:11: ( '^' )? - int alt2=2; - int LA2_0 = input.LA(1); - - if ( (LA2_0=='^') ) { - alt2=1; - } - switch (alt2) { - case 1 : - // InternalSolverLanguage.g:2499:11: '^' - { - match('^'); + match("extends"); - } - break; } - if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { - input.consume(); + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__43" - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} + // $ANTLR start "T__44" + public final void mT__44() throws RecognitionException { + try { + int _type = T__44; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:40:7: ( 'contains' ) + // InternalSolverLanguage.g:40:9: 'contains' + { + match("contains"); - // InternalSolverLanguage.g:2499:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* - loop3: - do { - int alt3=2; - int LA3_0 = input.LA(1); - if ( ((LA3_0>='0' && LA3_0<='9')||(LA3_0>='A' && LA3_0<='Z')||LA3_0=='_'||(LA3_0>='a' && LA3_0<='z')) ) { - alt3=1; - } + } + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__44" - switch (alt3) { - case 1 : - // InternalSolverLanguage.g: - { - if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { - input.consume(); + // $ANTLR start "T__45" + public final void mT__45() throws RecognitionException { + try { + int _type = T__45; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:41:7: ( 'opposite' ) + // InternalSolverLanguage.g:41:9: 'opposite' + { + match("opposite"); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} + } - } - break; + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__45" - default : - break loop3; - } - } while (true); + // $ANTLR start "T__46" + public final void mT__46() throws RecognitionException { + try { + int _type = T__46; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:42:7: ( 'scope' ) + // InternalSolverLanguage.g:42:9: 'scope' + { + match("scope"); } @@ -846,31 +755,884 @@ public class InternalSolverLanguageLexer extends Lexer { finally { } } - // $ANTLR end "RULE_ID" + // $ANTLR end "T__46" - // $ANTLR start "RULE_INT" - public final void mRULE_INT() throws RecognitionException { + // $ANTLR start "T__47" + public final void mT__47() throws RecognitionException { try { - int _type = RULE_INT; + int _type = T__47; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:2501:10: ( ( '0' .. '9' )+ ) - // InternalSolverLanguage.g:2501:12: ( '0' .. '9' )+ + // InternalSolverLanguage.g:43:7: ( '==' ) + // InternalSolverLanguage.g:43:9: '==' { - // InternalSolverLanguage.g:2501:12: ( '0' .. '9' )+ - int cnt4=0; - loop4: - do { - int alt4=2; - int LA4_0 = input.LA(1); + match("=="); - if ( ((LA4_0>='0' && LA4_0<='9')) ) { + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__47" + + // $ANTLR start "T__48" + public final void mT__48() throws RecognitionException { + try { + int _type = T__48; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:44:7: ( '<=' ) + // InternalSolverLanguage.g:44:9: '<=' + { + match("<="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__48" + + // $ANTLR start "T__49" + public final void mT__49() throws RecognitionException { + try { + int _type = T__49; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:45:7: ( '>=' ) + // InternalSolverLanguage.g:45:9: '>=' + { + match(">="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__49" + + // $ANTLR start "T__50" + public final void mT__50() throws RecognitionException { + try { + int _type = T__50; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:46:7: ( 'int' ) + // InternalSolverLanguage.g:46:9: 'int' + { + match("int"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__50" + + // $ANTLR start "T__51" + public final void mT__51() throws RecognitionException { + try { + int _type = T__51; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:47:7: ( 'real' ) + // InternalSolverLanguage.g:47:9: 'real' + { + match("real"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__51" + + // $ANTLR start "T__52" + public final void mT__52() throws RecognitionException { + try { + int _type = T__52; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:48:7: ( '!=' ) + // InternalSolverLanguage.g:48:9: '!=' + { + match("!="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__52" + + // $ANTLR start "T__53" + public final void mT__53() throws RecognitionException { + try { + int _type = T__53; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:49:7: ( '<' ) + // InternalSolverLanguage.g:49:9: '<' + { + match('<'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__53" + + // $ANTLR start "T__54" + public final void mT__54() throws RecognitionException { + try { + int _type = T__54; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:50:7: ( '>' ) + // InternalSolverLanguage.g:50:9: '>' + { + match('>'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__54" + + // $ANTLR start "T__55" + public final void mT__55() throws RecognitionException { + try { + int _type = T__55; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:51:7: ( 'in' ) + // InternalSolverLanguage.g:51:9: 'in' + { + match("in"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__55" + + // $ANTLR start "T__56" + public final void mT__56() throws RecognitionException { + try { + int _type = T__56; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:52:7: ( '+' ) + // InternalSolverLanguage.g:52:9: '+' + { + match('+'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__56" + + // $ANTLR start "T__57" + public final void mT__57() throws RecognitionException { + try { + int _type = T__57; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:53:7: ( '-' ) + // InternalSolverLanguage.g:53:9: '-' + { + match('-'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__57" + + // $ANTLR start "T__58" + public final void mT__58() throws RecognitionException { + try { + int _type = T__58; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:54:7: ( '/' ) + // InternalSolverLanguage.g:54:9: '/' + { + match('/'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__58" + + // $ANTLR start "T__59" + public final void mT__59() throws RecognitionException { + try { + int _type = T__59; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:55:7: ( '^' ) + // InternalSolverLanguage.g:55:9: '^' + { + match('^'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__59" + + // $ANTLR start "T__60" + public final void mT__60() throws RecognitionException { + try { + int _type = T__60; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:56:7: ( '!' ) + // InternalSolverLanguage.g:56:9: '!' + { + match('!'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__60" + + // $ANTLR start "T__61" + public final void mT__61() throws RecognitionException { + try { + int _type = T__61; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:57:7: ( 'may' ) + // InternalSolverLanguage.g:57:9: 'may' + { + match("may"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__61" + + // $ANTLR start "T__62" + public final void mT__62() throws RecognitionException { + try { + int _type = T__62; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:58:7: ( 'must' ) + // InternalSolverLanguage.g:58:9: 'must' + { + match("must"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__62" + + // $ANTLR start "T__63" + public final void mT__63() throws RecognitionException { + try { + int _type = T__63; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:59:7: ( 'current' ) + // InternalSolverLanguage.g:59:9: 'current' + { + match("current"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__63" + + // $ANTLR start "T__64" + public final void mT__64() throws RecognitionException { + try { + int _type = T__64; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:60:7: ( 'only' ) + // InternalSolverLanguage.g:60:9: 'only' + { + match("only"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__64" + + // $ANTLR start "T__65" + public final void mT__65() throws RecognitionException { + try { + int _type = T__65; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:61:7: ( 'sum' ) + // InternalSolverLanguage.g:61:9: 'sum' + { + match("sum"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__65" + + // $ANTLR start "T__66" + public final void mT__66() throws RecognitionException { + try { + int _type = T__66; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:62:7: ( 'prod' ) + // InternalSolverLanguage.g:62:9: 'prod' + { + match("prod"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__66" + + // $ANTLR start "T__67" + public final void mT__67() throws RecognitionException { + try { + int _type = T__67; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:63:7: ( 'avg' ) + // InternalSolverLanguage.g:63:9: 'avg' + { + match("avg"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__67" + + // $ANTLR start "T__68" + public final void mT__68() throws RecognitionException { + try { + int _type = T__68; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:64:7: ( 'min' ) + // InternalSolverLanguage.g:64:9: 'min' + { + match("min"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__68" + + // $ANTLR start "T__69" + public final void mT__69() throws RecognitionException { + try { + int _type = T__69; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:65:7: ( 'max' ) + // InternalSolverLanguage.g:65:9: 'max' + { + match("max"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__69" + + // $ANTLR start "T__70" + public final void mT__70() throws RecognitionException { + try { + int _type = T__70; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:66:7: ( 'true' ) + // InternalSolverLanguage.g:66:9: 'true' + { + match("true"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__70" + + // $ANTLR start "T__71" + public final void mT__71() throws RecognitionException { + try { + int _type = T__71; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:67:7: ( 'false' ) + // InternalSolverLanguage.g:67:9: 'false' + { + match("false"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__71" + + // $ANTLR start "T__72" + public final void mT__72() throws RecognitionException { + try { + int _type = T__72; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:68:7: ( 'unknown' ) + // InternalSolverLanguage.g:68:9: 'unknown' + { + match("unknown"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__72" + + // $ANTLR start "T__73" + public final void mT__73() throws RecognitionException { + try { + int _type = T__73; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:69:7: ( 'minimize' ) + // InternalSolverLanguage.g:69:9: 'minimize' + { + match("minimize"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__73" + + // $ANTLR start "T__74" + public final void mT__74() throws RecognitionException { + try { + int _type = T__74; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:70:7: ( 'maximize' ) + // InternalSolverLanguage.g:70:9: 'maximize' + { + match("maximize"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "T__74" + + // $ANTLR start "RULE_STRING" + public final void mRULE_STRING() throws RecognitionException { + try { + int _type = RULE_STRING; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:3882:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) + // InternalSolverLanguage.g:3882:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' + { + match('\"'); + // InternalSolverLanguage.g:3882:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* + loop1: + do { + int alt1=3; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='\\') ) { + alt1=1; + } + else if ( ((LA1_0>='\u0000' && LA1_0<='!')||(LA1_0>='#' && LA1_0<='[')||(LA1_0>=']' && LA1_0<='\uFFFF')) ) { + alt1=2; + } + + + switch (alt1) { + case 1 : + // InternalSolverLanguage.g:3882:20: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalSolverLanguage.g:3882:27: ~ ( ( '\\\\' | '\"' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop1; + } + } while (true); + + match('\"'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STRING" + + // $ANTLR start "RULE_QUOTED_ID" + public final void mRULE_QUOTED_ID() throws RecognitionException { + try { + int _type = RULE_QUOTED_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:3884:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) + // InternalSolverLanguage.g:3884:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' + { + match('\''); + // InternalSolverLanguage.g:3884:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* + loop2: + do { + int alt2=3; + int LA2_0 = input.LA(1); + + if ( (LA2_0=='\\') ) { + alt2=1; + } + else if ( ((LA2_0>='\u0000' && LA2_0<='&')||(LA2_0>='(' && LA2_0<='[')||(LA2_0>=']' && LA2_0<='\uFFFF')) ) { + alt2=2; + } + + + switch (alt2) { + case 1 : + // InternalSolverLanguage.g:3884:24: '\\\\' . + { + match('\\'); + matchAny(); + + } + break; + case 2 : + // InternalSolverLanguage.g:3884:31: ~ ( ( '\\\\' | '\\'' ) ) + { + if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop2; + } + } while (true); + + match('\''); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_QUOTED_ID" + + // $ANTLR start "RULE_PLUS" + public final void mRULE_PLUS() throws RecognitionException { + try { + int _type = RULE_PLUS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:3886:11: ( 'synthetic::plus' ) + // InternalSolverLanguage.g:3886:13: 'synthetic::plus' + { + match("synthetic::plus"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_PLUS" + + // $ANTLR start "RULE_STAR" + public final void mRULE_STAR() throws RecognitionException { + try { + int _type = RULE_STAR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:3888:11: ( 'synthetic::star' ) + // InternalSolverLanguage.g:3888:13: 'synthetic::star' + { + match("synthetic::star"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_STAR" + + // $ANTLR start "RULE_DOT" + public final void mRULE_DOT() throws RecognitionException { + try { + int _type = RULE_DOT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:3890:10: ( 'synthetic::dot' ) + // InternalSolverLanguage.g:3890:12: 'synthetic::dot' + { + match("synthetic::dot"); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_DOT" + + // $ANTLR start "RULE_ID" + public final void mRULE_ID() throws RecognitionException { + try { + int _type = RULE_ID; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:3892:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // InternalSolverLanguage.g:3892:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + { + // InternalSolverLanguage.g:3892:11: ( '^' )? + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0=='^') ) { + alt3=1; + } + switch (alt3) { + case 1 : + // InternalSolverLanguage.g:3892:11: '^' + { + match('^'); + + } + break; + + } + + if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // InternalSolverLanguage.g:3892:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) { alt4=1; } switch (alt4) { case 1 : - // InternalSolverLanguage.g:2501:13: '0' .. '9' + // InternalSolverLanguage.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop4; + } + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ID" + + // $ANTLR start "RULE_INT" + public final void mRULE_INT() throws RecognitionException { + try { + int _type = RULE_INT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:3894:10: ( ( '0' .. '9' )+ ) + // InternalSolverLanguage.g:3894:12: ( '0' .. '9' )+ + { + // InternalSolverLanguage.g:3894:12: ( '0' .. '9' )+ + int cnt5=0; + loop5: + do { + int alt5=2; + int LA5_0 = input.LA(1); + + if ( ((LA5_0>='0' && LA5_0<='9')) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // InternalSolverLanguage.g:3894:13: '0' .. '9' { matchRange('0','9'); @@ -878,12 +1640,12 @@ public class InternalSolverLanguageLexer extends Lexer { break; default : - if ( cnt4 >= 1 ) break loop4; + if ( cnt5 >= 1 ) break loop5; EarlyExitException eee = - new EarlyExitException(4, input); + new EarlyExitException(5, input); throw eee; } - cnt4++; + cnt5++; } while (true); @@ -902,37 +1664,37 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_ML_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:2503:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // InternalSolverLanguage.g:2503:19: '/*' ( options {greedy=false; } : . )* '*/' + // InternalSolverLanguage.g:3896:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // InternalSolverLanguage.g:3896:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // InternalSolverLanguage.g:2503:24: ( options {greedy=false; } : . )* - loop5: + // InternalSolverLanguage.g:3896:24: ( options {greedy=false; } : . )* + loop6: do { - int alt5=2; - int LA5_0 = input.LA(1); + int alt6=2; + int LA6_0 = input.LA(1); - if ( (LA5_0=='*') ) { - int LA5_1 = input.LA(2); + if ( (LA6_0=='*') ) { + int LA6_1 = input.LA(2); - if ( (LA5_1=='/') ) { - alt5=2; + if ( (LA6_1=='/') ) { + alt6=2; } - else if ( ((LA5_1>='\u0000' && LA5_1<='.')||(LA5_1>='0' && LA5_1<='\uFFFF')) ) { - alt5=1; + else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) { + alt6=1; } } - else if ( ((LA5_0>='\u0000' && LA5_0<=')')||(LA5_0>='+' && LA5_0<='\uFFFF')) ) { - alt5=1; + else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) { + alt6=1; } - switch (alt5) { + switch (alt6) { case 1 : - // InternalSolverLanguage.g:2503:52: . + // InternalSolverLanguage.g:3896:52: . { matchAny(); @@ -940,7 +1702,7 @@ public class InternalSolverLanguageLexer extends Lexer { break; default : - break loop5; + break loop6; } } while (true); @@ -962,25 +1724,25 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_SL_COMMENT; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:2505:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) - // InternalSolverLanguage.g:2505:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? + // InternalSolverLanguage.g:3898:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) + // InternalSolverLanguage.g:3898:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // InternalSolverLanguage.g:2505:24: (~ ( ( '\\n' | '\\r' ) ) )* - loop6: + // InternalSolverLanguage.g:3898:24: (~ ( ( '\\n' | '\\r' ) ) )* + loop7: do { - int alt6=2; - int LA6_0 = input.LA(1); + int alt7=2; + int LA7_0 = input.LA(1); - if ( ((LA6_0>='\u0000' && LA6_0<='\t')||(LA6_0>='\u000B' && LA6_0<='\f')||(LA6_0>='\u000E' && LA6_0<='\uFFFF')) ) { - alt6=1; + if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) { + alt7=1; } - switch (alt6) { + switch (alt7) { case 1 : - // InternalSolverLanguage.g:2505:24: ~ ( ( '\\n' | '\\r' ) ) + // InternalSolverLanguage.g:3898:24: ~ ( ( '\\n' | '\\r' ) ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { input.consume(); @@ -996,31 +1758,31 @@ public class InternalSolverLanguageLexer extends Lexer { break; default : - break loop6; + break loop7; } } while (true); - // InternalSolverLanguage.g:2505:40: ( ( '\\r' )? '\\n' )? - int alt8=2; - int LA8_0 = input.LA(1); + // InternalSolverLanguage.g:3898:40: ( ( '\\r' )? '\\n' )? + int alt9=2; + int LA9_0 = input.LA(1); - if ( (LA8_0=='\n'||LA8_0=='\r') ) { - alt8=1; + if ( (LA9_0=='\n'||LA9_0=='\r') ) { + alt9=1; } - switch (alt8) { + switch (alt9) { case 1 : - // InternalSolverLanguage.g:2505:41: ( '\\r' )? '\\n' + // InternalSolverLanguage.g:3898:41: ( '\\r' )? '\\n' { - // InternalSolverLanguage.g:2505:41: ( '\\r' )? - int alt7=2; - int LA7_0 = input.LA(1); + // InternalSolverLanguage.g:3898:41: ( '\\r' )? + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA7_0=='\r') ) { - alt7=1; + if ( (LA8_0=='\r') ) { + alt8=1; } - switch (alt7) { + switch (alt8) { case 1 : - // InternalSolverLanguage.g:2505:41: '\\r' + // InternalSolverLanguage.g:3898:41: '\\r' { match('\r'); @@ -1052,344 +1814,575 @@ public class InternalSolverLanguageLexer extends Lexer { try { int _type = RULE_WS; int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:2507:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // InternalSolverLanguage.g:2507:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // InternalSolverLanguage.g:3900:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // InternalSolverLanguage.g:3900:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // InternalSolverLanguage.g:2507:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ - int cnt9=0; - loop9: + // InternalSolverLanguage.g:3900:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + int cnt10=0; + loop10: do { - int alt9=2; - int LA9_0 = input.LA(1); + int alt10=2; + int LA10_0 = input.LA(1); - if ( ((LA9_0>='\t' && LA9_0<='\n')||LA9_0=='\r'||LA9_0==' ') ) { - alt9=1; + if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) { + alt10=1; } - switch (alt9) { + switch (alt10) { case 1 : // InternalSolverLanguage.g: { if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) { input.consume(); - } - else { - MismatchedSetException mse = new MismatchedSetException(null,input); - recover(mse); - throw mse;} + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + if ( cnt10 >= 1 ) break loop10; + EarlyExitException eee = + new EarlyExitException(10, input); + throw eee; + } + cnt10++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_WS" + + // $ANTLR start "RULE_ANY_OTHER" + public final void mRULE_ANY_OTHER() throws RecognitionException { + try { + int _type = RULE_ANY_OTHER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // InternalSolverLanguage.g:3902:16: ( . ) + // InternalSolverLanguage.g:3902:18: . + { + matchAny(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RULE_ANY_OTHER" + + public void mTokens() throws RecognitionException { + // 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 ) + int alt11=71; + alt11 = dfa11.predict(input); + switch (alt11) { + case 1 : + // InternalSolverLanguage.g:1:10: T__15 + { + mT__15(); + + } + break; + case 2 : + // InternalSolverLanguage.g:1:16: T__16 + { + mT__16(); + + } + break; + case 3 : + // InternalSolverLanguage.g:1:22: T__17 + { + mT__17(); + + } + break; + case 4 : + // InternalSolverLanguage.g:1:28: T__18 + { + mT__18(); + + } + break; + case 5 : + // InternalSolverLanguage.g:1:34: T__19 + { + mT__19(); + + } + break; + case 6 : + // InternalSolverLanguage.g:1:40: T__20 + { + mT__20(); + + } + break; + case 7 : + // InternalSolverLanguage.g:1:46: T__21 + { + mT__21(); + + } + break; + case 8 : + // InternalSolverLanguage.g:1:52: T__22 + { + mT__22(); + + } + break; + case 9 : + // InternalSolverLanguage.g:1:58: T__23 + { + mT__23(); + + } + break; + case 10 : + // InternalSolverLanguage.g:1:64: T__24 + { + mT__24(); + + } + break; + case 11 : + // InternalSolverLanguage.g:1:70: T__25 + { + mT__25(); + + } + break; + case 12 : + // InternalSolverLanguage.g:1:76: T__26 + { + mT__26(); + + } + break; + case 13 : + // InternalSolverLanguage.g:1:82: T__27 + { + mT__27(); + + } + break; + case 14 : + // InternalSolverLanguage.g:1:88: T__28 + { + mT__28(); + + } + break; + case 15 : + // InternalSolverLanguage.g:1:94: T__29 + { + mT__29(); + + } + break; + case 16 : + // InternalSolverLanguage.g:1:100: T__30 + { + mT__30(); + + } + break; + case 17 : + // InternalSolverLanguage.g:1:106: T__31 + { + mT__31(); + + } + break; + case 18 : + // InternalSolverLanguage.g:1:112: T__32 + { + mT__32(); + + } + break; + case 19 : + // InternalSolverLanguage.g:1:118: T__33 + { + mT__33(); + + } + break; + case 20 : + // InternalSolverLanguage.g:1:124: T__34 + { + mT__34(); + + } + break; + case 21 : + // InternalSolverLanguage.g:1:130: T__35 + { + mT__35(); + + } + break; + case 22 : + // InternalSolverLanguage.g:1:136: T__36 + { + mT__36(); + + } + break; + case 23 : + // InternalSolverLanguage.g:1:142: T__37 + { + mT__37(); + + } + break; + case 24 : + // InternalSolverLanguage.g:1:148: T__38 + { + mT__38(); + } + break; + case 25 : + // InternalSolverLanguage.g:1:154: T__39 + { + mT__39(); - } - break; + } + break; + case 26 : + // InternalSolverLanguage.g:1:160: T__40 + { + mT__40(); - default : - if ( cnt9 >= 1 ) break loop9; - EarlyExitException eee = - new EarlyExitException(9, input); - throw eee; } - cnt9++; - } while (true); + break; + case 27 : + // InternalSolverLanguage.g:1:166: T__41 + { + mT__41(); + } + break; + case 28 : + // InternalSolverLanguage.g:1:172: T__42 + { + mT__42(); - } + } + break; + case 29 : + // InternalSolverLanguage.g:1:178: T__43 + { + mT__43(); - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "RULE_WS" + } + break; + case 30 : + // InternalSolverLanguage.g:1:184: T__44 + { + mT__44(); - // $ANTLR start "RULE_ANY_OTHER" - public final void mRULE_ANY_OTHER() throws RecognitionException { - try { - int _type = RULE_ANY_OTHER; - int _channel = DEFAULT_TOKEN_CHANNEL; - // InternalSolverLanguage.g:2509:16: ( . ) - // InternalSolverLanguage.g:2509:18: . - { - matchAny(); + } + break; + case 31 : + // InternalSolverLanguage.g:1:190: T__45 + { + mT__45(); - } + } + break; + case 32 : + // InternalSolverLanguage.g:1:196: T__46 + { + mT__46(); - state.type = _type; - state.channel = _channel; - } - finally { - } - } - // $ANTLR end "RULE_ANY_OTHER" + } + break; + case 33 : + // InternalSolverLanguage.g:1:202: T__47 + { + mT__47(); - public void mTokens() throws RecognitionException { - // 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 ) - int alt10=38; - alt10 = dfa10.predict(input); - switch (alt10) { - case 1 : - // InternalSolverLanguage.g:1:10: T__11 + } + break; + case 34 : + // InternalSolverLanguage.g:1:208: T__48 { - mT__11(); + mT__48(); } break; - case 2 : - // InternalSolverLanguage.g:1:16: T__12 + case 35 : + // InternalSolverLanguage.g:1:214: T__49 { - mT__12(); + mT__49(); } break; - case 3 : - // InternalSolverLanguage.g:1:22: T__13 + case 36 : + // InternalSolverLanguage.g:1:220: T__50 { - mT__13(); + mT__50(); } break; - case 4 : - // InternalSolverLanguage.g:1:28: T__14 + case 37 : + // InternalSolverLanguage.g:1:226: T__51 { - mT__14(); + mT__51(); } break; - case 5 : - // InternalSolverLanguage.g:1:34: T__15 + case 38 : + // InternalSolverLanguage.g:1:232: T__52 { - mT__15(); + mT__52(); } break; - case 6 : - // InternalSolverLanguage.g:1:40: T__16 + case 39 : + // InternalSolverLanguage.g:1:238: T__53 { - mT__16(); + mT__53(); } break; - case 7 : - // InternalSolverLanguage.g:1:46: T__17 + case 40 : + // InternalSolverLanguage.g:1:244: T__54 { - mT__17(); + mT__54(); } break; - case 8 : - // InternalSolverLanguage.g:1:52: T__18 + case 41 : + // InternalSolverLanguage.g:1:250: T__55 { - mT__18(); + mT__55(); } break; - case 9 : - // InternalSolverLanguage.g:1:58: T__19 + case 42 : + // InternalSolverLanguage.g:1:256: T__56 { - mT__19(); + mT__56(); } break; - case 10 : - // InternalSolverLanguage.g:1:64: T__20 + case 43 : + // InternalSolverLanguage.g:1:262: T__57 { - mT__20(); + mT__57(); } break; - case 11 : - // InternalSolverLanguage.g:1:70: T__21 + case 44 : + // InternalSolverLanguage.g:1:268: T__58 { - mT__21(); + mT__58(); } break; - case 12 : - // InternalSolverLanguage.g:1:76: T__22 + case 45 : + // InternalSolverLanguage.g:1:274: T__59 { - mT__22(); + mT__59(); } break; - case 13 : - // InternalSolverLanguage.g:1:82: T__23 + case 46 : + // InternalSolverLanguage.g:1:280: T__60 { - mT__23(); + mT__60(); } break; - case 14 : - // InternalSolverLanguage.g:1:88: T__24 + case 47 : + // InternalSolverLanguage.g:1:286: T__61 { - mT__24(); + mT__61(); } break; - case 15 : - // InternalSolverLanguage.g:1:94: T__25 + case 48 : + // InternalSolverLanguage.g:1:292: T__62 { - mT__25(); + mT__62(); } break; - case 16 : - // InternalSolverLanguage.g:1:100: T__26 + case 49 : + // InternalSolverLanguage.g:1:298: T__63 { - mT__26(); + mT__63(); } break; - case 17 : - // InternalSolverLanguage.g:1:106: T__27 + case 50 : + // InternalSolverLanguage.g:1:304: T__64 { - mT__27(); + mT__64(); } break; - case 18 : - // InternalSolverLanguage.g:1:112: T__28 + case 51 : + // InternalSolverLanguage.g:1:310: T__65 { - mT__28(); + mT__65(); } break; - case 19 : - // InternalSolverLanguage.g:1:118: T__29 + case 52 : + // InternalSolverLanguage.g:1:316: T__66 { - mT__29(); + mT__66(); } break; - case 20 : - // InternalSolverLanguage.g:1:124: T__30 + case 53 : + // InternalSolverLanguage.g:1:322: T__67 { - mT__30(); + mT__67(); } break; - case 21 : - // InternalSolverLanguage.g:1:130: T__31 + case 54 : + // InternalSolverLanguage.g:1:328: T__68 { - mT__31(); + mT__68(); } break; - case 22 : - // InternalSolverLanguage.g:1:136: T__32 + case 55 : + // InternalSolverLanguage.g:1:334: T__69 { - mT__32(); + mT__69(); } break; - case 23 : - // InternalSolverLanguage.g:1:142: T__33 + case 56 : + // InternalSolverLanguage.g:1:340: T__70 { - mT__33(); + mT__70(); } break; - case 24 : - // InternalSolverLanguage.g:1:148: T__34 + case 57 : + // InternalSolverLanguage.g:1:346: T__71 { - mT__34(); + mT__71(); } break; - case 25 : - // InternalSolverLanguage.g:1:154: T__35 + case 58 : + // InternalSolverLanguage.g:1:352: T__72 { - mT__35(); + mT__72(); } break; - case 26 : - // InternalSolverLanguage.g:1:160: T__36 + case 59 : + // InternalSolverLanguage.g:1:358: T__73 { - mT__36(); + mT__73(); } break; - case 27 : - // InternalSolverLanguage.g:1:166: T__37 + case 60 : + // InternalSolverLanguage.g:1:364: T__74 { - mT__37(); + mT__74(); } break; - case 28 : - // InternalSolverLanguage.g:1:172: T__38 + case 61 : + // InternalSolverLanguage.g:1:370: RULE_STRING { - mT__38(); + mRULE_STRING(); } break; - case 29 : - // InternalSolverLanguage.g:1:178: T__39 + case 62 : + // InternalSolverLanguage.g:1:382: RULE_QUOTED_ID { - mT__39(); + mRULE_QUOTED_ID(); } break; - case 30 : - // InternalSolverLanguage.g:1:184: T__40 + case 63 : + // InternalSolverLanguage.g:1:397: RULE_PLUS { - mT__40(); + mRULE_PLUS(); } break; - case 31 : - // InternalSolverLanguage.g:1:190: T__41 + case 64 : + // InternalSolverLanguage.g:1:407: RULE_STAR { - mT__41(); + mRULE_STAR(); } break; - case 32 : - // InternalSolverLanguage.g:1:196: RULE_STRING + case 65 : + // InternalSolverLanguage.g:1:417: RULE_DOT { - mRULE_STRING(); + mRULE_DOT(); } break; - case 33 : - // InternalSolverLanguage.g:1:208: RULE_ID + case 66 : + // InternalSolverLanguage.g:1:426: RULE_ID { mRULE_ID(); } break; - case 34 : - // InternalSolverLanguage.g:1:216: RULE_INT + case 67 : + // InternalSolverLanguage.g:1:434: RULE_INT { mRULE_INT(); } break; - case 35 : - // InternalSolverLanguage.g:1:225: RULE_ML_COMMENT + case 68 : + // InternalSolverLanguage.g:1:443: RULE_ML_COMMENT { mRULE_ML_COMMENT(); } break; - case 36 : - // InternalSolverLanguage.g:1:241: RULE_SL_COMMENT + case 69 : + // InternalSolverLanguage.g:1:459: RULE_SL_COMMENT { mRULE_SL_COMMENT(); } break; - case 37 : - // InternalSolverLanguage.g:1:257: RULE_WS + case 70 : + // InternalSolverLanguage.g:1:475: RULE_WS { mRULE_WS(); } break; - case 38 : - // InternalSolverLanguage.g:1:265: RULE_ANY_OTHER + case 71 : + // InternalSolverLanguage.g:1:483: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -1401,286 +2394,408 @@ public class InternalSolverLanguageLexer extends Lexer { } - protected DFA10 dfa10 = new DFA10(this); - static final String DFA10_eotS = - "\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"; - static final String DFA10_eofS = - "\u0095\uffff"; - static final String DFA10_minS = - "\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"; - static final String DFA10_maxS = - "\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"; - static final String DFA10_acceptS = - "\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"; - static final String DFA10_specialS = - "\1\0\27\uffff\1\1\174\uffff}>"; - static final String[] DFA10_transitionS = { - "\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", - "", - "\1\40", - "\1\42", - "\1\44", - "\1\45", - "\1\51\2\uffff\1\50\1\46\5\uffff\1\47", + protected DFA11 dfa11 = new DFA11(this); + static final String DFA11_eotS = + "\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"; + static final String DFA11_eofS = + "\u00f3\uffff"; + static final String DFA11_minS = + "\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"; + static final String DFA11_maxS = + "\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"; + static final String DFA11_acceptS = + "\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"; + static final String DFA11_specialS = + "\1\1\41\uffff\1\2\1\0\u00cf\uffff}>"; + static final String[] DFA11_transitionS = { + "\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", + "\1\50", + "\1\52", + "\1\55\23\uffff\1\54", + "\1\61\1\62\4\uffff\1\57\5\uffff\1\60", + "\1\63", + "\1\64", + "\1\66\7\uffff\1\67", + "\1\70\11\uffff\1\71", "", + "\1\73", "", + "\1\77\2\uffff\1\76\5\uffff\1\100", "", - "\1\55", - "\1\57", - "\1\60", - "\1\61", - "\1\62", "", "", "", "", - "\1\67", - "\1\70", - "\1\71\2\uffff\1\72", "", "", - "\0\75", - "\32\43\4\uffff\1\43\1\uffff\32\43", "", + "\1\111\23\uffff\1\112", + "\1\114\1\uffff\1\113", + "\1\115\21\uffff\1\116\3\uffff\1\117", + "\1\120", + "\1\122", + "\1\124", + "\1\125", "", - "\1\77\4\uffff\1\100", - "", + "\1\130\4\uffff\1\131", + "\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\134\7\uffff\1\136\13\uffff\1\135", + "\1\137", + "\1\140", + "\0\141", + "\0\142", "", "", "", "", - "\1\102", "", - "\1\103", - "\1\104", - "\1\105", - "\1\106\12\uffff\1\107", - "\1\110", - "\1\111", "", "", "", + "\1\145", + "\1\146", "", + "\1\147", + "\1\150", + "\1\151", + "\1\152", + "\1\153", "", - "\1\112", - "\1\113", - "\1\114\12\uffff\1\115", - "\1\116", "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\5\56\1\155\15\56\1\156\6\56", + "\1\160", + "\1\161", "", "", "", - "\1\117", - "\1\120", - "\1\121", - "\1\122", "", + "\1\163\6\uffff\1\162", + "\1\164", + "\1\165", "", "", "", "", "", "", - "\1\123", - "\1\124", - "\1\125", - "\1\126", - "\1\127", - "\1\130", - "\1\131", - "\1\132", - "\1\133", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", - "\1\135", - "\1\136", - "\1\137", - "\1\140", - "\1\141", - "\1\142", - "\1\143", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", - "\1\145", - "\1\146", - "\1\147", - "\1\150", - "\1\151", - "\1\152", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", "", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", - "\1\156", - "\1\157", - "\1\160", - "\1\161", - "\1\162", - "\1\163", "", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", - "\1\165", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\166", "\1\167", "\1\170", "\1\171", - "", - "", - "", "\1\172", "\1\173", "\1\174", + "", + "", + "", + "", "\1\175", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", - "\1\177", "", - "\1\u0080", "", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "", + "", + "", + "", + "", + "\1\177\1\176", + "\1\u0080", + "\1\u0081", "\1\u0082", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0083", + "", + "", + "", + "", "\1\u0084", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0085", "\1\u0086", "\1\u0087", - "", "\1\u0088", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\1\u0089", + "\1\u008a", "", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", "", - "\1\u008b", - "", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", "\1\u008d", "\1\u008e", + "\1\u008f", + "\1\u0090", + "\1\u0091", + "\1\u0092", + "\1\u0093", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u0095", + "\1\u0096", + "\1\u0097", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u0099", + "\1\u009a", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\10\56\1\u009c\21\56", + "\1\u009e", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\10\56\1\u009f\21\56", + "\1\u00a1", + "\1\u00a2", + "\1\u00a3", + "\1\u00a4", + "\1\u00a5", + "\1\u00a7\3\uffff\1\u00a6", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00a9", + "\1\u00aa", "", "", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00ad", + "\1\u00ae", + "\1\u00af", + "\1\u00b0", + "\1\u00b1", "", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", - "\1\u0091", + "\1\u00b2", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00b4", + "", + "\1\u00b5", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "", + "\1\u00b7", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00b9", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00bb", + "\1\u00bc", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00bf", + "\1\u00c0", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00c2", + "", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00c4", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00c6", + "\1\u00c7", + "\1\u00c8", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00ca", + "", + "\1\u00cb", + "", + "\1\u00cc", + "", + "\1\u00cd", + "\1\u00ce", + "", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00d0", + "", + "\1\u00d1", + "", + "\1\u00d2", + "", + "\1\u00d3", + "\1\u00d4", + "\1\u00d5", + "", + "\1\u00d6", + "\1\u00d7", + "\1\u00d8", + "\1\u00d9", + "\1\u00da", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00dd", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00df", + "\1\u00e0", + "\1\u00e1", + "\1\u00e2", + "\1\u00e3", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00e5", + "", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00e9", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "", + "\1\u00ec", + "", + "", + "", + "\1\u00ed", + "", + "", + "\12\56\7\uffff\32\56\4\uffff\1\56\1\uffff\32\56", + "\1\u00ef", + "", + "\1\u00f2\13\uffff\1\u00f0\2\uffff\1\u00f1", "", "", - "\1\u0092", - "\1\u0093", - "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", "" }; - static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS); - static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS); - static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS); - static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS); - static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS); - static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS); - static final short[][] DFA10_transition; + static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS); + static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS); + static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS); + static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS); + static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS); + static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS); + static final short[][] DFA11_transition; static { - int numStates = DFA10_transitionS.length; - DFA10_transition = new short[numStates][]; + int numStates = DFA11_transitionS.length; + DFA11_transition = new short[numStates][]; for (int i=0; i='\u0000' && LA11_35<='\uFFFF')) ) {s = 98;} + + else s = 39; + + if ( s>=0 ) return s; + break; + case 1 : + int LA11_0 = input.LA(1); s = -1; - if ( (LA10_0=='-') ) {s = 1;} + if ( (LA11_0==':') ) {s = 1;} + + else if ( (LA11_0=='=') ) {s = 2;} + + else if ( (LA11_0=='f') ) {s = 3;} - else if ( (LA10_0=='.') ) {s = 2;} + else if ( (LA11_0=='e') ) {s = 4;} - else if ( (LA10_0=='t') ) {s = 3;} + else if ( (LA11_0=='d') ) {s = 5;} - else if ( (LA10_0=='f') ) {s = 4;} + else if ( (LA11_0=='.') ) {s = 6;} - else if ( (LA10_0=='u') ) {s = 5;} + else if ( (LA11_0=='i') ) {s = 7;} - else if ( (LA10_0=='e') ) {s = 6;} + else if ( (LA11_0=='t') ) {s = 8;} - else if ( (LA10_0=='(') ) {s = 7;} + else if ( (LA11_0==';') ) {s = 9;} - else if ( (LA10_0==',') ) {s = 8;} + else if ( (LA11_0=='-') ) {s = 10;} - else if ( (LA10_0==')') ) {s = 9;} + else if ( (LA11_0==',') ) {s = 11;} - else if ( (LA10_0==':') ) {s = 10;} + else if ( (LA11_0=='c') ) {s = 12;} - else if ( (LA10_0=='b') ) {s = 11;} + else if ( (LA11_0=='{') ) {s = 13;} - else if ( (LA10_0=='i') ) {s = 12;} + else if ( (LA11_0=='}') ) {s = 14;} - else if ( (LA10_0=='r') ) {s = 13;} + else if ( (LA11_0=='|') ) {s = 15;} - else if ( (LA10_0=='s') ) {s = 14;} + else if ( (LA11_0=='(') ) {s = 16;} - else if ( (LA10_0=='\'') ) {s = 15;} + else if ( (LA11_0==')') ) {s = 17;} - else if ( (LA10_0=='|') ) {s = 16;} + else if ( (LA11_0=='*') ) {s = 18;} - else if ( (LA10_0=='+') ) {s = 17;} + else if ( (LA11_0=='[') ) {s = 19;} - else if ( (LA10_0=='*') ) {s = 18;} + else if ( (LA11_0==']') ) {s = 20;} - else if ( (LA10_0=='d') ) {s = 19;} + else if ( (LA11_0=='a') ) {s = 21;} - else if ( (LA10_0=='a') ) {s = 20;} + else if ( (LA11_0=='o') ) {s = 22;} - else if ( (LA10_0=='c') ) {s = 21;} + else if ( (LA11_0=='s') ) {s = 23;} - else if ( (LA10_0=='{') ) {s = 22;} + else if ( (LA11_0=='<') ) {s = 24;} - else if ( (LA10_0=='}') ) {s = 23;} + else if ( (LA11_0=='>') ) {s = 25;} - else if ( (LA10_0=='\"') ) {s = 24;} + else if ( (LA11_0=='r') ) {s = 26;} - else if ( (LA10_0=='^') ) {s = 25;} + else if ( (LA11_0=='!') ) {s = 27;} - 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;} + else if ( (LA11_0=='+') ) {s = 28;} - else if ( ((LA10_0>='0' && LA10_0<='9')) ) {s = 27;} + else if ( (LA11_0=='/') ) {s = 29;} - else if ( (LA10_0=='/') ) {s = 28;} + else if ( (LA11_0=='^') ) {s = 30;} - else if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) {s = 29;} + else if ( (LA11_0=='m') ) {s = 31;} - 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;} + else if ( (LA11_0=='p') ) {s = 32;} + + else if ( (LA11_0=='u') ) {s = 33;} + + else if ( (LA11_0=='\"') ) {s = 34;} + + else if ( (LA11_0=='\'') ) {s = 35;} + + 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;} + + else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 37;} + + else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 38;} + + 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;} if ( s>=0 ) return s; break; - case 1 : - int LA10_24 = input.LA(1); + case 2 : + int LA11_34 = input.LA(1); s = -1; - if ( ((LA10_24>='\u0000' && LA10_24<='\uFFFF')) ) {s = 61;} + if ( ((LA11_34>='\u0000' && LA11_34<='\uFFFF')) ) {s = 97;} - else s = 30; + else s = 39; if ( s>=0 ) return s; break; } NoViableAltException nvae = - new NoViableAltException(getDescription(), 10, _s, input); + new NoViableAltException(getDescription(), 11, _s, input); error(nvae); throw nvae; } 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.*; import org.eclipse.xtext.parser.impl.*; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.common.util.Enumerator; import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser; import org.eclipse.xtext.parser.antlr.XtextTokenStream; import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens; @@ -17,51 +18,85 @@ import org.antlr.runtime.*; import java.util.Stack; import java.util.List; import java.util.ArrayList; - +import java.util.Map; +import java.util.HashMap; @SuppressWarnings("all") public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { - "", "", "", "", "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'", "'..'" + "", "", "", "", "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'" }; - public static final int RULE_STRING=6; - public static final int RULE_SL_COMMENT=8; + public static final int T__50=50; public static final int T__19=19; public static final int T__15=15; - public static final int T__37=37; + public static final int T__59=59; public static final int T__16=16; - public static final int T__38=38; public static final int T__17=17; - public static final int T__39=39; public static final int T__18=18; - public static final int T__11=11; - public static final int T__33=33; - public static final int T__12=12; - public static final int T__34=34; - public static final int T__13=13; - public static final int T__35=35; - public static final int T__14=14; - public static final int T__36=36; - public static final int EOF=-1; - public static final int T__30=30; - public static final int T__31=31; - public static final int T__32=32; - public static final int RULE_ID=5; - public static final int RULE_WS=9; - public static final int RULE_ANY_OTHER=10; + public static final int T__55=55; + public static final int T__56=56; + public static final int T__57=57; + public static final int T__58=58; + public static final int T__51=51; + public static final int RULE_STAR=5; + public static final int T__52=52; + public static final int T__53=53; + public static final int T__54=54; + public static final int T__60=60; + public static final int T__61=61; + public static final int RULE_ID=8; + public static final int RULE_QUOTED_ID=10; public static final int T__26=26; public static final int T__27=27; public static final int T__28=28; - public static final int RULE_INT=4; + public static final int RULE_INT=9; public static final int T__29=29; public static final int T__22=22; - public static final int RULE_ML_COMMENT=7; + public static final int T__66=66; + public static final int RULE_ML_COMMENT=11; public static final int T__23=23; + public static final int T__67=67; public static final int T__24=24; + public static final int T__68=68; public static final int T__25=25; - public static final int T__40=40; - public static final int T__41=41; + public static final int T__69=69; + public static final int T__62=62; + public static final int T__63=63; public static final int T__20=20; + public static final int T__64=64; public static final int T__21=21; + public static final int T__65=65; + public static final int T__70=70; + public static final int T__71=71; + public static final int T__72=72; + public static final int RULE_STRING=7; + public static final int RULE_SL_COMMENT=12; + public static final int T__37=37; + public static final int T__38=38; + public static final int T__39=39; + public static final int T__33=33; + public static final int T__34=34; + public static final int T__35=35; + public static final int RULE_PLUS=6; + public static final int T__36=36; + public static final int T__73=73; + public static final int RULE_DOT=4; + public static final int EOF=-1; + public static final int T__30=30; + public static final int T__74=74; + public static final int T__31=31; + public static final int T__32=32; + public static final int RULE_WS=13; + public static final int RULE_ANY_OTHER=14; + public static final int T__48=48; + public static final int T__49=49; + public static final int T__44=44; + public static final int T__45=45; + public static final int T__46=46; + public static final int T__47=47; + public static final int T__40=40; + public static final int T__41=41; + public static final int T__42=42; + public static final int T__43=43; // delegates // delegators @@ -103,7 +138,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleProblem" - // InternalSolverLanguage.g:64:1: entryRuleProblem returns [EObject current=null] : iv_ruleProblem= ruleProblem EOF ; + // InternalSolverLanguage.g:65:1: entryRuleProblem returns [EObject current=null] : iv_ruleProblem= ruleProblem EOF ; public final EObject entryRuleProblem() throws RecognitionException { EObject current = null; @@ -111,17 +146,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguage.g:64:48: (iv_ruleProblem= ruleProblem EOF ) - // InternalSolverLanguage.g:65:2: iv_ruleProblem= ruleProblem EOF + // InternalSolverLanguage.g:65:48: (iv_ruleProblem= ruleProblem EOF ) + // InternalSolverLanguage.g:66:2: iv_ruleProblem= ruleProblem EOF { - newCompositeNode(grammarAccess.getProblemRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getProblemRule()); + } pushFollow(FOLLOW_1); iv_ruleProblem=ruleProblem(); state._fsp--; - - current =iv_ruleProblem; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleProblem; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -139,7 +178,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleProblem" - // InternalSolverLanguage.g:71:1: ruleProblem returns [EObject current=null] : ( (lv_statements_0_0= ruleStatement ) )* ; + // InternalSolverLanguage.g:72:1: ruleProblem returns [EObject current=null] : ( (lv_statements_0_0= ruleStatement ) )* ; public final EObject ruleProblem() throws RecognitionException { EObject current = null; @@ -150,46 +189,50 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { enterRule(); try { - // InternalSolverLanguage.g:77:2: ( ( (lv_statements_0_0= ruleStatement ) )* ) - // InternalSolverLanguage.g:78:2: ( (lv_statements_0_0= ruleStatement ) )* + // InternalSolverLanguage.g:78:2: ( ( (lv_statements_0_0= ruleStatement ) )* ) + // InternalSolverLanguage.g:79:2: ( (lv_statements_0_0= ruleStatement ) )* { - // InternalSolverLanguage.g:78:2: ( (lv_statements_0_0= ruleStatement ) )* + // InternalSolverLanguage.g:79:2: ( (lv_statements_0_0= ruleStatement ) )* loop1: do { int alt1=2; int LA1_0 = input.LA(1); - 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)) ) { + 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)) ) { alt1=1; } switch (alt1) { case 1 : - // InternalSolverLanguage.g:79:3: (lv_statements_0_0= ruleStatement ) + // InternalSolverLanguage.g:80:3: (lv_statements_0_0= ruleStatement ) { - // InternalSolverLanguage.g:79:3: (lv_statements_0_0= ruleStatement ) - // InternalSolverLanguage.g:80:4: lv_statements_0_0= ruleStatement + // InternalSolverLanguage.g:80:3: (lv_statements_0_0= ruleStatement ) + // InternalSolverLanguage.g:81:4: lv_statements_0_0= ruleStatement { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0()); - + newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0()); + + } pushFollow(FOLLOW_3); lv_statements_0_0=ruleStatement(); state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getProblemRule()); - } - add( - current, - "statements", - lv_statements_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); - afterParserOrEnumRuleCall(); - + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getProblemRule()); + } + add( + current, + "statements", + lv_statements_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); + afterParserOrEnumRuleCall(); + + } } @@ -205,9 +248,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -222,7 +267,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "entryRuleStatement" - // InternalSolverLanguage.g:100:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ; + // InternalSolverLanguage.g:101:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ; public final EObject entryRuleStatement() throws RecognitionException { EObject current = null; @@ -230,17 +275,21 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { try { - // InternalSolverLanguage.g:100:50: (iv_ruleStatement= ruleStatement EOF ) - // InternalSolverLanguage.g:101:2: iv_ruleStatement= ruleStatement EOF + // InternalSolverLanguage.g:101:50: (iv_ruleStatement= ruleStatement EOF ) + // InternalSolverLanguage.g:102:2: iv_ruleStatement= ruleStatement EOF { - newCompositeNode(grammarAccess.getStatementRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStatementRule()); + } pushFollow(FOLLOW_1); iv_ruleStatement=ruleStatement(); state._fsp--; - - current =iv_ruleStatement; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStatement; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -258,189 +307,286 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { // $ANTLR start "ruleStatement" - // InternalSolverLanguage.g:107:1: ruleStatement returns [EObject current=null] : (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate ) ; + // 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 ) ; public final EObject ruleStatement() throws RecognitionException { EObject current = null; - EObject this_Interpretation_0 = null; + Token this_DOT_10=null; + EObject this_AssertionOrDefinition_0 = null; + + EObject this_PredicateDefinition_1 = null; + + EObject this_UnnamedErrorPrediateDefinition_2 = null; - EObject this_Predicate_1 = null; + EObject this_DefaultDefinition_3 = null; + + EObject this_ExternPredicateDefinition_4 = null; + + EObject this_MetricDefinition_5 = null; + + EObject this_ExternMetricDefinition_6 = null; + + EObject this_ClassDefinition_7 = null; + + EObject this_ScopeDefinition_8 = null; + + EObject this_ObjectiveDefinition_9 = null; enterRule(); try { - // InternalSolverLanguage.g:113:2: ( (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate ) ) - // InternalSolverLanguage.g:114:2: (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate ) + // 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 ) ) + // 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 ) { - // InternalSolverLanguage.g:114:2: (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate ) - int alt2=2; + // 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 ) + // 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 + { + // 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 ) + int alt2=10; alt2 = dfa2.predict(input); switch (alt2) { case 1 : - // InternalSolverLanguage.g:115:3: this_Interpretation_0= ruleInterpretation + // InternalSolverLanguage.g:117:4: this_AssertionOrDefinition_0= ruleAssertionOrDefinition { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getStatementAccess().getInterpretationParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_Interpretation_0=ruleInterpretation(); + newCompositeNode(grammarAccess.getStatementAccess().getAssertionOrDefinitionParserRuleCall_0_0()); + + } + pushFollow(FOLLOW_4); + this_AssertionOrDefinition_0=ruleAssertionOrDefinition(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - current = this_Interpretation_0; - afterParserOrEnumRuleCall(); - + current = this_AssertionOrDefinition_0; + afterParserOrEnumRuleCall(); + + } } break; case 2 : - // InternalSolverLanguage.g:124:3: this_Predicate_1= rulePredicate + // InternalSolverLanguage.g:126:4: this_PredicateDefinition_1= rulePredicateDefinition { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getStatementAccess().getPredicateParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_Predicate_1=rulePredicate(); + newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_0_1()); + + } + pushFollow(FOLLOW_4); + this_PredicateDefinition_1=rulePredicateDefinition(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - current = this_Predicate_1; - afterParserOrEnumRuleCall(); - + current = this_PredicateDefinition_1; + afterParserOrEnumRuleCall(); + + } } break; + case 3 : + // InternalSolverLanguage.g:135:4: this_UnnamedErrorPrediateDefinition_2= ruleUnnamedErrorPrediateDefinition + { + if ( state.backtracking==0 ) { - } + newCompositeNode(grammarAccess.getStatementAccess().getUnnamedErrorPrediateDefinitionParserRuleCall_0_2()); + + } + pushFollow(FOLLOW_4); + this_UnnamedErrorPrediateDefinition_2=ruleUnnamedErrorPrediateDefinition(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - } + current = this_UnnamedErrorPrediateDefinition_2; + afterParserOrEnumRuleCall(); + + } + } + break; + case 4 : + // InternalSolverLanguage.g:144:4: this_DefaultDefinition_3= ruleDefaultDefinition + { + if ( state.backtracking==0 ) { - leaveRule(); + newCompositeNode(grammarAccess.getStatementAccess().getDefaultDefinitionParserRuleCall_0_3()); + + } + pushFollow(FOLLOW_4); + this_DefaultDefinition_3=ruleDefaultDefinition(); - } + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleStatement" + current = this_DefaultDefinition_3; + afterParserOrEnumRuleCall(); + + } + } + break; + case 5 : + // InternalSolverLanguage.g:153:4: this_ExternPredicateDefinition_4= ruleExternPredicateDefinition + { + if ( state.backtracking==0 ) { - // $ANTLR start "entryRuleREALLiteral" - // InternalSolverLanguage.g:136:1: entryRuleREALLiteral returns [String current=null] : iv_ruleREALLiteral= ruleREALLiteral EOF ; - public final String entryRuleREALLiteral() throws RecognitionException { - String current = null; + newCompositeNode(grammarAccess.getStatementAccess().getExternPredicateDefinitionParserRuleCall_0_4()); + + } + pushFollow(FOLLOW_4); + this_ExternPredicateDefinition_4=ruleExternPredicateDefinition(); - AntlrDatatypeRuleToken iv_ruleREALLiteral = null; + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current = this_ExternPredicateDefinition_4; + afterParserOrEnumRuleCall(); + + } - try { - // InternalSolverLanguage.g:136:51: (iv_ruleREALLiteral= ruleREALLiteral EOF ) - // InternalSolverLanguage.g:137:2: iv_ruleREALLiteral= ruleREALLiteral EOF - { - newCompositeNode(grammarAccess.getREALLiteralRule()); - pushFollow(FOLLOW_1); - iv_ruleREALLiteral=ruleREALLiteral(); + } + break; + case 6 : + // InternalSolverLanguage.g:162:4: this_MetricDefinition_5= ruleMetricDefinition + { + if ( state.backtracking==0 ) { - state._fsp--; + newCompositeNode(grammarAccess.getStatementAccess().getMetricDefinitionParserRuleCall_0_5()); + + } + pushFollow(FOLLOW_4); + this_MetricDefinition_5=ruleMetricDefinition(); - current =iv_ruleREALLiteral.getText(); - match(input,EOF,FOLLOW_2); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - } + current = this_MetricDefinition_5; + afterParserOrEnumRuleCall(); + + } - } + } + break; + case 7 : + // InternalSolverLanguage.g:171:4: this_ExternMetricDefinition_6= ruleExternMetricDefinition + { + if ( state.backtracking==0 ) { - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleREALLiteral" + newCompositeNode(grammarAccess.getStatementAccess().getExternMetricDefinitionParserRuleCall_0_6()); + + } + pushFollow(FOLLOW_4); + this_ExternMetricDefinition_6=ruleExternMetricDefinition(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - // $ANTLR start "ruleREALLiteral" - // InternalSolverLanguage.g:143:1: ruleREALLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT ) ; - public final AntlrDatatypeRuleToken ruleREALLiteral() throws RecognitionException { - AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + current = this_ExternMetricDefinition_6; + afterParserOrEnumRuleCall(); + + } - Token kw=null; - Token this_INT_1=null; - Token this_INT_3=null; + } + break; + case 8 : + // InternalSolverLanguage.g:180:4: this_ClassDefinition_7= ruleClassDefinition + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStatementAccess().getClassDefinitionParserRuleCall_0_7()); + + } + pushFollow(FOLLOW_4); + this_ClassDefinition_7=ruleClassDefinition(); - enterRule(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - try { - // InternalSolverLanguage.g:149:2: ( ( (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT ) ) - // InternalSolverLanguage.g:150:2: ( (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT ) - { - // InternalSolverLanguage.g:150:2: ( (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT ) - // InternalSolverLanguage.g:151:3: (kw= '-' )? this_INT_1= RULE_INT kw= '.' this_INT_3= RULE_INT - { - // InternalSolverLanguage.g:151:3: (kw= '-' )? - int alt3=2; - int LA3_0 = input.LA(1); + current = this_ClassDefinition_7; + afterParserOrEnumRuleCall(); + + } - if ( (LA3_0==11) ) { - alt3=1; - } - switch (alt3) { - case 1 : - // InternalSolverLanguage.g:152:4: kw= '-' + } + break; + case 9 : + // InternalSolverLanguage.g:189:4: this_ScopeDefinition_8= ruleScopeDefinition { - kw=(Token)match(input,11,FOLLOW_4); + if ( state.backtracking==0 ) { - current.merge(kw); - newLeafNode(kw, grammarAccess.getREALLiteralAccess().getHyphenMinusKeyword_0()); - + newCompositeNode(grammarAccess.getStatementAccess().getScopeDefinitionParserRuleCall_0_8()); + + } + pushFollow(FOLLOW_4); + this_ScopeDefinition_8=ruleScopeDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ScopeDefinition_8; + afterParserOrEnumRuleCall(); + + } } break; + case 10 : + // InternalSolverLanguage.g:198:4: this_ObjectiveDefinition_9= ruleObjectiveDefinition + { + if ( state.backtracking==0 ) { - } + newCompositeNode(grammarAccess.getStatementAccess().getObjectiveDefinitionParserRuleCall_0_9()); + + } + pushFollow(FOLLOW_4); + this_ObjectiveDefinition_9=ruleObjectiveDefinition(); - this_INT_1=(Token)match(input,RULE_INT,FOLLOW_5); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - current.merge(this_INT_1); - + current = this_ObjectiveDefinition_9; + afterParserOrEnumRuleCall(); + + } - newLeafNode(this_INT_1, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_1()); - - kw=(Token)match(input,12,FOLLOW_4); + } + break; - current.merge(kw); - newLeafNode(kw, grammarAccess.getREALLiteralAccess().getFullStopKeyword_2()); - - this_INT_3=(Token)match(input,RULE_INT,FOLLOW_2); + } - current.merge(this_INT_3); - + this_DOT_10=(Token)match(input,RULE_DOT,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - newLeafNode(this_INT_3, grammarAccess.getREALLiteralAccess().getINTTerminalRuleCall_3()); - + newLeafNode(this_DOT_10, grammarAccess.getStatementAccess().getDOTTerminalRuleCall_1()); + + } } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -451,29 +597,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleREALLiteral" + // $ANTLR end "ruleStatement" - // $ANTLR start "entryRuleINTLiteral" - // InternalSolverLanguage.g:181:1: entryRuleINTLiteral returns [String current=null] : iv_ruleINTLiteral= ruleINTLiteral EOF ; - public final String entryRuleINTLiteral() throws RecognitionException { - String current = null; + // $ANTLR start "entryRuleAssertionOrDefinition" + // InternalSolverLanguage.g:215:1: entryRuleAssertionOrDefinition returns [EObject current=null] : iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ; + public final EObject entryRuleAssertionOrDefinition() throws RecognitionException { + EObject current = null; - AntlrDatatypeRuleToken iv_ruleINTLiteral = null; + EObject iv_ruleAssertionOrDefinition = null; try { - // InternalSolverLanguage.g:181:50: (iv_ruleINTLiteral= ruleINTLiteral EOF ) - // InternalSolverLanguage.g:182:2: iv_ruleINTLiteral= ruleINTLiteral EOF + // InternalSolverLanguage.g:215:62: (iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF ) + // InternalSolverLanguage.g:216:2: iv_ruleAssertionOrDefinition= ruleAssertionOrDefinition EOF { - newCompositeNode(grammarAccess.getINTLiteralRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAssertionOrDefinitionRule()); + } pushFollow(FOLLOW_1); - iv_ruleINTLiteral=ruleINTLiteral(); + iv_ruleAssertionOrDefinition=ruleAssertionOrDefinition(); state._fsp--; - - current =iv_ruleINTLiteral.getText(); - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAssertionOrDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -487,191 +637,287 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleINTLiteral" + // $ANTLR end "entryRuleAssertionOrDefinition" - // $ANTLR start "ruleINTLiteral" - // InternalSolverLanguage.g:188:1: ruleINTLiteral returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ; - public final AntlrDatatypeRuleToken ruleINTLiteral() throws RecognitionException { - AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + // $ANTLR start "ruleAssertionOrDefinition" + // 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 ) ) ) ) ) ; + public final EObject ruleAssertionOrDefinition() throws RecognitionException { + EObject current = null; + + Token otherlv_2=null; + Token otherlv_5=null; + Token otherlv_8=null; + EObject this_Expression_0 = null; + + EObject lv_range_3_0 = null; + + EObject lv_body_6_0 = null; + + EObject lv_body_9_0 = null; - Token kw=null; - Token this_INT_1=null; enterRule(); try { - // InternalSolverLanguage.g:194:2: ( ( (kw= '-' )? this_INT_1= RULE_INT ) ) - // InternalSolverLanguage.g:195:2: ( (kw= '-' )? this_INT_1= RULE_INT ) + // 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 ) ) ) ) ) ) + // 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 ) ) ) ) ) { - // InternalSolverLanguage.g:195:2: ( (kw= '-' )? this_INT_1= RULE_INT ) - // InternalSolverLanguage.g:196:3: (kw= '-' )? this_INT_1= RULE_INT + // 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 ) ) ) ) ) + // 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 ) ) ) ) { - // InternalSolverLanguage.g:196:3: (kw= '-' )? - int alt4=2; - int LA4_0 = input.LA(1); + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getExpressionParserRuleCall_0()); + + } + pushFollow(FOLLOW_5); + this_Expression_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - if ( (LA4_0==11) ) { + current = this_Expression_0; + afterParserOrEnumRuleCall(); + + } + // 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 ) ) ) ) + int alt4=3; + switch ( input.LA(1) ) { + case EOF: + case RULE_DOT: + case 15: + { alt4=1; + } + break; + case 16: + { + alt4=2; + } + break; + case 17: + { + alt4=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 4, 0, input); + + throw nvae; } + switch (alt4) { case 1 : - // InternalSolverLanguage.g:197:4: kw= '-' + // InternalSolverLanguage.g:239:4: ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? ) { - kw=(Token)match(input,11,FOLLOW_4); - - current.merge(kw); - newLeafNode(kw, grammarAccess.getINTLiteralAccess().getHyphenMinusKeyword_0()); - + // InternalSolverLanguage.g:239:4: ( () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? ) + // InternalSolverLanguage.g:240:5: () (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? + { + // InternalSolverLanguage.g:240:5: () + // InternalSolverLanguage.g:241:6: + { + if ( state.backtracking==0 ) { + current = forceCreateModelElementAndSet( + grammarAccess.getAssertionOrDefinitionAccess().getAssertionBodyAction_1_0_0(), + current); + } - break; - } + } - this_INT_1=(Token)match(input,RULE_INT,FOLLOW_2); + // InternalSolverLanguage.g:247:5: (otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) )? + int alt3=2; + int LA3_0 = input.LA(1); - current.merge(this_INT_1); - + if ( (LA3_0==15) ) { + alt3=1; + } + switch (alt3) { + case 1 : + // InternalSolverLanguage.g:248:6: otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) + { + otherlv_2=(Token)match(input,15,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - newLeafNode(this_INT_1, grammarAccess.getINTLiteralAccess().getINTTerminalRuleCall_1()); - + newLeafNode(otherlv_2, grammarAccess.getAssertionOrDefinitionAccess().getColonKeyword_1_0_1_0()); + + } + // InternalSolverLanguage.g:252:6: ( (lv_range_3_0= ruleExpression ) ) + // InternalSolverLanguage.g:253:7: (lv_range_3_0= ruleExpression ) + { + // InternalSolverLanguage.g:253:7: (lv_range_3_0= ruleExpression ) + // InternalSolverLanguage.g:254:8: lv_range_3_0= ruleExpression + { + if ( state.backtracking==0 ) { - } + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getRangeExpressionParserRuleCall_1_0_1_1_0()); + + } + pushFollow(FOLLOW_2); + lv_range_3_0=ruleExpression(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); + } + set( + current, + "range", + lv_range_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } - } + } - leaveRule(); + } - } - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleINTLiteral" + } + break; + } - // $ANTLR start "entryRuleBooleanValue" - // InternalSolverLanguage.g:214:1: entryRuleBooleanValue returns [EObject current=null] : iv_ruleBooleanValue= ruleBooleanValue EOF ; - public final EObject entryRuleBooleanValue() throws RecognitionException { - EObject current = null; - EObject iv_ruleBooleanValue = null; + } - try { - // InternalSolverLanguage.g:214:53: (iv_ruleBooleanValue= ruleBooleanValue EOF ) - // InternalSolverLanguage.g:215:2: iv_ruleBooleanValue= ruleBooleanValue EOF - { - newCompositeNode(grammarAccess.getBooleanValueRule()); - pushFollow(FOLLOW_1); - iv_ruleBooleanValue=ruleBooleanValue(); + } + break; + case 2 : + // InternalSolverLanguage.g:274:4: ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) + { + // InternalSolverLanguage.g:274:4: ( () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) ) + // InternalSolverLanguage.g:275:5: () otherlv_5= ':-' ( (lv_body_6_0= ruleExpression ) ) + { + // InternalSolverLanguage.g:275:5: () + // InternalSolverLanguage.g:276:6: + { + if ( state.backtracking==0 ) { - state._fsp--; + current = forceCreateModelElementAndSet( + grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(), + current); + + } - current =iv_ruleBooleanValue; - match(input,EOF,FOLLOW_2); + } - } + otherlv_5=(Token)match(input,16,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + newLeafNode(otherlv_5, grammarAccess.getAssertionOrDefinitionAccess().getColonHyphenMinusKeyword_1_1_1()); + + } + // InternalSolverLanguage.g:286:5: ( (lv_body_6_0= ruleExpression ) ) + // InternalSolverLanguage.g:287:6: (lv_body_6_0= ruleExpression ) + { + // InternalSolverLanguage.g:287:6: (lv_body_6_0= ruleExpression ) + // InternalSolverLanguage.g:288:7: lv_body_6_0= ruleExpression + { + if ( state.backtracking==0 ) { - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleBooleanValue" + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_body_6_0=ruleExpression(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); + } + set( + current, + "body", + lv_body_6_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } - // $ANTLR start "ruleBooleanValue" - // InternalSolverLanguage.g:221:1: ruleBooleanValue returns [EObject current=null] : ( ( () otherlv_1= 'true' ) | (otherlv_2= 'false' () ) ) ; - public final EObject ruleBooleanValue() throws RecognitionException { - EObject current = null; + } - Token otherlv_1=null; - Token otherlv_2=null; + } - enterRule(); - try { - // InternalSolverLanguage.g:227:2: ( ( ( () otherlv_1= 'true' ) | (otherlv_2= 'false' () ) ) ) - // InternalSolverLanguage.g:228:2: ( ( () otherlv_1= 'true' ) | (otherlv_2= 'false' () ) ) - { - // InternalSolverLanguage.g:228:2: ( ( () otherlv_1= 'true' ) | (otherlv_2= 'false' () ) ) - int alt5=2; - int LA5_0 = input.LA(1); + } - if ( (LA5_0==13) ) { - alt5=1; - } - else if ( (LA5_0==14) ) { - alt5=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 5, 0, input); - throw nvae; - } - switch (alt5) { - case 1 : - // InternalSolverLanguage.g:229:3: ( () otherlv_1= 'true' ) + } + break; + case 3 : + // InternalSolverLanguage.g:307:4: ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) ) { - // InternalSolverLanguage.g:229:3: ( () otherlv_1= 'true' ) - // InternalSolverLanguage.g:230:4: () otherlv_1= 'true' + // InternalSolverLanguage.g:307:4: ( () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) ) + // InternalSolverLanguage.g:308:5: () otherlv_8= '=' ( (lv_body_9_0= ruleExpression ) ) { - // InternalSolverLanguage.g:230:4: () - // InternalSolverLanguage.g:231:5: + // InternalSolverLanguage.g:308:5: () + // InternalSolverLanguage.g:309:6: { + if ( state.backtracking==0 ) { - current = forceCreateModelElement( - grammarAccess.getBooleanValueAccess().getBooleanTrueAction_0_0(), - current); - - + current = forceCreateModelElementAndSet( + grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), + current); + } - otherlv_1=(Token)match(input,13,FOLLOW_2); - - newLeafNode(otherlv_1, grammarAccess.getBooleanValueAccess().getTrueKeyword_0_1()); - - } + otherlv_8=(Token)match(input,17,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_8, grammarAccess.getAssertionOrDefinitionAccess().getEqualsSignKeyword_1_2_1()); + } - break; - case 2 : - // InternalSolverLanguage.g:243:3: (otherlv_2= 'false' () ) + // InternalSolverLanguage.g:319:5: ( (lv_body_9_0= ruleExpression ) ) + // InternalSolverLanguage.g:320:6: (lv_body_9_0= ruleExpression ) { - // InternalSolverLanguage.g:243:3: (otherlv_2= 'false' () ) - // InternalSolverLanguage.g:244:4: otherlv_2= 'false' () + // InternalSolverLanguage.g:320:6: (lv_body_9_0= ruleExpression ) + // InternalSolverLanguage.g:321:7: lv_body_9_0= ruleExpression { - otherlv_2=(Token)match(input,14,FOLLOW_2); + if ( state.backtracking==0 ) { - newLeafNode(otherlv_2, grammarAccess.getBooleanValueAccess().getFalseKeyword_1_0()); - - // InternalSolverLanguage.g:248:4: () - // InternalSolverLanguage.g:249:5: - { + newCompositeNode(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0()); + + } + pushFollow(FOLLOW_2); + lv_body_9_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAssertionOrDefinitionRule()); + } + set( + current, + "body", + lv_body_9_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } + + } - current = forceCreateModelElement( - grammarAccess.getBooleanValueAccess().getBooleanFalseAction_1_1(), - current); - } @@ -688,8 +934,13 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - leaveRule(); + } + + if ( state.backtracking==0 ) { + + leaveRule(); + } } catch (RecognitionException re) { @@ -700,29 +951,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleBooleanValue" + // $ANTLR end "ruleAssertionOrDefinition" - // $ANTLR start "entryRuleTruthValue" - // InternalSolverLanguage.g:260:1: entryRuleTruthValue returns [EObject current=null] : iv_ruleTruthValue= ruleTruthValue EOF ; - public final EObject entryRuleTruthValue() throws RecognitionException { + // $ANTLR start "entryRulePredicateDefinition" + // InternalSolverLanguage.g:344:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ; + public final EObject entryRulePredicateDefinition() throws RecognitionException { EObject current = null; - EObject iv_ruleTruthValue = null; + EObject iv_rulePredicateDefinition = null; try { - // InternalSolverLanguage.g:260:51: (iv_ruleTruthValue= ruleTruthValue EOF ) - // InternalSolverLanguage.g:261:2: iv_ruleTruthValue= ruleTruthValue EOF + // InternalSolverLanguage.g:344:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF ) + // InternalSolverLanguage.g:345:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF { - newCompositeNode(grammarAccess.getTruthValueRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getPredicateDefinitionRule()); + } pushFollow(FOLLOW_1); - iv_ruleTruthValue=ruleTruthValue(); + iv_rulePredicateDefinition=rulePredicateDefinition(); state._fsp--; - - current =iv_ruleTruthValue; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_rulePredicateDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -736,159 +991,196 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleTruthValue" + // $ANTLR end "entryRulePredicateDefinition" - // $ANTLR start "ruleTruthValue" - // InternalSolverLanguage.g:267:1: ruleTruthValue returns [EObject current=null] : ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) | ( () otherlv_5= 'unknown' ) | ( () otherlv_7= 'error' ) ) ; - public final EObject ruleTruthValue() throws RecognitionException { + // $ANTLR start "rulePredicateDefinition" + // 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 ) ) ) ; + public final EObject rulePredicateDefinition() throws RecognitionException { EObject current = null; - Token otherlv_1=null; - Token otherlv_3=null; + Token lv_functional_0_0=null; + Token lv_error_1_0=null; + Token lv_error_2_0=null; + Token lv_functional_3_0=null; Token otherlv_5=null; - Token otherlv_7=null; + EObject lv_head_4_0 = null; + + EObject lv_body_6_0 = null; + enterRule(); try { - // InternalSolverLanguage.g:273:2: ( ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) | ( () otherlv_5= 'unknown' ) | ( () otherlv_7= 'error' ) ) ) - // InternalSolverLanguage.g:274:2: ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) | ( () otherlv_5= 'unknown' ) | ( () otherlv_7= 'error' ) ) + // 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 ) ) ) ) + // 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 ) ) ) { - // InternalSolverLanguage.g:274:2: ( ( () otherlv_1= 'true' ) | ( () otherlv_3= 'false' ) | ( () otherlv_5= 'unknown' ) | ( () otherlv_7= 'error' ) ) - int alt6=4; - switch ( input.LA(1) ) { - case 13: - { - alt6=1; - } - break; - case 14: - { - alt6=2; - } - break; - case 15: - { - alt6=3; - } - break; - case 16: - { - alt6=4; - } - break; - default: + // 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 ) ) ) + // 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 ) ) + { + // InternalSolverLanguage.g:359:3: ( ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? ) | ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? ) ) + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0==18) ) { + alt7=1; + } + else if ( (LA7_0==19) ) { + alt7=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 6, 0, input); + new NoViableAltException("", 7, 0, input); throw nvae; } - - switch (alt6) { + switch (alt7) { case 1 : - // InternalSolverLanguage.g:275:3: ( () otherlv_1= 'true' ) + // InternalSolverLanguage.g:360:4: ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? ) + { + // InternalSolverLanguage.g:360:4: ( ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? ) + // InternalSolverLanguage.g:361:5: ( (lv_functional_0_0= 'functional' ) ) ( (lv_error_1_0= 'error' ) )? { - // InternalSolverLanguage.g:275:3: ( () otherlv_1= 'true' ) - // InternalSolverLanguage.g:276:4: () otherlv_1= 'true' + // InternalSolverLanguage.g:361:5: ( (lv_functional_0_0= 'functional' ) ) + // InternalSolverLanguage.g:362:6: (lv_functional_0_0= 'functional' ) { - // InternalSolverLanguage.g:276:4: () - // InternalSolverLanguage.g:277:5: + // InternalSolverLanguage.g:362:6: (lv_functional_0_0= 'functional' ) + // InternalSolverLanguage.g:363:7: lv_functional_0_0= 'functional' { + lv_functional_0_0=(Token)match(input,18,FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { - current = forceCreateModelElement( - grammarAccess.getTruthValueAccess().getTrueAction_0_0(), - current); - + newLeafNode(lv_functional_0_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_0_0_0()); + + } + if ( state.backtracking==0 ) { + if (current==null) { + current = createModelElement(grammarAccess.getPredicateDefinitionRule()); + } + setWithLastConsumed(current, "functional", true, "functional"); + } - otherlv_1=(Token)match(input,13,FOLLOW_2); + } - newLeafNode(otherlv_1, grammarAccess.getTruthValueAccess().getTrueKeyword_0_1()); - } + // InternalSolverLanguage.g:375:5: ( (lv_error_1_0= 'error' ) )? + int alt5=2; + int LA5_0 = input.LA(1); + if ( (LA5_0==19) ) { + alt5=1; } - break; - case 2 : - // InternalSolverLanguage.g:289:3: ( () otherlv_3= 'false' ) - { - // InternalSolverLanguage.g:289:3: ( () otherlv_3= 'false' ) - // InternalSolverLanguage.g:290:4: () otherlv_3= 'false' - { - // InternalSolverLanguage.g:290:4: () - // InternalSolverLanguage.g:291:5: - { + switch (alt5) { + case 1 : + // InternalSolverLanguage.g:376:6: (lv_error_1_0= 'error' ) + { + // InternalSolverLanguage.g:376:6: (lv_error_1_0= 'error' ) + // InternalSolverLanguage.g:377:7: lv_error_1_0= 'error' + { + lv_error_1_0=(Token)match(input,19,FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { - current = forceCreateModelElement( - grammarAccess.getTruthValueAccess().getFalseAction_1_0(), - current); - + newLeafNode(lv_error_1_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_1_0()); + + } + if ( state.backtracking==0 ) { - } + if (current==null) { + current = createModelElement(grammarAccess.getPredicateDefinitionRule()); + } + setWithLastConsumed(current, "error", true, "error"); + + } + + } + + + } + break; - otherlv_3=(Token)match(input,14,FOLLOW_2); + } - newLeafNode(otherlv_3, grammarAccess.getTruthValueAccess().getFalseKeyword_1_1()); - } } break; - case 3 : - // InternalSolverLanguage.g:303:3: ( () otherlv_5= 'unknown' ) + case 2 : + // InternalSolverLanguage.g:391:4: ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? ) { - // InternalSolverLanguage.g:303:3: ( () otherlv_5= 'unknown' ) - // InternalSolverLanguage.g:304:4: () otherlv_5= 'unknown' + // InternalSolverLanguage.g:391:4: ( ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? ) + // InternalSolverLanguage.g:392:5: ( (lv_error_2_0= 'error' ) ) ( (lv_functional_3_0= 'functional' ) )? { - // InternalSolverLanguage.g:304:4: () - // InternalSolverLanguage.g:305:5: + // InternalSolverLanguage.g:392:5: ( (lv_error_2_0= 'error' ) ) + // InternalSolverLanguage.g:393:6: (lv_error_2_0= 'error' ) { + // InternalSolverLanguage.g:393:6: (lv_error_2_0= 'error' ) + // InternalSolverLanguage.g:394:7: lv_error_2_0= 'error' + { + lv_error_2_0=(Token)match(input,19,FOLLOW_8); if (state.failed) return current; + if ( state.backtracking==0 ) { - current = forceCreateModelElement( - grammarAccess.getTruthValueAccess().getUnknownAction_2_0(), - current); - + newLeafNode(lv_error_2_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_1_0_0()); + + } + if ( state.backtracking==0 ) { + if (current==null) { + current = createModelElement(grammarAccess.getPredicateDefinitionRule()); + } + setWithLastConsumed(current, "error", true, "error"); + } - otherlv_5=(Token)match(input,15,FOLLOW_2); + } - newLeafNode(otherlv_5, grammarAccess.getTruthValueAccess().getUnknownKeyword_2_1()); - } + // InternalSolverLanguage.g:406:5: ( (lv_functional_3_0= 'functional' ) )? + int alt6=2; + int LA6_0 = input.LA(1); + if ( (LA6_0==18) ) { + alt6=1; } - break; - case 4 : - // InternalSolverLanguage.g:317:3: ( () otherlv_7= 'error' ) - { - // InternalSolverLanguage.g:317:3: ( () otherlv_7= 'error' ) - // InternalSolverLanguage.g:318:4: () otherlv_7= 'error' - { - // InternalSolverLanguage.g:318:4: () - // InternalSolverLanguage.g:319:5: - { + switch (alt6) { + case 1 : + // InternalSolverLanguage.g:407:6: (lv_functional_3_0= 'functional' ) + { + // InternalSolverLanguage.g:407:6: (lv_functional_3_0= 'functional' ) + // InternalSolverLanguage.g:408:7: lv_functional_3_0= 'functional' + { + lv_functional_3_0=(Token)match(input,18,FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_functional_3_0, grammarAccess.getPredicateDefinitionAccess().getFunctionalFunctionalKeyword_0_1_1_0()); + + } + if ( state.backtracking==0 ) { - current = forceCreateModelElement( - grammarAccess.getTruthValueAccess().getErrorAction_3_0(), - current); - + if (current==null) { + current = createModelElement(grammarAccess.getPredicateDefinitionRule()); + } + setWithLastConsumed(current, "functional", true, "functional"); + + } - } + } - otherlv_7=(Token)match(input,16,FOLLOW_2); - newLeafNode(otherlv_7, grammarAccess.getTruthValueAccess().getErrorKeyword_3_1()); - + } + break; + + } + } @@ -898,12 +1190,93 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + // InternalSolverLanguage.g:422:3: ( (lv_head_4_0= ruleCall ) ) + // InternalSolverLanguage.g:423:4: (lv_head_4_0= ruleCall ) + { + // InternalSolverLanguage.g:423:4: (lv_head_4_0= ruleCall ) + // InternalSolverLanguage.g:424:5: lv_head_4_0= ruleCall + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_9); + lv_head_4_0=ruleCall(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule()); + } + set( + current, + "head", + lv_head_4_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_5=(Token)match(input,16,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_2()); + + } + // InternalSolverLanguage.g:445:3: ( (lv_body_6_0= ruleExpression ) ) + // InternalSolverLanguage.g:446:4: (lv_body_6_0= ruleExpression ) + { + // InternalSolverLanguage.g:446:4: (lv_body_6_0= ruleExpression ) + // InternalSolverLanguage.g:447:5: lv_body_6_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_2); + lv_body_6_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule()); + } + set( + current, + "body", + lv_body_6_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + } - leaveRule(); + } + + if ( state.backtracking==0 ) { + leaveRule(); + + } } catch (RecognitionException re) { @@ -914,29 +1287,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleTruthValue" + // $ANTLR end "rulePredicateDefinition" - // $ANTLR start "entryRuleInterpretation" - // InternalSolverLanguage.g:334:1: entryRuleInterpretation returns [EObject current=null] : iv_ruleInterpretation= ruleInterpretation EOF ; - public final EObject entryRuleInterpretation() throws RecognitionException { + // $ANTLR start "entryRuleUnnamedErrorPrediateDefinition" + // InternalSolverLanguage.g:468:1: entryRuleUnnamedErrorPrediateDefinition returns [EObject current=null] : iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF ; + public final EObject entryRuleUnnamedErrorPrediateDefinition() throws RecognitionException { EObject current = null; - EObject iv_ruleInterpretation = null; + EObject iv_ruleUnnamedErrorPrediateDefinition = null; try { - // InternalSolverLanguage.g:334:55: (iv_ruleInterpretation= ruleInterpretation EOF ) - // InternalSolverLanguage.g:335:2: iv_ruleInterpretation= ruleInterpretation EOF + // InternalSolverLanguage.g:468:71: (iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF ) + // InternalSolverLanguage.g:469:2: iv_ruleUnnamedErrorPrediateDefinition= ruleUnnamedErrorPrediateDefinition EOF { - newCompositeNode(grammarAccess.getInterpretationRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); + } pushFollow(FOLLOW_1); - iv_ruleInterpretation=ruleInterpretation(); + iv_ruleUnnamedErrorPrediateDefinition=ruleUnnamedErrorPrediateDefinition(); state._fsp--; - - current =iv_ruleInterpretation; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleUnnamedErrorPrediateDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -950,127 +1327,124 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleInterpretation" + // $ANTLR end "entryRuleUnnamedErrorPrediateDefinition" - // $ANTLR start "ruleInterpretation" - // InternalSolverLanguage.g:341:1: ruleInterpretation returns [EObject current=null] : (this_BasicInterpretation_0= ruleBasicInterpretation | this_DefaultInterpretation_1= ruleDefaultInterpretation | this_CDInterpretation_2= ruleCDInterpretation ) ; - public final EObject ruleInterpretation() throws RecognitionException { + // $ANTLR start "ruleUnnamedErrorPrediateDefinition" + // InternalSolverLanguage.g:475:1: ruleUnnamedErrorPrediateDefinition returns [EObject current=null] : (otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) ) ) ; + public final EObject ruleUnnamedErrorPrediateDefinition() throws RecognitionException { EObject current = null; - EObject this_BasicInterpretation_0 = null; - - EObject this_DefaultInterpretation_1 = null; + Token otherlv_0=null; + Token otherlv_2=null; + EObject lv_argumentList_1_0 = null; - EObject this_CDInterpretation_2 = null; + EObject lv_body_3_0 = null; enterRule(); try { - // InternalSolverLanguage.g:347:2: ( (this_BasicInterpretation_0= ruleBasicInterpretation | this_DefaultInterpretation_1= ruleDefaultInterpretation | this_CDInterpretation_2= ruleCDInterpretation ) ) - // InternalSolverLanguage.g:348:2: (this_BasicInterpretation_0= ruleBasicInterpretation | this_DefaultInterpretation_1= ruleDefaultInterpretation | this_CDInterpretation_2= ruleCDInterpretation ) + // InternalSolverLanguage.g:481:2: ( (otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) ) ) ) + // InternalSolverLanguage.g:482:2: (otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) ) ) { - // InternalSolverLanguage.g:348:2: (this_BasicInterpretation_0= ruleBasicInterpretation | this_DefaultInterpretation_1= ruleDefaultInterpretation | this_CDInterpretation_2= ruleCDInterpretation ) - int alt7=3; - switch ( input.LA(1) ) { - case RULE_ID: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - { - alt7=1; - } - break; - case 32: - { - alt7=2; - } - break; - case 33: - case 34: - case 38: - case 39: - case 40: - { - alt7=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 7, 0, input); + // InternalSolverLanguage.g:482:2: (otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) ) ) + // InternalSolverLanguage.g:483:3: otherlv_0= 'error' ( (lv_argumentList_1_0= ruleArgumentList ) ) otherlv_2= ':-' ( (lv_body_3_0= ruleExpression ) ) + { + otherlv_0=(Token)match(input,19,FOLLOW_10); if (state.failed) return current; + if ( state.backtracking==0 ) { - throw nvae; + newLeafNode(otherlv_0, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getErrorKeyword_0()); + } + // InternalSolverLanguage.g:487:3: ( (lv_argumentList_1_0= ruleArgumentList ) ) + // InternalSolverLanguage.g:488:4: (lv_argumentList_1_0= ruleArgumentList ) + { + // InternalSolverLanguage.g:488:4: (lv_argumentList_1_0= ruleArgumentList ) + // InternalSolverLanguage.g:489:5: lv_argumentList_1_0= ruleArgumentList + { + if ( state.backtracking==0 ) { - switch (alt7) { - case 1 : - // InternalSolverLanguage.g:349:3: this_BasicInterpretation_0= ruleBasicInterpretation - { - - newCompositeNode(grammarAccess.getInterpretationAccess().getBasicInterpretationParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_BasicInterpretation_0=ruleBasicInterpretation(); + newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_9); + lv_argumentList_1_0=ruleArgumentList(); - state._fsp--; + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); + } + set( + current, + "argumentList", + lv_argumentList_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); + afterParserOrEnumRuleCall(); + + } - current = this_BasicInterpretation_0; - afterParserOrEnumRuleCall(); - + } - } - break; - case 2 : - // InternalSolverLanguage.g:358:3: this_DefaultInterpretation_1= ruleDefaultInterpretation - { - newCompositeNode(grammarAccess.getInterpretationAccess().getDefaultInterpretationParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_DefaultInterpretation_1=ruleDefaultInterpretation(); + } - state._fsp--; + otherlv_2=(Token)match(input,16,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_2, grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getColonHyphenMinusKeyword_2()); + + } + // InternalSolverLanguage.g:510:3: ( (lv_body_3_0= ruleExpression ) ) + // InternalSolverLanguage.g:511:4: (lv_body_3_0= ruleExpression ) + { + // InternalSolverLanguage.g:511:4: (lv_body_3_0= ruleExpression ) + // InternalSolverLanguage.g:512:5: lv_body_3_0= ruleExpression + { + if ( state.backtracking==0 ) { - current = this_DefaultInterpretation_1; - afterParserOrEnumRuleCall(); - + newCompositeNode(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_2); + lv_body_3_0=ruleExpression(); - } - break; - case 3 : - // InternalSolverLanguage.g:367:3: this_CDInterpretation_2= ruleCDInterpretation - { + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getInterpretationAccess().getCDInterpretationParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_CDInterpretation_2=ruleCDInterpretation(); + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnnamedErrorPrediateDefinitionRule()); + } + set( + current, + "body", + lv_body_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } - state._fsp--; + } - current = this_CDInterpretation_2; - afterParserOrEnumRuleCall(); - + } - } - break; } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -1081,29 +1455,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleInterpretation" + // $ANTLR end "ruleUnnamedErrorPrediateDefinition" - // $ANTLR start "entryRuleBasicInterpretation" - // InternalSolverLanguage.g:379:1: entryRuleBasicInterpretation returns [EObject current=null] : iv_ruleBasicInterpretation= ruleBasicInterpretation EOF ; - public final EObject entryRuleBasicInterpretation() throws RecognitionException { + // $ANTLR start "entryRuleDefaultDefinition" + // InternalSolverLanguage.g:533:1: entryRuleDefaultDefinition returns [EObject current=null] : iv_ruleDefaultDefinition= ruleDefaultDefinition EOF ; + public final EObject entryRuleDefaultDefinition() throws RecognitionException { EObject current = null; - EObject iv_ruleBasicInterpretation = null; + EObject iv_ruleDefaultDefinition = null; try { - // InternalSolverLanguage.g:379:60: (iv_ruleBasicInterpretation= ruleBasicInterpretation EOF ) - // InternalSolverLanguage.g:380:2: iv_ruleBasicInterpretation= ruleBasicInterpretation EOF + // InternalSolverLanguage.g:533:58: (iv_ruleDefaultDefinition= ruleDefaultDefinition EOF ) + // InternalSolverLanguage.g:534:2: iv_ruleDefaultDefinition= ruleDefaultDefinition EOF { - newCompositeNode(grammarAccess.getBasicInterpretationRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getDefaultDefinitionRule()); + } pushFollow(FOLLOW_1); - iv_ruleBasicInterpretation=ruleBasicInterpretation(); + iv_ruleDefaultDefinition=ruleDefaultDefinition(); state._fsp--; - - current =iv_ruleBasicInterpretation; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleDefaultDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -1117,244 +1495,255 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleBasicInterpretation" + // $ANTLR end "entryRuleDefaultDefinition" - // $ANTLR start "ruleBasicInterpretation" - // 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 ) ) ) ; - public final EObject ruleBasicInterpretation() throws RecognitionException { + // $ANTLR start "ruleDefaultDefinition" + // InternalSolverLanguage.g:540:1: ruleDefaultDefinition returns [EObject current=null] : (otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) ) ; + public final EObject ruleDefaultDefinition() throws RecognitionException { EObject current = null; - Token otherlv_1=null; - Token otherlv_3=null; - Token otherlv_5=null; - Token otherlv_6=null; - EObject lv_symbol_0_0 = null; - - EObject lv_objects_2_0 = null; - - EObject lv_objects_4_0 = null; + Token otherlv_0=null; + Token otherlv_2=null; + EObject lv_head_1_0 = null; - EObject lv_value_7_0 = null; + EObject lv_range_3_0 = null; enterRule(); try { - // 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 ) ) ) ) - // 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 ) ) ) + // InternalSolverLanguage.g:546:2: ( (otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) ) ) + // InternalSolverLanguage.g:547:2: (otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) ) { - // 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 ) ) ) - // 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 ) ) + // InternalSolverLanguage.g:547:2: (otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) ) + // InternalSolverLanguage.g:548:3: otherlv_0= 'default' ( (lv_head_1_0= ruleCall ) ) otherlv_2= ':' ( (lv_range_3_0= ruleExpression ) ) { - // InternalSolverLanguage.g:394:3: ( (lv_symbol_0_0= ruleSymbol ) ) - // InternalSolverLanguage.g:395:4: (lv_symbol_0_0= ruleSymbol ) + otherlv_0=(Token)match(input,20,FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getDefaultDefinitionAccess().getDefaultKeyword_0()); + + } + // InternalSolverLanguage.g:552:3: ( (lv_head_1_0= ruleCall ) ) + // InternalSolverLanguage.g:553:4: (lv_head_1_0= ruleCall ) { - // InternalSolverLanguage.g:395:4: (lv_symbol_0_0= ruleSymbol ) - // InternalSolverLanguage.g:396:5: lv_symbol_0_0= ruleSymbol + // InternalSolverLanguage.g:553:4: (lv_head_1_0= ruleCall ) + // InternalSolverLanguage.g:554:5: lv_head_1_0= ruleCall { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getBasicInterpretationAccess().getSymbolSymbolParserRuleCall_0_0()); - - pushFollow(FOLLOW_6); - lv_symbol_0_0=ruleSymbol(); + newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_11); + lv_head_1_0=ruleCall(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - if (current==null) { - current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); - } - set( - current, - "symbol", - lv_symbol_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); - afterParserOrEnumRuleCall(); - + if (current==null) { + current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); + } + set( + current, + "head", + lv_head_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + afterParserOrEnumRuleCall(); + + } } } - // InternalSolverLanguage.g:413:3: (otherlv_1= '(' ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? otherlv_5= ')' )? - int alt10=2; - int LA10_0 = input.LA(1); + otherlv_2=(Token)match(input,15,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - if ( (LA10_0==17) ) { - alt10=1; + newLeafNode(otherlv_2, grammarAccess.getDefaultDefinitionAccess().getColonKeyword_2()); + } - switch (alt10) { - case 1 : - // InternalSolverLanguage.g:414:4: otherlv_1= '(' ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? otherlv_5= ')' - { - otherlv_1=(Token)match(input,17,FOLLOW_7); + // InternalSolverLanguage.g:575:3: ( (lv_range_3_0= ruleExpression ) ) + // InternalSolverLanguage.g:576:4: (lv_range_3_0= ruleExpression ) + { + // InternalSolverLanguage.g:576:4: (lv_range_3_0= ruleExpression ) + // InternalSolverLanguage.g:577:5: lv_range_3_0= ruleExpression + { + if ( state.backtracking==0 ) { - newLeafNode(otherlv_1, grammarAccess.getBasicInterpretationAccess().getLeftParenthesisKeyword_1_0()); - - // InternalSolverLanguage.g:418:4: ( ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* )? - int alt9=2; - int LA9_0 = input.LA(1); + newCompositeNode(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_2); + lv_range_3_0=ruleExpression(); - 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) ) { - alt9=1; - } - switch (alt9) { - case 1 : - // InternalSolverLanguage.g:419:5: ( (lv_objects_2_0= ruleComplexObject ) ) (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* - { - // InternalSolverLanguage.g:419:5: ( (lv_objects_2_0= ruleComplexObject ) ) - // InternalSolverLanguage.g:420:6: (lv_objects_2_0= ruleComplexObject ) - { - // InternalSolverLanguage.g:420:6: (lv_objects_2_0= ruleComplexObject ) - // InternalSolverLanguage.g:421:7: lv_objects_2_0= ruleComplexObject - { + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getBasicInterpretationAccess().getObjectsComplexObjectParserRuleCall_1_1_0_0()); - - pushFollow(FOLLOW_8); - lv_objects_2_0=ruleComplexObject(); + if (current==null) { + current = createModelElementForParent(grammarAccess.getDefaultDefinitionRule()); + } + set( + current, + "range", + lv_range_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } - state._fsp--; + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); - } - add( - current, - "objects", - lv_objects_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject"); - afterParserOrEnumRuleCall(); - + } - } + } - } - // InternalSolverLanguage.g:438:5: (otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) )* - loop8: - do { - int alt8=2; - int LA8_0 = input.LA(1); + } - if ( (LA8_0==18) ) { - alt8=1; - } + if ( state.backtracking==0 ) { + leaveRule(); - switch (alt8) { - case 1 : - // InternalSolverLanguage.g:439:6: otherlv_3= ',' ( (lv_objects_4_0= ruleComplexObject ) ) - { - otherlv_3=(Token)match(input,18,FOLLOW_9); + } + } - newLeafNode(otherlv_3, grammarAccess.getBasicInterpretationAccess().getCommaKeyword_1_1_1_0()); - - // InternalSolverLanguage.g:443:6: ( (lv_objects_4_0= ruleComplexObject ) ) - // InternalSolverLanguage.g:444:7: (lv_objects_4_0= ruleComplexObject ) - { - // InternalSolverLanguage.g:444:7: (lv_objects_4_0= ruleComplexObject ) - // InternalSolverLanguage.g:445:8: lv_objects_4_0= ruleComplexObject - { + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleDefaultDefinition" - newCompositeNode(grammarAccess.getBasicInterpretationAccess().getObjectsComplexObjectParserRuleCall_1_1_1_1_0()); - - pushFollow(FOLLOW_8); - lv_objects_4_0=ruleComplexObject(); - state._fsp--; + // $ANTLR start "entryRuleExternPredicateDefinition" + // InternalSolverLanguage.g:598:1: entryRuleExternPredicateDefinition returns [EObject current=null] : iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF ; + public final EObject entryRuleExternPredicateDefinition() throws RecognitionException { + EObject current = null; + EObject iv_ruleExternPredicateDefinition = null; - if (current==null) { - current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); - } - add( - current, - "objects", - lv_objects_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject"); - afterParserOrEnumRuleCall(); - - } + try { + // InternalSolverLanguage.g:598:66: (iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF ) + // InternalSolverLanguage.g:599:2: iv_ruleExternPredicateDefinition= ruleExternPredicateDefinition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExternPredicateDefinitionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleExternPredicateDefinition=ruleExternPredicateDefinition(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleExternPredicateDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; - } + } + } - } - break; + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleExternPredicateDefinition" - default : - break loop8; - } - } while (true); + // $ANTLR start "ruleExternPredicateDefinition" + // InternalSolverLanguage.g:605:1: ruleExternPredicateDefinition returns [EObject current=null] : (otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.' ) ; + public final EObject ruleExternPredicateDefinition() throws RecognitionException { + EObject current = null; - } - break; + Token otherlv_0=null; + Token otherlv_2=null; + EObject lv_head_1_0 = null; - } - otherlv_5=(Token)match(input,19,FOLLOW_10); - newLeafNode(otherlv_5, grammarAccess.getBasicInterpretationAccess().getRightParenthesisKeyword_1_2()); - + enterRule(); - } - break; + try { + // InternalSolverLanguage.g:611:2: ( (otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.' ) ) + // InternalSolverLanguage.g:612:2: (otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.' ) + { + // InternalSolverLanguage.g:612:2: (otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.' ) + // InternalSolverLanguage.g:613:3: otherlv_0= 'extern' ( (lv_head_1_0= ruleCall ) ) otherlv_2= '.' + { + otherlv_0=(Token)match(input,21,FOLLOW_7); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_0, grammarAccess.getExternPredicateDefinitionAccess().getExternKeyword_0()); + } - - otherlv_6=(Token)match(input,20,FOLLOW_11); - - newLeafNode(otherlv_6, grammarAccess.getBasicInterpretationAccess().getColonKeyword_2()); - - // InternalSolverLanguage.g:473:3: ( (lv_value_7_0= ruleTruthValue ) ) - // InternalSolverLanguage.g:474:4: (lv_value_7_0= ruleTruthValue ) + // InternalSolverLanguage.g:617:3: ( (lv_head_1_0= ruleCall ) ) + // InternalSolverLanguage.g:618:4: (lv_head_1_0= ruleCall ) { - // InternalSolverLanguage.g:474:4: (lv_value_7_0= ruleTruthValue ) - // InternalSolverLanguage.g:475:5: lv_value_7_0= ruleTruthValue + // InternalSolverLanguage.g:618:4: (lv_head_1_0= ruleCall ) + // InternalSolverLanguage.g:619:5: lv_head_1_0= ruleCall { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getBasicInterpretationAccess().getValueTruthValueParserRuleCall_3_0()); - - pushFollow(FOLLOW_2); - lv_value_7_0=ruleTruthValue(); + newCompositeNode(grammarAccess.getExternPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_12); + lv_head_1_0=ruleCall(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - if (current==null) { - current = createModelElementForParent(grammarAccess.getBasicInterpretationRule()); - } - set( - current, - "value", - lv_value_7_0, - "org.eclipse.viatra.solver.language.SolverLanguage.TruthValue"); - afterParserOrEnumRuleCall(); - + if (current==null) { + current = createModelElementForParent(grammarAccess.getExternPredicateDefinitionRule()); + } + set( + current, + "head", + lv_head_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + afterParserOrEnumRuleCall(); + + } } } + otherlv_2=(Token)match(input,22,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getExternPredicateDefinitionAccess().getFullStopKeyword_2()); + + } } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -1365,29 +1754,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleBasicInterpretation" + // $ANTLR end "ruleExternPredicateDefinition" - // $ANTLR start "entryRuleSymbol" - // InternalSolverLanguage.g:496:1: entryRuleSymbol returns [EObject current=null] : iv_ruleSymbol= ruleSymbol EOF ; - public final EObject entryRuleSymbol() throws RecognitionException { + // $ANTLR start "entryRuleMetricDefinition" + // InternalSolverLanguage.g:644:1: entryRuleMetricDefinition returns [EObject current=null] : iv_ruleMetricDefinition= ruleMetricDefinition EOF ; + public final EObject entryRuleMetricDefinition() throws RecognitionException { EObject current = null; - EObject iv_ruleSymbol = null; + EObject iv_ruleMetricDefinition = null; try { - // InternalSolverLanguage.g:496:47: (iv_ruleSymbol= ruleSymbol EOF ) - // InternalSolverLanguage.g:497:2: iv_ruleSymbol= ruleSymbol EOF + // InternalSolverLanguage.g:644:57: (iv_ruleMetricDefinition= ruleMetricDefinition EOF ) + // InternalSolverLanguage.g:645:2: iv_ruleMetricDefinition= ruleMetricDefinition EOF { - newCompositeNode(grammarAccess.getSymbolRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getMetricDefinitionRule()); + } pushFollow(FOLLOW_1); - iv_ruleSymbol=ruleSymbol(); + iv_ruleMetricDefinition=ruleMetricDefinition(); state._fsp--; - - current =iv_ruleSymbol; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleMetricDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -1401,121 +1794,154 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleSymbol" + // $ANTLR end "entryRuleMetricDefinition" - // $ANTLR start "ruleSymbol" - // InternalSolverLanguage.g:503:1: ruleSymbol returns [EObject current=null] : (this_ModelSymbol_0= ruleModelSymbol | this_PartialitySymbol_1= rulePartialitySymbol | this_DataSymbol_2= ruleDataSymbol ) ; - public final EObject ruleSymbol() throws RecognitionException { + // $ANTLR start "ruleMetricDefinition" + // 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 ) ) ) ; + public final EObject ruleMetricDefinition() throws RecognitionException { EObject current = null; - EObject this_ModelSymbol_0 = null; + Token otherlv_2=null; + Enumerator lv_type_0_0 = null; - EObject this_PartialitySymbol_1 = null; + EObject lv_head_1_0 = null; - EObject this_DataSymbol_2 = null; + EObject lv_body_3_0 = null; enterRule(); try { - // InternalSolverLanguage.g:509:2: ( (this_ModelSymbol_0= ruleModelSymbol | this_PartialitySymbol_1= rulePartialitySymbol | this_DataSymbol_2= ruleDataSymbol ) ) - // InternalSolverLanguage.g:510:2: (this_ModelSymbol_0= ruleModelSymbol | this_PartialitySymbol_1= rulePartialitySymbol | this_DataSymbol_2= ruleDataSymbol ) + // InternalSolverLanguage.g:657:2: ( ( ( (lv_type_0_0= ruleMetricType ) ) ( (lv_head_1_0= ruleExpression ) ) otherlv_2= '=' ( (lv_body_3_0= ruleExpression ) ) ) ) + // InternalSolverLanguage.g:658:2: ( ( (lv_type_0_0= ruleMetricType ) ) ( (lv_head_1_0= ruleExpression ) ) otherlv_2= '=' ( (lv_body_3_0= ruleExpression ) ) ) { - // InternalSolverLanguage.g:510:2: (this_ModelSymbol_0= ruleModelSymbol | this_PartialitySymbol_1= rulePartialitySymbol | this_DataSymbol_2= ruleDataSymbol ) - int alt11=3; - switch ( input.LA(1) ) { - case RULE_ID: - { - alt11=1; - } - break; - case 21: - case 22: - { - alt11=2; - } - break; - case 23: - case 24: - case 25: - case 26: - { - alt11=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 11, 0, input); + // InternalSolverLanguage.g:658:2: ( ( (lv_type_0_0= ruleMetricType ) ) ( (lv_head_1_0= ruleExpression ) ) otherlv_2= '=' ( (lv_body_3_0= ruleExpression ) ) ) + // InternalSolverLanguage.g:659:3: ( (lv_type_0_0= ruleMetricType ) ) ( (lv_head_1_0= ruleExpression ) ) otherlv_2= '=' ( (lv_body_3_0= ruleExpression ) ) + { + // InternalSolverLanguage.g:659:3: ( (lv_type_0_0= ruleMetricType ) ) + // InternalSolverLanguage.g:660:4: (lv_type_0_0= ruleMetricType ) + { + // InternalSolverLanguage.g:660:4: (lv_type_0_0= ruleMetricType ) + // InternalSolverLanguage.g:661:5: lv_type_0_0= ruleMetricType + { + if ( state.backtracking==0 ) { - throw nvae; + newCompositeNode(grammarAccess.getMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_0_0()); + } + pushFollow(FOLLOW_6); + lv_type_0_0=ruleMetricType(); - switch (alt11) { - case 1 : - // InternalSolverLanguage.g:511:3: this_ModelSymbol_0= ruleModelSymbol - { + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getSymbolAccess().getModelSymbolParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_ModelSymbol_0=ruleModelSymbol(); + if (current==null) { + current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); + } + set( + current, + "type", + lv_type_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MetricType"); + afterParserOrEnumRuleCall(); + + } - state._fsp--; + } - current = this_ModelSymbol_0; - afterParserOrEnumRuleCall(); - + } - } - break; - case 2 : - // InternalSolverLanguage.g:520:3: this_PartialitySymbol_1= rulePartialitySymbol - { + // InternalSolverLanguage.g:678:3: ( (lv_head_1_0= ruleExpression ) ) + // InternalSolverLanguage.g:679:4: (lv_head_1_0= ruleExpression ) + { + // InternalSolverLanguage.g:679:4: (lv_head_1_0= ruleExpression ) + // InternalSolverLanguage.g:680:5: lv_head_1_0= ruleExpression + { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getSymbolAccess().getPartialitySymbolParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_PartialitySymbol_1=rulePartialitySymbol(); + newCompositeNode(grammarAccess.getMetricDefinitionAccess().getHeadExpressionParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_13); + lv_head_1_0=ruleExpression(); - state._fsp--; + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + if (current==null) { + current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); + } + set( + current, + "head", + lv_head_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } - current = this_PartialitySymbol_1; - afterParserOrEnumRuleCall(); - + } - } - break; - case 3 : - // InternalSolverLanguage.g:529:3: this_DataSymbol_2= ruleDataSymbol - { - newCompositeNode(grammarAccess.getSymbolAccess().getDataSymbolParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_DataSymbol_2=ruleDataSymbol(); + } - state._fsp--; + otherlv_2=(Token)match(input,17,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_2, grammarAccess.getMetricDefinitionAccess().getEqualsSignKeyword_2()); + + } + // InternalSolverLanguage.g:701:3: ( (lv_body_3_0= ruleExpression ) ) + // InternalSolverLanguage.g:702:4: (lv_body_3_0= ruleExpression ) + { + // InternalSolverLanguage.g:702:4: (lv_body_3_0= ruleExpression ) + // InternalSolverLanguage.g:703:5: lv_body_3_0= ruleExpression + { + if ( state.backtracking==0 ) { - current = this_DataSymbol_2; - afterParserOrEnumRuleCall(); - + newCompositeNode(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_2); + lv_body_3_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getMetricDefinitionRule()); + } + set( + current, + "body", + lv_body_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } - } - break; } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -1526,29 +1952,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleSymbol" + // $ANTLR end "ruleMetricDefinition" - // $ANTLR start "entryRuleModelSymbol" - // InternalSolverLanguage.g:541:1: entryRuleModelSymbol returns [EObject current=null] : iv_ruleModelSymbol= ruleModelSymbol EOF ; - public final EObject entryRuleModelSymbol() throws RecognitionException { + // $ANTLR start "entryRuleExternMetricDefinition" + // InternalSolverLanguage.g:724:1: entryRuleExternMetricDefinition returns [EObject current=null] : iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF ; + public final EObject entryRuleExternMetricDefinition() throws RecognitionException { EObject current = null; - EObject iv_ruleModelSymbol = null; + EObject iv_ruleExternMetricDefinition = null; try { - // InternalSolverLanguage.g:541:52: (iv_ruleModelSymbol= ruleModelSymbol EOF ) - // InternalSolverLanguage.g:542:2: iv_ruleModelSymbol= ruleModelSymbol EOF + // InternalSolverLanguage.g:724:63: (iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF ) + // InternalSolverLanguage.g:725:2: iv_ruleExternMetricDefinition= ruleExternMetricDefinition EOF { - newCompositeNode(grammarAccess.getModelSymbolRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExternMetricDefinitionRule()); + } pushFollow(FOLLOW_1); - iv_ruleModelSymbol=ruleModelSymbol(); + iv_ruleExternMetricDefinition=ruleExternMetricDefinition(); state._fsp--; - - current =iv_ruleModelSymbol; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleExternMetricDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -1562,43 +1992,103 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleModelSymbol" + // $ANTLR end "entryRuleExternMetricDefinition" - // $ANTLR start "ruleModelSymbol" - // InternalSolverLanguage.g:548:1: ruleModelSymbol returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; - public final EObject ruleModelSymbol() throws RecognitionException { + // $ANTLR start "ruleExternMetricDefinition" + // InternalSolverLanguage.g:731:1: ruleExternMetricDefinition returns [EObject current=null] : (otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) ) ) ; + public final EObject ruleExternMetricDefinition() throws RecognitionException { EObject current = null; - Token lv_name_0_0=null; + Token otherlv_0=null; + Enumerator lv_type_1_0 = null; + + EObject lv_head_2_0 = null; + enterRule(); try { - // InternalSolverLanguage.g:554:2: ( ( (lv_name_0_0= RULE_ID ) ) ) - // InternalSolverLanguage.g:555:2: ( (lv_name_0_0= RULE_ID ) ) + // InternalSolverLanguage.g:737:2: ( (otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) ) ) ) + // InternalSolverLanguage.g:738:2: (otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) ) ) + { + // InternalSolverLanguage.g:738:2: (otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) ) ) + // InternalSolverLanguage.g:739:3: otherlv_0= 'extern' ( (lv_type_1_0= ruleMetricType ) ) ( (lv_head_2_0= ruleCall ) ) + { + otherlv_0=(Token)match(input,21,FOLLOW_14); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getExternMetricDefinitionAccess().getExternKeyword_0()); + + } + // InternalSolverLanguage.g:743:3: ( (lv_type_1_0= ruleMetricType ) ) + // InternalSolverLanguage.g:744:4: (lv_type_1_0= ruleMetricType ) + { + // InternalSolverLanguage.g:744:4: (lv_type_1_0= ruleMetricType ) + // InternalSolverLanguage.g:745:5: lv_type_1_0= ruleMetricType { - // InternalSolverLanguage.g:555:2: ( (lv_name_0_0= RULE_ID ) ) - // InternalSolverLanguage.g:556:3: (lv_name_0_0= RULE_ID ) + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_1_0()); + + } + pushFollow(FOLLOW_7); + lv_type_1_0=ruleMetricType(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); + } + set( + current, + "type", + lv_type_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MetricType"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalSolverLanguage.g:762:3: ( (lv_head_2_0= ruleCall ) ) + // InternalSolverLanguage.g:763:4: (lv_head_2_0= ruleCall ) { - // InternalSolverLanguage.g:556:3: (lv_name_0_0= RULE_ID ) - // InternalSolverLanguage.g:557:4: lv_name_0_0= RULE_ID + // InternalSolverLanguage.g:763:4: (lv_head_2_0= ruleCall ) + // InternalSolverLanguage.g:764:5: lv_head_2_0= ruleCall { - lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_2); + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getExternMetricDefinitionAccess().getHeadCallParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_2); + lv_head_2_0=ruleCall(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getExternMetricDefinitionRule()); + } + set( + current, + "head", + lv_head_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Call"); + afterParserOrEnumRuleCall(); + + } - newLeafNode(lv_name_0_0, grammarAccess.getModelSymbolAccess().getNameIDTerminalRuleCall_0()); - + } - if (current==null) { - current = createModelElement(grammarAccess.getModelSymbolRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_0_0, - "org.eclipse.xtext.common.Terminals.ID"); - } @@ -1608,9 +2098,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -1621,29 +2113,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleModelSymbol" + // $ANTLR end "ruleExternMetricDefinition" - // $ANTLR start "entryRulePartialitySymbol" - // InternalSolverLanguage.g:576:1: entryRulePartialitySymbol returns [EObject current=null] : iv_rulePartialitySymbol= rulePartialitySymbol EOF ; - public final EObject entryRulePartialitySymbol() throws RecognitionException { + // $ANTLR start "entryRuleExpression" + // InternalSolverLanguage.g:785:1: entryRuleExpression returns [EObject current=null] : iv_ruleExpression= ruleExpression EOF ; + public final EObject entryRuleExpression() throws RecognitionException { EObject current = null; - EObject iv_rulePartialitySymbol = null; + EObject iv_ruleExpression = null; try { - // InternalSolverLanguage.g:576:57: (iv_rulePartialitySymbol= rulePartialitySymbol EOF ) - // InternalSolverLanguage.g:577:2: iv_rulePartialitySymbol= rulePartialitySymbol EOF + // InternalSolverLanguage.g:785:51: (iv_ruleExpression= ruleExpression EOF ) + // InternalSolverLanguage.g:786:2: iv_ruleExpression= ruleExpression EOF { - newCompositeNode(grammarAccess.getPartialitySymbolRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExpressionRule()); + } pushFollow(FOLLOW_1); - iv_rulePartialitySymbol=rulePartialitySymbol(); + iv_ruleExpression=ruleExpression(); state._fsp--; - - current =iv_rulePartialitySymbol; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -1657,76 +2153,85 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRulePartialitySymbol" + // $ANTLR end "entryRuleExpression" - // $ANTLR start "rulePartialitySymbol" - // InternalSolverLanguage.g:583:1: rulePartialitySymbol returns [EObject current=null] : (this_ExistSymbol_0= ruleExistSymbol | this_EqualsSymbol_1= ruleEqualsSymbol ) ; - public final EObject rulePartialitySymbol() throws RecognitionException { + // $ANTLR start "ruleExpression" + // InternalSolverLanguage.g:792:1: ruleExpression returns [EObject current=null] : (this_IfElse_0= ruleIfElse | this_DisjunctiveExpression_1= ruleDisjunctiveExpression ) ; + public final EObject ruleExpression() throws RecognitionException { EObject current = null; - EObject this_ExistSymbol_0 = null; + EObject this_IfElse_0 = null; - EObject this_EqualsSymbol_1 = null; + EObject this_DisjunctiveExpression_1 = null; enterRule(); try { - // InternalSolverLanguage.g:589:2: ( (this_ExistSymbol_0= ruleExistSymbol | this_EqualsSymbol_1= ruleEqualsSymbol ) ) - // InternalSolverLanguage.g:590:2: (this_ExistSymbol_0= ruleExistSymbol | this_EqualsSymbol_1= ruleEqualsSymbol ) + // InternalSolverLanguage.g:798:2: ( (this_IfElse_0= ruleIfElse | this_DisjunctiveExpression_1= ruleDisjunctiveExpression ) ) + // InternalSolverLanguage.g:799:2: (this_IfElse_0= ruleIfElse | this_DisjunctiveExpression_1= ruleDisjunctiveExpression ) { - // InternalSolverLanguage.g:590:2: (this_ExistSymbol_0= ruleExistSymbol | this_EqualsSymbol_1= ruleEqualsSymbol ) - int alt12=2; - int LA12_0 = input.LA(1); + // InternalSolverLanguage.g:799:2: (this_IfElse_0= ruleIfElse | this_DisjunctiveExpression_1= ruleDisjunctiveExpression ) + int alt8=2; + int LA8_0 = input.LA(1); - if ( (LA12_0==21) ) { - alt12=1; + if ( (LA8_0==23) ) { + alt8=1; } - else if ( (LA12_0==22) ) { - alt12=2; + 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)) ) { + alt8=2; } else { + if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 12, 0, input); + new NoViableAltException("", 8, 0, input); throw nvae; } - switch (alt12) { + switch (alt8) { case 1 : - // InternalSolverLanguage.g:591:3: this_ExistSymbol_0= ruleExistSymbol + // InternalSolverLanguage.g:800:3: this_IfElse_0= ruleIfElse { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getPartialitySymbolAccess().getExistSymbolParserRuleCall_0()); - + newCompositeNode(grammarAccess.getExpressionAccess().getIfElseParserRuleCall_0()); + + } pushFollow(FOLLOW_2); - this_ExistSymbol_0=ruleExistSymbol(); + this_IfElse_0=ruleIfElse(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - current = this_ExistSymbol_0; - afterParserOrEnumRuleCall(); - + current = this_IfElse_0; + afterParserOrEnumRuleCall(); + + } } break; case 2 : - // InternalSolverLanguage.g:600:3: this_EqualsSymbol_1= ruleEqualsSymbol + // InternalSolverLanguage.g:809:3: this_DisjunctiveExpression_1= ruleDisjunctiveExpression { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getPartialitySymbolAccess().getEqualsSymbolParserRuleCall_1()); - + newCompositeNode(grammarAccess.getExpressionAccess().getDisjunctiveExpressionParserRuleCall_1()); + + } pushFollow(FOLLOW_2); - this_EqualsSymbol_1=ruleEqualsSymbol(); + this_DisjunctiveExpression_1=ruleDisjunctiveExpression(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - current = this_EqualsSymbol_1; - afterParserOrEnumRuleCall(); - + current = this_DisjunctiveExpression_1; + afterParserOrEnumRuleCall(); + + } } break; @@ -1736,9 +2241,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -1749,29 +2256,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "rulePartialitySymbol" + // $ANTLR end "ruleExpression" - // $ANTLR start "entryRuleExistSymbol" - // InternalSolverLanguage.g:612:1: entryRuleExistSymbol returns [EObject current=null] : iv_ruleExistSymbol= ruleExistSymbol EOF ; - public final EObject entryRuleExistSymbol() throws RecognitionException { + // $ANTLR start "entryRuleIfElse" + // InternalSolverLanguage.g:821:1: entryRuleIfElse returns [EObject current=null] : iv_ruleIfElse= ruleIfElse EOF ; + public final EObject entryRuleIfElse() throws RecognitionException { EObject current = null; - EObject iv_ruleExistSymbol = null; + EObject iv_ruleIfElse = null; try { - // InternalSolverLanguage.g:612:52: (iv_ruleExistSymbol= ruleExistSymbol EOF ) - // InternalSolverLanguage.g:613:2: iv_ruleExistSymbol= ruleExistSymbol EOF + // InternalSolverLanguage.g:821:47: (iv_ruleIfElse= ruleIfElse EOF ) + // InternalSolverLanguage.g:822:2: iv_ruleIfElse= ruleIfElse EOF { - newCompositeNode(grammarAccess.getExistSymbolRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getIfElseRule()); + } pushFollow(FOLLOW_1); - iv_ruleExistSymbol=ruleExistSymbol(); + iv_ruleIfElse=ruleIfElse(); state._fsp--; - - current =iv_ruleExistSymbol; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleIfElse; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -1785,128 +2296,154 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleExistSymbol" + // $ANTLR end "entryRuleIfElse" - // $ANTLR start "ruleExistSymbol" - // InternalSolverLanguage.g:619:1: ruleExistSymbol returns [EObject current=null] : (otherlv_0= 'exists' () ) ; - public final EObject ruleExistSymbol() throws RecognitionException { + // $ANTLR start "ruleIfElse" + // 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 ) ) ) ; + public final EObject ruleIfElse() throws RecognitionException { EObject current = null; Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + EObject lv_condition_1_0 = null; + + EObject lv_then_3_0 = null; + + EObject lv_else_5_0 = null; + enterRule(); try { - // InternalSolverLanguage.g:625:2: ( (otherlv_0= 'exists' () ) ) - // InternalSolverLanguage.g:626:2: (otherlv_0= 'exists' () ) + // 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 ) ) ) ) + // 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 ) ) ) { - // InternalSolverLanguage.g:626:2: (otherlv_0= 'exists' () ) - // InternalSolverLanguage.g:627:3: otherlv_0= 'exists' () + // 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 ) ) ) + // 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 ) ) { - otherlv_0=(Token)match(input,21,FOLLOW_2); + otherlv_0=(Token)match(input,23,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - newLeafNode(otherlv_0, grammarAccess.getExistSymbolAccess().getExistsKeyword_0()); - - // InternalSolverLanguage.g:631:3: () - // InternalSolverLanguage.g:632:4: + newLeafNode(otherlv_0, grammarAccess.getIfElseAccess().getIfKeyword_0()); + + } + // InternalSolverLanguage.g:840:3: ( (lv_condition_1_0= ruleExpression ) ) + // InternalSolverLanguage.g:841:4: (lv_condition_1_0= ruleExpression ) { + // InternalSolverLanguage.g:841:4: (lv_condition_1_0= ruleExpression ) + // InternalSolverLanguage.g:842:5: lv_condition_1_0= ruleExpression + { + if ( state.backtracking==0 ) { - current = forceCreateModelElement( - grammarAccess.getExistSymbolAccess().getExistSymbolAction_1(), - current); - - + newCompositeNode(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0()); + } + pushFollow(FOLLOW_15); + lv_condition_1_0=ruleExpression(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + if (current==null) { + current = createModelElementForParent(grammarAccess.getIfElseRule()); + } + set( + current, + "condition", + lv_condition_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } - } - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); } - finally { - } - return current; - } - // $ANTLR end "ruleExistSymbol" - - - // $ANTLR start "entryRuleEqualsSymbol" - // InternalSolverLanguage.g:642:1: entryRuleEqualsSymbol returns [EObject current=null] : iv_ruleEqualsSymbol= ruleEqualsSymbol EOF ; - public final EObject entryRuleEqualsSymbol() throws RecognitionException { - EObject current = null; - - EObject iv_ruleEqualsSymbol = null; + otherlv_2=(Token)match(input,24,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - try { - // InternalSolverLanguage.g:642:53: (iv_ruleEqualsSymbol= ruleEqualsSymbol EOF ) - // InternalSolverLanguage.g:643:2: iv_ruleEqualsSymbol= ruleEqualsSymbol EOF + newLeafNode(otherlv_2, grammarAccess.getIfElseAccess().getThenKeyword_2()); + + } + // InternalSolverLanguage.g:863:3: ( (lv_then_3_0= ruleExpression ) ) + // InternalSolverLanguage.g:864:4: (lv_then_3_0= ruleExpression ) { - newCompositeNode(grammarAccess.getEqualsSymbolRule()); - pushFollow(FOLLOW_1); - iv_ruleEqualsSymbol=ruleEqualsSymbol(); + // InternalSolverLanguage.g:864:4: (lv_then_3_0= ruleExpression ) + // InternalSolverLanguage.g:865:5: lv_then_3_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_16); + lv_then_3_0=ruleExpression(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - current =iv_ruleEqualsSymbol; - match(input,EOF,FOLLOW_2); + if (current==null) { + current = createModelElementForParent(grammarAccess.getIfElseRule()); + } + set( + current, + "then", + lv_then_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } } - } - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); } - finally { - } - return current; - } - // $ANTLR end "entryRuleEqualsSymbol" - - // $ANTLR start "ruleEqualsSymbol" - // InternalSolverLanguage.g:649:1: ruleEqualsSymbol returns [EObject current=null] : (otherlv_0= 'equals' () ) ; - public final EObject ruleEqualsSymbol() throws RecognitionException { - EObject current = null; + otherlv_4=(Token)match(input,25,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - Token otherlv_0=null; + newLeafNode(otherlv_4, grammarAccess.getIfElseAccess().getElseKeyword_4()); + + } + // InternalSolverLanguage.g:886:3: ( (lv_else_5_0= ruleExpression ) ) + // InternalSolverLanguage.g:887:4: (lv_else_5_0= ruleExpression ) + { + // InternalSolverLanguage.g:887:4: (lv_else_5_0= ruleExpression ) + // InternalSolverLanguage.g:888:5: lv_else_5_0= ruleExpression + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0()); + + } + pushFollow(FOLLOW_2); + lv_else_5_0=ruleExpression(); - enterRule(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - try { - // InternalSolverLanguage.g:655:2: ( (otherlv_0= 'equals' () ) ) - // InternalSolverLanguage.g:656:2: (otherlv_0= 'equals' () ) - { - // InternalSolverLanguage.g:656:2: (otherlv_0= 'equals' () ) - // InternalSolverLanguage.g:657:3: otherlv_0= 'equals' () - { - otherlv_0=(Token)match(input,22,FOLLOW_2); + if (current==null) { + current = createModelElementForParent(grammarAccess.getIfElseRule()); + } + set( + current, + "else", + lv_else_5_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } - newLeafNode(otherlv_0, grammarAccess.getEqualsSymbolAccess().getEqualsKeyword_0()); - - // InternalSolverLanguage.g:661:3: () - // InternalSolverLanguage.g:662:4: - { + } - current = forceCreateModelElement( - grammarAccess.getEqualsSymbolAccess().getEqualsSymbolAction_1(), - current); - } @@ -1916,9 +2453,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -1929,29 +2468,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleEqualsSymbol" + // $ANTLR end "ruleIfElse" - // $ANTLR start "entryRuleDataSymbol" - // InternalSolverLanguage.g:672:1: entryRuleDataSymbol returns [EObject current=null] : iv_ruleDataSymbol= ruleDataSymbol EOF ; - public final EObject entryRuleDataSymbol() throws RecognitionException { + // $ANTLR start "entryRuleDisjunctiveExpression" + // InternalSolverLanguage.g:909:1: entryRuleDisjunctiveExpression returns [EObject current=null] : iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ; + public final EObject entryRuleDisjunctiveExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleDataSymbol = null; + EObject iv_ruleDisjunctiveExpression = null; try { - // InternalSolverLanguage.g:672:51: (iv_ruleDataSymbol= ruleDataSymbol EOF ) - // InternalSolverLanguage.g:673:2: iv_ruleDataSymbol= ruleDataSymbol EOF + // InternalSolverLanguage.g:909:62: (iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF ) + // InternalSolverLanguage.g:910:2: iv_ruleDisjunctiveExpression= ruleDisjunctiveExpression EOF { - newCompositeNode(grammarAccess.getDataSymbolRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getDisjunctiveExpressionRule()); + } pushFollow(FOLLOW_1); - iv_ruleDataSymbol=ruleDataSymbol(); + iv_ruleDisjunctiveExpression=ruleDisjunctiveExpression(); state._fsp--; - - current =iv_ruleDataSymbol; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleDisjunctiveExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -1965,220 +2508,303 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleDataSymbol" + // $ANTLR end "entryRuleDisjunctiveExpression" - // $ANTLR start "ruleDataSymbol" - // 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 ) ; - public final EObject ruleDataSymbol() throws RecognitionException { + // $ANTLR start "ruleDisjunctiveExpression" + // 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 ) ) )* ) )? ) ; + public final EObject ruleDisjunctiveExpression() throws RecognitionException { EObject current = null; - EObject this_BooleanSymbol_0 = null; + Token otherlv_2=null; + Token otherlv_5=null; + Token otherlv_8=null; + EObject this_ConjunctiveExpression_0 = null; - EObject this_IntegerSymbol_1 = null; + EObject lv_children_3_0 = null; - EObject this_RealSymbol_2 = null; + EObject lv_body_6_0 = null; - EObject this_StringSymbol_3 = null; + EObject lv_cases_9_0 = null; enterRule(); try { - // InternalSolverLanguage.g:685:2: ( (this_BooleanSymbol_0= ruleBooleanSymbol | this_IntegerSymbol_1= ruleIntegerSymbol | this_RealSymbol_2= ruleRealSymbol | this_StringSymbol_3= ruleStringSymbol ) ) - // InternalSolverLanguage.g:686:2: (this_BooleanSymbol_0= ruleBooleanSymbol | this_IntegerSymbol_1= ruleIntegerSymbol | this_RealSymbol_2= ruleRealSymbol | this_StringSymbol_3= ruleStringSymbol ) + // 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 ) ) )* ) )? ) ) + // 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 ) ) )* ) )? ) { - // InternalSolverLanguage.g:686:2: (this_BooleanSymbol_0= ruleBooleanSymbol | this_IntegerSymbol_1= ruleIntegerSymbol | this_RealSymbol_2= ruleRealSymbol | this_StringSymbol_3= ruleStringSymbol ) - int alt13=4; - switch ( input.LA(1) ) { - case 23: - { - alt13=1; - } - break; - case 24: - { - alt13=2; - } - break; - case 25: - { - alt13=3; - } - break; - case 26: - { - alt13=4; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 13, 0, input); + // 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 ) ) )* ) )? ) + // 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 ) ) )* ) )? + { + if ( state.backtracking==0 ) { - throw nvae; + newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getConjunctiveExpressionParserRuleCall_0()); + } + pushFollow(FOLLOW_17); + this_ConjunctiveExpression_0=ruleConjunctiveExpression(); - switch (alt13) { + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ConjunctiveExpression_0; + afterParserOrEnumRuleCall(); + + } + // 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 ) ) )* ) )? + int alt11=3; + int LA11_0 = input.LA(1); + + if ( (LA11_0==26) ) { + alt11=1; + } + else if ( (LA11_0==27) ) { + alt11=2; + } + switch (alt11) { case 1 : - // InternalSolverLanguage.g:687:3: this_BooleanSymbol_0= ruleBooleanSymbol + // InternalSolverLanguage.g:933:4: ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) + { + // InternalSolverLanguage.g:933:4: ( () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ ) + // InternalSolverLanguage.g:934:5: () (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ { + // InternalSolverLanguage.g:934:5: () + // InternalSolverLanguage.g:935:6: + { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getDataSymbolAccess().getBooleanSymbolParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_BooleanSymbol_0=ruleBooleanSymbol(); + current = forceCreateModelElementAndAdd( + grammarAccess.getDisjunctiveExpressionAccess().getDisjunctionChildrenAction_1_0_0(), + current); + + } - state._fsp--; + } + // InternalSolverLanguage.g:941:5: (otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) )+ + int cnt9=0; + loop9: + do { + int alt9=2; + int LA9_0 = input.LA(1); - current = this_BooleanSymbol_0; - afterParserOrEnumRuleCall(); - + if ( (LA9_0==26) ) { + alt9=1; + } - } - break; - case 2 : - // InternalSolverLanguage.g:696:3: this_IntegerSymbol_1= ruleIntegerSymbol - { - newCompositeNode(grammarAccess.getDataSymbolAccess().getIntegerSymbolParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_IntegerSymbol_1=ruleIntegerSymbol(); + switch (alt9) { + case 1 : + // InternalSolverLanguage.g:942:6: otherlv_2= ';' ( (lv_children_3_0= ruleConjunctiveExpression ) ) + { + otherlv_2=(Token)match(input,26,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - state._fsp--; + newLeafNode(otherlv_2, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_0_1_0()); + + } + // InternalSolverLanguage.g:946:6: ( (lv_children_3_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguage.g:947:7: (lv_children_3_0= ruleConjunctiveExpression ) + { + // InternalSolverLanguage.g:947:7: (lv_children_3_0= ruleConjunctiveExpression ) + // InternalSolverLanguage.g:948:8: lv_children_3_0= ruleConjunctiveExpression + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0()); + + } + pushFollow(FOLLOW_18); + lv_children_3_0=ruleConjunctiveExpression(); - current = this_IntegerSymbol_1; - afterParserOrEnumRuleCall(); - + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule()); + } + add( + current, + "children", + lv_children_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression"); + afterParserOrEnumRuleCall(); + + } - } - break; - case 3 : - // InternalSolverLanguage.g:705:3: this_RealSymbol_2= ruleRealSymbol - { + } - newCompositeNode(grammarAccess.getDataSymbolAccess().getRealSymbolParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_RealSymbol_2=ruleRealSymbol(); - state._fsp--; + } + + + } + break; + + default : + if ( cnt9 >= 1 ) break loop9; + if (state.backtracking>0) {state.failed=true; return current;} + EarlyExitException eee = + new EarlyExitException(9, input); + throw eee; + } + cnt9++; + } while (true); - current = this_RealSymbol_2; - afterParserOrEnumRuleCall(); - + } + } break; - case 4 : - // InternalSolverLanguage.g:714:3: this_StringSymbol_3= ruleStringSymbol + case 2 : + // InternalSolverLanguage.g:968:4: ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* ) { + // InternalSolverLanguage.g:968:4: ( () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* ) + // InternalSolverLanguage.g:969:5: () otherlv_5= '->' ( (lv_body_6_0= ruleConjunctiveExpression ) ) () (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* + { + // InternalSolverLanguage.g:969:5: () + // InternalSolverLanguage.g:970:6: + { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getDataSymbolAccess().getStringSymbolParserRuleCall_3()); - - pushFollow(FOLLOW_2); - this_StringSymbol_3=ruleStringSymbol(); - - state._fsp--; + current = forceCreateModelElementAndSet( + grammarAccess.getDisjunctiveExpressionAccess().getCaseConditionAction_1_1_0(), + current); + + } + } - current = this_StringSymbol_3; - afterParserOrEnumRuleCall(); - + otherlv_5=(Token)match(input,27,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_5, grammarAccess.getDisjunctiveExpressionAccess().getHyphenMinusGreaterThanSignKeyword_1_1_1()); + } - break; + // InternalSolverLanguage.g:980:5: ( (lv_body_6_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguage.g:981:6: (lv_body_6_0= ruleConjunctiveExpression ) + { + // InternalSolverLanguage.g:981:6: (lv_body_6_0= ruleConjunctiveExpression ) + // InternalSolverLanguage.g:982:7: lv_body_6_0= ruleConjunctiveExpression + { + if ( state.backtracking==0 ) { - } + newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0()); + + } + pushFollow(FOLLOW_18); + lv_body_6_0=ruleConjunctiveExpression(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule()); + } + set( + current, + "body", + lv_body_6_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression"); + afterParserOrEnumRuleCall(); + + } - } + } - leaveRule(); + } - } + // InternalSolverLanguage.g:999:5: () + // InternalSolverLanguage.g:1000:6: + { + if ( state.backtracking==0 ) { - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleDataSymbol" + current = forceCreateModelElementAndAdd( + grammarAccess.getDisjunctiveExpressionAccess().getSwitchCasesAction_1_1_3(), + current); + + } + } - // $ANTLR start "entryRuleBooleanSymbol" - // InternalSolverLanguage.g:726:1: entryRuleBooleanSymbol returns [EObject current=null] : iv_ruleBooleanSymbol= ruleBooleanSymbol EOF ; - public final EObject entryRuleBooleanSymbol() throws RecognitionException { - EObject current = null; + // InternalSolverLanguage.g:1006:5: (otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) )* + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); - EObject iv_ruleBooleanSymbol = null; + if ( (LA10_0==26) ) { + alt10=1; + } - try { - // InternalSolverLanguage.g:726:54: (iv_ruleBooleanSymbol= ruleBooleanSymbol EOF ) - // InternalSolverLanguage.g:727:2: iv_ruleBooleanSymbol= ruleBooleanSymbol EOF - { - newCompositeNode(grammarAccess.getBooleanSymbolRule()); - pushFollow(FOLLOW_1); - iv_ruleBooleanSymbol=ruleBooleanSymbol(); + switch (alt10) { + case 1 : + // InternalSolverLanguage.g:1007:6: otherlv_8= ';' ( (lv_cases_9_0= ruleCase ) ) + { + otherlv_8=(Token)match(input,26,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - state._fsp--; + newLeafNode(otherlv_8, grammarAccess.getDisjunctiveExpressionAccess().getSemicolonKeyword_1_1_4_0()); + + } + // InternalSolverLanguage.g:1011:6: ( (lv_cases_9_0= ruleCase ) ) + // InternalSolverLanguage.g:1012:7: (lv_cases_9_0= ruleCase ) + { + // InternalSolverLanguage.g:1012:7: (lv_cases_9_0= ruleCase ) + // InternalSolverLanguage.g:1013:8: lv_cases_9_0= ruleCase + { + if ( state.backtracking==0 ) { - current =iv_ruleBooleanSymbol; - match(input,EOF,FOLLOW_2); + newCompositeNode(grammarAccess.getDisjunctiveExpressionAccess().getCasesCaseParserRuleCall_1_1_4_1_0()); + + } + pushFollow(FOLLOW_18); + lv_cases_9_0=ruleCase(); - } + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getDisjunctiveExpressionRule()); + } + add( + current, + "cases", + lv_cases_9_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Case"); + afterParserOrEnumRuleCall(); + + } - } + } - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleBooleanSymbol" + } - // $ANTLR start "ruleBooleanSymbol" - // InternalSolverLanguage.g:733:1: ruleBooleanSymbol returns [EObject current=null] : (otherlv_0= 'bool' () ) ; - public final EObject ruleBooleanSymbol() throws RecognitionException { - EObject current = null; - Token otherlv_0=null; + } + break; + default : + break loop10; + } + } while (true); - enterRule(); - try { - // InternalSolverLanguage.g:739:2: ( (otherlv_0= 'bool' () ) ) - // InternalSolverLanguage.g:740:2: (otherlv_0= 'bool' () ) - { - // InternalSolverLanguage.g:740:2: (otherlv_0= 'bool' () ) - // InternalSolverLanguage.g:741:3: otherlv_0= 'bool' () - { - otherlv_0=(Token)match(input,23,FOLLOW_2); + } - newLeafNode(otherlv_0, grammarAccess.getBooleanSymbolAccess().getBoolKeyword_0()); - - // InternalSolverLanguage.g:745:3: () - // InternalSolverLanguage.g:746:4: - { - current = forceCreateModelElement( - grammarAccess.getBooleanSymbolAccess().getBooleanSymbolAction_1(), - current); - + } + break; } @@ -2188,9 +2814,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -2201,29 +2829,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleBooleanSymbol" + // $ANTLR end "ruleDisjunctiveExpression" - // $ANTLR start "entryRuleIntegerSymbol" - // InternalSolverLanguage.g:756:1: entryRuleIntegerSymbol returns [EObject current=null] : iv_ruleIntegerSymbol= ruleIntegerSymbol EOF ; - public final EObject entryRuleIntegerSymbol() throws RecognitionException { + // $ANTLR start "entryRuleCase" + // InternalSolverLanguage.g:1037:1: entryRuleCase returns [EObject current=null] : iv_ruleCase= ruleCase EOF ; + public final EObject entryRuleCase() throws RecognitionException { EObject current = null; - EObject iv_ruleIntegerSymbol = null; + EObject iv_ruleCase = null; try { - // InternalSolverLanguage.g:756:54: (iv_ruleIntegerSymbol= ruleIntegerSymbol EOF ) - // InternalSolverLanguage.g:757:2: iv_ruleIntegerSymbol= ruleIntegerSymbol EOF + // InternalSolverLanguage.g:1037:45: (iv_ruleCase= ruleCase EOF ) + // InternalSolverLanguage.g:1038:2: iv_ruleCase= ruleCase EOF { - newCompositeNode(grammarAccess.getIntegerSymbolRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getCaseRule()); + } pushFollow(FOLLOW_1); - iv_ruleIntegerSymbol=ruleIntegerSymbol(); + iv_ruleCase=ruleCase(); state._fsp--; - - current =iv_ruleIntegerSymbol; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleCase; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -2237,38 +2869,103 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleIntegerSymbol" + // $ANTLR end "entryRuleCase" - // $ANTLR start "ruleIntegerSymbol" - // InternalSolverLanguage.g:763:1: ruleIntegerSymbol returns [EObject current=null] : (otherlv_0= 'int' () ) ; - public final EObject ruleIntegerSymbol() throws RecognitionException { + // $ANTLR start "ruleCase" + // InternalSolverLanguage.g:1044:1: ruleCase returns [EObject current=null] : ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ; + public final EObject ruleCase() throws RecognitionException { EObject current = null; - Token otherlv_0=null; + Token otherlv_1=null; + EObject lv_condition_0_0 = null; + + EObject lv_body_2_0 = null; + enterRule(); try { - // InternalSolverLanguage.g:769:2: ( (otherlv_0= 'int' () ) ) - // InternalSolverLanguage.g:770:2: (otherlv_0= 'int' () ) + // InternalSolverLanguage.g:1050:2: ( ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) ) + // InternalSolverLanguage.g:1051:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) + { + // InternalSolverLanguage.g:1051:2: ( ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) ) ) + // InternalSolverLanguage.g:1052:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) otherlv_1= '->' ( (lv_body_2_0= ruleConjunctiveExpression ) ) { - // InternalSolverLanguage.g:770:2: (otherlv_0= 'int' () ) - // InternalSolverLanguage.g:771:3: otherlv_0= 'int' () + // InternalSolverLanguage.g:1052:3: ( (lv_condition_0_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguage.g:1053:4: (lv_condition_0_0= ruleConjunctiveExpression ) { - otherlv_0=(Token)match(input,24,FOLLOW_2); + // InternalSolverLanguage.g:1053:4: (lv_condition_0_0= ruleConjunctiveExpression ) + // InternalSolverLanguage.g:1054:5: lv_condition_0_0= ruleConjunctiveExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0()); + + } + pushFollow(FOLLOW_19); + lv_condition_0_0=ruleConjunctiveExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCaseRule()); + } + set( + current, + "condition", + lv_condition_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression"); + afterParserOrEnumRuleCall(); + + } + + } + - newLeafNode(otherlv_0, grammarAccess.getIntegerSymbolAccess().getIntKeyword_0()); - - // InternalSolverLanguage.g:775:3: () - // InternalSolverLanguage.g:776:4: + } + + otherlv_1=(Token)match(input,27,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getCaseAccess().getHyphenMinusGreaterThanSignKeyword_1()); + + } + // InternalSolverLanguage.g:1075:3: ( (lv_body_2_0= ruleConjunctiveExpression ) ) + // InternalSolverLanguage.g:1076:4: (lv_body_2_0= ruleConjunctiveExpression ) { + // InternalSolverLanguage.g:1076:4: (lv_body_2_0= ruleConjunctiveExpression ) + // InternalSolverLanguage.g:1077:5: lv_body_2_0= ruleConjunctiveExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_2); + lv_body_2_0=ruleConjunctiveExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCaseRule()); + } + set( + current, + "body", + lv_body_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression"); + afterParserOrEnumRuleCall(); + + } + + } - current = forceCreateModelElement( - grammarAccess.getIntegerSymbolAccess().getIntegerSymbolAction_1(), - current); - } @@ -2278,9 +2975,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -2291,29 +2990,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleIntegerSymbol" + // $ANTLR end "ruleCase" - // $ANTLR start "entryRuleRealSymbol" - // InternalSolverLanguage.g:786:1: entryRuleRealSymbol returns [EObject current=null] : iv_ruleRealSymbol= ruleRealSymbol EOF ; - public final EObject entryRuleRealSymbol() throws RecognitionException { + // $ANTLR start "entryRuleConjunctiveExpression" + // InternalSolverLanguage.g:1098:1: entryRuleConjunctiveExpression returns [EObject current=null] : iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ; + public final EObject entryRuleConjunctiveExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleRealSymbol = null; + EObject iv_ruleConjunctiveExpression = null; try { - // InternalSolverLanguage.g:786:51: (iv_ruleRealSymbol= ruleRealSymbol EOF ) - // InternalSolverLanguage.g:787:2: iv_ruleRealSymbol= ruleRealSymbol EOF + // InternalSolverLanguage.g:1098:62: (iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF ) + // InternalSolverLanguage.g:1099:2: iv_ruleConjunctiveExpression= ruleConjunctiveExpression EOF { - newCompositeNode(grammarAccess.getRealSymbolRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getConjunctiveExpressionRule()); + } pushFollow(FOLLOW_1); - iv_ruleRealSymbol=ruleRealSymbol(); + iv_ruleConjunctiveExpression=ruleConjunctiveExpression(); state._fsp--; - - current =iv_ruleRealSymbol; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleConjunctiveExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -2327,38 +3030,144 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleRealSymbol" + // $ANTLR end "entryRuleConjunctiveExpression" - // $ANTLR start "ruleRealSymbol" - // InternalSolverLanguage.g:793:1: ruleRealSymbol returns [EObject current=null] : (otherlv_0= 'real' () ) ; - public final EObject ruleRealSymbol() throws RecognitionException { + // $ANTLR start "ruleConjunctiveExpression" + // InternalSolverLanguage.g:1105:1: ruleConjunctiveExpression returns [EObject current=null] : (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ; + public final EObject ruleConjunctiveExpression() throws RecognitionException { EObject current = null; - Token otherlv_0=null; + Token otherlv_2=null; + EObject this_ComparisonExpression_0 = null; + + EObject lv_children_3_0 = null; + enterRule(); try { - // InternalSolverLanguage.g:799:2: ( (otherlv_0= 'real' () ) ) - // InternalSolverLanguage.g:800:2: (otherlv_0= 'real' () ) + // InternalSolverLanguage.g:1111:2: ( (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) ) + // InternalSolverLanguage.g:1112:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) { - // InternalSolverLanguage.g:800:2: (otherlv_0= 'real' () ) - // InternalSolverLanguage.g:801:3: otherlv_0= 'real' () + // InternalSolverLanguage.g:1112:2: (this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? ) + // InternalSolverLanguage.g:1113:3: this_ComparisonExpression_0= ruleComparisonExpression ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? { - otherlv_0=(Token)match(input,25,FOLLOW_2); + if ( state.backtracking==0 ) { - newLeafNode(otherlv_0, grammarAccess.getRealSymbolAccess().getRealKeyword_0()); - - // InternalSolverLanguage.g:805:3: () - // InternalSolverLanguage.g:806:4: - { + newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getComparisonExpressionParserRuleCall_0()); + + } + pushFollow(FOLLOW_20); + this_ComparisonExpression_0=ruleComparisonExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ComparisonExpression_0; + afterParserOrEnumRuleCall(); + + } + // InternalSolverLanguage.g:1121:3: ( () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ )? + int alt13=2; + int LA13_0 = input.LA(1); + + if ( (LA13_0==28) ) { + alt13=1; + } + switch (alt13) { + case 1 : + // InternalSolverLanguage.g:1122:4: () (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ + { + // InternalSolverLanguage.g:1122:4: () + // InternalSolverLanguage.g:1123:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndAdd( + grammarAccess.getConjunctiveExpressionAccess().getConjunctionChildrenAction_1_0(), + current); + + } + + } + + // InternalSolverLanguage.g:1129:4: (otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) )+ + int cnt12=0; + loop12: + do { + int alt12=2; + int LA12_0 = input.LA(1); + + if ( (LA12_0==28) ) { + alt12=1; + } - current = forceCreateModelElement( - grammarAccess.getRealSymbolAccess().getRealSymbolAction_1(), - current); - + + switch (alt12) { + case 1 : + // InternalSolverLanguage.g:1130:5: otherlv_2= ',' ( (lv_children_3_0= ruleComparisonExpression ) ) + { + otherlv_2=(Token)match(input,28,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getConjunctiveExpressionAccess().getCommaKeyword_1_1_0()); + + } + // InternalSolverLanguage.g:1134:5: ( (lv_children_3_0= ruleComparisonExpression ) ) + // InternalSolverLanguage.g:1135:6: (lv_children_3_0= ruleComparisonExpression ) + { + // InternalSolverLanguage.g:1135:6: (lv_children_3_0= ruleComparisonExpression ) + // InternalSolverLanguage.g:1136:7: lv_children_3_0= ruleComparisonExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getConjunctiveExpressionAccess().getChildrenComparisonExpressionParserRuleCall_1_1_1_0()); + + } + pushFollow(FOLLOW_20); + lv_children_3_0=ruleComparisonExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getConjunctiveExpressionRule()); + } + add( + current, + "children", + lv_children_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + if ( cnt12 >= 1 ) break loop12; + if (state.backtracking>0) {state.failed=true; return current;} + EarlyExitException eee = + new EarlyExitException(12, input); + throw eee; + } + cnt12++; + } while (true); + + + } + break; } @@ -2368,9 +3177,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -2381,29 +3192,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleRealSymbol" + // $ANTLR end "ruleConjunctiveExpression" - // $ANTLR start "entryRuleStringSymbol" - // InternalSolverLanguage.g:816:1: entryRuleStringSymbol returns [EObject current=null] : iv_ruleStringSymbol= ruleStringSymbol EOF ; - public final EObject entryRuleStringSymbol() throws RecognitionException { + // $ANTLR start "entryRuleComparisonExpression" + // InternalSolverLanguage.g:1159:1: entryRuleComparisonExpression returns [EObject current=null] : iv_ruleComparisonExpression= ruleComparisonExpression EOF ; + public final EObject entryRuleComparisonExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleStringSymbol = null; + EObject iv_ruleComparisonExpression = null; try { - // InternalSolverLanguage.g:816:53: (iv_ruleStringSymbol= ruleStringSymbol EOF ) - // InternalSolverLanguage.g:817:2: iv_ruleStringSymbol= ruleStringSymbol EOF + // InternalSolverLanguage.g:1159:61: (iv_ruleComparisonExpression= ruleComparisonExpression EOF ) + // InternalSolverLanguage.g:1160:2: iv_ruleComparisonExpression= ruleComparisonExpression EOF { - newCompositeNode(grammarAccess.getStringSymbolRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getComparisonExpressionRule()); + } pushFollow(FOLLOW_1); - iv_ruleStringSymbol=ruleStringSymbol(); + iv_ruleComparisonExpression=ruleComparisonExpression(); state._fsp--; - - current =iv_ruleStringSymbol; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleComparisonExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -2417,38 +3232,144 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleStringSymbol" + // $ANTLR end "entryRuleComparisonExpression" - // $ANTLR start "ruleStringSymbol" - // InternalSolverLanguage.g:823:1: ruleStringSymbol returns [EObject current=null] : (otherlv_0= 'string' () ) ; - public final EObject ruleStringSymbol() throws RecognitionException { + // $ANTLR start "ruleComparisonExpression" + // InternalSolverLanguage.g:1166:1: ruleComparisonExpression returns [EObject current=null] : (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ; + public final EObject ruleComparisonExpression() throws RecognitionException { EObject current = null; - Token otherlv_0=null; + EObject this_AdditiveExpression_0 = null; + + Enumerator lv_op_2_0 = null; + + EObject lv_right_3_0 = null; + enterRule(); try { - // InternalSolverLanguage.g:829:2: ( (otherlv_0= 'string' () ) ) - // InternalSolverLanguage.g:830:2: (otherlv_0= 'string' () ) + // InternalSolverLanguage.g:1172:2: ( (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) ) + // InternalSolverLanguage.g:1173:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) { - // InternalSolverLanguage.g:830:2: (otherlv_0= 'string' () ) - // InternalSolverLanguage.g:831:3: otherlv_0= 'string' () + // InternalSolverLanguage.g:1173:2: (this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? ) + // InternalSolverLanguage.g:1174:3: this_AdditiveExpression_0= ruleAdditiveExpression ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? { - otherlv_0=(Token)match(input,26,FOLLOW_2); + if ( state.backtracking==0 ) { - newLeafNode(otherlv_0, grammarAccess.getStringSymbolAccess().getStringKeyword_0()); - - // InternalSolverLanguage.g:835:3: () - // InternalSolverLanguage.g:836:4: - { + newCompositeNode(grammarAccess.getComparisonExpressionAccess().getAdditiveExpressionParserRuleCall_0()); + + } + pushFollow(FOLLOW_21); + this_AdditiveExpression_0=ruleAdditiveExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AdditiveExpression_0; + afterParserOrEnumRuleCall(); + + } + // InternalSolverLanguage.g:1182:3: ( () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) )? + int alt14=2; + int LA14_0 = input.LA(1); + + if ( ((LA14_0>=47 && LA14_0<=49)||(LA14_0>=52 && LA14_0<=55)) ) { + alt14=1; + } + switch (alt14) { + case 1 : + // InternalSolverLanguage.g:1183:4: () ( (lv_op_2_0= ruleComparisonOperator ) ) ( (lv_right_3_0= ruleAdditiveExpression ) ) + { + // InternalSolverLanguage.g:1183:4: () + // InternalSolverLanguage.g:1184:5: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElementAndSet( + grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), + current); + + } + + } + + // InternalSolverLanguage.g:1190:4: ( (lv_op_2_0= ruleComparisonOperator ) ) + // InternalSolverLanguage.g:1191:5: (lv_op_2_0= ruleComparisonOperator ) + { + // InternalSolverLanguage.g:1191:5: (lv_op_2_0= ruleComparisonOperator ) + // InternalSolverLanguage.g:1192:6: lv_op_2_0= ruleComparisonOperator + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0()); + + } + pushFollow(FOLLOW_6); + lv_op_2_0=ruleComparisonOperator(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComparisonExpressionRule()); + } + set( + current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalSolverLanguage.g:1209:4: ( (lv_right_3_0= ruleAdditiveExpression ) ) + // InternalSolverLanguage.g:1210:5: (lv_right_3_0= ruleAdditiveExpression ) + { + // InternalSolverLanguage.g:1210:5: (lv_right_3_0= ruleAdditiveExpression ) + // InternalSolverLanguage.g:1211:6: lv_right_3_0= ruleAdditiveExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_right_3_0=ruleAdditiveExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getComparisonExpressionRule()); + } + set( + current, + "right", + lv_right_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); + afterParserOrEnumRuleCall(); + + } + + } - current = forceCreateModelElement( - grammarAccess.getStringSymbolAccess().getStringSymbolAction_1(), - current); - + + } + + + } + break; } @@ -2458,9 +3379,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -2471,29 +3394,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleStringSymbol" + // $ANTLR end "ruleComparisonExpression" - // $ANTLR start "entryRuleComplexObject" - // InternalSolverLanguage.g:846:1: entryRuleComplexObject returns [EObject current=null] : iv_ruleComplexObject= ruleComplexObject EOF ; - public final EObject entryRuleComplexObject() throws RecognitionException { + // $ANTLR start "entryRuleAdditiveExpression" + // InternalSolverLanguage.g:1233:1: entryRuleAdditiveExpression returns [EObject current=null] : iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ; + public final EObject entryRuleAdditiveExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleComplexObject = null; + EObject iv_ruleAdditiveExpression = null; try { - // InternalSolverLanguage.g:846:54: (iv_ruleComplexObject= ruleComplexObject EOF ) - // InternalSolverLanguage.g:847:2: iv_ruleComplexObject= ruleComplexObject EOF + // InternalSolverLanguage.g:1233:59: (iv_ruleAdditiveExpression= ruleAdditiveExpression EOF ) + // InternalSolverLanguage.g:1234:2: iv_ruleAdditiveExpression= ruleAdditiveExpression EOF { - newCompositeNode(grammarAccess.getComplexObjectRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAdditiveExpressionRule()); + } pushFollow(FOLLOW_1); - iv_ruleComplexObject=ruleComplexObject(); + iv_ruleAdditiveExpression=ruleAdditiveExpression(); state._fsp--; - - current =iv_ruleComplexObject; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAdditiveExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -2507,123 +3434,165 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleComplexObject" + // $ANTLR end "entryRuleAdditiveExpression" - // $ANTLR start "ruleComplexObject" - // InternalSolverLanguage.g:853:1: ruleComplexObject returns [EObject current=null] : (this_Object_0= ruleObject | this_AllInstances_1= ruleAllInstances | this_AllObjects_2= ruleAllObjects ) ; - public final EObject ruleComplexObject() throws RecognitionException { + // $ANTLR start "ruleAdditiveExpression" + // InternalSolverLanguage.g:1240:1: ruleAdditiveExpression returns [EObject current=null] : (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ; + public final EObject ruleAdditiveExpression() throws RecognitionException { EObject current = null; - EObject this_Object_0 = null; + EObject this_MultiplicativeExpression_0 = null; - EObject this_AllInstances_1 = null; + Enumerator lv_op_2_0 = null; - EObject this_AllObjects_2 = null; + EObject lv_right_3_0 = null; enterRule(); try { - // InternalSolverLanguage.g:859:2: ( (this_Object_0= ruleObject | this_AllInstances_1= ruleAllInstances | this_AllObjects_2= ruleAllObjects ) ) - // InternalSolverLanguage.g:860:2: (this_Object_0= ruleObject | this_AllInstances_1= ruleAllInstances | this_AllObjects_2= ruleAllObjects ) + // InternalSolverLanguage.g:1246:2: ( (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) ) + // InternalSolverLanguage.g:1247:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) { - // InternalSolverLanguage.g:860:2: (this_Object_0= ruleObject | this_AllInstances_1= ruleAllInstances | this_AllObjects_2= ruleAllObjects ) - int alt14=3; - switch ( input.LA(1) ) { - case RULE_INT: - case RULE_ID: - case RULE_STRING: - case 11: - case 13: - case 14: - case 27: - { - alt14=1; - } - break; - case 20: - { - alt14=2; - } - break; - case 31: - { - alt14=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 14, 0, input); + // InternalSolverLanguage.g:1247:2: (this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* ) + // InternalSolverLanguage.g:1248:3: this_MultiplicativeExpression_0= ruleMultiplicativeExpression ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* + { + if ( state.backtracking==0 ) { - throw nvae; + newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getMultiplicativeExpressionParserRuleCall_0()); + } + pushFollow(FOLLOW_22); + this_MultiplicativeExpression_0=ruleMultiplicativeExpression(); - switch (alt14) { - case 1 : - // InternalSolverLanguage.g:861:3: this_Object_0= ruleObject - { + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getComplexObjectAccess().getObjectParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_Object_0=ruleObject(); + current = this_MultiplicativeExpression_0; + afterParserOrEnumRuleCall(); + + } + // InternalSolverLanguage.g:1256:3: ( () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) )* + loop15: + do { + int alt15=2; + int LA15_0 = input.LA(1); - state._fsp--; + if ( ((LA15_0>=56 && LA15_0<=57)) ) { + alt15=1; + } - current = this_Object_0; - afterParserOrEnumRuleCall(); - + switch (alt15) { + case 1 : + // InternalSolverLanguage.g:1257:4: () ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) ( (lv_right_3_0= ruleMultiplicativeExpression ) ) + { + // InternalSolverLanguage.g:1257:4: () + // InternalSolverLanguage.g:1258:5: + { + if ( state.backtracking==0 ) { - } - break; - case 2 : - // InternalSolverLanguage.g:870:3: this_AllInstances_1= ruleAllInstances - { + current = forceCreateModelElementAndSet( + grammarAccess.getAdditiveExpressionAccess().getBinaryExpressionLeftAction_1_0(), + current); + + } - newCompositeNode(grammarAccess.getComplexObjectAccess().getAllInstancesParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_AllInstances_1=ruleAllInstances(); + } - state._fsp--; + // InternalSolverLanguage.g:1264:4: ( (lv_op_2_0= ruleAdditiveBinaryOperator ) ) + // InternalSolverLanguage.g:1265:5: (lv_op_2_0= ruleAdditiveBinaryOperator ) + { + // InternalSolverLanguage.g:1265:5: (lv_op_2_0= ruleAdditiveBinaryOperator ) + // InternalSolverLanguage.g:1266:6: lv_op_2_0= ruleAdditiveBinaryOperator + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0()); + + } + pushFollow(FOLLOW_6); + lv_op_2_0=ruleAdditiveBinaryOperator(); - current = this_AllInstances_1; - afterParserOrEnumRuleCall(); - + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule()); + } + set( + current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator"); + afterParserOrEnumRuleCall(); + + } - } - break; - case 3 : - // InternalSolverLanguage.g:879:3: this_AllObjects_2= ruleAllObjects - { + } - newCompositeNode(grammarAccess.getComplexObjectAccess().getAllObjectsParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_AllObjects_2=ruleAllObjects(); - state._fsp--; + } + + // InternalSolverLanguage.g:1283:4: ( (lv_right_3_0= ruleMultiplicativeExpression ) ) + // InternalSolverLanguage.g:1284:5: (lv_right_3_0= ruleMultiplicativeExpression ) + { + // InternalSolverLanguage.g:1284:5: (lv_right_3_0= ruleMultiplicativeExpression ) + // InternalSolverLanguage.g:1285:6: lv_right_3_0= ruleMultiplicativeExpression + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAdditiveExpressionAccess().getRightMultiplicativeExpressionParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_22); + lv_right_3_0=ruleMultiplicativeExpression(); - current = this_AllObjects_2; - afterParserOrEnumRuleCall(); - + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAdditiveExpressionRule()); + } + set( + current, + "right", + lv_right_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop15; + } + } while (true); - } - break; } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -2634,29 +3603,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleComplexObject" + // $ANTLR end "ruleAdditiveExpression" - // $ANTLR start "entryRuleObject" - // InternalSolverLanguage.g:891:1: entryRuleObject returns [EObject current=null] : iv_ruleObject= ruleObject EOF ; - public final EObject entryRuleObject() throws RecognitionException { + // $ANTLR start "entryRuleMultiplicativeExpression" + // InternalSolverLanguage.g:1307:1: entryRuleMultiplicativeExpression returns [EObject current=null] : iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ; + public final EObject entryRuleMultiplicativeExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleObject = null; + EObject iv_ruleMultiplicativeExpression = null; try { - // InternalSolverLanguage.g:891:47: (iv_ruleObject= ruleObject EOF ) - // InternalSolverLanguage.g:892:2: iv_ruleObject= ruleObject EOF + // InternalSolverLanguage.g:1307:65: (iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF ) + // InternalSolverLanguage.g:1308:2: iv_ruleMultiplicativeExpression= ruleMultiplicativeExpression EOF { - newCompositeNode(grammarAccess.getObjectRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getMultiplicativeExpressionRule()); + } pushFollow(FOLLOW_1); - iv_ruleObject=ruleObject(); + iv_ruleMultiplicativeExpression=ruleMultiplicativeExpression(); state._fsp--; - - current =iv_ruleObject; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleMultiplicativeExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -2670,121 +3643,165 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleObject" + // $ANTLR end "entryRuleMultiplicativeExpression" - // $ANTLR start "ruleObject" - // InternalSolverLanguage.g:898:1: ruleObject returns [EObject current=null] : (this_NamedObject_0= ruleNamedObject | this_UnnamedObject_1= ruleUnnamedObject | this_DataObject_2= ruleDataObject ) ; - public final EObject ruleObject() throws RecognitionException { + // $ANTLR start "ruleMultiplicativeExpression" + // InternalSolverLanguage.g:1314:1: ruleMultiplicativeExpression returns [EObject current=null] : (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ; + public final EObject ruleMultiplicativeExpression() throws RecognitionException { EObject current = null; - EObject this_NamedObject_0 = null; + EObject this_ExponentialExpression_0 = null; - EObject this_UnnamedObject_1 = null; + Enumerator lv_op_2_0 = null; - EObject this_DataObject_2 = null; + EObject lv_right_3_0 = null; enterRule(); try { - // InternalSolverLanguage.g:904:2: ( (this_NamedObject_0= ruleNamedObject | this_UnnamedObject_1= ruleUnnamedObject | this_DataObject_2= ruleDataObject ) ) - // InternalSolverLanguage.g:905:2: (this_NamedObject_0= ruleNamedObject | this_UnnamedObject_1= ruleUnnamedObject | this_DataObject_2= ruleDataObject ) + // InternalSolverLanguage.g:1320:2: ( (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) ) + // InternalSolverLanguage.g:1321:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) { - // InternalSolverLanguage.g:905:2: (this_NamedObject_0= ruleNamedObject | this_UnnamedObject_1= ruleUnnamedObject | this_DataObject_2= ruleDataObject ) - int alt15=3; - switch ( input.LA(1) ) { - case 27: - { - alt15=1; - } - break; - case RULE_ID: - { - alt15=2; - } - break; - case RULE_INT: - case RULE_STRING: - case 11: - case 13: - case 14: - { - alt15=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 15, 0, input); + // InternalSolverLanguage.g:1321:2: (this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* ) + // InternalSolverLanguage.g:1322:3: this_ExponentialExpression_0= ruleExponentialExpression ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* + { + if ( state.backtracking==0 ) { - throw nvae; + newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getExponentialExpressionParserRuleCall_0()); + } + pushFollow(FOLLOW_23); + this_ExponentialExpression_0=ruleExponentialExpression(); - switch (alt15) { - case 1 : - // InternalSolverLanguage.g:906:3: this_NamedObject_0= ruleNamedObject - { + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getObjectAccess().getNamedObjectParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_NamedObject_0=ruleNamedObject(); + current = this_ExponentialExpression_0; + afterParserOrEnumRuleCall(); + + } + // InternalSolverLanguage.g:1330:3: ( () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )* + loop16: + do { + int alt16=2; + int LA16_0 = input.LA(1); + + if ( (LA16_0==35||LA16_0==58) ) { + alt16=1; + } - state._fsp--; + switch (alt16) { + case 1 : + // InternalSolverLanguage.g:1331:4: () ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) + { + // InternalSolverLanguage.g:1331:4: () + // InternalSolverLanguage.g:1332:5: + { + if ( state.backtracking==0 ) { - current = this_NamedObject_0; - afterParserOrEnumRuleCall(); - + current = forceCreateModelElementAndSet( + grammarAccess.getMultiplicativeExpressionAccess().getBinaryExpressionLeftAction_1_0(), + current); + + } - } - break; - case 2 : - // InternalSolverLanguage.g:915:3: this_UnnamedObject_1= ruleUnnamedObject - { + } - newCompositeNode(grammarAccess.getObjectAccess().getUnnamedObjectParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_UnnamedObject_1=ruleUnnamedObject(); + // InternalSolverLanguage.g:1338:4: ( (lv_op_2_0= ruleMultiplicativeBinaryOperator ) ) + // InternalSolverLanguage.g:1339:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator ) + { + // InternalSolverLanguage.g:1339:5: (lv_op_2_0= ruleMultiplicativeBinaryOperator ) + // InternalSolverLanguage.g:1340:6: lv_op_2_0= ruleMultiplicativeBinaryOperator + { + if ( state.backtracking==0 ) { - state._fsp--; + newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0()); + + } + pushFollow(FOLLOW_6); + lv_op_2_0=ruleMultiplicativeBinaryOperator(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule()); + } + set( + current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator"); + afterParserOrEnumRuleCall(); + + } - current = this_UnnamedObject_1; - afterParserOrEnumRuleCall(); - + } - } - break; - case 3 : - // InternalSolverLanguage.g:924:3: this_DataObject_2= ruleDataObject - { - newCompositeNode(grammarAccess.getObjectAccess().getDataObjectParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_DataObject_2=ruleDataObject(); + } - state._fsp--; + // InternalSolverLanguage.g:1357:4: ( (lv_right_3_0= ruleExponentialExpression ) ) + // InternalSolverLanguage.g:1358:5: (lv_right_3_0= ruleExponentialExpression ) + { + // InternalSolverLanguage.g:1358:5: (lv_right_3_0= ruleExponentialExpression ) + // InternalSolverLanguage.g:1359:6: lv_right_3_0= ruleExponentialExpression + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getMultiplicativeExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_23); + lv_right_3_0=ruleExponentialExpression(); - current = this_DataObject_2; - afterParserOrEnumRuleCall(); - + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getMultiplicativeExpressionRule()); + } + set( + current, + "right", + lv_right_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop16; + } + } while (true); - } - break; } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -2795,29 +3812,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleObject" + // $ANTLR end "ruleMultiplicativeExpression" - // $ANTLR start "entryRuleNamedObject" - // InternalSolverLanguage.g:936:1: entryRuleNamedObject returns [EObject current=null] : iv_ruleNamedObject= ruleNamedObject EOF ; - public final EObject entryRuleNamedObject() throws RecognitionException { + // $ANTLR start "entryRuleExponentialExpression" + // InternalSolverLanguage.g:1381:1: entryRuleExponentialExpression returns [EObject current=null] : iv_ruleExponentialExpression= ruleExponentialExpression EOF ; + public final EObject entryRuleExponentialExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleNamedObject = null; + EObject iv_ruleExponentialExpression = null; try { - // InternalSolverLanguage.g:936:52: (iv_ruleNamedObject= ruleNamedObject EOF ) - // InternalSolverLanguage.g:937:2: iv_ruleNamedObject= ruleNamedObject EOF + // InternalSolverLanguage.g:1381:62: (iv_ruleExponentialExpression= ruleExponentialExpression EOF ) + // InternalSolverLanguage.g:1382:2: iv_ruleExponentialExpression= ruleExponentialExpression EOF { - newCompositeNode(grammarAccess.getNamedObjectRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExponentialExpressionRule()); + } pushFollow(FOLLOW_1); - iv_ruleNamedObject=ruleNamedObject(); + iv_ruleExponentialExpression=ruleExponentialExpression(); state._fsp--; - - current =iv_ruleNamedObject; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleExponentialExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -2831,154 +3852,144 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleNamedObject" + // $ANTLR end "entryRuleExponentialExpression" - // $ANTLR start "ruleNamedObject" - // InternalSolverLanguage.g:943:1: ruleNamedObject returns [EObject current=null] : (otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' ) ; - public final EObject ruleNamedObject() throws RecognitionException { + // $ANTLR start "ruleExponentialExpression" + // InternalSolverLanguage.g:1388:1: ruleExponentialExpression returns [EObject current=null] : (this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? ) ; + public final EObject ruleExponentialExpression() throws RecognitionException { EObject current = null; - Token otherlv_0=null; - Token lv_name_1_0=null; - Token otherlv_2=null; + EObject this_UnaryExpression_0 = null; + + Enumerator lv_op_2_0 = null; + + EObject lv_right_3_0 = null; + enterRule(); try { - // InternalSolverLanguage.g:949:2: ( (otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' ) ) - // InternalSolverLanguage.g:950:2: (otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' ) - { - // InternalSolverLanguage.g:950:2: (otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' ) - // InternalSolverLanguage.g:951:3: otherlv_0= '\\'' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '\\'' - { - otherlv_0=(Token)match(input,27,FOLLOW_12); - - newLeafNode(otherlv_0, grammarAccess.getNamedObjectAccess().getApostropheKeyword_0()); - - // InternalSolverLanguage.g:955:3: ( (lv_name_1_0= RULE_ID ) ) - // InternalSolverLanguage.g:956:4: (lv_name_1_0= RULE_ID ) + // InternalSolverLanguage.g:1394:2: ( (this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? ) ) + // InternalSolverLanguage.g:1395:2: (this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? ) { - // InternalSolverLanguage.g:956:4: (lv_name_1_0= RULE_ID ) - // InternalSolverLanguage.g:957:5: lv_name_1_0= RULE_ID + // InternalSolverLanguage.g:1395:2: (this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? ) + // InternalSolverLanguage.g:1396:3: this_UnaryExpression_0= ruleUnaryExpression ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? { - lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_13); - - newLeafNode(lv_name_1_0, grammarAccess.getNamedObjectAccess().getNameIDTerminalRuleCall_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getNamedObjectRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_1_0, - "org.eclipse.xtext.common.Terminals.ID"); - - - } - - - } - - otherlv_2=(Token)match(input,27,FOLLOW_2); - - newLeafNode(otherlv_2, grammarAccess.getNamedObjectAccess().getApostropheKeyword_2()); - + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExponentialExpressionAccess().getUnaryExpressionParserRuleCall_0()); + } + pushFollow(FOLLOW_24); + this_UnaryExpression_0=ruleUnaryExpression(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current = this_UnaryExpression_0; + afterParserOrEnumRuleCall(); + } + // InternalSolverLanguage.g:1404:3: ( () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) )? + int alt17=2; + int LA17_0 = input.LA(1); - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); + if ( (LA17_0==59) ) { + alt17=1; } - finally { - } - return current; - } - // $ANTLR end "ruleNamedObject" - - - // $ANTLR start "entryRuleUnnamedObject" - // InternalSolverLanguage.g:981:1: entryRuleUnnamedObject returns [EObject current=null] : iv_ruleUnnamedObject= ruleUnnamedObject EOF ; - public final EObject entryRuleUnnamedObject() throws RecognitionException { - EObject current = null; + switch (alt17) { + case 1 : + // InternalSolverLanguage.g:1405:4: () ( (lv_op_2_0= ruleExponentialOp ) ) ( (lv_right_3_0= ruleExponentialExpression ) ) + { + // InternalSolverLanguage.g:1405:4: () + // InternalSolverLanguage.g:1406:5: + { + if ( state.backtracking==0 ) { - EObject iv_ruleUnnamedObject = null; + current = forceCreateModelElementAndSet( + grammarAccess.getExponentialExpressionAccess().getBinaryExpressionLeftAction_1_0(), + current); + + } + } - try { - // InternalSolverLanguage.g:981:54: (iv_ruleUnnamedObject= ruleUnnamedObject EOF ) - // InternalSolverLanguage.g:982:2: iv_ruleUnnamedObject= ruleUnnamedObject EOF - { - newCompositeNode(grammarAccess.getUnnamedObjectRule()); - pushFollow(FOLLOW_1); - iv_ruleUnnamedObject=ruleUnnamedObject(); + // InternalSolverLanguage.g:1412:4: ( (lv_op_2_0= ruleExponentialOp ) ) + // InternalSolverLanguage.g:1413:5: (lv_op_2_0= ruleExponentialOp ) + { + // InternalSolverLanguage.g:1413:5: (lv_op_2_0= ruleExponentialOp ) + // InternalSolverLanguage.g:1414:6: lv_op_2_0= ruleExponentialOp + { + if ( state.backtracking==0 ) { - state._fsp--; + newCompositeNode(grammarAccess.getExponentialExpressionAccess().getOpExponentialOpEnumRuleCall_1_1_0()); + + } + pushFollow(FOLLOW_6); + lv_op_2_0=ruleExponentialOp(); - current =iv_ruleUnnamedObject; - match(input,EOF,FOLLOW_2); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getExponentialExpressionRule()); + } + set( + current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp"); + afterParserOrEnumRuleCall(); + + } - } + } - } - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleUnnamedObject" + } + // InternalSolverLanguage.g:1431:4: ( (lv_right_3_0= ruleExponentialExpression ) ) + // InternalSolverLanguage.g:1432:5: (lv_right_3_0= ruleExponentialExpression ) + { + // InternalSolverLanguage.g:1432:5: (lv_right_3_0= ruleExponentialExpression ) + // InternalSolverLanguage.g:1433:6: lv_right_3_0= ruleExponentialExpression + { + if ( state.backtracking==0 ) { - // $ANTLR start "ruleUnnamedObject" - // InternalSolverLanguage.g:988:1: ruleUnnamedObject returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; - public final EObject ruleUnnamedObject() throws RecognitionException { - EObject current = null; + newCompositeNode(grammarAccess.getExponentialExpressionAccess().getRightExponentialExpressionParserRuleCall_1_2_0()); + + } + pushFollow(FOLLOW_2); + lv_right_3_0=ruleExponentialExpression(); - Token lv_name_0_0=null; + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getExponentialExpressionRule()); + } + set( + current, + "right", + lv_right_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression"); + afterParserOrEnumRuleCall(); + + } + } - enterRule(); - try { - // InternalSolverLanguage.g:994:2: ( ( (lv_name_0_0= RULE_ID ) ) ) - // InternalSolverLanguage.g:995:2: ( (lv_name_0_0= RULE_ID ) ) - { - // InternalSolverLanguage.g:995:2: ( (lv_name_0_0= RULE_ID ) ) - // InternalSolverLanguage.g:996:3: (lv_name_0_0= RULE_ID ) - { - // InternalSolverLanguage.g:996:3: (lv_name_0_0= RULE_ID ) - // InternalSolverLanguage.g:997:4: lv_name_0_0= RULE_ID - { - lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_2); + } - newLeafNode(lv_name_0_0, grammarAccess.getUnnamedObjectAccess().getNameIDTerminalRuleCall_0()); - - if (current==null) { - current = createModelElement(grammarAccess.getUnnamedObjectRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_0_0, - "org.eclipse.xtext.common.Terminals.ID"); - + } + break; } @@ -2988,9 +3999,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -3001,29 +4014,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleUnnamedObject" + // $ANTLR end "ruleExponentialExpression" - // $ANTLR start "entryRuleDataObject" - // InternalSolverLanguage.g:1016:1: entryRuleDataObject returns [EObject current=null] : iv_ruleDataObject= ruleDataObject EOF ; - public final EObject entryRuleDataObject() throws RecognitionException { + // $ANTLR start "entryRuleUnaryExpression" + // InternalSolverLanguage.g:1455:1: entryRuleUnaryExpression returns [EObject current=null] : iv_ruleUnaryExpression= ruleUnaryExpression EOF ; + public final EObject entryRuleUnaryExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleDataObject = null; + EObject iv_ruleUnaryExpression = null; try { - // InternalSolverLanguage.g:1016:51: (iv_ruleDataObject= ruleDataObject EOF ) - // InternalSolverLanguage.g:1017:2: iv_ruleDataObject= ruleDataObject EOF + // InternalSolverLanguage.g:1455:56: (iv_ruleUnaryExpression= ruleUnaryExpression EOF ) + // InternalSolverLanguage.g:1456:2: iv_ruleUnaryExpression= ruleUnaryExpression EOF { - newCompositeNode(grammarAccess.getDataObjectRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getUnaryExpressionRule()); + } pushFollow(FOLLOW_1); - iv_ruleDataObject=ruleDataObject(); + iv_ruleUnaryExpression=ruleUnaryExpression(); state._fsp--; - - current =iv_ruleDataObject; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleUnaryExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -3037,167 +4054,160 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleDataObject" + // $ANTLR end "entryRuleUnaryExpression" - // $ANTLR start "ruleDataObject" - // 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 ) ; - public final EObject ruleDataObject() throws RecognitionException { + // $ANTLR start "ruleUnaryExpression" + // InternalSolverLanguage.g:1462:1: ruleUnaryExpression returns [EObject current=null] : (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) ; + public final EObject ruleUnaryExpression() throws RecognitionException { EObject current = null; - EObject this_BooleanObject_0 = null; + EObject this_AggregationExpression_0 = null; - EObject this_IntObject_1 = null; + Enumerator lv_op_2_0 = null; - EObject this_RealObject_2 = null; - - EObject this_StringObject_3 = null; + EObject lv_body_3_0 = null; enterRule(); try { - // InternalSolverLanguage.g:1029:2: ( (this_BooleanObject_0= ruleBooleanObject | this_IntObject_1= ruleIntObject | this_RealObject_2= ruleRealObject | this_StringObject_3= ruleStringObject ) ) - // InternalSolverLanguage.g:1030:2: (this_BooleanObject_0= ruleBooleanObject | this_IntObject_1= ruleIntObject | this_RealObject_2= ruleRealObject | this_StringObject_3= ruleStringObject ) + // InternalSolverLanguage.g:1468:2: ( (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) ) + // InternalSolverLanguage.g:1469:2: (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) { - // InternalSolverLanguage.g:1030:2: (this_BooleanObject_0= ruleBooleanObject | this_IntObject_1= ruleIntObject | this_RealObject_2= ruleRealObject | this_StringObject_3= ruleStringObject ) - int alt16=4; - switch ( input.LA(1) ) { - case 13: - case 14: - { - alt16=1; - } - break; - case 11: - { - int LA16_2 = input.LA(2); + // InternalSolverLanguage.g:1469:2: (this_AggregationExpression_0= ruleAggregationExpression | ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) ) + int alt18=2; + int LA18_0 = input.LA(1); - if ( (LA16_2==RULE_INT) ) { - int LA16_3 = input.LA(3); + 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)) ) { + alt18=1; + } + else if ( ((LA18_0>=56 && LA18_0<=57)||(LA18_0>=60 && LA18_0<=63)) ) { + alt18=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 18, 0, input); + + throw nvae; + } + switch (alt18) { + case 1 : + // InternalSolverLanguage.g:1470:3: this_AggregationExpression_0= ruleAggregationExpression + { + if ( state.backtracking==0 ) { - if ( (LA16_3==12) ) { - alt16=3; + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getAggregationExpressionParserRuleCall_0()); + } - else if ( (LA16_3==EOF||(LA16_3>=18 && LA16_3<=19)) ) { - alt16=2; + pushFollow(FOLLOW_2); + this_AggregationExpression_0=ruleAggregationExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_AggregationExpression_0; + afterParserOrEnumRuleCall(); + } - else { - NoViableAltException nvae = - new NoViableAltException("", 16, 3, input); - throw nvae; } - } - else { - NoViableAltException nvae = - new NoViableAltException("", 16, 2, input); + break; + case 2 : + // InternalSolverLanguage.g:1479:3: ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) + { + // InternalSolverLanguage.g:1479:3: ( () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) ) + // InternalSolverLanguage.g:1480:4: () ( (lv_op_2_0= ruleUnaryOp ) ) ( (lv_body_3_0= ruleAggregationExpression ) ) + { + // InternalSolverLanguage.g:1480:4: () + // InternalSolverLanguage.g:1481:5: + { + if ( state.backtracking==0 ) { - throw nvae; - } - } - break; - case RULE_INT: - { - int LA16_3 = input.LA(2); - - if ( (LA16_3==12) ) { - alt16=3; - } - else if ( (LA16_3==EOF||(LA16_3>=18 && LA16_3<=19)) ) { - alt16=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 16, 3, input); - - throw nvae; - } - } - break; - case RULE_STRING: - { - alt16=4; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 16, 0, input); + current = forceCreateModelElement( + grammarAccess.getUnaryExpressionAccess().getUnaryExpressionAction_1_0(), + current); + + } - throw nvae; - } + } - switch (alt16) { - case 1 : - // InternalSolverLanguage.g:1031:3: this_BooleanObject_0= ruleBooleanObject + // InternalSolverLanguage.g:1487:4: ( (lv_op_2_0= ruleUnaryOp ) ) + // InternalSolverLanguage.g:1488:5: (lv_op_2_0= ruleUnaryOp ) { - - newCompositeNode(grammarAccess.getDataObjectAccess().getBooleanObjectParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_BooleanObject_0=ruleBooleanObject(); - - state._fsp--; - - - current = this_BooleanObject_0; - afterParserOrEnumRuleCall(); - - - } - break; - case 2 : - // InternalSolverLanguage.g:1040:3: this_IntObject_1= ruleIntObject + // InternalSolverLanguage.g:1488:5: (lv_op_2_0= ruleUnaryOp ) + // InternalSolverLanguage.g:1489:6: lv_op_2_0= ruleUnaryOp { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getDataObjectAccess().getIntObjectParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_IntObject_1=ruleIntObject(); + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0()); + + } + pushFollow(FOLLOW_25); + lv_op_2_0=ruleUnaryOp(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); + } + set( + current, + "op", + lv_op_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp"); + afterParserOrEnumRuleCall(); + + } + } - current = this_IntObject_1; - afterParserOrEnumRuleCall(); - } - break; - case 3 : - // InternalSolverLanguage.g:1049:3: this_RealObject_2= ruleRealObject + + // InternalSolverLanguage.g:1506:4: ( (lv_body_3_0= ruleAggregationExpression ) ) + // InternalSolverLanguage.g:1507:5: (lv_body_3_0= ruleAggregationExpression ) { + // InternalSolverLanguage.g:1507:5: (lv_body_3_0= ruleAggregationExpression ) + // InternalSolverLanguage.g:1508:6: lv_body_3_0= ruleAggregationExpression + { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getDataObjectAccess().getRealObjectParserRuleCall_2()); - + newCompositeNode(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0()); + + } pushFollow(FOLLOW_2); - this_RealObject_2=ruleRealObject(); + lv_body_3_0=ruleAggregationExpression(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getUnaryExpressionRule()); + } + set( + current, + "body", + lv_body_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression"); + afterParserOrEnumRuleCall(); + + } + } - current = this_RealObject_2; - afterParserOrEnumRuleCall(); - } - break; - case 4 : - // InternalSolverLanguage.g:1058:3: this_StringObject_3= ruleStringObject - { - - newCompositeNode(grammarAccess.getDataObjectAccess().getStringObjectParserRuleCall_3()); - - pushFollow(FOLLOW_2); - this_StringObject_3=ruleStringObject(); - state._fsp--; + } - current = this_StringObject_3; - afterParserOrEnumRuleCall(); - } break; @@ -3207,9 +4217,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -3220,29 +4232,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleDataObject" + // $ANTLR end "ruleUnaryExpression" - // $ANTLR start "entryRuleBooleanObject" - // InternalSolverLanguage.g:1070:1: entryRuleBooleanObject returns [EObject current=null] : iv_ruleBooleanObject= ruleBooleanObject EOF ; - public final EObject entryRuleBooleanObject() throws RecognitionException { + // $ANTLR start "entryRuleAggregationExpression" + // InternalSolverLanguage.g:1530:1: entryRuleAggregationExpression returns [EObject current=null] : iv_ruleAggregationExpression= ruleAggregationExpression EOF ; + public final EObject entryRuleAggregationExpression() throws RecognitionException { EObject current = null; - EObject iv_ruleBooleanObject = null; + EObject iv_ruleAggregationExpression = null; try { - // InternalSolverLanguage.g:1070:54: (iv_ruleBooleanObject= ruleBooleanObject EOF ) - // InternalSolverLanguage.g:1071:2: iv_ruleBooleanObject= ruleBooleanObject EOF + // InternalSolverLanguage.g:1530:62: (iv_ruleAggregationExpression= ruleAggregationExpression EOF ) + // InternalSolverLanguage.g:1531:2: iv_ruleAggregationExpression= ruleAggregationExpression EOF { - newCompositeNode(grammarAccess.getBooleanObjectRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAggregationExpressionRule()); + } pushFollow(FOLLOW_1); - iv_ruleBooleanObject=ruleBooleanObject(); + iv_ruleAggregationExpression=ruleAggregationExpression(); state._fsp--; - - current =iv_ruleBooleanObject; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAggregationExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -3256,61 +4272,148 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleBooleanObject" + // $ANTLR end "entryRuleAggregationExpression" - // $ANTLR start "ruleBooleanObject" - // InternalSolverLanguage.g:1077:1: ruleBooleanObject returns [EObject current=null] : ( (lv_value_0_0= ruleBooleanValue ) ) ; - public final EObject ruleBooleanObject() throws RecognitionException { + // $ANTLR start "ruleAggregationExpression" + // InternalSolverLanguage.g:1537:1: ruleAggregationExpression returns [EObject current=null] : (this_AtomicExpression_0= ruleAtomicExpression | this_Count_1= ruleCount | this_Aggregation_2= ruleAggregation ) ; + public final EObject ruleAggregationExpression() throws RecognitionException { EObject current = null; - EObject lv_value_0_0 = null; + EObject this_AtomicExpression_0 = null; + + EObject this_Count_1 = null; + + EObject this_Aggregation_2 = null; enterRule(); try { - // InternalSolverLanguage.g:1083:2: ( ( (lv_value_0_0= ruleBooleanValue ) ) ) - // InternalSolverLanguage.g:1084:2: ( (lv_value_0_0= ruleBooleanValue ) ) - { - // InternalSolverLanguage.g:1084:2: ( (lv_value_0_0= ruleBooleanValue ) ) - // InternalSolverLanguage.g:1085:3: (lv_value_0_0= ruleBooleanValue ) - { - // InternalSolverLanguage.g:1085:3: (lv_value_0_0= ruleBooleanValue ) - // InternalSolverLanguage.g:1086:4: lv_value_0_0= ruleBooleanValue + // InternalSolverLanguage.g:1543:2: ( (this_AtomicExpression_0= ruleAtomicExpression | this_Count_1= ruleCount | this_Aggregation_2= ruleAggregation ) ) + // InternalSolverLanguage.g:1544:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Count_1= ruleCount | this_Aggregation_2= ruleAggregation ) { + // InternalSolverLanguage.g:1544:2: (this_AtomicExpression_0= ruleAtomicExpression | this_Count_1= ruleCount | this_Aggregation_2= ruleAggregation ) + int alt19=3; + switch ( input.LA(1) ) { + case RULE_STRING: + case RULE_ID: + case RULE_INT: + case RULE_QUOTED_ID: + case 19: + case 33: + case 36: + case 39: + case 40: + case 70: + case 71: + case 72: + { + alt19=1; + } + break; + case 29: + { + alt19=2; + } + break; + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + { + alt19=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 19, 0, input); - newCompositeNode(grammarAccess.getBooleanObjectAccess().getValueBooleanValueParserRuleCall_0()); - - pushFollow(FOLLOW_2); - lv_value_0_0=ruleBooleanValue(); + throw nvae; + } - state._fsp--; + switch (alt19) { + case 1 : + // InternalSolverLanguage.g:1545:3: this_AtomicExpression_0= ruleAtomicExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAtomicExpressionParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + this_AtomicExpression_0=ruleAtomicExpression(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - if (current==null) { - current = createModelElementForParent(grammarAccess.getBooleanObjectRule()); - } - set( - current, - "value", - lv_value_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.BooleanValue"); - afterParserOrEnumRuleCall(); - + current = this_AtomicExpression_0; + afterParserOrEnumRuleCall(); + + } - } + } + break; + case 2 : + // InternalSolverLanguage.g:1554:3: this_Count_1= ruleCount + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAggregationExpressionAccess().getCountParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_Count_1=ruleCount(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Count_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalSolverLanguage.g:1563:3: this_Aggregation_2= ruleAggregation + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getAggregationExpressionAccess().getAggregationParserRuleCall_2()); + + } + pushFollow(FOLLOW_2); + this_Aggregation_2=ruleAggregation(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_Aggregation_2; + afterParserOrEnumRuleCall(); + + } + + } + break; } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -3321,29 +4424,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleBooleanObject" + // $ANTLR end "ruleAggregationExpression" - // $ANTLR start "entryRuleIntObject" - // InternalSolverLanguage.g:1106:1: entryRuleIntObject returns [EObject current=null] : iv_ruleIntObject= ruleIntObject EOF ; - public final EObject entryRuleIntObject() throws RecognitionException { + // $ANTLR start "entryRuleCount" + // InternalSolverLanguage.g:1575:1: entryRuleCount returns [EObject current=null] : iv_ruleCount= ruleCount EOF ; + public final EObject entryRuleCount() throws RecognitionException { EObject current = null; - EObject iv_ruleIntObject = null; + EObject iv_ruleCount = null; try { - // InternalSolverLanguage.g:1106:50: (iv_ruleIntObject= ruleIntObject EOF ) - // InternalSolverLanguage.g:1107:2: iv_ruleIntObject= ruleIntObject EOF + // InternalSolverLanguage.g:1575:46: (iv_ruleCount= ruleCount EOF ) + // InternalSolverLanguage.g:1576:2: iv_ruleCount= ruleCount EOF { - newCompositeNode(grammarAccess.getIntObjectRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getCountRule()); + } pushFollow(FOLLOW_1); - iv_ruleIntObject=ruleIntObject(); + iv_ruleCount=ruleCount(); state._fsp--; - - current =iv_ruleIntObject; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleCount; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -3357,61 +4464,94 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleIntObject" + // $ANTLR end "entryRuleCount" - // $ANTLR start "ruleIntObject" - // InternalSolverLanguage.g:1113:1: ruleIntObject returns [EObject current=null] : ( (lv_value_0_0= ruleINTLiteral ) ) ; - public final EObject ruleIntObject() throws RecognitionException { + // $ANTLR start "ruleCount" + // InternalSolverLanguage.g:1582:1: ruleCount returns [EObject current=null] : (otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}' ) ; + public final EObject ruleCount() throws RecognitionException { EObject current = null; - AntlrDatatypeRuleToken lv_value_0_0 = null; + Token otherlv_0=null; + Token otherlv_1=null; + Token otherlv_3=null; + EObject lv_body_2_0 = null; enterRule(); try { - // InternalSolverLanguage.g:1119:2: ( ( (lv_value_0_0= ruleINTLiteral ) ) ) - // InternalSolverLanguage.g:1120:2: ( (lv_value_0_0= ruleINTLiteral ) ) + // InternalSolverLanguage.g:1588:2: ( (otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}' ) ) + // InternalSolverLanguage.g:1589:2: (otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}' ) { - // InternalSolverLanguage.g:1120:2: ( (lv_value_0_0= ruleINTLiteral ) ) - // InternalSolverLanguage.g:1121:3: (lv_value_0_0= ruleINTLiteral ) + // InternalSolverLanguage.g:1589:2: (otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}' ) + // InternalSolverLanguage.g:1590:3: otherlv_0= 'count' otherlv_1= '{' ( (lv_body_2_0= ruleExpression ) ) otherlv_3= '}' + { + otherlv_0=(Token)match(input,29,FOLLOW_26); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getCountAccess().getCountKeyword_0()); + + } + otherlv_1=(Token)match(input,30,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getCountAccess().getLeftCurlyBracketKeyword_1()); + + } + // InternalSolverLanguage.g:1598:3: ( (lv_body_2_0= ruleExpression ) ) + // InternalSolverLanguage.g:1599:4: (lv_body_2_0= ruleExpression ) { - // InternalSolverLanguage.g:1121:3: (lv_value_0_0= ruleINTLiteral ) - // InternalSolverLanguage.g:1122:4: lv_value_0_0= ruleINTLiteral + // InternalSolverLanguage.g:1599:4: (lv_body_2_0= ruleExpression ) + // InternalSolverLanguage.g:1600:5: lv_body_2_0= ruleExpression { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getIntObjectAccess().getValueINTLiteralParserRuleCall_0()); - - pushFollow(FOLLOW_2); - lv_value_0_0=ruleINTLiteral(); + newCompositeNode(grammarAccess.getCountAccess().getBodyExpressionParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_27); + lv_body_2_0=ruleExpression(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCountRule()); + } + set( + current, + "body", + lv_body_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getIntObjectRule()); - } - set( - current, - "value", - lv_value_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.INTLiteral"); - afterParserOrEnumRuleCall(); - } + otherlv_3=(Token)match(input,31,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getCountAccess().getRightCurlyBracketKeyword_3()); + + } } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -3422,29 +4562,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleIntObject" + // $ANTLR end "ruleCount" - // $ANTLR start "entryRuleRealObject" - // InternalSolverLanguage.g:1142:1: entryRuleRealObject returns [EObject current=null] : iv_ruleRealObject= ruleRealObject EOF ; - public final EObject entryRuleRealObject() throws RecognitionException { + // $ANTLR start "entryRuleAggregation" + // InternalSolverLanguage.g:1625:1: entryRuleAggregation returns [EObject current=null] : iv_ruleAggregation= ruleAggregation EOF ; + public final EObject entryRuleAggregation() throws RecognitionException { EObject current = null; - EObject iv_ruleRealObject = null; + EObject iv_ruleAggregation = null; try { - // InternalSolverLanguage.g:1142:51: (iv_ruleRealObject= ruleRealObject EOF ) - // InternalSolverLanguage.g:1143:2: iv_ruleRealObject= ruleRealObject EOF + // InternalSolverLanguage.g:1625:52: (iv_ruleAggregation= ruleAggregation EOF ) + // InternalSolverLanguage.g:1626:2: iv_ruleAggregation= ruleAggregation EOF { - newCompositeNode(grammarAccess.getRealObjectRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAggregationRule()); + } pushFollow(FOLLOW_1); - iv_ruleRealObject=ruleRealObject(); + iv_ruleAggregation=ruleAggregation(); state._fsp--; - - current =iv_ruleRealObject; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAggregation; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -3458,156 +4602,168 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleRealObject" + // $ANTLR end "entryRuleAggregation" - // $ANTLR start "ruleRealObject" - // InternalSolverLanguage.g:1149:1: ruleRealObject returns [EObject current=null] : ( (lv_value_0_0= ruleREALLiteral ) ) ; - public final EObject ruleRealObject() throws RecognitionException { + // $ANTLR start "ruleAggregation" + // 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= '}' ) ; + public final EObject ruleAggregation() throws RecognitionException { EObject current = null; - AntlrDatatypeRuleToken lv_value_0_0 = null; + Token otherlv_1=null; + Token otherlv_3=null; + Token otherlv_5=null; + Enumerator lv_op_0_0 = null; + + EObject lv_body_2_0 = null; + + EObject lv_condition_4_0 = null; enterRule(); try { - // InternalSolverLanguage.g:1155:2: ( ( (lv_value_0_0= ruleREALLiteral ) ) ) - // InternalSolverLanguage.g:1156:2: ( (lv_value_0_0= ruleREALLiteral ) ) + // 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= '}' ) ) + // 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= '}' ) { - // InternalSolverLanguage.g:1156:2: ( (lv_value_0_0= ruleREALLiteral ) ) - // InternalSolverLanguage.g:1157:3: (lv_value_0_0= ruleREALLiteral ) + // 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= '}' ) + // 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= '}' { - // InternalSolverLanguage.g:1157:3: (lv_value_0_0= ruleREALLiteral ) - // InternalSolverLanguage.g:1158:4: lv_value_0_0= ruleREALLiteral + // InternalSolverLanguage.g:1640:3: ( (lv_op_0_0= ruleAggregationOp ) ) + // InternalSolverLanguage.g:1641:4: (lv_op_0_0= ruleAggregationOp ) { + // InternalSolverLanguage.g:1641:4: (lv_op_0_0= ruleAggregationOp ) + // InternalSolverLanguage.g:1642:5: lv_op_0_0= ruleAggregationOp + { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getRealObjectAccess().getValueREALLiteralParserRuleCall_0()); - - pushFollow(FOLLOW_2); - lv_value_0_0=ruleREALLiteral(); + newCompositeNode(grammarAccess.getAggregationAccess().getOpAggregationOpEnumRuleCall_0_0()); + + } + pushFollow(FOLLOW_26); + lv_op_0_0=ruleAggregationOp(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - if (current==null) { - current = createModelElementForParent(grammarAccess.getRealObjectRule()); - } - set( - current, - "value", - lv_value_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.REALLiteral"); - afterParserOrEnumRuleCall(); - + if (current==null) { + current = createModelElementForParent(grammarAccess.getAggregationRule()); + } + set( + current, + "op", + lv_op_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.AggregationOp"); + afterParserOrEnumRuleCall(); + + } } } + otherlv_1=(Token)match(input,30,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_1, grammarAccess.getAggregationAccess().getLeftCurlyBracketKeyword_1()); + } + // InternalSolverLanguage.g:1663:3: ( (lv_body_2_0= ruleExpression ) ) + // InternalSolverLanguage.g:1664:4: (lv_body_2_0= ruleExpression ) + { + // InternalSolverLanguage.g:1664:4: (lv_body_2_0= ruleExpression ) + // InternalSolverLanguage.g:1665:5: lv_body_2_0= ruleExpression + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_28); + lv_body_2_0=ruleExpression(); - leaveRule(); - - } + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); + if (current==null) { + current = createModelElementForParent(grammarAccess.getAggregationRule()); + } + set( + current, + "body", + lv_body_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } - finally { - } - return current; - } - // $ANTLR end "ruleRealObject" + } - // $ANTLR start "entryRuleStringObject" - // InternalSolverLanguage.g:1178:1: entryRuleStringObject returns [EObject current=null] : iv_ruleStringObject= ruleStringObject EOF ; - public final EObject entryRuleStringObject() throws RecognitionException { - EObject current = null; - EObject iv_ruleStringObject = null; + } + otherlv_3=(Token)match(input,32,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - try { - // InternalSolverLanguage.g:1178:53: (iv_ruleStringObject= ruleStringObject EOF ) - // InternalSolverLanguage.g:1179:2: iv_ruleStringObject= ruleStringObject EOF + newLeafNode(otherlv_3, grammarAccess.getAggregationAccess().getVerticalLineKeyword_3()); + + } + // InternalSolverLanguage.g:1686:3: ( (lv_condition_4_0= ruleExpression ) ) + // InternalSolverLanguage.g:1687:4: (lv_condition_4_0= ruleExpression ) { - newCompositeNode(grammarAccess.getStringObjectRule()); - pushFollow(FOLLOW_1); - iv_ruleStringObject=ruleStringObject(); - - state._fsp--; - - current =iv_ruleStringObject; - match(input,EOF,FOLLOW_2); + // InternalSolverLanguage.g:1687:4: (lv_condition_4_0= ruleExpression ) + // InternalSolverLanguage.g:1688:5: lv_condition_4_0= ruleExpression + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0()); + } + pushFollow(FOLLOW_27); + lv_condition_4_0=ruleExpression(); - } + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); + if (current==null) { + current = createModelElementForParent(grammarAccess.getAggregationRule()); + } + set( + current, + "condition", + lv_condition_4_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + } - finally { - } - return current; - } - // $ANTLR end "entryRuleStringObject" - - - // $ANTLR start "ruleStringObject" - // InternalSolverLanguage.g:1185:1: ruleStringObject returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ; - public final EObject ruleStringObject() throws RecognitionException { - EObject current = null; - - Token lv_value_0_0=null; - - enterRule(); + } - try { - // InternalSolverLanguage.g:1191:2: ( ( (lv_value_0_0= RULE_STRING ) ) ) - // InternalSolverLanguage.g:1192:2: ( (lv_value_0_0= RULE_STRING ) ) - { - // InternalSolverLanguage.g:1192:2: ( (lv_value_0_0= RULE_STRING ) ) - // InternalSolverLanguage.g:1193:3: (lv_value_0_0= RULE_STRING ) - { - // InternalSolverLanguage.g:1193:3: (lv_value_0_0= RULE_STRING ) - // InternalSolverLanguage.g:1194:4: lv_value_0_0= RULE_STRING - { - lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); - newLeafNode(lv_value_0_0, grammarAccess.getStringObjectAccess().getValueSTRINGTerminalRuleCall_0()); - + } - if (current==null) { - current = createModelElement(grammarAccess.getStringObjectRule()); - } - setWithLastConsumed( - current, - "value", - lv_value_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); - + otherlv_5=(Token)match(input,31,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_5, grammarAccess.getAggregationAccess().getRightCurlyBracketKeyword_5()); + } - } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -3618,29 +4774,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleStringObject" + // $ANTLR end "ruleAggregation" - // $ANTLR start "entryRulePredicate" - // InternalSolverLanguage.g:1213:1: entryRulePredicate returns [EObject current=null] : iv_rulePredicate= rulePredicate EOF ; - public final EObject entryRulePredicate() throws RecognitionException { + // $ANTLR start "entryRuleAtomicExpression" + // InternalSolverLanguage.g:1713:1: entryRuleAtomicExpression returns [EObject current=null] : iv_ruleAtomicExpression= ruleAtomicExpression EOF ; + public final EObject entryRuleAtomicExpression() throws RecognitionException { EObject current = null; - EObject iv_rulePredicate = null; + EObject iv_ruleAtomicExpression = null; try { - // InternalSolverLanguage.g:1213:50: (iv_rulePredicate= rulePredicate EOF ) - // InternalSolverLanguage.g:1214:2: iv_rulePredicate= rulePredicate EOF + // InternalSolverLanguage.g:1713:57: (iv_ruleAtomicExpression= ruleAtomicExpression EOF ) + // InternalSolverLanguage.g:1714:2: iv_ruleAtomicExpression= ruleAtomicExpression EOF { - newCompositeNode(grammarAccess.getPredicateRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAtomicExpressionRule()); + } pushFollow(FOLLOW_1); - iv_rulePredicate=rulePredicate(); + iv_ruleAtomicExpression=ruleAtomicExpression(); state._fsp--; - - current =iv_rulePredicate; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleAtomicExpression; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -3654,366 +4814,245 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRulePredicate" + // $ANTLR end "entryRuleAtomicExpression" - // $ANTLR start "rulePredicate" - // 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= '.' ) ; - public final EObject rulePredicate() throws RecognitionException { + // $ANTLR start "ruleAtomicExpression" + // 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= ')' ) ) ; + public final EObject ruleAtomicExpression() throws RecognitionException { EObject current = null; - Token lv_isError_0_0=null; - Token otherlv_2=null; - Token otherlv_4=null; - Token otherlv_6=null; + Token otherlv_5=null; Token otherlv_7=null; - Token otherlv_8=null; - Token otherlv_10=null; - Token otherlv_12=null; - EObject lv_symbol_1_0 = null; + EObject this_Reference_0 = null; - EObject lv_parameters_3_0 = null; + EObject lv_argumentList_2_0 = null; - EObject lv_parameters_5_0 = null; + EObject this_Interval_3 = null; - EObject lv_bodies_9_0 = null; + EObject this_Literal_4 = null; - EObject lv_bodies_11_0 = null; + EObject this_Expression_6 = null; enterRule(); try { - // 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= '.' ) ) - // 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= '.' ) - { - // 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= '.' ) - // 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= '.' + // 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= ')' ) ) ) + // 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= ')' ) ) { - // InternalSolverLanguage.g:1228:3: ( (lv_isError_0_0= 'error' ) )? - int alt17=2; - int LA17_0 = input.LA(1); + // 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= ')' ) ) + int alt21=4; + switch ( input.LA(1) ) { + case RULE_ID: + case RULE_QUOTED_ID: + { + alt21=1; + } + break; + case 36: + { + alt21=2; + } + break; + case RULE_STRING: + case RULE_INT: + case 19: + case 39: + case 40: + case 70: + case 71: + case 72: + { + alt21=3; + } + break; + case 33: + { + alt21=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 21, 0, input); - if ( (LA17_0==16) ) { - alt17=1; + throw nvae; } - switch (alt17) { + + switch (alt21) { case 1 : - // InternalSolverLanguage.g:1229:4: (lv_isError_0_0= 'error' ) + // InternalSolverLanguage.g:1728:3: (this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? ) { - // InternalSolverLanguage.g:1229:4: (lv_isError_0_0= 'error' ) - // InternalSolverLanguage.g:1230:5: lv_isError_0_0= 'error' + // InternalSolverLanguage.g:1728:3: (this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? ) + // InternalSolverLanguage.g:1729:4: this_Reference_0= ruleReference ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? { - lv_isError_0_0=(Token)match(input,16,FOLLOW_12); + if ( state.backtracking==0 ) { - newLeafNode(lv_isError_0_0, grammarAccess.getPredicateAccess().getIsErrorErrorKeyword_0_0()); - + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getReferenceParserRuleCall_0_0()); + + } + pushFollow(FOLLOW_29); + this_Reference_0=ruleReference(); - if (current==null) { - current = createModelElement(grammarAccess.getPredicateRule()); - } - setWithLastConsumed(current, "isError", true, "error"); - + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current = this_Reference_0; + afterParserOrEnumRuleCall(); + } + // InternalSolverLanguage.g:1737:4: ( () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) )? + int alt20=2; + int LA20_0 = input.LA(1); - + if ( (LA20_0==33) ) { + alt20=1; } - break; + switch (alt20) { + case 1 : + // InternalSolverLanguage.g:1738:5: () ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) + { + // InternalSolverLanguage.g:1738:5: () + // InternalSolverLanguage.g:1739:6: + { + if ( state.backtracking==0 ) { - } + current = forceCreateModelElementAndSet( + grammarAccess.getAtomicExpressionAccess().getCallFunctorAction_0_1_0(), + current); + + } - // InternalSolverLanguage.g:1242:3: ( (lv_symbol_1_0= ruleModelSymbol ) ) - // InternalSolverLanguage.g:1243:4: (lv_symbol_1_0= ruleModelSymbol ) - { - // InternalSolverLanguage.g:1243:4: (lv_symbol_1_0= ruleModelSymbol ) - // InternalSolverLanguage.g:1244:5: lv_symbol_1_0= ruleModelSymbol - { + } - newCompositeNode(grammarAccess.getPredicateAccess().getSymbolModelSymbolParserRuleCall_1_0()); - - pushFollow(FOLLOW_14); - lv_symbol_1_0=ruleModelSymbol(); + // InternalSolverLanguage.g:1745:5: ( ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) ) + // InternalSolverLanguage.g:1746:6: ( '(' )=> (lv_argumentList_2_0= ruleArgumentList ) + { + // InternalSolverLanguage.g:1747:6: (lv_argumentList_2_0= ruleArgumentList ) + // InternalSolverLanguage.g:1748:7: lv_argumentList_2_0= ruleArgumentList + { + if ( state.backtracking==0 ) { - state._fsp--; + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getArgumentListArgumentListParserRuleCall_0_1_1_0()); + + } + pushFollow(FOLLOW_2); + lv_argumentList_2_0=ruleArgumentList(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getAtomicExpressionRule()); + } + set( + current, + "argumentList", + lv_argumentList_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); + afterParserOrEnumRuleCall(); + + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getPredicateRule()); - } - set( - current, - "symbol", - lv_symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - - - } - - - } - - // InternalSolverLanguage.g:1261:3: (otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? otherlv_6= ')' )? - int alt20=2; - int LA20_0 = input.LA(1); - - if ( (LA20_0==17) ) { - alt20=1; - } - switch (alt20) { - case 1 : - // InternalSolverLanguage.g:1262:4: otherlv_2= '(' ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? otherlv_6= ')' - { - otherlv_2=(Token)match(input,17,FOLLOW_15); - - newLeafNode(otherlv_2, grammarAccess.getPredicateAccess().getLeftParenthesisKeyword_2_0()); - - // InternalSolverLanguage.g:1266:4: ( ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* )? - int alt19=2; - int LA19_0 = input.LA(1); - - if ( (LA19_0==RULE_ID) ) { - alt19=1; - } - switch (alt19) { - case 1 : - // InternalSolverLanguage.g:1267:5: ( (lv_parameters_3_0= ruleParameter ) ) (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* - { - // InternalSolverLanguage.g:1267:5: ( (lv_parameters_3_0= ruleParameter ) ) - // InternalSolverLanguage.g:1268:6: (lv_parameters_3_0= ruleParameter ) - { - // InternalSolverLanguage.g:1268:6: (lv_parameters_3_0= ruleParameter ) - // InternalSolverLanguage.g:1269:7: lv_parameters_3_0= ruleParameter - { - - newCompositeNode(grammarAccess.getPredicateAccess().getParametersParameterParserRuleCall_2_1_0_0()); - - pushFollow(FOLLOW_8); - lv_parameters_3_0=ruleParameter(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getPredicateRule()); - } - add( - current, - "parameters", - lv_parameters_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Parameter"); - afterParserOrEnumRuleCall(); - - - } + } } - // InternalSolverLanguage.g:1286:5: (otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) )* - loop18: - do { - int alt18=2; - int LA18_0 = input.LA(1); - - if ( (LA18_0==18) ) { - alt18=1; - } - - - switch (alt18) { - case 1 : - // InternalSolverLanguage.g:1287:6: otherlv_4= ',' ( (lv_parameters_5_0= ruleParameter ) ) - { - otherlv_4=(Token)match(input,18,FOLLOW_12); - - newLeafNode(otherlv_4, grammarAccess.getPredicateAccess().getCommaKeyword_2_1_1_0()); - - // InternalSolverLanguage.g:1291:6: ( (lv_parameters_5_0= ruleParameter ) ) - // InternalSolverLanguage.g:1292:7: (lv_parameters_5_0= ruleParameter ) - { - // InternalSolverLanguage.g:1292:7: (lv_parameters_5_0= ruleParameter ) - // InternalSolverLanguage.g:1293:8: lv_parameters_5_0= ruleParameter - { - - newCompositeNode(grammarAccess.getPredicateAccess().getParametersParameterParserRuleCall_2_1_1_1_0()); - - pushFollow(FOLLOW_8); - lv_parameters_5_0=ruleParameter(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getPredicateRule()); - } - add( - current, - "parameters", - lv_parameters_5_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Parameter"); - afterParserOrEnumRuleCall(); - - - } - - - } - - - } - break; - - default : - break loop18; - } - } while (true); - } break; } - otherlv_6=(Token)match(input,19,FOLLOW_16); - - newLeafNode(otherlv_6, grammarAccess.getPredicateAccess().getRightParenthesisKeyword_2_2()); - } - break; - - } - - otherlv_7=(Token)match(input,28,FOLLOW_17); - - newLeafNode(otherlv_7, grammarAccess.getPredicateAccess().getColonHyphenMinusKeyword_3()); - - // InternalSolverLanguage.g:1321:3: (otherlv_8= 'false' | ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* ) ) - int alt22=2; - int LA22_0 = input.LA(1); - - if ( (LA22_0==14) ) { - alt22=1; - } - else if ( (LA22_0==EOF||LA22_0==RULE_ID||(LA22_0>=11 && LA22_0<=13)||(LA22_0>=29 && LA22_0<=31)) ) { - alt22=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 22, 0, input); - - throw nvae; - } - switch (alt22) { - case 1 : - // InternalSolverLanguage.g:1322:4: otherlv_8= 'false' - { - otherlv_8=(Token)match(input,14,FOLLOW_5); - newLeafNode(otherlv_8, grammarAccess.getPredicateAccess().getFalseKeyword_4_0()); - } break; case 2 : - // InternalSolverLanguage.g:1327:4: ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* ) - { - // InternalSolverLanguage.g:1327:4: ( ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* ) - // InternalSolverLanguage.g:1328:5: ( (lv_bodies_9_0= rulePatternBody ) ) (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* - { - // InternalSolverLanguage.g:1328:5: ( (lv_bodies_9_0= rulePatternBody ) ) - // InternalSolverLanguage.g:1329:6: (lv_bodies_9_0= rulePatternBody ) - { - // InternalSolverLanguage.g:1329:6: (lv_bodies_9_0= rulePatternBody ) - // InternalSolverLanguage.g:1330:7: lv_bodies_9_0= rulePatternBody + // InternalSolverLanguage.g:1768:3: this_Interval_3= ruleInterval { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getPredicateAccess().getBodiesPatternBodyParserRuleCall_4_1_0_0()); - - pushFollow(FOLLOW_18); - lv_bodies_9_0=rulePatternBody(); + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getIntervalParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_Interval_3=ruleInterval(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - if (current==null) { - current = createModelElementForParent(grammarAccess.getPredicateRule()); - } - add( - current, - "bodies", - lv_bodies_9_0, - "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody"); - afterParserOrEnumRuleCall(); - - + current = this_Interval_3; + afterParserOrEnumRuleCall(); + } - } + break; + case 3 : + // InternalSolverLanguage.g:1777:3: this_Literal_4= ruleLiteral + { + if ( state.backtracking==0 ) { - // InternalSolverLanguage.g:1347:5: (otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) )* - loop21: - do { - int alt21=2; - int LA21_0 = input.LA(1); - - if ( (LA21_0==29) ) { - alt21=1; - } - - - switch (alt21) { - case 1 : - // InternalSolverLanguage.g:1348:6: otherlv_10= '|' ( (lv_bodies_11_0= rulePatternBody ) ) - { - otherlv_10=(Token)match(input,29,FOLLOW_19); - - newLeafNode(otherlv_10, grammarAccess.getPredicateAccess().getVerticalLineKeyword_4_1_1_0()); - - // InternalSolverLanguage.g:1352:6: ( (lv_bodies_11_0= rulePatternBody ) ) - // InternalSolverLanguage.g:1353:7: (lv_bodies_11_0= rulePatternBody ) - { - // InternalSolverLanguage.g:1353:7: (lv_bodies_11_0= rulePatternBody ) - // InternalSolverLanguage.g:1354:8: lv_bodies_11_0= rulePatternBody - { - - newCompositeNode(grammarAccess.getPredicateAccess().getBodiesPatternBodyParserRuleCall_4_1_1_1_0()); - - pushFollow(FOLLOW_18); - lv_bodies_11_0=rulePatternBody(); - - state._fsp--; - + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getLiteralParserRuleCall_2()); + + } + pushFollow(FOLLOW_2); + this_Literal_4=ruleLiteral(); - if (current==null) { - current = createModelElementForParent(grammarAccess.getPredicateRule()); - } - add( - current, - "bodies", - lv_bodies_11_0, - "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody"); - afterParserOrEnumRuleCall(); - + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - } + current = this_Literal_4; + afterParserOrEnumRuleCall(); + + } + } + break; + case 4 : + // InternalSolverLanguage.g:1786:3: (otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')' ) + { + // InternalSolverLanguage.g:1786:3: (otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')' ) + // InternalSolverLanguage.g:1787:4: otherlv_5= '(' this_Expression_6= ruleExpression otherlv_7= ')' + { + otherlv_5=(Token)match(input,33,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + newLeafNode(otherlv_5, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_3_0()); + + } + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getAtomicExpressionAccess().getExpressionParserRuleCall_3_1()); + + } + pushFollow(FOLLOW_30); + this_Expression_6=ruleExpression(); - } - break; + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - default : - break loop21; - } - } while (true); + current = this_Expression_6; + afterParserOrEnumRuleCall(); + + } + otherlv_7=(Token)match(input,34,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_7, grammarAccess.getAtomicExpressionAccess().getRightParenthesisKeyword_3_2()); + + } } @@ -4023,19 +5062,14 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_12=(Token)match(input,12,FOLLOW_2); - - newLeafNode(otherlv_12, grammarAccess.getPredicateAccess().getFullStopKeyword_5()); - - - } - } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -4046,29 +5080,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "rulePredicate" + // $ANTLR end "ruleAtomicExpression" - // $ANTLR start "entryRuleParameter" - // InternalSolverLanguage.g:1382:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ; - public final EObject entryRuleParameter() throws RecognitionException { + // $ANTLR start "entryRuleCall" + // InternalSolverLanguage.g:1808:1: entryRuleCall returns [EObject current=null] : iv_ruleCall= ruleCall EOF ; + public final EObject entryRuleCall() throws RecognitionException { EObject current = null; - EObject iv_ruleParameter = null; + EObject iv_ruleCall = null; try { - // InternalSolverLanguage.g:1382:50: (iv_ruleParameter= ruleParameter EOF ) - // InternalSolverLanguage.g:1383:2: iv_ruleParameter= ruleParameter EOF + // InternalSolverLanguage.g:1808:45: (iv_ruleCall= ruleCall EOF ) + // InternalSolverLanguage.g:1809:2: iv_ruleCall= ruleCall EOF { - newCompositeNode(grammarAccess.getParameterRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getCallRule()); + } pushFollow(FOLLOW_1); - iv_ruleParameter=ruleParameter(); + iv_ruleCall=ruleCall(); state._fsp--; - - current =iv_ruleParameter; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleCall; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -4082,101 +5120,140 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleParameter" + // $ANTLR end "entryRuleCall" - // $ANTLR start "ruleParameter" - // InternalSolverLanguage.g:1389:1: ruleParameter returns [EObject current=null] : ( ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? ) ; - public final EObject ruleParameter() throws RecognitionException { + // $ANTLR start "ruleCall" + // 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 ) ) ) ; + public final EObject ruleCall() throws RecognitionException { EObject current = null; - Token otherlv_1=null; - EObject lv_variable_0_0 = null; + Token lv_transitiveClosure_1_0=null; + Token lv_reflexiveTransitiveClosure_2_0=null; + EObject lv_functor_0_0 = null; - EObject lv_type_2_0 = null; + EObject lv_argumentList_3_0 = null; enterRule(); try { - // InternalSolverLanguage.g:1395:2: ( ( ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? ) ) - // InternalSolverLanguage.g:1396:2: ( ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? ) + // 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 ) ) ) ) + // 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 ) ) ) { - // InternalSolverLanguage.g:1396:2: ( ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? ) - // InternalSolverLanguage.g:1397:3: ( (lv_variable_0_0= ruleVariable ) ) (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? + // 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 ) ) ) + // 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 ) ) { - // InternalSolverLanguage.g:1397:3: ( (lv_variable_0_0= ruleVariable ) ) - // InternalSolverLanguage.g:1398:4: (lv_variable_0_0= ruleVariable ) + // InternalSolverLanguage.g:1823:3: ( (lv_functor_0_0= ruleReference ) ) + // InternalSolverLanguage.g:1824:4: (lv_functor_0_0= ruleReference ) { - // InternalSolverLanguage.g:1398:4: (lv_variable_0_0= ruleVariable ) - // InternalSolverLanguage.g:1399:5: lv_variable_0_0= ruleVariable + // InternalSolverLanguage.g:1824:4: (lv_functor_0_0= ruleReference ) + // InternalSolverLanguage.g:1825:5: lv_functor_0_0= ruleReference { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getParameterAccess().getVariableVariableParserRuleCall_0_0()); - - pushFollow(FOLLOW_20); - lv_variable_0_0=ruleVariable(); + newCompositeNode(grammarAccess.getCallAccess().getFunctorReferenceParserRuleCall_0_0()); + + } + pushFollow(FOLLOW_31); + lv_functor_0_0=ruleReference(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - if (current==null) { - current = createModelElementForParent(grammarAccess.getParameterRule()); - } - set( - current, - "variable", - lv_variable_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); - afterParserOrEnumRuleCall(); - + if (current==null) { + current = createModelElementForParent(grammarAccess.getCallRule()); + } + set( + current, + "functor", + lv_functor_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Reference"); + afterParserOrEnumRuleCall(); + + } } } - // InternalSolverLanguage.g:1416:3: (otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) )? - int alt23=2; - int LA23_0 = input.LA(1); + // InternalSolverLanguage.g:1842:3: ( ( (lv_transitiveClosure_1_0= RULE_STAR ) ) | ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) ) )? + int alt22=3; + int LA22_0 = input.LA(1); - if ( (LA23_0==20) ) { - alt23=1; + if ( (LA22_0==RULE_STAR) ) { + alt22=1; + } + else if ( (LA22_0==RULE_PLUS) ) { + alt22=2; } - switch (alt23) { + switch (alt22) { case 1 : - // InternalSolverLanguage.g:1417:4: otherlv_1= ':' ( (lv_type_2_0= ruleSymbol ) ) + // InternalSolverLanguage.g:1843:4: ( (lv_transitiveClosure_1_0= RULE_STAR ) ) { - otherlv_1=(Token)match(input,20,FOLLOW_21); - - newLeafNode(otherlv_1, grammarAccess.getParameterAccess().getColonKeyword_1_0()); - - // InternalSolverLanguage.g:1421:4: ( (lv_type_2_0= ruleSymbol ) ) - // InternalSolverLanguage.g:1422:5: (lv_type_2_0= ruleSymbol ) + // InternalSolverLanguage.g:1843:4: ( (lv_transitiveClosure_1_0= RULE_STAR ) ) + // InternalSolverLanguage.g:1844:5: (lv_transitiveClosure_1_0= RULE_STAR ) { - // InternalSolverLanguage.g:1422:5: (lv_type_2_0= ruleSymbol ) - // InternalSolverLanguage.g:1423:6: lv_type_2_0= ruleSymbol + // InternalSolverLanguage.g:1844:5: (lv_transitiveClosure_1_0= RULE_STAR ) + // InternalSolverLanguage.g:1845:6: lv_transitiveClosure_1_0= RULE_STAR { + lv_transitiveClosure_1_0=(Token)match(input,RULE_STAR,FOLLOW_10); if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getParameterAccess().getTypeSymbolParserRuleCall_1_1_0()); - - pushFollow(FOLLOW_2); - lv_type_2_0=ruleSymbol(); + newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getCallAccess().getTransitiveClosureSTARTerminalRuleCall_1_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getCallRule()); + } + setWithLastConsumed( + current, + "transitiveClosure", + true, + "org.eclipse.viatra.solver.language.SolverLanguage.STAR"); + + } + + } + + + } - state._fsp--; + } + break; + case 2 : + // InternalSolverLanguage.g:1862:4: ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) ) + { + // InternalSolverLanguage.g:1862:4: ( (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) ) + // InternalSolverLanguage.g:1863:5: (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) + { + // InternalSolverLanguage.g:1863:5: (lv_reflexiveTransitiveClosure_2_0= RULE_PLUS ) + // InternalSolverLanguage.g:1864:6: lv_reflexiveTransitiveClosure_2_0= RULE_PLUS + { + lv_reflexiveTransitiveClosure_2_0=(Token)match(input,RULE_PLUS,FOLLOW_10); if (state.failed) return current; + if ( state.backtracking==0 ) { - if (current==null) { - current = createModelElementForParent(grammarAccess.getParameterRule()); - } - set( - current, - "type", - lv_type_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); - afterParserOrEnumRuleCall(); - + newLeafNode(lv_reflexiveTransitiveClosure_2_0, grammarAccess.getCallAccess().getReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getCallRule()); + } + setWithLastConsumed( + current, + "reflexiveTransitiveClosure", + true, + "org.eclipse.viatra.solver.language.SolverLanguage.PLUS"); + + } } @@ -4189,6 +5266,38 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + // InternalSolverLanguage.g:1881:3: ( (lv_argumentList_3_0= ruleArgumentList ) ) + // InternalSolverLanguage.g:1882:4: (lv_argumentList_3_0= ruleArgumentList ) + { + // InternalSolverLanguage.g:1882:4: (lv_argumentList_3_0= ruleArgumentList ) + // InternalSolverLanguage.g:1883:5: lv_argumentList_3_0= ruleArgumentList + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getCallAccess().getArgumentListArgumentListParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_2); + lv_argumentList_3_0=ruleArgumentList(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getCallRule()); + } + set( + current, + "argumentList", + lv_argumentList_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); + afterParserOrEnumRuleCall(); + + } + + } + } @@ -4196,8 +5305,13 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - leaveRule(); + } + + if ( state.backtracking==0 ) { + leaveRule(); + + } } catch (RecognitionException re) { @@ -4208,29 +5322,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleParameter" + // $ANTLR end "ruleCall" - // $ANTLR start "entryRulePatternBody" - // InternalSolverLanguage.g:1445:1: entryRulePatternBody returns [EObject current=null] : iv_rulePatternBody= rulePatternBody EOF ; - public final EObject entryRulePatternBody() throws RecognitionException { + // $ANTLR start "entryRuleArgumentList" + // InternalSolverLanguage.g:1904:1: entryRuleArgumentList returns [EObject current=null] : iv_ruleArgumentList= ruleArgumentList EOF ; + public final EObject entryRuleArgumentList() throws RecognitionException { EObject current = null; - EObject iv_rulePatternBody = null; + EObject iv_ruleArgumentList = null; try { - // InternalSolverLanguage.g:1445:52: (iv_rulePatternBody= rulePatternBody EOF ) - // InternalSolverLanguage.g:1446:2: iv_rulePatternBody= rulePatternBody EOF + // InternalSolverLanguage.g:1904:53: (iv_ruleArgumentList= ruleArgumentList EOF ) + // InternalSolverLanguage.g:1905:2: iv_ruleArgumentList= ruleArgumentList EOF { - newCompositeNode(grammarAccess.getPatternBodyRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getArgumentListRule()); + } pushFollow(FOLLOW_1); - iv_rulePatternBody=rulePatternBody(); + iv_ruleArgumentList=ruleArgumentList(); state._fsp--; - - current =iv_rulePatternBody; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleArgumentList; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -4244,106 +5362,150 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRulePatternBody" + // $ANTLR end "entryRuleArgumentList" - // $ANTLR start "rulePatternBody" - // InternalSolverLanguage.g:1452:1: rulePatternBody returns [EObject current=null] : ( () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) ) ; - public final EObject rulePatternBody() throws RecognitionException { + // $ANTLR start "ruleArgumentList" + // 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= ')' ) ; + public final EObject ruleArgumentList() throws RecognitionException { EObject current = null; Token otherlv_1=null; - EObject lv_constraints_2_0 = null; + Token otherlv_3=null; + Token otherlv_5=null; + EObject lv_arguments_2_0 = null; + + EObject lv_arguments_4_0 = null; enterRule(); try { - // InternalSolverLanguage.g:1458:2: ( ( () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) ) ) - // InternalSolverLanguage.g:1459:2: ( () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) ) + // InternalSolverLanguage.g:1917:2: ( ( () otherlv_1= '(' ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= ')' ) ) + // InternalSolverLanguage.g:1918:2: ( () otherlv_1= '(' ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= ')' ) { - // InternalSolverLanguage.g:1459:2: ( () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) ) - // InternalSolverLanguage.g:1460:3: () (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) + // InternalSolverLanguage.g:1918:2: ( () otherlv_1= '(' ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= ')' ) + // InternalSolverLanguage.g:1919:3: () otherlv_1= '(' ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? otherlv_5= ')' { - // InternalSolverLanguage.g:1460:3: () - // InternalSolverLanguage.g:1461:4: + // InternalSolverLanguage.g:1919:3: () + // InternalSolverLanguage.g:1920:4: { + if ( state.backtracking==0 ) { - current = forceCreateModelElement( - grammarAccess.getPatternBodyAccess().getPatternBodyAction_0(), - current); - + current = forceCreateModelElement( + grammarAccess.getArgumentListAccess().getArgumentListAction_0(), + current); + + } } - // InternalSolverLanguage.g:1467:3: (otherlv_1= 'true' | ( (lv_constraints_2_0= ruleConstraint ) )* ) - int alt25=2; - int LA25_0 = input.LA(1); + otherlv_1=(Token)match(input,33,FOLLOW_32); if (state.failed) return current; + if ( state.backtracking==0 ) { - if ( (LA25_0==13) ) { - alt25=1; - } - else if ( (LA25_0==EOF||LA25_0==RULE_ID||(LA25_0>=11 && LA25_0<=12)||(LA25_0>=29 && LA25_0<=31)) ) { - alt25=2; + newLeafNode(otherlv_1, grammarAccess.getArgumentListAccess().getLeftParenthesisKeyword_1()); + } - else { - NoViableAltException nvae = - new NoViableAltException("", 25, 0, input); + // InternalSolverLanguage.g:1930:3: ( ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* )? + int alt24=2; + int LA24_0 = input.LA(1); - throw nvae; + 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)) ) { + alt24=1; } - switch (alt25) { + switch (alt24) { case 1 : - // InternalSolverLanguage.g:1468:4: otherlv_1= 'true' + // InternalSolverLanguage.g:1931:4: ( (lv_arguments_2_0= ruleArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* { - otherlv_1=(Token)match(input,13,FOLLOW_2); + // InternalSolverLanguage.g:1931:4: ( (lv_arguments_2_0= ruleArgument ) ) + // InternalSolverLanguage.g:1932:5: (lv_arguments_2_0= ruleArgument ) + { + // InternalSolverLanguage.g:1932:5: (lv_arguments_2_0= ruleArgument ) + // InternalSolverLanguage.g:1933:6: lv_arguments_2_0= ruleArgument + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_0_0()); + + } + pushFollow(FOLLOW_33); + lv_arguments_2_0=ruleArgument(); - newLeafNode(otherlv_1, grammarAccess.getPatternBodyAccess().getTrueKeyword_1_0()); - + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getArgumentListRule()); + } + add( + current, + "arguments", + lv_arguments_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Argument"); + afterParserOrEnumRuleCall(); + + } } - break; - case 2 : - // InternalSolverLanguage.g:1473:4: ( (lv_constraints_2_0= ruleConstraint ) )* - { - // InternalSolverLanguage.g:1473:4: ( (lv_constraints_2_0= ruleConstraint ) )* - loop24: + + + } + + // InternalSolverLanguage.g:1950:4: (otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) )* + loop23: do { - int alt24=2; - int LA24_0 = input.LA(1); + int alt23=2; + int LA23_0 = input.LA(1); - if ( (LA24_0==RULE_ID||LA24_0==11||(LA24_0>=30 && LA24_0<=31)) ) { - alt24=1; + if ( (LA23_0==28) ) { + alt23=1; } - switch (alt24) { + switch (alt23) { case 1 : - // InternalSolverLanguage.g:1474:5: (lv_constraints_2_0= ruleConstraint ) + // InternalSolverLanguage.g:1951:5: otherlv_3= ',' ( (lv_arguments_4_0= ruleArgument ) ) + { + otherlv_3=(Token)match(input,28,FOLLOW_34); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getArgumentListAccess().getCommaKeyword_2_1_0()); + + } + // InternalSolverLanguage.g:1955:5: ( (lv_arguments_4_0= ruleArgument ) ) + // InternalSolverLanguage.g:1956:6: (lv_arguments_4_0= ruleArgument ) { - // InternalSolverLanguage.g:1474:5: (lv_constraints_2_0= ruleConstraint ) - // InternalSolverLanguage.g:1475:6: lv_constraints_2_0= ruleConstraint + // InternalSolverLanguage.g:1956:6: (lv_arguments_4_0= ruleArgument ) + // InternalSolverLanguage.g:1957:7: lv_arguments_4_0= ruleArgument { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getPatternBodyAccess().getConstraintsConstraintParserRuleCall_1_1_0()); - - pushFollow(FOLLOW_22); - lv_constraints_2_0=ruleConstraint(); + newCompositeNode(grammarAccess.getArgumentListAccess().getArgumentsArgumentParserRuleCall_2_1_1_0()); + + } + pushFollow(FOLLOW_33); + lv_arguments_4_0=ruleArgument(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getArgumentListRule()); + } + add( + current, + "arguments", + lv_arguments_4_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Argument"); + afterParserOrEnumRuleCall(); + + } + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getPatternBodyRule()); - } - add( - current, - "constraints", - lv_constraints_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Constraint"); - afterParserOrEnumRuleCall(); - } @@ -4352,7 +5514,7 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { break; default : - break loop24; + break loop23; } } while (true); @@ -4362,15 +5524,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + otherlv_5=(Token)match(input,34,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getArgumentListAccess().getRightParenthesisKeyword_3()); + + } } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -4381,29 +5551,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "rulePatternBody" + // $ANTLR end "ruleArgumentList" - // $ANTLR start "entryRulePolarity" - // InternalSolverLanguage.g:1497:1: entryRulePolarity returns [EObject current=null] : iv_rulePolarity= rulePolarity EOF ; - public final EObject entryRulePolarity() throws RecognitionException { + // $ANTLR start "entryRuleArgument" + // InternalSolverLanguage.g:1984:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ; + public final EObject entryRuleArgument() throws RecognitionException { EObject current = null; - EObject iv_rulePolarity = null; + EObject iv_ruleArgument = null; try { - // InternalSolverLanguage.g:1497:49: (iv_rulePolarity= rulePolarity EOF ) - // InternalSolverLanguage.g:1498:2: iv_rulePolarity= rulePolarity EOF + // InternalSolverLanguage.g:1984:49: (iv_ruleArgument= ruleArgument EOF ) + // InternalSolverLanguage.g:1985:2: iv_ruleArgument= ruleArgument EOF { - newCompositeNode(grammarAccess.getPolarityRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getArgumentRule()); + } pushFollow(FOLLOW_1); - iv_rulePolarity=rulePolarity(); + iv_ruleArgument=ruleArgument(); state._fsp--; - - current =iv_rulePolarity; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleArgument; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -4417,92 +5591,119 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRulePolarity" + // $ANTLR end "entryRuleArgument" - // $ANTLR start "rulePolarity" - // InternalSolverLanguage.g:1504:1: rulePolarity returns [EObject current=null] : ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) ) ; - public final EObject rulePolarity() throws RecognitionException { + // $ANTLR start "ruleArgument" + // 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 ) ; + public final EObject ruleArgument() throws RecognitionException { EObject current = null; - Token otherlv_1=null; - Token otherlv_3=null; + EObject this_ExpressionArgument_0 = null; + + EObject this_StarArgument_1 = null; + + EObject this_TypedArgument_2 = null; + + EObject this_TypedStarArgument_3 = null; + enterRule(); try { - // InternalSolverLanguage.g:1510:2: ( ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) ) ) - // InternalSolverLanguage.g:1511:2: ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) ) + // InternalSolverLanguage.g:1997:2: ( (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) ) + // InternalSolverLanguage.g:1998:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) { - // InternalSolverLanguage.g:1511:2: ( ( () otherlv_1= '+' ) | ( () otherlv_3= '-' ) ) - int alt26=2; - int LA26_0 = input.LA(1); - - if ( (LA26_0==30) ) { - alt26=1; - } - else if ( (LA26_0==11) ) { - alt26=2; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 26, 0, input); - - throw nvae; - } - switch (alt26) { + // InternalSolverLanguage.g:1998:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument ) + int alt25=4; + alt25 = dfa25.predict(input); + switch (alt25) { case 1 : - // InternalSolverLanguage.g:1512:3: ( () otherlv_1= '+' ) - { - // InternalSolverLanguage.g:1512:3: ( () otherlv_1= '+' ) - // InternalSolverLanguage.g:1513:4: () otherlv_1= '+' - { - // InternalSolverLanguage.g:1513:4: () - // InternalSolverLanguage.g:1514:5: + // InternalSolverLanguage.g:1999:3: this_ExpressionArgument_0= ruleExpressionArgument { + if ( state.backtracking==0 ) { - current = forceCreateModelElement( - grammarAccess.getPolarityAccess().getPositiveAction_0_0(), - current); - - + newCompositeNode(grammarAccess.getArgumentAccess().getExpressionArgumentParserRuleCall_0()); + } + pushFollow(FOLLOW_2); + this_ExpressionArgument_0=ruleExpressionArgument(); - otherlv_1=(Token)match(input,30,FOLLOW_2); - - newLeafNode(otherlv_1, grammarAccess.getPolarityAccess().getPlusSignKeyword_0_1()); - + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current = this_ExpressionArgument_0; + afterParserOrEnumRuleCall(); + } - } break; case 2 : - // InternalSolverLanguage.g:1526:3: ( () otherlv_3= '-' ) - { - // InternalSolverLanguage.g:1526:3: ( () otherlv_3= '-' ) - // InternalSolverLanguage.g:1527:4: () otherlv_3= '-' - { - // InternalSolverLanguage.g:1527:4: () - // InternalSolverLanguage.g:1528:5: + // InternalSolverLanguage.g:2008:3: this_StarArgument_1= ruleStarArgument { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getArgumentAccess().getStarArgumentParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_StarArgument_1=ruleStarArgument(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_StarArgument_1; + afterParserOrEnumRuleCall(); + + } - current = forceCreateModelElement( - grammarAccess.getPolarityAccess().getNegativeAction_1_0(), - current); - + } + break; + case 3 : + // InternalSolverLanguage.g:2017:3: this_TypedArgument_2= ruleTypedArgument + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getArgumentAccess().getTypedArgumentParserRuleCall_2()); + } + pushFollow(FOLLOW_2); + this_TypedArgument_2=ruleTypedArgument(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - otherlv_3=(Token)match(input,11,FOLLOW_2); + current = this_TypedArgument_2; + afterParserOrEnumRuleCall(); + + } - newLeafNode(otherlv_3, grammarAccess.getPolarityAccess().getHyphenMinusKeyword_1_1()); - + } + break; + case 4 : + // InternalSolverLanguage.g:2026:3: this_TypedStarArgument_3= ruleTypedStarArgument + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getArgumentAccess().getTypedStarArgumentParserRuleCall_3()); + } + pushFollow(FOLLOW_2); + this_TypedStarArgument_3=ruleTypedStarArgument(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current = this_TypedStarArgument_3; + afterParserOrEnumRuleCall(); + + } } break; @@ -4512,9 +5713,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -4525,29 +5728,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "rulePolarity" + // $ANTLR end "ruleArgument" - // $ANTLR start "entryRuleConstraint" - // InternalSolverLanguage.g:1543:1: entryRuleConstraint returns [EObject current=null] : iv_ruleConstraint= ruleConstraint EOF ; - public final EObject entryRuleConstraint() throws RecognitionException { + // $ANTLR start "entryRuleExpressionArgument" + // InternalSolverLanguage.g:2038:1: entryRuleExpressionArgument returns [EObject current=null] : iv_ruleExpressionArgument= ruleExpressionArgument EOF ; + public final EObject entryRuleExpressionArgument() throws RecognitionException { EObject current = null; - EObject iv_ruleConstraint = null; + EObject iv_ruleExpressionArgument = null; try { - // InternalSolverLanguage.g:1543:51: (iv_ruleConstraint= ruleConstraint EOF ) - // InternalSolverLanguage.g:1544:2: iv_ruleConstraint= ruleConstraint EOF + // InternalSolverLanguage.g:2038:59: (iv_ruleExpressionArgument= ruleExpressionArgument EOF ) + // InternalSolverLanguage.g:2039:2: iv_ruleExpressionArgument= ruleExpressionArgument EOF { - newCompositeNode(grammarAccess.getConstraintRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExpressionArgumentRule()); + } pushFollow(FOLLOW_1); - iv_ruleConstraint=ruleConstraint(); + iv_ruleExpressionArgument=ruleExpressionArgument(); state._fsp--; - - current =iv_ruleConstraint; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleExpressionArgument; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -4561,439 +5768,3443 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleConstraint" + // $ANTLR end "entryRuleExpressionArgument" - // $ANTLR start "ruleConstraint" - // 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= ')' ) ) ; - public final EObject ruleConstraint() throws RecognitionException { + // $ANTLR start "ruleExpressionArgument" + // InternalSolverLanguage.g:2045:1: ruleExpressionArgument returns [EObject current=null] : ( (lv_body_0_0= ruleComparisonExpression ) ) ; + public final EObject ruleExpressionArgument() throws RecognitionException { EObject current = null; - Token otherlv_2=null; - Token otherlv_4=null; - Token otherlv_6=null; - Token otherlv_8=null; - Token otherlv_10=null; - Token otherlv_12=null; - EObject lv_polarity_0_0 = null; + EObject lv_body_0_0 = null; - EObject lv_symbol_1_0 = null; - EObject lv_params_3_0 = null; - EObject lv_params_5_0 = null; + enterRule(); + + try { + // InternalSolverLanguage.g:2051:2: ( ( (lv_body_0_0= ruleComparisonExpression ) ) ) + // InternalSolverLanguage.g:2052:2: ( (lv_body_0_0= ruleComparisonExpression ) ) + { + // InternalSolverLanguage.g:2052:2: ( (lv_body_0_0= ruleComparisonExpression ) ) + // InternalSolverLanguage.g:2053:3: (lv_body_0_0= ruleComparisonExpression ) + { + // InternalSolverLanguage.g:2053:3: (lv_body_0_0= ruleComparisonExpression ) + // InternalSolverLanguage.g:2054:4: lv_body_0_0= ruleComparisonExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + lv_body_0_0=ruleComparisonExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getExpressionArgumentRule()); + } + set( + current, + "body", + lv_body_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleExpressionArgument" + + + // $ANTLR start "entryRuleStarArgument" + // InternalSolverLanguage.g:2074:1: entryRuleStarArgument returns [EObject current=null] : iv_ruleStarArgument= ruleStarArgument EOF ; + public final EObject entryRuleStarArgument() throws RecognitionException { + EObject current = null; + + EObject iv_ruleStarArgument = null; + + + try { + // InternalSolverLanguage.g:2074:53: (iv_ruleStarArgument= ruleStarArgument EOF ) + // InternalSolverLanguage.g:2075:2: iv_ruleStarArgument= ruleStarArgument EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStarArgumentRule()); + } + pushFollow(FOLLOW_1); + iv_ruleStarArgument=ruleStarArgument(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStarArgument; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleStarArgument" + + + // $ANTLR start "ruleStarArgument" + // InternalSolverLanguage.g:2081:1: ruleStarArgument returns [EObject current=null] : ( () otherlv_1= '*' ) ; + public final EObject ruleStarArgument() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalSolverLanguage.g:2087:2: ( ( () otherlv_1= '*' ) ) + // InternalSolverLanguage.g:2088:2: ( () otherlv_1= '*' ) + { + // InternalSolverLanguage.g:2088:2: ( () otherlv_1= '*' ) + // InternalSolverLanguage.g:2089:3: () otherlv_1= '*' + { + // InternalSolverLanguage.g:2089:3: () + // InternalSolverLanguage.g:2090:4: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getStarArgumentAccess().getStarArgumentAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,35,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getStarArgumentAccess().getAsteriskKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleStarArgument" + + + // $ANTLR start "entryRuleTypedArgument" + // InternalSolverLanguage.g:2104:1: entryRuleTypedArgument returns [EObject current=null] : iv_ruleTypedArgument= ruleTypedArgument EOF ; + public final EObject entryRuleTypedArgument() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTypedArgument = null; + + + try { + // InternalSolverLanguage.g:2104:54: (iv_ruleTypedArgument= ruleTypedArgument EOF ) + // InternalSolverLanguage.g:2105:2: iv_ruleTypedArgument= ruleTypedArgument EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTypedArgumentRule()); + } + pushFollow(FOLLOW_1); + iv_ruleTypedArgument=ruleTypedArgument(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleTypedArgument; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTypedArgument" + + + // $ANTLR start "ruleTypedArgument" + // InternalSolverLanguage.g:2111:1: ruleTypedArgument returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) ; + public final EObject ruleTypedArgument() throws RecognitionException { + EObject current = null; + + + enterRule(); + + try { + // InternalSolverLanguage.g:2117:2: ( ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) ) + // InternalSolverLanguage.g:2118:2: ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) + { + // InternalSolverLanguage.g:2118:2: ( ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) ) + // InternalSolverLanguage.g:2119:3: ( ( ruleQualifiedName ) ) ( ( ruleQualifiedName ) ) + { + // InternalSolverLanguage.g:2119:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:2120:4: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:2120:4: ( ruleQualifiedName ) + // InternalSolverLanguage.g:2121:5: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTypedArgumentRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypedArgumentAccess().getTypeNamedElementCrossReference_0_0()); + + } + pushFollow(FOLLOW_35); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalSolverLanguage.g:2135:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:2136:4: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:2136:4: ( ruleQualifiedName ) + // InternalSolverLanguage.g:2137:5: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTypedArgumentRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypedArgumentAccess().getVariableNamedElementCrossReference_1_0()); + + } + pushFollow(FOLLOW_2); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTypedArgument" + + + // $ANTLR start "entryRuleTypedStarArgument" + // InternalSolverLanguage.g:2155:1: entryRuleTypedStarArgument returns [EObject current=null] : iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ; + public final EObject entryRuleTypedStarArgument() throws RecognitionException { + EObject current = null; + + EObject iv_ruleTypedStarArgument = null; + + + try { + // InternalSolverLanguage.g:2155:58: (iv_ruleTypedStarArgument= ruleTypedStarArgument EOF ) + // InternalSolverLanguage.g:2156:2: iv_ruleTypedStarArgument= ruleTypedStarArgument EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getTypedStarArgumentRule()); + } + pushFollow(FOLLOW_1); + iv_ruleTypedStarArgument=ruleTypedStarArgument(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleTypedStarArgument; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleTypedStarArgument" + + + // $ANTLR start "ruleTypedStarArgument" + // InternalSolverLanguage.g:2162:1: ruleTypedStarArgument returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) otherlv_1= '*' ) ; + public final EObject ruleTypedStarArgument() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalSolverLanguage.g:2168:2: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '*' ) ) + // InternalSolverLanguage.g:2169:2: ( ( ( ruleQualifiedName ) ) otherlv_1= '*' ) + { + // InternalSolverLanguage.g:2169:2: ( ( ( ruleQualifiedName ) ) otherlv_1= '*' ) + // InternalSolverLanguage.g:2170:3: ( ( ruleQualifiedName ) ) otherlv_1= '*' + { + // InternalSolverLanguage.g:2170:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:2171:4: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:2171:4: ( ruleQualifiedName ) + // InternalSolverLanguage.g:2172:5: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getTypedStarArgumentRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementCrossReference_0_0()); + + } + pushFollow(FOLLOW_36); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_1=(Token)match(input,35,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getTypedStarArgumentAccess().getAsteriskKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleTypedStarArgument" + + + // $ANTLR start "entryRuleReference" + // InternalSolverLanguage.g:2194:1: entryRuleReference returns [EObject current=null] : iv_ruleReference= ruleReference EOF ; + public final EObject entryRuleReference() throws RecognitionException { + EObject current = null; + + EObject iv_ruleReference = null; + + + try { + // InternalSolverLanguage.g:2194:50: (iv_ruleReference= ruleReference EOF ) + // InternalSolverLanguage.g:2195:2: iv_ruleReference= ruleReference EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getReferenceRule()); + } + pushFollow(FOLLOW_1); + iv_ruleReference=ruleReference(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleReference; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleReference" + + + // $ANTLR start "ruleReference" + // InternalSolverLanguage.g:2201:1: ruleReference returns [EObject current=null] : ( ( ruleQualifiedName ) ) ; + public final EObject ruleReference() throws RecognitionException { + EObject current = null; + + + enterRule(); + + try { + // InternalSolverLanguage.g:2207:2: ( ( ( ruleQualifiedName ) ) ) + // InternalSolverLanguage.g:2208:2: ( ( ruleQualifiedName ) ) + { + // InternalSolverLanguage.g:2208:2: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:2209:3: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:2209:3: ( ruleQualifiedName ) + // InternalSolverLanguage.g:2210:4: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getReferenceRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getReferenceAccess().getReferredNamedElementCrossReference_0()); + + } + pushFollow(FOLLOW_2); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleReference" + + + // $ANTLR start "entryRuleInterval" + // InternalSolverLanguage.g:2227:1: entryRuleInterval returns [EObject current=null] : iv_ruleInterval= ruleInterval EOF ; + public final EObject entryRuleInterval() throws RecognitionException { + EObject current = null; + + EObject iv_ruleInterval = null; + + + try { + // InternalSolverLanguage.g:2227:49: (iv_ruleInterval= ruleInterval EOF ) + // InternalSolverLanguage.g:2228:2: iv_ruleInterval= ruleInterval EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getIntervalRule()); + } + pushFollow(FOLLOW_1); + iv_ruleInterval=ruleInterval(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleInterval; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleInterval" + + + // $ANTLR start "ruleInterval" + // 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= ']' ) ; + public final EObject ruleInterval() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + EObject lv_lowerBound_1_0 = null; + + EObject lv_upperBound_3_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguage.g:2240:2: ( (otherlv_0= '[' ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= ']' ) ) + // InternalSolverLanguage.g:2241:2: (otherlv_0= '[' ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= ']' ) + { + // InternalSolverLanguage.g:2241:2: (otherlv_0= '[' ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= ']' ) + // InternalSolverLanguage.g:2242:3: otherlv_0= '[' ( (lv_lowerBound_1_0= ruleExpression ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleExpression ) ) otherlv_4= ']' + { + otherlv_0=(Token)match(input,36,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getIntervalAccess().getLeftSquareBracketKeyword_0()); + + } + // InternalSolverLanguage.g:2246:3: ( (lv_lowerBound_1_0= ruleExpression ) ) + // InternalSolverLanguage.g:2247:4: (lv_lowerBound_1_0= ruleExpression ) + { + // InternalSolverLanguage.g:2247:4: (lv_lowerBound_1_0= ruleExpression ) + // InternalSolverLanguage.g:2248:5: lv_lowerBound_1_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_37); + lv_lowerBound_1_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getIntervalRule()); + } + set( + current, + "lowerBound", + lv_lowerBound_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,37,FOLLOW_6); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getIntervalAccess().getFullStopFullStopKeyword_2()); + + } + // InternalSolverLanguage.g:2269:3: ( (lv_upperBound_3_0= ruleExpression ) ) + // InternalSolverLanguage.g:2270:4: (lv_upperBound_3_0= ruleExpression ) + { + // InternalSolverLanguage.g:2270:4: (lv_upperBound_3_0= ruleExpression ) + // InternalSolverLanguage.g:2271:5: lv_upperBound_3_0= ruleExpression + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_38); + lv_upperBound_3_0=ruleExpression(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getIntervalRule()); + } + set( + current, + "upperBound", + lv_upperBound_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_4=(Token)match(input,38,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getIntervalAccess().getRightSquareBracketKeyword_4()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleInterval" + + + // $ANTLR start "entryRuleLiteral" + // InternalSolverLanguage.g:2296:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ; + public final EObject entryRuleLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLiteral = null; + + + try { + // InternalSolverLanguage.g:2296:48: (iv_ruleLiteral= ruleLiteral EOF ) + // InternalSolverLanguage.g:2297:2: iv_ruleLiteral= ruleLiteral EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLiteralRule()); + } + pushFollow(FOLLOW_1); + iv_ruleLiteral=ruleLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLiteral; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLiteral" + + + // $ANTLR start "ruleLiteral" + // 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 ) ; + public final EObject ruleLiteral() throws RecognitionException { + EObject current = null; + + EObject this_LogicLiteral_0 = null; + + EObject this_NumericLiteral_1 = null; + + EObject this_InfinityLiteral_2 = null; + + EObject this_EmptyIntervalLiteral_3 = null; + + EObject this_StringLiteral_4 = null; + + + + enterRule(); + + try { + // InternalSolverLanguage.g:2309:2: ( (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) ) + // InternalSolverLanguage.g:2310:2: (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) + { + // InternalSolverLanguage.g:2310:2: (this_LogicLiteral_0= ruleLogicLiteral | this_NumericLiteral_1= ruleNumericLiteral | this_InfinityLiteral_2= ruleInfinityLiteral | this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral | this_StringLiteral_4= ruleStringLiteral ) + int alt26=5; + switch ( input.LA(1) ) { + case 19: + case 70: + case 71: + case 72: + { + alt26=1; + } + break; + case RULE_INT: + { + alt26=2; + } + break; + case 39: + { + alt26=3; + } + break; + case 40: + { + alt26=4; + } + break; + case RULE_STRING: + { + alt26=5; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 26, 0, input); + + throw nvae; + } + + switch (alt26) { + case 1 : + // InternalSolverLanguage.g:2311:3: this_LogicLiteral_0= ruleLogicLiteral + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLiteralAccess().getLogicLiteralParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + this_LogicLiteral_0=ruleLogicLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LogicLiteral_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalSolverLanguage.g:2320:3: this_NumericLiteral_1= ruleNumericLiteral + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLiteralAccess().getNumericLiteralParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_NumericLiteral_1=ruleNumericLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_NumericLiteral_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalSolverLanguage.g:2329:3: this_InfinityLiteral_2= ruleInfinityLiteral + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLiteralAccess().getInfinityLiteralParserRuleCall_2()); + + } + pushFollow(FOLLOW_2); + this_InfinityLiteral_2=ruleInfinityLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_InfinityLiteral_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 4 : + // InternalSolverLanguage.g:2338:3: this_EmptyIntervalLiteral_3= ruleEmptyIntervalLiteral + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLiteralAccess().getEmptyIntervalLiteralParserRuleCall_3()); + + } + pushFollow(FOLLOW_2); + this_EmptyIntervalLiteral_3=ruleEmptyIntervalLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_EmptyIntervalLiteral_3; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 5 : + // InternalSolverLanguage.g:2347:3: this_StringLiteral_4= ruleStringLiteral + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLiteralAccess().getStringLiteralParserRuleCall_4()); + + } + pushFollow(FOLLOW_2); + this_StringLiteral_4=ruleStringLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_StringLiteral_4; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLiteral" + + + // $ANTLR start "entryRuleLogicLiteral" + // InternalSolverLanguage.g:2359:1: entryRuleLogicLiteral returns [EObject current=null] : iv_ruleLogicLiteral= ruleLogicLiteral EOF ; + public final EObject entryRuleLogicLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleLogicLiteral = null; + + + try { + // InternalSolverLanguage.g:2359:53: (iv_ruleLogicLiteral= ruleLogicLiteral EOF ) + // InternalSolverLanguage.g:2360:2: iv_ruleLogicLiteral= ruleLogicLiteral EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLogicLiteralRule()); + } + pushFollow(FOLLOW_1); + iv_ruleLogicLiteral=ruleLogicLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLogicLiteral; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleLogicLiteral" + + + // $ANTLR start "ruleLogicLiteral" + // InternalSolverLanguage.g:2366:1: ruleLogicLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleLogicValue ) ) ; + public final EObject ruleLogicLiteral() throws RecognitionException { + EObject current = null; + + Enumerator lv_value_0_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguage.g:2372:2: ( ( (lv_value_0_0= ruleLogicValue ) ) ) + // InternalSolverLanguage.g:2373:2: ( (lv_value_0_0= ruleLogicValue ) ) + { + // InternalSolverLanguage.g:2373:2: ( (lv_value_0_0= ruleLogicValue ) ) + // InternalSolverLanguage.g:2374:3: (lv_value_0_0= ruleLogicValue ) + { + // InternalSolverLanguage.g:2374:3: (lv_value_0_0= ruleLogicValue ) + // InternalSolverLanguage.g:2375:4: lv_value_0_0= ruleLogicValue + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0()); + + } + pushFollow(FOLLOW_2); + lv_value_0_0=ruleLogicValue(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getLogicLiteralRule()); + } + set( + current, + "value", + lv_value_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleLogicLiteral" + + + // $ANTLR start "entryRuleNumericLiteral" + // InternalSolverLanguage.g:2395:1: entryRuleNumericLiteral returns [EObject current=null] : iv_ruleNumericLiteral= ruleNumericLiteral EOF ; + public final EObject entryRuleNumericLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleNumericLiteral = null; + + + try { + // InternalSolverLanguage.g:2395:55: (iv_ruleNumericLiteral= ruleNumericLiteral EOF ) + // InternalSolverLanguage.g:2396:2: iv_ruleNumericLiteral= ruleNumericLiteral EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getNumericLiteralRule()); + } + pushFollow(FOLLOW_1); + iv_ruleNumericLiteral=ruleNumericLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleNumericLiteral; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleNumericLiteral" + + + // $ANTLR start "ruleNumericLiteral" + // InternalSolverLanguage.g:2402:1: ruleNumericLiteral returns [EObject current=null] : ( (lv_value_0_0= ruleReal ) ) ; + public final EObject ruleNumericLiteral() throws RecognitionException { + EObject current = null; + + AntlrDatatypeRuleToken lv_value_0_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguage.g:2408:2: ( ( (lv_value_0_0= ruleReal ) ) ) + // InternalSolverLanguage.g:2409:2: ( (lv_value_0_0= ruleReal ) ) + { + // InternalSolverLanguage.g:2409:2: ( (lv_value_0_0= ruleReal ) ) + // InternalSolverLanguage.g:2410:3: (lv_value_0_0= ruleReal ) + { + // InternalSolverLanguage.g:2410:3: (lv_value_0_0= ruleReal ) + // InternalSolverLanguage.g:2411:4: lv_value_0_0= ruleReal + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + lv_value_0_0=ruleReal(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getNumericLiteralRule()); + } + set( + current, + "value", + lv_value_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Real"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleNumericLiteral" + + + // $ANTLR start "entryRuleInfinityLiteral" + // InternalSolverLanguage.g:2431:1: entryRuleInfinityLiteral returns [EObject current=null] : iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ; + public final EObject entryRuleInfinityLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleInfinityLiteral = null; + + + try { + // InternalSolverLanguage.g:2431:56: (iv_ruleInfinityLiteral= ruleInfinityLiteral EOF ) + // InternalSolverLanguage.g:2432:2: iv_ruleInfinityLiteral= ruleInfinityLiteral EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getInfinityLiteralRule()); + } + pushFollow(FOLLOW_1); + iv_ruleInfinityLiteral=ruleInfinityLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleInfinityLiteral; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleInfinityLiteral" + + + // $ANTLR start "ruleInfinityLiteral" + // InternalSolverLanguage.g:2438:1: ruleInfinityLiteral returns [EObject current=null] : ( () otherlv_1= 'inf' ) ; + public final EObject ruleInfinityLiteral() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalSolverLanguage.g:2444:2: ( ( () otherlv_1= 'inf' ) ) + // InternalSolverLanguage.g:2445:2: ( () otherlv_1= 'inf' ) + { + // InternalSolverLanguage.g:2445:2: ( () otherlv_1= 'inf' ) + // InternalSolverLanguage.g:2446:3: () otherlv_1= 'inf' + { + // InternalSolverLanguage.g:2446:3: () + // InternalSolverLanguage.g:2447:4: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getInfinityLiteralAccess().getInfinityLiteralAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,39,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getInfinityLiteralAccess().getInfKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleInfinityLiteral" + + + // $ANTLR start "entryRuleEmptyIntervalLiteral" + // InternalSolverLanguage.g:2461:1: entryRuleEmptyIntervalLiteral returns [EObject current=null] : iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF ; + public final EObject entryRuleEmptyIntervalLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleEmptyIntervalLiteral = null; + + + try { + // InternalSolverLanguage.g:2461:61: (iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF ) + // InternalSolverLanguage.g:2462:2: iv_ruleEmptyIntervalLiteral= ruleEmptyIntervalLiteral EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getEmptyIntervalLiteralRule()); + } + pushFollow(FOLLOW_1); + iv_ruleEmptyIntervalLiteral=ruleEmptyIntervalLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleEmptyIntervalLiteral; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleEmptyIntervalLiteral" + + + // $ANTLR start "ruleEmptyIntervalLiteral" + // InternalSolverLanguage.g:2468:1: ruleEmptyIntervalLiteral returns [EObject current=null] : ( () otherlv_1= 'empty' ) ; + public final EObject ruleEmptyIntervalLiteral() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + + + enterRule(); + + try { + // InternalSolverLanguage.g:2474:2: ( ( () otherlv_1= 'empty' ) ) + // InternalSolverLanguage.g:2475:2: ( () otherlv_1= 'empty' ) + { + // InternalSolverLanguage.g:2475:2: ( () otherlv_1= 'empty' ) + // InternalSolverLanguage.g:2476:3: () otherlv_1= 'empty' + { + // InternalSolverLanguage.g:2476:3: () + // InternalSolverLanguage.g:2477:4: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getEmptyIntervalLiteralAccess().getEmptyIntervalLiteralAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,40,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getEmptyIntervalLiteralAccess().getEmptyKeyword_1()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleEmptyIntervalLiteral" + + + // $ANTLR start "entryRuleStringLiteral" + // InternalSolverLanguage.g:2491:1: entryRuleStringLiteral returns [EObject current=null] : iv_ruleStringLiteral= ruleStringLiteral EOF ; + public final EObject entryRuleStringLiteral() throws RecognitionException { + EObject current = null; + + EObject iv_ruleStringLiteral = null; + + + try { + // InternalSolverLanguage.g:2491:54: (iv_ruleStringLiteral= ruleStringLiteral EOF ) + // InternalSolverLanguage.g:2492:2: iv_ruleStringLiteral= ruleStringLiteral EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getStringLiteralRule()); + } + pushFollow(FOLLOW_1); + iv_ruleStringLiteral=ruleStringLiteral(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleStringLiteral; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleStringLiteral" + + + // $ANTLR start "ruleStringLiteral" + // InternalSolverLanguage.g:2498:1: ruleStringLiteral returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ; + public final EObject ruleStringLiteral() throws RecognitionException { + EObject current = null; + + Token lv_value_0_0=null; + + + enterRule(); + + try { + // InternalSolverLanguage.g:2504:2: ( ( (lv_value_0_0= RULE_STRING ) ) ) + // InternalSolverLanguage.g:2505:2: ( (lv_value_0_0= RULE_STRING ) ) + { + // InternalSolverLanguage.g:2505:2: ( (lv_value_0_0= RULE_STRING ) ) + // InternalSolverLanguage.g:2506:3: (lv_value_0_0= RULE_STRING ) + { + // InternalSolverLanguage.g:2506:3: (lv_value_0_0= RULE_STRING ) + // InternalSolverLanguage.g:2507:4: lv_value_0_0= RULE_STRING + { + lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_value_0_0, grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getStringLiteralRule()); + } + setWithLastConsumed( + current, + "value", + lv_value_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); + + } + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleStringLiteral" + + + // $ANTLR start "entryRuleClassDefinition" + // InternalSolverLanguage.g:2526:1: entryRuleClassDefinition returns [EObject current=null] : iv_ruleClassDefinition= ruleClassDefinition EOF ; + public final EObject entryRuleClassDefinition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleClassDefinition = null; + + + try { + // InternalSolverLanguage.g:2526:56: (iv_ruleClassDefinition= ruleClassDefinition EOF ) + // InternalSolverLanguage.g:2527:2: iv_ruleClassDefinition= ruleClassDefinition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getClassDefinitionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleClassDefinition=ruleClassDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleClassDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleClassDefinition" + + + // $ANTLR start "ruleClassDefinition" + // 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= '}' ) ; + public final EObject ruleClassDefinition() throws RecognitionException { + EObject current = null; + + Token lv_abstract_0_0=null; + Token otherlv_1=null; + Token lv_name_2_0=null; + Token otherlv_3=null; + Token otherlv_5=null; + Token otherlv_7=null; + Token otherlv_9=null; + EObject lv_members_8_0 = null; + + + + enterRule(); + + try { + // 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= '}' ) ) + // 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= '}' ) + { + // 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= '}' ) + // 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= '}' + { + // InternalSolverLanguage.g:2541:3: ( (lv_abstract_0_0= 'abstract' ) )? + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==41) ) { + alt27=1; + } + switch (alt27) { + case 1 : + // InternalSolverLanguage.g:2542:4: (lv_abstract_0_0= 'abstract' ) + { + // InternalSolverLanguage.g:2542:4: (lv_abstract_0_0= 'abstract' ) + // InternalSolverLanguage.g:2543:5: lv_abstract_0_0= 'abstract' + { + lv_abstract_0_0=(Token)match(input,41,FOLLOW_39); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_abstract_0_0, grammarAccess.getClassDefinitionAccess().getAbstractAbstractKeyword_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getClassDefinitionRule()); + } + setWithLastConsumed(current, "abstract", true, "abstract"); + + } + + } + + + } + break; + + } + + otherlv_1=(Token)match(input,42,FOLLOW_40); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getClassDefinitionAccess().getClassKeyword_1()); + + } + // InternalSolverLanguage.g:2559:3: ( (lv_name_2_0= RULE_ID ) ) + // InternalSolverLanguage.g:2560:4: (lv_name_2_0= RULE_ID ) + { + // InternalSolverLanguage.g:2560:4: (lv_name_2_0= RULE_ID ) + // InternalSolverLanguage.g:2561:5: lv_name_2_0= RULE_ID + { + lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_41); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_2_0, grammarAccess.getClassDefinitionAccess().getNameIDTerminalRuleCall_2_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getClassDefinitionRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_2_0, + "org.eclipse.xtext.common.Terminals.ID"); + + } + + } + + + } + + // InternalSolverLanguage.g:2577:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? + int alt29=2; + int LA29_0 = input.LA(1); + + if ( (LA29_0==43) ) { + alt29=1; + } + switch (alt29) { + case 1 : + // InternalSolverLanguage.g:2578:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* + { + otherlv_3=(Token)match(input,43,FOLLOW_35); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_3, grammarAccess.getClassDefinitionAccess().getExtendsKeyword_3_0()); + + } + // InternalSolverLanguage.g:2582:4: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:2583:5: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:2583:5: ( ruleQualifiedName ) + // InternalSolverLanguage.g:2584:6: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getClassDefinitionRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_1_0()); + + } + pushFollow(FOLLOW_42); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalSolverLanguage.g:2598:4: (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* + loop28: + do { + int alt28=2; + int LA28_0 = input.LA(1); + + if ( (LA28_0==28) ) { + alt28=1; + } + + + switch (alt28) { + case 1 : + // InternalSolverLanguage.g:2599:5: otherlv_5= ',' ( ( ruleQualifiedName ) ) + { + otherlv_5=(Token)match(input,28,FOLLOW_35); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_5, grammarAccess.getClassDefinitionAccess().getCommaKeyword_3_2_0()); + + } + // InternalSolverLanguage.g:2603:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:2604:6: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:2604:6: ( ruleQualifiedName ) + // InternalSolverLanguage.g:2605:7: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getClassDefinitionRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getClassDefinitionAccess().getSuperclassesNamedElementCrossReference_3_2_1_0()); + + } + pushFollow(FOLLOW_42); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + default : + break loop28; + } + } while (true); + + + } + break; + + } + + otherlv_7=(Token)match(input,30,FOLLOW_43); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_7, grammarAccess.getClassDefinitionAccess().getLeftCurlyBracketKeyword_4()); + + } + // InternalSolverLanguage.g:2625:3: ( (lv_members_8_0= ruleMemberDefinition ) )* + loop30: + do { + int alt30=2; + int LA30_0 = input.LA(1); + + if ( (LA30_0==RULE_ID||LA30_0==RULE_QUOTED_ID||LA30_0==44) ) { + alt30=1; + } + + + switch (alt30) { + case 1 : + // InternalSolverLanguage.g:2626:4: (lv_members_8_0= ruleMemberDefinition ) + { + // InternalSolverLanguage.g:2626:4: (lv_members_8_0= ruleMemberDefinition ) + // InternalSolverLanguage.g:2627:5: lv_members_8_0= ruleMemberDefinition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getClassDefinitionAccess().getMembersMemberDefinitionParserRuleCall_5_0()); + + } + pushFollow(FOLLOW_43); + lv_members_8_0=ruleMemberDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getClassDefinitionRule()); + } + add( + current, + "members", + lv_members_8_0, + "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + default : + break loop30; + } + } while (true); + + otherlv_9=(Token)match(input,31,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_9, grammarAccess.getClassDefinitionAccess().getRightCurlyBracketKeyword_6()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleClassDefinition" + + + // $ANTLR start "entryRuleMemberDefinition" + // InternalSolverLanguage.g:2652:1: entryRuleMemberDefinition returns [EObject current=null] : iv_ruleMemberDefinition= ruleMemberDefinition EOF ; + public final EObject entryRuleMemberDefinition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleMemberDefinition = null; + + + try { + // InternalSolverLanguage.g:2652:57: (iv_ruleMemberDefinition= ruleMemberDefinition EOF ) + // InternalSolverLanguage.g:2653:2: iv_ruleMemberDefinition= ruleMemberDefinition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getMemberDefinitionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleMemberDefinition=ruleMemberDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleMemberDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleMemberDefinition" + + + // $ANTLR start "ruleMemberDefinition" + // 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= ';' )? ) ; + public final EObject ruleMemberDefinition() throws RecognitionException { + EObject current = null; + + Token lv_containment_0_0=null; + Token lv_name_3_0=null; + Token otherlv_4=null; + Token otherlv_6=null; + EObject lv_multiplicity_2_0 = null; + + + + enterRule(); + + try { + // 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= ';' )? ) ) + // 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= ';' )? ) + { + // 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= ';' )? ) + // 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= ';' )? + { + // InternalSolverLanguage.g:2667:3: ( (lv_containment_0_0= 'contains' ) )? + int alt31=2; + int LA31_0 = input.LA(1); + + if ( (LA31_0==44) ) { + alt31=1; + } + switch (alt31) { + case 1 : + // InternalSolverLanguage.g:2668:4: (lv_containment_0_0= 'contains' ) + { + // InternalSolverLanguage.g:2668:4: (lv_containment_0_0= 'contains' ) + // InternalSolverLanguage.g:2669:5: lv_containment_0_0= 'contains' + { + lv_containment_0_0=(Token)match(input,44,FOLLOW_35); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_containment_0_0, grammarAccess.getMemberDefinitionAccess().getContainmentContainsKeyword_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getMemberDefinitionRule()); + } + setWithLastConsumed(current, "containment", true, "contains"); + + } + + } + + + } + break; + + } + + // InternalSolverLanguage.g:2681:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:2682:4: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:2682:4: ( ruleQualifiedName ) + // InternalSolverLanguage.g:2683:5: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getMemberDefinitionRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getMemberDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + + } + pushFollow(FOLLOW_44); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + // InternalSolverLanguage.g:2697:3: ( (lv_multiplicity_2_0= ruleMultiplicity ) )? + int alt32=2; + int LA32_0 = input.LA(1); + + if ( (LA32_0==36) ) { + alt32=1; + } + switch (alt32) { + case 1 : + // InternalSolverLanguage.g:2698:4: (lv_multiplicity_2_0= ruleMultiplicity ) + { + // InternalSolverLanguage.g:2698:4: (lv_multiplicity_2_0= ruleMultiplicity ) + // InternalSolverLanguage.g:2699:5: lv_multiplicity_2_0= ruleMultiplicity + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getMemberDefinitionAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); + + } + pushFollow(FOLLOW_40); + lv_multiplicity_2_0=ruleMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getMemberDefinitionRule()); + } + set( + current, + "multiplicity", + lv_multiplicity_2_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + break; + + } + + // InternalSolverLanguage.g:2716:3: ( (lv_name_3_0= RULE_ID ) ) + // InternalSolverLanguage.g:2717:4: (lv_name_3_0= RULE_ID ) + { + // InternalSolverLanguage.g:2717:4: (lv_name_3_0= RULE_ID ) + // InternalSolverLanguage.g:2718:5: lv_name_3_0= RULE_ID + { + lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_45); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_name_3_0, grammarAccess.getMemberDefinitionAccess().getNameIDTerminalRuleCall_3_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getMemberDefinitionRule()); + } + setWithLastConsumed( + current, + "name", + lv_name_3_0, + "org.eclipse.xtext.common.Terminals.ID"); + + } + + } + + + } + + // InternalSolverLanguage.g:2734:3: (otherlv_4= 'opposite' ( ( ruleQualifiedName ) ) )? + int alt33=2; + int LA33_0 = input.LA(1); + + if ( (LA33_0==45) ) { + alt33=1; + } + switch (alt33) { + case 1 : + // InternalSolverLanguage.g:2735:4: otherlv_4= 'opposite' ( ( ruleQualifiedName ) ) + { + otherlv_4=(Token)match(input,45,FOLLOW_35); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getMemberDefinitionAccess().getOppositeKeyword_4_0()); + + } + // InternalSolverLanguage.g:2739:4: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:2740:5: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:2740:5: ( ruleQualifiedName ) + // InternalSolverLanguage.g:2741:6: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getMemberDefinitionRule()); + } + + } + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getMemberDefinitionAccess().getOppositeNamedElementCrossReference_4_1_0()); + + } + pushFollow(FOLLOW_18); + ruleQualifiedName(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + afterParserOrEnumRuleCall(); + + } + + } + + + } + + + } + break; + + } + + // InternalSolverLanguage.g:2756:3: (otherlv_6= ';' )? + int alt34=2; + int LA34_0 = input.LA(1); + + if ( (LA34_0==26) ) { + alt34=1; + } + switch (alt34) { + case 1 : + // InternalSolverLanguage.g:2757:4: otherlv_6= ';' + { + otherlv_6=(Token)match(input,26,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_6, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5()); + + } + + } + break; + + } + + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleMemberDefinition" + + + // $ANTLR start "entryRuleMultiplicity" + // InternalSolverLanguage.g:2766:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ; + public final EObject entryRuleMultiplicity() throws RecognitionException { + EObject current = null; + + EObject iv_ruleMultiplicity = null; + + + try { + // InternalSolverLanguage.g:2766:53: (iv_ruleMultiplicity= ruleMultiplicity EOF ) + // InternalSolverLanguage.g:2767:2: iv_ruleMultiplicity= ruleMultiplicity EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getMultiplicityRule()); + } + pushFollow(FOLLOW_1); + iv_ruleMultiplicity=ruleMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleMultiplicity; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleMultiplicity" + + + // $ANTLR start "ruleMultiplicity" + // InternalSolverLanguage.g:2773:1: ruleMultiplicity returns [EObject current=null] : (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ; + public final EObject ruleMultiplicity() throws RecognitionException { + EObject current = null; + + EObject this_ManyMultiplicity_0 = null; + + EObject this_ExactMultiplicity_1 = null; + + EObject this_BoundedMultiplicity_2 = null; + + + + enterRule(); + + try { + // InternalSolverLanguage.g:2779:2: ( (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) ) + // InternalSolverLanguage.g:2780:2: (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) + { + // InternalSolverLanguage.g:2780:2: (this_ManyMultiplicity_0= ruleManyMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity | this_BoundedMultiplicity_2= ruleBoundedMultiplicity ) + int alt35=3; + int LA35_0 = input.LA(1); + + if ( (LA35_0==36) ) { + switch ( input.LA(2) ) { + case RULE_INT: + { + int LA35_2 = input.LA(3); + + if ( (LA35_2==38) ) { + alt35=2; + } + else if ( (LA35_2==37) ) { + alt35=3; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 35, 2, input); + + throw nvae; + } + } + break; + case 35: + { + alt35=2; + } + break; + case 38: + { + alt35=1; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 35, 1, input); + + throw nvae; + } + + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 35, 0, input); + + throw nvae; + } + switch (alt35) { + case 1 : + // InternalSolverLanguage.g:2781:3: this_ManyMultiplicity_0= ruleManyMultiplicity + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getMultiplicityAccess().getManyMultiplicityParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + this_ManyMultiplicity_0=ruleManyMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ManyMultiplicity_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalSolverLanguage.g:2790:3: this_ExactMultiplicity_1= ruleExactMultiplicity + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_ExactMultiplicity_1=ruleExactMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ExactMultiplicity_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalSolverLanguage.g:2799:3: this_BoundedMultiplicity_2= ruleBoundedMultiplicity + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getMultiplicityAccess().getBoundedMultiplicityParserRuleCall_2()); + + } + pushFollow(FOLLOW_2); + this_BoundedMultiplicity_2=ruleBoundedMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_BoundedMultiplicity_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleMultiplicity" + + + // $ANTLR start "entryRuleManyMultiplicity" + // InternalSolverLanguage.g:2811:1: entryRuleManyMultiplicity returns [EObject current=null] : iv_ruleManyMultiplicity= ruleManyMultiplicity EOF ; + public final EObject entryRuleManyMultiplicity() throws RecognitionException { + EObject current = null; + + EObject iv_ruleManyMultiplicity = null; + + + try { + // InternalSolverLanguage.g:2811:57: (iv_ruleManyMultiplicity= ruleManyMultiplicity EOF ) + // InternalSolverLanguage.g:2812:2: iv_ruleManyMultiplicity= ruleManyMultiplicity EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getManyMultiplicityRule()); + } + pushFollow(FOLLOW_1); + iv_ruleManyMultiplicity=ruleManyMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleManyMultiplicity; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleManyMultiplicity" + + + // $ANTLR start "ruleManyMultiplicity" + // InternalSolverLanguage.g:2818:1: ruleManyMultiplicity returns [EObject current=null] : ( () otherlv_1= '[' otherlv_2= ']' ) ; + public final EObject ruleManyMultiplicity() throws RecognitionException { + EObject current = null; + + Token otherlv_1=null; + Token otherlv_2=null; + + + enterRule(); + + try { + // InternalSolverLanguage.g:2824:2: ( ( () otherlv_1= '[' otherlv_2= ']' ) ) + // InternalSolverLanguage.g:2825:2: ( () otherlv_1= '[' otherlv_2= ']' ) + { + // InternalSolverLanguage.g:2825:2: ( () otherlv_1= '[' otherlv_2= ']' ) + // InternalSolverLanguage.g:2826:3: () otherlv_1= '[' otherlv_2= ']' + { + // InternalSolverLanguage.g:2826:3: () + // InternalSolverLanguage.g:2827:4: + { + if ( state.backtracking==0 ) { + + current = forceCreateModelElement( + grammarAccess.getManyMultiplicityAccess().getManyMultiplicityAction_0(), + current); + + } + + } + + otherlv_1=(Token)match(input,36,FOLLOW_38); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_1, grammarAccess.getManyMultiplicityAccess().getLeftSquareBracketKeyword_1()); + + } + otherlv_2=(Token)match(input,38,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getManyMultiplicityAccess().getRightSquareBracketKeyword_2()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleManyMultiplicity" + + + // $ANTLR start "entryRuleExactMultiplicity" + // InternalSolverLanguage.g:2845:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ; + public final EObject entryRuleExactMultiplicity() throws RecognitionException { + EObject current = null; + + EObject iv_ruleExactMultiplicity = null; + + + try { + // InternalSolverLanguage.g:2845:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ) + // InternalSolverLanguage.g:2846:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExactMultiplicityRule()); + } + pushFollow(FOLLOW_1); + iv_ruleExactMultiplicity=ruleExactMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleExactMultiplicity; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleExactMultiplicity" + + + // $ANTLR start "ruleExactMultiplicity" + // InternalSolverLanguage.g:2852:1: ruleExactMultiplicity returns [EObject current=null] : (otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']' ) ; + public final EObject ruleExactMultiplicity() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token otherlv_2=null; + AntlrDatatypeRuleToken lv_multiplicity_1_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguage.g:2858:2: ( (otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']' ) ) + // InternalSolverLanguage.g:2859:2: (otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']' ) + { + // InternalSolverLanguage.g:2859:2: (otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']' ) + // InternalSolverLanguage.g:2860:3: otherlv_0= '[' ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) otherlv_2= ']' + { + otherlv_0=(Token)match(input,36,FOLLOW_46); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getExactMultiplicityAccess().getLeftSquareBracketKeyword_0()); + + } + // InternalSolverLanguage.g:2864:3: ( (lv_multiplicity_1_0= ruleUpperMultiplicty ) ) + // InternalSolverLanguage.g:2865:4: (lv_multiplicity_1_0= ruleUpperMultiplicty ) + { + // InternalSolverLanguage.g:2865:4: (lv_multiplicity_1_0= ruleUpperMultiplicty ) + // InternalSolverLanguage.g:2866:5: lv_multiplicity_1_0= ruleUpperMultiplicty + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0()); + + } + pushFollow(FOLLOW_38); + lv_multiplicity_1_0=ruleUpperMultiplicty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getExactMultiplicityRule()); + } + set( + current, + "multiplicity", + lv_multiplicity_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_2=(Token)match(input,38,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getExactMultiplicityAccess().getRightSquareBracketKeyword_2()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleExactMultiplicity" + + + // $ANTLR start "entryRuleBoundedMultiplicity" + // InternalSolverLanguage.g:2891:1: entryRuleBoundedMultiplicity returns [EObject current=null] : iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ; + public final EObject entryRuleBoundedMultiplicity() throws RecognitionException { + EObject current = null; + + EObject iv_ruleBoundedMultiplicity = null; + + + try { + // InternalSolverLanguage.g:2891:60: (iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF ) + // InternalSolverLanguage.g:2892:2: iv_ruleBoundedMultiplicity= ruleBoundedMultiplicity EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getBoundedMultiplicityRule()); + } + pushFollow(FOLLOW_1); + iv_ruleBoundedMultiplicity=ruleBoundedMultiplicity(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleBoundedMultiplicity; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleBoundedMultiplicity" + + + // $ANTLR start "ruleBoundedMultiplicity" + // 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= ']' ) ; + public final EObject ruleBoundedMultiplicity() throws RecognitionException { + EObject current = null; + + Token otherlv_0=null; + Token lv_lowerBound_1_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + AntlrDatatypeRuleToken lv_upperBound_3_0 = null; + + + + enterRule(); + + try { + // InternalSolverLanguage.g:2904:2: ( (otherlv_0= '[' ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= ']' ) ) + // InternalSolverLanguage.g:2905:2: (otherlv_0= '[' ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= ']' ) + { + // InternalSolverLanguage.g:2905:2: (otherlv_0= '[' ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= ']' ) + // InternalSolverLanguage.g:2906:3: otherlv_0= '[' ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '..' ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) otherlv_4= ']' + { + otherlv_0=(Token)match(input,36,FOLLOW_47); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_0, grammarAccess.getBoundedMultiplicityAccess().getLeftSquareBracketKeyword_0()); + + } + // InternalSolverLanguage.g:2910:3: ( (lv_lowerBound_1_0= RULE_INT ) ) + // InternalSolverLanguage.g:2911:4: (lv_lowerBound_1_0= RULE_INT ) + { + // InternalSolverLanguage.g:2911:4: (lv_lowerBound_1_0= RULE_INT ) + // InternalSolverLanguage.g:2912:5: lv_lowerBound_1_0= RULE_INT + { + lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_37); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getBoundedMultiplicityRule()); + } + setWithLastConsumed( + current, + "lowerBound", + lv_lowerBound_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } + + } + + + } + + otherlv_2=(Token)match(input,37,FOLLOW_46); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_2, grammarAccess.getBoundedMultiplicityAccess().getFullStopFullStopKeyword_2()); + + } + // InternalSolverLanguage.g:2932:3: ( (lv_upperBound_3_0= ruleUpperMultiplicty ) ) + // InternalSolverLanguage.g:2933:4: (lv_upperBound_3_0= ruleUpperMultiplicty ) + { + // InternalSolverLanguage.g:2933:4: (lv_upperBound_3_0= ruleUpperMultiplicty ) + // InternalSolverLanguage.g:2934:5: lv_upperBound_3_0= ruleUpperMultiplicty + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0()); + + } + pushFollow(FOLLOW_38); + lv_upperBound_3_0=ruleUpperMultiplicty(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElementForParent(grammarAccess.getBoundedMultiplicityRule()); + } + set( + current, + "upperBound", + lv_upperBound_3_0, + "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); + afterParserOrEnumRuleCall(); + + } + + } + + + } + + otherlv_4=(Token)match(input,38,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + newLeafNode(otherlv_4, grammarAccess.getBoundedMultiplicityAccess().getRightSquareBracketKeyword_4()); + + } + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleBoundedMultiplicity" + + + // $ANTLR start "entryRuleScopeDefinition" + // InternalSolverLanguage.g:2959:1: entryRuleScopeDefinition returns [EObject current=null] : iv_ruleScopeDefinition= ruleScopeDefinition EOF ; + public final EObject entryRuleScopeDefinition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleScopeDefinition = null; + + + try { + // InternalSolverLanguage.g:2959:56: (iv_ruleScopeDefinition= ruleScopeDefinition EOF ) + // InternalSolverLanguage.g:2960:2: iv_ruleScopeDefinition= ruleScopeDefinition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getScopeDefinitionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleScopeDefinition=ruleScopeDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleScopeDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleScopeDefinition" + + + // $ANTLR start "ruleScopeDefinition" + // InternalSolverLanguage.g:2966:1: ruleScopeDefinition returns [EObject current=null] : (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) ; + public final EObject ruleScopeDefinition() throws RecognitionException { + EObject current = null; + + EObject this_ExactScopeDefinition_0 = null; + + EObject this_BoundedScopeDefinition_1 = null; + + EObject this_LowerBoundedScopeDefinition_2 = null; + + + + enterRule(); + + try { + // InternalSolverLanguage.g:2972:2: ( (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) ) + // InternalSolverLanguage.g:2973:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) + { + // InternalSolverLanguage.g:2973:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition ) + int alt36=3; + alt36 = dfa36.predict(input); + switch (alt36) { + case 1 : + // InternalSolverLanguage.g:2974:3: this_ExactScopeDefinition_0= ruleExactScopeDefinition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getScopeDefinitionAccess().getExactScopeDefinitionParserRuleCall_0()); + + } + pushFollow(FOLLOW_2); + this_ExactScopeDefinition_0=ruleExactScopeDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_ExactScopeDefinition_0; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 2 : + // InternalSolverLanguage.g:2983:3: this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition + { + if ( state.backtracking==0 ) { - EObject lv_closureType_7_0 = null; + newCompositeNode(grammarAccess.getScopeDefinitionAccess().getBoundedScopeDefinitionParserRuleCall_1()); + + } + pushFollow(FOLLOW_2); + this_BoundedScopeDefinition_1=ruleBoundedScopeDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_BoundedScopeDefinition_1; + afterParserOrEnumRuleCall(); + + } + + } + break; + case 3 : + // InternalSolverLanguage.g:2992:3: this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition + { + if ( state.backtracking==0 ) { + + newCompositeNode(grammarAccess.getScopeDefinitionAccess().getLowerBoundedScopeDefinitionParserRuleCall_2()); + + } + pushFollow(FOLLOW_2); + this_LowerBoundedScopeDefinition_2=ruleLowerBoundedScopeDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = this_LowerBoundedScopeDefinition_2; + afterParserOrEnumRuleCall(); + + } + + } + break; + + } + + + } + + if ( state.backtracking==0 ) { + + leaveRule(); + + } + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleScopeDefinition" + + + // $ANTLR start "entryRuleExactScopeDefinition" + // InternalSolverLanguage.g:3004:1: entryRuleExactScopeDefinition returns [EObject current=null] : iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF ; + public final EObject entryRuleExactScopeDefinition() throws RecognitionException { + EObject current = null; + + EObject iv_ruleExactScopeDefinition = null; + + + try { + // InternalSolverLanguage.g:3004:61: (iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF ) + // InternalSolverLanguage.g:3005:2: iv_ruleExactScopeDefinition= ruleExactScopeDefinition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getExactScopeDefinitionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleExactScopeDefinition=ruleExactScopeDefinition(); + + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleExactScopeDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleExactScopeDefinition" - EObject lv_params_9_0 = null; - EObject lv_params_11_0 = null; + // $ANTLR start "ruleExactScopeDefinition" + // InternalSolverLanguage.g:3011:1: ruleExactScopeDefinition returns [EObject current=null] : (otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) ) ) ; + public final EObject ruleExactScopeDefinition() throws RecognitionException { + EObject current = null; + Token otherlv_0=null; + Token otherlv_2=null; + Token lv_exactScope_3_0=null; enterRule(); try { - // 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= ')' ) ) ) - // 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= ')' ) ) + // InternalSolverLanguage.g:3017:2: ( (otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) ) ) ) + // InternalSolverLanguage.g:3018:2: (otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) ) ) { - // 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= ')' ) ) - int alt33=2; - switch ( input.LA(1) ) { - case 30: - { - int LA33_1 = input.LA(2); + // InternalSolverLanguage.g:3018:2: (otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) ) ) + // InternalSolverLanguage.g:3019:3: otherlv_0= 'scope' ( ( ruleQualifiedName ) ) otherlv_2= '==' ( (lv_exactScope_3_0= RULE_INT ) ) + { + otherlv_0=(Token)match(input,46,FOLLOW_35); if (state.failed) return current; + if ( state.backtracking==0 ) { - if ( (LA33_1==17) ) { - alt33=2; - } - else if ( (LA33_1==RULE_ID) ) { - alt33=1; - } - else { - NoViableAltException nvae = - new NoViableAltException("", 33, 1, input); + newLeafNode(otherlv_0, grammarAccess.getExactScopeDefinitionAccess().getScopeKeyword_0()); + + } + // InternalSolverLanguage.g:3023:3: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:3024:4: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:3024:4: ( ruleQualifiedName ) + // InternalSolverLanguage.g:3025:5: ruleQualifiedName + { + if ( state.backtracking==0 ) { - throw nvae; - } - } - break; - case RULE_ID: - case 11: - { - alt33=1; - } - break; - case 31: - { - alt33=2; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 33, 0, input); + if (current==null) { + current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); + } + + } + if ( state.backtracking==0 ) { - throw nvae; + newCompositeNode(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0()); + } + pushFollow(FOLLOW_48); + ruleQualifiedName(); - switch (alt33) { - case 1 : - // 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= ')' )? ) - { - // 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= ')' )? ) - // 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= ')' )? - { - // InternalSolverLanguage.g:1559:4: ( (lv_polarity_0_0= rulePolarity ) )? - int alt27=2; - int LA27_0 = input.LA(1); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - if ( (LA27_0==11||LA27_0==30) ) { - alt27=1; - } - switch (alt27) { - case 1 : - // InternalSolverLanguage.g:1560:5: (lv_polarity_0_0= rulePolarity ) - { - // InternalSolverLanguage.g:1560:5: (lv_polarity_0_0= rulePolarity ) - // InternalSolverLanguage.g:1561:6: lv_polarity_0_0= rulePolarity - { + afterParserOrEnumRuleCall(); + + } - newCompositeNode(grammarAccess.getConstraintAccess().getPolarityPolarityParserRuleCall_0_0_0()); - - pushFollow(FOLLOW_12); - lv_polarity_0_0=rulePolarity(); + } - state._fsp--; + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - set( - current, - "polarity", - lv_polarity_0_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Polarity"); - afterParserOrEnumRuleCall(); - + otherlv_2=(Token)match(input,47,FOLLOW_47); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + newLeafNode(otherlv_2, grammarAccess.getExactScopeDefinitionAccess().getEqualsSignEqualsSignKeyword_2()); + + } + // InternalSolverLanguage.g:3043:3: ( (lv_exactScope_3_0= RULE_INT ) ) + // InternalSolverLanguage.g:3044:4: (lv_exactScope_3_0= RULE_INT ) + { + // InternalSolverLanguage.g:3044:4: (lv_exactScope_3_0= RULE_INT ) + // InternalSolverLanguage.g:3045:5: lv_exactScope_3_0= RULE_INT + { + lv_exactScope_3_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(lv_exactScope_3_0, grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0()); + + } + if ( state.backtracking==0 ) { - } - break; + if (current==null) { + current = createModelElement(grammarAccess.getExactScopeDefinitionRule()); + } + setWithLastConsumed( + current, + "exactScope", + lv_exactScope_3_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } - } + } - // InternalSolverLanguage.g:1578:4: ( (lv_symbol_1_0= ruleModelSymbol ) ) - // InternalSolverLanguage.g:1579:5: (lv_symbol_1_0= ruleModelSymbol ) - { - // InternalSolverLanguage.g:1579:5: (lv_symbol_1_0= ruleModelSymbol ) - // InternalSolverLanguage.g:1580:6: lv_symbol_1_0= ruleModelSymbol - { - newCompositeNode(grammarAccess.getConstraintAccess().getSymbolModelSymbolParserRuleCall_0_1_0()); - - pushFollow(FOLLOW_23); - lv_symbol_1_0=ruleModelSymbol(); + } - state._fsp--; + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - set( - current, - "symbol", - lv_symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - - } + } + if ( state.backtracking==0 ) { - } + leaveRule(); - // InternalSolverLanguage.g:1597:4: (otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' )? - int alt30=2; - int LA30_0 = input.LA(1); + } + } - if ( (LA30_0==17) ) { - alt30=1; - } - switch (alt30) { - case 1 : - // InternalSolverLanguage.g:1598:5: otherlv_2= '(' ( (lv_params_3_0= ruleLiteral ) )? (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* otherlv_6= ')' - { - otherlv_2=(Token)match(input,17,FOLLOW_24); + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "ruleExactScopeDefinition" - newLeafNode(otherlv_2, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_0_2_0()); - - // InternalSolverLanguage.g:1602:5: ( (lv_params_3_0= ruleLiteral ) )? - int alt28=2; - int LA28_0 = input.LA(1); - if ( ((LA28_0>=RULE_INT && LA28_0<=RULE_STRING)||LA28_0==11||(LA28_0>=13 && LA28_0<=14)||LA28_0==27) ) { - alt28=1; - } - switch (alt28) { - case 1 : - // InternalSolverLanguage.g:1603:6: (lv_params_3_0= ruleLiteral ) - { - // InternalSolverLanguage.g:1603:6: (lv_params_3_0= ruleLiteral ) - // InternalSolverLanguage.g:1604:7: lv_params_3_0= ruleLiteral - { + // $ANTLR start "entryRuleBoundedScopeDefinition" + // InternalSolverLanguage.g:3065:1: entryRuleBoundedScopeDefinition returns [EObject current=null] : iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF ; + public final EObject entryRuleBoundedScopeDefinition() throws RecognitionException { + EObject current = null; - newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_0_2_1_0()); - - pushFollow(FOLLOW_8); - lv_params_3_0=ruleLiteral(); + EObject iv_ruleBoundedScopeDefinition = null; - state._fsp--; + try { + // InternalSolverLanguage.g:3065:63: (iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF ) + // InternalSolverLanguage.g:3066:2: iv_ruleBoundedScopeDefinition= ruleBoundedScopeDefinition EOF + { + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getBoundedScopeDefinitionRule()); + } + pushFollow(FOLLOW_1); + iv_ruleBoundedScopeDefinition=ruleBoundedScopeDefinition(); - if (current==null) { - current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - add( - current, - "params", - lv_params_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); - afterParserOrEnumRuleCall(); - + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleBoundedScopeDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; - } + } + } - } - break; + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end "entryRuleBoundedScopeDefinition" - } - // InternalSolverLanguage.g:1621:5: (otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) )* - loop29: - do { - int alt29=2; - int LA29_0 = input.LA(1); + // $ANTLR start "ruleBoundedScopeDefinition" + // 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= '.' ) ; + public final EObject ruleBoundedScopeDefinition() throws RecognitionException { + EObject current = null; - if ( (LA29_0==18) ) { - alt29=1; - } + Token otherlv_0=null; + Token lv_lowerBound_1_0=null; + Token otherlv_2=null; + Token otherlv_4=null; + Token lv_upperBound_5_0=null; + Token lv_upperBound_6_0=null; + Token otherlv_7=null; + Token otherlv_9=null; + Token lv_lowerBound_10_0=null; + Token otherlv_11=null; - switch (alt29) { - case 1 : - // InternalSolverLanguage.g:1622:6: otherlv_4= ',' ( (lv_params_5_0= ruleLiteral ) ) - { - otherlv_4=(Token)match(input,18,FOLLOW_25); + enterRule(); - newLeafNode(otherlv_4, grammarAccess.getConstraintAccess().getCommaKeyword_0_2_2_0()); - - // InternalSolverLanguage.g:1626:6: ( (lv_params_5_0= ruleLiteral ) ) - // InternalSolverLanguage.g:1627:7: (lv_params_5_0= ruleLiteral ) - { - // InternalSolverLanguage.g:1627:7: (lv_params_5_0= ruleLiteral ) - // InternalSolverLanguage.g:1628:8: lv_params_5_0= ruleLiteral - { + try { + // 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= '.' ) ) + // 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= '.' ) + { + // 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= '.' ) + // 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= '.' + { + otherlv_0=(Token)match(input,46,FOLLOW_49); if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_0_2_2_1_0()); - - pushFollow(FOLLOW_8); - lv_params_5_0=ruleLiteral(); + newLeafNode(otherlv_0, grammarAccess.getBoundedScopeDefinitionAccess().getScopeKeyword_0()); + + } + // 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 ) ) )? ) ) + int alt39=2; + int LA39_0 = input.LA(1); - state._fsp--; + if ( (LA39_0==RULE_INT) ) { + int LA39_1 = input.LA(2); + if ( (LA39_1==49) ) { + alt39=2; + } + else if ( (LA39_1==48) ) { + alt39=1; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 39, 1, input); - if (current==null) { - current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - add( - current, - "params", - lv_params_5_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); - afterParserOrEnumRuleCall(); - + throw nvae; + } + } + else if ( (LA39_0==RULE_ID||LA39_0==RULE_QUOTED_ID) ) { + alt39=1; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 39, 0, input); - } + throw nvae; + } + switch (alt39) { + case 1 : + // InternalSolverLanguage.g:3085:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) ) + { + // InternalSolverLanguage.g:3085:4: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) ) + // InternalSolverLanguage.g:3086:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? ( ( ruleQualifiedName ) ) otherlv_4= '<=' ( (lv_upperBound_5_0= RULE_INT ) ) + { + // InternalSolverLanguage.g:3086:5: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' )? + int alt37=2; + int LA37_0 = input.LA(1); + if ( (LA37_0==RULE_INT) ) { + alt37=1; + } + switch (alt37) { + case 1 : + // InternalSolverLanguage.g:3087:6: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' + { + // InternalSolverLanguage.g:3087:6: ( (lv_lowerBound_1_0= RULE_INT ) ) + // InternalSolverLanguage.g:3088:7: (lv_lowerBound_1_0= RULE_INT ) + { + // InternalSolverLanguage.g:3088:7: (lv_lowerBound_1_0= RULE_INT ) + // InternalSolverLanguage.g:3089:8: lv_lowerBound_1_0= RULE_INT + { + lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_50); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + newLeafNode(lv_lowerBound_1_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + current, + "lowerBound", + lv_lowerBound_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } + } - } - break; - default : - break loop29; - } - } while (true); + } - otherlv_6=(Token)match(input,19,FOLLOW_2); + otherlv_2=(Token)match(input,48,FOLLOW_35); if (state.failed) return current; + if ( state.backtracking==0 ) { - newLeafNode(otherlv_6, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_0_2_3()); - + newLeafNode(otherlv_2, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_0_1()); + + } } break; } + // InternalSolverLanguage.g:3110:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:3111:6: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:3111:6: ( ruleQualifiedName ) + // InternalSolverLanguage.g:3112:7: ruleQualifiedName + { + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + + } + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_1_0()); + } + pushFollow(FOLLOW_50); + ruleQualifiedName(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + afterParserOrEnumRuleCall(); + } - break; - case 2 : - // 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= ')' ) - { - // 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= ')' ) - // 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= ')' - { - // InternalSolverLanguage.g:1654:4: ( (lv_closureType_7_0= ruleClosureType ) ) - // InternalSolverLanguage.g:1655:5: (lv_closureType_7_0= ruleClosureType ) - { - // InternalSolverLanguage.g:1655:5: (lv_closureType_7_0= ruleClosureType ) - // InternalSolverLanguage.g:1656:6: lv_closureType_7_0= ruleClosureType - { - newCompositeNode(grammarAccess.getConstraintAccess().getClosureTypeClosureTypeParserRuleCall_1_0_0()); - - pushFollow(FOLLOW_26); - lv_closureType_7_0=ruleClosureType(); + } - state._fsp--; + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - set( - current, - "closureType", - lv_closureType_7_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ClosureType"); - afterParserOrEnumRuleCall(); - + otherlv_4=(Token)match(input,48,FOLLOW_47); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_4, grammarAccess.getBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_2()); + } + // InternalSolverLanguage.g:3130:5: ( (lv_upperBound_5_0= RULE_INT ) ) + // InternalSolverLanguage.g:3131:6: (lv_upperBound_5_0= RULE_INT ) + { + // InternalSolverLanguage.g:3131:6: (lv_upperBound_5_0= RULE_INT ) + // InternalSolverLanguage.g:3132:7: lv_upperBound_5_0= RULE_INT + { + lv_upperBound_5_0=(Token)match(input,RULE_INT,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(lv_upperBound_5_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_0_3_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + current, + "upperBound", + lv_upperBound_5_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } } - otherlv_8=(Token)match(input,17,FOLLOW_24); - newLeafNode(otherlv_8, grammarAccess.getConstraintAccess().getLeftParenthesisKeyword_1_1()); - - // InternalSolverLanguage.g:1677:4: ( (lv_params_9_0= ruleLiteral ) )? - int alt31=2; - int LA31_0 = input.LA(1); + } + - if ( ((LA31_0>=RULE_INT && LA31_0<=RULE_STRING)||LA31_0==11||(LA31_0>=13 && LA31_0<=14)||LA31_0==27) ) { - alt31=1; } - switch (alt31) { - case 1 : - // InternalSolverLanguage.g:1678:5: (lv_params_9_0= ruleLiteral ) - { - // InternalSolverLanguage.g:1678:5: (lv_params_9_0= ruleLiteral ) - // InternalSolverLanguage.g:1679:6: lv_params_9_0= ruleLiteral - { - newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_1_2_0()); - - pushFollow(FOLLOW_8); - lv_params_9_0=ruleLiteral(); - state._fsp--; + } + break; + case 2 : + // InternalSolverLanguage.g:3150:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) + { + // InternalSolverLanguage.g:3150:4: ( ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? ) + // InternalSolverLanguage.g:3151:5: ( (lv_upperBound_6_0= RULE_INT ) ) otherlv_7= '>=' ( ( ruleQualifiedName ) ) (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? + { + // InternalSolverLanguage.g:3151:5: ( (lv_upperBound_6_0= RULE_INT ) ) + // InternalSolverLanguage.g:3152:6: (lv_upperBound_6_0= RULE_INT ) + { + // InternalSolverLanguage.g:3152:6: (lv_upperBound_6_0= RULE_INT ) + // InternalSolverLanguage.g:3153:7: lv_upperBound_6_0= RULE_INT + { + lv_upperBound_6_0=(Token)match(input,RULE_INT,FOLLOW_51); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(lv_upperBound_6_0, grammarAccess.getBoundedScopeDefinitionAccess().getUpperBoundINTTerminalRuleCall_1_1_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + current, + "upperBound", + lv_upperBound_6_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - add( - current, - "params", - lv_params_9_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); - afterParserOrEnumRuleCall(); - + } - } + } - } - break; + otherlv_7=(Token)match(input,49,FOLLOW_35); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_7, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); + } + // InternalSolverLanguage.g:3173:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:3174:6: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:3174:6: ( ruleQualifiedName ) + // InternalSolverLanguage.g:3175:7: ruleQualifiedName + { + if ( state.backtracking==0 ) { - // InternalSolverLanguage.g:1696:4: (otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) )* - loop32: - do { - int alt32=2; - int LA32_0 = input.LA(1); + if (current==null) { + current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + + } + if ( state.backtracking==0 ) { - if ( (LA32_0==18) ) { - alt32=1; - } + newCompositeNode(grammarAccess.getBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_2_0()); + + } + pushFollow(FOLLOW_52); + ruleQualifiedName(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - switch (alt32) { - case 1 : - // InternalSolverLanguage.g:1697:5: otherlv_10= ',' ( (lv_params_11_0= ruleLiteral ) ) - { - otherlv_10=(Token)match(input,18,FOLLOW_25); + afterParserOrEnumRuleCall(); + + } - newLeafNode(otherlv_10, grammarAccess.getConstraintAccess().getCommaKeyword_1_3_0()); - - // InternalSolverLanguage.g:1701:5: ( (lv_params_11_0= ruleLiteral ) ) - // InternalSolverLanguage.g:1702:6: (lv_params_11_0= ruleLiteral ) - { - // InternalSolverLanguage.g:1702:6: (lv_params_11_0= ruleLiteral ) - // InternalSolverLanguage.g:1703:7: lv_params_11_0= ruleLiteral - { + } - newCompositeNode(grammarAccess.getConstraintAccess().getParamsLiteralParserRuleCall_1_3_1_0()); - - pushFollow(FOLLOW_8); - lv_params_11_0=ruleLiteral(); - state._fsp--; + } + + // InternalSolverLanguage.g:3189:5: (otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) )? + int alt38=2; + int LA38_0 = input.LA(1); + if ( (LA38_0==49) ) { + alt38=1; + } + switch (alt38) { + case 1 : + // InternalSolverLanguage.g:3190:6: otherlv_9= '>=' ( (lv_lowerBound_10_0= RULE_INT ) ) + { + otherlv_9=(Token)match(input,49,FOLLOW_47); if (state.failed) return current; + if ( state.backtracking==0 ) { - if (current==null) { - current = createModelElementForParent(grammarAccess.getConstraintRule()); - } - add( - current, - "params", - lv_params_11_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); - afterParserOrEnumRuleCall(); - + newLeafNode(otherlv_9, grammarAccess.getBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_3_0()); + + } + // InternalSolverLanguage.g:3194:6: ( (lv_lowerBound_10_0= RULE_INT ) ) + // InternalSolverLanguage.g:3195:7: (lv_lowerBound_10_0= RULE_INT ) + { + // InternalSolverLanguage.g:3195:7: (lv_lowerBound_10_0= RULE_INT ) + // InternalSolverLanguage.g:3196:8: lv_lowerBound_10_0= RULE_INT + { + lv_lowerBound_10_0=(Token)match(input,RULE_INT,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + newLeafNode(lv_lowerBound_10_0, grammarAccess.getBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_3_1_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + current, + "lowerBound", + lv_lowerBound_10_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } + } - } + } - } - break; - default : - break loop32; - } - } while (true); + } + break; - otherlv_12=(Token)match(input,19,FOLLOW_2); + } - newLeafNode(otherlv_12, grammarAccess.getConstraintAccess().getRightParenthesisKeyword_1_4()); - } @@ -5003,12 +9214,23 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + otherlv_11=(Token)match(input,22,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_11, grammarAccess.getBoundedScopeDefinitionAccess().getFullStopKeyword_2()); + } + } + + + } - leaveRule(); + if ( state.backtracking==0 ) { + leaveRule(); + + } } catch (RecognitionException re) { @@ -5019,29 +9241,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleConstraint" + // $ANTLR end "ruleBoundedScopeDefinition" - // $ANTLR start "entryRuleClosureType" - // InternalSolverLanguage.g:1730:1: entryRuleClosureType returns [EObject current=null] : iv_ruleClosureType= ruleClosureType EOF ; - public final EObject entryRuleClosureType() throws RecognitionException { + // $ANTLR start "entryRuleLowerBoundedScopeDefinition" + // InternalSolverLanguage.g:3223:1: entryRuleLowerBoundedScopeDefinition returns [EObject current=null] : iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF ; + public final EObject entryRuleLowerBoundedScopeDefinition() throws RecognitionException { EObject current = null; - EObject iv_ruleClosureType = null; + EObject iv_ruleLowerBoundedScopeDefinition = null; try { - // InternalSolverLanguage.g:1730:52: (iv_ruleClosureType= ruleClosureType EOF ) - // InternalSolverLanguage.g:1731:2: iv_ruleClosureType= ruleClosureType EOF + // InternalSolverLanguage.g:3223:68: (iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF ) + // InternalSolverLanguage.g:3224:2: iv_ruleLowerBoundedScopeDefinition= ruleLowerBoundedScopeDefinition EOF { - newCompositeNode(grammarAccess.getClosureTypeRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionRule()); + } pushFollow(FOLLOW_1); - iv_ruleClosureType=ruleClosureType(); + iv_ruleLowerBoundedScopeDefinition=ruleLowerBoundedScopeDefinition(); state._fsp--; - - current =iv_ruleClosureType; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleLowerBoundedScopeDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -5055,265 +9281,239 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleClosureType" + // $ANTLR end "entryRuleLowerBoundedScopeDefinition" - // $ANTLR start "ruleClosureType" - // InternalSolverLanguage.g:1737:1: ruleClosureType returns [EObject current=null] : ( ( () otherlv_1= '*' ) | ( () otherlv_3= '+' ) ) ; - public final EObject ruleClosureType() throws RecognitionException { + // $ANTLR start "ruleLowerBoundedScopeDefinition" + // 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= '.' ) ; + public final EObject ruleLowerBoundedScopeDefinition() throws RecognitionException { EObject current = null; - Token otherlv_1=null; - Token otherlv_3=null; + Token otherlv_0=null; + Token lv_lowerBound_1_0=null; + Token otherlv_2=null; + Token otherlv_5=null; + Token lv_lowerBound_6_0=null; + Token otherlv_7=null; enterRule(); try { - // InternalSolverLanguage.g:1743:2: ( ( ( () otherlv_1= '*' ) | ( () otherlv_3= '+' ) ) ) - // InternalSolverLanguage.g:1744:2: ( ( () otherlv_1= '*' ) | ( () otherlv_3= '+' ) ) + // 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= '.' ) ) + // 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= '.' ) { - // InternalSolverLanguage.g:1744:2: ( ( () otherlv_1= '*' ) | ( () otherlv_3= '+' ) ) - int alt34=2; - int LA34_0 = input.LA(1); + // 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= '.' ) + // 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= '.' + { + otherlv_0=(Token)match(input,46,FOLLOW_49); if (state.failed) return current; + if ( state.backtracking==0 ) { - if ( (LA34_0==31) ) { - alt34=1; + newLeafNode(otherlv_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getScopeKeyword_0()); + + } + // InternalSolverLanguage.g:3242:3: ( ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) ) | ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) ) ) + int alt40=2; + int LA40_0 = input.LA(1); + + if ( (LA40_0==RULE_INT) ) { + alt40=1; } - else if ( (LA34_0==30) ) { - alt34=2; + else if ( (LA40_0==RULE_ID||LA40_0==RULE_QUOTED_ID) ) { + alt40=2; } else { + if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 34, 0, input); + new NoViableAltException("", 40, 0, input); throw nvae; } - switch (alt34) { + switch (alt40) { case 1 : - // InternalSolverLanguage.g:1745:3: ( () otherlv_1= '*' ) + // InternalSolverLanguage.g:3243:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) ) { - // InternalSolverLanguage.g:1745:3: ( () otherlv_1= '*' ) - // InternalSolverLanguage.g:1746:4: () otherlv_1= '*' + // InternalSolverLanguage.g:3243:4: ( ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) ) + // InternalSolverLanguage.g:3244:5: ( (lv_lowerBound_1_0= RULE_INT ) ) otherlv_2= '<=' ( ( ruleQualifiedName ) ) { - // InternalSolverLanguage.g:1746:4: () - // InternalSolverLanguage.g:1747:5: + // InternalSolverLanguage.g:3244:5: ( (lv_lowerBound_1_0= RULE_INT ) ) + // InternalSolverLanguage.g:3245:6: (lv_lowerBound_1_0= RULE_INT ) { + // InternalSolverLanguage.g:3245:6: (lv_lowerBound_1_0= RULE_INT ) + // InternalSolverLanguage.g:3246:7: lv_lowerBound_1_0= RULE_INT + { + lv_lowerBound_1_0=(Token)match(input,RULE_INT,FOLLOW_50); if (state.failed) return current; + if ( state.backtracking==0 ) { - current = forceCreateModelElement( - grammarAccess.getClosureTypeAccess().getReflexiveClosureAction_0_0(), - current); - - + newLeafNode(lv_lowerBound_1_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_0_0_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + current, + "lowerBound", + lv_lowerBound_1_0, + "org.eclipse.xtext.common.Terminals.INT"); + } - otherlv_1=(Token)match(input,31,FOLLOW_2); + } - newLeafNode(otherlv_1, grammarAccess.getClosureTypeAccess().getAsteriskKeyword_0_1()); - } + otherlv_2=(Token)match(input,48,FOLLOW_35); if (state.failed) return current; + if ( state.backtracking==0 ) { + newLeafNode(otherlv_2, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLessThanSignEqualsSignKeyword_1_0_1()); + } - break; - case 2 : - // InternalSolverLanguage.g:1759:3: ( () otherlv_3= '+' ) + // InternalSolverLanguage.g:3266:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:3267:6: ( ruleQualifiedName ) { - // InternalSolverLanguage.g:1759:3: ( () otherlv_3= '+' ) - // InternalSolverLanguage.g:1760:4: () otherlv_3= '+' + // InternalSolverLanguage.g:3267:6: ( ruleQualifiedName ) + // InternalSolverLanguage.g:3268:7: ruleQualifiedName { - // InternalSolverLanguage.g:1760:4: () - // InternalSolverLanguage.g:1761:5: - { - - current = forceCreateModelElement( - grammarAccess.getClosureTypeAccess().getIrreflexiveClosureAction_1_0(), - current); - + if ( state.backtracking==0 ) { + if (current==null) { + current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + } + } + if ( state.backtracking==0 ) { - otherlv_3=(Token)match(input,30,FOLLOW_2); - - newLeafNode(otherlv_3, grammarAccess.getClosureTypeAccess().getPlusSignKeyword_1_1()); - - + newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_0_2_0()); + } + pushFollow(FOLLOW_12); + ruleQualifiedName(); + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + afterParserOrEnumRuleCall(); + } - break; - - } - - - } - - - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleClosureType" - - - // $ANTLR start "entryRuleLiteral" - // InternalSolverLanguage.g:1776:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ; - public final EObject entryRuleLiteral() throws RecognitionException { - EObject current = null; - - EObject iv_ruleLiteral = null; - - - try { - // InternalSolverLanguage.g:1776:48: (iv_ruleLiteral= ruleLiteral EOF ) - // InternalSolverLanguage.g:1777:2: iv_ruleLiteral= ruleLiteral EOF - { - newCompositeNode(grammarAccess.getLiteralRule()); - pushFollow(FOLLOW_1); - iv_ruleLiteral=ruleLiteral(); - state._fsp--; + } - current =iv_ruleLiteral; - match(input,EOF,FOLLOW_2); - } + } - } - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "entryRuleLiteral" + } - // $ANTLR start "ruleLiteral" - // InternalSolverLanguage.g:1783:1: ruleLiteral returns [EObject current=null] : (this_Variable_0= ruleVariable | this_DataObject_1= ruleDataObject | this_NamedObject_2= ruleNamedObject ) ; - public final EObject ruleLiteral() throws RecognitionException { - EObject current = null; + } + break; + case 2 : + // InternalSolverLanguage.g:3284:4: ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) ) + { + // InternalSolverLanguage.g:3284:4: ( ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) ) + // InternalSolverLanguage.g:3285:5: ( ( ruleQualifiedName ) ) otherlv_5= '>=' ( (lv_lowerBound_6_0= RULE_INT ) ) + { + // InternalSolverLanguage.g:3285:5: ( ( ruleQualifiedName ) ) + // InternalSolverLanguage.g:3286:6: ( ruleQualifiedName ) + { + // InternalSolverLanguage.g:3286:6: ( ruleQualifiedName ) + // InternalSolverLanguage.g:3287:7: ruleQualifiedName + { + if ( state.backtracking==0 ) { - EObject this_Variable_0 = null; + if (current==null) { + current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + } + + } + if ( state.backtracking==0 ) { - EObject this_DataObject_1 = null; + newCompositeNode(grammarAccess.getLowerBoundedScopeDefinitionAccess().getTypeNamedElementCrossReference_1_1_0_0()); + + } + pushFollow(FOLLOW_51); + ruleQualifiedName(); - EObject this_NamedObject_2 = null; + state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { + afterParserOrEnumRuleCall(); + + } + } - enterRule(); - try { - // InternalSolverLanguage.g:1789:2: ( (this_Variable_0= ruleVariable | this_DataObject_1= ruleDataObject | this_NamedObject_2= ruleNamedObject ) ) - // InternalSolverLanguage.g:1790:2: (this_Variable_0= ruleVariable | this_DataObject_1= ruleDataObject | this_NamedObject_2= ruleNamedObject ) - { - // InternalSolverLanguage.g:1790:2: (this_Variable_0= ruleVariable | this_DataObject_1= ruleDataObject | this_NamedObject_2= ruleNamedObject ) - int alt35=3; - switch ( input.LA(1) ) { - case RULE_ID: - { - alt35=1; - } - break; - case RULE_INT: - case RULE_STRING: - case 11: - case 13: - case 14: - { - alt35=2; - } - break; - case 27: - { - alt35=3; - } - break; - default: - NoViableAltException nvae = - new NoViableAltException("", 35, 0, input); + } - throw nvae; - } + otherlv_5=(Token)match(input,49,FOLLOW_47); if (state.failed) return current; + if ( state.backtracking==0 ) { - switch (alt35) { - case 1 : - // InternalSolverLanguage.g:1791:3: this_Variable_0= ruleVariable + newLeafNode(otherlv_5, grammarAccess.getLowerBoundedScopeDefinitionAccess().getGreaterThanSignEqualsSignKeyword_1_1_1()); + + } + // InternalSolverLanguage.g:3305:5: ( (lv_lowerBound_6_0= RULE_INT ) ) + // InternalSolverLanguage.g:3306:6: (lv_lowerBound_6_0= RULE_INT ) { + // InternalSolverLanguage.g:3306:6: (lv_lowerBound_6_0= RULE_INT ) + // InternalSolverLanguage.g:3307:7: lv_lowerBound_6_0= RULE_INT + { + lv_lowerBound_6_0=(Token)match(input,RULE_INT,FOLLOW_12); if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getLiteralAccess().getVariableParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_Variable_0=ruleVariable(); - - state._fsp--; + newLeafNode(lv_lowerBound_6_0, grammarAccess.getLowerBoundedScopeDefinitionAccess().getLowerBoundINTTerminalRuleCall_1_1_2_0()); + + } + if ( state.backtracking==0 ) { + + if (current==null) { + current = createModelElement(grammarAccess.getLowerBoundedScopeDefinitionRule()); + } + setWithLastConsumed( + current, + "lowerBound", + lv_lowerBound_6_0, + "org.eclipse.xtext.common.Terminals.INT"); + + } + } - current = this_Variable_0; - afterParserOrEnumRuleCall(); - } - break; - case 2 : - // InternalSolverLanguage.g:1800:3: this_DataObject_1= ruleDataObject - { - - newCompositeNode(grammarAccess.getLiteralAccess().getDataObjectParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_DataObject_1=ruleDataObject(); - state._fsp--; + } - current = this_DataObject_1; - afterParserOrEnumRuleCall(); - } break; - case 3 : - // InternalSolverLanguage.g:1809:3: this_NamedObject_2= ruleNamedObject - { - - newCompositeNode(grammarAccess.getLiteralAccess().getNamedObjectParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_NamedObject_2=ruleNamedObject(); - - state._fsp--; + } - current = this_NamedObject_2; - afterParserOrEnumRuleCall(); - + otherlv_7=(Token)match(input,22,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } - break; + newLeafNode(otherlv_7, grammarAccess.getLowerBoundedScopeDefinitionAccess().getFullStopKeyword_2()); + + } } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -5324,29 +9524,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleLiteral" + // $ANTLR end "ruleLowerBoundedScopeDefinition" - // $ANTLR start "entryRuleVariable" - // InternalSolverLanguage.g:1821:1: entryRuleVariable returns [EObject current=null] : iv_ruleVariable= ruleVariable EOF ; - public final EObject entryRuleVariable() throws RecognitionException { + // $ANTLR start "entryRuleObjectiveDefinition" + // InternalSolverLanguage.g:3333:1: entryRuleObjectiveDefinition returns [EObject current=null] : iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF ; + public final EObject entryRuleObjectiveDefinition() throws RecognitionException { EObject current = null; - EObject iv_ruleVariable = null; + EObject iv_ruleObjectiveDefinition = null; try { - // InternalSolverLanguage.g:1821:49: (iv_ruleVariable= ruleVariable EOF ) - // InternalSolverLanguage.g:1822:2: iv_ruleVariable= ruleVariable EOF + // InternalSolverLanguage.g:3333:60: (iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF ) + // InternalSolverLanguage.g:3334:2: iv_ruleObjectiveDefinition= ruleObjectiveDefinition EOF { - newCompositeNode(grammarAccess.getVariableRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getObjectiveDefinitionRule()); + } pushFollow(FOLLOW_1); - iv_ruleVariable=ruleVariable(); + iv_ruleObjectiveDefinition=ruleObjectiveDefinition(); state._fsp--; - - current =iv_ruleVariable; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleObjectiveDefinition; + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -5360,152 +9564,93 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleVariable" + // $ANTLR end "entryRuleObjectiveDefinition" - // $ANTLR start "ruleVariable" - // InternalSolverLanguage.g:1828:1: ruleVariable returns [EObject current=null] : ( (lv_name_0_0= RULE_ID ) ) ; - public final EObject ruleVariable() throws RecognitionException { + // $ANTLR start "ruleObjectiveDefinition" + // InternalSolverLanguage.g:3340:1: ruleObjectiveDefinition returns [EObject current=null] : ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) ; + public final EObject ruleObjectiveDefinition() throws RecognitionException { EObject current = null; - Token lv_name_0_0=null; + Enumerator lv_kind_0_0 = null; + + EObject lv_objective_1_0 = null; + enterRule(); try { - // InternalSolverLanguage.g:1834:2: ( ( (lv_name_0_0= RULE_ID ) ) ) - // InternalSolverLanguage.g:1835:2: ( (lv_name_0_0= RULE_ID ) ) + // InternalSolverLanguage.g:3346:2: ( ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) ) + // InternalSolverLanguage.g:3347:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) { - // InternalSolverLanguage.g:1835:2: ( (lv_name_0_0= RULE_ID ) ) - // InternalSolverLanguage.g:1836:3: (lv_name_0_0= RULE_ID ) + // InternalSolverLanguage.g:3347:2: ( ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) ) + // InternalSolverLanguage.g:3348:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) ( (lv_objective_1_0= ruleExpression ) ) { - // InternalSolverLanguage.g:1836:3: (lv_name_0_0= RULE_ID ) - // InternalSolverLanguage.g:1837:4: lv_name_0_0= RULE_ID + // InternalSolverLanguage.g:3348:3: ( (lv_kind_0_0= ruleObjectiveKind ) ) + // InternalSolverLanguage.g:3349:4: (lv_kind_0_0= ruleObjectiveKind ) { - lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_2); - - newLeafNode(lv_name_0_0, grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getVariableRule()); - } - setWithLastConsumed( - current, - "name", - lv_name_0_0, - "org.eclipse.xtext.common.Terminals.ID"); - - - } - - - } - - - } - - - leaveRule(); - - } + // InternalSolverLanguage.g:3349:4: (lv_kind_0_0= ruleObjectiveKind ) + // InternalSolverLanguage.g:3350:5: lv_kind_0_0= ruleObjectiveKind + { + if ( state.backtracking==0 ) { - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); + newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0()); + } - finally { - } - return current; - } - // $ANTLR end "ruleVariable" - - - // $ANTLR start "entryRuleAllInstances" - // InternalSolverLanguage.g:1856:1: entryRuleAllInstances returns [EObject current=null] : iv_ruleAllInstances= ruleAllInstances EOF ; - public final EObject entryRuleAllInstances() throws RecognitionException { - EObject current = null; - - EObject iv_ruleAllInstances = null; - - - try { - // InternalSolverLanguage.g:1856:53: (iv_ruleAllInstances= ruleAllInstances EOF ) - // InternalSolverLanguage.g:1857:2: iv_ruleAllInstances= ruleAllInstances EOF - { - newCompositeNode(grammarAccess.getAllInstancesRule()); - pushFollow(FOLLOW_1); - iv_ruleAllInstances=ruleAllInstances(); + pushFollow(FOLLOW_6); + lv_kind_0_0=ruleObjectiveKind(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - current =iv_ruleAllInstances; - match(input,EOF,FOLLOW_2); - + if (current==null) { + current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); + } + set( + current, + "kind", + lv_kind_0_0, + "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind"); + afterParserOrEnumRuleCall(); + } - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); } - finally { - } - return current; - } - // $ANTLR end "entryRuleAllInstances" - - - // $ANTLR start "ruleAllInstances" - // InternalSolverLanguage.g:1863:1: ruleAllInstances returns [EObject current=null] : (otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) ) ; - public final EObject ruleAllInstances() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - EObject lv_symbol_1_0 = null; - - enterRule(); - - try { - // InternalSolverLanguage.g:1869:2: ( (otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) ) ) - // InternalSolverLanguage.g:1870:2: (otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) ) - { - // InternalSolverLanguage.g:1870:2: (otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) ) - // InternalSolverLanguage.g:1871:3: otherlv_0= ':' ( (lv_symbol_1_0= ruleSymbol ) ) - { - otherlv_0=(Token)match(input,20,FOLLOW_21); + } - newLeafNode(otherlv_0, grammarAccess.getAllInstancesAccess().getColonKeyword_0()); - - // InternalSolverLanguage.g:1875:3: ( (lv_symbol_1_0= ruleSymbol ) ) - // InternalSolverLanguage.g:1876:4: (lv_symbol_1_0= ruleSymbol ) + // InternalSolverLanguage.g:3367:3: ( (lv_objective_1_0= ruleExpression ) ) + // InternalSolverLanguage.g:3368:4: (lv_objective_1_0= ruleExpression ) { - // InternalSolverLanguage.g:1876:4: (lv_symbol_1_0= ruleSymbol ) - // InternalSolverLanguage.g:1877:5: lv_symbol_1_0= ruleSymbol + // InternalSolverLanguage.g:3368:4: (lv_objective_1_0= ruleExpression ) + // InternalSolverLanguage.g:3369:5: lv_objective_1_0= ruleExpression { + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getAllInstancesAccess().getSymbolSymbolParserRuleCall_1_0()); - + newCompositeNode(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0()); + + } pushFollow(FOLLOW_2); - lv_symbol_1_0=ruleSymbol(); + lv_objective_1_0=ruleExpression(); state._fsp--; + if (state.failed) return current; + if ( state.backtracking==0 ) { - - if (current==null) { - current = createModelElementForParent(grammarAccess.getAllInstancesRule()); - } - set( - current, - "symbol", - lv_symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); - afterParserOrEnumRuleCall(); - + if (current==null) { + current = createModelElementForParent(grammarAccess.getObjectiveDefinitionRule()); + } + set( + current, + "objective", + lv_objective_1_0, + "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); + afterParserOrEnumRuleCall(); + + } } @@ -5518,9 +9663,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -5531,29 +9678,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleAllInstances" + // $ANTLR end "ruleObjectiveDefinition" - // $ANTLR start "entryRuleAllObjects" - // InternalSolverLanguage.g:1898:1: entryRuleAllObjects returns [EObject current=null] : iv_ruleAllObjects= ruleAllObjects EOF ; - public final EObject entryRuleAllObjects() throws RecognitionException { - EObject current = null; + // $ANTLR start "entryRuleUpperMultiplicty" + // InternalSolverLanguage.g:3390:1: entryRuleUpperMultiplicty returns [String current=null] : iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ; + public final String entryRuleUpperMultiplicty() throws RecognitionException { + String current = null; - EObject iv_ruleAllObjects = null; + AntlrDatatypeRuleToken iv_ruleUpperMultiplicty = null; try { - // InternalSolverLanguage.g:1898:51: (iv_ruleAllObjects= ruleAllObjects EOF ) - // InternalSolverLanguage.g:1899:2: iv_ruleAllObjects= ruleAllObjects EOF + // InternalSolverLanguage.g:3390:56: (iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF ) + // InternalSolverLanguage.g:3391:2: iv_ruleUpperMultiplicty= ruleUpperMultiplicty EOF { - newCompositeNode(grammarAccess.getAllObjectsRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getUpperMultiplictyRule()); + } pushFollow(FOLLOW_1); - iv_ruleAllObjects=ruleAllObjects(); + iv_ruleUpperMultiplicty=ruleUpperMultiplicty(); state._fsp--; - - current =iv_ruleAllObjects; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleUpperMultiplicty.getText(); + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -5567,50 +9718,83 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleAllObjects" + // $ANTLR end "entryRuleUpperMultiplicty" - // $ANTLR start "ruleAllObjects" - // InternalSolverLanguage.g:1905:1: ruleAllObjects returns [EObject current=null] : ( () otherlv_1= '*' ) ; - public final EObject ruleAllObjects() throws RecognitionException { - EObject current = null; + // $ANTLR start "ruleUpperMultiplicty" + // InternalSolverLanguage.g:3397:1: ruleUpperMultiplicty returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ; + public final AntlrDatatypeRuleToken ruleUpperMultiplicty() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); - Token otherlv_1=null; + Token this_INT_0=null; + Token kw=null; enterRule(); try { - // InternalSolverLanguage.g:1911:2: ( ( () otherlv_1= '*' ) ) - // InternalSolverLanguage.g:1912:2: ( () otherlv_1= '*' ) - { - // InternalSolverLanguage.g:1912:2: ( () otherlv_1= '*' ) - // InternalSolverLanguage.g:1913:3: () otherlv_1= '*' - { - // InternalSolverLanguage.g:1913:3: () - // InternalSolverLanguage.g:1914:4: + // InternalSolverLanguage.g:3403:2: ( (this_INT_0= RULE_INT | kw= '*' ) ) + // InternalSolverLanguage.g:3404:2: (this_INT_0= RULE_INT | kw= '*' ) { + // InternalSolverLanguage.g:3404:2: (this_INT_0= RULE_INT | kw= '*' ) + int alt41=2; + int LA41_0 = input.LA(1); - current = forceCreateModelElement( - grammarAccess.getAllObjectsAccess().getAllObjectsAction_0(), - current); - + if ( (LA41_0==RULE_INT) ) { + alt41=1; + } + else if ( (LA41_0==35) ) { + alt41=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 41, 0, input); + throw nvae; } + switch (alt41) { + case 1 : + // InternalSolverLanguage.g:3405:3: this_INT_0= RULE_INT + { + this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current.merge(this_INT_0); + + } + if ( state.backtracking==0 ) { + + newLeafNode(this_INT_0, grammarAccess.getUpperMultiplictyAccess().getINTTerminalRuleCall_0()); + + } - otherlv_1=(Token)match(input,31,FOLLOW_2); + } + break; + case 2 : + // InternalSolverLanguage.g:3413:3: kw= '*' + { + kw=(Token)match(input,35,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - newLeafNode(otherlv_1, grammarAccess.getAllObjectsAccess().getAsteriskKeyword_1()); - + current.merge(kw); + newLeafNode(kw, grammarAccess.getUpperMultiplictyAccess().getAsteriskKeyword_1()); + + } + + } + break; } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -5621,29 +9805,36 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleAllObjects" + // $ANTLR end "ruleUpperMultiplicty" - // $ANTLR start "entryRuleDefaultInterpretation" - // InternalSolverLanguage.g:1928:1: entryRuleDefaultInterpretation returns [EObject current=null] : iv_ruleDefaultInterpretation= ruleDefaultInterpretation EOF ; - public final EObject entryRuleDefaultInterpretation() throws RecognitionException { - EObject current = null; + // $ANTLR start "entryRuleReal" + // InternalSolverLanguage.g:3422:1: entryRuleReal returns [String current=null] : iv_ruleReal= ruleReal EOF ; + public final String entryRuleReal() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleReal = null; - EObject iv_ruleDefaultInterpretation = null; + HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); + try { - // InternalSolverLanguage.g:1928:62: (iv_ruleDefaultInterpretation= ruleDefaultInterpretation EOF ) - // InternalSolverLanguage.g:1929:2: iv_ruleDefaultInterpretation= ruleDefaultInterpretation EOF + // InternalSolverLanguage.g:3424:2: (iv_ruleReal= ruleReal EOF ) + // InternalSolverLanguage.g:3425:2: iv_ruleReal= ruleReal EOF { - newCompositeNode(grammarAccess.getDefaultInterpretationRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getRealRule()); + } pushFollow(FOLLOW_1); - iv_ruleDefaultInterpretation=ruleDefaultInterpretation(); + iv_ruleReal=ruleReal(); state._fsp--; - - current =iv_ruleDefaultInterpretation; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleReal.getText(); + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -5654,63 +9845,78 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { appendSkippedTokens(); } finally { + + myHiddenTokenState.restore(); + } return current; } - // $ANTLR end "entryRuleDefaultInterpretation" + // $ANTLR end "entryRuleReal" - // $ANTLR start "ruleDefaultInterpretation" - // InternalSolverLanguage.g:1935:1: ruleDefaultInterpretation returns [EObject current=null] : (otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) ) ; - public final EObject ruleDefaultInterpretation() throws RecognitionException { - EObject current = null; - - Token otherlv_0=null; - EObject lv_interpretation_1_0 = null; + // $ANTLR start "ruleReal" + // InternalSolverLanguage.g:3434:1: ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )? ) ; + public final AntlrDatatypeRuleToken ruleReal() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + Token this_INT_0=null; + Token kw=null; + Token this_INT_2=null; enterRule(); + HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); try { - // InternalSolverLanguage.g:1941:2: ( (otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) ) ) - // InternalSolverLanguage.g:1942:2: (otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) ) + // InternalSolverLanguage.g:3441:2: ( (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )? ) ) + // InternalSolverLanguage.g:3442:2: (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )? ) { - // InternalSolverLanguage.g:1942:2: (otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) ) - // InternalSolverLanguage.g:1943:3: otherlv_0= 'default' ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) + // InternalSolverLanguage.g:3442:2: (this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )? ) + // InternalSolverLanguage.g:3443:3: this_INT_0= RULE_INT (kw= '.' this_INT_2= RULE_INT )? { - otherlv_0=(Token)match(input,32,FOLLOW_21); + this_INT_0=(Token)match(input,RULE_INT,FOLLOW_53); if (state.failed) return current; + if ( state.backtracking==0 ) { - newLeafNode(otherlv_0, grammarAccess.getDefaultInterpretationAccess().getDefaultKeyword_0()); - - // InternalSolverLanguage.g:1947:3: ( (lv_interpretation_1_0= ruleBasicInterpretation ) ) - // InternalSolverLanguage.g:1948:4: (lv_interpretation_1_0= ruleBasicInterpretation ) - { - // InternalSolverLanguage.g:1948:4: (lv_interpretation_1_0= ruleBasicInterpretation ) - // InternalSolverLanguage.g:1949:5: lv_interpretation_1_0= ruleBasicInterpretation - { + current.merge(this_INT_0); + + } + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getDefaultInterpretationAccess().getInterpretationBasicInterpretationParserRuleCall_1_0()); - - pushFollow(FOLLOW_2); - lv_interpretation_1_0=ruleBasicInterpretation(); + newLeafNode(this_INT_0, grammarAccess.getRealAccess().getINTTerminalRuleCall_0()); + + } + // InternalSolverLanguage.g:3450:3: (kw= '.' this_INT_2= RULE_INT )? + int alt42=2; + int LA42_0 = input.LA(1); - state._fsp--; + if ( (LA42_0==22) ) { + alt42=1; + } + switch (alt42) { + case 1 : + // InternalSolverLanguage.g:3451:4: kw= '.' this_INT_2= RULE_INT + { + kw=(Token)match(input,22,FOLLOW_47); if (state.failed) return current; + if ( state.backtracking==0 ) { + current.merge(kw); + newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_0()); + + } + this_INT_2=(Token)match(input,RULE_INT,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - if (current==null) { - current = createModelElementForParent(grammarAccess.getDefaultInterpretationRule()); - } - set( - current, - "interpretation", - lv_interpretation_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.BasicInterpretation"); - afterParserOrEnumRuleCall(); - + current.merge(this_INT_2); + + } + if ( state.backtracking==0 ) { - } + newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1()); + + } + } + break; } @@ -5720,9 +9926,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -5730,32 +9938,42 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { appendSkippedTokens(); } finally { + + myHiddenTokenState.restore(); + } return current; } - // $ANTLR end "ruleDefaultInterpretation" + // $ANTLR end "ruleReal" - // $ANTLR start "entryRuleCDInterpretation" - // InternalSolverLanguage.g:1970:1: entryRuleCDInterpretation returns [EObject current=null] : iv_ruleCDInterpretation= ruleCDInterpretation EOF ; - public final EObject entryRuleCDInterpretation() throws RecognitionException { - EObject current = null; + // $ANTLR start "entryRuleQualifiedName" + // InternalSolverLanguage.g:3471:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ; + public final String entryRuleQualifiedName() throws RecognitionException { + String current = null; + + AntlrDatatypeRuleToken iv_ruleQualifiedName = null; - EObject iv_ruleCDInterpretation = null; + HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); + try { - // InternalSolverLanguage.g:1970:57: (iv_ruleCDInterpretation= ruleCDInterpretation EOF ) - // InternalSolverLanguage.g:1971:2: iv_ruleCDInterpretation= ruleCDInterpretation EOF + // InternalSolverLanguage.g:3473:2: (iv_ruleQualifiedName= ruleQualifiedName EOF ) + // InternalSolverLanguage.g:3474:2: iv_ruleQualifiedName= ruleQualifiedName EOF { - newCompositeNode(grammarAccess.getCDInterpretationRule()); + if ( state.backtracking==0 ) { + newCompositeNode(grammarAccess.getQualifiedNameRule()); + } pushFollow(FOLLOW_1); - iv_ruleCDInterpretation=ruleCDInterpretation(); + iv_ruleQualifiedName=ruleQualifiedName(); state._fsp--; - - current =iv_ruleCDInterpretation; - match(input,EOF,FOLLOW_2); + if (state.failed) return current; + if ( state.backtracking==0 ) { + current =iv_ruleQualifiedName.getText(); + } + match(input,EOF,FOLLOW_2); if (state.failed) return current; } @@ -5766,158 +9984,150 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { appendSkippedTokens(); } finally { + + myHiddenTokenState.restore(); + } return current; } - // $ANTLR end "entryRuleCDInterpretation" - - - // $ANTLR start "ruleCDInterpretation" - // InternalSolverLanguage.g:1977:1: ruleCDInterpretation returns [EObject current=null] : (this_ClassInterpretation_0= ruleClassInterpretation | this_EnumInterpretation_1= ruleEnumInterpretation | this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation ) ; - public final EObject ruleCDInterpretation() throws RecognitionException { - EObject current = null; - - EObject this_ClassInterpretation_0 = null; + // $ANTLR end "entryRuleQualifiedName" - EObject this_EnumInterpretation_1 = null; - EObject this_GlobalRelationInterpretation_2 = null; + // $ANTLR start "ruleQualifiedName" + // 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 ) ; + public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException { + AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); + Token this_ID_0=null; + Token kw=null; + Token this_ID_2=null; + Token this_QUOTED_ID_3=null; enterRule(); + HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); try { - // InternalSolverLanguage.g:1983:2: ( (this_ClassInterpretation_0= ruleClassInterpretation | this_EnumInterpretation_1= ruleEnumInterpretation | this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation ) ) - // InternalSolverLanguage.g:1984:2: (this_ClassInterpretation_0= ruleClassInterpretation | this_EnumInterpretation_1= ruleEnumInterpretation | this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation ) + // InternalSolverLanguage.g:3490:2: ( ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) ) + // InternalSolverLanguage.g:3491:2: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) { - // InternalSolverLanguage.g:1984:2: (this_ClassInterpretation_0= ruleClassInterpretation | this_EnumInterpretation_1= ruleEnumInterpretation | this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation ) - int alt36=3; - switch ( input.LA(1) ) { - case 33: - case 34: - { - alt36=1; - } - break; - case 38: - { - alt36=2; - } - break; - case 39: - case 40: - { - alt36=3; - } - break; - default: + // InternalSolverLanguage.g:3491:2: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) | this_QUOTED_ID_3= RULE_QUOTED_ID ) + int alt44=2; + int LA44_0 = input.LA(1); + + if ( (LA44_0==RULE_ID) ) { + alt44=1; + } + else if ( (LA44_0==RULE_QUOTED_ID) ) { + alt44=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 36, 0, input); + new NoViableAltException("", 44, 0, input); throw nvae; } - - switch (alt36) { + switch (alt44) { case 1 : - // InternalSolverLanguage.g:1985:3: this_ClassInterpretation_0= ruleClassInterpretation + // InternalSolverLanguage.g:3492:3: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) + { + // InternalSolverLanguage.g:3492:3: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) + // InternalSolverLanguage.g:3493:4: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* { + this_ID_0=(Token)match(input,RULE_ID,FOLLOW_53); if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getCDInterpretationAccess().getClassInterpretationParserRuleCall_0()); - - pushFollow(FOLLOW_2); - this_ClassInterpretation_0=ruleClassInterpretation(); + current.merge(this_ID_0); + + } + if ( state.backtracking==0 ) { - state._fsp--; + newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_0()); + + } + // InternalSolverLanguage.g:3500:4: (kw= '.' this_ID_2= RULE_ID )* + loop43: + do { + int alt43=2; + int LA43_0 = input.LA(1); + if ( (LA43_0==22) ) { + int LA43_2 = input.LA(2); - current = this_ClassInterpretation_0; - afterParserOrEnumRuleCall(); - + if ( (LA43_2==RULE_ID) ) { + alt43=1; + } - } - break; - case 2 : - // InternalSolverLanguage.g:1994:3: this_EnumInterpretation_1= ruleEnumInterpretation - { - newCompositeNode(grammarAccess.getCDInterpretationAccess().getEnumInterpretationParserRuleCall_1()); - - pushFollow(FOLLOW_2); - this_EnumInterpretation_1=ruleEnumInterpretation(); + } - state._fsp--; + switch (alt43) { + case 1 : + // InternalSolverLanguage.g:3501:5: kw= '.' this_ID_2= RULE_ID + { + kw=(Token)match(input,22,FOLLOW_40); if (state.failed) return current; + if ( state.backtracking==0 ) { - current = this_EnumInterpretation_1; - afterParserOrEnumRuleCall(); - + current.merge(kw); + newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_0_1_0()); + + } + this_ID_2=(Token)match(input,RULE_ID,FOLLOW_53); if (state.failed) return current; + if ( state.backtracking==0 ) { - } - break; - case 3 : - // InternalSolverLanguage.g:2003:3: this_GlobalRelationInterpretation_2= ruleGlobalRelationInterpretation - { + current.merge(this_ID_2); + + } + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getCDInterpretationAccess().getGlobalRelationInterpretationParserRuleCall_2()); - - pushFollow(FOLLOW_2); - this_GlobalRelationInterpretation_2=ruleGlobalRelationInterpretation(); + newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0_1_1()); + + } - state._fsp--; + } + break; + default : + break loop43; + } + } while (true); - current = this_GlobalRelationInterpretation_2; - afterParserOrEnumRuleCall(); - } - break; - - } - } + } + break; + case 2 : + // InternalSolverLanguage.g:3516:3: this_QUOTED_ID_3= RULE_QUOTED_ID + { + this_QUOTED_ID_3=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current.merge(this_QUOTED_ID_3); + + } + if ( state.backtracking==0 ) { - leaveRule(); + newLeafNode(this_QUOTED_ID_3, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1()); + + } - } + } + break; - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); } - finally { - } - return current; - } - // $ANTLR end "ruleCDInterpretation" - - // $ANTLR start "entryRuleClassInterpretation" - // InternalSolverLanguage.g:2015:1: entryRuleClassInterpretation returns [EObject current=null] : iv_ruleClassInterpretation= ruleClassInterpretation EOF ; - public final EObject entryRuleClassInterpretation() throws RecognitionException { - EObject current = null; - - EObject iv_ruleClassInterpretation = null; + } - try { - // InternalSolverLanguage.g:2015:60: (iv_ruleClassInterpretation= ruleClassInterpretation EOF ) - // InternalSolverLanguage.g:2016:2: iv_ruleClassInterpretation= ruleClassInterpretation EOF - { - newCompositeNode(grammarAccess.getClassInterpretationRule()); - pushFollow(FOLLOW_1); - iv_ruleClassInterpretation=ruleClassInterpretation(); - - state._fsp--; + if ( state.backtracking==0 ) { - current =iv_ruleClassInterpretation; - match(input,EOF,FOLLOW_2); + leaveRule(); } - } catch (RecognitionException re) { @@ -5925,63 +10135,80 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { appendSkippedTokens(); } finally { + + myHiddenTokenState.restore(); + } return current; } - // $ANTLR end "entryRuleClassInterpretation" - - - // $ANTLR start "ruleClassInterpretation" - // 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= '}' ) ; - public final EObject ruleClassInterpretation() throws RecognitionException { - EObject current = null; - - Token lv_abstract_0_0=null; - Token otherlv_1=null; - Token otherlv_3=null; - Token otherlv_5=null; - Token otherlv_7=null; - EObject lv_symbol_2_0 = null; + // $ANTLR end "ruleQualifiedName" - EObject lv_supertypes_4_0 = null; - EObject lv_fielt_6_0 = null; + // $ANTLR start "ruleMetricType" + // InternalSolverLanguage.g:3530:1: ruleMetricType returns [Enumerator current=null] : ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'real' ) ) ; + public final Enumerator ruleMetricType() throws RecognitionException { + Enumerator current = null; + Token enumLiteral_0=null; + Token enumLiteral_1=null; enterRule(); try { - // 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= '}' ) ) - // 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= '}' ) + // InternalSolverLanguage.g:3536:2: ( ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'real' ) ) ) + // InternalSolverLanguage.g:3537:2: ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'real' ) ) { - // 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= '}' ) - // 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= '}' - { - // InternalSolverLanguage.g:2030:3: ( (lv_abstract_0_0= 'abstract' ) )? - int alt37=2; - int LA37_0 = input.LA(1); + // InternalSolverLanguage.g:3537:2: ( (enumLiteral_0= 'int' ) | (enumLiteral_1= 'real' ) ) + int alt45=2; + int LA45_0 = input.LA(1); + + if ( (LA45_0==50) ) { + alt45=1; + } + else if ( (LA45_0==51) ) { + alt45=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 45, 0, input); - if ( (LA37_0==33) ) { - alt37=1; + throw nvae; } - switch (alt37) { + switch (alt45) { case 1 : - // InternalSolverLanguage.g:2031:4: (lv_abstract_0_0= 'abstract' ) + // InternalSolverLanguage.g:3538:3: (enumLiteral_0= 'int' ) { - // InternalSolverLanguage.g:2031:4: (lv_abstract_0_0= 'abstract' ) - // InternalSolverLanguage.g:2032:5: lv_abstract_0_0= 'abstract' + // InternalSolverLanguage.g:3538:3: (enumLiteral_0= 'int' ) + // InternalSolverLanguage.g:3539:4: enumLiteral_0= 'int' { - lv_abstract_0_0=(Token)match(input,33,FOLLOW_27); + enumLiteral_0=(Token)match(input,50,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + + current = grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getMetricTypeAccess().getINTEnumLiteralDeclaration_0()); + + } + + } + - newLeafNode(lv_abstract_0_0, grammarAccess.getClassInterpretationAccess().getAbstractAbstractKeyword_0_0()); - + } + break; + case 2 : + // InternalSolverLanguage.g:3546:3: (enumLiteral_1= 'real' ) + { + // InternalSolverLanguage.g:3546:3: (enumLiteral_1= 'real' ) + // InternalSolverLanguage.g:3547:4: enumLiteral_1= 'real' + { + enumLiteral_1=(Token)match(input,51,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - if (current==null) { - current = createModelElement(grammarAccess.getClassInterpretationRule()); - } - setWithLastConsumed(current, "abstract", true, "abstract"); - + current = grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getMetricTypeAccess().getREALEnumLiteralDeclaration_1()); + + } } @@ -5991,182 +10218,238 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - otherlv_1=(Token)match(input,34,FOLLOW_12); - - newLeafNode(otherlv_1, grammarAccess.getClassInterpretationAccess().getClassKeyword_1()); - - // InternalSolverLanguage.g:2048:3: ( (lv_symbol_2_0= ruleModelSymbol ) ) - // InternalSolverLanguage.g:2049:4: (lv_symbol_2_0= ruleModelSymbol ) - { - // InternalSolverLanguage.g:2049:4: (lv_symbol_2_0= ruleModelSymbol ) - // InternalSolverLanguage.g:2050:5: lv_symbol_2_0= ruleModelSymbol - { - newCompositeNode(grammarAccess.getClassInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0()); - - pushFollow(FOLLOW_28); - lv_symbol_2_0=ruleModelSymbol(); + } - state._fsp--; + if ( state.backtracking==0 ) { + leaveRule(); - if (current==null) { - current = createModelElementForParent(grammarAccess.getClassInterpretationRule()); - } - set( - current, - "symbol", - lv_symbol_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - + } + } + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); } + finally { + } + return current; + } + // $ANTLR end "ruleMetricType" - } + // $ANTLR start "ruleComparisonOperator" + // InternalSolverLanguage.g:3557:1: ruleComparisonOperator returns [Enumerator current=null] : ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '<=' ) | (enumLiteral_4= '>' ) | (enumLiteral_5= '>=' ) | (enumLiteral_6= 'in' ) ) ; + public final Enumerator ruleComparisonOperator() throws RecognitionException { + Enumerator current = null; - // InternalSolverLanguage.g:2067:3: (otherlv_3= 'extends' ( (lv_supertypes_4_0= ruleModelSymbol ) )+ )? - int alt39=2; - int LA39_0 = input.LA(1); + Token enumLiteral_0=null; + Token enumLiteral_1=null; + Token enumLiteral_2=null; + Token enumLiteral_3=null; + Token enumLiteral_4=null; + Token enumLiteral_5=null; + Token enumLiteral_6=null; - if ( (LA39_0==35) ) { - alt39=1; + + enterRule(); + + try { + // InternalSolverLanguage.g:3563:2: ( ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '<=' ) | (enumLiteral_4= '>' ) | (enumLiteral_5= '>=' ) | (enumLiteral_6= 'in' ) ) ) + // InternalSolverLanguage.g:3564:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '<=' ) | (enumLiteral_4= '>' ) | (enumLiteral_5= '>=' ) | (enumLiteral_6= 'in' ) ) + { + // InternalSolverLanguage.g:3564:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '<=' ) | (enumLiteral_4= '>' ) | (enumLiteral_5= '>=' ) | (enumLiteral_6= 'in' ) ) + int alt46=7; + switch ( input.LA(1) ) { + case 47: + { + alt46=1; + } + break; + case 52: + { + alt46=2; + } + break; + case 53: + { + alt46=3; + } + break; + case 48: + { + alt46=4; + } + break; + case 54: + { + alt46=5; + } + break; + case 49: + { + alt46=6; + } + break; + case 55: + { + alt46=7; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 46, 0, input); + + throw nvae; } - switch (alt39) { + + switch (alt46) { case 1 : - // InternalSolverLanguage.g:2068:4: otherlv_3= 'extends' ( (lv_supertypes_4_0= ruleModelSymbol ) )+ + // InternalSolverLanguage.g:3565:3: (enumLiteral_0= '==' ) { - otherlv_3=(Token)match(input,35,FOLLOW_12); - - newLeafNode(otherlv_3, grammarAccess.getClassInterpretationAccess().getExtendsKeyword_3_0()); - - // InternalSolverLanguage.g:2072:4: ( (lv_supertypes_4_0= ruleModelSymbol ) )+ - int cnt38=0; - loop38: - do { - int alt38=2; - int LA38_0 = input.LA(1); - - if ( (LA38_0==RULE_ID) ) { - alt38=1; - } + // InternalSolverLanguage.g:3565:3: (enumLiteral_0= '==' ) + // InternalSolverLanguage.g:3566:4: enumLiteral_0= '==' + { + enumLiteral_0=(Token)match(input,47,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorAccess().getEQEnumLiteralDeclaration_0()); + + } - switch (alt38) { - case 1 : - // InternalSolverLanguage.g:2073:5: (lv_supertypes_4_0= ruleModelSymbol ) - { - // InternalSolverLanguage.g:2073:5: (lv_supertypes_4_0= ruleModelSymbol ) - // InternalSolverLanguage.g:2074:6: lv_supertypes_4_0= ruleModelSymbol - { + } - newCompositeNode(grammarAccess.getClassInterpretationAccess().getSupertypesModelSymbolParserRuleCall_3_1_0()); - - pushFollow(FOLLOW_29); - lv_supertypes_4_0=ruleModelSymbol(); - state._fsp--; + } + break; + case 2 : + // InternalSolverLanguage.g:3573:3: (enumLiteral_1= '!=' ) + { + // InternalSolverLanguage.g:3573:3: (enumLiteral_1= '!=' ) + // InternalSolverLanguage.g:3574:4: enumLiteral_1= '!=' + { + enumLiteral_1=(Token)match(input,52,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorAccess().getNOT_EQEnumLiteralDeclaration_1()); + + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getClassInterpretationRule()); - } - add( - current, - "supertypes", - lv_supertypes_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - + } - } + } + break; + case 3 : + // InternalSolverLanguage.g:3581:3: (enumLiteral_2= '<' ) + { + // InternalSolverLanguage.g:3581:3: (enumLiteral_2= '<' ) + // InternalSolverLanguage.g:3582:4: enumLiteral_2= '<' + { + enumLiteral_2=(Token)match(input,53,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } - break; + current = grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getComparisonOperatorAccess().getLESSEnumLiteralDeclaration_2()); + + } - default : - if ( cnt38 >= 1 ) break loop38; - EarlyExitException eee = - new EarlyExitException(38, input); - throw eee; - } - cnt38++; - } while (true); + } } break; + case 4 : + // InternalSolverLanguage.g:3589:3: (enumLiteral_3= '<=' ) + { + // InternalSolverLanguage.g:3589:3: (enumLiteral_3= '<=' ) + // InternalSolverLanguage.g:3590:4: enumLiteral_3= '<=' + { + enumLiteral_3=(Token)match(input,48,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + current = grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorAccess().getLESS_EQEnumLiteralDeclaration_3()); + + } - otherlv_5=(Token)match(input,36,FOLLOW_30); + } - newLeafNode(otherlv_5, grammarAccess.getClassInterpretationAccess().getLeftCurlyBracketKeyword_4()); - - // InternalSolverLanguage.g:2096:3: ( (lv_fielt_6_0= ruleFieldRelationInterpretation ) )* - loop40: - do { - int alt40=2; - int LA40_0 = input.LA(1); - if ( (LA40_0==RULE_ID||LA40_0==39) ) { - alt40=1; - } + } + break; + case 5 : + // InternalSolverLanguage.g:3597:3: (enumLiteral_4= '>' ) + { + // InternalSolverLanguage.g:3597:3: (enumLiteral_4= '>' ) + // InternalSolverLanguage.g:3598:4: enumLiteral_4= '>' + { + enumLiteral_4=(Token)match(input,54,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getComparisonOperatorAccess().getGREATEREnumLiteralDeclaration_4()); + + } - switch (alt40) { - case 1 : - // InternalSolverLanguage.g:2097:4: (lv_fielt_6_0= ruleFieldRelationInterpretation ) - { - // InternalSolverLanguage.g:2097:4: (lv_fielt_6_0= ruleFieldRelationInterpretation ) - // InternalSolverLanguage.g:2098:5: lv_fielt_6_0= ruleFieldRelationInterpretation - { + } - newCompositeNode(grammarAccess.getClassInterpretationAccess().getFieltFieldRelationInterpretationParserRuleCall_5_0()); - - pushFollow(FOLLOW_30); - lv_fielt_6_0=ruleFieldRelationInterpretation(); - state._fsp--; + } + break; + case 6 : + // InternalSolverLanguage.g:3605:3: (enumLiteral_5= '>=' ) + { + // InternalSolverLanguage.g:3605:3: (enumLiteral_5= '>=' ) + // InternalSolverLanguage.g:3606:4: enumLiteral_5= '>=' + { + enumLiteral_5=(Token)match(input,49,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorAccess().getGREATER_EQEnumLiteralDeclaration_5()); + + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getClassInterpretationRule()); - } - add( - current, - "fielt", - lv_fielt_6_0, - "org.eclipse.viatra.solver.language.SolverLanguage.FieldRelationInterpretation"); - afterParserOrEnumRuleCall(); - + } - } + } + break; + case 7 : + // InternalSolverLanguage.g:3613:3: (enumLiteral_6= 'in' ) + { + // InternalSolverLanguage.g:3613:3: (enumLiteral_6= 'in' ) + // InternalSolverLanguage.g:3614:4: enumLiteral_6= 'in' + { + enumLiteral_6=(Token)match(input,55,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } - break; + current = grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_6, grammarAccess.getComparisonOperatorAccess().getINEnumLiteralDeclaration_6()); + + } - default : - break loop40; - } - } while (true); + } - otherlv_7=(Token)match(input,37,FOLLOW_2); - newLeafNode(otherlv_7, grammarAccess.getClassInterpretationAccess().getRightCurlyBracketKeyword_6()); - + } + break; } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -6177,174 +10460,186 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleClassInterpretation" + // $ANTLR end "ruleComparisonOperator" - // $ANTLR start "entryRuleEnumInterpretation" - // InternalSolverLanguage.g:2123:1: entryRuleEnumInterpretation returns [EObject current=null] : iv_ruleEnumInterpretation= ruleEnumInterpretation EOF ; - public final EObject entryRuleEnumInterpretation() throws RecognitionException { - EObject current = null; + // $ANTLR start "ruleAdditiveBinaryOperator" + // InternalSolverLanguage.g:3624:1: ruleAdditiveBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ; + public final Enumerator ruleAdditiveBinaryOperator() throws RecognitionException { + Enumerator current = null; + + Token enumLiteral_0=null; + Token enumLiteral_1=null; - EObject iv_ruleEnumInterpretation = null; + enterRule(); try { - // InternalSolverLanguage.g:2123:59: (iv_ruleEnumInterpretation= ruleEnumInterpretation EOF ) - // InternalSolverLanguage.g:2124:2: iv_ruleEnumInterpretation= ruleEnumInterpretation EOF + // InternalSolverLanguage.g:3630:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ) + // InternalSolverLanguage.g:3631:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) { - newCompositeNode(grammarAccess.getEnumInterpretationRule()); - pushFollow(FOLLOW_1); - iv_ruleEnumInterpretation=ruleEnumInterpretation(); - - state._fsp--; - - current =iv_ruleEnumInterpretation; - match(input,EOF,FOLLOW_2); + // InternalSolverLanguage.g:3631:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) + int alt47=2; + int LA47_0 = input.LA(1); + if ( (LA47_0==56) ) { + alt47=1; } + else if ( (LA47_0==57) ) { + alt47=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 47, 0, input); - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); + throw nvae; } - finally { - } - return current; - } - // $ANTLR end "entryRuleEnumInterpretation" + switch (alt47) { + case 1 : + // InternalSolverLanguage.g:3632:3: (enumLiteral_0= '+' ) + { + // InternalSolverLanguage.g:3632:3: (enumLiteral_0= '+' ) + // InternalSolverLanguage.g:3633:4: enumLiteral_0= '+' + { + enumLiteral_0=(Token)match(input,56,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getAdditiveBinaryOperatorAccess().getADDEnumLiteralDeclaration_0()); + + } - // $ANTLR start "ruleEnumInterpretation" - // 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= '}' ) ; - public final EObject ruleEnumInterpretation() throws RecognitionException { - EObject current = null; + } - Token otherlv_0=null; - Token otherlv_2=null; - Token otherlv_4=null; - EObject lv_Symbol_1_0 = null; - EObject lv_objects_3_0 = null; + } + break; + case 2 : + // InternalSolverLanguage.g:3640:3: (enumLiteral_1= '-' ) + { + // InternalSolverLanguage.g:3640:3: (enumLiteral_1= '-' ) + // InternalSolverLanguage.g:3641:4: enumLiteral_1= '-' + { + enumLiteral_1=(Token)match(input,57,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getAdditiveBinaryOperatorAccess().getSUBEnumLiteralDeclaration_1()); + + } + } - enterRule(); - try { - // InternalSolverLanguage.g:2136:2: ( (otherlv_0= 'enum' ( (lv_Symbol_1_0= ruleModelSymbol ) ) otherlv_2= '{' ( (lv_objects_3_0= ruleNamedObject ) )+ otherlv_4= '}' ) ) - // InternalSolverLanguage.g:2137:2: (otherlv_0= 'enum' ( (lv_Symbol_1_0= ruleModelSymbol ) ) otherlv_2= '{' ( (lv_objects_3_0= ruleNamedObject ) )+ otherlv_4= '}' ) - { - // InternalSolverLanguage.g:2137:2: (otherlv_0= 'enum' ( (lv_Symbol_1_0= ruleModelSymbol ) ) otherlv_2= '{' ( (lv_objects_3_0= ruleNamedObject ) )+ otherlv_4= '}' ) - // InternalSolverLanguage.g:2138:3: otherlv_0= 'enum' ( (lv_Symbol_1_0= ruleModelSymbol ) ) otherlv_2= '{' ( (lv_objects_3_0= ruleNamedObject ) )+ otherlv_4= '}' - { - otherlv_0=(Token)match(input,38,FOLLOW_12); + } + break; - newLeafNode(otherlv_0, grammarAccess.getEnumInterpretationAccess().getEnumKeyword_0()); - - // InternalSolverLanguage.g:2142:3: ( (lv_Symbol_1_0= ruleModelSymbol ) ) - // InternalSolverLanguage.g:2143:4: (lv_Symbol_1_0= ruleModelSymbol ) - { - // InternalSolverLanguage.g:2143:4: (lv_Symbol_1_0= ruleModelSymbol ) - // InternalSolverLanguage.g:2144:5: lv_Symbol_1_0= ruleModelSymbol - { + } - newCompositeNode(grammarAccess.getEnumInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0()); - - pushFollow(FOLLOW_31); - lv_Symbol_1_0=ruleModelSymbol(); - state._fsp--; + } + if ( state.backtracking==0 ) { - if (current==null) { - current = createModelElementForParent(grammarAccess.getEnumInterpretationRule()); - } - set( - current, - "Symbol", - lv_Symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - + leaveRule(); } + } - + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); } + finally { + } + return current; + } + // $ANTLR end "ruleAdditiveBinaryOperator" - otherlv_2=(Token)match(input,36,FOLLOW_13); - newLeafNode(otherlv_2, grammarAccess.getEnumInterpretationAccess().getLeftCurlyBracketKeyword_2()); - - // InternalSolverLanguage.g:2165:3: ( (lv_objects_3_0= ruleNamedObject ) )+ - int cnt41=0; - loop41: - do { - int alt41=2; - int LA41_0 = input.LA(1); + // $ANTLR start "ruleMultiplicativeBinaryOperator" + // InternalSolverLanguage.g:3651:1: ruleMultiplicativeBinaryOperator returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) ) ; + public final Enumerator ruleMultiplicativeBinaryOperator() throws RecognitionException { + Enumerator current = null; - if ( (LA41_0==27) ) { - alt41=1; - } + Token enumLiteral_0=null; + Token enumLiteral_1=null; - switch (alt41) { - case 1 : - // InternalSolverLanguage.g:2166:4: (lv_objects_3_0= ruleNamedObject ) - { - // InternalSolverLanguage.g:2166:4: (lv_objects_3_0= ruleNamedObject ) - // InternalSolverLanguage.g:2167:5: lv_objects_3_0= ruleNamedObject - { + enterRule(); - newCompositeNode(grammarAccess.getEnumInterpretationAccess().getObjectsNamedObjectParserRuleCall_3_0()); - - pushFollow(FOLLOW_32); - lv_objects_3_0=ruleNamedObject(); + try { + // InternalSolverLanguage.g:3657:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) ) ) + // InternalSolverLanguage.g:3658:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) ) + { + // InternalSolverLanguage.g:3658:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) ) + int alt48=2; + int LA48_0 = input.LA(1); - state._fsp--; + if ( (LA48_0==35) ) { + alt48=1; + } + else if ( (LA48_0==58) ) { + alt48=2; + } + else { + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 48, 0, input); + throw nvae; + } + switch (alt48) { + case 1 : + // InternalSolverLanguage.g:3659:3: (enumLiteral_0= '*' ) + { + // InternalSolverLanguage.g:3659:3: (enumLiteral_0= '*' ) + // InternalSolverLanguage.g:3660:4: enumLiteral_0= '*' + { + enumLiteral_0=(Token)match(input,35,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - if (current==null) { - current = createModelElementForParent(grammarAccess.getEnumInterpretationRule()); - } - add( - current, - "objects", - lv_objects_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.NamedObject"); - afterParserOrEnumRuleCall(); - + current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getMultiplicativeBinaryOperatorAccess().getMULEnumLiteralDeclaration_0()); + + } - } + } - } - break; + } + break; + case 2 : + // InternalSolverLanguage.g:3667:3: (enumLiteral_1= '/' ) + { + // InternalSolverLanguage.g:3667:3: (enumLiteral_1= '/' ) + // InternalSolverLanguage.g:3668:4: enumLiteral_1= '/' + { + enumLiteral_1=(Token)match(input,58,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - default : - if ( cnt41 >= 1 ) break loop41; - EarlyExitException eee = - new EarlyExitException(41, input); - throw eee; - } - cnt41++; - } while (true); + current = grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getMultiplicativeBinaryOperatorAccess().getDIVEnumLiteralDeclaration_1()); + + } + + } - otherlv_4=(Token)match(input,37,FOLLOW_2); - newLeafNode(otherlv_4, grammarAccess.getEnumInterpretationAccess().getRightCurlyBracketKeyword_4()); - + } + break; } } + if ( state.backtracking==0 ) { - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -6355,32 +10650,44 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleEnumInterpretation" + // $ANTLR end "ruleMultiplicativeBinaryOperator" - // $ANTLR start "entryRuleFieldRelationInterpretation" - // InternalSolverLanguage.g:2192:1: entryRuleFieldRelationInterpretation returns [EObject current=null] : iv_ruleFieldRelationInterpretation= ruleFieldRelationInterpretation EOF ; - public final EObject entryRuleFieldRelationInterpretation() throws RecognitionException { - EObject current = null; + // $ANTLR start "ruleExponentialOp" + // InternalSolverLanguage.g:3678:1: ruleExponentialOp returns [Enumerator current=null] : (enumLiteral_0= '^' ) ; + public final Enumerator ruleExponentialOp() throws RecognitionException { + Enumerator current = null; + + Token enumLiteral_0=null; - EObject iv_ruleFieldRelationInterpretation = null; + enterRule(); try { - // InternalSolverLanguage.g:2192:68: (iv_ruleFieldRelationInterpretation= ruleFieldRelationInterpretation EOF ) - // InternalSolverLanguage.g:2193:2: iv_ruleFieldRelationInterpretation= ruleFieldRelationInterpretation EOF + // InternalSolverLanguage.g:3684:2: ( (enumLiteral_0= '^' ) ) + // InternalSolverLanguage.g:3685:2: (enumLiteral_0= '^' ) { - newCompositeNode(grammarAccess.getFieldRelationInterpretationRule()); - pushFollow(FOLLOW_1); - iv_ruleFieldRelationInterpretation=ruleFieldRelationInterpretation(); + // InternalSolverLanguage.g:3685:2: (enumLiteral_0= '^' ) + // InternalSolverLanguage.g:3686:3: enumLiteral_0= '^' + { + enumLiteral_0=(Token)match(input,59,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - state._fsp--; + current = grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getExponentialOpAccess().getPOWEnumLiteralDeclaration()); + + } + + } - current =iv_ruleFieldRelationInterpretation; - match(input,EOF,FOLLOW_2); } + if ( state.backtracking==0 ) { + + leaveRule(); + + } } catch (RecognitionException re) { @@ -6391,219 +10698,195 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleFieldRelationInterpretation" + // $ANTLR end "ruleExponentialOp" - // $ANTLR start "ruleFieldRelationInterpretation" - // 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 ) ) ) ; - public final EObject ruleFieldRelationInterpretation() throws RecognitionException { - EObject current = null; - - Token lv_containment_0_0=null; - Token otherlv_2=null; - EObject lv_symbol_1_0 = null; - - EObject lv_multiplicity_3_0 = null; - - EObject lv_target_4_0 = null; + // $ANTLR start "ruleUnaryOp" + // InternalSolverLanguage.g:3695:1: ruleUnaryOp returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '+' ) | (enumLiteral_2= '-' ) | (enumLiteral_3= 'may' ) | (enumLiteral_4= 'must' ) | (enumLiteral_5= 'current' ) ) ; + public final Enumerator ruleUnaryOp() throws RecognitionException { + Enumerator current = null; + Token enumLiteral_0=null; + Token enumLiteral_1=null; + Token enumLiteral_2=null; + Token enumLiteral_3=null; + Token enumLiteral_4=null; + Token enumLiteral_5=null; enterRule(); try { - // 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 ) ) ) ) - // 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 ) ) ) + // InternalSolverLanguage.g:3701:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '+' ) | (enumLiteral_2= '-' ) | (enumLiteral_3= 'may' ) | (enumLiteral_4= 'must' ) | (enumLiteral_5= 'current' ) ) ) + // InternalSolverLanguage.g:3702:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '+' ) | (enumLiteral_2= '-' ) | (enumLiteral_3= 'may' ) | (enumLiteral_4= 'must' ) | (enumLiteral_5= 'current' ) ) { - // 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 ) ) ) - // 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 ) ) - { - // InternalSolverLanguage.g:2207:3: ( (lv_containment_0_0= 'containment' ) )? - int alt42=2; - int LA42_0 = input.LA(1); + // InternalSolverLanguage.g:3702:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '+' ) | (enumLiteral_2= '-' ) | (enumLiteral_3= 'may' ) | (enumLiteral_4= 'must' ) | (enumLiteral_5= 'current' ) ) + int alt49=6; + switch ( input.LA(1) ) { + case 60: + { + alt49=1; + } + break; + case 56: + { + alt49=2; + } + break; + case 57: + { + alt49=3; + } + break; + case 61: + { + alt49=4; + } + break; + case 62: + { + alt49=5; + } + break; + case 63: + { + alt49=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 49, 0, input); - if ( (LA42_0==39) ) { - alt42=1; + throw nvae; } - switch (alt42) { + + switch (alt49) { case 1 : - // InternalSolverLanguage.g:2208:4: (lv_containment_0_0= 'containment' ) + // InternalSolverLanguage.g:3703:3: (enumLiteral_0= '!' ) { - // InternalSolverLanguage.g:2208:4: (lv_containment_0_0= 'containment' ) - // InternalSolverLanguage.g:2209:5: lv_containment_0_0= 'containment' + // InternalSolverLanguage.g:3703:3: (enumLiteral_0= '!' ) + // InternalSolverLanguage.g:3704:4: enumLiteral_0= '!' { - lv_containment_0_0=(Token)match(input,39,FOLLOW_12); + enumLiteral_0=(Token)match(input,60,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - newLeafNode(lv_containment_0_0, grammarAccess.getFieldRelationInterpretationAccess().getContainmentContainmentKeyword_0_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getFieldRelationInterpretationRule()); - } - setWithLastConsumed(current, "containment", true, "containment"); - + current = grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getUnaryOpAccess().getNEGEnumLiteralDeclaration_0()); + + } } } break; - - } - - // InternalSolverLanguage.g:2221:3: ( (lv_symbol_1_0= ruleModelSymbol ) ) - // InternalSolverLanguage.g:2222:4: (lv_symbol_1_0= ruleModelSymbol ) - { - // InternalSolverLanguage.g:2222:4: (lv_symbol_1_0= ruleModelSymbol ) - // InternalSolverLanguage.g:2223:5: lv_symbol_1_0= ruleModelSymbol - { - - newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_1_0()); - - pushFollow(FOLLOW_10); - lv_symbol_1_0=ruleModelSymbol(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule()); - } - set( - current, - "symbol", - lv_symbol_1_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - - - } - - - } - - otherlv_2=(Token)match(input,20,FOLLOW_33); - - newLeafNode(otherlv_2, grammarAccess.getFieldRelationInterpretationAccess().getColonKeyword_2()); - - // InternalSolverLanguage.g:2244:3: ( (lv_multiplicity_3_0= ruleMultiplicityDefinition ) )? - int alt43=2; - int LA43_0 = input.LA(1); - - if ( (LA43_0==RULE_INT) ) { - alt43=1; - } - switch (alt43) { - case 1 : - // InternalSolverLanguage.g:2245:4: (lv_multiplicity_3_0= ruleMultiplicityDefinition ) + case 2 : + // InternalSolverLanguage.g:3711:3: (enumLiteral_1= '+' ) { - // InternalSolverLanguage.g:2245:4: (lv_multiplicity_3_0= ruleMultiplicityDefinition ) - // InternalSolverLanguage.g:2246:5: lv_multiplicity_3_0= ruleMultiplicityDefinition + // InternalSolverLanguage.g:3711:3: (enumLiteral_1= '+' ) + // InternalSolverLanguage.g:3712:4: enumLiteral_1= '+' { + enumLiteral_1=(Token)match(input,56,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getMultiplicityMultiplicityDefinitionParserRuleCall_3_0()); - - pushFollow(FOLLOW_21); - lv_multiplicity_3_0=ruleMultiplicityDefinition(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule()); - } - set( - current, - "multiplicity", - lv_multiplicity_3_0, - "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); - afterParserOrEnumRuleCall(); - + current = grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getUnaryOpAccess().getPLUSEnumLiteralDeclaration_1()); + + } } } break; + case 3 : + // InternalSolverLanguage.g:3719:3: (enumLiteral_2= '-' ) + { + // InternalSolverLanguage.g:3719:3: (enumLiteral_2= '-' ) + // InternalSolverLanguage.g:3720:4: enumLiteral_2= '-' + { + enumLiteral_2=(Token)match(input,57,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } - - // InternalSolverLanguage.g:2263:3: ( (lv_target_4_0= ruleSymbol ) ) - // InternalSolverLanguage.g:2264:4: (lv_target_4_0= ruleSymbol ) - { - // InternalSolverLanguage.g:2264:4: (lv_target_4_0= ruleSymbol ) - // InternalSolverLanguage.g:2265:5: lv_target_4_0= ruleSymbol - { - - newCompositeNode(grammarAccess.getFieldRelationInterpretationAccess().getTargetSymbolParserRuleCall_4_0()); - - pushFollow(FOLLOW_2); - lv_target_4_0=ruleSymbol(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getFieldRelationInterpretationRule()); - } - set( - current, - "target", - lv_target_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); - afterParserOrEnumRuleCall(); - - - } + current = grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getUnaryOpAccess().getMINUSEnumLiteralDeclaration_2()); + + } + } - } + } + break; + case 4 : + // InternalSolverLanguage.g:3727:3: (enumLiteral_3= 'may' ) + { + // InternalSolverLanguage.g:3727:3: (enumLiteral_3= 'may' ) + // InternalSolverLanguage.g:3728:4: enumLiteral_3= 'may' + { + enumLiteral_3=(Token)match(input,61,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + current = grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getUnaryOpAccess().getMAYEnumLiteralDeclaration_3()); + + } + } - } + } + break; + case 5 : + // InternalSolverLanguage.g:3735:3: (enumLiteral_4= 'must' ) + { + // InternalSolverLanguage.g:3735:3: (enumLiteral_4= 'must' ) + // InternalSolverLanguage.g:3736:4: enumLiteral_4= 'must' + { + enumLiteral_4=(Token)match(input,62,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - leaveRule(); + current = grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getUnaryOpAccess().getMUSTEnumLiteralDeclaration_4()); + + } - } + } - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); - } - finally { - } - return current; - } - // $ANTLR end "ruleFieldRelationInterpretation" + } + break; + case 6 : + // InternalSolverLanguage.g:3743:3: (enumLiteral_5= 'current' ) + { + // InternalSolverLanguage.g:3743:3: (enumLiteral_5= 'current' ) + // InternalSolverLanguage.g:3744:4: enumLiteral_5= 'current' + { + enumLiteral_5=(Token)match(input,63,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - // $ANTLR start "entryRuleGlobalRelationInterpretation" - // InternalSolverLanguage.g:2286:1: entryRuleGlobalRelationInterpretation returns [EObject current=null] : iv_ruleGlobalRelationInterpretation= ruleGlobalRelationInterpretation EOF ; - public final EObject entryRuleGlobalRelationInterpretation() throws RecognitionException { - EObject current = null; + current = grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getUnaryOpAccess().getCURRENTEnumLiteralDeclaration_5()); + + } - EObject iv_ruleGlobalRelationInterpretation = null; + } - try { - // InternalSolverLanguage.g:2286:69: (iv_ruleGlobalRelationInterpretation= ruleGlobalRelationInterpretation EOF ) - // InternalSolverLanguage.g:2287:2: iv_ruleGlobalRelationInterpretation= ruleGlobalRelationInterpretation EOF - { - newCompositeNode(grammarAccess.getGlobalRelationInterpretationRule()); - pushFollow(FOLLOW_1); - iv_ruleGlobalRelationInterpretation=ruleGlobalRelationInterpretation(); + } + break; - state._fsp--; + } - current =iv_ruleGlobalRelationInterpretation; - match(input,EOF,FOLLOW_2); } + if ( state.backtracking==0 ) { + + leaveRule(); + + } } catch (RecognitionException re) { @@ -6614,143 +10897,178 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleGlobalRelationInterpretation" - - - // $ANTLR start "ruleGlobalRelationInterpretation" - // 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 ) ) ) ; - public final EObject ruleGlobalRelationInterpretation() throws RecognitionException { - EObject current = null; - - Token lv_containment_0_0=null; - Token otherlv_1=null; - Token otherlv_3=null; - EObject lv_symbol_2_0 = null; + // $ANTLR end "ruleUnaryOp" - EObject lv_sourceMultiplicity_4_0 = null; - EObject lv_source_5_0 = null; - - EObject lv_targetMultiplicity_6_0 = null; - - EObject lv_target_7_0 = null; + // $ANTLR start "ruleAggregationOp" + // 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' ) ) ; + public final Enumerator ruleAggregationOp() throws RecognitionException { + Enumerator current = null; + Token enumLiteral_0=null; + Token enumLiteral_1=null; + Token enumLiteral_2=null; + Token enumLiteral_3=null; + Token enumLiteral_4=null; + Token enumLiteral_5=null; enterRule(); try { - // 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 ) ) ) ) - // 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 ) ) ) + // InternalSolverLanguage.g:3760:2: ( ( (enumLiteral_0= 'only' ) | (enumLiteral_1= 'sum' ) | (enumLiteral_2= 'prod' ) | (enumLiteral_3= 'avg' ) | (enumLiteral_4= 'min' ) | (enumLiteral_5= 'max' ) ) ) + // InternalSolverLanguage.g:3761:2: ( (enumLiteral_0= 'only' ) | (enumLiteral_1= 'sum' ) | (enumLiteral_2= 'prod' ) | (enumLiteral_3= 'avg' ) | (enumLiteral_4= 'min' ) | (enumLiteral_5= 'max' ) ) { - // 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 ) ) ) - // 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 ) ) - { - // InternalSolverLanguage.g:2301:3: ( (lv_containment_0_0= 'containment' ) )? - int alt44=2; - int LA44_0 = input.LA(1); + // InternalSolverLanguage.g:3761:2: ( (enumLiteral_0= 'only' ) | (enumLiteral_1= 'sum' ) | (enumLiteral_2= 'prod' ) | (enumLiteral_3= 'avg' ) | (enumLiteral_4= 'min' ) | (enumLiteral_5= 'max' ) ) + int alt50=6; + switch ( input.LA(1) ) { + case 64: + { + alt50=1; + } + break; + case 65: + { + alt50=2; + } + break; + case 66: + { + alt50=3; + } + break; + case 67: + { + alt50=4; + } + break; + case 68: + { + alt50=5; + } + break; + case 69: + { + alt50=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 50, 0, input); - if ( (LA44_0==39) ) { - alt44=1; + throw nvae; } - switch (alt44) { + + switch (alt50) { case 1 : - // InternalSolverLanguage.g:2302:4: (lv_containment_0_0= 'containment' ) + // InternalSolverLanguage.g:3762:3: (enumLiteral_0= 'only' ) { - // InternalSolverLanguage.g:2302:4: (lv_containment_0_0= 'containment' ) - // InternalSolverLanguage.g:2303:5: lv_containment_0_0= 'containment' + // InternalSolverLanguage.g:3762:3: (enumLiteral_0= 'only' ) + // InternalSolverLanguage.g:3763:4: enumLiteral_0= 'only' { - lv_containment_0_0=(Token)match(input,39,FOLLOW_34); + enumLiteral_0=(Token)match(input,64,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - newLeafNode(lv_containment_0_0, grammarAccess.getGlobalRelationInterpretationAccess().getContainmentContainmentKeyword_0_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getGlobalRelationInterpretationRule()); - } - setWithLastConsumed(current, "containment", true, "containment"); - + current = grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getAggregationOpAccess().getONLYEnumLiteralDeclaration_0()); + + } } } break; + case 2 : + // InternalSolverLanguage.g:3770:3: (enumLiteral_1= 'sum' ) + { + // InternalSolverLanguage.g:3770:3: (enumLiteral_1= 'sum' ) + // InternalSolverLanguage.g:3771:4: enumLiteral_1= 'sum' + { + enumLiteral_1=(Token)match(input,65,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } - - otherlv_1=(Token)match(input,40,FOLLOW_12); + current = grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getAggregationOpAccess().getSUMEnumLiteralDeclaration_1()); + + } - newLeafNode(otherlv_1, grammarAccess.getGlobalRelationInterpretationAccess().getRelationKeyword_1()); - - // InternalSolverLanguage.g:2319:3: ( (lv_symbol_2_0= ruleModelSymbol ) ) - // InternalSolverLanguage.g:2320:4: (lv_symbol_2_0= ruleModelSymbol ) - { - // InternalSolverLanguage.g:2320:4: (lv_symbol_2_0= ruleModelSymbol ) - // InternalSolverLanguage.g:2321:5: lv_symbol_2_0= ruleModelSymbol - { + } - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSymbolModelSymbolParserRuleCall_2_0()); - - pushFollow(FOLLOW_10); - lv_symbol_2_0=ruleModelSymbol(); - state._fsp--; + } + break; + case 3 : + // InternalSolverLanguage.g:3778:3: (enumLiteral_2= 'prod' ) + { + // InternalSolverLanguage.g:3778:3: (enumLiteral_2= 'prod' ) + // InternalSolverLanguage.g:3779:4: enumLiteral_2= 'prod' + { + enumLiteral_2=(Token)match(input,66,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getAggregationOpAccess().getPRODEnumLiteralDeclaration_2()); + + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); - } - set( - current, - "symbol", - lv_symbol_2_0, - "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - afterParserOrEnumRuleCall(); - + } - } + } + break; + case 4 : + // InternalSolverLanguage.g:3786:3: (enumLiteral_3= 'avg' ) + { + // InternalSolverLanguage.g:3786:3: (enumLiteral_3= 'avg' ) + // InternalSolverLanguage.g:3787:4: enumLiteral_3= 'avg' + { + enumLiteral_3=(Token)match(input,67,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + current = grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getAggregationOpAccess().getAVGEnumLiteralDeclaration_3()); + + } - otherlv_3=(Token)match(input,20,FOLLOW_33); + } - newLeafNode(otherlv_3, grammarAccess.getGlobalRelationInterpretationAccess().getColonKeyword_3()); - - // InternalSolverLanguage.g:2342:3: ( (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) )? - int alt45=2; - int LA45_0 = input.LA(1); - if ( (LA45_0==RULE_INT) ) { - alt45=1; - } - switch (alt45) { - case 1 : - // InternalSolverLanguage.g:2343:4: (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) + } + break; + case 5 : + // InternalSolverLanguage.g:3794:3: (enumLiteral_4= 'min' ) { - // InternalSolverLanguage.g:2343:4: (lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition ) - // InternalSolverLanguage.g:2344:5: lv_sourceMultiplicity_4_0= ruleMultiplicityDefinition + // InternalSolverLanguage.g:3794:3: (enumLiteral_4= 'min' ) + // InternalSolverLanguage.g:3795:4: enumLiteral_4= 'min' { + enumLiteral_4=(Token)match(input,68,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0()); - - pushFollow(FOLLOW_21); - lv_sourceMultiplicity_4_0=ruleMultiplicityDefinition(); + current = grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_4, grammarAccess.getAggregationOpAccess().getMINEnumLiteralDeclaration_4()); + + } + + } - state._fsp--; + } + break; + case 6 : + // InternalSolverLanguage.g:3802:3: (enumLiteral_5= 'max' ) + { + // InternalSolverLanguage.g:3802:3: (enumLiteral_5= 'max' ) + // InternalSolverLanguage.g:3803:4: enumLiteral_5= 'max' + { + enumLiteral_5=(Token)match(input,69,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - if (current==null) { - current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); - } - set( - current, - "sourceMultiplicity", - lv_sourceMultiplicity_4_0, - "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); - afterParserOrEnumRuleCall(); - + current = grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_5, grammarAccess.getAggregationOpAccess().getMAXEnumLiteralDeclaration_5()); + + } } @@ -6760,155 +11078,163 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } - // InternalSolverLanguage.g:2361:3: ( (lv_source_5_0= ruleSymbol ) ) - // InternalSolverLanguage.g:2362:4: (lv_source_5_0= ruleSymbol ) - { - // InternalSolverLanguage.g:2362:4: (lv_source_5_0= ruleSymbol ) - // InternalSolverLanguage.g:2363:5: lv_source_5_0= ruleSymbol - { - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getSourceSymbolParserRuleCall_5_0()); - - pushFollow(FOLLOW_33); - lv_source_5_0=ruleSymbol(); + } - state._fsp--; + if ( state.backtracking==0 ) { + leaveRule(); - if (current==null) { - current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); - } - set( - current, - "source", - lv_source_5_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); - afterParserOrEnumRuleCall(); - + } + } + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); } + finally { + } + return current; + } + // $ANTLR end "ruleAggregationOp" - } + // $ANTLR start "ruleLogicValue" + // InternalSolverLanguage.g:3813:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) | (enumLiteral_3= 'error' ) ) ; + public final Enumerator ruleLogicValue() throws RecognitionException { + Enumerator current = null; - // InternalSolverLanguage.g:2380:3: ( (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) )? - int alt46=2; - int LA46_0 = input.LA(1); + Token enumLiteral_0=null; + Token enumLiteral_1=null; + Token enumLiteral_2=null; + Token enumLiteral_3=null; - if ( (LA46_0==RULE_INT) ) { - alt46=1; + + enterRule(); + + try { + // InternalSolverLanguage.g:3819:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) | (enumLiteral_3= 'error' ) ) ) + // InternalSolverLanguage.g:3820:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) | (enumLiteral_3= 'error' ) ) + { + // InternalSolverLanguage.g:3820:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) | (enumLiteral_3= 'error' ) ) + int alt51=4; + switch ( input.LA(1) ) { + case 70: + { + alt51=1; + } + break; + case 71: + { + alt51=2; + } + break; + case 72: + { + alt51=3; + } + break; + case 19: + { + alt51=4; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return current;} + NoViableAltException nvae = + new NoViableAltException("", 51, 0, input); + + throw nvae; } - switch (alt46) { + + switch (alt51) { case 1 : - // InternalSolverLanguage.g:2381:4: (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) + // InternalSolverLanguage.g:3821:3: (enumLiteral_0= 'true' ) { - // InternalSolverLanguage.g:2381:4: (lv_targetMultiplicity_6_0= ruleMultiplicityDefinition ) - // InternalSolverLanguage.g:2382:5: lv_targetMultiplicity_6_0= ruleMultiplicityDefinition + // InternalSolverLanguage.g:3821:3: (enumLiteral_0= 'true' ) + // InternalSolverLanguage.g:3822:4: enumLiteral_0= 'true' { + enumLiteral_0=(Token)match(input,70,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0()); - - pushFollow(FOLLOW_21); - lv_targetMultiplicity_6_0=ruleMultiplicityDefinition(); - - state._fsp--; - - - if (current==null) { - current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); - } - set( - current, - "targetMultiplicity", - lv_targetMultiplicity_6_0, - "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); - afterParserOrEnumRuleCall(); - + current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0()); + + } } } break; + case 2 : + // InternalSolverLanguage.g:3829:3: (enumLiteral_1= 'false' ) + { + // InternalSolverLanguage.g:3829:3: (enumLiteral_1= 'false' ) + // InternalSolverLanguage.g:3830:4: enumLiteral_1= 'false' + { + enumLiteral_1=(Token)match(input,71,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1()); + + } - // InternalSolverLanguage.g:2399:3: ( (lv_target_7_0= ruleSymbol ) ) - // InternalSolverLanguage.g:2400:4: (lv_target_7_0= ruleSymbol ) - { - // InternalSolverLanguage.g:2400:4: (lv_target_7_0= ruleSymbol ) - // InternalSolverLanguage.g:2401:5: lv_target_7_0= ruleSymbol - { + } - newCompositeNode(grammarAccess.getGlobalRelationInterpretationAccess().getTargetSymbolParserRuleCall_7_0()); - - pushFollow(FOLLOW_2); - lv_target_7_0=ruleSymbol(); - state._fsp--; + } + break; + case 3 : + // InternalSolverLanguage.g:3837:3: (enumLiteral_2= 'unknown' ) + { + // InternalSolverLanguage.g:3837:3: (enumLiteral_2= 'unknown' ) + // InternalSolverLanguage.g:3838:4: enumLiteral_2= 'unknown' + { + enumLiteral_2=(Token)match(input,72,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2()); + + } - if (current==null) { - current = createModelElementForParent(grammarAccess.getGlobalRelationInterpretationRule()); - } - set( - current, - "target", - lv_target_7_0, - "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); - afterParserOrEnumRuleCall(); - + } - } + } + break; + case 4 : + // InternalSolverLanguage.g:3845:3: (enumLiteral_3= 'error' ) + { + // InternalSolverLanguage.g:3845:3: (enumLiteral_3= 'error' ) + // InternalSolverLanguage.g:3846:4: enumLiteral_3= 'error' + { + enumLiteral_3=(Token)match(input,19,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { - } + current = grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_3, grammarAccess.getLogicValueAccess().getERROREnumLiteralDeclaration_3()); + + } + } - } + } + break; } - leaveRule(); - - } - - catch (RecognitionException re) { - recover(input,re); - appendSkippedTokens(); } - finally { - } - return current; - } - // $ANTLR end "ruleGlobalRelationInterpretation" - - - // $ANTLR start "entryRuleMultiplicityDefinition" - // InternalSolverLanguage.g:2422:1: entryRuleMultiplicityDefinition returns [EObject current=null] : iv_ruleMultiplicityDefinition= ruleMultiplicityDefinition EOF ; - public final EObject entryRuleMultiplicityDefinition() throws RecognitionException { - EObject current = null; - - EObject iv_ruleMultiplicityDefinition = null; - - - try { - // InternalSolverLanguage.g:2422:63: (iv_ruleMultiplicityDefinition= ruleMultiplicityDefinition EOF ) - // InternalSolverLanguage.g:2423:2: iv_ruleMultiplicityDefinition= ruleMultiplicityDefinition EOF - { - newCompositeNode(grammarAccess.getMultiplicityDefinitionRule()); - pushFollow(FOLLOW_1); - iv_ruleMultiplicityDefinition=ruleMultiplicityDefinition(); - state._fsp--; + if ( state.backtracking==0 ) { - current =iv_ruleMultiplicityDefinition; - match(input,EOF,FOLLOW_2); + leaveRule(); } - } catch (RecognitionException re) { @@ -6919,131 +11245,75 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "entryRuleMultiplicityDefinition" + // $ANTLR end "ruleLogicValue" - // $ANTLR start "ruleMultiplicityDefinition" - // 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= '*' ) ) ) ) ; - public final EObject ruleMultiplicityDefinition() throws RecognitionException { - EObject current = null; + // $ANTLR start "ruleObjectiveKind" + // InternalSolverLanguage.g:3856:1: ruleObjectiveKind returns [Enumerator current=null] : ( (enumLiteral_0= 'minimize' ) | (enumLiteral_1= 'maximize' ) ) ; + public final Enumerator ruleObjectiveKind() throws RecognitionException { + Enumerator current = null; - Token lv_lower_0_0=null; - Token otherlv_1=null; - Token lv_upper_2_0=null; - Token lv_unlimitedUpper_3_0=null; + Token enumLiteral_0=null; + Token enumLiteral_1=null; enterRule(); try { - // InternalSolverLanguage.g:2435:2: ( ( ( (lv_lower_0_0= RULE_INT ) ) otherlv_1= '..' ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) ) ) ) - // InternalSolverLanguage.g:2436:2: ( ( (lv_lower_0_0= RULE_INT ) ) otherlv_1= '..' ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) ) ) - { - // InternalSolverLanguage.g:2436:2: ( ( (lv_lower_0_0= RULE_INT ) ) otherlv_1= '..' ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) ) ) - // InternalSolverLanguage.g:2437:3: ( (lv_lower_0_0= RULE_INT ) ) otherlv_1= '..' ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) ) + // InternalSolverLanguage.g:3862:2: ( ( (enumLiteral_0= 'minimize' ) | (enumLiteral_1= 'maximize' ) ) ) + // InternalSolverLanguage.g:3863:2: ( (enumLiteral_0= 'minimize' ) | (enumLiteral_1= 'maximize' ) ) { - // InternalSolverLanguage.g:2437:3: ( (lv_lower_0_0= RULE_INT ) ) - // InternalSolverLanguage.g:2438:4: (lv_lower_0_0= RULE_INT ) - { - // InternalSolverLanguage.g:2438:4: (lv_lower_0_0= RULE_INT ) - // InternalSolverLanguage.g:2439:5: lv_lower_0_0= RULE_INT - { - lv_lower_0_0=(Token)match(input,RULE_INT,FOLLOW_35); - - newLeafNode(lv_lower_0_0, grammarAccess.getMultiplicityDefinitionAccess().getLowerINTTerminalRuleCall_0_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getMultiplicityDefinitionRule()); - } - setWithLastConsumed( - current, - "lower", - lv_lower_0_0, - "org.eclipse.xtext.common.Terminals.INT"); - - - } - - - } - - otherlv_1=(Token)match(input,41,FOLLOW_36); - - newLeafNode(otherlv_1, grammarAccess.getMultiplicityDefinitionAccess().getFullStopFullStopKeyword_1()); - - // InternalSolverLanguage.g:2459:3: ( ( (lv_upper_2_0= RULE_INT ) ) | ( (lv_unlimitedUpper_3_0= '*' ) ) ) - int alt47=2; - int LA47_0 = input.LA(1); + // InternalSolverLanguage.g:3863:2: ( (enumLiteral_0= 'minimize' ) | (enumLiteral_1= 'maximize' ) ) + int alt52=2; + int LA52_0 = input.LA(1); - if ( (LA47_0==RULE_INT) ) { - alt47=1; + if ( (LA52_0==73) ) { + alt52=1; } - else if ( (LA47_0==31) ) { - alt47=2; + else if ( (LA52_0==74) ) { + alt52=2; } else { + if (state.backtracking>0) {state.failed=true; return current;} NoViableAltException nvae = - new NoViableAltException("", 47, 0, input); + new NoViableAltException("", 52, 0, input); throw nvae; } - switch (alt47) { + switch (alt52) { case 1 : - // InternalSolverLanguage.g:2460:4: ( (lv_upper_2_0= RULE_INT ) ) - { - // InternalSolverLanguage.g:2460:4: ( (lv_upper_2_0= RULE_INT ) ) - // InternalSolverLanguage.g:2461:5: (lv_upper_2_0= RULE_INT ) + // InternalSolverLanguage.g:3864:3: (enumLiteral_0= 'minimize' ) { - // InternalSolverLanguage.g:2461:5: (lv_upper_2_0= RULE_INT ) - // InternalSolverLanguage.g:2462:6: lv_upper_2_0= RULE_INT + // InternalSolverLanguage.g:3864:3: (enumLiteral_0= 'minimize' ) + // InternalSolverLanguage.g:3865:4: enumLiteral_0= 'minimize' { - lv_upper_2_0=(Token)match(input,RULE_INT,FOLLOW_2); - - newLeafNode(lv_upper_2_0, grammarAccess.getMultiplicityDefinitionAccess().getUpperINTTerminalRuleCall_2_0_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getMultiplicityDefinitionRule()); - } - setWithLastConsumed( - current, - "upper", - lv_upper_2_0, - "org.eclipse.xtext.common.Terminals.INT"); - + enumLiteral_0=(Token)match(input,73,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_0, grammarAccess.getObjectiveKindAccess().getMINIMIZEEnumLiteralDeclaration_0()); + } - } } break; case 2 : - // InternalSolverLanguage.g:2479:4: ( (lv_unlimitedUpper_3_0= '*' ) ) - { - // InternalSolverLanguage.g:2479:4: ( (lv_unlimitedUpper_3_0= '*' ) ) - // InternalSolverLanguage.g:2480:5: (lv_unlimitedUpper_3_0= '*' ) + // InternalSolverLanguage.g:3872:3: (enumLiteral_1= 'maximize' ) { - // InternalSolverLanguage.g:2480:5: (lv_unlimitedUpper_3_0= '*' ) - // InternalSolverLanguage.g:2481:6: lv_unlimitedUpper_3_0= '*' + // InternalSolverLanguage.g:3872:3: (enumLiteral_1= 'maximize' ) + // InternalSolverLanguage.g:3873:4: enumLiteral_1= 'maximize' { - lv_unlimitedUpper_3_0=(Token)match(input,31,FOLLOW_2); - - newLeafNode(lv_unlimitedUpper_3_0, grammarAccess.getMultiplicityDefinitionAccess().getUnlimitedUpperAsteriskKeyword_2_1_0()); - - - if (current==null) { - current = createModelElement(grammarAccess.getMultiplicityDefinitionRule()); - } - setWithLastConsumed(current, "unlimitedUpper", true, "*"); - + enumLiteral_1=(Token)match(input,74,FOLLOW_2); if (state.failed) return current; + if ( state.backtracking==0 ) { + current = grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); + newLeafNode(enumLiteral_1, grammarAccess.getObjectiveKindAccess().getMAXIMIZEEnumLiteralDeclaration_1()); + } - } @@ -7055,12 +11325,11 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } + if ( state.backtracking==0 ) { - } - - - leaveRule(); + leaveRule(); + } } catch (RecognitionException re) { @@ -7071,27 +11340,33 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { } return current; } - // $ANTLR end "ruleMultiplicityDefinition" + // $ANTLR end "ruleObjectiveKind" // Delegated rules protected DFA2 dfa2 = new DFA2(this); - static final String dfa_1s = "\11\uffff"; - static final String dfa_2s = "\1\5\1\21\2\uffff\1\4\1\22\1\24\1\4\1\22"; - static final String dfa_3s = "\1\50\1\34\2\uffff\1\37\1\24\1\34\1\37\1\24"; - static final String dfa_4s = "\2\uffff\1\1\1\2\5\uffff"; - static final String dfa_5s = "\11\uffff}>"; + protected DFA25 dfa25 = new DFA25(this); + protected DFA36 dfa36 = new DFA36(this); + static final String dfa_1s = "\15\uffff"; + static final String dfa_2s = "\1\7\1\uffff\1\4\2\uffff\1\10\7\uffff"; + static final String dfa_3s = "\1\112\1\uffff\1\73\2\uffff\1\63\7\uffff"; + 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"; + static final String dfa_5s = "\15\uffff}>"; static final String[] dfa_6s = { - "\1\1\12\uffff\1\3\4\uffff\6\2\5\uffff\3\2\3\uffff\3\2", - "\1\4\2\uffff\1\2\7\uffff\1\3", + "\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", + "", + "\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", + "", + "", + "\1\14\1\uffff\1\14\47\uffff\2\13", + "", + "", + "", + "", "", "", - "\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", - "\1\7\1\6\1\3", - "\1\2\7\uffff\1\3", - "\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", - "\1\7\1\6\1\3" + "" }; static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); @@ -7115,46 +11390,156 @@ public class InternalSolverLanguageParser extends AbstractInternalAntlrParser { this.transition = dfa_6; } public String getDescription() { - return "114:2: (this_Interpretation_0= ruleInterpretation | this_Predicate_1= rulePredicate )"; + 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 )"; + } + } + static final String dfa_7s = "\12\uffff"; + static final String dfa_8s = "\1\uffff\2\3\4\uffff\1\11\1\3\1\uffff"; + static final String dfa_9s = "\1\7\2\10\2\uffff\1\10\1\uffff\1\7\1\10\1\uffff"; + static final String dfa_10s = "\1\110\2\73\2\uffff\1\10\1\uffff\1\110\1\73\1\uffff"; + static final String dfa_11s = "\3\uffff\1\1\1\2\1\uffff\1\3\2\uffff\1\4"; + static final String dfa_12s = "\12\uffff}>"; + static final String[] dfa_13s = { + "\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", + "\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", + "\1\6\1\uffff\1\6\21\uffff\1\3\4\uffff\2\3\1\7\13\uffff\3\3\2\uffff\10\3", + "", + "", + "\1\10", + "", + "\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", + "\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", + "" + }; + + static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s); + static final short[] dfa_8 = DFA.unpackEncodedString(dfa_8s); + static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s); + static final char[] dfa_10 = DFA.unpackEncodedStringToUnsignedChars(dfa_10s); + static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s); + static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s); + static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s); + + class DFA25 extends DFA { + + public DFA25(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 25; + this.eot = dfa_7; + this.eof = dfa_8; + this.min = dfa_9; + this.max = dfa_10; + this.accept = dfa_11; + this.special = dfa_12; + this.transition = dfa_13; + } + public String getDescription() { + return "1998:2: (this_ExpressionArgument_0= ruleExpressionArgument | this_StarArgument_1= ruleStarArgument | this_TypedArgument_2= ruleTypedArgument | this_TypedStarArgument_3= ruleTypedStarArgument )"; + } + } + static final String dfa_14s = "\17\uffff"; + static final String dfa_15s = "\15\uffff\1\11\1\uffff"; + 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"; + 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"; + static final String dfa_18s = "\6\uffff\1\2\1\uffff\1\1\1\3\5\uffff"; + static final String dfa_19s = "\17\uffff}>"; + static final String[] dfa_20s = { + "\1\1", + "\1\3\1\2\1\4", + "\1\5\1\6", + "\1\7\30\uffff\1\10\1\6\1\11", + "\1\10\1\6\1\11", + "\1\12\1\uffff\1\13", + "", + "\1\14", + "", + "", + "\1\15\31\uffff\1\6", + "\1\11\31\uffff\1\6", + "\1\7\30\uffff\1\10\1\6\1\11", + "\1\11\3\uffff\1\16", + "\1\15\31\uffff\1\6" + }; + + static final short[] dfa_14 = DFA.unpackEncodedString(dfa_14s); + static final short[] dfa_15 = DFA.unpackEncodedString(dfa_15s); + static final char[] dfa_16 = DFA.unpackEncodedStringToUnsignedChars(dfa_16s); + static final char[] dfa_17 = DFA.unpackEncodedStringToUnsignedChars(dfa_17s); + static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s); + static final short[] dfa_19 = DFA.unpackEncodedString(dfa_19s); + static final short[][] dfa_20 = unpackEncodedStringArray(dfa_20s); + + class DFA36 extends DFA { + + public DFA36(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 36; + this.eot = dfa_14; + this.eof = dfa_15; + this.min = dfa_16; + this.max = dfa_17; + this.accept = dfa_18; + this.special = dfa_19; + this.transition = dfa_20; + } + public String getDescription() { + return "2973:2: (this_ExactScopeDefinition_0= ruleExactScopeDefinition | this_BoundedScopeDefinition_1= ruleBoundedScopeDefinition | this_LowerBoundedScopeDefinition_2= ruleLowerBoundedScopeDefinition )"; } } public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x000001C707E10022L}); + public static final BitSet FOLLOW_3 = new BitSet(new long[]{0xF30C479220BC0782L,0x00000000000007FFL}); public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000001000L}); - public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000120000L}); - public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000088186870L}); - public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00000000000C0000L}); - public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000088106870L}); - public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000100000L}); - public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x000000000001E000L}); - public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000008000000L}); - public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000010020000L}); - public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000080020L}); - public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000010000000L}); - public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x00000000E0007820L}); - public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000020001000L}); - public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x00000000E0003820L}); - public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000100002L}); - public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000007E00020L}); - public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00000000C0000822L}); - public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x00000000080C6870L}); - public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000008006870L}); - public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000020000L}); - public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000400000000L}); - public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000001800000000L}); - public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000001000000020L}); - public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x000000A000000020L}); - public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000001000000000L}); - public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000002008000000L}); - public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000007E00030L}); - public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000010000000000L}); - public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000020000000000L}); - public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000080000010L}); + public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000038002L}); + public static final BitSet FOLLOW_6 = new BitSet(new long[]{0xF300019220880780L,0x00000000000001FFL}); + public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000080500L}); + public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00000000000C0500L}); + public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000200000000L}); + public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000008000L}); + public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000400000L}); + public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000020000L}); + public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x000C000000000000L}); + public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000001000000L}); + public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000002000000L}); + public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x000000000C000002L}); + public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000004000002L}); + public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000008000000L}); + public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000010000002L}); + public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x00F3800000000002L}); + public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0300000000000002L}); + public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0400000800000002L}); + public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0800000000000002L}); + public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000019220080780L,0x00000000000001FFL}); + public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000040000000L}); + public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000080000000L}); + public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000100000000L}); + public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000200000002L}); + public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000400000000L}); + public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000200000060L}); + public static final BitSet FOLLOW_32 = new BitSet(new long[]{0xF300019E20880780L,0x00000000000001FFL}); + public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000410000000L}); + public static final BitSet FOLLOW_34 = new BitSet(new long[]{0xF300019A20880780L,0x00000000000001FFL}); + public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000500L}); + public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000800000000L}); + public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000002000000000L}); + public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000004000000000L}); + public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000040000000000L}); + public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000080040000000L}); + public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000050000000L}); + public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000100080000500L}); + public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000001000000100L}); + public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000200004000002L}); + public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000800000200L}); + public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000200L}); + public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000800000000000L}); + public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000700L}); + public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0001000000000000L}); + public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0002000000000000L}); + public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0002000000400000L}); + public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000400002L}); } \ 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.scoping; 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.serializer; @@ -8,43 +8,48 @@ import java.util.Set; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.viatra.solver.language.services.SolverLanguageGrammarAccess; -import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; -import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; -import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; -import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.Constraint; -import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.False; -import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IntObject; -import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Negative; -import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; -import org.eclipse.viatra.solver.language.solverLanguage.Positive; -import org.eclipse.viatra.solver.language.solverLanguage.Predicate; +import org.eclipse.viatra.solver.language.solverLanguage.Aggregation; +import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList; +import org.eclipse.viatra.solver.language.solverLanguage.Assertion; +import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression; +import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Call; +import org.eclipse.viatra.solver.language.solverLanguage.Case; +import org.eclipse.viatra.solver.language.solverLanguage.Comparison; +import org.eclipse.viatra.solver.language.solverLanguage.Conjunction; +import org.eclipse.viatra.solver.language.solverLanguage.Count; +import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Disjunction; +import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument; +import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.IfElse; +import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.Interval; +import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; +import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Problem; -import org.eclipse.viatra.solver.language.solverLanguage.RealObject; -import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure; +import org.eclipse.viatra.solver.language.solverLanguage.Reference; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.StringObject; -import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.True; -import org.eclipse.viatra.solver.language.solverLanguage.Unknown; -import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Variable; +import org.eclipse.viatra.solver.language.solverLanguage.StarArgument; +import org.eclipse.viatra.solver.language.solverLanguage.Statement; +import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.Switch; +import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument; +import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument; +import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression; +import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition; import org.eclipse.xtext.Action; import org.eclipse.xtext.Parameter; import org.eclipse.xtext.ParserRule; @@ -67,119 +72,183 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS Set parameters = context.getEnabledBooleanParameters(); if (epackage == SolverLanguagePackage.eINSTANCE) switch (semanticObject.eClass().getClassifierID()) { - case SolverLanguagePackage.ALL_INSTANCES: - sequence_AllInstances(context, (AllInstances) semanticObject); + case SolverLanguagePackage.AGGREGATION: + sequence_Aggregation(context, (Aggregation) semanticObject); return; - case SolverLanguagePackage.ALL_OBJECTS: - sequence_AllObjects(context, (AllObjects) semanticObject); + case SolverLanguagePackage.ARGUMENT_LIST: + sequence_ArgumentList(context, (ArgumentList) semanticObject); return; - case SolverLanguagePackage.BASIC_INTERPRETATION: - sequence_BasicInterpretation(context, (BasicInterpretation) semanticObject); + case SolverLanguagePackage.ASSERTION: + sequence_AssertionOrDefinition(context, (Assertion) semanticObject); return; - case SolverLanguagePackage.BOOLEAN_FALSE: - sequence_BooleanValue(context, (BooleanFalse) semanticObject); + case SolverLanguagePackage.BINARY_EXPRESSION: + sequence_AdditiveExpression_ExponentialExpression_MultiplicativeExpression(context, (BinaryExpression) semanticObject); return; - case SolverLanguagePackage.BOOLEAN_OBJECT: - sequence_BooleanObject(context, (BooleanObject) semanticObject); + case SolverLanguagePackage.BOUNDED_MULTIPLICITY: + sequence_BoundedMultiplicity(context, (BoundedMultiplicity) semanticObject); return; - case SolverLanguagePackage.BOOLEAN_SYMBOL: - sequence_BooleanSymbol(context, (BooleanSymbol) semanticObject); + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION: + sequence_BoundedScopeDefinition(context, (BoundedScopeDefinition) semanticObject); return; - case SolverLanguagePackage.BOOLEAN_TRUE: - sequence_BooleanValue(context, (BooleanTrue) semanticObject); + case SolverLanguagePackage.CALL: + if (action == grammarAccess.getAssertionOrDefinitionAccess().getAssertionBodyAction_1_0_0() + || action == grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0() + || action == grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0() + || rule == grammarAccess.getExpressionRule() + || rule == grammarAccess.getDisjunctiveExpressionRule() + || action == grammarAccess.getDisjunctiveExpressionAccess().getDisjunctionChildrenAction_1_0_0() + || action == grammarAccess.getDisjunctiveExpressionAccess().getCaseConditionAction_1_1_0() + || rule == grammarAccess.getConjunctiveExpressionRule() + || action == grammarAccess.getConjunctiveExpressionAccess().getConjunctionChildrenAction_1_0() + || rule == grammarAccess.getComparisonExpressionRule() + || action == grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0() + || rule == grammarAccess.getAdditiveExpressionRule() + || action == grammarAccess.getAdditiveExpressionAccess().getBinaryExpressionLeftAction_1_0() + || rule == grammarAccess.getMultiplicativeExpressionRule() + || action == grammarAccess.getMultiplicativeExpressionAccess().getBinaryExpressionLeftAction_1_0() + || rule == grammarAccess.getExponentialExpressionRule() + || action == grammarAccess.getExponentialExpressionAccess().getBinaryExpressionLeftAction_1_0() + || rule == grammarAccess.getUnaryExpressionRule() + || rule == grammarAccess.getAggregationExpressionRule() + || rule == grammarAccess.getAtomicExpressionRule()) { + sequence_AtomicExpression(context, (Call) semanticObject); + return; + } + else if (rule == grammarAccess.getCallRule()) { + sequence_Call(context, (Call) semanticObject); + return; + } + else break; + case SolverLanguagePackage.CASE: + if (rule == grammarAccess.getCaseRule()) { + sequence_Case(context, (Case) semanticObject); + return; + } + else if (action == grammarAccess.getDisjunctiveExpressionAccess().getSwitchCasesAction_1_1_3()) { + sequence_DisjunctiveExpression_Switch_1_1_3(context, (Case) semanticObject); + return; + } + else break; + case SolverLanguagePackage.COMPARISON: + sequence_ComparisonExpression(context, (Comparison) semanticObject); return; - case SolverLanguagePackage.CLASS_INTERPRETATION: - sequence_ClassInterpretation(context, (ClassInterpretation) semanticObject); + case SolverLanguagePackage.CONJUNCTION: + sequence_ConjunctiveExpression(context, (Conjunction) semanticObject); return; - case SolverLanguagePackage.CONSTRAINT: - sequence_Constraint(context, (Constraint) semanticObject); + case SolverLanguagePackage.COUNT: + sequence_Count(context, (Count) semanticObject); return; - case SolverLanguagePackage.DEFAULT_INTERPRETATION: - sequence_DefaultInterpretation(context, (DefaultInterpretation) semanticObject); + case SolverLanguagePackage.DEFAULT_DEFINITION: + sequence_DefaultDefinition(context, (DefaultDefinition) semanticObject); return; - case SolverLanguagePackage.ENUM_INTERPRETATION: - sequence_EnumInterpretation(context, (EnumInterpretation) semanticObject); + case SolverLanguagePackage.DISJUNCTION: + sequence_DisjunctiveExpression(context, (Disjunction) semanticObject); return; - case SolverLanguagePackage.EQUALS_SYMBOL: - sequence_EqualsSymbol(context, (EqualsSymbol) semanticObject); + case SolverLanguagePackage.EMPTY_INTERVAL_LITERAL: + sequence_EmptyIntervalLiteral(context, (EmptyIntervalLiteral) semanticObject); return; - case SolverLanguagePackage.ERROR: - sequence_TruthValue(context, (org.eclipse.viatra.solver.language.solverLanguage.Error) semanticObject); + case SolverLanguagePackage.EXACT_MULTIPLICITY: + sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject); return; - case SolverLanguagePackage.EXIST_SYMBOL: - sequence_ExistSymbol(context, (ExistSymbol) semanticObject); + case SolverLanguagePackage.EXACT_SCOPE_DEFINITION: + sequence_ExactScopeDefinition(context, (ExactScopeDefinition) semanticObject); return; - case SolverLanguagePackage.FALSE: - sequence_TruthValue(context, (False) semanticObject); + case SolverLanguagePackage.EXPRESSION_ARGUMENT: + sequence_ExpressionArgument(context, (ExpressionArgument) semanticObject); return; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION: - sequence_FieldRelationInterpretation(context, (FieldRelationInterpretation) semanticObject); + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION: + sequence_ExternMetricDefinition(context, (ExternMetricDefinition) semanticObject); return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION: - sequence_GlobalRelationInterpretation(context, (GlobalRelationInterpretation) semanticObject); + case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION: + sequence_ExternPredicateDefinition(context, (ExternPredicateDefinition) semanticObject); return; - case SolverLanguagePackage.INT_OBJECT: - sequence_IntObject(context, (IntObject) semanticObject); + case SolverLanguagePackage.IF_ELSE: + sequence_IfElse(context, (IfElse) semanticObject); return; - case SolverLanguagePackage.INTEGER_SYMBOL: - sequence_IntegerSymbol(context, (IntegerSymbol) semanticObject); + case SolverLanguagePackage.INFINITY_LITERAL: + sequence_InfinityLiteral(context, (InfinityLiteral) semanticObject); return; - case SolverLanguagePackage.IRREFLEXIVE_CLOSURE: - sequence_ClosureType(context, (IrreflexiveClosure) semanticObject); + case SolverLanguagePackage.INTERVAL: + sequence_Interval(context, (Interval) semanticObject); return; - case SolverLanguagePackage.MODEL_SYMBOL: - sequence_ModelSymbol(context, (ModelSymbol) semanticObject); + case SolverLanguagePackage.LOGIC_LITERAL: + sequence_LogicLiteral(context, (LogicLiteral) semanticObject); return; - case SolverLanguagePackage.MULTIPLICITY_DEFINITION: - sequence_MultiplicityDefinition(context, (MultiplicityDefinition) semanticObject); + case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION: + sequence_LowerBoundedScopeDefinition(context, (LowerBoundedScopeDefinition) semanticObject); return; - case SolverLanguagePackage.NAMED_OBJECT: - sequence_NamedObject(context, (NamedObject) semanticObject); + case SolverLanguagePackage.MANY_MULTIPLICITY: + sequence_ManyMultiplicity(context, (ManyMultiplicity) semanticObject); return; - case SolverLanguagePackage.NEGATIVE: - sequence_Polarity(context, (Negative) semanticObject); + case SolverLanguagePackage.MEMBER_DEFINITION: + sequence_MemberDefinition(context, (MemberDefinition) semanticObject); return; - case SolverLanguagePackage.PARAMETER: - sequence_Parameter(context, (org.eclipse.viatra.solver.language.solverLanguage.Parameter) semanticObject); + case SolverLanguagePackage.METRIC_DEFINITION: + if (rule == grammarAccess.getAssertionOrDefinitionRule()) { + sequence_AssertionOrDefinition(context, (MetricDefinition) semanticObject); + return; + } + else if (rule == grammarAccess.getStatementRule()) { + sequence_AssertionOrDefinition_MetricDefinition(context, (MetricDefinition) semanticObject); + return; + } + else if (rule == grammarAccess.getMetricDefinitionRule()) { + sequence_MetricDefinition(context, (MetricDefinition) semanticObject); + return; + } + else break; + case SolverLanguagePackage.NAMED_ELEMENT: + sequence_NamedElement(context, (NamedElement) semanticObject); return; - case SolverLanguagePackage.PATTERN_BODY: - sequence_PatternBody(context, (PatternBody) semanticObject); + case SolverLanguagePackage.NUMERIC_LITERAL: + sequence_NumericLiteral(context, (NumericLiteral) semanticObject); return; - case SolverLanguagePackage.POSITIVE: - sequence_Polarity(context, (Positive) semanticObject); - return; - case SolverLanguagePackage.PREDICATE: - sequence_Predicate(context, (Predicate) semanticObject); + case SolverLanguagePackage.OBJECTIVE_DEFINITION: + sequence_ObjectiveDefinition(context, (ObjectiveDefinition) semanticObject); return; + case SolverLanguagePackage.PREDICATE_DEFINITION: + if (rule == grammarAccess.getAssertionOrDefinitionRule()) { + sequence_AssertionOrDefinition(context, (PredicateDefinition) semanticObject); + return; + } + else if (rule == grammarAccess.getStatementRule()) { + sequence_AssertionOrDefinition_PredicateDefinition(context, (PredicateDefinition) semanticObject); + return; + } + else if (rule == grammarAccess.getPredicateDefinitionRule()) { + sequence_PredicateDefinition(context, (PredicateDefinition) semanticObject); + return; + } + else break; case SolverLanguagePackage.PROBLEM: sequence_Problem(context, (Problem) semanticObject); return; - case SolverLanguagePackage.REAL_OBJECT: - sequence_RealObject(context, (RealObject) semanticObject); + case SolverLanguagePackage.REFERENCE: + sequence_Reference(context, (Reference) semanticObject); return; - case SolverLanguagePackage.REAL_SYMBOL: - sequence_RealSymbol(context, (RealSymbol) semanticObject); + case SolverLanguagePackage.STAR_ARGUMENT: + sequence_StarArgument(context, (StarArgument) semanticObject); return; - case SolverLanguagePackage.REFLEXIVE_CLOSURE: - sequence_ClosureType(context, (ReflexiveClosure) semanticObject); + case SolverLanguagePackage.STATEMENT: + sequence_ClassDefinition(context, (Statement) semanticObject); return; - case SolverLanguagePackage.STRING_OBJECT: - sequence_StringObject(context, (StringObject) semanticObject); + case SolverLanguagePackage.STRING_LITERAL: + sequence_StringLiteral(context, (StringLiteral) semanticObject); return; - case SolverLanguagePackage.STRING_SYMBOL: - sequence_StringSymbol(context, (StringSymbol) semanticObject); + case SolverLanguagePackage.SWITCH: + sequence_DisjunctiveExpression(context, (Switch) semanticObject); return; - case SolverLanguagePackage.TRUE: - sequence_TruthValue(context, (True) semanticObject); + case SolverLanguagePackage.TYPED_ARGUMENT: + sequence_TypedArgument(context, (TypedArgument) semanticObject); return; - case SolverLanguagePackage.UNKNOWN: - sequence_TruthValue(context, (Unknown) semanticObject); + case SolverLanguagePackage.TYPED_STAR_ARGUMENT: + sequence_TypedStarArgument(context, (TypedStarArgument) semanticObject); return; - case SolverLanguagePackage.UNNAMED_OBJECT: - sequence_UnnamedObject(context, (UnnamedObject) semanticObject); + case SolverLanguagePackage.UNARY_EXPRESSION: + sequence_UnaryExpression(context, (UnaryExpression) semanticObject); return; - case SolverLanguagePackage.VARIABLE: - sequence_Variable(context, (Variable) semanticObject); + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION: + sequence_UnnamedErrorPrediateDefinition(context, (UnnamedErrorPrediateDefinition) semanticObject); return; } if (errorAcceptor != null) @@ -188,574 +257,1169 @@ public class SolverLanguageSemanticSequencer extends AbstractDelegatingSemanticS /** * Contexts: - * ComplexObject returns AllInstances - * AllInstances returns AllInstances + * AssertionOrDefinition.Assertion_1_0_0 returns BinaryExpression + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns BinaryExpression + * AssertionOrDefinition.MetricDefinition_1_2_0 returns BinaryExpression + * Expression returns BinaryExpression + * DisjunctiveExpression returns BinaryExpression + * DisjunctiveExpression.Disjunction_1_0_0 returns BinaryExpression + * DisjunctiveExpression.Case_1_1_0 returns BinaryExpression + * ConjunctiveExpression returns BinaryExpression + * ConjunctiveExpression.Conjunction_1_0 returns BinaryExpression + * ComparisonExpression returns BinaryExpression + * ComparisonExpression.Comparison_1_0 returns BinaryExpression + * AdditiveExpression returns BinaryExpression + * AdditiveExpression.BinaryExpression_1_0 returns BinaryExpression + * MultiplicativeExpression returns BinaryExpression + * MultiplicativeExpression.BinaryExpression_1_0 returns BinaryExpression + * ExponentialExpression returns BinaryExpression + * ExponentialExpression.BinaryExpression_1_0 returns BinaryExpression + * UnaryExpression returns BinaryExpression + * AggregationExpression returns BinaryExpression + * AtomicExpression returns BinaryExpression + * + * Constraint: + * ( + * (left=AdditiveExpression_BinaryExpression_1_0 op=AdditiveBinaryOperator right=MultiplicativeExpression) | + * (left=MultiplicativeExpression_BinaryExpression_1_0 op=MultiplicativeBinaryOperator right=ExponentialExpression) | + * (left=ExponentialExpression_BinaryExpression_1_0 op=ExponentialOp right=ExponentialExpression) + * ) + */ + protected void sequence_AdditiveExpression_ExponentialExpression_MultiplicativeExpression(ISerializationContext context, BinaryExpression semanticObject) { + genericSequencer.createSequence(context, semanticObject); + } + + + /** + * Contexts: + * AssertionOrDefinition.Assertion_1_0_0 returns Aggregation + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Aggregation + * AssertionOrDefinition.MetricDefinition_1_2_0 returns Aggregation + * Expression returns Aggregation + * DisjunctiveExpression returns Aggregation + * DisjunctiveExpression.Disjunction_1_0_0 returns Aggregation + * DisjunctiveExpression.Case_1_1_0 returns Aggregation + * ConjunctiveExpression returns Aggregation + * ConjunctiveExpression.Conjunction_1_0 returns Aggregation + * ComparisonExpression returns Aggregation + * ComparisonExpression.Comparison_1_0 returns Aggregation + * AdditiveExpression returns Aggregation + * AdditiveExpression.BinaryExpression_1_0 returns Aggregation + * MultiplicativeExpression returns Aggregation + * MultiplicativeExpression.BinaryExpression_1_0 returns Aggregation + * ExponentialExpression returns Aggregation + * ExponentialExpression.BinaryExpression_1_0 returns Aggregation + * UnaryExpression returns Aggregation + * AggregationExpression returns Aggregation + * Aggregation returns Aggregation + * AtomicExpression returns Aggregation * * Constraint: - * symbol=Symbol + * (op=AggregationOp body=Expression condition=Expression) */ - protected void sequence_AllInstances(ISerializationContext context, AllInstances semanticObject) { + protected void sequence_Aggregation(ISerializationContext context, Aggregation semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.ALL_INSTANCES__SYMBOL) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.ALL_INSTANCES__SYMBOL)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__OP) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__OP)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__BODY)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__CONDITION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.AGGREGATION__CONDITION)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getAllInstancesAccess().getSymbolSymbolParserRuleCall_1_0(), semanticObject.getSymbol()); + feeder.accept(grammarAccess.getAggregationAccess().getOpAggregationOpEnumRuleCall_0_0(), semanticObject.getOp()); + feeder.accept(grammarAccess.getAggregationAccess().getBodyExpressionParserRuleCall_2_0(), semanticObject.getBody()); + feeder.accept(grammarAccess.getAggregationAccess().getConditionExpressionParserRuleCall_4_0(), semanticObject.getCondition()); feeder.finish(); } /** * Contexts: - * ComplexObject returns AllObjects - * AllObjects returns AllObjects + * ArgumentList returns ArgumentList * * Constraint: - * {AllObjects} + * (arguments+=Argument arguments+=Argument*)? */ - protected void sequence_AllObjects(ISerializationContext context, AllObjects semanticObject) { + protected void sequence_ArgumentList(ISerializationContext context, ArgumentList semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Statement returns BasicInterpretation - * Interpretation returns BasicInterpretation - * BasicInterpretation returns BasicInterpretation + * Statement returns Assertion + * AssertionOrDefinition returns Assertion * * Constraint: - * (symbol=Symbol (objects+=ComplexObject objects+=ComplexObject*)? value=TruthValue) + * (body=AssertionOrDefinition_Assertion_1_0_0 range=Expression?) */ - protected void sequence_BasicInterpretation(ISerializationContext context, BasicInterpretation semanticObject) { + protected void sequence_AssertionOrDefinition(ISerializationContext context, Assertion semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * ComplexObject returns BooleanObject - * Object returns BooleanObject - * DataObject returns BooleanObject - * BooleanObject returns BooleanObject - * Literal returns BooleanObject + * AssertionOrDefinition returns MetricDefinition * * Constraint: - * value=BooleanValue + * (head=AssertionOrDefinition_MetricDefinition_1_2_0 body=Expression) */ - protected void sequence_BooleanObject(ISerializationContext context, BooleanObject semanticObject) { + protected void sequence_AssertionOrDefinition(ISerializationContext context, MetricDefinition semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.BOOLEAN_OBJECT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.BOOLEAN_OBJECT__VALUE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getBooleanObjectAccess().getValueBooleanValueParserRuleCall_0(), semanticObject.getValue()); + feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getMetricDefinitionHeadAction_1_2_0(), semanticObject.getHead()); + feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_2_2_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Symbol returns BooleanSymbol - * DataSymbol returns BooleanSymbol - * BooleanSymbol returns BooleanSymbol + * Statement returns MetricDefinition * * Constraint: - * {BooleanSymbol} + * ((head=AssertionOrDefinition_MetricDefinition_1_2_0 body=Expression) | (type=MetricType head=Expression body=Expression)) */ - protected void sequence_BooleanSymbol(ISerializationContext context, BooleanSymbol semanticObject) { + protected void sequence_AssertionOrDefinition_MetricDefinition(ISerializationContext context, MetricDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * BooleanValue returns BooleanFalse + * AssertionOrDefinition returns PredicateDefinition * * Constraint: - * {BooleanFalse} + * (head=AssertionOrDefinition_PredicateDefinition_1_1_0 body=Expression) */ - protected void sequence_BooleanValue(ISerializationContext context, BooleanFalse semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_AssertionOrDefinition(ISerializationContext context, PredicateDefinition semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__HEAD) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__HEAD)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.PREDICATE_DEFINITION__BODY)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getPredicateDefinitionHeadAction_1_1_0(), semanticObject.getHead()); + feeder.accept(grammarAccess.getAssertionOrDefinitionAccess().getBodyExpressionParserRuleCall_1_1_2_0(), semanticObject.getBody()); + feeder.finish(); } /** * Contexts: - * BooleanValue returns BooleanTrue + * Statement returns PredicateDefinition * * Constraint: - * {BooleanTrue} + * ( + * (head=AssertionOrDefinition_PredicateDefinition_1_1_0 body=Expression) | + * (((functional?='functional' error?='error'?) | (error?='error' functional?='functional'?)) head=Call body=Expression) + * ) */ - protected void sequence_BooleanValue(ISerializationContext context, BooleanTrue semanticObject) { + protected void sequence_AssertionOrDefinition_PredicateDefinition(ISerializationContext context, PredicateDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Statement returns ClassInterpretation - * Interpretation returns ClassInterpretation - * CDInterpretation returns ClassInterpretation - * ClassInterpretation returns ClassInterpretation + * AssertionOrDefinition.Assertion_1_0_0 returns Call + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Call + * AssertionOrDefinition.MetricDefinition_1_2_0 returns Call + * Expression returns Call + * DisjunctiveExpression returns Call + * DisjunctiveExpression.Disjunction_1_0_0 returns Call + * DisjunctiveExpression.Case_1_1_0 returns Call + * ConjunctiveExpression returns Call + * ConjunctiveExpression.Conjunction_1_0 returns Call + * ComparisonExpression returns Call + * ComparisonExpression.Comparison_1_0 returns Call + * AdditiveExpression returns Call + * AdditiveExpression.BinaryExpression_1_0 returns Call + * MultiplicativeExpression returns Call + * MultiplicativeExpression.BinaryExpression_1_0 returns Call + * ExponentialExpression returns Call + * ExponentialExpression.BinaryExpression_1_0 returns Call + * UnaryExpression returns Call + * AggregationExpression returns Call + * AtomicExpression returns Call * * Constraint: - * (abstract?='abstract'? symbol=ModelSymbol supertypes+=ModelSymbol* fielt+=FieldRelationInterpretation*) + * (functor=AtomicExpression_Call_0_1_0 argumentList=ArgumentList) */ - protected void sequence_ClassInterpretation(ISerializationContext context, ClassInterpretation semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_AtomicExpression(ISerializationContext context, Call semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CALL__FUNCTOR) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CALL__FUNCTOR)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CALL__ARGUMENT_LIST) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CALL__ARGUMENT_LIST)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getAtomicExpressionAccess().getCallFunctorAction_0_1_0(), semanticObject.getFunctor()); + feeder.accept(grammarAccess.getAtomicExpressionAccess().getArgumentListArgumentListParserRuleCall_0_1_1_0(), semanticObject.getArgumentList()); + feeder.finish(); } /** * Contexts: - * ClosureType returns IrreflexiveClosure + * Multiplicity returns BoundedMultiplicity + * BoundedMultiplicity returns BoundedMultiplicity * * Constraint: - * {IrreflexiveClosure} + * (lowerBound=INT upperBound=UpperMultiplicty) */ - protected void sequence_ClosureType(ISerializationContext context, IrreflexiveClosure semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_BoundedMultiplicity(ISerializationContext context, BoundedMultiplicity semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY__LOWER_BOUND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY__LOWER_BOUND)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY__UPPER_BOUND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY__UPPER_BOUND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getBoundedMultiplicityAccess().getLowerBoundINTTerminalRuleCall_1_0(), semanticObject.getLowerBound()); + feeder.accept(grammarAccess.getBoundedMultiplicityAccess().getUpperBoundUpperMultiplictyParserRuleCall_3_0(), semanticObject.getUpperBound()); + feeder.finish(); } /** * Contexts: - * ClosureType returns ReflexiveClosure + * Statement returns BoundedScopeDefinition + * ScopeDefinition returns BoundedScopeDefinition + * BoundedScopeDefinition returns BoundedScopeDefinition * * Constraint: - * {ReflexiveClosure} + * ((lowerBound=INT? type=[NamedElement|QualifiedName] upperBound=INT) | (upperBound=INT type=[NamedElement|QualifiedName] lowerBound=INT?)) */ - protected void sequence_ClosureType(ISerializationContext context, ReflexiveClosure semanticObject) { + protected void sequence_BoundedScopeDefinition(ISerializationContext context, BoundedScopeDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Constraint returns Constraint + * Call returns Call * * Constraint: - * ((polarity=Polarity? symbol=ModelSymbol params+=Literal? params+=Literal*) | (closureType=ClosureType params+=Literal? params+=Literal*)) + * (functor=Reference (transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)? argumentList=ArgumentList) */ - protected void sequence_Constraint(ISerializationContext context, Constraint semanticObject) { + protected void sequence_Call(ISerializationContext context, Call semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Statement returns DefaultInterpretation - * Interpretation returns DefaultInterpretation - * DefaultInterpretation returns DefaultInterpretation + * Case returns Case * * Constraint: - * interpretation=BasicInterpretation + * (condition=ConjunctiveExpression body=ConjunctiveExpression) */ - protected void sequence_DefaultInterpretation(ISerializationContext context, DefaultInterpretation semanticObject) { + protected void sequence_Case(ISerializationContext context, Case semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_INTERPRETATION__INTERPRETATION) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_INTERPRETATION__INTERPRETATION)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CASE__CONDITION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CASE__CONDITION)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CASE__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CASE__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getDefaultInterpretationAccess().getInterpretationBasicInterpretationParserRuleCall_1_0(), semanticObject.getInterpretation()); + feeder.accept(grammarAccess.getCaseAccess().getConditionConjunctiveExpressionParserRuleCall_0_0(), semanticObject.getCondition()); + feeder.accept(grammarAccess.getCaseAccess().getBodyConjunctiveExpressionParserRuleCall_2_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Statement returns EnumInterpretation - * Interpretation returns EnumInterpretation - * CDInterpretation returns EnumInterpretation - * EnumInterpretation returns EnumInterpretation + * Statement returns Statement + * ClassDefinition returns Statement * * Constraint: - * (Symbol=ModelSymbol objects+=NamedObject+) + * ( + * abstract?='abstract'? + * name=ID + * (superclasses+=[NamedElement|QualifiedName] superclasses+=[NamedElement|QualifiedName]*)? + * members+=MemberDefinition* + * ) */ - protected void sequence_EnumInterpretation(ISerializationContext context, EnumInterpretation semanticObject) { + protected void sequence_ClassDefinition(ISerializationContext context, Statement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Symbol returns EqualsSymbol - * PartialitySymbol returns EqualsSymbol - * EqualsSymbol returns EqualsSymbol + * AssertionOrDefinition.Assertion_1_0_0 returns Comparison + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Comparison + * AssertionOrDefinition.MetricDefinition_1_2_0 returns Comparison + * Expression returns Comparison + * DisjunctiveExpression returns Comparison + * DisjunctiveExpression.Disjunction_1_0_0 returns Comparison + * DisjunctiveExpression.Case_1_1_0 returns Comparison + * ConjunctiveExpression returns Comparison + * ConjunctiveExpression.Conjunction_1_0 returns Comparison + * ComparisonExpression returns Comparison + * ComparisonExpression.Comparison_1_0 returns Comparison + * AdditiveExpression returns Comparison + * AdditiveExpression.BinaryExpression_1_0 returns Comparison + * MultiplicativeExpression returns Comparison + * MultiplicativeExpression.BinaryExpression_1_0 returns Comparison + * ExponentialExpression returns Comparison + * ExponentialExpression.BinaryExpression_1_0 returns Comparison + * UnaryExpression returns Comparison + * AggregationExpression returns Comparison + * AtomicExpression returns Comparison * * Constraint: - * {EqualsSymbol} + * (left=ComparisonExpression_Comparison_1_0 op=ComparisonOperator right=AdditiveExpression) */ - protected void sequence_EqualsSymbol(ISerializationContext context, EqualsSymbol semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_ComparisonExpression(ISerializationContext context, Comparison semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__LEFT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__LEFT)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__OP) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__OP)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COMPARISON__RIGHT) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COMPARISON__RIGHT)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getComparisonExpressionAccess().getComparisonLeftAction_1_0(), semanticObject.getLeft()); + feeder.accept(grammarAccess.getComparisonExpressionAccess().getOpComparisonOperatorEnumRuleCall_1_1_0(), semanticObject.getOp()); + feeder.accept(grammarAccess.getComparisonExpressionAccess().getRightAdditiveExpressionParserRuleCall_1_2_0(), semanticObject.getRight()); + feeder.finish(); } /** * Contexts: - * Symbol returns ExistSymbol - * PartialitySymbol returns ExistSymbol - * ExistSymbol returns ExistSymbol + * AssertionOrDefinition.Assertion_1_0_0 returns Conjunction + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Conjunction + * AssertionOrDefinition.MetricDefinition_1_2_0 returns Conjunction + * Expression returns Conjunction + * DisjunctiveExpression returns Conjunction + * DisjunctiveExpression.Disjunction_1_0_0 returns Conjunction + * DisjunctiveExpression.Case_1_1_0 returns Conjunction + * ConjunctiveExpression returns Conjunction + * ConjunctiveExpression.Conjunction_1_0 returns Conjunction + * ComparisonExpression returns Conjunction + * ComparisonExpression.Comparison_1_0 returns Conjunction + * AdditiveExpression returns Conjunction + * AdditiveExpression.BinaryExpression_1_0 returns Conjunction + * MultiplicativeExpression returns Conjunction + * MultiplicativeExpression.BinaryExpression_1_0 returns Conjunction + * ExponentialExpression returns Conjunction + * ExponentialExpression.BinaryExpression_1_0 returns Conjunction + * UnaryExpression returns Conjunction + * AggregationExpression returns Conjunction + * AtomicExpression returns Conjunction * * Constraint: - * {ExistSymbol} + * (children+=ConjunctiveExpression_Conjunction_1_0 children+=ComparisonExpression+) */ - protected void sequence_ExistSymbol(ISerializationContext context, ExistSymbol semanticObject) { + protected void sequence_ConjunctiveExpression(ISerializationContext context, Conjunction semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * FieldRelationInterpretation returns FieldRelationInterpretation + * AssertionOrDefinition.Assertion_1_0_0 returns Count + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Count + * AssertionOrDefinition.MetricDefinition_1_2_0 returns Count + * Expression returns Count + * DisjunctiveExpression returns Count + * DisjunctiveExpression.Disjunction_1_0_0 returns Count + * DisjunctiveExpression.Case_1_1_0 returns Count + * ConjunctiveExpression returns Count + * ConjunctiveExpression.Conjunction_1_0 returns Count + * ComparisonExpression returns Count + * ComparisonExpression.Comparison_1_0 returns Count + * AdditiveExpression returns Count + * AdditiveExpression.BinaryExpression_1_0 returns Count + * MultiplicativeExpression returns Count + * MultiplicativeExpression.BinaryExpression_1_0 returns Count + * ExponentialExpression returns Count + * ExponentialExpression.BinaryExpression_1_0 returns Count + * UnaryExpression returns Count + * AggregationExpression returns Count + * Count returns Count + * AtomicExpression returns Count + * + * Constraint: + * body=Expression + */ + protected void sequence_Count(ISerializationContext context, Count semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.COUNT__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.COUNT__BODY)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getCountAccess().getBodyExpressionParserRuleCall_2_0(), semanticObject.getBody()); + feeder.finish(); + } + + + /** + * Contexts: + * Statement returns DefaultDefinition + * DefaultDefinition returns DefaultDefinition + * + * Constraint: + * (head=Call range=Expression) + */ + protected void sequence_DefaultDefinition(ISerializationContext context, DefaultDefinition semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__HEAD) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__HEAD)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__RANGE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.DEFAULT_DEFINITION__RANGE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getDefaultDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead()); + feeder.accept(grammarAccess.getDefaultDefinitionAccess().getRangeExpressionParserRuleCall_3_0(), semanticObject.getRange()); + feeder.finish(); + } + + + /** + * Contexts: + * AssertionOrDefinition.Assertion_1_0_0 returns Disjunction + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Disjunction + * AssertionOrDefinition.MetricDefinition_1_2_0 returns Disjunction + * Expression returns Disjunction + * DisjunctiveExpression returns Disjunction + * DisjunctiveExpression.Disjunction_1_0_0 returns Disjunction + * DisjunctiveExpression.Case_1_1_0 returns Disjunction + * ConjunctiveExpression returns Disjunction + * ConjunctiveExpression.Conjunction_1_0 returns Disjunction + * ComparisonExpression returns Disjunction + * ComparisonExpression.Comparison_1_0 returns Disjunction + * AdditiveExpression returns Disjunction + * AdditiveExpression.BinaryExpression_1_0 returns Disjunction + * MultiplicativeExpression returns Disjunction + * MultiplicativeExpression.BinaryExpression_1_0 returns Disjunction + * ExponentialExpression returns Disjunction + * ExponentialExpression.BinaryExpression_1_0 returns Disjunction + * UnaryExpression returns Disjunction + * AggregationExpression returns Disjunction + * AtomicExpression returns Disjunction * * Constraint: - * (containment?='containment'? symbol=ModelSymbol multiplicity=MultiplicityDefinition? target=Symbol) + * (children+=DisjunctiveExpression_Disjunction_1_0_0 children+=ConjunctiveExpression+) */ - protected void sequence_FieldRelationInterpretation(ISerializationContext context, FieldRelationInterpretation semanticObject) { + protected void sequence_DisjunctiveExpression(ISerializationContext context, Disjunction semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Statement returns GlobalRelationInterpretation - * Interpretation returns GlobalRelationInterpretation - * CDInterpretation returns GlobalRelationInterpretation - * GlobalRelationInterpretation returns GlobalRelationInterpretation + * AssertionOrDefinition.Assertion_1_0_0 returns Switch + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Switch + * AssertionOrDefinition.MetricDefinition_1_2_0 returns Switch + * Expression returns Switch + * DisjunctiveExpression returns Switch + * DisjunctiveExpression.Disjunction_1_0_0 returns Switch + * DisjunctiveExpression.Case_1_1_0 returns Switch + * ConjunctiveExpression returns Switch + * ConjunctiveExpression.Conjunction_1_0 returns Switch + * ComparisonExpression returns Switch + * ComparisonExpression.Comparison_1_0 returns Switch + * AdditiveExpression returns Switch + * AdditiveExpression.BinaryExpression_1_0 returns Switch + * MultiplicativeExpression returns Switch + * MultiplicativeExpression.BinaryExpression_1_0 returns Switch + * ExponentialExpression returns Switch + * ExponentialExpression.BinaryExpression_1_0 returns Switch + * UnaryExpression returns Switch + * AggregationExpression returns Switch + * AtomicExpression returns Switch * * Constraint: - * ( - * containment?='containment'? - * symbol=ModelSymbol - * sourceMultiplicity=MultiplicityDefinition? - * source=Symbol - * targetMultiplicity=MultiplicityDefinition? - * target=Symbol - * ) + * (cases+=DisjunctiveExpression_Switch_1_1_3 cases+=Case*) */ - protected void sequence_GlobalRelationInterpretation(ISerializationContext context, GlobalRelationInterpretation semanticObject) { + protected void sequence_DisjunctiveExpression(ISerializationContext context, Switch semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * ComplexObject returns IntObject - * Object returns IntObject - * DataObject returns IntObject - * IntObject returns IntObject - * Literal returns IntObject + * DisjunctiveExpression.Switch_1_1_3 returns Case * * Constraint: - * value=INTLiteral + * (condition=DisjunctiveExpression_Case_1_1_0 body=ConjunctiveExpression) */ - protected void sequence_IntObject(ISerializationContext context, IntObject semanticObject) { + protected void sequence_DisjunctiveExpression_Switch_1_1_3(ISerializationContext context, Case semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INT_OBJECT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INT_OBJECT__VALUE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CASE__CONDITION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CASE__CONDITION)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.CASE__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.CASE__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getIntObjectAccess().getValueINTLiteralParserRuleCall_0(), semanticObject.getValue()); + feeder.accept(grammarAccess.getDisjunctiveExpressionAccess().getCaseConditionAction_1_1_0(), semanticObject.getCondition()); + feeder.accept(grammarAccess.getDisjunctiveExpressionAccess().getBodyConjunctiveExpressionParserRuleCall_1_1_2_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Symbol returns IntegerSymbol - * DataSymbol returns IntegerSymbol - * IntegerSymbol returns IntegerSymbol + * AssertionOrDefinition.Assertion_1_0_0 returns EmptyIntervalLiteral + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns EmptyIntervalLiteral + * AssertionOrDefinition.MetricDefinition_1_2_0 returns EmptyIntervalLiteral + * Expression returns EmptyIntervalLiteral + * DisjunctiveExpression returns EmptyIntervalLiteral + * DisjunctiveExpression.Disjunction_1_0_0 returns EmptyIntervalLiteral + * DisjunctiveExpression.Case_1_1_0 returns EmptyIntervalLiteral + * ConjunctiveExpression returns EmptyIntervalLiteral + * ConjunctiveExpression.Conjunction_1_0 returns EmptyIntervalLiteral + * ComparisonExpression returns EmptyIntervalLiteral + * ComparisonExpression.Comparison_1_0 returns EmptyIntervalLiteral + * AdditiveExpression returns EmptyIntervalLiteral + * AdditiveExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral + * MultiplicativeExpression returns EmptyIntervalLiteral + * MultiplicativeExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral + * ExponentialExpression returns EmptyIntervalLiteral + * ExponentialExpression.BinaryExpression_1_0 returns EmptyIntervalLiteral + * UnaryExpression returns EmptyIntervalLiteral + * AggregationExpression returns EmptyIntervalLiteral + * AtomicExpression returns EmptyIntervalLiteral + * Literal returns EmptyIntervalLiteral + * EmptyIntervalLiteral returns EmptyIntervalLiteral * * Constraint: - * {IntegerSymbol} + * {EmptyIntervalLiteral} */ - protected void sequence_IntegerSymbol(ISerializationContext context, IntegerSymbol semanticObject) { + protected void sequence_EmptyIntervalLiteral(ISerializationContext context, EmptyIntervalLiteral semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Symbol returns ModelSymbol - * ModelSymbol returns ModelSymbol + * Multiplicity returns ExactMultiplicity + * ExactMultiplicity returns ExactMultiplicity * * Constraint: - * name=ID + * multiplicity=UpperMultiplicty */ - protected void sequence_ModelSymbol(ISerializationContext context, ModelSymbol semanticObject) { + protected void sequence_ExactMultiplicity(ISerializationContext context, ExactMultiplicity semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.MODEL_SYMBOL__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.MODEL_SYMBOL__NAME)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__MULTIPLICITY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_MULTIPLICITY__MULTIPLICITY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getModelSymbolAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getExactMultiplicityAccess().getMultiplicityUpperMultiplictyParserRuleCall_1_0(), semanticObject.getMultiplicity()); feeder.finish(); } /** * Contexts: - * MultiplicityDefinition returns MultiplicityDefinition + * Statement returns ExactScopeDefinition + * ScopeDefinition returns ExactScopeDefinition + * ExactScopeDefinition returns ExactScopeDefinition * * Constraint: - * (lower=INT (upper=INT | unlimitedUpper?='*')) + * (type=[NamedElement|QualifiedName] exactScope=INT) */ - protected void sequence_MultiplicityDefinition(ISerializationContext context, MultiplicityDefinition semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_ExactScopeDefinition(ISerializationContext context, ExactScopeDefinition semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION__EXACT_SCOPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION__EXACT_SCOPE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getExactScopeDefinitionAccess().getTypeNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.SCOPE_DEFINITION__TYPE, false)); + feeder.accept(grammarAccess.getExactScopeDefinitionAccess().getExactScopeINTTerminalRuleCall_3_0(), semanticObject.getExactScope()); + feeder.finish(); } /** * Contexts: - * ComplexObject returns NamedObject - * Object returns NamedObject - * NamedObject returns NamedObject - * Literal returns NamedObject + * Argument returns ExpressionArgument + * ExpressionArgument returns ExpressionArgument * * Constraint: - * name=ID + * body=ComparisonExpression */ - protected void sequence_NamedObject(ISerializationContext context, NamedObject semanticObject) { + protected void sequence_ExpressionArgument(ISerializationContext context, ExpressionArgument semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NAMED_OBJECT__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NAMED_OBJECT__NAME)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getNamedObjectAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getExpressionArgumentAccess().getBodyComparisonExpressionParserRuleCall_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Parameter returns Parameter + * Statement returns ExternMetricDefinition + * ExternMetricDefinition returns ExternMetricDefinition * * Constraint: - * (variable=Variable type=Symbol?) + * (type=MetricType head=Call) */ - protected void sequence_Parameter(ISerializationContext context, org.eclipse.viatra.solver.language.solverLanguage.Parameter semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_ExternMetricDefinition(ISerializationContext context, ExternMetricDefinition semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__HEAD) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION__HEAD)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_1_0(), semanticObject.getType()); + feeder.accept(grammarAccess.getExternMetricDefinitionAccess().getHeadCallParserRuleCall_2_0(), semanticObject.getHead()); + feeder.finish(); } /** * Contexts: - * PatternBody returns PatternBody + * Statement returns ExternPredicateDefinition + * ExternPredicateDefinition returns ExternPredicateDefinition * * Constraint: - * constraints+=Constraint* + * head=Call */ - protected void sequence_PatternBody(ISerializationContext context, PatternBody semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_ExternPredicateDefinition(ISerializationContext context, ExternPredicateDefinition semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__HEAD) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION__HEAD)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getExternPredicateDefinitionAccess().getHeadCallParserRuleCall_1_0(), semanticObject.getHead()); + feeder.finish(); + } + + + /** + * Contexts: + * AssertionOrDefinition.Assertion_1_0_0 returns IfElse + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns IfElse + * AssertionOrDefinition.MetricDefinition_1_2_0 returns IfElse + * Expression returns IfElse + * IfElse returns IfElse + * DisjunctiveExpression returns IfElse + * DisjunctiveExpression.Disjunction_1_0_0 returns IfElse + * DisjunctiveExpression.Case_1_1_0 returns IfElse + * ConjunctiveExpression returns IfElse + * ConjunctiveExpression.Conjunction_1_0 returns IfElse + * ComparisonExpression returns IfElse + * ComparisonExpression.Comparison_1_0 returns IfElse + * AdditiveExpression returns IfElse + * AdditiveExpression.BinaryExpression_1_0 returns IfElse + * MultiplicativeExpression returns IfElse + * MultiplicativeExpression.BinaryExpression_1_0 returns IfElse + * ExponentialExpression returns IfElse + * ExponentialExpression.BinaryExpression_1_0 returns IfElse + * UnaryExpression returns IfElse + * AggregationExpression returns IfElse + * AtomicExpression returns IfElse + * + * Constraint: + * (condition=Expression then=Expression else=Expression) + */ + protected void sequence_IfElse(ISerializationContext context, IfElse semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__CONDITION) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__CONDITION)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__THEN) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__THEN)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__ELSE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.IF_ELSE__ELSE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getIfElseAccess().getConditionExpressionParserRuleCall_1_0(), semanticObject.getCondition()); + feeder.accept(grammarAccess.getIfElseAccess().getThenExpressionParserRuleCall_3_0(), semanticObject.getThen()); + feeder.accept(grammarAccess.getIfElseAccess().getElseExpressionParserRuleCall_5_0(), semanticObject.getElse()); + feeder.finish(); } /** * Contexts: - * Polarity returns Negative + * AssertionOrDefinition.Assertion_1_0_0 returns InfinityLiteral + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns InfinityLiteral + * AssertionOrDefinition.MetricDefinition_1_2_0 returns InfinityLiteral + * Expression returns InfinityLiteral + * DisjunctiveExpression returns InfinityLiteral + * DisjunctiveExpression.Disjunction_1_0_0 returns InfinityLiteral + * DisjunctiveExpression.Case_1_1_0 returns InfinityLiteral + * ConjunctiveExpression returns InfinityLiteral + * ConjunctiveExpression.Conjunction_1_0 returns InfinityLiteral + * ComparisonExpression returns InfinityLiteral + * ComparisonExpression.Comparison_1_0 returns InfinityLiteral + * AdditiveExpression returns InfinityLiteral + * AdditiveExpression.BinaryExpression_1_0 returns InfinityLiteral + * MultiplicativeExpression returns InfinityLiteral + * MultiplicativeExpression.BinaryExpression_1_0 returns InfinityLiteral + * ExponentialExpression returns InfinityLiteral + * ExponentialExpression.BinaryExpression_1_0 returns InfinityLiteral + * UnaryExpression returns InfinityLiteral + * AggregationExpression returns InfinityLiteral + * AtomicExpression returns InfinityLiteral + * Literal returns InfinityLiteral + * InfinityLiteral returns InfinityLiteral * * Constraint: - * {Negative} + * {InfinityLiteral} */ - protected void sequence_Polarity(ISerializationContext context, Negative semanticObject) { + protected void sequence_InfinityLiteral(ISerializationContext context, InfinityLiteral semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Polarity returns Positive + * AssertionOrDefinition.Assertion_1_0_0 returns Interval + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Interval + * AssertionOrDefinition.MetricDefinition_1_2_0 returns Interval + * Expression returns Interval + * DisjunctiveExpression returns Interval + * DisjunctiveExpression.Disjunction_1_0_0 returns Interval + * DisjunctiveExpression.Case_1_1_0 returns Interval + * ConjunctiveExpression returns Interval + * ConjunctiveExpression.Conjunction_1_0 returns Interval + * ComparisonExpression returns Interval + * ComparisonExpression.Comparison_1_0 returns Interval + * AdditiveExpression returns Interval + * AdditiveExpression.BinaryExpression_1_0 returns Interval + * MultiplicativeExpression returns Interval + * MultiplicativeExpression.BinaryExpression_1_0 returns Interval + * ExponentialExpression returns Interval + * ExponentialExpression.BinaryExpression_1_0 returns Interval + * UnaryExpression returns Interval + * AggregationExpression returns Interval + * AtomicExpression returns Interval + * Interval returns Interval + * + * Constraint: + * (lowerBound=Expression upperBound=Expression) + */ + protected void sequence_Interval(ISerializationContext context, Interval semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INTERVAL__LOWER_BOUND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERVAL__LOWER_BOUND)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.INTERVAL__UPPER_BOUND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.INTERVAL__UPPER_BOUND)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getIntervalAccess().getLowerBoundExpressionParserRuleCall_1_0(), semanticObject.getLowerBound()); + feeder.accept(grammarAccess.getIntervalAccess().getUpperBoundExpressionParserRuleCall_3_0(), semanticObject.getUpperBound()); + feeder.finish(); + } + + + /** + * Contexts: + * AssertionOrDefinition.Assertion_1_0_0 returns LogicLiteral + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns LogicLiteral + * AssertionOrDefinition.MetricDefinition_1_2_0 returns LogicLiteral + * Expression returns LogicLiteral + * DisjunctiveExpression returns LogicLiteral + * DisjunctiveExpression.Disjunction_1_0_0 returns LogicLiteral + * DisjunctiveExpression.Case_1_1_0 returns LogicLiteral + * ConjunctiveExpression returns LogicLiteral + * ConjunctiveExpression.Conjunction_1_0 returns LogicLiteral + * ComparisonExpression returns LogicLiteral + * ComparisonExpression.Comparison_1_0 returns LogicLiteral + * AdditiveExpression returns LogicLiteral + * AdditiveExpression.BinaryExpression_1_0 returns LogicLiteral + * MultiplicativeExpression returns LogicLiteral + * MultiplicativeExpression.BinaryExpression_1_0 returns LogicLiteral + * ExponentialExpression returns LogicLiteral + * ExponentialExpression.BinaryExpression_1_0 returns LogicLiteral + * UnaryExpression returns LogicLiteral + * AggregationExpression returns LogicLiteral + * AtomicExpression returns LogicLiteral + * Literal returns LogicLiteral + * LogicLiteral returns LogicLiteral * * Constraint: - * {Positive} + * value=LogicValue */ - protected void sequence_Polarity(ISerializationContext context, Positive semanticObject) { + protected void sequence_LogicLiteral(ISerializationContext context, LogicLiteral semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.LOGIC_LITERAL__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.LOGIC_LITERAL__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getLogicLiteralAccess().getValueLogicValueEnumRuleCall_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * Statement returns LowerBoundedScopeDefinition + * ScopeDefinition returns LowerBoundedScopeDefinition + * LowerBoundedScopeDefinition returns LowerBoundedScopeDefinition + * + * Constraint: + * ((lowerBound=INT type=[NamedElement|QualifiedName]) | (type=[NamedElement|QualifiedName] lowerBound=INT)) + */ + protected void sequence_LowerBoundedScopeDefinition(ISerializationContext context, LowerBoundedScopeDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Statement returns Predicate - * Predicate returns Predicate + * Multiplicity returns ManyMultiplicity + * ManyMultiplicity returns ManyMultiplicity * * Constraint: - * (isError?='error'? symbol=ModelSymbol (parameters+=Parameter parameters+=Parameter*)? (bodies+=PatternBody bodies+=PatternBody*)?) + * {ManyMultiplicity} */ - protected void sequence_Predicate(ISerializationContext context, Predicate semanticObject) { + protected void sequence_ManyMultiplicity(ISerializationContext context, ManyMultiplicity semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * Problem returns Problem + * MemberDefinition returns MemberDefinition * * Constraint: - * statements+=Statement+ + * (containment?='contains'? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID opposite=[NamedElement|QualifiedName]?) */ - protected void sequence_Problem(ISerializationContext context, Problem semanticObject) { + protected void sequence_MemberDefinition(ISerializationContext context, MemberDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * ComplexObject returns RealObject - * Object returns RealObject - * DataObject returns RealObject - * RealObject returns RealObject - * Literal returns RealObject + * MetricDefinition returns MetricDefinition * * Constraint: - * value=REALLiteral + * (type=MetricType head=Expression body=Expression) */ - protected void sequence_RealObject(ISerializationContext context, RealObject semanticObject) { + protected void sequence_MetricDefinition(ISerializationContext context, MetricDefinition semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.REAL_OBJECT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.REAL_OBJECT__VALUE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__HEAD)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.METRIC_DEFINITION__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getRealObjectAccess().getValueREALLiteralParserRuleCall_0(), semanticObject.getValue()); + feeder.accept(grammarAccess.getMetricDefinitionAccess().getTypeMetricTypeEnumRuleCall_0_0(), semanticObject.getType()); + feeder.accept(grammarAccess.getMetricDefinitionAccess().getHeadExpressionParserRuleCall_1_0(), semanticObject.getHead()); + feeder.accept(grammarAccess.getMetricDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Symbol returns RealSymbol - * DataSymbol returns RealSymbol - * RealSymbol returns RealSymbol + * NamedElement returns NamedElement * * Constraint: - * {RealSymbol} + * name=QualifiedName */ - protected void sequence_RealSymbol(ISerializationContext context, RealSymbol semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_NamedElement(ISerializationContext context, NamedElement semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NAMED_ELEMENT__NAME) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NAMED_ELEMENT__NAME)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getNamedElementAccess().getNameQualifiedNameParserRuleCall_0(), semanticObject.getName()); + feeder.finish(); } /** * Contexts: - * ComplexObject returns StringObject - * Object returns StringObject - * DataObject returns StringObject - * StringObject returns StringObject - * Literal returns StringObject + * AssertionOrDefinition.Assertion_1_0_0 returns NumericLiteral + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns NumericLiteral + * AssertionOrDefinition.MetricDefinition_1_2_0 returns NumericLiteral + * Expression returns NumericLiteral + * DisjunctiveExpression returns NumericLiteral + * DisjunctiveExpression.Disjunction_1_0_0 returns NumericLiteral + * DisjunctiveExpression.Case_1_1_0 returns NumericLiteral + * ConjunctiveExpression returns NumericLiteral + * ConjunctiveExpression.Conjunction_1_0 returns NumericLiteral + * ComparisonExpression returns NumericLiteral + * ComparisonExpression.Comparison_1_0 returns NumericLiteral + * AdditiveExpression returns NumericLiteral + * AdditiveExpression.BinaryExpression_1_0 returns NumericLiteral + * MultiplicativeExpression returns NumericLiteral + * MultiplicativeExpression.BinaryExpression_1_0 returns NumericLiteral + * ExponentialExpression returns NumericLiteral + * ExponentialExpression.BinaryExpression_1_0 returns NumericLiteral + * UnaryExpression returns NumericLiteral + * AggregationExpression returns NumericLiteral + * AtomicExpression returns NumericLiteral + * Literal returns NumericLiteral + * NumericLiteral returns NumericLiteral * * Constraint: - * value=STRING + * value=Real */ - protected void sequence_StringObject(ISerializationContext context, StringObject semanticObject) { + protected void sequence_NumericLiteral(ISerializationContext context, NumericLiteral semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.STRING_OBJECT__VALUE) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.STRING_OBJECT__VALUE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.NUMERIC_LITERAL__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.NUMERIC_LITERAL__VALUE)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getStringObjectAccess().getValueSTRINGTerminalRuleCall_0(), semanticObject.getValue()); + feeder.accept(grammarAccess.getNumericLiteralAccess().getValueRealParserRuleCall_0(), semanticObject.getValue()); feeder.finish(); } /** * Contexts: - * Symbol returns StringSymbol - * DataSymbol returns StringSymbol - * StringSymbol returns StringSymbol + * Statement returns ObjectiveDefinition + * ObjectiveDefinition returns ObjectiveDefinition * * Constraint: - * {StringSymbol} + * (kind=ObjectiveKind objective=Expression) */ - protected void sequence_StringSymbol(ISerializationContext context, StringSymbol semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_ObjectiveDefinition(ISerializationContext context, ObjectiveDefinition semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__KIND) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__KIND)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__OBJECTIVE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION__OBJECTIVE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getObjectiveDefinitionAccess().getKindObjectiveKindEnumRuleCall_0_0(), semanticObject.getKind()); + feeder.accept(grammarAccess.getObjectiveDefinitionAccess().getObjectiveExpressionParserRuleCall_1_0(), semanticObject.getObjective()); + feeder.finish(); } /** * Contexts: - * TruthValue returns Error + * PredicateDefinition returns PredicateDefinition * * Constraint: - * {Error} + * (((functional?='functional' error?='error'?) | (error?='error' functional?='functional'?)) head=Call body=Expression) */ - protected void sequence_TruthValue(ISerializationContext context, org.eclipse.viatra.solver.language.solverLanguage.Error semanticObject) { + protected void sequence_PredicateDefinition(ISerializationContext context, PredicateDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * TruthValue returns False + * Problem returns Problem * * Constraint: - * {False} + * statements+=Statement+ */ - protected void sequence_TruthValue(ISerializationContext context, False semanticObject) { + protected void sequence_Problem(ISerializationContext context, Problem semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * TruthValue returns True + * AssertionOrDefinition.Assertion_1_0_0 returns Reference + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns Reference + * AssertionOrDefinition.MetricDefinition_1_2_0 returns Reference + * Expression returns Reference + * DisjunctiveExpression returns Reference + * DisjunctiveExpression.Disjunction_1_0_0 returns Reference + * DisjunctiveExpression.Case_1_1_0 returns Reference + * ConjunctiveExpression returns Reference + * ConjunctiveExpression.Conjunction_1_0 returns Reference + * ComparisonExpression returns Reference + * ComparisonExpression.Comparison_1_0 returns Reference + * AdditiveExpression returns Reference + * AdditiveExpression.BinaryExpression_1_0 returns Reference + * MultiplicativeExpression returns Reference + * MultiplicativeExpression.BinaryExpression_1_0 returns Reference + * ExponentialExpression returns Reference + * ExponentialExpression.BinaryExpression_1_0 returns Reference + * UnaryExpression returns Reference + * AggregationExpression returns Reference + * AtomicExpression returns Reference + * AtomicExpression.Call_0_1_0 returns Reference + * Reference returns Reference * * Constraint: - * {True} + * referred=[NamedElement|QualifiedName] */ - protected void sequence_TruthValue(ISerializationContext context, True semanticObject) { - genericSequencer.createSequence(context, semanticObject); + protected void sequence_Reference(ISerializationContext context, Reference semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.REFERENCE__REFERRED) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.REFERENCE__REFERRED)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getReferenceAccess().getReferredNamedElementQualifiedNameParserRuleCall_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.REFERENCE__REFERRED, false)); + feeder.finish(); } /** * Contexts: - * TruthValue returns Unknown + * Argument returns StarArgument + * StarArgument returns StarArgument * * Constraint: - * {Unknown} + * {StarArgument} */ - protected void sequence_TruthValue(ISerializationContext context, Unknown semanticObject) { + protected void sequence_StarArgument(ISerializationContext context, StarArgument semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: - * ComplexObject returns UnnamedObject - * Object returns UnnamedObject - * UnnamedObject returns UnnamedObject + * AssertionOrDefinition.Assertion_1_0_0 returns StringLiteral + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns StringLiteral + * AssertionOrDefinition.MetricDefinition_1_2_0 returns StringLiteral + * Expression returns StringLiteral + * DisjunctiveExpression returns StringLiteral + * DisjunctiveExpression.Disjunction_1_0_0 returns StringLiteral + * DisjunctiveExpression.Case_1_1_0 returns StringLiteral + * ConjunctiveExpression returns StringLiteral + * ConjunctiveExpression.Conjunction_1_0 returns StringLiteral + * ComparisonExpression returns StringLiteral + * ComparisonExpression.Comparison_1_0 returns StringLiteral + * AdditiveExpression returns StringLiteral + * AdditiveExpression.BinaryExpression_1_0 returns StringLiteral + * MultiplicativeExpression returns StringLiteral + * MultiplicativeExpression.BinaryExpression_1_0 returns StringLiteral + * ExponentialExpression returns StringLiteral + * ExponentialExpression.BinaryExpression_1_0 returns StringLiteral + * UnaryExpression returns StringLiteral + * AggregationExpression returns StringLiteral + * AtomicExpression returns StringLiteral + * Literal returns StringLiteral + * StringLiteral returns StringLiteral + * + * Constraint: + * value=STRING + */ + protected void sequence_StringLiteral(ISerializationContext context, StringLiteral semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.STRING_LITERAL__VALUE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.STRING_LITERAL__VALUE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getStringLiteralAccess().getValueSTRINGTerminalRuleCall_0(), semanticObject.getValue()); + feeder.finish(); + } + + + /** + * Contexts: + * Argument returns TypedArgument + * TypedArgument returns TypedArgument + * + * Constraint: + * (type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]) + */ + protected void sequence_TypedArgument(ISerializationContext context, TypedArgument semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getTypedArgumentAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_ARGUMENT__TYPE, false)); + feeder.accept(grammarAccess.getTypedArgumentAccess().getVariableNamedElementQualifiedNameParserRuleCall_1_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_ARGUMENT__VARIABLE, false)); + feeder.finish(); + } + + + /** + * Contexts: + * Argument returns TypedStarArgument + * TypedStarArgument returns TypedStarArgument + * + * Constraint: + * type=[NamedElement|QualifiedName] + */ + protected void sequence_TypedStarArgument(ISerializationContext context, TypedStarArgument semanticObject) { + if (errorAcceptor != null) { + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE)); + } + SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); + feeder.accept(grammarAccess.getTypedStarArgumentAccess().getTypeNamedElementQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT__TYPE, false)); + feeder.finish(); + } + + + /** + * Contexts: + * AssertionOrDefinition.Assertion_1_0_0 returns UnaryExpression + * AssertionOrDefinition.PredicateDefinition_1_1_0 returns UnaryExpression + * AssertionOrDefinition.MetricDefinition_1_2_0 returns UnaryExpression + * Expression returns UnaryExpression + * DisjunctiveExpression returns UnaryExpression + * DisjunctiveExpression.Disjunction_1_0_0 returns UnaryExpression + * DisjunctiveExpression.Case_1_1_0 returns UnaryExpression + * ConjunctiveExpression returns UnaryExpression + * ConjunctiveExpression.Conjunction_1_0 returns UnaryExpression + * ComparisonExpression returns UnaryExpression + * ComparisonExpression.Comparison_1_0 returns UnaryExpression + * AdditiveExpression returns UnaryExpression + * AdditiveExpression.BinaryExpression_1_0 returns UnaryExpression + * MultiplicativeExpression returns UnaryExpression + * MultiplicativeExpression.BinaryExpression_1_0 returns UnaryExpression + * ExponentialExpression returns UnaryExpression + * ExponentialExpression.BinaryExpression_1_0 returns UnaryExpression + * UnaryExpression returns UnaryExpression + * AggregationExpression returns UnaryExpression + * AtomicExpression returns UnaryExpression * * Constraint: - * name=ID + * (op=UnaryOp body=AggregationExpression) */ - protected void sequence_UnnamedObject(ISerializationContext context, UnnamedObject semanticObject) { + protected void sequence_UnaryExpression(ISerializationContext context, UnaryExpression semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_OBJECT__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_OBJECT__NAME)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__OP) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__OP)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNARY_EXPRESSION__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getUnnamedObjectAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getOpUnaryOpEnumRuleCall_1_1_0(), semanticObject.getOp()); + feeder.accept(grammarAccess.getUnaryExpressionAccess().getBodyAggregationExpressionParserRuleCall_1_2_0(), semanticObject.getBody()); feeder.finish(); } /** * Contexts: - * Literal returns Variable - * Variable returns Variable + * Statement returns UnnamedErrorPrediateDefinition + * UnnamedErrorPrediateDefinition returns UnnamedErrorPrediateDefinition * * Constraint: - * name=ID + * (argumentList=ArgumentList body=Expression) */ - protected void sequence_Variable(ISerializationContext context, Variable semanticObject) { + protected void sequence_UnnamedErrorPrediateDefinition(ISerializationContext context, UnnamedErrorPrediateDefinition semanticObject) { if (errorAcceptor != null) { - if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.VARIABLE__NAME) == ValueTransient.YES) - errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.VARIABLE__NAME)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST)); + if (transientValues.isValueTransient(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY) == ValueTransient.YES) + errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); - feeder.accept(grammarAccess.getVariableAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); + feeder.accept(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getArgumentListArgumentListParserRuleCall_1_0(), semanticObject.getArgumentList()); + feeder.accept(grammarAccess.getUnnamedErrorPrediateDefinitionAccess().getBodyExpressionParserRuleCall_3_0(), semanticObject.getBody()); feeder.finish(); } 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.serializer; @@ -11,7 +11,6 @@ import org.eclipse.xtext.IGrammarAccess; import org.eclipse.xtext.RuleCall; import org.eclipse.xtext.nodemodel.INode; import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias; -import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias; import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias; import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable; import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition; @@ -21,25 +20,58 @@ import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer; public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer { protected SolverLanguageGrammarAccess grammarAccess; - protected AbstractElementAlias match_BasicInterpretation___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q; - protected AbstractElementAlias match_Constraint___LeftParenthesisKeyword_0_2_0_RightParenthesisKeyword_0_2_3__q; - protected AbstractElementAlias match_PatternBody_TrueKeyword_1_0_q; - protected AbstractElementAlias match_Predicate___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q; + protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_3_0_a; + protected AbstractElementAlias match_AtomicExpression_LeftParenthesisKeyword_3_0_p; + protected AbstractElementAlias match_MemberDefinition_SemicolonKeyword_5_q; @Inject protected void init(IGrammarAccess access) { grammarAccess = (SolverLanguageGrammarAccess) access; - 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())); - 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())); - match_PatternBody_TrueKeyword_1_0_q = new TokenAlias(false, true, grammarAccess.getPatternBodyAccess().getTrueKeyword_1_0()); - 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())); + match_AtomicExpression_LeftParenthesisKeyword_3_0_a = new TokenAlias(true, true, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_3_0()); + match_AtomicExpression_LeftParenthesisKeyword_3_0_p = new TokenAlias(true, false, grammarAccess.getAtomicExpressionAccess().getLeftParenthesisKeyword_3_0()); + match_MemberDefinition_SemicolonKeyword_5_q = new TokenAlias(false, true, grammarAccess.getMemberDefinitionAccess().getSemicolonKeyword_5()); } @Override protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) { + if (ruleCall.getRule() == grammarAccess.getDOTRule()) + return getDOTToken(semanticObject, ruleCall, node); + else if (ruleCall.getRule() == grammarAccess.getPLUSRule()) + return getPLUSToken(semanticObject, ruleCall, node); + else if (ruleCall.getRule() == grammarAccess.getSTARRule()) + return getSTARToken(semanticObject, ruleCall, node); return ""; } + /** + * terminal DOT: + * "synthetic::dot"; + */ + protected String getDOTToken(EObject semanticObject, RuleCall ruleCall, INode node) { + if (node != null) + return getTokenText(node); + return "synthetic::dot"; + } + + /** + * terminal PLUS: + * "synthetic::plus"; + */ + protected String getPLUSToken(EObject semanticObject, RuleCall ruleCall, INode node) { + if (node != null) + return getTokenText(node); + return "synthetic::plus"; + } + + /** + * terminal STAR: + * "synthetic::star"; + */ + protected String getSTARToken(EObject semanticObject, RuleCall ruleCall, INode node) { + if (node != null) + return getTokenText(node); + return "synthetic::star"; + } @Override protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) { @@ -47,60 +79,71 @@ public class SolverLanguageSyntacticSequencer extends AbstractSyntacticSequencer List transitionNodes = collectNodes(fromNode, toNode); for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) { List syntaxNodes = getNodesFor(transitionNodes, syntax); - if (match_BasicInterpretation___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q.equals(syntax)) - emit_BasicInterpretation___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q(semanticObject, getLastNavigableState(), syntaxNodes); - else if (match_Constraint___LeftParenthesisKeyword_0_2_0_RightParenthesisKeyword_0_2_3__q.equals(syntax)) - emit_Constraint___LeftParenthesisKeyword_0_2_0_RightParenthesisKeyword_0_2_3__q(semanticObject, getLastNavigableState(), syntaxNodes); - else if (match_PatternBody_TrueKeyword_1_0_q.equals(syntax)) - emit_PatternBody_TrueKeyword_1_0_q(semanticObject, getLastNavigableState(), syntaxNodes); - else if (match_Predicate___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q.equals(syntax)) - emit_Predicate___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q(semanticObject, getLastNavigableState(), syntaxNodes); + if (match_AtomicExpression_LeftParenthesisKeyword_3_0_a.equals(syntax)) + emit_AtomicExpression_LeftParenthesisKeyword_3_0_a(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_AtomicExpression_LeftParenthesisKeyword_3_0_p.equals(syntax)) + emit_AtomicExpression_LeftParenthesisKeyword_3_0_p(semanticObject, getLastNavigableState(), syntaxNodes); + else if (match_MemberDefinition_SemicolonKeyword_5_q.equals(syntax)) + emit_MemberDefinition_SemicolonKeyword_5_q(semanticObject, getLastNavigableState(), syntaxNodes); else acceptNodes(getLastNavigableState(), syntaxNodes); } } /** * Ambiguous syntax: - * ('(' ')')? - * - * This ambiguous syntax occurs at: - * symbol=Symbol (ambiguity) ':' value=TruthValue - */ - protected void emit_BasicInterpretation___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q(EObject semanticObject, ISynNavigable transition, List nodes) { - acceptNodes(transition, nodes); - } - - /** - * Ambiguous syntax: - * ('(' ')')? + * '('* * * This ambiguous syntax occurs at: - * symbol=ModelSymbol (ambiguity) (rule end) + * (rule start) (ambiguity) '[' lowerBound=Expression + * (rule start) (ambiguity) 'count' '{' body=Expression + * (rule start) (ambiguity) 'empty' (rule start) + * (rule start) (ambiguity) 'if' condition=Expression + * (rule start) (ambiguity) 'inf' (rule start) + * (rule start) (ambiguity) op=AggregationOp + * (rule start) (ambiguity) op=UnaryOp + * (rule start) (ambiguity) referred=[NamedElement|QualifiedName] + * (rule start) (ambiguity) value=LogicValue + * (rule start) (ambiguity) value=Real + * (rule start) (ambiguity) value=STRING + * (rule start) (ambiguity) {BinaryExpression.left=} + * (rule start) (ambiguity) {Call.functor=} + * (rule start) (ambiguity) {Comparison.left=} + * (rule start) (ambiguity) {Conjunction.children+=} + * (rule start) (ambiguity) {Disjunction.children+=} + * (rule start) (ambiguity) {Switch.cases+=} */ - protected void emit_Constraint___LeftParenthesisKeyword_0_2_0_RightParenthesisKeyword_0_2_3__q(EObject semanticObject, ISynNavigable transition, List nodes) { + protected void emit_AtomicExpression_LeftParenthesisKeyword_3_0_a(EObject semanticObject, ISynNavigable transition, List nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: - * 'true'? + * '('+ * * This ambiguous syntax occurs at: - * (rule start) (ambiguity) (rule start) + * (rule start) (ambiguity) 'count' '{' body=Expression + * (rule start) (ambiguity) 'if' condition=Expression + * (rule start) (ambiguity) op=AggregationOp + * (rule start) (ambiguity) op=UnaryOp + * (rule start) (ambiguity) {BinaryExpression.left=} + * (rule start) (ambiguity) {Comparison.left=} + * (rule start) (ambiguity) {Conjunction.children+=} + * (rule start) (ambiguity) {Disjunction.children+=} + * (rule start) (ambiguity) {Switch.cases+=} */ - protected void emit_PatternBody_TrueKeyword_1_0_q(EObject semanticObject, ISynNavigable transition, List nodes) { + protected void emit_AtomicExpression_LeftParenthesisKeyword_3_0_p(EObject semanticObject, ISynNavigable transition, List nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: - * ('(' ')')? + * ';'? * * This ambiguous syntax occurs at: - * symbol=ModelSymbol (ambiguity) ':-' 'false' '.' (rule end) - * symbol=ModelSymbol (ambiguity) ':-' bodies+=PatternBody + * name=ID (ambiguity) (rule end) + * opposite=[NamedElement|QualifiedName] (ambiguity) (rule end) */ - protected void emit_Predicate___LeftParenthesisKeyword_2_0_RightParenthesisKeyword_2_2__q(EObject semanticObject, ISynNavigable transition, List nodes) { + protected void emit_MemberDefinition_SemicolonKeyword_5_q(EObject semanticObject, ISynNavigable transition, List nodes) { acceptNodes(transition, nodes); } 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.services; @@ -9,6 +9,9 @@ import java.util.List; import org.eclipse.xtext.Action; import org.eclipse.xtext.Alternatives; import org.eclipse.xtext.Assignment; +import org.eclipse.xtext.CrossReference; +import org.eclipse.xtext.EnumLiteralDeclaration; +import org.eclipse.xtext.EnumRule; import org.eclipse.xtext.Grammar; import org.eclipse.xtext.GrammarUtil; import org.eclipse.xtext.Group; @@ -17,6 +20,7 @@ import org.eclipse.xtext.ParserRule; import org.eclipse.xtext.RuleCall; import org.eclipse.xtext.TerminalRule; import org.eclipse.xtext.common.services.TerminalsGrammarAccess; +import org.eclipse.xtext.service.AbstractElementFinder.AbstractEnumRuleElementFinder; import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder; import org.eclipse.xtext.service.GrammarProvider; @@ -40,624 +44,1358 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } public class StatementElements extends AbstractParserRuleElementFinder { private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Statement"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cInterpretationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cPredicateParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final RuleCall cAssertionOrDefinitionParserRuleCall_0_0 = (RuleCall)cAlternatives_0.eContents().get(0); + private final RuleCall cPredicateDefinitionParserRuleCall_0_1 = (RuleCall)cAlternatives_0.eContents().get(1); + private final RuleCall cUnnamedErrorPrediateDefinitionParserRuleCall_0_2 = (RuleCall)cAlternatives_0.eContents().get(2); + private final RuleCall cDefaultDefinitionParserRuleCall_0_3 = (RuleCall)cAlternatives_0.eContents().get(3); + private final RuleCall cExternPredicateDefinitionParserRuleCall_0_4 = (RuleCall)cAlternatives_0.eContents().get(4); + private final RuleCall cMetricDefinitionParserRuleCall_0_5 = (RuleCall)cAlternatives_0.eContents().get(5); + private final RuleCall cExternMetricDefinitionParserRuleCall_0_6 = (RuleCall)cAlternatives_0.eContents().get(6); + private final RuleCall cClassDefinitionParserRuleCall_0_7 = (RuleCall)cAlternatives_0.eContents().get(7); + private final RuleCall cScopeDefinitionParserRuleCall_0_8 = (RuleCall)cAlternatives_0.eContents().get(8); + private final RuleCall cObjectiveDefinitionParserRuleCall_0_9 = (RuleCall)cAlternatives_0.eContents().get(9); + private final RuleCall cDOTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1); //Statement: - // Interpretation | Predicate; + // (AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | + // ExternPredicateDefinition | MetricDefinition | ExternMetricDefinition | ClassDefinition | ScopeDefinition | + // ObjectiveDefinition) DOT; @Override public ParserRule getRule() { return rule; } - //Interpretation | Predicate - public Alternatives getAlternatives() { return cAlternatives; } + //(AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | + //ExternPredicateDefinition | MetricDefinition | ExternMetricDefinition | ClassDefinition | ScopeDefinition | + //ObjectiveDefinition) DOT + public Group getGroup() { return cGroup; } + + //(AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | + //ExternPredicateDefinition | MetricDefinition | ExternMetricDefinition | ClassDefinition | ScopeDefinition | + //ObjectiveDefinition) + public Alternatives getAlternatives_0() { return cAlternatives_0; } + + //AssertionOrDefinition + public RuleCall getAssertionOrDefinitionParserRuleCall_0_0() { return cAssertionOrDefinitionParserRuleCall_0_0; } + + //PredicateDefinition + public RuleCall getPredicateDefinitionParserRuleCall_0_1() { return cPredicateDefinitionParserRuleCall_0_1; } + + //UnnamedErrorPrediateDefinition + public RuleCall getUnnamedErrorPrediateDefinitionParserRuleCall_0_2() { return cUnnamedErrorPrediateDefinitionParserRuleCall_0_2; } - //Interpretation - public RuleCall getInterpretationParserRuleCall_0() { return cInterpretationParserRuleCall_0; } + //DefaultDefinition + public RuleCall getDefaultDefinitionParserRuleCall_0_3() { return cDefaultDefinitionParserRuleCall_0_3; } - //Predicate - public RuleCall getPredicateParserRuleCall_1() { return cPredicateParserRuleCall_1; } + //ExternPredicateDefinition + public RuleCall getExternPredicateDefinitionParserRuleCall_0_4() { return cExternPredicateDefinitionParserRuleCall_0_4; } + + //MetricDefinition + public RuleCall getMetricDefinitionParserRuleCall_0_5() { return cMetricDefinitionParserRuleCall_0_5; } + + //ExternMetricDefinition + public RuleCall getExternMetricDefinitionParserRuleCall_0_6() { return cExternMetricDefinitionParserRuleCall_0_6; } + + //ClassDefinition + public RuleCall getClassDefinitionParserRuleCall_0_7() { return cClassDefinitionParserRuleCall_0_7; } + + //ScopeDefinition + public RuleCall getScopeDefinitionParserRuleCall_0_8() { return cScopeDefinitionParserRuleCall_0_8; } + + //ObjectiveDefinition + public RuleCall getObjectiveDefinitionParserRuleCall_0_9() { return cObjectiveDefinitionParserRuleCall_0_9; } + + //DOT + public RuleCall getDOTTerminalRuleCall_1() { return cDOTTerminalRuleCall_1; } } - public class REALLiteralElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.REALLiteral"); + public class AssertionOrDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AssertionOrDefinition"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1); - private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final RuleCall cINTTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3); + private final RuleCall cExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); + private final Action cAssertionBodyAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0); + private final Group cGroup_1_0_1 = (Group)cGroup_1_0.eContents().get(1); + private final Keyword cColonKeyword_1_0_1_0 = (Keyword)cGroup_1_0_1.eContents().get(0); + private final Assignment cRangeAssignment_1_0_1_1 = (Assignment)cGroup_1_0_1.eContents().get(1); + private final RuleCall cRangeExpressionParserRuleCall_1_0_1_1_0 = (RuleCall)cRangeAssignment_1_0_1_1.eContents().get(0); + private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); + private final Action cPredicateDefinitionHeadAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0); + private final Keyword cColonHyphenMinusKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); + private final Assignment cBodyAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); + private final RuleCall cBodyExpressionParserRuleCall_1_1_2_0 = (RuleCall)cBodyAssignment_1_1_2.eContents().get(0); + private final Group cGroup_1_2 = (Group)cAlternatives_1.eContents().get(2); + private final Action cMetricDefinitionHeadAction_1_2_0 = (Action)cGroup_1_2.eContents().get(0); + private final Keyword cEqualsSignKeyword_1_2_1 = (Keyword)cGroup_1_2.eContents().get(1); + private final Assignment cBodyAssignment_1_2_2 = (Assignment)cGroup_1_2.eContents().get(2); + private final RuleCall cBodyExpressionParserRuleCall_1_2_2_0 = (RuleCall)cBodyAssignment_1_2_2.eContents().get(0); + + //AssertionOrDefinition Statement: + // Expression ({Assertion.body=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" + // body=Expression | {MetricDefinition.head=current} "=" body=Expression); + @Override public ParserRule getRule() { return rule; } + + //Expression ({Assertion.body=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" body=Expression | + //{MetricDefinition.head=current} "=" body=Expression) + public Group getGroup() { return cGroup; } + + //Expression + public RuleCall getExpressionParserRuleCall_0() { return cExpressionParserRuleCall_0; } + + //({Assertion.body=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" body=Expression | + //{MetricDefinition.head=current} "=" body=Expression) + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //{Assertion.body=current} (":" range=Expression)? + public Group getGroup_1_0() { return cGroup_1_0; } + + //{Assertion.body=current} + public Action getAssertionBodyAction_1_0_0() { return cAssertionBodyAction_1_0_0; } + + //(":" range=Expression)? + public Group getGroup_1_0_1() { return cGroup_1_0_1; } + + //":" + public Keyword getColonKeyword_1_0_1_0() { return cColonKeyword_1_0_1_0; } + + //range=Expression + public Assignment getRangeAssignment_1_0_1_1() { return cRangeAssignment_1_0_1_1; } + + //Expression + public RuleCall getRangeExpressionParserRuleCall_1_0_1_1_0() { return cRangeExpressionParserRuleCall_1_0_1_1_0; } + + //{PredicateDefinition.head=current} ":-" body=Expression + public Group getGroup_1_1() { return cGroup_1_1; } + + //{PredicateDefinition.head=current} + public Action getPredicateDefinitionHeadAction_1_1_0() { return cPredicateDefinitionHeadAction_1_1_0; } - //REALLiteral ecore::EBigDecimal: - // '-'? INT '.' INT; + //":-" + public Keyword getColonHyphenMinusKeyword_1_1_1() { return cColonHyphenMinusKeyword_1_1_1; } + + //body=Expression + public Assignment getBodyAssignment_1_1_2() { return cBodyAssignment_1_1_2; } + + //Expression + public RuleCall getBodyExpressionParserRuleCall_1_1_2_0() { return cBodyExpressionParserRuleCall_1_1_2_0; } + + //{MetricDefinition.head=current} "=" body=Expression + public Group getGroup_1_2() { return cGroup_1_2; } + + //{MetricDefinition.head=current} + public Action getMetricDefinitionHeadAction_1_2_0() { return cMetricDefinitionHeadAction_1_2_0; } + + //"=" + public Keyword getEqualsSignKeyword_1_2_1() { return cEqualsSignKeyword_1_2_1; } + + //body=Expression + public Assignment getBodyAssignment_1_2_2() { return cBodyAssignment_1_2_2; } + + //Expression + public RuleCall getBodyExpressionParserRuleCall_1_2_2_0() { return cBodyExpressionParserRuleCall_1_2_2_0; } + } + public class PredicateDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PredicateDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0); + private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0); + private final Assignment cFunctionalAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0); + private final Keyword cFunctionalFunctionalKeyword_0_0_0_0 = (Keyword)cFunctionalAssignment_0_0_0.eContents().get(0); + private final Assignment cErrorAssignment_0_0_1 = (Assignment)cGroup_0_0.eContents().get(1); + private final Keyword cErrorErrorKeyword_0_0_1_0 = (Keyword)cErrorAssignment_0_0_1.eContents().get(0); + private final Group cGroup_0_1 = (Group)cAlternatives_0.eContents().get(1); + private final Assignment cErrorAssignment_0_1_0 = (Assignment)cGroup_0_1.eContents().get(0); + private final Keyword cErrorErrorKeyword_0_1_0_0 = (Keyword)cErrorAssignment_0_1_0.eContents().get(0); + private final Assignment cFunctionalAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1); + private final Keyword cFunctionalFunctionalKeyword_0_1_1_0 = (Keyword)cFunctionalAssignment_0_1_1.eContents().get(0); + private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0); + private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); + + //PredicateDefinition: + // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression; @Override public ParserRule getRule() { return rule; } - //'-'? INT '.' INT + //(functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression public Group getGroup() { return cGroup; } - //'-'? - public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; } + //(functional?="functional" error?="error"? | error?="error" functional?="functional"?) + public Alternatives getAlternatives_0() { return cAlternatives_0; } - //INT - public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; } + //functional?="functional" error?="error"? + public Group getGroup_0_0() { return cGroup_0_0; } - //'.' - public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; } + //functional?="functional" + public Assignment getFunctionalAssignment_0_0_0() { return cFunctionalAssignment_0_0_0; } - //INT - public RuleCall getINTTerminalRuleCall_3() { return cINTTerminalRuleCall_3; } + //"functional" + public Keyword getFunctionalFunctionalKeyword_0_0_0_0() { return cFunctionalFunctionalKeyword_0_0_0_0; } + + //error?="error"? + public Assignment getErrorAssignment_0_0_1() { return cErrorAssignment_0_0_1; } + + //"error" + public Keyword getErrorErrorKeyword_0_0_1_0() { return cErrorErrorKeyword_0_0_1_0; } + + //error?="error" functional?="functional"? + public Group getGroup_0_1() { return cGroup_0_1; } + + //error?="error" + public Assignment getErrorAssignment_0_1_0() { return cErrorAssignment_0_1_0; } + + //"error" + public Keyword getErrorErrorKeyword_0_1_0_0() { return cErrorErrorKeyword_0_1_0_0; } + + //functional?="functional"? + public Assignment getFunctionalAssignment_0_1_1() { return cFunctionalAssignment_0_1_1; } + + //"functional" + public Keyword getFunctionalFunctionalKeyword_0_1_1_0() { return cFunctionalFunctionalKeyword_0_1_1_0; } + + //head=Call + public Assignment getHeadAssignment_1() { return cHeadAssignment_1; } + + //Call + public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; } + + //":-" + public Keyword getColonHyphenMinusKeyword_2() { return cColonHyphenMinusKeyword_2; } + + //body=Expression + public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } + + //Expression + public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } } - public class INTLiteralElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.INTLiteral"); + public class UnnamedErrorPrediateDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnnamedErrorPrediateDefinition"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1); + private final Keyword cErrorKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cArgumentListAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cArgumentListArgumentListParserRuleCall_1_0 = (RuleCall)cArgumentListAssignment_1.eContents().get(0); + private final Keyword cColonHyphenMinusKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); + + //UnnamedErrorPrediateDefinition: + // "error" argumentList=ArgumentList ":-" body=Expression; + @Override public ParserRule getRule() { return rule; } + + //"error" argumentList=ArgumentList ":-" body=Expression + public Group getGroup() { return cGroup; } + + //"error" + public Keyword getErrorKeyword_0() { return cErrorKeyword_0; } + + //argumentList=ArgumentList + public Assignment getArgumentListAssignment_1() { return cArgumentListAssignment_1; } + + //ArgumentList + public RuleCall getArgumentListArgumentListParserRuleCall_1_0() { return cArgumentListArgumentListParserRuleCall_1_0; } - //INTLiteral ecore::EInt: - // '-'? INT; + //":-" + public Keyword getColonHyphenMinusKeyword_2() { return cColonHyphenMinusKeyword_2; } + + //body=Expression + public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } + + //Expression + public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } + } + public class DefaultDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DefaultDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cDefaultKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0); + private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cRangeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cRangeExpressionParserRuleCall_3_0 = (RuleCall)cRangeAssignment_3.eContents().get(0); + + //DefaultDefinition: + // "default" head=Call ":" range=Expression; @Override public ParserRule getRule() { return rule; } - //'-'? INT + //"default" head=Call ":" range=Expression public Group getGroup() { return cGroup; } - //'-'? - public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; } + //"default" + public Keyword getDefaultKeyword_0() { return cDefaultKeyword_0; } - //INT - public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; } + //head=Call + public Assignment getHeadAssignment_1() { return cHeadAssignment_1; } + + //Call + public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; } + + //":" + public Keyword getColonKeyword_2() { return cColonKeyword_2; } + + //range=Expression + public Assignment getRangeAssignment_3() { return cRangeAssignment_3; } + + //Expression + public RuleCall getRangeExpressionParserRuleCall_3_0() { return cRangeExpressionParserRuleCall_3_0; } } - public class BooleanValueElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BooleanValue"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); - private final Action cBooleanTrueAction_0_0 = (Action)cGroup_0.eContents().get(0); - private final Keyword cTrueKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); - private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); - private final Keyword cFalseKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); - private final Action cBooleanFalseAction_1_1 = (Action)cGroup_1.eContents().get(1); + public class ExternPredicateDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternPredicateDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cHeadCallParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0); + private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); - //BooleanValue: - // {BooleanTrue} 'true' | 'false' {BooleanFalse}; + //ExternPredicateDefinition: + // "extern" head=Call "."; @Override public ParserRule getRule() { return rule; } - //{BooleanTrue} 'true' | 'false' {BooleanFalse} - public Alternatives getAlternatives() { return cAlternatives; } + //"extern" head=Call "." + public Group getGroup() { return cGroup; } - //{BooleanTrue} 'true' - public Group getGroup_0() { return cGroup_0; } + //"extern" + public Keyword getExternKeyword_0() { return cExternKeyword_0; } - //{BooleanTrue} - public Action getBooleanTrueAction_0_0() { return cBooleanTrueAction_0_0; } + //head=Call + public Assignment getHeadAssignment_1() { return cHeadAssignment_1; } - //'true' - public Keyword getTrueKeyword_0_1() { return cTrueKeyword_0_1; } + //Call + public RuleCall getHeadCallParserRuleCall_1_0() { return cHeadCallParserRuleCall_1_0; } - //'false' {BooleanFalse} - public Group getGroup_1() { return cGroup_1; } + //"." + public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; } + } + public class MetricDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MetricDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cTypeMetricTypeEnumRuleCall_0_0 = (RuleCall)cTypeAssignment_0.eContents().get(0); + private final Assignment cHeadAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cHeadExpressionParserRuleCall_1_0 = (RuleCall)cHeadAssignment_1.eContents().get(0); + private final Keyword cEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cBodyAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cBodyExpressionParserRuleCall_3_0 = (RuleCall)cBodyAssignment_3.eContents().get(0); + + //MetricDefinition: + // type=MetricType head=Expression "=" body=Expression; + @Override public ParserRule getRule() { return rule; } + + //type=MetricType head=Expression "=" body=Expression + public Group getGroup() { return cGroup; } + + //type=MetricType + public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } - //'false' - public Keyword getFalseKeyword_1_0() { return cFalseKeyword_1_0; } + //MetricType + public RuleCall getTypeMetricTypeEnumRuleCall_0_0() { return cTypeMetricTypeEnumRuleCall_0_0; } - //{BooleanFalse} - public Action getBooleanFalseAction_1_1() { return cBooleanFalseAction_1_1; } + //head=Expression + public Assignment getHeadAssignment_1() { return cHeadAssignment_1; } + + //Expression + public RuleCall getHeadExpressionParserRuleCall_1_0() { return cHeadExpressionParserRuleCall_1_0; } + + //"=" + public Keyword getEqualsSignKeyword_2() { return cEqualsSignKeyword_2; } + + //body=Expression + public Assignment getBodyAssignment_3() { return cBodyAssignment_3; } + + //Expression + public RuleCall getBodyExpressionParserRuleCall_3_0() { return cBodyExpressionParserRuleCall_3_0; } } - public class TruthValueElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TruthValue"); + public class ExternMetricDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExternMetricDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cExternKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cTypeMetricTypeEnumRuleCall_1_0 = (RuleCall)cTypeAssignment_1.eContents().get(0); + private final Assignment cHeadAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cHeadCallParserRuleCall_2_0 = (RuleCall)cHeadAssignment_2.eContents().get(0); + + //ExternMetricDefinition: + // "extern" type=MetricType head=Call; + @Override public ParserRule getRule() { return rule; } + + //"extern" type=MetricType head=Call + public Group getGroup() { return cGroup; } + + //"extern" + public Keyword getExternKeyword_0() { return cExternKeyword_0; } + + //type=MetricType + public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } + + //MetricType + public RuleCall getTypeMetricTypeEnumRuleCall_1_0() { return cTypeMetricTypeEnumRuleCall_1_0; } + + //head=Call + public Assignment getHeadAssignment_2() { return cHeadAssignment_2; } + + //Call + public RuleCall getHeadCallParserRuleCall_2_0() { return cHeadCallParserRuleCall_2_0; } + } + public class ExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Expression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); - private final Action cTrueAction_0_0 = (Action)cGroup_0.eContents().get(0); - private final Keyword cTrueKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); - private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); - private final Action cFalseAction_1_0 = (Action)cGroup_1.eContents().get(0); - private final Keyword cFalseKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); - private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2); - private final Action cUnknownAction_2_0 = (Action)cGroup_2.eContents().get(0); - private final Keyword cUnknownKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1); - private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3); - private final Action cErrorAction_3_0 = (Action)cGroup_3.eContents().get(0); - private final Keyword cErrorKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1); + private final RuleCall cIfElseParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cDisjunctiveExpressionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - //TruthValue: - // {True} 'true' | {False} 'false' | {Unknown} 'unknown' | {Error} 'error'; + //Expression: + // IfElse | DisjunctiveExpression; @Override public ParserRule getRule() { return rule; } - //{True} 'true' | {False} 'false' | {Unknown} 'unknown' | {Error} 'error' + //IfElse | DisjunctiveExpression public Alternatives getAlternatives() { return cAlternatives; } - //{True} 'true' - public Group getGroup_0() { return cGroup_0; } + //IfElse + public RuleCall getIfElseParserRuleCall_0() { return cIfElseParserRuleCall_0; } - //{True} - public Action getTrueAction_0_0() { return cTrueAction_0_0; } + //DisjunctiveExpression + public RuleCall getDisjunctiveExpressionParserRuleCall_1() { return cDisjunctiveExpressionParserRuleCall_1; } + } + public class IfElseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IfElse"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cIfKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cConditionAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cConditionExpressionParserRuleCall_1_0 = (RuleCall)cConditionAssignment_1.eContents().get(0); + private final Keyword cThenKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cThenAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cThenExpressionParserRuleCall_3_0 = (RuleCall)cThenAssignment_3.eContents().get(0); + private final Keyword cElseKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Assignment cElseAssignment_5 = (Assignment)cGroup.eContents().get(5); + private final RuleCall cElseExpressionParserRuleCall_5_0 = (RuleCall)cElseAssignment_5.eContents().get(0); + + //IfElse: + // "if" condition=Expression "then" then=Expression "else" else=Expression; + @Override public ParserRule getRule() { return rule; } - //'true' - public Keyword getTrueKeyword_0_1() { return cTrueKeyword_0_1; } + //"if" condition=Expression "then" then=Expression "else" else=Expression + public Group getGroup() { return cGroup; } - //{False} 'false' - public Group getGroup_1() { return cGroup_1; } + //"if" + public Keyword getIfKeyword_0() { return cIfKeyword_0; } - //{False} - public Action getFalseAction_1_0() { return cFalseAction_1_0; } + //condition=Expression + public Assignment getConditionAssignment_1() { return cConditionAssignment_1; } - //'false' - public Keyword getFalseKeyword_1_1() { return cFalseKeyword_1_1; } + //Expression + public RuleCall getConditionExpressionParserRuleCall_1_0() { return cConditionExpressionParserRuleCall_1_0; } - //{Unknown} 'unknown' - public Group getGroup_2() { return cGroup_2; } + //"then" + public Keyword getThenKeyword_2() { return cThenKeyword_2; } - //{Unknown} - public Action getUnknownAction_2_0() { return cUnknownAction_2_0; } + //then=Expression + public Assignment getThenAssignment_3() { return cThenAssignment_3; } - //'unknown' - public Keyword getUnknownKeyword_2_1() { return cUnknownKeyword_2_1; } + //Expression + public RuleCall getThenExpressionParserRuleCall_3_0() { return cThenExpressionParserRuleCall_3_0; } - //{Error} 'error' - public Group getGroup_3() { return cGroup_3; } + //"else" + public Keyword getElseKeyword_4() { return cElseKeyword_4; } - //{Error} - public Action getErrorAction_3_0() { return cErrorAction_3_0; } + //else=Expression + public Assignment getElseAssignment_5() { return cElseAssignment_5; } - //'error' - public Keyword getErrorKeyword_3_1() { return cErrorKeyword_3_1; } + //Expression + public RuleCall getElseExpressionParserRuleCall_5_0() { return cElseExpressionParserRuleCall_5_0; } } - public class InterpretationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Interpretation"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cBasicInterpretationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cDefaultInterpretationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cCDInterpretationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - - ///////////////////// - //// Core grammar - // /////////////////// - //Interpretation: - // BasicInterpretation | DefaultInterpretation | CDInterpretation; + public class DisjunctiveExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DisjunctiveExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cConjunctiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); + private final Action cDisjunctionChildrenAction_1_0_0 = (Action)cGroup_1_0.eContents().get(0); + private final Group cGroup_1_0_1 = (Group)cGroup_1_0.eContents().get(1); + private final Keyword cSemicolonKeyword_1_0_1_0 = (Keyword)cGroup_1_0_1.eContents().get(0); + private final Assignment cChildrenAssignment_1_0_1_1 = (Assignment)cGroup_1_0_1.eContents().get(1); + private final RuleCall cChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0 = (RuleCall)cChildrenAssignment_1_0_1_1.eContents().get(0); + private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); + private final Action cCaseConditionAction_1_1_0 = (Action)cGroup_1_1.eContents().get(0); + private final Keyword cHyphenMinusGreaterThanSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); + private final Assignment cBodyAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); + private final RuleCall cBodyConjunctiveExpressionParserRuleCall_1_1_2_0 = (RuleCall)cBodyAssignment_1_1_2.eContents().get(0); + private final Action cSwitchCasesAction_1_1_3 = (Action)cGroup_1_1.eContents().get(3); + private final Group cGroup_1_1_4 = (Group)cGroup_1_1.eContents().get(4); + private final Keyword cSemicolonKeyword_1_1_4_0 = (Keyword)cGroup_1_1_4.eContents().get(0); + private final Assignment cCasesAssignment_1_1_4_1 = (Assignment)cGroup_1_1_4.eContents().get(1); + private final RuleCall cCasesCaseParserRuleCall_1_1_4_1_0 = (RuleCall)cCasesAssignment_1_1_4_1.eContents().get(0); + + //DisjunctiveExpression Expression: + // ConjunctiveExpression ({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ | + // {Case.condition=current} "->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)?; @Override public ParserRule getRule() { return rule; } - //BasicInterpretation | DefaultInterpretation | CDInterpretation - public Alternatives getAlternatives() { return cAlternatives; } + //ConjunctiveExpression ({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ | {Case.condition=current} + //"->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)? + public Group getGroup() { return cGroup; } - //BasicInterpretation - public RuleCall getBasicInterpretationParserRuleCall_0() { return cBasicInterpretationParserRuleCall_0; } + //ConjunctiveExpression + public RuleCall getConjunctiveExpressionParserRuleCall_0() { return cConjunctiveExpressionParserRuleCall_0; } - //DefaultInterpretation - public RuleCall getDefaultInterpretationParserRuleCall_1() { return cDefaultInterpretationParserRuleCall_1; } + //({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ | {Case.condition=current} "->" + //body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)? + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //{Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ + public Group getGroup_1_0() { return cGroup_1_0; } + + //{Disjunction.children+=current} + public Action getDisjunctionChildrenAction_1_0_0() { return cDisjunctionChildrenAction_1_0_0; } + + //(";" children+=ConjunctiveExpression)+ + public Group getGroup_1_0_1() { return cGroup_1_0_1; } + + //";" + public Keyword getSemicolonKeyword_1_0_1_0() { return cSemicolonKeyword_1_0_1_0; } + + //children+=ConjunctiveExpression + public Assignment getChildrenAssignment_1_0_1_1() { return cChildrenAssignment_1_0_1_1; } + + //ConjunctiveExpression + public RuleCall getChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0() { return cChildrenConjunctiveExpressionParserRuleCall_1_0_1_1_0; } + + //{Case.condition=current} "->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)* + public Group getGroup_1_1() { return cGroup_1_1; } + + //{Case.condition=current} + public Action getCaseConditionAction_1_1_0() { return cCaseConditionAction_1_1_0; } + + //"->" + public Keyword getHyphenMinusGreaterThanSignKeyword_1_1_1() { return cHyphenMinusGreaterThanSignKeyword_1_1_1; } + + //body=ConjunctiveExpression + public Assignment getBodyAssignment_1_1_2() { return cBodyAssignment_1_1_2; } + + //ConjunctiveExpression + public RuleCall getBodyConjunctiveExpressionParserRuleCall_1_1_2_0() { return cBodyConjunctiveExpressionParserRuleCall_1_1_2_0; } + + //{Switch.cases+=current} + public Action getSwitchCasesAction_1_1_3() { return cSwitchCasesAction_1_1_3; } + + //(";" cases+=Case)* + public Group getGroup_1_1_4() { return cGroup_1_1_4; } - //CDInterpretation - public RuleCall getCDInterpretationParserRuleCall_2() { return cCDInterpretationParserRuleCall_2; } + //";" + public Keyword getSemicolonKeyword_1_1_4_0() { return cSemicolonKeyword_1_1_4_0; } + + //cases+=Case + public Assignment getCasesAssignment_1_1_4_1() { return cCasesAssignment_1_1_4_1; } + + //Case + public RuleCall getCasesCaseParserRuleCall_1_1_4_1_0() { return cCasesCaseParserRuleCall_1_1_4_1_0; } } - public class BasicInterpretationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BasicInterpretation"); + public class CaseElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Case"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cSymbolAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final RuleCall cSymbolSymbolParserRuleCall_0_0 = (RuleCall)cSymbolAssignment_0.eContents().get(0); + private final Assignment cConditionAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cConditionConjunctiveExpressionParserRuleCall_0_0 = (RuleCall)cConditionAssignment_0.eContents().get(0); + private final Keyword cHyphenMinusGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cBodyAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cBodyConjunctiveExpressionParserRuleCall_2_0 = (RuleCall)cBodyAssignment_2.eContents().get(0); + + //Case: + // condition=ConjunctiveExpression "->" body=ConjunctiveExpression; + @Override public ParserRule getRule() { return rule; } + + //condition=ConjunctiveExpression "->" body=ConjunctiveExpression + public Group getGroup() { return cGroup; } + + //condition=ConjunctiveExpression + public Assignment getConditionAssignment_0() { return cConditionAssignment_0; } + + //ConjunctiveExpression + public RuleCall getConditionConjunctiveExpressionParserRuleCall_0_0() { return cConditionConjunctiveExpressionParserRuleCall_0_0; } + + //"->" + public Keyword getHyphenMinusGreaterThanSignKeyword_1() { return cHyphenMinusGreaterThanSignKeyword_1; } + + //body=ConjunctiveExpression + public Assignment getBodyAssignment_2() { return cBodyAssignment_2; } + + //ConjunctiveExpression + public RuleCall getBodyConjunctiveExpressionParserRuleCall_2_0() { return cBodyConjunctiveExpressionParserRuleCall_2_0; } + } + public class ConjunctiveExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ConjunctiveExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cComparisonExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); private final Group cGroup_1 = (Group)cGroup.eContents().get(1); - private final Keyword cLeftParenthesisKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final Action cConjunctionChildrenAction_1_0 = (Action)cGroup_1.eContents().get(0); private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1); - private final Assignment cObjectsAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0); - private final RuleCall cObjectsComplexObjectParserRuleCall_1_1_0_0 = (RuleCall)cObjectsAssignment_1_1_0.eContents().get(0); - private final Group cGroup_1_1_1 = (Group)cGroup_1_1.eContents().get(1); - private final Keyword cCommaKeyword_1_1_1_0 = (Keyword)cGroup_1_1_1.eContents().get(0); - private final Assignment cObjectsAssignment_1_1_1_1 = (Assignment)cGroup_1_1_1.eContents().get(1); - private final RuleCall cObjectsComplexObjectParserRuleCall_1_1_1_1_0 = (RuleCall)cObjectsAssignment_1_1_1_1.eContents().get(0); - private final Keyword cRightParenthesisKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2); - private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cValueAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cValueTruthValueParserRuleCall_3_0 = (RuleCall)cValueAssignment_3.eContents().get(0); + private final Keyword cCommaKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0); + private final Assignment cChildrenAssignment_1_1_1 = (Assignment)cGroup_1_1.eContents().get(1); + private final RuleCall cChildrenComparisonExpressionParserRuleCall_1_1_1_0 = (RuleCall)cChildrenAssignment_1_1_1.eContents().get(0); - //BasicInterpretation: - // symbol=Symbol ('(' (objects+=ComplexObject (',' objects+=ComplexObject)*)? ')')? ':' value=TruthValue; + //ConjunctiveExpression Expression: + // ComparisonExpression ({Conjunction.children+=current} ("," children+=ComparisonExpression)+)?; @Override public ParserRule getRule() { return rule; } - //symbol=Symbol ('(' (objects+=ComplexObject (',' objects+=ComplexObject)*)? ')')? ':' value=TruthValue + //ComparisonExpression ({Conjunction.children+=current} ("," children+=ComparisonExpression)+)? public Group getGroup() { return cGroup; } - //symbol=Symbol - public Assignment getSymbolAssignment_0() { return cSymbolAssignment_0; } - - //Symbol - public RuleCall getSymbolSymbolParserRuleCall_0_0() { return cSymbolSymbolParserRuleCall_0_0; } + //ComparisonExpression + public RuleCall getComparisonExpressionParserRuleCall_0() { return cComparisonExpressionParserRuleCall_0; } - //('(' (objects+=ComplexObject (',' objects+=ComplexObject)*)? ')')? + //({Conjunction.children+=current} ("," children+=ComparisonExpression)+)? public Group getGroup_1() { return cGroup_1; } - //'(' - public Keyword getLeftParenthesisKeyword_1_0() { return cLeftParenthesisKeyword_1_0; } + //{Conjunction.children+=current} + public Action getConjunctionChildrenAction_1_0() { return cConjunctionChildrenAction_1_0; } - //(objects+=ComplexObject (',' objects+=ComplexObject)*)? + //("," children+=ComparisonExpression)+ public Group getGroup_1_1() { return cGroup_1_1; } - //objects+=ComplexObject - public Assignment getObjectsAssignment_1_1_0() { return cObjectsAssignment_1_1_0; } + //"," + public Keyword getCommaKeyword_1_1_0() { return cCommaKeyword_1_1_0; } + + //children+=ComparisonExpression + public Assignment getChildrenAssignment_1_1_1() { return cChildrenAssignment_1_1_1; } - //ComplexObject - public RuleCall getObjectsComplexObjectParserRuleCall_1_1_0_0() { return cObjectsComplexObjectParserRuleCall_1_1_0_0; } + //ComparisonExpression + public RuleCall getChildrenComparisonExpressionParserRuleCall_1_1_1_0() { return cChildrenComparisonExpressionParserRuleCall_1_1_1_0; } + } + public class ComparisonExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cAdditiveExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cComparisonLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cOpComparisonOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightAdditiveExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //ComparisonExpression Expression: + // AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?; + @Override public ParserRule getRule() { return rule; } - //(',' objects+=ComplexObject)* - public Group getGroup_1_1_1() { return cGroup_1_1_1; } + //AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)? + public Group getGroup() { return cGroup; } - //',' - public Keyword getCommaKeyword_1_1_1_0() { return cCommaKeyword_1_1_1_0; } + //AdditiveExpression + public RuleCall getAdditiveExpressionParserRuleCall_0() { return cAdditiveExpressionParserRuleCall_0; } - //objects+=ComplexObject - public Assignment getObjectsAssignment_1_1_1_1() { return cObjectsAssignment_1_1_1_1; } + //({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)? + public Group getGroup_1() { return cGroup_1; } - //ComplexObject - public RuleCall getObjectsComplexObjectParserRuleCall_1_1_1_1_0() { return cObjectsComplexObjectParserRuleCall_1_1_1_1_0; } + //{Comparison.left=current} + public Action getComparisonLeftAction_1_0() { return cComparisonLeftAction_1_0; } - //')' - public Keyword getRightParenthesisKeyword_1_2() { return cRightParenthesisKeyword_1_2; } + //op=ComparisonOperator + public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } - //':' - public Keyword getColonKeyword_2() { return cColonKeyword_2; } + //ComparisonOperator + public RuleCall getOpComparisonOperatorEnumRuleCall_1_1_0() { return cOpComparisonOperatorEnumRuleCall_1_1_0; } - //value=TruthValue - public Assignment getValueAssignment_3() { return cValueAssignment_3; } + //right=AdditiveExpression + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } - //TruthValue - public RuleCall getValueTruthValueParserRuleCall_3_0() { return cValueTruthValueParserRuleCall_3_0; } + //AdditiveExpression + public RuleCall getRightAdditiveExpressionParserRuleCall_1_2_0() { return cRightAdditiveExpressionParserRuleCall_1_2_0; } } - public class SymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Symbol"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cModelSymbolParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cPartialitySymbolParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cDataSymbolParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + public class AdditiveExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cMultiplicativeExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cOpAdditiveBinaryOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightMultiplicativeExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //AdditiveExpression Expression: + // MultiplicativeExpression ({BinaryExpression.left=current} op=AdditiveBinaryOperator right=MultiplicativeExpression)*; + @Override public ParserRule getRule() { return rule; } + + //MultiplicativeExpression ({BinaryExpression.left=current} op=AdditiveBinaryOperator right=MultiplicativeExpression)* + public Group getGroup() { return cGroup; } + + //MultiplicativeExpression + public RuleCall getMultiplicativeExpressionParserRuleCall_0() { return cMultiplicativeExpressionParserRuleCall_0; } + + //({BinaryExpression.left=current} op=AdditiveBinaryOperator right=MultiplicativeExpression)* + public Group getGroup_1() { return cGroup_1; } + + //{BinaryExpression.left=current} + public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; } + + //op=AdditiveBinaryOperator + public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } + + //AdditiveBinaryOperator + public RuleCall getOpAdditiveBinaryOperatorEnumRuleCall_1_1_0() { return cOpAdditiveBinaryOperatorEnumRuleCall_1_1_0; } - //Symbol: - // ModelSymbol | PartialitySymbol | DataSymbol; + //right=MultiplicativeExpression + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //MultiplicativeExpression + public RuleCall getRightMultiplicativeExpressionParserRuleCall_1_2_0() { return cRightMultiplicativeExpressionParserRuleCall_1_2_0; } + } + public class MultiplicativeExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cExponentialExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightExponentialExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //MultiplicativeExpression Expression: + // ExponentialExpression ({BinaryExpression.left=current} op=MultiplicativeBinaryOperator right=ExponentialExpression)*; @Override public ParserRule getRule() { return rule; } - //ModelSymbol | PartialitySymbol | DataSymbol - public Alternatives getAlternatives() { return cAlternatives; } + //ExponentialExpression ({BinaryExpression.left=current} op=MultiplicativeBinaryOperator right=ExponentialExpression)* + public Group getGroup() { return cGroup; } + + //ExponentialExpression + public RuleCall getExponentialExpressionParserRuleCall_0() { return cExponentialExpressionParserRuleCall_0; } + + //({BinaryExpression.left=current} op=MultiplicativeBinaryOperator right=ExponentialExpression)* + public Group getGroup_1() { return cGroup_1; } + + //{BinaryExpression.left=current} + public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; } + + //op=MultiplicativeBinaryOperator + public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } - //ModelSymbol - public RuleCall getModelSymbolParserRuleCall_0() { return cModelSymbolParserRuleCall_0; } + //MultiplicativeBinaryOperator + public RuleCall getOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0() { return cOpMultiplicativeBinaryOperatorEnumRuleCall_1_1_0; } - //PartialitySymbol - public RuleCall getPartialitySymbolParserRuleCall_1() { return cPartialitySymbolParserRuleCall_1; } + //right=ExponentialExpression + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } - //DataSymbol - public RuleCall getDataSymbolParserRuleCall_2() { return cDataSymbolParserRuleCall_2; } + //ExponentialExpression + public RuleCall getRightExponentialExpressionParserRuleCall_1_2_0() { return cRightExponentialExpressionParserRuleCall_1_2_0; } } - public class ModelSymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ModelSymbol"); - private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); - private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + public class ExponentialExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialExpression"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final RuleCall cUnaryExpressionParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Action cBinaryExpressionLeftAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cOpExponentialOpEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); + private final Assignment cRightAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cRightExponentialExpressionParserRuleCall_1_2_0 = (RuleCall)cRightAssignment_1_2.eContents().get(0); + + //ExponentialExpression Expression: + // UnaryExpression ({BinaryExpression.left=current} op=ExponentialOp right=ExponentialExpression)?; + @Override public ParserRule getRule() { return rule; } - //ModelSymbol: - // name=ID; + //UnaryExpression ({BinaryExpression.left=current} op=ExponentialOp right=ExponentialExpression)? + public Group getGroup() { return cGroup; } + + //UnaryExpression + public RuleCall getUnaryExpressionParserRuleCall_0() { return cUnaryExpressionParserRuleCall_0; } + + //({BinaryExpression.left=current} op=ExponentialOp right=ExponentialExpression)? + public Group getGroup_1() { return cGroup_1; } + + //{BinaryExpression.left=current} + public Action getBinaryExpressionLeftAction_1_0() { return cBinaryExpressionLeftAction_1_0; } + + //op=ExponentialOp + public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } + + //ExponentialOp + public RuleCall getOpExponentialOpEnumRuleCall_1_1_0() { return cOpExponentialOpEnumRuleCall_1_1_0; } + + //right=ExponentialExpression + public Assignment getRightAssignment_1_2() { return cRightAssignment_1_2; } + + //ExponentialExpression + public RuleCall getRightExponentialExpressionParserRuleCall_1_2_0() { return cRightExponentialExpressionParserRuleCall_1_2_0; } + } + public class UnaryExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryExpression"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cAggregationExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); + private final Action cUnaryExpressionAction_1_0 = (Action)cGroup_1.eContents().get(0); + private final Assignment cOpAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); + private final RuleCall cOpUnaryOpEnumRuleCall_1_1_0 = (RuleCall)cOpAssignment_1_1.eContents().get(0); + private final Assignment cBodyAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); + private final RuleCall cBodyAggregationExpressionParserRuleCall_1_2_0 = (RuleCall)cBodyAssignment_1_2.eContents().get(0); + + //UnaryExpression Expression: + // AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression; @Override public ParserRule getRule() { return rule; } - //name=ID - public Assignment getNameAssignment() { return cNameAssignment; } + //AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression + public Alternatives getAlternatives() { return cAlternatives; } - //ID - public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + //AggregationExpression + public RuleCall getAggregationExpressionParserRuleCall_0() { return cAggregationExpressionParserRuleCall_0; } + + //{UnaryExpression} op=UnaryOp body=AggregationExpression + public Group getGroup_1() { return cGroup_1; } + + //{UnaryExpression} + public Action getUnaryExpressionAction_1_0() { return cUnaryExpressionAction_1_0; } + + //op=UnaryOp + public Assignment getOpAssignment_1_1() { return cOpAssignment_1_1; } + + //UnaryOp + public RuleCall getOpUnaryOpEnumRuleCall_1_1_0() { return cOpUnaryOpEnumRuleCall_1_1_0; } + + //body=AggregationExpression + public Assignment getBodyAssignment_1_2() { return cBodyAssignment_1_2; } + + //AggregationExpression + public RuleCall getBodyAggregationExpressionParserRuleCall_1_2_0() { return cBodyAggregationExpressionParserRuleCall_1_2_0; } } - public class PartialitySymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PartialitySymbol"); + public class AggregationExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AggregationExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cExistSymbolParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cEqualsSymbolParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cAtomicExpressionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cCountParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cAggregationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - //PartialitySymbol: - // ExistSymbol | EqualsSymbol; + //AggregationExpression Expression: + // AtomicExpression | Count | Aggregation; @Override public ParserRule getRule() { return rule; } - //ExistSymbol | EqualsSymbol + //AtomicExpression | Count | Aggregation public Alternatives getAlternatives() { return cAlternatives; } - //ExistSymbol - public RuleCall getExistSymbolParserRuleCall_0() { return cExistSymbolParserRuleCall_0; } + //AtomicExpression + public RuleCall getAtomicExpressionParserRuleCall_0() { return cAtomicExpressionParserRuleCall_0; } - //EqualsSymbol - public RuleCall getEqualsSymbolParserRuleCall_1() { return cEqualsSymbolParserRuleCall_1; } + //Count + public RuleCall getCountParserRuleCall_1() { return cCountParserRuleCall_1; } + + //Aggregation + public RuleCall getAggregationParserRuleCall_2() { return cAggregationParserRuleCall_2; } } - public class ExistSymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExistSymbol"); + public class CountElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Count"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cExistsKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Action cExistSymbolAction_1 = (Action)cGroup.eContents().get(1); - - //ExistSymbol: - // 'exists' {ExistSymbol}; + private final Keyword cCountKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cBodyAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cBodyExpressionParserRuleCall_2_0 = (RuleCall)cBodyAssignment_2.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3); + + //Count: + // "count" "{" body=Expression "}"; @Override public ParserRule getRule() { return rule; } - //'exists' {ExistSymbol} + //"count" "{" body=Expression "}" public Group getGroup() { return cGroup; } - //'exists' - public Keyword getExistsKeyword_0() { return cExistsKeyword_0; } + //"count" + public Keyword getCountKeyword_0() { return cCountKeyword_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; } - //{ExistSymbol} - public Action getExistSymbolAction_1() { return cExistSymbolAction_1; } + //body=Expression + public Assignment getBodyAssignment_2() { return cBodyAssignment_2; } + + //Expression + public RuleCall getBodyExpressionParserRuleCall_2_0() { return cBodyExpressionParserRuleCall_2_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; } } - public class EqualsSymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EqualsSymbol"); + public class AggregationElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Aggregation"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cEqualsKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Action cEqualsSymbolAction_1 = (Action)cGroup.eContents().get(1); - - //EqualsSymbol: - // 'equals' {EqualsSymbol}; + private final Assignment cOpAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cOpAggregationOpEnumRuleCall_0_0 = (RuleCall)cOpAssignment_0.eContents().get(0); + private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cBodyAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cBodyExpressionParserRuleCall_2_0 = (RuleCall)cBodyAssignment_2.eContents().get(0); + private final Keyword cVerticalLineKeyword_3 = (Keyword)cGroup.eContents().get(3); + private final Assignment cConditionAssignment_4 = (Assignment)cGroup.eContents().get(4); + private final RuleCall cConditionExpressionParserRuleCall_4_0 = (RuleCall)cConditionAssignment_4.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //Aggregation: + // op=AggregationOp "{" body=Expression "|" condition=Expression "}"; @Override public ParserRule getRule() { return rule; } - //'equals' {EqualsSymbol} + //op=AggregationOp "{" body=Expression "|" condition=Expression "}" public Group getGroup() { return cGroup; } - //'equals' - public Keyword getEqualsKeyword_0() { return cEqualsKeyword_0; } + //op=AggregationOp + public Assignment getOpAssignment_0() { return cOpAssignment_0; } + + //AggregationOp + public RuleCall getOpAggregationOpEnumRuleCall_0_0() { return cOpAggregationOpEnumRuleCall_0_0; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; } + + //body=Expression + public Assignment getBodyAssignment_2() { return cBodyAssignment_2; } + + //Expression + public RuleCall getBodyExpressionParserRuleCall_2_0() { return cBodyExpressionParserRuleCall_2_0; } + + //"|" + public Keyword getVerticalLineKeyword_3() { return cVerticalLineKeyword_3; } - //{EqualsSymbol} - public Action getEqualsSymbolAction_1() { return cEqualsSymbolAction_1; } + //condition=Expression + public Assignment getConditionAssignment_4() { return cConditionAssignment_4; } + + //Expression + public RuleCall getConditionExpressionParserRuleCall_4_0() { return cConditionExpressionParserRuleCall_4_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; } } - public class DataSymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DataSymbol"); + public class AtomicExpressionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AtomicExpression"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cBooleanSymbolParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cIntegerSymbolParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cRealSymbolParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - private final RuleCall cStringSymbolParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); + private final RuleCall cReferenceParserRuleCall_0_0 = (RuleCall)cGroup_0.eContents().get(0); + private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1); + private final Action cCallFunctorAction_0_1_0 = (Action)cGroup_0_1.eContents().get(0); + private final Assignment cArgumentListAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1); + private final RuleCall cArgumentListArgumentListParserRuleCall_0_1_1_0 = (RuleCall)cArgumentListAssignment_0_1_1.eContents().get(0); + private final RuleCall cIntervalParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cLiteralParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final Group cGroup_3 = (Group)cAlternatives.eContents().get(3); + private final Keyword cLeftParenthesisKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final RuleCall cExpressionParserRuleCall_3_1 = (RuleCall)cGroup_3.eContents().get(1); + private final Keyword cRightParenthesisKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2); - //DataSymbol: - // BooleanSymbol | IntegerSymbol | RealSymbol | StringSymbol; + //AtomicExpression Expression: + // Reference ({Call.functor=current} -> argumentList=ArgumentList)? | Interval | Literal | "(" Expression ")"; @Override public ParserRule getRule() { return rule; } - //BooleanSymbol | IntegerSymbol | RealSymbol | StringSymbol + //Reference ({Call.functor=current} -> argumentList=ArgumentList)? | Interval | Literal | "(" Expression ")" public Alternatives getAlternatives() { return cAlternatives; } - //BooleanSymbol - public RuleCall getBooleanSymbolParserRuleCall_0() { return cBooleanSymbolParserRuleCall_0; } + //Reference ({Call.functor=current} -> argumentList=ArgumentList)? + public Group getGroup_0() { return cGroup_0; } + + //Reference + public RuleCall getReferenceParserRuleCall_0_0() { return cReferenceParserRuleCall_0_0; } + + //({Call.functor=current} -> argumentList=ArgumentList)? + public Group getGroup_0_1() { return cGroup_0_1; } - //IntegerSymbol - public RuleCall getIntegerSymbolParserRuleCall_1() { return cIntegerSymbolParserRuleCall_1; } + //{Call.functor=current} + public Action getCallFunctorAction_0_1_0() { return cCallFunctorAction_0_1_0; } - //RealSymbol - public RuleCall getRealSymbolParserRuleCall_2() { return cRealSymbolParserRuleCall_2; } + //-> argumentList=ArgumentList + public Assignment getArgumentListAssignment_0_1_1() { return cArgumentListAssignment_0_1_1; } - //StringSymbol - public RuleCall getStringSymbolParserRuleCall_3() { return cStringSymbolParserRuleCall_3; } + //ArgumentList + public RuleCall getArgumentListArgumentListParserRuleCall_0_1_1_0() { return cArgumentListArgumentListParserRuleCall_0_1_1_0; } + + //Interval + public RuleCall getIntervalParserRuleCall_1() { return cIntervalParserRuleCall_1; } + + //Literal + public RuleCall getLiteralParserRuleCall_2() { return cLiteralParserRuleCall_2; } + + //"(" Expression ")" + public Group getGroup_3() { return cGroup_3; } + + //"(" + public Keyword getLeftParenthesisKeyword_3_0() { return cLeftParenthesisKeyword_3_0; } + + //Expression + public RuleCall getExpressionParserRuleCall_3_1() { return cExpressionParserRuleCall_3_1; } + + //")" + public Keyword getRightParenthesisKeyword_3_2() { return cRightParenthesisKeyword_3_2; } } - public class BooleanSymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BooleanSymbol"); + public class CallElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Call"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cBoolKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Action cBooleanSymbolAction_1 = (Action)cGroup.eContents().get(1); - - //BooleanSymbol: - // 'bool' {BooleanSymbol}; + private final Assignment cFunctorAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cFunctorReferenceParserRuleCall_0_0 = (RuleCall)cFunctorAssignment_0.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Assignment cTransitiveClosureAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0); + private final RuleCall cTransitiveClosureSTARTerminalRuleCall_1_0_0 = (RuleCall)cTransitiveClosureAssignment_1_0.eContents().get(0); + private final Assignment cReflexiveTransitiveClosureAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1); + private final RuleCall cReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0 = (RuleCall)cReflexiveTransitiveClosureAssignment_1_1.eContents().get(0); + private final Assignment cArgumentListAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cArgumentListArgumentListParserRuleCall_2_0 = (RuleCall)cArgumentListAssignment_2.eContents().get(0); + + //Call: + // functor=Reference (transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)? argumentList=ArgumentList; @Override public ParserRule getRule() { return rule; } - //'bool' {BooleanSymbol} + //functor=Reference (transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)? argumentList=ArgumentList public Group getGroup() { return cGroup; } - //'bool' - public Keyword getBoolKeyword_0() { return cBoolKeyword_0; } + //functor=Reference + public Assignment getFunctorAssignment_0() { return cFunctorAssignment_0; } + + //Reference + public RuleCall getFunctorReferenceParserRuleCall_0_0() { return cFunctorReferenceParserRuleCall_0_0; } + + //(transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)? + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //transitiveClosure?=STAR + public Assignment getTransitiveClosureAssignment_1_0() { return cTransitiveClosureAssignment_1_0; } + + //STAR + public RuleCall getTransitiveClosureSTARTerminalRuleCall_1_0_0() { return cTransitiveClosureSTARTerminalRuleCall_1_0_0; } - //{BooleanSymbol} - public Action getBooleanSymbolAction_1() { return cBooleanSymbolAction_1; } + //reflexiveTransitiveClosure?=PLUS + public Assignment getReflexiveTransitiveClosureAssignment_1_1() { return cReflexiveTransitiveClosureAssignment_1_1; } + + //PLUS + public RuleCall getReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0() { return cReflexiveTransitiveClosurePLUSTerminalRuleCall_1_1_0; } + + //argumentList=ArgumentList + public Assignment getArgumentListAssignment_2() { return cArgumentListAssignment_2; } + + //ArgumentList + public RuleCall getArgumentListArgumentListParserRuleCall_2_0() { return cArgumentListArgumentListParserRuleCall_2_0; } } - public class IntegerSymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IntegerSymbol"); + public class ArgumentListElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ArgumentList"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cIntKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Action cIntegerSymbolAction_1 = (Action)cGroup.eContents().get(1); + private final Action cArgumentListAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cLeftParenthesisKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Group cGroup_2 = (Group)cGroup.eContents().get(2); + private final Assignment cArgumentsAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0); + private final RuleCall cArgumentsArgumentParserRuleCall_2_0_0 = (RuleCall)cArgumentsAssignment_2_0.eContents().get(0); + private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); + private final Keyword cCommaKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0); + private final Assignment cArgumentsAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1); + private final RuleCall cArgumentsArgumentParserRuleCall_2_1_1_0 = (RuleCall)cArgumentsAssignment_2_1_1.eContents().get(0); + private final Keyword cRightParenthesisKeyword_3 = (Keyword)cGroup.eContents().get(3); - //IntegerSymbol: - // 'int' {IntegerSymbol}; + //ArgumentList: + // {ArgumentList} "(" (arguments+=Argument ("," arguments+=Argument)*)? ")"; @Override public ParserRule getRule() { return rule; } - //'int' {IntegerSymbol} + //{ArgumentList} "(" (arguments+=Argument ("," arguments+=Argument)*)? ")" public Group getGroup() { return cGroup; } - //'int' - public Keyword getIntKeyword_0() { return cIntKeyword_0; } + //{ArgumentList} + public Action getArgumentListAction_0() { return cArgumentListAction_0; } + + //"(" + public Keyword getLeftParenthesisKeyword_1() { return cLeftParenthesisKeyword_1; } + + //(arguments+=Argument ("," arguments+=Argument)*)? + public Group getGroup_2() { return cGroup_2; } + + //arguments+=Argument + public Assignment getArgumentsAssignment_2_0() { return cArgumentsAssignment_2_0; } + + //Argument + public RuleCall getArgumentsArgumentParserRuleCall_2_0_0() { return cArgumentsArgumentParserRuleCall_2_0_0; } + + //("," arguments+=Argument)* + public Group getGroup_2_1() { return cGroup_2_1; } + + //"," + public Keyword getCommaKeyword_2_1_0() { return cCommaKeyword_2_1_0; } + + //arguments+=Argument + public Assignment getArgumentsAssignment_2_1_1() { return cArgumentsAssignment_2_1_1; } + + //Argument + public RuleCall getArgumentsArgumentParserRuleCall_2_1_1_0() { return cArgumentsArgumentParserRuleCall_2_1_1_0; } + + //")" + public Keyword getRightParenthesisKeyword_3() { return cRightParenthesisKeyword_3; } + } + public class ArgumentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Argument"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cExpressionArgumentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cStarArgumentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cTypedArgumentParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cTypedStarArgumentParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + + //Argument: + // ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument; + @Override public ParserRule getRule() { return rule; } + + //ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument + public Alternatives getAlternatives() { return cAlternatives; } + + //ExpressionArgument + public RuleCall getExpressionArgumentParserRuleCall_0() { return cExpressionArgumentParserRuleCall_0; } + + //StarArgument + public RuleCall getStarArgumentParserRuleCall_1() { return cStarArgumentParserRuleCall_1; } + + //TypedArgument + public RuleCall getTypedArgumentParserRuleCall_2() { return cTypedArgumentParserRuleCall_2; } + + //TypedStarArgument + public RuleCall getTypedStarArgumentParserRuleCall_3() { return cTypedStarArgumentParserRuleCall_3; } + } + public class ExpressionArgumentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExpressionArgument"); + private final Assignment cBodyAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cBodyComparisonExpressionParserRuleCall_0 = (RuleCall)cBodyAssignment.eContents().get(0); + + //ExpressionArgument: + // body=ComparisonExpression; + @Override public ParserRule getRule() { return rule; } + + //body=ComparisonExpression + public Assignment getBodyAssignment() { return cBodyAssignment; } - //{IntegerSymbol} - public Action getIntegerSymbolAction_1() { return cIntegerSymbolAction_1; } + //ComparisonExpression + public RuleCall getBodyComparisonExpressionParserRuleCall_0() { return cBodyComparisonExpressionParserRuleCall_0; } } - public class RealSymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.RealSymbol"); + public class StarArgumentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StarArgument"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cRealKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Action cRealSymbolAction_1 = (Action)cGroup.eContents().get(1); + private final Action cStarArgumentAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1); - //RealSymbol: - // 'real' {RealSymbol}; + //StarArgument: + // {StarArgument} "*"; @Override public ParserRule getRule() { return rule; } - //'real' {RealSymbol} + //{StarArgument} "*" public Group getGroup() { return cGroup; } - //'real' - public Keyword getRealKeyword_0() { return cRealKeyword_0; } + //{StarArgument} + public Action getStarArgumentAction_0() { return cStarArgumentAction_0; } - //{RealSymbol} - public Action getRealSymbolAction_1() { return cRealSymbolAction_1; } + //"*" + public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } } - public class StringSymbolElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StringSymbol"); + public class TypedArgumentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedArgument"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cStringKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Action cStringSymbolAction_1 = (Action)cGroup.eContents().get(1); - - //StringSymbol: - // 'string' {StringSymbol}; + private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); + private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1); + private final Assignment cVariableAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cVariableNamedElementCrossReference_1_0 = (CrossReference)cVariableAssignment_1.eContents().get(0); + private final RuleCall cVariableNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cVariableNamedElementCrossReference_1_0.eContents().get(1); + + //TypedArgument: + // type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]; @Override public ParserRule getRule() { return rule; } - //'string' {StringSymbol} + //type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName] public Group getGroup() { return cGroup; } - //'string' - public Keyword getStringKeyword_0() { return cStringKeyword_0; } + //type=[NamedElement|QualifiedName] + public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } + + //[NamedElement|QualifiedName] + public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; } - //{StringSymbol} - public Action getStringSymbolAction_1() { return cStringSymbolAction_1; } + //QualifiedName + public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } + + //variable=[NamedElement|QualifiedName] + public Assignment getVariableAssignment_1() { return cVariableAssignment_1; } + + //[NamedElement|QualifiedName] + public CrossReference getVariableNamedElementCrossReference_1_0() { return cVariableNamedElementCrossReference_1_0; } + + //QualifiedName + public RuleCall getVariableNamedElementQualifiedNameParserRuleCall_1_0_1() { return cVariableNamedElementQualifiedNameParserRuleCall_1_0_1; } } - public class ComplexObjectElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ComplexObject"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cObjectParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cAllInstancesParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cAllObjectsParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + public class TypedStarArgumentElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.TypedStarArgument"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final CrossReference cTypeNamedElementCrossReference_0_0 = (CrossReference)cTypeAssignment_0.eContents().get(0); + private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_0_0.eContents().get(1); + private final Keyword cAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1); - //ComplexObject: - // Object | AllInstances | AllObjects; + //TypedStarArgument: + // type=[NamedElement|QualifiedName] "*"; @Override public ParserRule getRule() { return rule; } - //Object | AllInstances | AllObjects - public Alternatives getAlternatives() { return cAlternatives; } + //type=[NamedElement|QualifiedName] "*" + public Group getGroup() { return cGroup; } - //Object - public RuleCall getObjectParserRuleCall_0() { return cObjectParserRuleCall_0; } + //type=[NamedElement|QualifiedName] + public Assignment getTypeAssignment_0() { return cTypeAssignment_0; } - //AllInstances - public RuleCall getAllInstancesParserRuleCall_1() { return cAllInstancesParserRuleCall_1; } + //[NamedElement|QualifiedName] + public CrossReference getTypeNamedElementCrossReference_0_0() { return cTypeNamedElementCrossReference_0_0; } - //AllObjects - public RuleCall getAllObjectsParserRuleCall_2() { return cAllObjectsParserRuleCall_2; } + //QualifiedName + public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_0_0_1; } + + //"*" + public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } } - public class ObjectElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Object"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cNamedObjectParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cUnnamedObjectParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cDataObjectParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + public class ReferenceElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Reference"); + private final Assignment cReferredAssignment = (Assignment)rule.eContents().get(1); + private final CrossReference cReferredNamedElementCrossReference_0 = (CrossReference)cReferredAssignment.eContents().get(0); + private final RuleCall cReferredNamedElementQualifiedNameParserRuleCall_0_1 = (RuleCall)cReferredNamedElementCrossReference_0.eContents().get(1); - //Object: - // NamedObject | UnnamedObject | DataObject; + //Reference: + // referred=[NamedElement|QualifiedName]; @Override public ParserRule getRule() { return rule; } - //NamedObject | UnnamedObject | DataObject - public Alternatives getAlternatives() { return cAlternatives; } - - //NamedObject - public RuleCall getNamedObjectParserRuleCall_0() { return cNamedObjectParserRuleCall_0; } + //referred=[NamedElement|QualifiedName] + public Assignment getReferredAssignment() { return cReferredAssignment; } - //UnnamedObject - public RuleCall getUnnamedObjectParserRuleCall_1() { return cUnnamedObjectParserRuleCall_1; } + //[NamedElement|QualifiedName] + public CrossReference getReferredNamedElementCrossReference_0() { return cReferredNamedElementCrossReference_0; } - //DataObject - public RuleCall getDataObjectParserRuleCall_2() { return cDataObjectParserRuleCall_2; } + //QualifiedName + public RuleCall getReferredNamedElementQualifiedNameParserRuleCall_0_1() { return cReferredNamedElementQualifiedNameParserRuleCall_0_1; } } - public class NamedObjectElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NamedObject"); + public class IntervalElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Interval"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cApostropheKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0); - private final Keyword cApostropheKeyword_2 = (Keyword)cGroup.eContents().get(2); - - //NamedObject: - // "'" name=ID "'"; + private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cLowerBoundExpressionParserRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0); + private final Keyword cFullStopFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cUpperBoundExpressionParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); + + //Interval: + // "[" lowerBound=Expression ".." upperBound=Expression "]"; @Override public ParserRule getRule() { return rule; } - //"'" name=ID "'" + //"[" lowerBound=Expression ".." upperBound=Expression "]" public Group getGroup() { return cGroup; } - //"'" - public Keyword getApostropheKeyword_0() { return cApostropheKeyword_0; } + //"[" + public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; } - //name=ID - public Assignment getNameAssignment_1() { return cNameAssignment_1; } + //lowerBound=Expression + public Assignment getLowerBoundAssignment_1() { return cLowerBoundAssignment_1; } - //ID - public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; } + //Expression + public RuleCall getLowerBoundExpressionParserRuleCall_1_0() { return cLowerBoundExpressionParserRuleCall_1_0; } - //"'" - public Keyword getApostropheKeyword_2() { return cApostropheKeyword_2; } - } - public class UnnamedObjectElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnnamedObject"); - private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); - private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); + //".." + public Keyword getFullStopFullStopKeyword_2() { return cFullStopFullStopKeyword_2; } - //UnnamedObject: - // name=ID; - @Override public ParserRule getRule() { return rule; } + //upperBound=Expression + public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; } - //name=ID - public Assignment getNameAssignment() { return cNameAssignment; } + //Expression + public RuleCall getUpperBoundExpressionParserRuleCall_3_0() { return cUpperBoundExpressionParserRuleCall_3_0; } - //ID - public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } + //"]" + public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; } } - public class DataObjectElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DataObject"); + public class LiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cBooleanObjectParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cIntObjectParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cRealObjectParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - private final RuleCall cStringObjectParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cLogicLiteralParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cNumericLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cInfinityLiteralParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + private final RuleCall cEmptyIntervalLiteralParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3); + private final RuleCall cStringLiteralParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4); - //DataObject: - // BooleanObject | IntObject | RealObject | StringObject; + //Literal: + // LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral; @Override public ParserRule getRule() { return rule; } - //BooleanObject | IntObject | RealObject | StringObject + //LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral public Alternatives getAlternatives() { return cAlternatives; } - //BooleanObject - public RuleCall getBooleanObjectParserRuleCall_0() { return cBooleanObjectParserRuleCall_0; } + //LogicLiteral + public RuleCall getLogicLiteralParserRuleCall_0() { return cLogicLiteralParserRuleCall_0; } + + //NumericLiteral + public RuleCall getNumericLiteralParserRuleCall_1() { return cNumericLiteralParserRuleCall_1; } - //IntObject - public RuleCall getIntObjectParserRuleCall_1() { return cIntObjectParserRuleCall_1; } + //InfinityLiteral + public RuleCall getInfinityLiteralParserRuleCall_2() { return cInfinityLiteralParserRuleCall_2; } - //RealObject - public RuleCall getRealObjectParserRuleCall_2() { return cRealObjectParserRuleCall_2; } + //EmptyIntervalLiteral + public RuleCall getEmptyIntervalLiteralParserRuleCall_3() { return cEmptyIntervalLiteralParserRuleCall_3; } - //StringObject - public RuleCall getStringObjectParserRuleCall_3() { return cStringObjectParserRuleCall_3; } + //StringLiteral + public RuleCall getStringLiteralParserRuleCall_4() { return cStringLiteralParserRuleCall_4; } } - public class BooleanObjectElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BooleanObject"); + public class LogicLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicLiteral"); private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); - private final RuleCall cValueBooleanValueParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); + private final RuleCall cValueLogicValueEnumRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); - //BooleanObject: - // value=BooleanValue; + //LogicLiteral: + // value=LogicValue; @Override public ParserRule getRule() { return rule; } - //value=BooleanValue + //value=LogicValue public Assignment getValueAssignment() { return cValueAssignment; } - //BooleanValue - public RuleCall getValueBooleanValueParserRuleCall_0() { return cValueBooleanValueParserRuleCall_0; } + //LogicValue + public RuleCall getValueLogicValueEnumRuleCall_0() { return cValueLogicValueEnumRuleCall_0; } } - public class IntObjectElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.IntObject"); + public class NumericLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NumericLiteral"); private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); - private final RuleCall cValueINTLiteralParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); + private final RuleCall cValueRealParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); - //IntObject: - // value=INTLiteral; + //NumericLiteral: + // value=Real; @Override public ParserRule getRule() { return rule; } - //value=INTLiteral + //value=Real public Assignment getValueAssignment() { return cValueAssignment; } - //INTLiteral - public RuleCall getValueINTLiteralParserRuleCall_0() { return cValueINTLiteralParserRuleCall_0; } + //Real + public RuleCall getValueRealParserRuleCall_0() { return cValueRealParserRuleCall_0; } } - public class RealObjectElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.RealObject"); - private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); - private final RuleCall cValueREALLiteralParserRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); + public class InfinityLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.InfinityLiteral"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cInfinityLiteralAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cInfKeyword_1 = (Keyword)cGroup.eContents().get(1); - //RealObject: - // value=REALLiteral; + //InfinityLiteral: + // {InfinityLiteral} "inf"; @Override public ParserRule getRule() { return rule; } - //value=REALLiteral - public Assignment getValueAssignment() { return cValueAssignment; } + //{InfinityLiteral} "inf" + public Group getGroup() { return cGroup; } - //REALLiteral - public RuleCall getValueREALLiteralParserRuleCall_0() { return cValueREALLiteralParserRuleCall_0; } + //{InfinityLiteral} + public Action getInfinityLiteralAction_0() { return cInfinityLiteralAction_0; } + + //"inf" + public Keyword getInfKeyword_1() { return cInfKeyword_1; } } - public class StringObjectElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StringObject"); + public class EmptyIntervalLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EmptyIntervalLiteral"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cEmptyIntervalLiteralAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cEmptyKeyword_1 = (Keyword)cGroup.eContents().get(1); + + //EmptyIntervalLiteral: + // {EmptyIntervalLiteral} "empty"; + @Override public ParserRule getRule() { return rule; } + + //{EmptyIntervalLiteral} "empty" + public Group getGroup() { return cGroup; } + + //{EmptyIntervalLiteral} + public Action getEmptyIntervalLiteralAction_0() { return cEmptyIntervalLiteralAction_0; } + + //"empty" + public Keyword getEmptyKeyword_1() { return cEmptyKeyword_1; } + } + public class StringLiteralElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.StringLiteral"); private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1); private final RuleCall cValueSTRINGTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0); - //StringObject: + //StringLiteral: // value=STRING; @Override public ParserRule getRule() { return rule; } @@ -667,817 +1405,1189 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { //STRING public RuleCall getValueSTRINGTerminalRuleCall_0() { return cValueSTRINGTerminalRuleCall_0; } } - public class PredicateElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Predicate"); + public class ClassDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClassDefinition"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cIsErrorAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final Keyword cIsErrorErrorKeyword_0_0 = (Keyword)cIsErrorAssignment_0.eContents().get(0); - private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cSymbolModelSymbolParserRuleCall_1_0 = (RuleCall)cSymbolAssignment_1.eContents().get(0); - private final Group cGroup_2 = (Group)cGroup.eContents().get(2); - private final Keyword cLeftParenthesisKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0); - private final Group cGroup_2_1 = (Group)cGroup_2.eContents().get(1); - private final Assignment cParametersAssignment_2_1_0 = (Assignment)cGroup_2_1.eContents().get(0); - private final RuleCall cParametersParameterParserRuleCall_2_1_0_0 = (RuleCall)cParametersAssignment_2_1_0.eContents().get(0); - private final Group cGroup_2_1_1 = (Group)cGroup_2_1.eContents().get(1); - private final Keyword cCommaKeyword_2_1_1_0 = (Keyword)cGroup_2_1_1.eContents().get(0); - private final Assignment cParametersAssignment_2_1_1_1 = (Assignment)cGroup_2_1_1.eContents().get(1); - private final RuleCall cParametersParameterParserRuleCall_2_1_1_1_0 = (RuleCall)cParametersAssignment_2_1_1_1.eContents().get(0); - private final Keyword cRightParenthesisKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2); - private final Keyword cColonHyphenMinusKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4); - private final Keyword cFalseKeyword_4_0 = (Keyword)cAlternatives_4.eContents().get(0); - private final Group cGroup_4_1 = (Group)cAlternatives_4.eContents().get(1); - private final Assignment cBodiesAssignment_4_1_0 = (Assignment)cGroup_4_1.eContents().get(0); - private final RuleCall cBodiesPatternBodyParserRuleCall_4_1_0_0 = (RuleCall)cBodiesAssignment_4_1_0.eContents().get(0); - private final Group cGroup_4_1_1 = (Group)cGroup_4_1.eContents().get(1); - private final Keyword cVerticalLineKeyword_4_1_1_0 = (Keyword)cGroup_4_1_1.eContents().get(0); - private final Assignment cBodiesAssignment_4_1_1_1 = (Assignment)cGroup_4_1_1.eContents().get(1); - private final RuleCall cBodiesPatternBodyParserRuleCall_4_1_1_1_0 = (RuleCall)cBodiesAssignment_4_1_1_1.eContents().get(0); - private final Keyword cFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5); - - ///////////////////// - //// Predicte grammar - ///////////////////// - //Predicate: - // isError?='error'? symbol=ModelSymbol ('(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')')? ':-' ('false' | - // bodies+=PatternBody ('|' bodies+=PatternBody)*) '.'; + private final Assignment cAbstractAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0); + private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0); + private final Group cGroup_3 = (Group)cGroup.eContents().get(3); + private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); + private final Assignment cSuperclassesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); + private final CrossReference cSuperclassesNamedElementCrossReference_3_1_0 = (CrossReference)cSuperclassesAssignment_3_1.eContents().get(0); + private final RuleCall cSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSuperclassesNamedElementCrossReference_3_1_0.eContents().get(1); + private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2); + private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0); + private final Assignment cSuperclassesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1); + private final CrossReference cSuperclassesNamedElementCrossReference_3_2_1_0 = (CrossReference)cSuperclassesAssignment_3_2_1.eContents().get(0); + private final RuleCall cSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSuperclassesNamedElementCrossReference_3_2_1_0.eContents().get(1); + private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); + private final Assignment cMembersAssignment_5 = (Assignment)cGroup.eContents().get(5); + private final RuleCall cMembersMemberDefinitionParserRuleCall_5_0 = (RuleCall)cMembersAssignment_5.eContents().get(0); + private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); + + //ClassDefinition Statement: + // abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] ("," + // superclasses+=[NamedElement|QualifiedName])*)? + // "{" members+=MemberDefinition* "}"; @Override public ParserRule getRule() { return rule; } - //isError?='error'? symbol=ModelSymbol ('(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')')? ':-' ('false' | - //bodies+=PatternBody ('|' bodies+=PatternBody)*) '.' + //abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] ("," + //superclasses+=[NamedElement|QualifiedName])*)? "{" members+=MemberDefinition* "}" public Group getGroup() { return cGroup; } - //isError?='error'? - public Assignment getIsErrorAssignment_0() { return cIsErrorAssignment_0; } + //abstract?="abstract"? + public Assignment getAbstractAssignment_0() { return cAbstractAssignment_0; } - //'error' - public Keyword getIsErrorErrorKeyword_0_0() { return cIsErrorErrorKeyword_0_0; } + //"abstract" + public Keyword getAbstractAbstractKeyword_0_0() { return cAbstractAbstractKeyword_0_0; } - //symbol=ModelSymbol - public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; } + //"class" + public Keyword getClassKeyword_1() { return cClassKeyword_1; } - //ModelSymbol - public RuleCall getSymbolModelSymbolParserRuleCall_1_0() { return cSymbolModelSymbolParserRuleCall_1_0; } + //name=ID + public Assignment getNameAssignment_2() { return cNameAssignment_2; } - //('(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')')? - public Group getGroup_2() { return cGroup_2; } + //ID + public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; } + + //("extends" superclasses+=[NamedElement|QualifiedName] ("," superclasses+=[NamedElement|QualifiedName])*)? + public Group getGroup_3() { return cGroup_3; } + + //"extends" + public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; } - //'(' - public Keyword getLeftParenthesisKeyword_2_0() { return cLeftParenthesisKeyword_2_0; } + //superclasses+=[NamedElement|QualifiedName] + public Assignment getSuperclassesAssignment_3_1() { return cSuperclassesAssignment_3_1; } - //(parameters+=Parameter (',' parameters+=Parameter)*)? - public Group getGroup_2_1() { return cGroup_2_1; } + //[NamedElement|QualifiedName] + public CrossReference getSuperclassesNamedElementCrossReference_3_1_0() { return cSuperclassesNamedElementCrossReference_3_1_0; } + + //QualifiedName + public RuleCall getSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1() { return cSuperclassesNamedElementQualifiedNameParserRuleCall_3_1_0_1; } + + //("," superclasses+=[NamedElement|QualifiedName])* + public Group getGroup_3_2() { return cGroup_3_2; } + + //"," + public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; } + + //superclasses+=[NamedElement|QualifiedName] + public Assignment getSuperclassesAssignment_3_2_1() { return cSuperclassesAssignment_3_2_1; } + + //[NamedElement|QualifiedName] + public CrossReference getSuperclassesNamedElementCrossReference_3_2_1_0() { return cSuperclassesNamedElementCrossReference_3_2_1_0; } + + //QualifiedName + public RuleCall getSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1() { return cSuperclassesNamedElementQualifiedNameParserRuleCall_3_2_1_0_1; } + + //"{" + public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } + + //members+=MemberDefinition* + public Assignment getMembersAssignment_5() { return cMembersAssignment_5; } + + //MemberDefinition + public RuleCall getMembersMemberDefinitionParserRuleCall_5_0() { return cMembersMemberDefinitionParserRuleCall_5_0; } + + //"}" + public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } + } + public class MemberDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MemberDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Assignment cContainmentAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final Keyword cContainmentContainsKeyword_0_0 = (Keyword)cContainmentAssignment_0.eContents().get(0); + private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); + private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); + private final Assignment cMultiplicityAssignment_2 = (Assignment)cGroup.eContents().get(2); + private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_0 = (RuleCall)cMultiplicityAssignment_2.eContents().get(0); + private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cNameIDTerminalRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0); + private final Group cGroup_4 = (Group)cGroup.eContents().get(4); + private final Keyword cOppositeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0); + private final Assignment cOppositeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1); + private final CrossReference cOppositeNamedElementCrossReference_4_1_0 = (CrossReference)cOppositeAssignment_4_1.eContents().get(0); + private final RuleCall cOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeNamedElementCrossReference_4_1_0.eContents().get(1); + private final Keyword cSemicolonKeyword_5 = (Keyword)cGroup.eContents().get(5); + + //MemberDefinition: + // containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite" + // opposite=[NamedElement|QualifiedName])? ";"?; + @Override public ParserRule getRule() { return rule; } + + //containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite" + //opposite=[NamedElement|QualifiedName])? ";"? + public Group getGroup() { return cGroup; } + + //containment?="contains"? + public Assignment getContainmentAssignment_0() { return cContainmentAssignment_0; } + + //"contains" + public Keyword getContainmentContainsKeyword_0_0() { return cContainmentContainsKeyword_0_0; } + + //type=[NamedElement|QualifiedName] + public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } + + //[NamedElement|QualifiedName] + public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } + + //QualifiedName + public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } + + //multiplicity=Multiplicity? + public Assignment getMultiplicityAssignment_2() { return cMultiplicityAssignment_2; } + + //Multiplicity + public RuleCall getMultiplicityMultiplicityParserRuleCall_2_0() { return cMultiplicityMultiplicityParserRuleCall_2_0; } - //parameters+=Parameter - public Assignment getParametersAssignment_2_1_0() { return cParametersAssignment_2_1_0; } + //name=ID + public Assignment getNameAssignment_3() { return cNameAssignment_3; } + + //ID + public RuleCall getNameIDTerminalRuleCall_3_0() { return cNameIDTerminalRuleCall_3_0; } + + //("opposite" opposite=[NamedElement|QualifiedName])? + public Group getGroup_4() { return cGroup_4; } + + //"opposite" + public Keyword getOppositeKeyword_4_0() { return cOppositeKeyword_4_0; } + + //opposite=[NamedElement|QualifiedName] + public Assignment getOppositeAssignment_4_1() { return cOppositeAssignment_4_1; } + + //[NamedElement|QualifiedName] + public CrossReference getOppositeNamedElementCrossReference_4_1_0() { return cOppositeNamedElementCrossReference_4_1_0; } + + //QualifiedName + public RuleCall getOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1() { return cOppositeNamedElementQualifiedNameParserRuleCall_4_1_0_1; } + + //";"? + public Keyword getSemicolonKeyword_5() { return cSemicolonKeyword_5; } + } + public class MultiplicityElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Multiplicity"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cManyMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cExactMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cBoundedMultiplicityParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + + //Multiplicity: + // ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity; + @Override public ParserRule getRule() { return rule; } + + //ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity + public Alternatives getAlternatives() { return cAlternatives; } + + //ManyMultiplicity + public RuleCall getManyMultiplicityParserRuleCall_0() { return cManyMultiplicityParserRuleCall_0; } + + //ExactMultiplicity + public RuleCall getExactMultiplicityParserRuleCall_1() { return cExactMultiplicityParserRuleCall_1; } + + //BoundedMultiplicity + public RuleCall getBoundedMultiplicityParserRuleCall_2() { return cBoundedMultiplicityParserRuleCall_2; } + } + public class ManyMultiplicityElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ManyMultiplicity"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Action cManyMultiplicityAction_0 = (Action)cGroup.eContents().get(0); + private final Keyword cLeftSquareBracketKeyword_1 = (Keyword)cGroup.eContents().get(1); + private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + + //ManyMultiplicity: + // {ManyMultiplicity} "[" "]"; + @Override public ParserRule getRule() { return rule; } + + //{ManyMultiplicity} "[" "]" + public Group getGroup() { return cGroup; } + + //{ManyMultiplicity} + public Action getManyMultiplicityAction_0() { return cManyMultiplicityAction_0; } + + //"[" + public Keyword getLeftSquareBracketKeyword_1() { return cLeftSquareBracketKeyword_1; } + + //"]" + public Keyword getRightSquareBracketKeyword_2() { return cRightSquareBracketKeyword_2; } + } + public class ExactMultiplicityElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactMultiplicity"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cMultiplicityAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cMultiplicityUpperMultiplictyParserRuleCall_1_0 = (RuleCall)cMultiplicityAssignment_1.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); + + //ExactMultiplicity: + // "[" multiplicity=UpperMultiplicty "]"; + @Override public ParserRule getRule() { return rule; } + + //"[" multiplicity=UpperMultiplicty "]" + public Group getGroup() { return cGroup; } + + //"[" + public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; } + + //multiplicity=UpperMultiplicty + public Assignment getMultiplicityAssignment_1() { return cMultiplicityAssignment_1; } + + //UpperMultiplicty + public RuleCall getMultiplicityUpperMultiplictyParserRuleCall_1_0() { return cMultiplicityUpperMultiplictyParserRuleCall_1_0; } + + //"]" + public Keyword getRightSquareBracketKeyword_2() { return cRightSquareBracketKeyword_2; } + } + public class BoundedMultiplicityElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BoundedMultiplicity"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cLowerBoundAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cLowerBoundINTTerminalRuleCall_1_0 = (RuleCall)cLowerBoundAssignment_1.eContents().get(0); + private final Keyword cFullStopFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cUpperBoundAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cUpperBoundUpperMultiplictyParserRuleCall_3_0 = (RuleCall)cUpperBoundAssignment_3.eContents().get(0); + private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); + + //BoundedMultiplicity: + // "[" lowerBound=INT ".." upperBound=UpperMultiplicty "]"; + @Override public ParserRule getRule() { return rule; } + + //"[" lowerBound=INT ".." upperBound=UpperMultiplicty "]" + public Group getGroup() { return cGroup; } + + //"[" + public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; } + + //lowerBound=INT + public Assignment getLowerBoundAssignment_1() { return cLowerBoundAssignment_1; } + + //INT + public RuleCall getLowerBoundINTTerminalRuleCall_1_0() { return cLowerBoundINTTerminalRuleCall_1_0; } + + //".." + public Keyword getFullStopFullStopKeyword_2() { return cFullStopFullStopKeyword_2; } + + //upperBound=UpperMultiplicty + public Assignment getUpperBoundAssignment_3() { return cUpperBoundAssignment_3; } + + //UpperMultiplicty + public RuleCall getUpperBoundUpperMultiplictyParserRuleCall_3_0() { return cUpperBoundUpperMultiplictyParserRuleCall_3_0; } + + //"]" + public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; } + } + public class ScopeDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ScopeDefinition"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cExactScopeDefinitionParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final RuleCall cBoundedScopeDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + private final RuleCall cLowerBoundedScopeDefinitionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); + + //ScopeDefinition: + // ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition; + @Override public ParserRule getRule() { return rule; } + + //ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition + public Alternatives getAlternatives() { return cAlternatives; } + + //ExactScopeDefinition + public RuleCall getExactScopeDefinitionParserRuleCall_0() { return cExactScopeDefinitionParserRuleCall_0; } + + //BoundedScopeDefinition + public RuleCall getBoundedScopeDefinitionParserRuleCall_1() { return cBoundedScopeDefinitionParserRuleCall_1; } + + //LowerBoundedScopeDefinition + public RuleCall getLowerBoundedScopeDefinitionParserRuleCall_2() { return cLowerBoundedScopeDefinitionParserRuleCall_2; } + } + public class ExactScopeDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExactScopeDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final CrossReference cTypeNamedElementCrossReference_1_0 = (CrossReference)cTypeAssignment_1.eContents().get(0); + private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0.eContents().get(1); + private final Keyword cEqualsSignEqualsSignKeyword_2 = (Keyword)cGroup.eContents().get(2); + private final Assignment cExactScopeAssignment_3 = (Assignment)cGroup.eContents().get(3); + private final RuleCall cExactScopeINTTerminalRuleCall_3_0 = (RuleCall)cExactScopeAssignment_3.eContents().get(0); + + //ExactScopeDefinition: + // "scope" type=[NamedElement|QualifiedName] "==" exactScope=INT; + @Override public ParserRule getRule() { return rule; } + + //"scope" type=[NamedElement|QualifiedName] "==" exactScope=INT + public Group getGroup() { return cGroup; } + + //"scope" + public Keyword getScopeKeyword_0() { return cScopeKeyword_0; } + + //type=[NamedElement|QualifiedName] + public Assignment getTypeAssignment_1() { return cTypeAssignment_1; } + + //[NamedElement|QualifiedName] + public CrossReference getTypeNamedElementCrossReference_1_0() { return cTypeNamedElementCrossReference_1_0; } + + //QualifiedName + public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1; } + + //"==" + public Keyword getEqualsSignEqualsSignKeyword_2() { return cEqualsSignEqualsSignKeyword_2; } + + //exactScope=INT + public Assignment getExactScopeAssignment_3() { return cExactScopeAssignment_3; } + + //INT + public RuleCall getExactScopeINTTerminalRuleCall_3_0() { return cExactScopeINTTerminalRuleCall_3_0; } + } + public class BoundedScopeDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BoundedScopeDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); + private final Group cGroup_1_0_0 = (Group)cGroup_1_0.eContents().get(0); + private final Assignment cLowerBoundAssignment_1_0_0_0 = (Assignment)cGroup_1_0_0.eContents().get(0); + private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0_0.eContents().get(0); + private final Keyword cLessThanSignEqualsSignKeyword_1_0_0_1 = (Keyword)cGroup_1_0_0.eContents().get(1); + private final Assignment cTypeAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1); + private final CrossReference cTypeNamedElementCrossReference_1_0_1_0 = (CrossReference)cTypeAssignment_1_0_1.eContents().get(0); + private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0_1_0.eContents().get(1); + private final Keyword cLessThanSignEqualsSignKeyword_1_0_2 = (Keyword)cGroup_1_0.eContents().get(2); + private final Assignment cUpperBoundAssignment_1_0_3 = (Assignment)cGroup_1_0.eContents().get(3); + private final RuleCall cUpperBoundINTTerminalRuleCall_1_0_3_0 = (RuleCall)cUpperBoundAssignment_1_0_3.eContents().get(0); + private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); + private final Assignment cUpperBoundAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0); + private final RuleCall cUpperBoundINTTerminalRuleCall_1_1_0_0 = (RuleCall)cUpperBoundAssignment_1_1_0.eContents().get(0); + private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); + private final Assignment cTypeAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); + private final CrossReference cTypeNamedElementCrossReference_1_1_2_0 = (CrossReference)cTypeAssignment_1_1_2.eContents().get(0); + private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_1_2_0.eContents().get(1); + private final Group cGroup_1_1_3 = (Group)cGroup_1_1.eContents().get(3); + private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_3_0 = (Keyword)cGroup_1_1_3.eContents().get(0); + private final Assignment cLowerBoundAssignment_1_1_3_1 = (Assignment)cGroup_1_1_3.eContents().get(1); + private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_3_1_0 = (RuleCall)cLowerBoundAssignment_1_1_3_1.eContents().get(0); + private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); + + //BoundedScopeDefinition: + // "scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" + // type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) "."; + @Override public ParserRule getRule() { return rule; } + + //"scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" + //type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) "." + public Group getGroup() { return cGroup; } + + //"scope" + public Keyword getScopeKeyword_0() { return cScopeKeyword_0; } + + //((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" + //type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) + public Alternatives getAlternatives_1() { return cAlternatives_1; } + + //(lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT + public Group getGroup_1_0() { return cGroup_1_0; } + + //(lowerBound=INT "<=")? + public Group getGroup_1_0_0() { return cGroup_1_0_0; } + + //lowerBound=INT + public Assignment getLowerBoundAssignment_1_0_0_0() { return cLowerBoundAssignment_1_0_0_0; } + + //INT + public RuleCall getLowerBoundINTTerminalRuleCall_1_0_0_0_0() { return cLowerBoundINTTerminalRuleCall_1_0_0_0_0; } + + //"<=" + public Keyword getLessThanSignEqualsSignKeyword_1_0_0_1() { return cLessThanSignEqualsSignKeyword_1_0_0_1; } + + //type=[NamedElement|QualifiedName] + public Assignment getTypeAssignment_1_0_1() { return cTypeAssignment_1_0_1; } + + //[NamedElement|QualifiedName] + public CrossReference getTypeNamedElementCrossReference_1_0_1_0() { return cTypeNamedElementCrossReference_1_0_1_0; } + + //QualifiedName + public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_1_0_1; } + + //"<=" + public Keyword getLessThanSignEqualsSignKeyword_1_0_2() { return cLessThanSignEqualsSignKeyword_1_0_2; } + + //upperBound=INT + public Assignment getUpperBoundAssignment_1_0_3() { return cUpperBoundAssignment_1_0_3; } + + //INT + public RuleCall getUpperBoundINTTerminalRuleCall_1_0_3_0() { return cUpperBoundINTTerminalRuleCall_1_0_3_0; } + + //upperBound=INT ">=" type=[NamedElement|QualifiedName] (">=" lowerBound=INT)? + public Group getGroup_1_1() { return cGroup_1_1; } + + //upperBound=INT + public Assignment getUpperBoundAssignment_1_1_0() { return cUpperBoundAssignment_1_1_0; } + + //INT + public RuleCall getUpperBoundINTTerminalRuleCall_1_1_0_0() { return cUpperBoundINTTerminalRuleCall_1_1_0_0; } + + //">=" + public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; } + + //type=[NamedElement|QualifiedName] + public Assignment getTypeAssignment_1_1_2() { return cTypeAssignment_1_1_2; } + + //[NamedElement|QualifiedName] + public CrossReference getTypeNamedElementCrossReference_1_1_2_0() { return cTypeNamedElementCrossReference_1_1_2_0; } + + //QualifiedName + public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_1_2_0_1; } + + //(">=" lowerBound=INT)? + public Group getGroup_1_1_3() { return cGroup_1_1_3; } + + //">=" + public Keyword getGreaterThanSignEqualsSignKeyword_1_1_3_0() { return cGreaterThanSignEqualsSignKeyword_1_1_3_0; } + + //lowerBound=INT + public Assignment getLowerBoundAssignment_1_1_3_1() { return cLowerBoundAssignment_1_1_3_1; } + + //INT + public RuleCall getLowerBoundINTTerminalRuleCall_1_1_3_1_0() { return cLowerBoundINTTerminalRuleCall_1_1_3_1_0; } + + //"." + public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; } + } + public class LowerBoundedScopeDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LowerBoundedScopeDefinition"); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0); + private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); + private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0); + private final Assignment cLowerBoundAssignment_1_0_0 = (Assignment)cGroup_1_0.eContents().get(0); + private final RuleCall cLowerBoundINTTerminalRuleCall_1_0_0_0 = (RuleCall)cLowerBoundAssignment_1_0_0.eContents().get(0); + private final Keyword cLessThanSignEqualsSignKeyword_1_0_1 = (Keyword)cGroup_1_0.eContents().get(1); + private final Assignment cTypeAssignment_1_0_2 = (Assignment)cGroup_1_0.eContents().get(2); + private final CrossReference cTypeNamedElementCrossReference_1_0_2_0 = (CrossReference)cTypeAssignment_1_0_2.eContents().get(0); + private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_0_2_0.eContents().get(1); + private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1); + private final Assignment cTypeAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0); + private final CrossReference cTypeNamedElementCrossReference_1_1_0_0 = (CrossReference)cTypeAssignment_1_1_0.eContents().get(0); + private final RuleCall cTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1 = (RuleCall)cTypeNamedElementCrossReference_1_1_0_0.eContents().get(1); + private final Keyword cGreaterThanSignEqualsSignKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1); + private final Assignment cLowerBoundAssignment_1_1_2 = (Assignment)cGroup_1_1.eContents().get(2); + private final RuleCall cLowerBoundINTTerminalRuleCall_1_1_2_0 = (RuleCall)cLowerBoundAssignment_1_1_2.eContents().get(0); + private final Keyword cFullStopKeyword_2 = (Keyword)cGroup.eContents().get(2); + + //LowerBoundedScopeDefinition: + // "scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" + // lowerBound=INT) "."; + @Override public ParserRule getRule() { return rule; } + + //"scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" lowerBound=INT) + //"." + public Group getGroup() { return cGroup; } - //Parameter - public RuleCall getParametersParameterParserRuleCall_2_1_0_0() { return cParametersParameterParserRuleCall_2_1_0_0; } + //"scope" + public Keyword getScopeKeyword_0() { return cScopeKeyword_0; } - //(',' parameters+=Parameter)* - public Group getGroup_2_1_1() { return cGroup_2_1_1; } + //(lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" lowerBound=INT) + public Alternatives getAlternatives_1() { return cAlternatives_1; } - //',' - public Keyword getCommaKeyword_2_1_1_0() { return cCommaKeyword_2_1_1_0; } + //lowerBound=INT "<=" type=[NamedElement|QualifiedName] + public Group getGroup_1_0() { return cGroup_1_0; } - //parameters+=Parameter - public Assignment getParametersAssignment_2_1_1_1() { return cParametersAssignment_2_1_1_1; } + //lowerBound=INT + public Assignment getLowerBoundAssignment_1_0_0() { return cLowerBoundAssignment_1_0_0; } - //Parameter - public RuleCall getParametersParameterParserRuleCall_2_1_1_1_0() { return cParametersParameterParserRuleCall_2_1_1_1_0; } + //INT + public RuleCall getLowerBoundINTTerminalRuleCall_1_0_0_0() { return cLowerBoundINTTerminalRuleCall_1_0_0_0; } - //')' - public Keyword getRightParenthesisKeyword_2_2() { return cRightParenthesisKeyword_2_2; } + //"<=" + public Keyword getLessThanSignEqualsSignKeyword_1_0_1() { return cLessThanSignEqualsSignKeyword_1_0_1; } - //':-' - public Keyword getColonHyphenMinusKeyword_3() { return cColonHyphenMinusKeyword_3; } + //type=[NamedElement|QualifiedName] + public Assignment getTypeAssignment_1_0_2() { return cTypeAssignment_1_0_2; } - //'false' | bodies+=PatternBody ('|' bodies+=PatternBody)* - public Alternatives getAlternatives_4() { return cAlternatives_4; } + //[NamedElement|QualifiedName] + public CrossReference getTypeNamedElementCrossReference_1_0_2_0() { return cTypeNamedElementCrossReference_1_0_2_0; } - //'false' - public Keyword getFalseKeyword_4_0() { return cFalseKeyword_4_0; } + //QualifiedName + public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_0_2_0_1; } - //bodies+=PatternBody ('|' bodies+=PatternBody)* - public Group getGroup_4_1() { return cGroup_4_1; } + //type=[NamedElement|QualifiedName] ">=" lowerBound=INT + public Group getGroup_1_1() { return cGroup_1_1; } - //bodies+=PatternBody - public Assignment getBodiesAssignment_4_1_0() { return cBodiesAssignment_4_1_0; } + //type=[NamedElement|QualifiedName] + public Assignment getTypeAssignment_1_1_0() { return cTypeAssignment_1_1_0; } - //PatternBody - public RuleCall getBodiesPatternBodyParserRuleCall_4_1_0_0() { return cBodiesPatternBodyParserRuleCall_4_1_0_0; } + //[NamedElement|QualifiedName] + public CrossReference getTypeNamedElementCrossReference_1_1_0_0() { return cTypeNamedElementCrossReference_1_1_0_0; } - //('|' bodies+=PatternBody)* - public Group getGroup_4_1_1() { return cGroup_4_1_1; } + //QualifiedName + public RuleCall getTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1() { return cTypeNamedElementQualifiedNameParserRuleCall_1_1_0_0_1; } - //'|' - public Keyword getVerticalLineKeyword_4_1_1_0() { return cVerticalLineKeyword_4_1_1_0; } + //">=" + public Keyword getGreaterThanSignEqualsSignKeyword_1_1_1() { return cGreaterThanSignEqualsSignKeyword_1_1_1; } - //bodies+=PatternBody - public Assignment getBodiesAssignment_4_1_1_1() { return cBodiesAssignment_4_1_1_1; } + //lowerBound=INT + public Assignment getLowerBoundAssignment_1_1_2() { return cLowerBoundAssignment_1_1_2; } - //PatternBody - public RuleCall getBodiesPatternBodyParserRuleCall_4_1_1_1_0() { return cBodiesPatternBodyParserRuleCall_4_1_1_1_0; } + //INT + public RuleCall getLowerBoundINTTerminalRuleCall_1_1_2_0() { return cLowerBoundINTTerminalRuleCall_1_1_2_0; } - //'.' - public Keyword getFullStopKeyword_5() { return cFullStopKeyword_5; } + //"." + public Keyword getFullStopKeyword_2() { return cFullStopKeyword_2; } } - public class ParameterElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Parameter"); + public class ObjectiveDefinitionElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveDefinition"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cVariableAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final RuleCall cVariableVariableParserRuleCall_0_0 = (RuleCall)cVariableAssignment_0.eContents().get(0); - private final Group cGroup_1 = (Group)cGroup.eContents().get(1); - private final Keyword cColonKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); - private final Assignment cTypeAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1); - private final RuleCall cTypeSymbolParserRuleCall_1_1_0 = (RuleCall)cTypeAssignment_1_1.eContents().get(0); + private final Assignment cKindAssignment_0 = (Assignment)cGroup.eContents().get(0); + private final RuleCall cKindObjectiveKindEnumRuleCall_0_0 = (RuleCall)cKindAssignment_0.eContents().get(0); + private final Assignment cObjectiveAssignment_1 = (Assignment)cGroup.eContents().get(1); + private final RuleCall cObjectiveExpressionParserRuleCall_1_0 = (RuleCall)cObjectiveAssignment_1.eContents().get(0); - //Parameter: - // variable=Variable (':' type=Symbol)?; + //ObjectiveDefinition: + // kind=ObjectiveKind objective=Expression; @Override public ParserRule getRule() { return rule; } - //variable=Variable (':' type=Symbol)? + //kind=ObjectiveKind objective=Expression public Group getGroup() { return cGroup; } - //variable=Variable - public Assignment getVariableAssignment_0() { return cVariableAssignment_0; } + //kind=ObjectiveKind + public Assignment getKindAssignment_0() { return cKindAssignment_0; } - //Variable - public RuleCall getVariableVariableParserRuleCall_0_0() { return cVariableVariableParserRuleCall_0_0; } + //ObjectiveKind + public RuleCall getKindObjectiveKindEnumRuleCall_0_0() { return cKindObjectiveKindEnumRuleCall_0_0; } - //(':' type=Symbol)? - public Group getGroup_1() { return cGroup_1; } + //objective=Expression + public Assignment getObjectiveAssignment_1() { return cObjectiveAssignment_1; } + + //Expression + public RuleCall getObjectiveExpressionParserRuleCall_1_0() { return cObjectiveExpressionParserRuleCall_1_0; } + } + public class UpperMultiplictyElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UpperMultiplicty"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); + private final Keyword cAsteriskKeyword_1 = (Keyword)cAlternatives.eContents().get(1); + + //UpperMultiplicty ecore::EInt: + // INT | "*"; + @Override public ParserRule getRule() { return rule; } - //':' - public Keyword getColonKeyword_1_0() { return cColonKeyword_1_0; } + //INT | "*" + public Alternatives getAlternatives() { return cAlternatives; } - //type=Symbol - public Assignment getTypeAssignment_1_1() { return cTypeAssignment_1_1; } + //INT + public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; } - //Symbol - public RuleCall getTypeSymbolParserRuleCall_1_1_0() { return cTypeSymbolParserRuleCall_1_1_0; } + //"*" + public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } } - public class PatternBodyElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PatternBody"); + public class RealElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Real"); private final Group cGroup = (Group)rule.eContents().get(1); - private final Action cPatternBodyAction_0 = (Action)cGroup.eContents().get(0); - private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1); - private final Keyword cTrueKeyword_1_0 = (Keyword)cAlternatives_1.eContents().get(0); - private final Assignment cConstraintsAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1); - private final RuleCall cConstraintsConstraintParserRuleCall_1_1_0 = (RuleCall)cConstraintsAssignment_1_1.eContents().get(0); + private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0); + private final Group cGroup_1 = (Group)cGroup.eContents().get(1); + private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0); + private final RuleCall cINTTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1); - //PatternBody: - // {PatternBody} ('true' | constraints+=Constraint*); + //Real ecore::EBigDecimal hidden(): + // INT ("." INT)?; @Override public ParserRule getRule() { return rule; } - //{PatternBody} ('true' | constraints+=Constraint*) + //INT ("." INT)? public Group getGroup() { return cGroup; } - //{PatternBody} - public Action getPatternBodyAction_0() { return cPatternBodyAction_0; } - - //'true' | constraints+=Constraint* - public Alternatives getAlternatives_1() { return cAlternatives_1; } + //INT + public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; } - //'true' - public Keyword getTrueKeyword_1_0() { return cTrueKeyword_1_0; } + //("." INT)? + public Group getGroup_1() { return cGroup_1; } - //constraints+=Constraint* - public Assignment getConstraintsAssignment_1_1() { return cConstraintsAssignment_1_1; } + //"." + public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; } - //Constraint - public RuleCall getConstraintsConstraintParserRuleCall_1_1_0() { return cConstraintsConstraintParserRuleCall_1_1_0; } + //INT + public RuleCall getINTTerminalRuleCall_1_1() { return cINTTerminalRuleCall_1_1; } } - public class PolarityElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Polarity"); + public class QualifiedNameElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QualifiedName"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); - private final Action cPositiveAction_0_0 = (Action)cGroup_0.eContents().get(0); - private final Keyword cPlusSignKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); - private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); - private final Action cNegativeAction_1_0 = (Action)cGroup_1.eContents().get(0); - private final Keyword cHyphenMinusKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); - - //Polarity: - // {Positive} '+' | {Negative} '-'; + private final RuleCall cIDTerminalRuleCall_0_0 = (RuleCall)cGroup_0.eContents().get(0); + private final Group cGroup_0_1 = (Group)cGroup_0.eContents().get(1); + private final Keyword cFullStopKeyword_0_1_0 = (Keyword)cGroup_0_1.eContents().get(0); + private final RuleCall cIDTerminalRuleCall_0_1_1 = (RuleCall)cGroup_0_1.eContents().get(1); + private final RuleCall cQUOTED_IDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); + + //QualifiedName hidden(): + // ID ("." ID)* | QUOTED_ID; @Override public ParserRule getRule() { return rule; } - //{Positive} '+' | {Negative} '-' + //ID ("." ID)* | QUOTED_ID public Alternatives getAlternatives() { return cAlternatives; } - //{Positive} '+' + //ID ("." ID)* public Group getGroup_0() { return cGroup_0; } - //{Positive} - public Action getPositiveAction_0_0() { return cPositiveAction_0_0; } + //ID + public RuleCall getIDTerminalRuleCall_0_0() { return cIDTerminalRuleCall_0_0; } - //'+' - public Keyword getPlusSignKeyword_0_1() { return cPlusSignKeyword_0_1; } + //("." ID)* + public Group getGroup_0_1() { return cGroup_0_1; } - //{Negative} '-' - public Group getGroup_1() { return cGroup_1; } + //"." + public Keyword getFullStopKeyword_0_1_0() { return cFullStopKeyword_0_1_0; } - //{Negative} - public Action getNegativeAction_1_0() { return cNegativeAction_1_0; } + //ID + public RuleCall getIDTerminalRuleCall_0_1_1() { return cIDTerminalRuleCall_0_1_1; } - //'-' - public Keyword getHyphenMinusKeyword_1_1() { return cHyphenMinusKeyword_1_1; } + //QUOTED_ID + public RuleCall getQUOTED_IDTerminalRuleCall_1() { return cQUOTED_IDTerminalRuleCall_1; } } - public class ConstraintElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Constraint"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); - private final Assignment cPolarityAssignment_0_0 = (Assignment)cGroup_0.eContents().get(0); - private final RuleCall cPolarityPolarityParserRuleCall_0_0_0 = (RuleCall)cPolarityAssignment_0_0.eContents().get(0); - private final Assignment cSymbolAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1); - private final RuleCall cSymbolModelSymbolParserRuleCall_0_1_0 = (RuleCall)cSymbolAssignment_0_1.eContents().get(0); - private final Group cGroup_0_2 = (Group)cGroup_0.eContents().get(2); - private final Keyword cLeftParenthesisKeyword_0_2_0 = (Keyword)cGroup_0_2.eContents().get(0); - private final Assignment cParamsAssignment_0_2_1 = (Assignment)cGroup_0_2.eContents().get(1); - private final RuleCall cParamsLiteralParserRuleCall_0_2_1_0 = (RuleCall)cParamsAssignment_0_2_1.eContents().get(0); - private final Group cGroup_0_2_2 = (Group)cGroup_0_2.eContents().get(2); - private final Keyword cCommaKeyword_0_2_2_0 = (Keyword)cGroup_0_2_2.eContents().get(0); - private final Assignment cParamsAssignment_0_2_2_1 = (Assignment)cGroup_0_2_2.eContents().get(1); - private final RuleCall cParamsLiteralParserRuleCall_0_2_2_1_0 = (RuleCall)cParamsAssignment_0_2_2_1.eContents().get(0); - private final Keyword cRightParenthesisKeyword_0_2_3 = (Keyword)cGroup_0_2.eContents().get(3); - private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); - private final Assignment cClosureTypeAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0); - private final RuleCall cClosureTypeClosureTypeParserRuleCall_1_0_0 = (RuleCall)cClosureTypeAssignment_1_0.eContents().get(0); - private final Keyword cLeftParenthesisKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); - private final Assignment cParamsAssignment_1_2 = (Assignment)cGroup_1.eContents().get(2); - private final RuleCall cParamsLiteralParserRuleCall_1_2_0 = (RuleCall)cParamsAssignment_1_2.eContents().get(0); - private final Group cGroup_1_3 = (Group)cGroup_1.eContents().get(3); - private final Keyword cCommaKeyword_1_3_0 = (Keyword)cGroup_1_3.eContents().get(0); - private final Assignment cParamsAssignment_1_3_1 = (Assignment)cGroup_1_3.eContents().get(1); - private final RuleCall cParamsLiteralParserRuleCall_1_3_1_0 = (RuleCall)cParamsAssignment_1_3_1.eContents().get(0); - private final Keyword cRightParenthesisKeyword_1_4 = (Keyword)cGroup_1.eContents().get(4); - - //Constraint: - // polarity=Polarity? symbol=ModelSymbol ('(' params+=Literal? (',' params+=Literal)* ')')? | closureType=ClosureType - // '(' params+=Literal? (',' params+=Literal)* ')'; - @Override public ParserRule getRule() { return rule; } - - //polarity=Polarity? symbol=ModelSymbol ('(' params+=Literal? (',' params+=Literal)* ')')? | closureType=ClosureType '(' - //params+=Literal? (',' params+=Literal)* ')' - public Alternatives getAlternatives() { return cAlternatives; } + public class NamedElementElements extends AbstractParserRuleElementFinder { + private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.NamedElement"); + private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); + private final RuleCall cNameQualifiedNameParserRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); - //polarity=Polarity? symbol=ModelSymbol ('(' params+=Literal? (',' params+=Literal)* ')')? - public Group getGroup_0() { return cGroup_0; } + //NamedElement: + // name=QualifiedName; + @Override public ParserRule getRule() { return rule; } - //polarity=Polarity? - public Assignment getPolarityAssignment_0_0() { return cPolarityAssignment_0_0; } + //name=QualifiedName + public Assignment getNameAssignment() { return cNameAssignment; } - //Polarity - public RuleCall getPolarityPolarityParserRuleCall_0_0_0() { return cPolarityPolarityParserRuleCall_0_0_0; } + //QualifiedName + public RuleCall getNameQualifiedNameParserRuleCall_0() { return cNameQualifiedNameParserRuleCall_0; } + } + + public class MetricTypeElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MetricType"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cINTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cINTIntKeyword_0_0 = (Keyword)cINTEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cREALEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cREALRealKeyword_1_0 = (Keyword)cREALEnumLiteralDeclaration_1.eContents().get(0); - //symbol=ModelSymbol - public Assignment getSymbolAssignment_0_1() { return cSymbolAssignment_0_1; } + //enum MetricType: + // INT="int" | REAL="real"; + public EnumRule getRule() { return rule; } - //ModelSymbol - public RuleCall getSymbolModelSymbolParserRuleCall_0_1_0() { return cSymbolModelSymbolParserRuleCall_0_1_0; } + //INT="int" | REAL="real" + public Alternatives getAlternatives() { return cAlternatives; } - //('(' params+=Literal? (',' params+=Literal)* ')')? - public Group getGroup_0_2() { return cGroup_0_2; } + //INT="int" + public EnumLiteralDeclaration getINTEnumLiteralDeclaration_0() { return cINTEnumLiteralDeclaration_0; } - //'(' - public Keyword getLeftParenthesisKeyword_0_2_0() { return cLeftParenthesisKeyword_0_2_0; } + //"int" + public Keyword getINTIntKeyword_0_0() { return cINTIntKeyword_0_0; } - //params+=Literal? - public Assignment getParamsAssignment_0_2_1() { return cParamsAssignment_0_2_1; } + //REAL="real" + public EnumLiteralDeclaration getREALEnumLiteralDeclaration_1() { return cREALEnumLiteralDeclaration_1; } - //Literal - public RuleCall getParamsLiteralParserRuleCall_0_2_1_0() { return cParamsLiteralParserRuleCall_0_2_1_0; } + //"real" + public Keyword getREALRealKeyword_1_0() { return cREALRealKeyword_1_0; } + } + public class BinaryOperatorElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.BinaryOperator"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cEQEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cEQEQKeyword_0_0 = (Keyword)cEQEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cNOT_EQEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cNOT_EQNOT_EQKeyword_1_0 = (Keyword)cNOT_EQEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cLESSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cLESSLESSKeyword_2_0 = (Keyword)cLESSEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cLESS_EQEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cLESS_EQLESS_EQKeyword_3_0 = (Keyword)cLESS_EQEnumLiteralDeclaration_3.eContents().get(0); + private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); + private final Keyword cGREATERGREATERKeyword_4_0 = (Keyword)cGREATEREnumLiteralDeclaration_4.eContents().get(0); + private final EnumLiteralDeclaration cGREATER_EQEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); + private final Keyword cGREATER_EQGREATER_EQKeyword_5_0 = (Keyword)cGREATER_EQEnumLiteralDeclaration_5.eContents().get(0); + private final EnumLiteralDeclaration cINEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6); + private final Keyword cININKeyword_6_0 = (Keyword)cINEnumLiteralDeclaration_6.eContents().get(0); + private final EnumLiteralDeclaration cADDEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7); + private final Keyword cADDADDKeyword_7_0 = (Keyword)cADDEnumLiteralDeclaration_7.eContents().get(0); + private final EnumLiteralDeclaration cSUBEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8); + private final Keyword cSUBSUBKeyword_8_0 = (Keyword)cSUBEnumLiteralDeclaration_8.eContents().get(0); + private final EnumLiteralDeclaration cMULEnumLiteralDeclaration_9 = (EnumLiteralDeclaration)cAlternatives.eContents().get(9); + private final Keyword cMULMULKeyword_9_0 = (Keyword)cMULEnumLiteralDeclaration_9.eContents().get(0); + private final EnumLiteralDeclaration cDIVEnumLiteralDeclaration_10 = (EnumLiteralDeclaration)cAlternatives.eContents().get(10); + private final Keyword cDIVDIVKeyword_10_0 = (Keyword)cDIVEnumLiteralDeclaration_10.eContents().get(0); + private final EnumLiteralDeclaration cPOWEnumLiteralDeclaration_11 = (EnumLiteralDeclaration)cAlternatives.eContents().get(11); + private final Keyword cPOWPOWKeyword_11_0 = (Keyword)cPOWEnumLiteralDeclaration_11.eContents().get(0); + + //enum BinaryOperator: + // EQ | NOT_EQ | LESS | LESS_EQ | GREATER | GREATER_EQ | IN | ADD | SUB | MUL | DIV | POW; + public EnumRule getRule() { return rule; } + + //EQ | NOT_EQ | LESS | LESS_EQ | GREATER | GREATER_EQ | IN | ADD | SUB | MUL | DIV | POW + public Alternatives getAlternatives() { return cAlternatives; } - //(',' params+=Literal)* - public Group getGroup_0_2_2() { return cGroup_0_2_2; } + //EQ + public EnumLiteralDeclaration getEQEnumLiteralDeclaration_0() { return cEQEnumLiteralDeclaration_0; } - //',' - public Keyword getCommaKeyword_0_2_2_0() { return cCommaKeyword_0_2_2_0; } + //"EQ" + public Keyword getEQEQKeyword_0_0() { return cEQEQKeyword_0_0; } - //params+=Literal - public Assignment getParamsAssignment_0_2_2_1() { return cParamsAssignment_0_2_2_1; } + //NOT_EQ + public EnumLiteralDeclaration getNOT_EQEnumLiteralDeclaration_1() { return cNOT_EQEnumLiteralDeclaration_1; } - //Literal - public RuleCall getParamsLiteralParserRuleCall_0_2_2_1_0() { return cParamsLiteralParserRuleCall_0_2_2_1_0; } + //"NOT_EQ" + public Keyword getNOT_EQNOT_EQKeyword_1_0() { return cNOT_EQNOT_EQKeyword_1_0; } - //')' - public Keyword getRightParenthesisKeyword_0_2_3() { return cRightParenthesisKeyword_0_2_3; } + //LESS + public EnumLiteralDeclaration getLESSEnumLiteralDeclaration_2() { return cLESSEnumLiteralDeclaration_2; } - //closureType=ClosureType '(' params+=Literal? (',' params+=Literal)* ')' - public Group getGroup_1() { return cGroup_1; } + //"LESS" + public Keyword getLESSLESSKeyword_2_0() { return cLESSLESSKeyword_2_0; } - //closureType=ClosureType - public Assignment getClosureTypeAssignment_1_0() { return cClosureTypeAssignment_1_0; } + //LESS_EQ + public EnumLiteralDeclaration getLESS_EQEnumLiteralDeclaration_3() { return cLESS_EQEnumLiteralDeclaration_3; } - //ClosureType - public RuleCall getClosureTypeClosureTypeParserRuleCall_1_0_0() { return cClosureTypeClosureTypeParserRuleCall_1_0_0; } + //"LESS_EQ" + public Keyword getLESS_EQLESS_EQKeyword_3_0() { return cLESS_EQLESS_EQKeyword_3_0; } - //'(' - public Keyword getLeftParenthesisKeyword_1_1() { return cLeftParenthesisKeyword_1_1; } + //GREATER + public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_4() { return cGREATEREnumLiteralDeclaration_4; } - //params+=Literal? - public Assignment getParamsAssignment_1_2() { return cParamsAssignment_1_2; } + //"GREATER" + public Keyword getGREATERGREATERKeyword_4_0() { return cGREATERGREATERKeyword_4_0; } - //Literal - public RuleCall getParamsLiteralParserRuleCall_1_2_0() { return cParamsLiteralParserRuleCall_1_2_0; } + //GREATER_EQ + public EnumLiteralDeclaration getGREATER_EQEnumLiteralDeclaration_5() { return cGREATER_EQEnumLiteralDeclaration_5; } - //(',' params+=Literal)* - public Group getGroup_1_3() { return cGroup_1_3; } + //"GREATER_EQ" + public Keyword getGREATER_EQGREATER_EQKeyword_5_0() { return cGREATER_EQGREATER_EQKeyword_5_0; } - //',' - public Keyword getCommaKeyword_1_3_0() { return cCommaKeyword_1_3_0; } + //IN + public EnumLiteralDeclaration getINEnumLiteralDeclaration_6() { return cINEnumLiteralDeclaration_6; } - //params+=Literal - public Assignment getParamsAssignment_1_3_1() { return cParamsAssignment_1_3_1; } + //"IN" + public Keyword getININKeyword_6_0() { return cININKeyword_6_0; } - //Literal - public RuleCall getParamsLiteralParserRuleCall_1_3_1_0() { return cParamsLiteralParserRuleCall_1_3_1_0; } + //ADD + public EnumLiteralDeclaration getADDEnumLiteralDeclaration_7() { return cADDEnumLiteralDeclaration_7; } - //')' - public Keyword getRightParenthesisKeyword_1_4() { return cRightParenthesisKeyword_1_4; } - } - public class ClosureTypeElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClosureType"); - private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final Group cGroup_0 = (Group)cAlternatives.eContents().get(0); - private final Action cReflexiveClosureAction_0_0 = (Action)cGroup_0.eContents().get(0); - private final Keyword cAsteriskKeyword_0_1 = (Keyword)cGroup_0.eContents().get(1); - private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); - private final Action cIrreflexiveClosureAction_1_0 = (Action)cGroup_1.eContents().get(0); - private final Keyword cPlusSignKeyword_1_1 = (Keyword)cGroup_1.eContents().get(1); + //"ADD" + public Keyword getADDADDKeyword_7_0() { return cADDADDKeyword_7_0; } - //ClosureType: - // {ReflexiveClosure} '*' | {IrreflexiveClosure} '+'; - @Override public ParserRule getRule() { return rule; } + //SUB + public EnumLiteralDeclaration getSUBEnumLiteralDeclaration_8() { return cSUBEnumLiteralDeclaration_8; } - //{ReflexiveClosure} '*' | {IrreflexiveClosure} '+' - public Alternatives getAlternatives() { return cAlternatives; } + //"SUB" + public Keyword getSUBSUBKeyword_8_0() { return cSUBSUBKeyword_8_0; } - //{ReflexiveClosure} '*' - public Group getGroup_0() { return cGroup_0; } + //MUL + public EnumLiteralDeclaration getMULEnumLiteralDeclaration_9() { return cMULEnumLiteralDeclaration_9; } - //{ReflexiveClosure} - public Action getReflexiveClosureAction_0_0() { return cReflexiveClosureAction_0_0; } + //"MUL" + public Keyword getMULMULKeyword_9_0() { return cMULMULKeyword_9_0; } - //'*' - public Keyword getAsteriskKeyword_0_1() { return cAsteriskKeyword_0_1; } + //DIV + public EnumLiteralDeclaration getDIVEnumLiteralDeclaration_10() { return cDIVEnumLiteralDeclaration_10; } - //{IrreflexiveClosure} '+' - public Group getGroup_1() { return cGroup_1; } + //"DIV" + public Keyword getDIVDIVKeyword_10_0() { return cDIVDIVKeyword_10_0; } - //{IrreflexiveClosure} - public Action getIrreflexiveClosureAction_1_0() { return cIrreflexiveClosureAction_1_0; } + //POW + public EnumLiteralDeclaration getPOWEnumLiteralDeclaration_11() { return cPOWEnumLiteralDeclaration_11; } - //'+' - public Keyword getPlusSignKeyword_1_1() { return cPlusSignKeyword_1_1; } + //"POW" + public Keyword getPOWPOWKeyword_11_0() { return cPOWPOWKeyword_11_0; } } - public class LiteralElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Literal"); + public class ComparisonOperatorElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ComparisonOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cVariableParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cDataObjectParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cNamedObjectParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - - //Literal: - // Variable | DataObject | NamedObject; - @Override public ParserRule getRule() { return rule; } - - //Variable | DataObject | NamedObject + private final EnumLiteralDeclaration cEQEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cEQEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cNOT_EQEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cNOT_EQExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cLESSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cLESSLessThanSignKeyword_2_0 = (Keyword)cLESSEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cLESS_EQEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cLESS_EQLessThanSignEqualsSignKeyword_3_0 = (Keyword)cLESS_EQEnumLiteralDeclaration_3.eContents().get(0); + private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); + private final Keyword cGREATERGreaterThanSignKeyword_4_0 = (Keyword)cGREATEREnumLiteralDeclaration_4.eContents().get(0); + private final EnumLiteralDeclaration cGREATER_EQEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); + private final Keyword cGREATER_EQGreaterThanSignEqualsSignKeyword_5_0 = (Keyword)cGREATER_EQEnumLiteralDeclaration_5.eContents().get(0); + private final EnumLiteralDeclaration cINEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6); + private final Keyword cINInKeyword_6_0 = (Keyword)cINEnumLiteralDeclaration_6.eContents().get(0); + + //enum ComparisonOperator returns BinaryOperator: + // EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in"; + public EnumRule getRule() { return rule; } + + //EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in" public Alternatives getAlternatives() { return cAlternatives; } - //Variable - public RuleCall getVariableParserRuleCall_0() { return cVariableParserRuleCall_0; } - - //DataObject - public RuleCall getDataObjectParserRuleCall_1() { return cDataObjectParserRuleCall_1; } + //EQ="==" + public EnumLiteralDeclaration getEQEnumLiteralDeclaration_0() { return cEQEnumLiteralDeclaration_0; } - //NamedObject - public RuleCall getNamedObjectParserRuleCall_2() { return cNamedObjectParserRuleCall_2; } - } - public class VariableElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.Variable"); - private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1); - private final RuleCall cNameIDTerminalRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0); - - //Variable: - // name=ID; - @Override public ParserRule getRule() { return rule; } - - //name=ID - public Assignment getNameAssignment() { return cNameAssignment; } - - //ID - public RuleCall getNameIDTerminalRuleCall_0() { return cNameIDTerminalRuleCall_0; } - } - public class AllInstancesElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AllInstances"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cColonKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cSymbolSymbolParserRuleCall_1_0 = (RuleCall)cSymbolAssignment_1.eContents().get(0); - - ///////////////////// - //// Complex Interpretation grammar - ///////////////////// - //AllInstances: - // ':' symbol=Symbol; - @Override public ParserRule getRule() { return rule; } + //"==" + public Keyword getEQEqualsSignEqualsSignKeyword_0_0() { return cEQEqualsSignEqualsSignKeyword_0_0; } - //':' symbol=Symbol - public Group getGroup() { return cGroup; } + //NOT_EQ="!=" + public EnumLiteralDeclaration getNOT_EQEnumLiteralDeclaration_1() { return cNOT_EQEnumLiteralDeclaration_1; } - //':' - public Keyword getColonKeyword_0() { return cColonKeyword_0; } + //"!=" + public Keyword getNOT_EQExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQExclamationMarkEqualsSignKeyword_1_0; } - //symbol=Symbol - public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; } + //LESS="<" + public EnumLiteralDeclaration getLESSEnumLiteralDeclaration_2() { return cLESSEnumLiteralDeclaration_2; } - //Symbol - public RuleCall getSymbolSymbolParserRuleCall_1_0() { return cSymbolSymbolParserRuleCall_1_0; } - } - public class AllObjectsElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AllObjects"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Action cAllObjectsAction_0 = (Action)cGroup.eContents().get(0); - private final Keyword cAsteriskKeyword_1 = (Keyword)cGroup.eContents().get(1); + //"<" + public Keyword getLESSLessThanSignKeyword_2_0() { return cLESSLessThanSignKeyword_2_0; } - //AllObjects: - // {AllObjects} '*'; - @Override public ParserRule getRule() { return rule; } + //LESS_EQ="<=" + public EnumLiteralDeclaration getLESS_EQEnumLiteralDeclaration_3() { return cLESS_EQEnumLiteralDeclaration_3; } - //{AllObjects} '*' - public Group getGroup() { return cGroup; } + //"<=" + public Keyword getLESS_EQLessThanSignEqualsSignKeyword_3_0() { return cLESS_EQLessThanSignEqualsSignKeyword_3_0; } - //{AllObjects} - public Action getAllObjectsAction_0() { return cAllObjectsAction_0; } + //GREATER=">" + public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_4() { return cGREATEREnumLiteralDeclaration_4; } - //'*' - public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; } - } - public class DefaultInterpretationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DefaultInterpretation"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cDefaultKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cInterpretationAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cInterpretationBasicInterpretationParserRuleCall_1_0 = (RuleCall)cInterpretationAssignment_1.eContents().get(0); - - ///////////////////// - //// Defaul Interpretation grammar - ///////////////////// - //DefaultInterpretation: - // 'default' interpretation=BasicInterpretation; - @Override public ParserRule getRule() { return rule; } + //">" + public Keyword getGREATERGreaterThanSignKeyword_4_0() { return cGREATERGreaterThanSignKeyword_4_0; } - //'default' interpretation=BasicInterpretation - public Group getGroup() { return cGroup; } + //GREATER_EQ=">=" + public EnumLiteralDeclaration getGREATER_EQEnumLiteralDeclaration_5() { return cGREATER_EQEnumLiteralDeclaration_5; } - //'default' - public Keyword getDefaultKeyword_0() { return cDefaultKeyword_0; } + //">=" + public Keyword getGREATER_EQGreaterThanSignEqualsSignKeyword_5_0() { return cGREATER_EQGreaterThanSignEqualsSignKeyword_5_0; } - //interpretation=BasicInterpretation - public Assignment getInterpretationAssignment_1() { return cInterpretationAssignment_1; } + //IN="in" + public EnumLiteralDeclaration getINEnumLiteralDeclaration_6() { return cINEnumLiteralDeclaration_6; } - //BasicInterpretation - public RuleCall getInterpretationBasicInterpretationParserRuleCall_1_0() { return cInterpretationBasicInterpretationParserRuleCall_1_0; } + //"in" + public Keyword getINInKeyword_6_0() { return cINInKeyword_6_0; } } - public class CDInterpretationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.CDInterpretation"); + public class AdditiveBinaryOperatorElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AdditiveBinaryOperator"); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); - private final RuleCall cClassInterpretationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); - private final RuleCall cEnumInterpretationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); - private final RuleCall cGlobalRelationInterpretationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); - - ///////////////////// - //// Advanced Class-Diagram interpretations - ///////////////////// - //CDInterpretation: - // ClassInterpretation | EnumInterpretation | GlobalRelationInterpretation; - @Override public ParserRule getRule() { return rule; } - - //ClassInterpretation | EnumInterpretation | GlobalRelationInterpretation - public Alternatives getAlternatives() { return cAlternatives; } - - //ClassInterpretation - public RuleCall getClassInterpretationParserRuleCall_0() { return cClassInterpretationParserRuleCall_0; } - - //EnumInterpretation - public RuleCall getEnumInterpretationParserRuleCall_1() { return cEnumInterpretationParserRuleCall_1; } - - //GlobalRelationInterpretation - public RuleCall getGlobalRelationInterpretationParserRuleCall_2() { return cGlobalRelationInterpretationParserRuleCall_2; } - } - public class ClassInterpretationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ClassInterpretation"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cAbstractAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0); - private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cSymbolAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cSymbolModelSymbolParserRuleCall_2_0 = (RuleCall)cSymbolAssignment_2.eContents().get(0); - private final Group cGroup_3 = (Group)cGroup.eContents().get(3); - private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0); - private final Assignment cSupertypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1); - private final RuleCall cSupertypesModelSymbolParserRuleCall_3_1_0 = (RuleCall)cSupertypesAssignment_3_1.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); - private final Assignment cFieltAssignment_5 = (Assignment)cGroup.eContents().get(5); - private final RuleCall cFieltFieldRelationInterpretationParserRuleCall_5_0 = (RuleCall)cFieltAssignment_5.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6); + private final EnumLiteralDeclaration cADDEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cADDPlusSignKeyword_0_0 = (Keyword)cADDEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cSUBEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cSUBHyphenMinusKeyword_1_0 = (Keyword)cSUBEnumLiteralDeclaration_1.eContents().get(0); - //ClassInterpretation: - // abstract?='abstract'? 'class' symbol=ModelSymbol ('extends' supertypes+=ModelSymbol+)? '{' - // fielt+=FieldRelationInterpretation* - // '}'; - @Override public ParserRule getRule() { return rule; } + //enum AdditiveBinaryOperator returns BinaryOperator: + // ADD="+" | SUB="-"; + public EnumRule getRule() { return rule; } - //abstract?='abstract'? 'class' symbol=ModelSymbol ('extends' supertypes+=ModelSymbol+)? '{' - //fielt+=FieldRelationInterpretation* '}' - public Group getGroup() { return cGroup; } + //ADD="+" | SUB="-" + public Alternatives getAlternatives() { return cAlternatives; } - //abstract?='abstract'? - public Assignment getAbstractAssignment_0() { return cAbstractAssignment_0; } + //ADD="+" + public EnumLiteralDeclaration getADDEnumLiteralDeclaration_0() { return cADDEnumLiteralDeclaration_0; } - //'abstract' - public Keyword getAbstractAbstractKeyword_0_0() { return cAbstractAbstractKeyword_0_0; } + //"+" + public Keyword getADDPlusSignKeyword_0_0() { return cADDPlusSignKeyword_0_0; } - //'class' - public Keyword getClassKeyword_1() { return cClassKeyword_1; } + //SUB="-" + public EnumLiteralDeclaration getSUBEnumLiteralDeclaration_1() { return cSUBEnumLiteralDeclaration_1; } - //symbol=ModelSymbol - public Assignment getSymbolAssignment_2() { return cSymbolAssignment_2; } + //"-" + public Keyword getSUBHyphenMinusKeyword_1_0() { return cSUBHyphenMinusKeyword_1_0; } + } + public class MultiplicativeBinaryOperatorElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicativeBinaryOperator"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cMULEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cMULAsteriskKeyword_0_0 = (Keyword)cMULEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cDIVEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cDIVSolidusKeyword_1_0 = (Keyword)cDIVEnumLiteralDeclaration_1.eContents().get(0); - //ModelSymbol - public RuleCall getSymbolModelSymbolParserRuleCall_2_0() { return cSymbolModelSymbolParserRuleCall_2_0; } + //enum MultiplicativeBinaryOperator returns BinaryOperator: + // MUL="*" | DIV="/"; + public EnumRule getRule() { return rule; } - //('extends' supertypes+=ModelSymbol+)? - public Group getGroup_3() { return cGroup_3; } + //MUL="*" | DIV="/" + public Alternatives getAlternatives() { return cAlternatives; } - //'extends' - public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; } + //MUL="*" + public EnumLiteralDeclaration getMULEnumLiteralDeclaration_0() { return cMULEnumLiteralDeclaration_0; } - //supertypes+=ModelSymbol+ - public Assignment getSupertypesAssignment_3_1() { return cSupertypesAssignment_3_1; } + //"*" + public Keyword getMULAsteriskKeyword_0_0() { return cMULAsteriskKeyword_0_0; } - //ModelSymbol - public RuleCall getSupertypesModelSymbolParserRuleCall_3_1_0() { return cSupertypesModelSymbolParserRuleCall_3_1_0; } + //DIV="/" + public EnumLiteralDeclaration getDIVEnumLiteralDeclaration_1() { return cDIVEnumLiteralDeclaration_1; } - //'{' - public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; } + //"/" + public Keyword getDIVSolidusKeyword_1_0() { return cDIVSolidusKeyword_1_0; } + } + public class ExponentialOpElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ExponentialOp"); + private final EnumLiteralDeclaration cPOWEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1); + private final Keyword cPOWCircumflexAccentKeyword_0 = (Keyword)cPOWEnumLiteralDeclaration.eContents().get(0); - //fielt+=FieldRelationInterpretation* - public Assignment getFieltAssignment_5() { return cFieltAssignment_5; } + //enum ExponentialOp returns BinaryOperator: + // POW="^"; + public EnumRule getRule() { return rule; } - //FieldRelationInterpretation - public RuleCall getFieltFieldRelationInterpretationParserRuleCall_5_0() { return cFieltFieldRelationInterpretationParserRuleCall_5_0; } + //POW="^" + public EnumLiteralDeclaration getPOWEnumLiteralDeclaration() { return cPOWEnumLiteralDeclaration; } - //'}' - public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; } + //"^" + public Keyword getPOWCircumflexAccentKeyword_0() { return cPOWCircumflexAccentKeyword_0; } } - public class EnumInterpretationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.EnumInterpretation"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Keyword cEnumKeyword_0 = (Keyword)cGroup.eContents().get(0); - private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cSymbolModelSymbolParserRuleCall_1_0 = (RuleCall)cSymbolAssignment_1.eContents().get(0); - private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cObjectsAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cObjectsNamedObjectParserRuleCall_3_0 = (RuleCall)cObjectsAssignment_3.eContents().get(0); - private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4); - - //EnumInterpretation: - // 'enum' Symbol=ModelSymbol '{' objects+=NamedObject+ '}'; - @Override public ParserRule getRule() { return rule; } - - //'enum' Symbol=ModelSymbol '{' objects+=NamedObject+ '}' - public Group getGroup() { return cGroup; } - - //'enum' - public Keyword getEnumKeyword_0() { return cEnumKeyword_0; } + public class UnaryOpElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.UnaryOp"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cNEGEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cNEGExclamationMarkKeyword_0_0 = (Keyword)cNEGEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cPLUSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cPLUSPlusSignKeyword_1_0 = (Keyword)cPLUSEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cMINUSEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cMINUSHyphenMinusKeyword_2_0 = (Keyword)cMINUSEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cMAYEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cMAYMayKeyword_3_0 = (Keyword)cMAYEnumLiteralDeclaration_3.eContents().get(0); + private final EnumLiteralDeclaration cMUSTEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); + private final Keyword cMUSTMustKeyword_4_0 = (Keyword)cMUSTEnumLiteralDeclaration_4.eContents().get(0); + private final EnumLiteralDeclaration cCURRENTEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); + private final Keyword cCURRENTCurrentKeyword_5_0 = (Keyword)cCURRENTEnumLiteralDeclaration_5.eContents().get(0); + + //enum UnaryOp: + // NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current"; + public EnumRule getRule() { return rule; } + + //NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current" + public Alternatives getAlternatives() { return cAlternatives; } - //Symbol=ModelSymbol - public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; } + //NEG="!" + public EnumLiteralDeclaration getNEGEnumLiteralDeclaration_0() { return cNEGEnumLiteralDeclaration_0; } - //ModelSymbol - public RuleCall getSymbolModelSymbolParserRuleCall_1_0() { return cSymbolModelSymbolParserRuleCall_1_0; } + //"!" + public Keyword getNEGExclamationMarkKeyword_0_0() { return cNEGExclamationMarkKeyword_0_0; } - //'{' - public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; } + //PLUS="+" + public EnumLiteralDeclaration getPLUSEnumLiteralDeclaration_1() { return cPLUSEnumLiteralDeclaration_1; } - //objects+=NamedObject+ - public Assignment getObjectsAssignment_3() { return cObjectsAssignment_3; } + //"+" + public Keyword getPLUSPlusSignKeyword_1_0() { return cPLUSPlusSignKeyword_1_0; } - //NamedObject - public RuleCall getObjectsNamedObjectParserRuleCall_3_0() { return cObjectsNamedObjectParserRuleCall_3_0; } + //MINUS="-" + public EnumLiteralDeclaration getMINUSEnumLiteralDeclaration_2() { return cMINUSEnumLiteralDeclaration_2; } - //'}' - public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; } - } - public class FieldRelationInterpretationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.FieldRelationInterpretation"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cContainmentAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final Keyword cContainmentContainmentKeyword_0_0 = (Keyword)cContainmentAssignment_0.eContents().get(0); - private final Assignment cSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1); - private final RuleCall cSymbolModelSymbolParserRuleCall_1_0 = (RuleCall)cSymbolAssignment_1.eContents().get(0); - private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2); - private final Assignment cMultiplicityAssignment_3 = (Assignment)cGroup.eContents().get(3); - private final RuleCall cMultiplicityMultiplicityDefinitionParserRuleCall_3_0 = (RuleCall)cMultiplicityAssignment_3.eContents().get(0); - private final Assignment cTargetAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cTargetSymbolParserRuleCall_4_0 = (RuleCall)cTargetAssignment_4.eContents().get(0); + //"-" + public Keyword getMINUSHyphenMinusKeyword_2_0() { return cMINUSHyphenMinusKeyword_2_0; } - //FieldRelationInterpretation: - // containment?='containment'? symbol=ModelSymbol ':' multiplicity=MultiplicityDefinition? target=Symbol; - @Override public ParserRule getRule() { return rule; } + //MAY="may" + public EnumLiteralDeclaration getMAYEnumLiteralDeclaration_3() { return cMAYEnumLiteralDeclaration_3; } - //containment?='containment'? symbol=ModelSymbol ':' multiplicity=MultiplicityDefinition? target=Symbol - public Group getGroup() { return cGroup; } + //"may" + public Keyword getMAYMayKeyword_3_0() { return cMAYMayKeyword_3_0; } - //containment?='containment'? - public Assignment getContainmentAssignment_0() { return cContainmentAssignment_0; } + //MUST="must" + public EnumLiteralDeclaration getMUSTEnumLiteralDeclaration_4() { return cMUSTEnumLiteralDeclaration_4; } - //'containment' - public Keyword getContainmentContainmentKeyword_0_0() { return cContainmentContainmentKeyword_0_0; } + //"must" + public Keyword getMUSTMustKeyword_4_0() { return cMUSTMustKeyword_4_0; } - //symbol=ModelSymbol - public Assignment getSymbolAssignment_1() { return cSymbolAssignment_1; } + //CURRENT="current" + public EnumLiteralDeclaration getCURRENTEnumLiteralDeclaration_5() { return cCURRENTEnumLiteralDeclaration_5; } - //ModelSymbol - public RuleCall getSymbolModelSymbolParserRuleCall_1_0() { return cSymbolModelSymbolParserRuleCall_1_0; } + //"current" + public Keyword getCURRENTCurrentKeyword_5_0() { return cCURRENTCurrentKeyword_5_0; } + } + public class AggregationOpElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.AggregationOp"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cONLYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cONLYOnlyKeyword_0_0 = (Keyword)cONLYEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cSUMEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cSUMSumKeyword_1_0 = (Keyword)cSUMEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cPRODEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cPRODProdKeyword_2_0 = (Keyword)cPRODEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cAVGEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cAVGAvgKeyword_3_0 = (Keyword)cAVGEnumLiteralDeclaration_3.eContents().get(0); + private final EnumLiteralDeclaration cMINEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4); + private final Keyword cMINMinKeyword_4_0 = (Keyword)cMINEnumLiteralDeclaration_4.eContents().get(0); + private final EnumLiteralDeclaration cMAXEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5); + private final Keyword cMAXMaxKeyword_5_0 = (Keyword)cMAXEnumLiteralDeclaration_5.eContents().get(0); + + //enum AggregationOp: + // ONLY="only" | SUM="sum" | PROD="prod" | AVG="avg" | MIN="min" | MAX="max"; + public EnumRule getRule() { return rule; } + + //ONLY="only" | SUM="sum" | PROD="prod" | AVG="avg" | MIN="min" | MAX="max" + public Alternatives getAlternatives() { return cAlternatives; } - //':' - public Keyword getColonKeyword_2() { return cColonKeyword_2; } + //ONLY="only" + public EnumLiteralDeclaration getONLYEnumLiteralDeclaration_0() { return cONLYEnumLiteralDeclaration_0; } - //multiplicity=MultiplicityDefinition? - public Assignment getMultiplicityAssignment_3() { return cMultiplicityAssignment_3; } + //"only" + public Keyword getONLYOnlyKeyword_0_0() { return cONLYOnlyKeyword_0_0; } - //MultiplicityDefinition - public RuleCall getMultiplicityMultiplicityDefinitionParserRuleCall_3_0() { return cMultiplicityMultiplicityDefinitionParserRuleCall_3_0; } + //SUM="sum" + public EnumLiteralDeclaration getSUMEnumLiteralDeclaration_1() { return cSUMEnumLiteralDeclaration_1; } - //target=Symbol - public Assignment getTargetAssignment_4() { return cTargetAssignment_4; } + //"sum" + public Keyword getSUMSumKeyword_1_0() { return cSUMSumKeyword_1_0; } - //Symbol - public RuleCall getTargetSymbolParserRuleCall_4_0() { return cTargetSymbolParserRuleCall_4_0; } - } - public class GlobalRelationInterpretationElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.GlobalRelationInterpretation"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cContainmentAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final Keyword cContainmentContainmentKeyword_0_0 = (Keyword)cContainmentAssignment_0.eContents().get(0); - private final Keyword cRelationKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Assignment cSymbolAssignment_2 = (Assignment)cGroup.eContents().get(2); - private final RuleCall cSymbolModelSymbolParserRuleCall_2_0 = (RuleCall)cSymbolAssignment_2.eContents().get(0); - private final Keyword cColonKeyword_3 = (Keyword)cGroup.eContents().get(3); - private final Assignment cSourceMultiplicityAssignment_4 = (Assignment)cGroup.eContents().get(4); - private final RuleCall cSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0 = (RuleCall)cSourceMultiplicityAssignment_4.eContents().get(0); - private final Assignment cSourceAssignment_5 = (Assignment)cGroup.eContents().get(5); - private final RuleCall cSourceSymbolParserRuleCall_5_0 = (RuleCall)cSourceAssignment_5.eContents().get(0); - private final Assignment cTargetMultiplicityAssignment_6 = (Assignment)cGroup.eContents().get(6); - private final RuleCall cTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0 = (RuleCall)cTargetMultiplicityAssignment_6.eContents().get(0); - private final Assignment cTargetAssignment_7 = (Assignment)cGroup.eContents().get(7); - private final RuleCall cTargetSymbolParserRuleCall_7_0 = (RuleCall)cTargetAssignment_7.eContents().get(0); - - //GlobalRelationInterpretation: - // containment?='containment'? 'relation' symbol=ModelSymbol ':' sourceMultiplicity=MultiplicityDefinition? - // source=Symbol targetMultiplicity=MultiplicityDefinition? target=Symbol; - @Override public ParserRule getRule() { return rule; } + //PROD="prod" + public EnumLiteralDeclaration getPRODEnumLiteralDeclaration_2() { return cPRODEnumLiteralDeclaration_2; } - //containment?='containment'? 'relation' symbol=ModelSymbol ':' sourceMultiplicity=MultiplicityDefinition? source=Symbol - //targetMultiplicity=MultiplicityDefinition? target=Symbol - public Group getGroup() { return cGroup; } + //"prod" + public Keyword getPRODProdKeyword_2_0() { return cPRODProdKeyword_2_0; } - //containment?='containment'? - public Assignment getContainmentAssignment_0() { return cContainmentAssignment_0; } + //AVG="avg" + public EnumLiteralDeclaration getAVGEnumLiteralDeclaration_3() { return cAVGEnumLiteralDeclaration_3; } - //'containment' - public Keyword getContainmentContainmentKeyword_0_0() { return cContainmentContainmentKeyword_0_0; } + //"avg" + public Keyword getAVGAvgKeyword_3_0() { return cAVGAvgKeyword_3_0; } - //'relation' - public Keyword getRelationKeyword_1() { return cRelationKeyword_1; } + //MIN="min" + public EnumLiteralDeclaration getMINEnumLiteralDeclaration_4() { return cMINEnumLiteralDeclaration_4; } - //symbol=ModelSymbol - public Assignment getSymbolAssignment_2() { return cSymbolAssignment_2; } + //"min" + public Keyword getMINMinKeyword_4_0() { return cMINMinKeyword_4_0; } - //ModelSymbol - public RuleCall getSymbolModelSymbolParserRuleCall_2_0() { return cSymbolModelSymbolParserRuleCall_2_0; } + //MAX="max" + public EnumLiteralDeclaration getMAXEnumLiteralDeclaration_5() { return cMAXEnumLiteralDeclaration_5; } - //':' - public Keyword getColonKeyword_3() { return cColonKeyword_3; } + //"max" + public Keyword getMAXMaxKeyword_5_0() { return cMAXMaxKeyword_5_0; } + } + public class LogicValueElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.LogicValue"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cTRUEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cTRUETrueKeyword_0_0 = (Keyword)cTRUEEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cFALSEFalseKeyword_1_0 = (Keyword)cFALSEEnumLiteralDeclaration_1.eContents().get(0); + private final EnumLiteralDeclaration cUNKNOWNEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2); + private final Keyword cUNKNOWNUnknownKeyword_2_0 = (Keyword)cUNKNOWNEnumLiteralDeclaration_2.eContents().get(0); + private final EnumLiteralDeclaration cERROREnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3); + private final Keyword cERRORErrorKeyword_3_0 = (Keyword)cERROREnumLiteralDeclaration_3.eContents().get(0); + + //enum LogicValue: + // TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error"; + public EnumRule getRule() { return rule; } + + //TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error" + public Alternatives getAlternatives() { return cAlternatives; } - //sourceMultiplicity=MultiplicityDefinition? - public Assignment getSourceMultiplicityAssignment_4() { return cSourceMultiplicityAssignment_4; } + //TRUE="true" + public EnumLiteralDeclaration getTRUEEnumLiteralDeclaration_0() { return cTRUEEnumLiteralDeclaration_0; } - //MultiplicityDefinition - public RuleCall getSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0() { return cSourceMultiplicityMultiplicityDefinitionParserRuleCall_4_0; } + //"true" + public Keyword getTRUETrueKeyword_0_0() { return cTRUETrueKeyword_0_0; } - //source=Symbol - public Assignment getSourceAssignment_5() { return cSourceAssignment_5; } + //FALSE="false" + public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_1() { return cFALSEEnumLiteralDeclaration_1; } - //Symbol - public RuleCall getSourceSymbolParserRuleCall_5_0() { return cSourceSymbolParserRuleCall_5_0; } + //"false" + public Keyword getFALSEFalseKeyword_1_0() { return cFALSEFalseKeyword_1_0; } - //targetMultiplicity=MultiplicityDefinition? - public Assignment getTargetMultiplicityAssignment_6() { return cTargetMultiplicityAssignment_6; } + //UNKNOWN="unknown" + public EnumLiteralDeclaration getUNKNOWNEnumLiteralDeclaration_2() { return cUNKNOWNEnumLiteralDeclaration_2; } - //MultiplicityDefinition - public RuleCall getTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0() { return cTargetMultiplicityMultiplicityDefinitionParserRuleCall_6_0; } + //"unknown" + public Keyword getUNKNOWNUnknownKeyword_2_0() { return cUNKNOWNUnknownKeyword_2_0; } - //target=Symbol - public Assignment getTargetAssignment_7() { return cTargetAssignment_7; } + //ERROR="error" + public EnumLiteralDeclaration getERROREnumLiteralDeclaration_3() { return cERROREnumLiteralDeclaration_3; } - //Symbol - public RuleCall getTargetSymbolParserRuleCall_7_0() { return cTargetSymbolParserRuleCall_7_0; } + //"error" + public Keyword getERRORErrorKeyword_3_0() { return cERRORErrorKeyword_3_0; } } - public class MultiplicityDefinitionElements extends AbstractParserRuleElementFinder { - private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.MultiplicityDefinition"); - private final Group cGroup = (Group)rule.eContents().get(1); - private final Assignment cLowerAssignment_0 = (Assignment)cGroup.eContents().get(0); - private final RuleCall cLowerINTTerminalRuleCall_0_0 = (RuleCall)cLowerAssignment_0.eContents().get(0); - private final Keyword cFullStopFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1); - private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); - private final Assignment cUpperAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0); - private final RuleCall cUpperINTTerminalRuleCall_2_0_0 = (RuleCall)cUpperAssignment_2_0.eContents().get(0); - private final Assignment cUnlimitedUpperAssignment_2_1 = (Assignment)cAlternatives_2.eContents().get(1); - private final Keyword cUnlimitedUpperAsteriskKeyword_2_1_0 = (Keyword)cUnlimitedUpperAssignment_2_1.eContents().get(0); - - //MultiplicityDefinition: - // lower=INT '..' (upper=INT | unlimitedUpper?='*'); - @Override public ParserRule getRule() { return rule; } - - //lower=INT '..' (upper=INT | unlimitedUpper?='*') - public Group getGroup() { return cGroup; } - - //lower=INT - public Assignment getLowerAssignment_0() { return cLowerAssignment_0; } - - //INT - public RuleCall getLowerINTTerminalRuleCall_0_0() { return cLowerINTTerminalRuleCall_0_0; } + public class ObjectiveKindElements extends AbstractEnumRuleElementFinder { + private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.ObjectiveKind"); + private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); + private final EnumLiteralDeclaration cMINIMIZEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0); + private final Keyword cMINIMIZEMinimizeKeyword_0_0 = (Keyword)cMINIMIZEEnumLiteralDeclaration_0.eContents().get(0); + private final EnumLiteralDeclaration cMAXIMIZEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1); + private final Keyword cMAXIMIZEMaximizeKeyword_1_0 = (Keyword)cMAXIMIZEEnumLiteralDeclaration_1.eContents().get(0); - //'..' - public Keyword getFullStopFullStopKeyword_1() { return cFullStopFullStopKeyword_1; } + //enum ObjectiveKind: + // MINIMIZE="minimize" | MAXIMIZE="maximize"; + public EnumRule getRule() { return rule; } - //upper=INT | unlimitedUpper?='*' - public Alternatives getAlternatives_2() { return cAlternatives_2; } + //MINIMIZE="minimize" | MAXIMIZE="maximize" + public Alternatives getAlternatives() { return cAlternatives; } - //upper=INT - public Assignment getUpperAssignment_2_0() { return cUpperAssignment_2_0; } + //MINIMIZE="minimize" + public EnumLiteralDeclaration getMINIMIZEEnumLiteralDeclaration_0() { return cMINIMIZEEnumLiteralDeclaration_0; } - //INT - public RuleCall getUpperINTTerminalRuleCall_2_0_0() { return cUpperINTTerminalRuleCall_2_0_0; } + //"minimize" + public Keyword getMINIMIZEMinimizeKeyword_0_0() { return cMINIMIZEMinimizeKeyword_0_0; } - //unlimitedUpper?='*' - public Assignment getUnlimitedUpperAssignment_2_1() { return cUnlimitedUpperAssignment_2_1; } + //MAXIMIZE="maximize" + public EnumLiteralDeclaration getMAXIMIZEEnumLiteralDeclaration_1() { return cMAXIMIZEEnumLiteralDeclaration_1; } - //'*' - public Keyword getUnlimitedUpperAsteriskKeyword_2_1_0() { return cUnlimitedUpperAsteriskKeyword_2_1_0; } + //"maximize" + public Keyword getMAXIMIZEMaximizeKeyword_1_0() { return cMAXIMIZEMaximizeKeyword_1_0; } } - private final ProblemElements pProblem; private final StatementElements pStatement; - private final TerminalRule tSTRING; - private final REALLiteralElements pREALLiteral; - private final INTLiteralElements pINTLiteral; - private final BooleanValueElements pBooleanValue; - private final TruthValueElements pTruthValue; - private final InterpretationElements pInterpretation; - private final BasicInterpretationElements pBasicInterpretation; - private final SymbolElements pSymbol; - private final ModelSymbolElements pModelSymbol; - private final PartialitySymbolElements pPartialitySymbol; - private final ExistSymbolElements pExistSymbol; - private final EqualsSymbolElements pEqualsSymbol; - private final DataSymbolElements pDataSymbol; - private final BooleanSymbolElements pBooleanSymbol; - private final IntegerSymbolElements pIntegerSymbol; - private final RealSymbolElements pRealSymbol; - private final StringSymbolElements pStringSymbol; - private final ComplexObjectElements pComplexObject; - private final ObjectElements pObject; - private final NamedObjectElements pNamedObject; - private final UnnamedObjectElements pUnnamedObject; - private final DataObjectElements pDataObject; - private final BooleanObjectElements pBooleanObject; - private final IntObjectElements pIntObject; - private final RealObjectElements pRealObject; - private final StringObjectElements pStringObject; - private final PredicateElements pPredicate; - private final ParameterElements pParameter; - private final PatternBodyElements pPatternBody; - private final PolarityElements pPolarity; - private final ConstraintElements pConstraint; - private final ClosureTypeElements pClosureType; + private final AssertionOrDefinitionElements pAssertionOrDefinition; + private final PredicateDefinitionElements pPredicateDefinition; + private final UnnamedErrorPrediateDefinitionElements pUnnamedErrorPrediateDefinition; + private final DefaultDefinitionElements pDefaultDefinition; + private final ExternPredicateDefinitionElements pExternPredicateDefinition; + private final MetricTypeElements eMetricType; + private final MetricDefinitionElements pMetricDefinition; + private final ExternMetricDefinitionElements pExternMetricDefinition; + private final ExpressionElements pExpression; + private final IfElseElements pIfElse; + private final DisjunctiveExpressionElements pDisjunctiveExpression; + private final CaseElements pCase; + private final ConjunctiveExpressionElements pConjunctiveExpression; + private final BinaryOperatorElements eBinaryOperator; + private final ComparisonOperatorElements eComparisonOperator; + private final ComparisonExpressionElements pComparisonExpression; + private final AdditiveBinaryOperatorElements eAdditiveBinaryOperator; + private final AdditiveExpressionElements pAdditiveExpression; + private final MultiplicativeBinaryOperatorElements eMultiplicativeBinaryOperator; + private final MultiplicativeExpressionElements pMultiplicativeExpression; + private final ExponentialOpElements eExponentialOp; + private final ExponentialExpressionElements pExponentialExpression; + private final UnaryOpElements eUnaryOp; + private final UnaryExpressionElements pUnaryExpression; + private final AggregationExpressionElements pAggregationExpression; + private final CountElements pCount; + private final AggregationOpElements eAggregationOp; + private final AggregationElements pAggregation; + private final AtomicExpressionElements pAtomicExpression; + private final CallElements pCall; + private final ArgumentListElements pArgumentList; + private final ArgumentElements pArgument; + private final ExpressionArgumentElements pExpressionArgument; + private final StarArgumentElements pStarArgument; + private final TypedArgumentElements pTypedArgument; + private final TypedStarArgumentElements pTypedStarArgument; + private final ReferenceElements pReference; + private final IntervalElements pInterval; private final LiteralElements pLiteral; - private final VariableElements pVariable; - private final AllInstancesElements pAllInstances; - private final AllObjectsElements pAllObjects; - private final DefaultInterpretationElements pDefaultInterpretation; - private final CDInterpretationElements pCDInterpretation; - private final ClassInterpretationElements pClassInterpretation; - private final EnumInterpretationElements pEnumInterpretation; - private final FieldRelationInterpretationElements pFieldRelationInterpretation; - private final GlobalRelationInterpretationElements pGlobalRelationInterpretation; - private final MultiplicityDefinitionElements pMultiplicityDefinition; + private final LogicValueElements eLogicValue; + private final LogicLiteralElements pLogicLiteral; + private final NumericLiteralElements pNumericLiteral; + private final InfinityLiteralElements pInfinityLiteral; + private final EmptyIntervalLiteralElements pEmptyIntervalLiteral; + private final StringLiteralElements pStringLiteral; + private final ClassDefinitionElements pClassDefinition; + private final MemberDefinitionElements pMemberDefinition; + private final MultiplicityElements pMultiplicity; + private final ManyMultiplicityElements pManyMultiplicity; + private final ExactMultiplicityElements pExactMultiplicity; + private final BoundedMultiplicityElements pBoundedMultiplicity; + private final ScopeDefinitionElements pScopeDefinition; + private final ExactScopeDefinitionElements pExactScopeDefinition; + private final BoundedScopeDefinitionElements pBoundedScopeDefinition; + private final LowerBoundedScopeDefinitionElements pLowerBoundedScopeDefinition; + private final ObjectiveKindElements eObjectiveKind; + private final ObjectiveDefinitionElements pObjectiveDefinition; + private final UpperMultiplictyElements pUpperMultiplicty; + private final RealElements pReal; + private final QualifiedNameElements pQualifiedName; + private final TerminalRule tSTRING; + private final TerminalRule tQUOTED_ID; + private final TerminalRule tPLUS; + private final TerminalRule tSTAR; + private final TerminalRule tDOT; + private final NamedElementElements pNamedElement; private final Grammar grammar; @@ -1490,49 +2600,72 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { this.gaTerminals = gaTerminals; this.pProblem = new ProblemElements(); this.pStatement = new StatementElements(); - this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); - this.pREALLiteral = new REALLiteralElements(); - this.pINTLiteral = new INTLiteralElements(); - this.pBooleanValue = new BooleanValueElements(); - this.pTruthValue = new TruthValueElements(); - this.pInterpretation = new InterpretationElements(); - this.pBasicInterpretation = new BasicInterpretationElements(); - this.pSymbol = new SymbolElements(); - this.pModelSymbol = new ModelSymbolElements(); - this.pPartialitySymbol = new PartialitySymbolElements(); - this.pExistSymbol = new ExistSymbolElements(); - this.pEqualsSymbol = new EqualsSymbolElements(); - this.pDataSymbol = new DataSymbolElements(); - this.pBooleanSymbol = new BooleanSymbolElements(); - this.pIntegerSymbol = new IntegerSymbolElements(); - this.pRealSymbol = new RealSymbolElements(); - this.pStringSymbol = new StringSymbolElements(); - this.pComplexObject = new ComplexObjectElements(); - this.pObject = new ObjectElements(); - this.pNamedObject = new NamedObjectElements(); - this.pUnnamedObject = new UnnamedObjectElements(); - this.pDataObject = new DataObjectElements(); - this.pBooleanObject = new BooleanObjectElements(); - this.pIntObject = new IntObjectElements(); - this.pRealObject = new RealObjectElements(); - this.pStringObject = new StringObjectElements(); - this.pPredicate = new PredicateElements(); - this.pParameter = new ParameterElements(); - this.pPatternBody = new PatternBodyElements(); - this.pPolarity = new PolarityElements(); - this.pConstraint = new ConstraintElements(); - this.pClosureType = new ClosureTypeElements(); + this.pAssertionOrDefinition = new AssertionOrDefinitionElements(); + this.pPredicateDefinition = new PredicateDefinitionElements(); + this.pUnnamedErrorPrediateDefinition = new UnnamedErrorPrediateDefinitionElements(); + this.pDefaultDefinition = new DefaultDefinitionElements(); + this.pExternPredicateDefinition = new ExternPredicateDefinitionElements(); + this.eMetricType = new MetricTypeElements(); + this.pMetricDefinition = new MetricDefinitionElements(); + this.pExternMetricDefinition = new ExternMetricDefinitionElements(); + this.pExpression = new ExpressionElements(); + this.pIfElse = new IfElseElements(); + this.pDisjunctiveExpression = new DisjunctiveExpressionElements(); + this.pCase = new CaseElements(); + this.pConjunctiveExpression = new ConjunctiveExpressionElements(); + this.eBinaryOperator = new BinaryOperatorElements(); + this.eComparisonOperator = new ComparisonOperatorElements(); + this.pComparisonExpression = new ComparisonExpressionElements(); + this.eAdditiveBinaryOperator = new AdditiveBinaryOperatorElements(); + this.pAdditiveExpression = new AdditiveExpressionElements(); + this.eMultiplicativeBinaryOperator = new MultiplicativeBinaryOperatorElements(); + this.pMultiplicativeExpression = new MultiplicativeExpressionElements(); + this.eExponentialOp = new ExponentialOpElements(); + this.pExponentialExpression = new ExponentialExpressionElements(); + this.eUnaryOp = new UnaryOpElements(); + this.pUnaryExpression = new UnaryExpressionElements(); + this.pAggregationExpression = new AggregationExpressionElements(); + this.pCount = new CountElements(); + this.eAggregationOp = new AggregationOpElements(); + this.pAggregation = new AggregationElements(); + this.pAtomicExpression = new AtomicExpressionElements(); + this.pCall = new CallElements(); + this.pArgumentList = new ArgumentListElements(); + this.pArgument = new ArgumentElements(); + this.pExpressionArgument = new ExpressionArgumentElements(); + this.pStarArgument = new StarArgumentElements(); + this.pTypedArgument = new TypedArgumentElements(); + this.pTypedStarArgument = new TypedStarArgumentElements(); + this.pReference = new ReferenceElements(); + this.pInterval = new IntervalElements(); this.pLiteral = new LiteralElements(); - this.pVariable = new VariableElements(); - this.pAllInstances = new AllInstancesElements(); - this.pAllObjects = new AllObjectsElements(); - this.pDefaultInterpretation = new DefaultInterpretationElements(); - this.pCDInterpretation = new CDInterpretationElements(); - this.pClassInterpretation = new ClassInterpretationElements(); - this.pEnumInterpretation = new EnumInterpretationElements(); - this.pFieldRelationInterpretation = new FieldRelationInterpretationElements(); - this.pGlobalRelationInterpretation = new GlobalRelationInterpretationElements(); - this.pMultiplicityDefinition = new MultiplicityDefinitionElements(); + this.eLogicValue = new LogicValueElements(); + this.pLogicLiteral = new LogicLiteralElements(); + this.pNumericLiteral = new NumericLiteralElements(); + this.pInfinityLiteral = new InfinityLiteralElements(); + this.pEmptyIntervalLiteral = new EmptyIntervalLiteralElements(); + this.pStringLiteral = new StringLiteralElements(); + this.pClassDefinition = new ClassDefinitionElements(); + this.pMemberDefinition = new MemberDefinitionElements(); + this.pMultiplicity = new MultiplicityElements(); + this.pManyMultiplicity = new ManyMultiplicityElements(); + this.pExactMultiplicity = new ExactMultiplicityElements(); + this.pBoundedMultiplicity = new BoundedMultiplicityElements(); + this.pScopeDefinition = new ScopeDefinitionElements(); + this.pExactScopeDefinition = new ExactScopeDefinitionElements(); + this.pBoundedScopeDefinition = new BoundedScopeDefinitionElements(); + this.pLowerBoundedScopeDefinition = new LowerBoundedScopeDefinitionElements(); + this.eObjectiveKind = new ObjectiveKindElements(); + this.pObjectiveDefinition = new ObjectiveDefinitionElements(); + this.pUpperMultiplicty = new UpperMultiplictyElements(); + this.pReal = new RealElements(); + this.pQualifiedName = new QualifiedNameElements(); + this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.STRING"); + this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.QUOTED_ID"); + this.tPLUS = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.PLUS"); + this.tSTAR = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.STAR"); + this.tDOT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.SolverLanguage.DOT"); + this.pNamedElement = new NamedElementElements(); } protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { @@ -1573,7 +2706,9 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { } //Statement: - // Interpretation | Predicate; + // (AssertionOrDefinition | PredicateDefinition | UnnamedErrorPrediateDefinition | DefaultDefinition | + // ExternPredicateDefinition | MetricDefinition | ExternMetricDefinition | ClassDefinition | ScopeDefinition | + // ObjectiveDefinition) DOT; public StatementElements getStatementAccess() { return pStatement; } @@ -1582,333 +2717,390 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getStatementAccess().getRule(); } - //@Override - //terminal STRING: - // '"' ('\\' . | !('\\' | '"'))* '"'; - public TerminalRule getSTRINGRule() { - return tSTRING; + //AssertionOrDefinition Statement: + // Expression ({Assertion.body=current} (":" range=Expression)? | {PredicateDefinition.head=current} ":-" + // body=Expression | {MetricDefinition.head=current} "=" body=Expression); + public AssertionOrDefinitionElements getAssertionOrDefinitionAccess() { + return pAssertionOrDefinition; } - //REALLiteral ecore::EBigDecimal: - // '-'? INT '.' INT; - public REALLiteralElements getREALLiteralAccess() { - return pREALLiteral; + public ParserRule getAssertionOrDefinitionRule() { + return getAssertionOrDefinitionAccess().getRule(); } - public ParserRule getREALLiteralRule() { - return getREALLiteralAccess().getRule(); + //PredicateDefinition: + // (functional?="functional" error?="error"? | error?="error" functional?="functional"?) head=Call ":-" body=Expression; + public PredicateDefinitionElements getPredicateDefinitionAccess() { + return pPredicateDefinition; } - //INTLiteral ecore::EInt: - // '-'? INT; - public INTLiteralElements getINTLiteralAccess() { - return pINTLiteral; + public ParserRule getPredicateDefinitionRule() { + return getPredicateDefinitionAccess().getRule(); } - public ParserRule getINTLiteralRule() { - return getINTLiteralAccess().getRule(); + //UnnamedErrorPrediateDefinition: + // "error" argumentList=ArgumentList ":-" body=Expression; + public UnnamedErrorPrediateDefinitionElements getUnnamedErrorPrediateDefinitionAccess() { + return pUnnamedErrorPrediateDefinition; } - //BooleanValue: - // {BooleanTrue} 'true' | 'false' {BooleanFalse}; - public BooleanValueElements getBooleanValueAccess() { - return pBooleanValue; + public ParserRule getUnnamedErrorPrediateDefinitionRule() { + return getUnnamedErrorPrediateDefinitionAccess().getRule(); } - public ParserRule getBooleanValueRule() { - return getBooleanValueAccess().getRule(); + //DefaultDefinition: + // "default" head=Call ":" range=Expression; + public DefaultDefinitionElements getDefaultDefinitionAccess() { + return pDefaultDefinition; } - //TruthValue: - // {True} 'true' | {False} 'false' | {Unknown} 'unknown' | {Error} 'error'; - public TruthValueElements getTruthValueAccess() { - return pTruthValue; + public ParserRule getDefaultDefinitionRule() { + return getDefaultDefinitionAccess().getRule(); } - public ParserRule getTruthValueRule() { - return getTruthValueAccess().getRule(); + //ExternPredicateDefinition: + // "extern" head=Call "."; + public ExternPredicateDefinitionElements getExternPredicateDefinitionAccess() { + return pExternPredicateDefinition; } - ///////////////////// - //// Core grammar - // /////////////////// - //Interpretation: - // BasicInterpretation | DefaultInterpretation | CDInterpretation; - public InterpretationElements getInterpretationAccess() { - return pInterpretation; + public ParserRule getExternPredicateDefinitionRule() { + return getExternPredicateDefinitionAccess().getRule(); } - public ParserRule getInterpretationRule() { - return getInterpretationAccess().getRule(); + //enum MetricType: + // INT="int" | REAL="real"; + public MetricTypeElements getMetricTypeAccess() { + return eMetricType; } - //BasicInterpretation: - // symbol=Symbol ('(' (objects+=ComplexObject (',' objects+=ComplexObject)*)? ')')? ':' value=TruthValue; - public BasicInterpretationElements getBasicInterpretationAccess() { - return pBasicInterpretation; + public EnumRule getMetricTypeRule() { + return getMetricTypeAccess().getRule(); } - public ParserRule getBasicInterpretationRule() { - return getBasicInterpretationAccess().getRule(); + //MetricDefinition: + // type=MetricType head=Expression "=" body=Expression; + public MetricDefinitionElements getMetricDefinitionAccess() { + return pMetricDefinition; } - //Symbol: - // ModelSymbol | PartialitySymbol | DataSymbol; - public SymbolElements getSymbolAccess() { - return pSymbol; + public ParserRule getMetricDefinitionRule() { + return getMetricDefinitionAccess().getRule(); } - public ParserRule getSymbolRule() { - return getSymbolAccess().getRule(); + //ExternMetricDefinition: + // "extern" type=MetricType head=Call; + public ExternMetricDefinitionElements getExternMetricDefinitionAccess() { + return pExternMetricDefinition; } - //ModelSymbol: - // name=ID; - public ModelSymbolElements getModelSymbolAccess() { - return pModelSymbol; + public ParserRule getExternMetricDefinitionRule() { + return getExternMetricDefinitionAccess().getRule(); } - public ParserRule getModelSymbolRule() { - return getModelSymbolAccess().getRule(); + //Expression: + // IfElse | DisjunctiveExpression; + public ExpressionElements getExpressionAccess() { + return pExpression; } - //PartialitySymbol: - // ExistSymbol | EqualsSymbol; - public PartialitySymbolElements getPartialitySymbolAccess() { - return pPartialitySymbol; + public ParserRule getExpressionRule() { + return getExpressionAccess().getRule(); } - public ParserRule getPartialitySymbolRule() { - return getPartialitySymbolAccess().getRule(); + //IfElse: + // "if" condition=Expression "then" then=Expression "else" else=Expression; + public IfElseElements getIfElseAccess() { + return pIfElse; } - //ExistSymbol: - // 'exists' {ExistSymbol}; - public ExistSymbolElements getExistSymbolAccess() { - return pExistSymbol; + public ParserRule getIfElseRule() { + return getIfElseAccess().getRule(); } - public ParserRule getExistSymbolRule() { - return getExistSymbolAccess().getRule(); + //DisjunctiveExpression Expression: + // ConjunctiveExpression ({Disjunction.children+=current} (";" children+=ConjunctiveExpression)+ | + // {Case.condition=current} "->" body=ConjunctiveExpression {Switch.cases+=current} (";" cases+=Case)*)?; + public DisjunctiveExpressionElements getDisjunctiveExpressionAccess() { + return pDisjunctiveExpression; } - //EqualsSymbol: - // 'equals' {EqualsSymbol}; - public EqualsSymbolElements getEqualsSymbolAccess() { - return pEqualsSymbol; + public ParserRule getDisjunctiveExpressionRule() { + return getDisjunctiveExpressionAccess().getRule(); } - public ParserRule getEqualsSymbolRule() { - return getEqualsSymbolAccess().getRule(); + //Case: + // condition=ConjunctiveExpression "->" body=ConjunctiveExpression; + public CaseElements getCaseAccess() { + return pCase; } - //DataSymbol: - // BooleanSymbol | IntegerSymbol | RealSymbol | StringSymbol; - public DataSymbolElements getDataSymbolAccess() { - return pDataSymbol; + public ParserRule getCaseRule() { + return getCaseAccess().getRule(); } - public ParserRule getDataSymbolRule() { - return getDataSymbolAccess().getRule(); + //ConjunctiveExpression Expression: + // ComparisonExpression ({Conjunction.children+=current} ("," children+=ComparisonExpression)+)?; + public ConjunctiveExpressionElements getConjunctiveExpressionAccess() { + return pConjunctiveExpression; } - //BooleanSymbol: - // 'bool' {BooleanSymbol}; - public BooleanSymbolElements getBooleanSymbolAccess() { - return pBooleanSymbol; + public ParserRule getConjunctiveExpressionRule() { + return getConjunctiveExpressionAccess().getRule(); } - public ParserRule getBooleanSymbolRule() { - return getBooleanSymbolAccess().getRule(); + //enum BinaryOperator: + // EQ | NOT_EQ | LESS | LESS_EQ | GREATER | GREATER_EQ | IN | ADD | SUB | MUL | DIV | POW; + public BinaryOperatorElements getBinaryOperatorAccess() { + return eBinaryOperator; } - //IntegerSymbol: - // 'int' {IntegerSymbol}; - public IntegerSymbolElements getIntegerSymbolAccess() { - return pIntegerSymbol; + public EnumRule getBinaryOperatorRule() { + return getBinaryOperatorAccess().getRule(); } - public ParserRule getIntegerSymbolRule() { - return getIntegerSymbolAccess().getRule(); + //enum ComparisonOperator returns BinaryOperator: + // EQ="==" | NOT_EQ="!=" | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | IN="in"; + public ComparisonOperatorElements getComparisonOperatorAccess() { + return eComparisonOperator; } - //RealSymbol: - // 'real' {RealSymbol}; - public RealSymbolElements getRealSymbolAccess() { - return pRealSymbol; + public EnumRule getComparisonOperatorRule() { + return getComparisonOperatorAccess().getRule(); } - public ParserRule getRealSymbolRule() { - return getRealSymbolAccess().getRule(); + //ComparisonExpression Expression: + // AdditiveExpression ({Comparison.left=current} op=ComparisonOperator right=AdditiveExpression)?; + public ComparisonExpressionElements getComparisonExpressionAccess() { + return pComparisonExpression; } - //StringSymbol: - // 'string' {StringSymbol}; - public StringSymbolElements getStringSymbolAccess() { - return pStringSymbol; + public ParserRule getComparisonExpressionRule() { + return getComparisonExpressionAccess().getRule(); } - public ParserRule getStringSymbolRule() { - return getStringSymbolAccess().getRule(); + //enum AdditiveBinaryOperator returns BinaryOperator: + // ADD="+" | SUB="-"; + public AdditiveBinaryOperatorElements getAdditiveBinaryOperatorAccess() { + return eAdditiveBinaryOperator; } - //ComplexObject: - // Object | AllInstances | AllObjects; - public ComplexObjectElements getComplexObjectAccess() { - return pComplexObject; + public EnumRule getAdditiveBinaryOperatorRule() { + return getAdditiveBinaryOperatorAccess().getRule(); } - public ParserRule getComplexObjectRule() { - return getComplexObjectAccess().getRule(); + //AdditiveExpression Expression: + // MultiplicativeExpression ({BinaryExpression.left=current} op=AdditiveBinaryOperator right=MultiplicativeExpression)*; + public AdditiveExpressionElements getAdditiveExpressionAccess() { + return pAdditiveExpression; } - //Object: - // NamedObject | UnnamedObject | DataObject; - public ObjectElements getObjectAccess() { - return pObject; + public ParserRule getAdditiveExpressionRule() { + return getAdditiveExpressionAccess().getRule(); } - public ParserRule getObjectRule() { - return getObjectAccess().getRule(); + //enum MultiplicativeBinaryOperator returns BinaryOperator: + // MUL="*" | DIV="/"; + public MultiplicativeBinaryOperatorElements getMultiplicativeBinaryOperatorAccess() { + return eMultiplicativeBinaryOperator; } - //NamedObject: - // "'" name=ID "'"; - public NamedObjectElements getNamedObjectAccess() { - return pNamedObject; + public EnumRule getMultiplicativeBinaryOperatorRule() { + return getMultiplicativeBinaryOperatorAccess().getRule(); } - public ParserRule getNamedObjectRule() { - return getNamedObjectAccess().getRule(); + //MultiplicativeExpression Expression: + // ExponentialExpression ({BinaryExpression.left=current} op=MultiplicativeBinaryOperator right=ExponentialExpression)*; + public MultiplicativeExpressionElements getMultiplicativeExpressionAccess() { + return pMultiplicativeExpression; } - //UnnamedObject: - // name=ID; - public UnnamedObjectElements getUnnamedObjectAccess() { - return pUnnamedObject; + public ParserRule getMultiplicativeExpressionRule() { + return getMultiplicativeExpressionAccess().getRule(); } - public ParserRule getUnnamedObjectRule() { - return getUnnamedObjectAccess().getRule(); + //enum ExponentialOp returns BinaryOperator: + // POW="^"; + public ExponentialOpElements getExponentialOpAccess() { + return eExponentialOp; } - //DataObject: - // BooleanObject | IntObject | RealObject | StringObject; - public DataObjectElements getDataObjectAccess() { - return pDataObject; + public EnumRule getExponentialOpRule() { + return getExponentialOpAccess().getRule(); } - public ParserRule getDataObjectRule() { - return getDataObjectAccess().getRule(); + //ExponentialExpression Expression: + // UnaryExpression ({BinaryExpression.left=current} op=ExponentialOp right=ExponentialExpression)?; + public ExponentialExpressionElements getExponentialExpressionAccess() { + return pExponentialExpression; } - //BooleanObject: - // value=BooleanValue; - public BooleanObjectElements getBooleanObjectAccess() { - return pBooleanObject; + public ParserRule getExponentialExpressionRule() { + return getExponentialExpressionAccess().getRule(); } - public ParserRule getBooleanObjectRule() { - return getBooleanObjectAccess().getRule(); + //enum UnaryOp: + // NEG="!" | PLUS="+" | MINUS="-" | MAY="may" | MUST="must" | CURRENT="current"; + public UnaryOpElements getUnaryOpAccess() { + return eUnaryOp; } - //IntObject: - // value=INTLiteral; - public IntObjectElements getIntObjectAccess() { - return pIntObject; + public EnumRule getUnaryOpRule() { + return getUnaryOpAccess().getRule(); } - public ParserRule getIntObjectRule() { - return getIntObjectAccess().getRule(); + //UnaryExpression Expression: + // AggregationExpression | {UnaryExpression} op=UnaryOp body=AggregationExpression; + public UnaryExpressionElements getUnaryExpressionAccess() { + return pUnaryExpression; } - //RealObject: - // value=REALLiteral; - public RealObjectElements getRealObjectAccess() { - return pRealObject; + public ParserRule getUnaryExpressionRule() { + return getUnaryExpressionAccess().getRule(); } - public ParserRule getRealObjectRule() { - return getRealObjectAccess().getRule(); + //AggregationExpression Expression: + // AtomicExpression | Count | Aggregation; + public AggregationExpressionElements getAggregationExpressionAccess() { + return pAggregationExpression; } - //StringObject: - // value=STRING; - public StringObjectElements getStringObjectAccess() { - return pStringObject; + public ParserRule getAggregationExpressionRule() { + return getAggregationExpressionAccess().getRule(); + } + + //Count: + // "count" "{" body=Expression "}"; + public CountElements getCountAccess() { + return pCount; + } + + public ParserRule getCountRule() { + return getCountAccess().getRule(); + } + + //enum AggregationOp: + // ONLY="only" | SUM="sum" | PROD="prod" | AVG="avg" | MIN="min" | MAX="max"; + public AggregationOpElements getAggregationOpAccess() { + return eAggregationOp; + } + + public EnumRule getAggregationOpRule() { + return getAggregationOpAccess().getRule(); + } + + //Aggregation: + // op=AggregationOp "{" body=Expression "|" condition=Expression "}"; + public AggregationElements getAggregationAccess() { + return pAggregation; + } + + public ParserRule getAggregationRule() { + return getAggregationAccess().getRule(); + } + + //AtomicExpression Expression: + // Reference ({Call.functor=current} -> argumentList=ArgumentList)? | Interval | Literal | "(" Expression ")"; + public AtomicExpressionElements getAtomicExpressionAccess() { + return pAtomicExpression; + } + + public ParserRule getAtomicExpressionRule() { + return getAtomicExpressionAccess().getRule(); + } + + //Call: + // functor=Reference (transitiveClosure?=STAR | reflexiveTransitiveClosure?=PLUS)? argumentList=ArgumentList; + public CallElements getCallAccess() { + return pCall; + } + + public ParserRule getCallRule() { + return getCallAccess().getRule(); + } + + //ArgumentList: + // {ArgumentList} "(" (arguments+=Argument ("," arguments+=Argument)*)? ")"; + public ArgumentListElements getArgumentListAccess() { + return pArgumentList; + } + + public ParserRule getArgumentListRule() { + return getArgumentListAccess().getRule(); + } + + //Argument: + // ExpressionArgument | StarArgument | TypedArgument | TypedStarArgument; + public ArgumentElements getArgumentAccess() { + return pArgument; } - public ParserRule getStringObjectRule() { - return getStringObjectAccess().getRule(); + public ParserRule getArgumentRule() { + return getArgumentAccess().getRule(); } - ///////////////////// - //// Predicte grammar - ///////////////////// - //Predicate: - // isError?='error'? symbol=ModelSymbol ('(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')')? ':-' ('false' | - // bodies+=PatternBody ('|' bodies+=PatternBody)*) '.'; - public PredicateElements getPredicateAccess() { - return pPredicate; + //ExpressionArgument: + // body=ComparisonExpression; + public ExpressionArgumentElements getExpressionArgumentAccess() { + return pExpressionArgument; } - public ParserRule getPredicateRule() { - return getPredicateAccess().getRule(); + public ParserRule getExpressionArgumentRule() { + return getExpressionArgumentAccess().getRule(); } - //Parameter: - // variable=Variable (':' type=Symbol)?; - public ParameterElements getParameterAccess() { - return pParameter; + //StarArgument: + // {StarArgument} "*"; + public StarArgumentElements getStarArgumentAccess() { + return pStarArgument; } - public ParserRule getParameterRule() { - return getParameterAccess().getRule(); + public ParserRule getStarArgumentRule() { + return getStarArgumentAccess().getRule(); } - //PatternBody: - // {PatternBody} ('true' | constraints+=Constraint*); - public PatternBodyElements getPatternBodyAccess() { - return pPatternBody; + //TypedArgument: + // type=[NamedElement|QualifiedName] variable=[NamedElement|QualifiedName]; + public TypedArgumentElements getTypedArgumentAccess() { + return pTypedArgument; } - public ParserRule getPatternBodyRule() { - return getPatternBodyAccess().getRule(); + public ParserRule getTypedArgumentRule() { + return getTypedArgumentAccess().getRule(); } - //Polarity: - // {Positive} '+' | {Negative} '-'; - public PolarityElements getPolarityAccess() { - return pPolarity; + //TypedStarArgument: + // type=[NamedElement|QualifiedName] "*"; + public TypedStarArgumentElements getTypedStarArgumentAccess() { + return pTypedStarArgument; } - public ParserRule getPolarityRule() { - return getPolarityAccess().getRule(); + public ParserRule getTypedStarArgumentRule() { + return getTypedStarArgumentAccess().getRule(); } - //Constraint: - // polarity=Polarity? symbol=ModelSymbol ('(' params+=Literal? (',' params+=Literal)* ')')? | closureType=ClosureType - // '(' params+=Literal? (',' params+=Literal)* ')'; - public ConstraintElements getConstraintAccess() { - return pConstraint; + //Reference: + // referred=[NamedElement|QualifiedName]; + public ReferenceElements getReferenceAccess() { + return pReference; } - public ParserRule getConstraintRule() { - return getConstraintAccess().getRule(); + public ParserRule getReferenceRule() { + return getReferenceAccess().getRule(); } - //ClosureType: - // {ReflexiveClosure} '*' | {IrreflexiveClosure} '+'; - public ClosureTypeElements getClosureTypeAccess() { - return pClosureType; + //Interval: + // "[" lowerBound=Expression ".." upperBound=Expression "]"; + public IntervalElements getIntervalAccess() { + return pInterval; } - public ParserRule getClosureTypeRule() { - return getClosureTypeAccess().getRule(); + public ParserRule getIntervalRule() { + return getIntervalAccess().getRule(); } //Literal: - // Variable | DataObject | NamedObject; + // LogicLiteral | NumericLiteral | InfinityLiteral | EmptyIntervalLiteral | StringLiteral; public LiteralElements getLiteralAccess() { return pLiteral; } @@ -1917,116 +3109,260 @@ public class SolverLanguageGrammarAccess extends AbstractGrammarElementFinder { return getLiteralAccess().getRule(); } - //Variable: - // name=ID; - public VariableElements getVariableAccess() { - return pVariable; + //enum LogicValue: + // TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error"; + public LogicValueElements getLogicValueAccess() { + return eLogicValue; } - public ParserRule getVariableRule() { - return getVariableAccess().getRule(); + public EnumRule getLogicValueRule() { + return getLogicValueAccess().getRule(); } - ///////////////////// - //// Complex Interpretation grammar - ///////////////////// - //AllInstances: - // ':' symbol=Symbol; - public AllInstancesElements getAllInstancesAccess() { - return pAllInstances; + //LogicLiteral: + // value=LogicValue; + public LogicLiteralElements getLogicLiteralAccess() { + return pLogicLiteral; } - public ParserRule getAllInstancesRule() { - return getAllInstancesAccess().getRule(); + public ParserRule getLogicLiteralRule() { + return getLogicLiteralAccess().getRule(); } - //AllObjects: - // {AllObjects} '*'; - public AllObjectsElements getAllObjectsAccess() { - return pAllObjects; + //NumericLiteral: + // value=Real; + public NumericLiteralElements getNumericLiteralAccess() { + return pNumericLiteral; } - public ParserRule getAllObjectsRule() { - return getAllObjectsAccess().getRule(); + public ParserRule getNumericLiteralRule() { + return getNumericLiteralAccess().getRule(); } - ///////////////////// - //// Defaul Interpretation grammar - ///////////////////// - //DefaultInterpretation: - // 'default' interpretation=BasicInterpretation; - public DefaultInterpretationElements getDefaultInterpretationAccess() { - return pDefaultInterpretation; + //InfinityLiteral: + // {InfinityLiteral} "inf"; + public InfinityLiteralElements getInfinityLiteralAccess() { + return pInfinityLiteral; } - public ParserRule getDefaultInterpretationRule() { - return getDefaultInterpretationAccess().getRule(); + public ParserRule getInfinityLiteralRule() { + return getInfinityLiteralAccess().getRule(); } - ///////////////////// - //// Advanced Class-Diagram interpretations - ///////////////////// - //CDInterpretation: - // ClassInterpretation | EnumInterpretation | GlobalRelationInterpretation; - public CDInterpretationElements getCDInterpretationAccess() { - return pCDInterpretation; + //EmptyIntervalLiteral: + // {EmptyIntervalLiteral} "empty"; + public EmptyIntervalLiteralElements getEmptyIntervalLiteralAccess() { + return pEmptyIntervalLiteral; } - public ParserRule getCDInterpretationRule() { - return getCDInterpretationAccess().getRule(); + public ParserRule getEmptyIntervalLiteralRule() { + return getEmptyIntervalLiteralAccess().getRule(); } - //ClassInterpretation: - // abstract?='abstract'? 'class' symbol=ModelSymbol ('extends' supertypes+=ModelSymbol+)? '{' - // fielt+=FieldRelationInterpretation* - // '}'; - public ClassInterpretationElements getClassInterpretationAccess() { - return pClassInterpretation; + //StringLiteral: + // value=STRING; + public StringLiteralElements getStringLiteralAccess() { + return pStringLiteral; + } + + public ParserRule getStringLiteralRule() { + return getStringLiteralAccess().getRule(); + } + + //ClassDefinition Statement: + // abstract?="abstract"? "class" name=ID ("extends" superclasses+=[NamedElement|QualifiedName] ("," + // superclasses+=[NamedElement|QualifiedName])*)? + // "{" members+=MemberDefinition* "}"; + public ClassDefinitionElements getClassDefinitionAccess() { + return pClassDefinition; + } + + public ParserRule getClassDefinitionRule() { + return getClassDefinitionAccess().getRule(); + } + + //MemberDefinition: + // containment?="contains"? type=[NamedElement|QualifiedName] multiplicity=Multiplicity? name=ID ("opposite" + // opposite=[NamedElement|QualifiedName])? ";"?; + public MemberDefinitionElements getMemberDefinitionAccess() { + return pMemberDefinition; + } + + public ParserRule getMemberDefinitionRule() { + return getMemberDefinitionAccess().getRule(); + } + + //Multiplicity: + // ManyMultiplicity | ExactMultiplicity | BoundedMultiplicity; + public MultiplicityElements getMultiplicityAccess() { + return pMultiplicity; + } + + public ParserRule getMultiplicityRule() { + return getMultiplicityAccess().getRule(); + } + + //ManyMultiplicity: + // {ManyMultiplicity} "[" "]"; + public ManyMultiplicityElements getManyMultiplicityAccess() { + return pManyMultiplicity; + } + + public ParserRule getManyMultiplicityRule() { + return getManyMultiplicityAccess().getRule(); + } + + //ExactMultiplicity: + // "[" multiplicity=UpperMultiplicty "]"; + public ExactMultiplicityElements getExactMultiplicityAccess() { + return pExactMultiplicity; + } + + public ParserRule getExactMultiplicityRule() { + return getExactMultiplicityAccess().getRule(); + } + + //BoundedMultiplicity: + // "[" lowerBound=INT ".." upperBound=UpperMultiplicty "]"; + public BoundedMultiplicityElements getBoundedMultiplicityAccess() { + return pBoundedMultiplicity; + } + + public ParserRule getBoundedMultiplicityRule() { + return getBoundedMultiplicityAccess().getRule(); + } + + //ScopeDefinition: + // ExactScopeDefinition | BoundedScopeDefinition | LowerBoundedScopeDefinition; + public ScopeDefinitionElements getScopeDefinitionAccess() { + return pScopeDefinition; + } + + public ParserRule getScopeDefinitionRule() { + return getScopeDefinitionAccess().getRule(); + } + + //ExactScopeDefinition: + // "scope" type=[NamedElement|QualifiedName] "==" exactScope=INT; + public ExactScopeDefinitionElements getExactScopeDefinitionAccess() { + return pExactScopeDefinition; + } + + public ParserRule getExactScopeDefinitionRule() { + return getExactScopeDefinitionAccess().getRule(); + } + + //BoundedScopeDefinition: + // "scope" ((lowerBound=INT "<=")? type=[NamedElement|QualifiedName] "<=" upperBound=INT | upperBound=INT ">=" + // type=[NamedElement|QualifiedName] (">=" lowerBound=INT)?) "."; + public BoundedScopeDefinitionElements getBoundedScopeDefinitionAccess() { + return pBoundedScopeDefinition; + } + + public ParserRule getBoundedScopeDefinitionRule() { + return getBoundedScopeDefinitionAccess().getRule(); + } + + //LowerBoundedScopeDefinition: + // "scope" (lowerBound=INT "<=" type=[NamedElement|QualifiedName] | type=[NamedElement|QualifiedName] ">=" + // lowerBound=INT) "."; + public LowerBoundedScopeDefinitionElements getLowerBoundedScopeDefinitionAccess() { + return pLowerBoundedScopeDefinition; + } + + public ParserRule getLowerBoundedScopeDefinitionRule() { + return getLowerBoundedScopeDefinitionAccess().getRule(); + } + + //enum ObjectiveKind: + // MINIMIZE="minimize" | MAXIMIZE="maximize"; + public ObjectiveKindElements getObjectiveKindAccess() { + return eObjectiveKind; + } + + public EnumRule getObjectiveKindRule() { + return getObjectiveKindAccess().getRule(); + } + + //ObjectiveDefinition: + // kind=ObjectiveKind objective=Expression; + public ObjectiveDefinitionElements getObjectiveDefinitionAccess() { + return pObjectiveDefinition; + } + + public ParserRule getObjectiveDefinitionRule() { + return getObjectiveDefinitionAccess().getRule(); + } + + //UpperMultiplicty ecore::EInt: + // INT | "*"; + public UpperMultiplictyElements getUpperMultiplictyAccess() { + return pUpperMultiplicty; + } + + public ParserRule getUpperMultiplictyRule() { + return getUpperMultiplictyAccess().getRule(); + } + + //Real ecore::EBigDecimal hidden(): + // INT ("." INT)?; + public RealElements getRealAccess() { + return pReal; + } + + public ParserRule getRealRule() { + return getRealAccess().getRule(); } - public ParserRule getClassInterpretationRule() { - return getClassInterpretationAccess().getRule(); + //QualifiedName hidden(): + // ID ("." ID)* | QUOTED_ID; + public QualifiedNameElements getQualifiedNameAccess() { + return pQualifiedName; } - //EnumInterpretation: - // 'enum' Symbol=ModelSymbol '{' objects+=NamedObject+ '}'; - public EnumInterpretationElements getEnumInterpretationAccess() { - return pEnumInterpretation; + public ParserRule getQualifiedNameRule() { + return getQualifiedNameAccess().getRule(); } - public ParserRule getEnumInterpretationRule() { - return getEnumInterpretationAccess().getRule(); + //@Override + //terminal STRING: + // '"' ('\\' . | !('\\' | '"'))* '"'; + public TerminalRule getSTRINGRule() { + return tSTRING; } - //FieldRelationInterpretation: - // containment?='containment'? symbol=ModelSymbol ':' multiplicity=MultiplicityDefinition? target=Symbol; - public FieldRelationInterpretationElements getFieldRelationInterpretationAccess() { - return pFieldRelationInterpretation; + //terminal QUOTED_ID: + // '\'' ('\\' . | !('\\' | '\''))* '\''; + public TerminalRule getQUOTED_IDRule() { + return tQUOTED_ID; } - public ParserRule getFieldRelationInterpretationRule() { - return getFieldRelationInterpretationAccess().getRule(); + //terminal PLUS: + // "synthetic::plus"; + public TerminalRule getPLUSRule() { + return tPLUS; } - //GlobalRelationInterpretation: - // containment?='containment'? 'relation' symbol=ModelSymbol ':' sourceMultiplicity=MultiplicityDefinition? - // source=Symbol targetMultiplicity=MultiplicityDefinition? target=Symbol; - public GlobalRelationInterpretationElements getGlobalRelationInterpretationAccess() { - return pGlobalRelationInterpretation; + //terminal STAR: + // "synthetic::star"; + public TerminalRule getSTARRule() { + return tSTAR; } - public ParserRule getGlobalRelationInterpretationRule() { - return getGlobalRelationInterpretationAccess().getRule(); + //terminal DOT: + // "synthetic::dot"; + public TerminalRule getDOTRule() { + return tDOT; } - //MultiplicityDefinition: - // lower=INT '..' (upper=INT | unlimitedUpper?='*'); - public MultiplicityDefinitionElements getMultiplicityDefinitionAccess() { - return pMultiplicityDefinition; + //NamedElement: + // name=QualifiedName; + public NamedElementElements getNamedElementAccess() { + return pNamedElement; } - public ParserRule getMultiplicityDefinitionRule() { - return getMultiplicityDefinitionAccess().getRule(); + public ParserRule getNamedElementRule() { + return getNamedElementAccess().getRule(); } //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Aggregation'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getOp Op}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getBody Body}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getCondition Condition}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregation() + * @model + * @generated + */ +public interface Aggregation extends Expression +{ + /** + * Returns the value of the 'Op' attribute. + * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.AggregationOp}. + * + * + * @return the value of the 'Op' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp + * @see #setOp(AggregationOp) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregation_Op() + * @model + * @generated + */ + AggregationOp getOp(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getOp Op}' attribute. + * + * + * @param value the new value of the 'Op' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp + * @see #getOp() + * @generated + */ + void setOp(AggregationOp value); + + /** + * Returns the value of the 'Body' containment reference. + * + * + * @return the value of the 'Body' containment reference. + * @see #setBody(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregation_Body() + * @model containment="true" + * @generated + */ + Expression getBody(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + + /** + * Returns the value of the 'Condition' containment reference. + * + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregation_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getCondition Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(Expression value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Aggregation Op', + * and utility methods for working with them. + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAggregationOp() + * @model + * @generated + */ +public enum AggregationOp implements Enumerator +{ + /** + * The 'ONLY' literal object. + * + * + * @see #ONLY_VALUE + * @generated + * @ordered + */ + ONLY(0, "ONLY", "only"), + + /** + * The 'SUM' literal object. + * + * + * @see #SUM_VALUE + * @generated + * @ordered + */ + SUM(1, "SUM", "sum"), + + /** + * The 'PROD' literal object. + * + * + * @see #PROD_VALUE + * @generated + * @ordered + */ + PROD(2, "PROD", "prod"), + + /** + * The 'AVG' literal object. + * + * + * @see #AVG_VALUE + * @generated + * @ordered + */ + AVG(3, "AVG", "avg"), + + /** + * The 'MIN' literal object. + * + * + * @see #MIN_VALUE + * @generated + * @ordered + */ + MIN(4, "MIN", "min"), + + /** + * The 'MAX' literal object. + * + * + * @see #MAX_VALUE + * @generated + * @ordered + */ + MAX(5, "MAX", "max"); + + /** + * The 'ONLY' literal value. + * + * + * @see #ONLY + * @model literal="only" + * @generated + * @ordered + */ + public static final int ONLY_VALUE = 0; + + /** + * The 'SUM' literal value. + * + * + * @see #SUM + * @model literal="sum" + * @generated + * @ordered + */ + public static final int SUM_VALUE = 1; + + /** + * The 'PROD' literal value. + * + * + * @see #PROD + * @model literal="prod" + * @generated + * @ordered + */ + public static final int PROD_VALUE = 2; + + /** + * The 'AVG' literal value. + * + * + * @see #AVG + * @model literal="avg" + * @generated + * @ordered + */ + public static final int AVG_VALUE = 3; + + /** + * The 'MIN' literal value. + * + * + * @see #MIN + * @model literal="min" + * @generated + * @ordered + */ + public static final int MIN_VALUE = 4; + + /** + * The 'MAX' literal value. + * + * + * @see #MAX + * @model literal="max" + * @generated + * @ordered + */ + public static final int MAX_VALUE = 5; + + /** + * An array of all the 'Aggregation Op' enumerators. + * + * + * @generated + */ + private static final AggregationOp[] VALUES_ARRAY = + new AggregationOp[] + { + ONLY, + SUM, + PROD, + AVG, + MIN, + MAX, + }; + + /** + * A public read-only list of all the 'Aggregation Op' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Aggregation Op' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static AggregationOp get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + AggregationOp result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Aggregation Op' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static AggregationOp getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + AggregationOp result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Aggregation Op' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static AggregationOp get(int value) + { + switch (value) + { + case ONLY_VALUE: return ONLY; + case SUM_VALUE: return SUM; + case PROD_VALUE: return PROD; + case AVG_VALUE: return AVG; + case MIN_VALUE: return MIN; + case MAX_VALUE: return MAX; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private AggregationOp(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'All Instances'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances#getSymbol Symbol}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAllInstances() - * @model - * @generated - */ -public interface AllInstances extends ComplexObject -{ - /** - * Returns the value of the 'Symbol' containment reference. - * - * - * @return the value of the 'Symbol' containment reference. - * @see #setSymbol(Symbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAllInstances_Symbol() - * @model containment="true" - * @generated - */ - Symbol getSymbol(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances#getSymbol Symbol}' containment reference. - * - * - * @param value the new value of the 'Symbol' containment reference. - * @see #getSymbol() - * @generated - */ - void setSymbol(Symbol value); - -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'All Objects'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAllObjects() - * @model - * @generated - */ -public interface AllObjects extends ComplexObject -{ -} // AllObjects diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Argument.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Argument.java new file mode 100644 index 00000000..73c79940 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Argument.java @@ -0,0 +1,20 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Argument'. + * + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getArgument() + * @model + * @generated + */ +public interface Argument extends EObject +{ +} // Argument diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ArgumentList.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ArgumentList.java new file mode 100644 index 00000000..4a932fea --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ArgumentList.java @@ -0,0 +1,40 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Argument List'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ArgumentList#getArguments Arguments}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getArgumentList() + * @model + * @generated + */ +public interface ArgumentList extends EObject +{ + /** + * Returns the value of the 'Arguments' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Argument}. + * + * + * @return the value of the 'Arguments' containment reference list. + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getArgumentList_Arguments() + * @model containment="true" + * @generated + */ + EList getArguments(); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Assertion'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getBody Body}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getRange Range}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAssertion() + * @model + * @generated + */ +public interface Assertion extends Statement +{ + /** + * Returns the value of the 'Body' containment reference. + * + * + * @return the value of the 'Body' containment reference. + * @see #setBody(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAssertion_Body() + * @model containment="true" + * @generated + */ + Expression getBody(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + + /** + * Returns the value of the 'Range' containment reference. + * + * + * @return the value of the 'Range' containment reference. + * @see #setRange(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getAssertion_Range() + * @model containment="true" + * @generated + */ + Expression getRange(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getRange Range}' containment reference. + * + * + * @param value the new value of the 'Range' containment reference. + * @see #getRange() + * @generated + */ + void setRange(Expression value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.common.util.EList; - -/** - * - * A representation of the model object 'Basic Interpretation'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getSymbol Symbol}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getObjects Objects}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getValue Value}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBasicInterpretation() - * @model - * @generated - */ -public interface BasicInterpretation extends Interpretation -{ - /** - * Returns the value of the 'Symbol' containment reference. - * - * - * @return the value of the 'Symbol' containment reference. - * @see #setSymbol(Symbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBasicInterpretation_Symbol() - * @model containment="true" - * @generated - */ - Symbol getSymbol(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getSymbol Symbol}' containment reference. - * - * - * @param value the new value of the 'Symbol' containment reference. - * @see #getSymbol() - * @generated - */ - void setSymbol(Symbol value); - - /** - * Returns the value of the 'Objects' containment reference list. - * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.ComplexObject}. - * - * - * @return the value of the 'Objects' containment reference list. - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBasicInterpretation_Objects() - * @model containment="true" - * @generated - */ - EList getObjects(); - - /** - * Returns the value of the 'Value' containment reference. - * - * - * @return the value of the 'Value' containment reference. - * @see #setValue(TruthValue) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBasicInterpretation_Value() - * @model containment="true" - * @generated - */ - TruthValue getValue(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getValue Value}' containment reference. - * - * - * @param value the new value of the 'Value' containment reference. - * @see #getValue() - * @generated - */ - void setValue(TruthValue value); - -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Binary Expression'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getLeft Left}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getOp Op}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getRight Right}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryExpression() + * @model + * @generated + */ +public interface BinaryExpression extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryExpression_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Op' attribute. + * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator}. + * + * + * @return the value of the 'Op' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator + * @see #setOp(BinaryOperator) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryExpression_Op() + * @model + * @generated + */ + BinaryOperator getOp(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getOp Op}' attribute. + * + * + * @param value the new value of the 'Op' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator + * @see #getOp() + * @generated + */ + void setOp(BinaryOperator value); + + /** + * Returns the value of the 'Right' containment reference. + * + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryExpression_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Binary Operator', + * and utility methods for working with them. + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBinaryOperator() + * @model + * @generated + */ +public enum BinaryOperator implements Enumerator +{ + /** + * The 'EQ' literal object. + * + * + * @see #EQ_VALUE + * @generated + * @ordered + */ + EQ(0, "EQ", "EQ"), + + /** + * The 'NOT EQ' literal object. + * + * + * @see #NOT_EQ_VALUE + * @generated + * @ordered + */ + NOT_EQ(1, "NOT_EQ", "NOT_EQ"), + + /** + * The 'LESS' literal object. + * + * + * @see #LESS_VALUE + * @generated + * @ordered + */ + LESS(2, "LESS", "LESS"), + + /** + * The 'LESS EQ' literal object. + * + * + * @see #LESS_EQ_VALUE + * @generated + * @ordered + */ + LESS_EQ(3, "LESS_EQ", "LESS_EQ"), + + /** + * The 'GREATER' literal object. + * + * + * @see #GREATER_VALUE + * @generated + * @ordered + */ + GREATER(4, "GREATER", "GREATER"), + + /** + * The 'GREATER EQ' literal object. + * + * + * @see #GREATER_EQ_VALUE + * @generated + * @ordered + */ + GREATER_EQ(5, "GREATER_EQ", "GREATER_EQ"), + + /** + * The 'IN' literal object. + * + * + * @see #IN_VALUE + * @generated + * @ordered + */ + IN(6, "IN", "IN"), + + /** + * The 'ADD' literal object. + * + * + * @see #ADD_VALUE + * @generated + * @ordered + */ + ADD(7, "ADD", "ADD"), + + /** + * The 'SUB' literal object. + * + * + * @see #SUB_VALUE + * @generated + * @ordered + */ + SUB(8, "SUB", "SUB"), + + /** + * The 'MUL' literal object. + * + * + * @see #MUL_VALUE + * @generated + * @ordered + */ + MUL(9, "MUL", "MUL"), + + /** + * The 'DIV' literal object. + * + * + * @see #DIV_VALUE + * @generated + * @ordered + */ + DIV(10, "DIV", "DIV"), + + /** + * The 'POW' literal object. + * + * + * @see #POW_VALUE + * @generated + * @ordered + */ + POW(11, "POW", "POW"); + + /** + * The 'EQ' literal value. + * + * + * @see #EQ + * @model + * @generated + * @ordered + */ + public static final int EQ_VALUE = 0; + + /** + * The 'NOT EQ' literal value. + * + * + * @see #NOT_EQ + * @model + * @generated + * @ordered + */ + public static final int NOT_EQ_VALUE = 1; + + /** + * The 'LESS' literal value. + * + * + * @see #LESS + * @model + * @generated + * @ordered + */ + public static final int LESS_VALUE = 2; + + /** + * The 'LESS EQ' literal value. + * + * + * @see #LESS_EQ + * @model + * @generated + * @ordered + */ + public static final int LESS_EQ_VALUE = 3; + + /** + * The 'GREATER' literal value. + * + * + * @see #GREATER + * @model + * @generated + * @ordered + */ + public static final int GREATER_VALUE = 4; + + /** + * The 'GREATER EQ' literal value. + * + * + * @see #GREATER_EQ + * @model + * @generated + * @ordered + */ + public static final int GREATER_EQ_VALUE = 5; + + /** + * The 'IN' literal value. + * + * + * @see #IN + * @model + * @generated + * @ordered + */ + public static final int IN_VALUE = 6; + + /** + * The 'ADD' literal value. + * + * + * @see #ADD + * @model + * @generated + * @ordered + */ + public static final int ADD_VALUE = 7; + + /** + * The 'SUB' literal value. + * + * + * @see #SUB + * @model + * @generated + * @ordered + */ + public static final int SUB_VALUE = 8; + + /** + * The 'MUL' literal value. + * + * + * @see #MUL + * @model + * @generated + * @ordered + */ + public static final int MUL_VALUE = 9; + + /** + * The 'DIV' literal value. + * + * + * @see #DIV + * @model + * @generated + * @ordered + */ + public static final int DIV_VALUE = 10; + + /** + * The 'POW' literal value. + * + * + * @see #POW + * @model + * @generated + * @ordered + */ + public static final int POW_VALUE = 11; + + /** + * An array of all the 'Binary Operator' enumerators. + * + * + * @generated + */ + private static final BinaryOperator[] VALUES_ARRAY = + new BinaryOperator[] + { + EQ, + NOT_EQ, + LESS, + LESS_EQ, + GREATER, + GREATER_EQ, + IN, + ADD, + SUB, + MUL, + DIV, + POW, + }; + + /** + * A public read-only list of all the 'Binary Operator' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Binary Operator' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static BinaryOperator get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + BinaryOperator result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Binary Operator' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static BinaryOperator getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + BinaryOperator result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Binary Operator' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static BinaryOperator get(int value) + { + switch (value) + { + case EQ_VALUE: return EQ; + case NOT_EQ_VALUE: return NOT_EQ; + case LESS_VALUE: return LESS; + case LESS_EQ_VALUE: return LESS_EQ; + case GREATER_VALUE: return GREATER; + case GREATER_EQ_VALUE: return GREATER_EQ; + case IN_VALUE: return IN; + case ADD_VALUE: return ADD; + case SUB_VALUE: return SUB; + case MUL_VALUE: return MUL; + case DIV_VALUE: return DIV; + case POW_VALUE: return POW; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private BinaryOperator(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Boolean False'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanFalse() - * @model - * @generated - */ -public interface BooleanFalse extends BooleanValue -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Boolean Object'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject#getValue Value}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanObject() - * @model - * @generated - */ -public interface BooleanObject extends DataObject -{ - /** - * Returns the value of the 'Value' containment reference. - * - * - * @return the value of the 'Value' containment reference. - * @see #setValue(BooleanValue) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanObject_Value() - * @model containment="true" - * @generated - */ - BooleanValue getValue(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject#getValue Value}' containment reference. - * - * - * @param value the new value of the 'Value' containment reference. - * @see #getValue() - * @generated - */ - void setValue(BooleanValue value); - -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Boolean Symbol'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanSymbol() - * @model - * @generated - */ -public interface BooleanSymbol extends DataSymbol -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Boolean True'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanTrue() - * @model - * @generated - */ -public interface BooleanTrue extends BooleanValue -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Boolean Value'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBooleanValue() - * @model - * @generated - */ -public interface BooleanValue extends EObject -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Bounded Multiplicity'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getLowerBound Lower Bound}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getUpperBound Upper Bound}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedMultiplicity() + * @model + * @generated + */ +public interface BoundedMultiplicity extends Multiplicity +{ + /** + * Returns the value of the 'Lower Bound' attribute. + * + * + * @return the value of the 'Lower Bound' attribute. + * @see #setLowerBound(int) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedMultiplicity_LowerBound() + * @model + * @generated + */ + int getLowerBound(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getLowerBound Lower Bound}' attribute. + * + * + * @param value the new value of the 'Lower Bound' attribute. + * @see #getLowerBound() + * @generated + */ + void setLowerBound(int value); + + /** + * Returns the value of the 'Upper Bound' attribute. + * + * + * @return the value of the 'Upper Bound' attribute. + * @see #setUpperBound(int) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedMultiplicity_UpperBound() + * @model + * @generated + */ + int getUpperBound(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getUpperBound Upper Bound}' attribute. + * + * + * @param value the new value of the 'Upper Bound' attribute. + * @see #getUpperBound() + * @generated + */ + void setUpperBound(int value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Bounded Scope Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getLowerBound Lower Bound}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getUpperBound Upper Bound}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedScopeDefinition() + * @model + * @generated + */ +public interface BoundedScopeDefinition extends ScopeDefinition +{ + /** + * Returns the value of the 'Lower Bound' attribute. + * + * + * @return the value of the 'Lower Bound' attribute. + * @see #setLowerBound(int) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedScopeDefinition_LowerBound() + * @model + * @generated + */ + int getLowerBound(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getLowerBound Lower Bound}' attribute. + * + * + * @param value the new value of the 'Lower Bound' attribute. + * @see #getLowerBound() + * @generated + */ + void setLowerBound(int value); + + /** + * Returns the value of the 'Upper Bound' attribute. + * + * + * @return the value of the 'Upper Bound' attribute. + * @see #setUpperBound(int) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getBoundedScopeDefinition_UpperBound() + * @model + * @generated + */ + int getUpperBound(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getUpperBound Upper Bound}' attribute. + * + * + * @param value the new value of the 'Upper Bound' attribute. + * @see #getUpperBound() + * @generated + */ + void setUpperBound(int value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'CD Interpretation'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCDInterpretation() - * @model - * @generated - */ -public interface CDInterpretation extends Interpretation -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Call'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Call#getFunctor Functor}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Call#getArgumentList Argument List}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Call#isTransitiveClosure Transitive Closure}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Call#isReflexiveTransitiveClosure Reflexive Transitive Closure}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall() + * @model + * @generated + */ +public interface Call extends Expression +{ + /** + * Returns the value of the 'Functor' containment reference. + * + * + * @return the value of the 'Functor' containment reference. + * @see #setFunctor(Reference) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall_Functor() + * @model containment="true" + * @generated + */ + Reference getFunctor(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getFunctor Functor}' containment reference. + * + * + * @param value the new value of the 'Functor' containment reference. + * @see #getFunctor() + * @generated + */ + void setFunctor(Reference value); + + /** + * Returns the value of the 'Argument List' containment reference. + * + * + * @return the value of the 'Argument List' containment reference. + * @see #setArgumentList(ArgumentList) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall_ArgumentList() + * @model containment="true" + * @generated + */ + ArgumentList getArgumentList(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getArgumentList Argument List}' containment reference. + * + * + * @param value the new value of the 'Argument List' containment reference. + * @see #getArgumentList() + * @generated + */ + void setArgumentList(ArgumentList value); + + /** + * Returns the value of the 'Transitive Closure' attribute. + * + * + * @return the value of the 'Transitive Closure' attribute. + * @see #setTransitiveClosure(boolean) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall_TransitiveClosure() + * @model + * @generated + */ + boolean isTransitiveClosure(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isTransitiveClosure Transitive Closure}' attribute. + * + * + * @param value the new value of the 'Transitive Closure' attribute. + * @see #isTransitiveClosure() + * @generated + */ + void setTransitiveClosure(boolean value); + + /** + * Returns the value of the 'Reflexive Transitive Closure' attribute. + * + * + * @return the value of the 'Reflexive Transitive Closure' attribute. + * @see #setReflexiveTransitiveClosure(boolean) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCall_ReflexiveTransitiveClosure() + * @model + * @generated + */ + boolean isReflexiveTransitiveClosure(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isReflexiveTransitiveClosure Reflexive Transitive Closure}' attribute. + * + * + * @param value the new value of the 'Reflexive Transitive Closure' attribute. + * @see #isReflexiveTransitiveClosure() + * @generated + */ + void setReflexiveTransitiveClosure(boolean value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Case'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Case#getCondition Condition}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Case#getBody Body}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCase() + * @model + * @generated + */ +public interface Case extends Expression +{ + /** + * Returns the value of the 'Condition' containment reference. + * + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCase_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getCondition Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(Expression value); + + /** + * Returns the value of the 'Body' containment reference. + * + * + * @return the value of the 'Body' containment reference. + * @see #setBody(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCase_Body() + * @model containment="true" + * @generated + */ + Expression getBody(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.common.util.EList; - -/** - * - * A representation of the model object 'Class Interpretation'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#isAbstract Abstract}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSymbol Symbol}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSupertypes Supertypes}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getFielt Fielt}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation() - * @model - * @generated - */ -public interface ClassInterpretation extends CDInterpretation -{ - /** - * Returns the value of the 'Abstract' attribute. - * - * - * @return the value of the 'Abstract' attribute. - * @see #setAbstract(boolean) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation_Abstract() - * @model - * @generated - */ - boolean isAbstract(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#isAbstract Abstract}' attribute. - * - * - * @param value the new value of the 'Abstract' attribute. - * @see #isAbstract() - * @generated - */ - void setAbstract(boolean value); - - /** - * Returns the value of the 'Symbol' containment reference. - * - * - * @return the value of the 'Symbol' containment reference. - * @see #setSymbol(ModelSymbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation_Symbol() - * @model containment="true" - * @generated - */ - ModelSymbol getSymbol(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSymbol Symbol}' containment reference. - * - * - * @param value the new value of the 'Symbol' containment reference. - * @see #getSymbol() - * @generated - */ - void setSymbol(ModelSymbol value); - - /** - * Returns the value of the 'Supertypes' containment reference list. - * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol}. - * - * - * @return the value of the 'Supertypes' containment reference list. - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation_Supertypes() - * @model containment="true" - * @generated - */ - EList getSupertypes(); - - /** - * Returns the value of the 'Fielt' containment reference list. - * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation}. - * - * - * @return the value of the 'Fielt' containment reference list. - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassInterpretation_Fielt() - * @model containment="true" - * @generated - */ - EList getFielt(); - -} // ClassInterpretation 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/ClosureType.java deleted file mode 100644 index f9d8dc28..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ClosureType.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Closure Type'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClosureType() - * @model - * @generated - */ -public interface ClosureType extends EObject -{ -} // ClosureType 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Comparison'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getLeft Left}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getOp Op}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getRight Right}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComparison() + * @model + * @generated + */ +public interface Comparison extends Expression +{ + /** + * Returns the value of the 'Left' containment reference. + * + * + * @return the value of the 'Left' containment reference. + * @see #setLeft(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComparison_Left() + * @model containment="true" + * @generated + */ + Expression getLeft(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getLeft Left}' containment reference. + * + * + * @param value the new value of the 'Left' containment reference. + * @see #getLeft() + * @generated + */ + void setLeft(Expression value); + + /** + * Returns the value of the 'Op' attribute. + * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator}. + * + * + * @return the value of the 'Op' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator + * @see #setOp(BinaryOperator) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComparison_Op() + * @model + * @generated + */ + BinaryOperator getOp(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getOp Op}' attribute. + * + * + * @param value the new value of the 'Op' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator + * @see #getOp() + * @generated + */ + void setOp(BinaryOperator value); + + /** + * Returns the value of the 'Right' containment reference. + * + * + * @return the value of the 'Right' containment reference. + * @see #setRight(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComparison_Right() + * @model containment="true" + * @generated + */ + Expression getRight(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getRight Right}' containment reference. + * + * + * @param value the new value of the 'Right' containment reference. + * @see #getRight() + * @generated + */ + void setRight(Expression value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Complex Object'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getComplexObject() - * @model - * @generated - */ -public interface ComplexObject extends EObject -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Conjunction'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Conjunction#getChildren Children}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConjunction() + * @model + * @generated + */ +public interface Conjunction extends Expression +{ + /** + * Returns the value of the 'Children' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Expression}. + * + * + * @return the value of the 'Children' containment reference list. + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConjunction_Children() + * @model containment="true" + * @generated + */ + EList getChildren(); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Constraint'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getPolarity Polarity}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getSymbol Symbol}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getParams Params}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getClosureType Closure Type}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint() - * @model - * @generated - */ -public interface Constraint extends EObject -{ - /** - * Returns the value of the 'Polarity' containment reference. - * - * - * @return the value of the 'Polarity' containment reference. - * @see #setPolarity(Polarity) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint_Polarity() - * @model containment="true" - * @generated - */ - Polarity getPolarity(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getPolarity Polarity}' containment reference. - * - * - * @param value the new value of the 'Polarity' containment reference. - * @see #getPolarity() - * @generated - */ - void setPolarity(Polarity value); - - /** - * Returns the value of the 'Symbol' containment reference. - * - * - * @return the value of the 'Symbol' containment reference. - * @see #setSymbol(ModelSymbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint_Symbol() - * @model containment="true" - * @generated - */ - ModelSymbol getSymbol(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getSymbol Symbol}' containment reference. - * - * - * @param value the new value of the 'Symbol' containment reference. - * @see #getSymbol() - * @generated - */ - void setSymbol(ModelSymbol value); - - /** - * Returns the value of the 'Params' containment reference list. - * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Literal}. - * - * - * @return the value of the 'Params' containment reference list. - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint_Params() - * @model containment="true" - * @generated - */ - EList getParams(); - - /** - * Returns the value of the 'Closure Type' containment reference. - * - * - * @return the value of the 'Closure Type' containment reference. - * @see #setClosureType(ClosureType) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getConstraint_ClosureType() - * @model containment="true" - * @generated - */ - ClosureType getClosureType(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getClosureType Closure Type}' containment reference. - * - * - * @param value the new value of the 'Closure Type' containment reference. - * @see #getClosureType() - * @generated - */ - void setClosureType(ClosureType value); - -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Count'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Count#getBody Body}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCount() + * @model + * @generated + */ +public interface Count extends Expression +{ + /** + * Returns the value of the 'Body' containment reference. + * + * + * @return the value of the 'Body' containment reference. + * @see #setBody(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getCount_Body() + * @model containment="true" + * @generated + */ + Expression getBody(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Count#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Data Object'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDataObject() - * @model - * @generated - */ -public interface DataObject extends org.eclipse.viatra.solver.language.solverLanguage.Object, Literal -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Data Symbol'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDataSymbol() - * @model - * @generated - */ -public interface DataSymbol extends Symbol -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Default Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getHead Head}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getRange Range}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultDefinition() + * @model + * @generated + */ +public interface DefaultDefinition extends Statement +{ + /** + * Returns the value of the 'Head' containment reference. + * + * + * @return the value of the 'Head' containment reference. + * @see #setHead(Call) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultDefinition_Head() + * @model containment="true" + * @generated + */ + Call getHead(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getHead Head}' containment reference. + * + * + * @param value the new value of the 'Head' containment reference. + * @see #getHead() + * @generated + */ + void setHead(Call value); + + /** + * Returns the value of the 'Range' containment reference. + * + * + * @return the value of the 'Range' containment reference. + * @see #setRange(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultDefinition_Range() + * @model containment="true" + * @generated + */ + Expression getRange(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getRange Range}' containment reference. + * + * + * @param value the new value of the 'Range' containment reference. + * @see #getRange() + * @generated + */ + void setRange(Expression value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Default Interpretation'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation#getInterpretation Interpretation}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultInterpretation() - * @model - * @generated - */ -public interface DefaultInterpretation extends Interpretation -{ - /** - * Returns the value of the 'Interpretation' containment reference. - * - * - * @return the value of the 'Interpretation' containment reference. - * @see #setInterpretation(BasicInterpretation) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDefaultInterpretation_Interpretation() - * @model containment="true" - * @generated - */ - BasicInterpretation getInterpretation(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation#getInterpretation Interpretation}' containment reference. - * - * - * @param value the new value of the 'Interpretation' containment reference. - * @see #getInterpretation() - * @generated - */ - void setInterpretation(BasicInterpretation value); - -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Disjunction'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Disjunction#getChildren Children}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDisjunction() + * @model + * @generated + */ +public interface Disjunction extends Expression +{ + /** + * Returns the value of the 'Children' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Expression}. + * + * + * @return the value of the 'Children' containment reference list. + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getDisjunction_Children() + * @model containment="true" + * @generated + */ + EList getChildren(); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Empty Interval Literal'. + * + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEmptyIntervalLiteral() + * @model + * @generated + */ +public interface EmptyIntervalLiteral extends Literal +{ +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.common.util.EList; - -/** - * - * A representation of the model object 'Enum Interpretation'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getSymbol Symbol}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getObjects Objects}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEnumInterpretation() - * @model - * @generated - */ -public interface EnumInterpretation extends CDInterpretation -{ - /** - * Returns the value of the 'Symbol' containment reference. - * - * - * @return the value of the 'Symbol' containment reference. - * @see #setSymbol(ModelSymbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEnumInterpretation_Symbol() - * @model containment="true" - * @generated - */ - ModelSymbol getSymbol(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getSymbol Symbol}' containment reference. - * - * - * @param value the new value of the 'Symbol' containment reference. - * @see #getSymbol() - * @generated - */ - void setSymbol(ModelSymbol value); - - /** - * Returns the value of the 'Objects' containment reference list. - * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject}. - * - * - * @return the value of the 'Objects' containment reference list. - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEnumInterpretation_Objects() - * @model containment="true" - * @generated - */ - EList getObjects(); - -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Equals Symbol'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getEqualsSymbol() - * @model - * @generated - */ -public interface EqualsSymbol extends PartialitySymbol -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Error'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getError() - * @model - * @generated - */ -public interface Error extends TruthValue -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Exact Multiplicity'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity#getMultiplicity Multiplicity}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExactMultiplicity() + * @model + * @generated + */ +public interface ExactMultiplicity extends Multiplicity +{ + /** + * Returns the value of the 'Multiplicity' attribute. + * + * + * @return the value of the 'Multiplicity' attribute. + * @see #setMultiplicity(int) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExactMultiplicity_Multiplicity() + * @model + * @generated + */ + int getMultiplicity(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity#getMultiplicity Multiplicity}' attribute. + * + * + * @param value the new value of the 'Multiplicity' attribute. + * @see #getMultiplicity() + * @generated + */ + void setMultiplicity(int value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Exact Scope Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition#getExactScope Exact Scope}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExactScopeDefinition() + * @model + * @generated + */ +public interface ExactScopeDefinition extends ScopeDefinition +{ + /** + * Returns the value of the 'Exact Scope' attribute. + * + * + * @return the value of the 'Exact Scope' attribute. + * @see #setExactScope(int) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExactScopeDefinition_ExactScope() + * @model + * @generated + */ + int getExactScope(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition#getExactScope Exact Scope}' attribute. + * + * + * @param value the new value of the 'Exact Scope' attribute. + * @see #getExactScope() + * @generated + */ + void setExactScope(int value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Exist Symbol'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExistSymbol() - * @model - * @generated - */ -public interface ExistSymbol extends PartialitySymbol -{ -} // ExistSymbol diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Expression.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Expression.java new file mode 100644 index 00000000..1ecd89a5 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Expression.java @@ -0,0 +1,19 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Expression'. + * + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExpression() + * @model + * @generated + */ +public interface Expression extends Statement +{ +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Expression Argument'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument#getBody Body}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExpressionArgument() + * @model + * @generated + */ +public interface ExpressionArgument extends Argument +{ + /** + * Returns the value of the 'Body' containment reference. + * + * + * @return the value of the 'Body' containment reference. + * @see #setBody(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExpressionArgument_Body() + * @model containment="true" + * @generated + */ + Expression getBody(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Extern Metric Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getType Type}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getHead Head}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternMetricDefinition() + * @model + * @generated + */ +public interface ExternMetricDefinition extends Statement +{ + /** + * Returns the value of the 'Type' attribute. + * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.MetricType}. + * + * + * @return the value of the 'Type' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType + * @see #setType(MetricType) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternMetricDefinition_Type() + * @model + * @generated + */ + MetricType getType(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getType Type}' attribute. + * + * + * @param value the new value of the 'Type' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType + * @see #getType() + * @generated + */ + void setType(MetricType value); + + /** + * Returns the value of the 'Head' containment reference. + * + * + * @return the value of the 'Head' containment reference. + * @see #setHead(Call) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternMetricDefinition_Head() + * @model containment="true" + * @generated + */ + Call getHead(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getHead Head}' containment reference. + * + * + * @param value the new value of the 'Head' containment reference. + * @see #getHead() + * @generated + */ + void setHead(Call value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Extern Predicate Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition#getHead Head}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternPredicateDefinition() + * @model + * @generated + */ +public interface ExternPredicateDefinition extends Statement +{ + /** + * Returns the value of the 'Head' containment reference. + * + * + * @return the value of the 'Head' containment reference. + * @see #setHead(Call) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getExternPredicateDefinition_Head() + * @model containment="true" + * @generated + */ + Call getHead(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition#getHead Head}' containment reference. + * + * + * @param value the new value of the 'Head' containment reference. + * @see #getHead() + * @generated + */ + void setHead(Call value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'False'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFalse() - * @model - * @generated - */ -public interface False extends TruthValue -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Field Relation Interpretation'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#isContainment Containment}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getSymbol Symbol}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getMultiplicity Multiplicity}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getTarget Target}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation() - * @model - * @generated - */ -public interface FieldRelationInterpretation extends EObject -{ - /** - * Returns the value of the 'Containment' attribute. - * - * - * @return the value of the 'Containment' attribute. - * @see #setContainment(boolean) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation_Containment() - * @model - * @generated - */ - boolean isContainment(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#isContainment Containment}' attribute. - * - * - * @param value the new value of the 'Containment' attribute. - * @see #isContainment() - * @generated - */ - void setContainment(boolean value); - - /** - * Returns the value of the 'Symbol' containment reference. - * - * - * @return the value of the 'Symbol' containment reference. - * @see #setSymbol(ModelSymbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation_Symbol() - * @model containment="true" - * @generated - */ - ModelSymbol getSymbol(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getSymbol Symbol}' containment reference. - * - * - * @param value the new value of the 'Symbol' containment reference. - * @see #getSymbol() - * @generated - */ - void setSymbol(ModelSymbol value); - - /** - * Returns the value of the 'Multiplicity' containment reference. - * - * - * @return the value of the 'Multiplicity' containment reference. - * @see #setMultiplicity(MultiplicityDefinition) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation_Multiplicity() - * @model containment="true" - * @generated - */ - MultiplicityDefinition getMultiplicity(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getMultiplicity Multiplicity}' containment reference. - * - * - * @param value the new value of the 'Multiplicity' containment reference. - * @see #getMultiplicity() - * @generated - */ - void setMultiplicity(MultiplicityDefinition value); - - /** - * Returns the value of the 'Target' containment reference. - * - * - * @return the value of the 'Target' containment reference. - * @see #setTarget(Symbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getFieldRelationInterpretation_Target() - * @model containment="true" - * @generated - */ - Symbol getTarget(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getTarget Target}' containment reference. - * - * - * @param value the new value of the 'Target' containment reference. - * @see #getTarget() - * @generated - */ - void setTarget(Symbol value); - -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Global Relation Interpretation'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#isContainment Containment}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSymbol Symbol}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSourceMultiplicity Source Multiplicity}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSource Source}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTargetMultiplicity Target Multiplicity}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTarget Target}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation() - * @model - * @generated - */ -public interface GlobalRelationInterpretation extends CDInterpretation -{ - /** - * Returns the value of the 'Containment' attribute. - * - * - * @return the value of the 'Containment' attribute. - * @see #setContainment(boolean) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_Containment() - * @model - * @generated - */ - boolean isContainment(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#isContainment Containment}' attribute. - * - * - * @param value the new value of the 'Containment' attribute. - * @see #isContainment() - * @generated - */ - void setContainment(boolean value); - - /** - * Returns the value of the 'Symbol' containment reference. - * - * - * @return the value of the 'Symbol' containment reference. - * @see #setSymbol(ModelSymbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_Symbol() - * @model containment="true" - * @generated - */ - ModelSymbol getSymbol(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSymbol Symbol}' containment reference. - * - * - * @param value the new value of the 'Symbol' containment reference. - * @see #getSymbol() - * @generated - */ - void setSymbol(ModelSymbol value); - - /** - * Returns the value of the 'Source Multiplicity' containment reference. - * - * - * @return the value of the 'Source Multiplicity' containment reference. - * @see #setSourceMultiplicity(MultiplicityDefinition) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_SourceMultiplicity() - * @model containment="true" - * @generated - */ - MultiplicityDefinition getSourceMultiplicity(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSourceMultiplicity Source Multiplicity}' containment reference. - * - * - * @param value the new value of the 'Source Multiplicity' containment reference. - * @see #getSourceMultiplicity() - * @generated - */ - void setSourceMultiplicity(MultiplicityDefinition value); - - /** - * Returns the value of the 'Source' containment reference. - * - * - * @return the value of the 'Source' containment reference. - * @see #setSource(Symbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_Source() - * @model containment="true" - * @generated - */ - Symbol getSource(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSource Source}' containment reference. - * - * - * @param value the new value of the 'Source' containment reference. - * @see #getSource() - * @generated - */ - void setSource(Symbol value); - - /** - * Returns the value of the 'Target Multiplicity' containment reference. - * - * - * @return the value of the 'Target Multiplicity' containment reference. - * @see #setTargetMultiplicity(MultiplicityDefinition) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_TargetMultiplicity() - * @model containment="true" - * @generated - */ - MultiplicityDefinition getTargetMultiplicity(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTargetMultiplicity Target Multiplicity}' containment reference. - * - * - * @param value the new value of the 'Target Multiplicity' containment reference. - * @see #getTargetMultiplicity() - * @generated - */ - void setTargetMultiplicity(MultiplicityDefinition value); - - /** - * Returns the value of the 'Target' containment reference. - * - * - * @return the value of the 'Target' containment reference. - * @see #setTarget(Symbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getGlobalRelationInterpretation_Target() - * @model containment="true" - * @generated - */ - Symbol getTarget(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTarget Target}' containment reference. - * - * - * @param value the new value of the 'Target' containment reference. - * @see #getTarget() - * @generated - */ - void setTarget(Symbol value); - -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'If Else'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getCondition Condition}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getThen Then}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getElse Else}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIfElse() + * @model + * @generated + */ +public interface IfElse extends Expression +{ + /** + * Returns the value of the 'Condition' containment reference. + * + * + * @return the value of the 'Condition' containment reference. + * @see #setCondition(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIfElse_Condition() + * @model containment="true" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getCondition Condition}' containment reference. + * + * + * @param value the new value of the 'Condition' containment reference. + * @see #getCondition() + * @generated + */ + void setCondition(Expression value); + + /** + * Returns the value of the 'Then' containment reference. + * + * + * @return the value of the 'Then' containment reference. + * @see #setThen(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIfElse_Then() + * @model containment="true" + * @generated + */ + Expression getThen(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getThen Then}' containment reference. + * + * + * @param value the new value of the 'Then' containment reference. + * @see #getThen() + * @generated + */ + void setThen(Expression value); + + /** + * Returns the value of the 'Else' containment reference. + * + * + * @return the value of the 'Else' containment reference. + * @see #setElse(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIfElse_Else() + * @model containment="true" + * @generated + */ + Expression getElse(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getElse Else}' containment reference. + * + * + * @param value the new value of the 'Else' containment reference. + * @see #getElse() + * @generated + */ + void setElse(Expression value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Infinity Literal'. + * + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInfinityLiteral() + * @model + * @generated + */ +public interface InfinityLiteral extends Literal +{ +} // InfinityLiteral 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/IntObject.java deleted file mode 100644 index 1a42b0c3..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/IntObject.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Int Object'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.IntObject#getValue Value}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIntObject() - * @model - * @generated - */ -public interface IntObject extends DataObject -{ - /** - * Returns the value of the 'Value' attribute. - * - * - * @return the value of the 'Value' attribute. - * @see #setValue(int) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIntObject_Value() - * @model - * @generated - */ - int getValue(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.IntObject#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(int value); - -} // IntObject 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Integer Symbol'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIntegerSymbol() - * @model - * @generated - */ -public interface IntegerSymbol extends DataSymbol -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Interpretation'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInterpretation() - * @model - * @generated - */ -public interface Interpretation extends Statement -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Interval'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getLowerBound Lower Bound}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getUpperBound Upper Bound}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInterval() + * @model + * @generated + */ +public interface Interval extends Expression +{ + /** + * Returns the value of the 'Lower Bound' containment reference. + * + * + * @return the value of the 'Lower Bound' containment reference. + * @see #setLowerBound(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInterval_LowerBound() + * @model containment="true" + * @generated + */ + Expression getLowerBound(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getLowerBound Lower Bound}' containment reference. + * + * + * @param value the new value of the 'Lower Bound' containment reference. + * @see #getLowerBound() + * @generated + */ + void setLowerBound(Expression value); + + /** + * Returns the value of the 'Upper Bound' containment reference. + * + * + * @return the value of the 'Upper Bound' containment reference. + * @see #setUpperBound(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getInterval_UpperBound() + * @model containment="true" + * @generated + */ + Expression getUpperBound(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getUpperBound Upper Bound}' containment reference. + * + * + * @param value the new value of the 'Upper Bound' containment reference. + * @see #getUpperBound() + * @generated + */ + void setUpperBound(Expression value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Irreflexive Closure'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getIrreflexiveClosure() - * @model - * @generated - */ -public interface IrreflexiveClosure extends ClosureType -{ -} // 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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage; -import org.eclipse.emf.ecore.EObject; /** * @@ -15,6 +14,6 @@ import org.eclipse.emf.ecore.EObject; * @model * @generated */ -public interface Literal extends EObject +public interface Literal extends Expression { } // Literal diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicLiteral.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicLiteral.java new file mode 100644 index 00000000..b3eb1523 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/LogicLiteral.java @@ -0,0 +1,50 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Logic Literal'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral#getValue Value}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLogicLiteral() + * @model + * @generated + */ +public interface LogicLiteral extends Literal +{ + /** + * Returns the value of the 'Value' attribute. + * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.LogicValue}. + * + * + * @return the value of the 'Value' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue + * @see #setValue(LogicValue) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLogicLiteral_Value() + * @model + * @generated + */ + LogicValue getValue(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue + * @see #getValue() + * @generated + */ + void setValue(LogicValue value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Logic Value', + * and utility methods for working with them. + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLogicValue() + * @model + * @generated + */ +public enum LogicValue implements Enumerator +{ + /** + * The 'TRUE' literal object. + * + * + * @see #TRUE_VALUE + * @generated + * @ordered + */ + TRUE(0, "TRUE", "true"), + + /** + * The 'FALSE' literal object. + * + * + * @see #FALSE_VALUE + * @generated + * @ordered + */ + FALSE(1, "FALSE", "false"), + + /** + * The 'UNKNOWN' literal object. + * + * + * @see #UNKNOWN_VALUE + * @generated + * @ordered + */ + UNKNOWN(2, "UNKNOWN", "unknown"), + + /** + * The 'ERROR' literal object. + * + * + * @see #ERROR_VALUE + * @generated + * @ordered + */ + ERROR(3, "ERROR", "error"); + + /** + * The 'TRUE' literal value. + * + * + * @see #TRUE + * @model literal="true" + * @generated + * @ordered + */ + public static final int TRUE_VALUE = 0; + + /** + * The 'FALSE' literal value. + * + * + * @see #FALSE + * @model literal="false" + * @generated + * @ordered + */ + public static final int FALSE_VALUE = 1; + + /** + * The 'UNKNOWN' literal value. + * + * + * @see #UNKNOWN + * @model literal="unknown" + * @generated + * @ordered + */ + public static final int UNKNOWN_VALUE = 2; + + /** + * The 'ERROR' literal value. + * + * + * @see #ERROR + * @model literal="error" + * @generated + * @ordered + */ + public static final int ERROR_VALUE = 3; + + /** + * An array of all the 'Logic Value' enumerators. + * + * + * @generated + */ + private static final LogicValue[] VALUES_ARRAY = + new LogicValue[] + { + TRUE, + FALSE, + UNKNOWN, + ERROR, + }; + + /** + * A public read-only list of all the 'Logic Value' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Logic Value' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static LogicValue get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + LogicValue result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Logic Value' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static LogicValue getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + LogicValue result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Logic Value' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static LogicValue get(int value) + { + switch (value) + { + case TRUE_VALUE: return TRUE; + case FALSE_VALUE: return FALSE; + case UNKNOWN_VALUE: return UNKNOWN; + case ERROR_VALUE: return ERROR; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private LogicValue(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Lower Bounded Scope Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition#getLowerBound Lower Bound}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLowerBoundedScopeDefinition() + * @model + * @generated + */ +public interface LowerBoundedScopeDefinition extends ScopeDefinition +{ + /** + * Returns the value of the 'Lower Bound' attribute. + * + * + * @return the value of the 'Lower Bound' attribute. + * @see #setLowerBound(int) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getLowerBoundedScopeDefinition_LowerBound() + * @model + * @generated + */ + int getLowerBound(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition#getLowerBound Lower Bound}' attribute. + * + * + * @param value the new value of the 'Lower Bound' attribute. + * @see #getLowerBound() + * @generated + */ + void setLowerBound(int value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Many Multiplicity'. + * + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getManyMultiplicity() + * @model + * @generated + */ +public interface ManyMultiplicity extends Multiplicity +{ +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Member Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#isContainment Containment}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getType Type}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getMultiplicity Multiplicity}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getName Name}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getOpposite Opposite}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition() + * @model + * @generated + */ +public interface MemberDefinition extends EObject +{ + /** + * Returns the value of the 'Containment' attribute. + * + * + * @return the value of the 'Containment' attribute. + * @see #setContainment(boolean) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Containment() + * @model + * @generated + */ + boolean isContainment(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#isContainment Containment}' attribute. + * + * + * @param value the new value of the 'Containment' attribute. + * @see #isContainment() + * @generated + */ + void setContainment(boolean value); + + /** + * Returns the value of the 'Type' reference. + * + * + * @return the value of the 'Type' reference. + * @see #setType(NamedElement) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Type() + * @model + * @generated + */ + NamedElement getType(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(NamedElement value); + + /** + * Returns the value of the 'Multiplicity' containment reference. + * + * + * @return the value of the 'Multiplicity' containment reference. + * @see #setMultiplicity(Multiplicity) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Multiplicity() + * @model containment="true" + * @generated + */ + Multiplicity getMultiplicity(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getMultiplicity Multiplicity}' containment reference. + * + * + * @param value the new value of the 'Multiplicity' containment reference. + * @see #getMultiplicity() + * @generated + */ + void setMultiplicity(Multiplicity value); + + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Opposite' reference. + * + * + * @return the value of the 'Opposite' reference. + * @see #setOpposite(NamedElement) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMemberDefinition_Opposite() + * @model + * @generated + */ + NamedElement getOpposite(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getOpposite Opposite}' reference. + * + * + * @param value the new value of the 'Opposite' reference. + * @see #getOpposite() + * @generated + */ + void setOpposite(NamedElement value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Metric Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getHead Head}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getBody Body}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getType Type}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricDefinition() + * @model + * @generated + */ +public interface MetricDefinition extends Statement +{ + /** + * Returns the value of the 'Head' containment reference. + * + * + * @return the value of the 'Head' containment reference. + * @see #setHead(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricDefinition_Head() + * @model containment="true" + * @generated + */ + Expression getHead(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getHead Head}' containment reference. + * + * + * @param value the new value of the 'Head' containment reference. + * @see #getHead() + * @generated + */ + void setHead(Expression value); + + /** + * Returns the value of the 'Body' containment reference. + * + * + * @return the value of the 'Body' containment reference. + * @see #setBody(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricDefinition_Body() + * @model containment="true" + * @generated + */ + Expression getBody(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + + /** + * Returns the value of the 'Type' attribute. + * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.MetricType}. + * + * + * @return the value of the 'Type' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType + * @see #setType(MetricType) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricDefinition_Type() + * @model + * @generated + */ + MetricType getType(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getType Type}' attribute. + * + * + * @param value the new value of the 'Type' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType + * @see #getType() + * @generated + */ + void setType(MetricType value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Metric Type', + * and utility methods for working with them. + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMetricType() + * @model + * @generated + */ +public enum MetricType implements Enumerator +{ + /** + * The 'INT' literal object. + * + * + * @see #INT_VALUE + * @generated + * @ordered + */ + INT(0, "INT", "int"), + + /** + * The 'REAL' literal object. + * + * + * @see #REAL_VALUE + * @generated + * @ordered + */ + REAL(1, "REAL", "real"); + + /** + * The 'INT' literal value. + * + * + * @see #INT + * @model literal="int" + * @generated + * @ordered + */ + public static final int INT_VALUE = 0; + + /** + * The 'REAL' literal value. + * + * + * @see #REAL + * @model literal="real" + * @generated + * @ordered + */ + public static final int REAL_VALUE = 1; + + /** + * An array of all the 'Metric Type' enumerators. + * + * + * @generated + */ + private static final MetricType[] VALUES_ARRAY = + new MetricType[] + { + INT, + REAL, + }; + + /** + * A public read-only list of all the 'Metric Type' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Metric Type' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static MetricType get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + MetricType result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Metric Type' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static MetricType getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + MetricType result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Metric Type' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static MetricType get(int value) + { + switch (value) + { + case INT_VALUE: return INT; + case REAL_VALUE: return REAL; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private MetricType(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //MetricType 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/ModelSymbol.java deleted file mode 100644 index 0d91b791..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/ModelSymbol.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Model Symbol'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol#getName Name}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getModelSymbol() - * @model - * @generated - */ -public interface ModelSymbol extends Symbol -{ - /** - * Returns the value of the 'Name' attribute. - * - * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getModelSymbol_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - -} // ModelSymbol diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Multiplicity.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Multiplicity.java new file mode 100644 index 00000000..1cbfadd6 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Multiplicity.java @@ -0,0 +1,20 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Multiplicity'. + * + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicity() + * @model + * @generated + */ +public interface Multiplicity extends EObject +{ +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Multiplicity Definition'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getLower Lower}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getUpper Upper}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#isUnlimitedUpper Unlimited Upper}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicityDefinition() - * @model - * @generated - */ -public interface MultiplicityDefinition extends EObject -{ - /** - * Returns the value of the 'Lower' attribute. - * - * - * @return the value of the 'Lower' attribute. - * @see #setLower(int) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicityDefinition_Lower() - * @model - * @generated - */ - int getLower(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getLower Lower}' attribute. - * - * - * @param value the new value of the 'Lower' attribute. - * @see #getLower() - * @generated - */ - void setLower(int value); - - /** - * Returns the value of the 'Upper' attribute. - * - * - * @return the value of the 'Upper' attribute. - * @see #setUpper(int) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicityDefinition_Upper() - * @model - * @generated - */ - int getUpper(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getUpper Upper}' attribute. - * - * - * @param value the new value of the 'Upper' attribute. - * @see #getUpper() - * @generated - */ - void setUpper(int value); - - /** - * Returns the value of the 'Unlimited Upper' attribute. - * - * - * @return the value of the 'Unlimited Upper' attribute. - * @see #setUnlimitedUpper(boolean) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getMultiplicityDefinition_UnlimitedUpper() - * @model - * @generated - */ - boolean isUnlimitedUpper(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#isUnlimitedUpper Unlimited Upper}' attribute. - * - * - * @param value the new value of the 'Unlimited Upper' attribute. - * @see #isUnlimitedUpper() - * @generated - */ - void setUnlimitedUpper(boolean value); - -} // MultiplicityDefinition diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedElement.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedElement.java new file mode 100644 index 00000000..0372da14 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NamedElement.java @@ -0,0 +1,48 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Named Element'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement#getName Name}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNamedElement() + * @model + * @generated + */ +public interface NamedElement extends EObject +{ + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNamedElement_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Named Object'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject#getName Name}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNamedObject() - * @model - * @generated - */ -public interface NamedObject extends org.eclipse.viatra.solver.language.solverLanguage.Object, Literal -{ - /** - * Returns the value of the 'Name' attribute. - * - * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNamedObject_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Negative'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNegative() - * @model - * @generated - */ -public interface Negative extends Polarity -{ -} // Negative diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NumericLiteral.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NumericLiteral.java new file mode 100644 index 00000000..9e30d508 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/NumericLiteral.java @@ -0,0 +1,48 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import java.math.BigDecimal; + +/** + * + * A representation of the model object 'Numeric Literal'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral#getValue Value}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNumericLiteral() + * @model + * @generated + */ +public interface NumericLiteral extends Literal +{ + /** + * Returns the value of the 'Value' attribute. + * + * + * @return the value of the 'Value' attribute. + * @see #setValue(BigDecimal) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getNumericLiteral_Value() + * @model + * @generated + */ + BigDecimal getValue(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(BigDecimal value); + +} // NumericLiteral 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/Object.java deleted file mode 100644 index 908ae5a6..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Object.java +++ /dev/null @@ -1,19 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Object'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObject() - * @model - * @generated - */ -public interface Object extends ComplexObject -{ -} // Object 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Objective Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getKind Kind}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getObjective Objective}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObjectiveDefinition() + * @model + * @generated + */ +public interface ObjectiveDefinition extends Statement +{ + /** + * Returns the value of the 'Kind' attribute. + * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind}. + * + * + * @return the value of the 'Kind' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind + * @see #setKind(ObjectiveKind) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObjectiveDefinition_Kind() + * @model + * @generated + */ + ObjectiveKind getKind(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind + * @see #getKind() + * @generated + */ + void setKind(ObjectiveKind value); + + /** + * Returns the value of the 'Objective' containment reference. + * + * + * @return the value of the 'Objective' containment reference. + * @see #setObjective(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObjectiveDefinition_Objective() + * @model containment="true" + * @generated + */ + Expression getObjective(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getObjective Objective}' containment reference. + * + * + * @param value the new value of the 'Objective' containment reference. + * @see #getObjective() + * @generated + */ + void setObjective(Expression value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Objective Kind', + * and utility methods for working with them. + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getObjectiveKind() + * @model + * @generated + */ +public enum ObjectiveKind implements Enumerator +{ + /** + * The 'MINIMIZE' literal object. + * + * + * @see #MINIMIZE_VALUE + * @generated + * @ordered + */ + MINIMIZE(0, "MINIMIZE", "minimize"), + + /** + * The 'MAXIMIZE' literal object. + * + * + * @see #MAXIMIZE_VALUE + * @generated + * @ordered + */ + MAXIMIZE(1, "MAXIMIZE", "maximize"); + + /** + * The 'MINIMIZE' literal value. + * + * + * @see #MINIMIZE + * @model literal="minimize" + * @generated + * @ordered + */ + public static final int MINIMIZE_VALUE = 0; + + /** + * The 'MAXIMIZE' literal value. + * + * + * @see #MAXIMIZE + * @model literal="maximize" + * @generated + * @ordered + */ + public static final int MAXIMIZE_VALUE = 1; + + /** + * An array of all the 'Objective Kind' enumerators. + * + * + * @generated + */ + private static final ObjectiveKind[] VALUES_ARRAY = + new ObjectiveKind[] + { + MINIMIZE, + MAXIMIZE, + }; + + /** + * A public read-only list of all the 'Objective Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Objective Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static ObjectiveKind get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ObjectiveKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Objective Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static ObjectiveKind getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + ObjectiveKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Objective Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static ObjectiveKind get(int value) + { + switch (value) + { + case MINIMIZE_VALUE: return MINIMIZE; + case MAXIMIZE_VALUE: return MAXIMIZE; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private ObjectiveKind(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Parameter'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getVariable Variable}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getType Type}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getParameter() - * @model - * @generated - */ -public interface Parameter extends EObject -{ - /** - * Returns the value of the 'Variable' containment reference. - * - * - * @return the value of the 'Variable' containment reference. - * @see #setVariable(Variable) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getParameter_Variable() - * @model containment="true" - * @generated - */ - Variable getVariable(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getVariable Variable}' containment reference. - * - * - * @param value the new value of the 'Variable' containment reference. - * @see #getVariable() - * @generated - */ - void setVariable(Variable value); - - /** - * Returns the value of the 'Type' containment reference. - * - * - * @return the value of the 'Type' containment reference. - * @see #setType(Symbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getParameter_Type() - * @model containment="true" - * @generated - */ - Symbol getType(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getType Type}' containment reference. - * - * - * @param value the new value of the 'Type' containment reference. - * @see #getType() - * @generated - */ - void setType(Symbol value); - -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Partiality Symbol'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPartialitySymbol() - * @model - * @generated - */ -public interface PartialitySymbol extends Symbol -{ -} // PartialitySymbol 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/PatternBody.java deleted file mode 100644 index 62be12a1..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/PatternBody.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Pattern Body'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody#getConstraints Constraints}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPatternBody() - * @model - * @generated - */ -public interface PatternBody extends EObject -{ - /** - * Returns the value of the 'Constraints' containment reference list. - * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Constraint}. - * - * - * @return the value of the 'Constraints' containment reference list. - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPatternBody_Constraints() - * @model containment="true" - * @generated - */ - EList getConstraints(); - -} // PatternBody 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/Polarity.java deleted file mode 100644 index ba30c6ad..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/Polarity.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Polarity'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPolarity() - * @model - * @generated - */ -public interface Polarity extends EObject -{ -} // Polarity 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Positive'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPositive() - * @model - * @generated - */ -public interface Positive extends Polarity -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.common.util.EList; - -/** - * - * A representation of the model object 'Predicate'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#isIsError Is Error}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getSymbol Symbol}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getParameters Parameters}
  • - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getBodies Bodies}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate() - * @model - * @generated - */ -public interface Predicate extends Statement -{ - /** - * Returns the value of the 'Is Error' attribute. - * - * - * @return the value of the 'Is Error' attribute. - * @see #setIsError(boolean) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate_IsError() - * @model - * @generated - */ - boolean isIsError(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#isIsError Is Error}' attribute. - * - * - * @param value the new value of the 'Is Error' attribute. - * @see #isIsError() - * @generated - */ - void setIsError(boolean value); - - /** - * Returns the value of the 'Symbol' containment reference. - * - * - * @return the value of the 'Symbol' containment reference. - * @see #setSymbol(ModelSymbol) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate_Symbol() - * @model containment="true" - * @generated - */ - ModelSymbol getSymbol(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getSymbol Symbol}' containment reference. - * - * - * @param value the new value of the 'Symbol' containment reference. - * @see #getSymbol() - * @generated - */ - void setSymbol(ModelSymbol value); - - /** - * Returns the value of the 'Parameters' containment reference list. - * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Parameter}. - * - * - * @return the value of the 'Parameters' containment reference list. - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate_Parameters() - * @model containment="true" - * @generated - */ - EList getParameters(); - - /** - * Returns the value of the 'Bodies' containment reference list. - * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody}. - * - * - * @return the value of the 'Bodies' containment reference list. - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicate_Bodies() - * @model containment="true" - * @generated - */ - EList getBodies(); - -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Predicate Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getHead Head}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getBody Body}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isFunctional Functional}
  • + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isError Error}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition() + * @model + * @generated + */ +public interface PredicateDefinition extends Statement +{ + /** + * Returns the value of the 'Head' containment reference. + * + * + * @return the value of the 'Head' containment reference. + * @see #setHead(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition_Head() + * @model containment="true" + * @generated + */ + Expression getHead(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getHead Head}' containment reference. + * + * + * @param value the new value of the 'Head' containment reference. + * @see #getHead() + * @generated + */ + void setHead(Expression value); + + /** + * Returns the value of the 'Body' containment reference. + * + * + * @return the value of the 'Body' containment reference. + * @see #setBody(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition_Body() + * @model containment="true" + * @generated + */ + Expression getBody(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + + /** + * Returns the value of the 'Functional' attribute. + * + * + * @return the value of the 'Functional' attribute. + * @see #setFunctional(boolean) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition_Functional() + * @model + * @generated + */ + boolean isFunctional(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isFunctional Functional}' attribute. + * + * + * @param value the new value of the 'Functional' attribute. + * @see #isFunctional() + * @generated + */ + void setFunctional(boolean value); + + /** + * Returns the value of the 'Error' attribute. + * + * + * @return the value of the 'Error' attribute. + * @see #setError(boolean) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getPredicateDefinition_Error() + * @model + * @generated + */ + boolean isError(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isError Error}' attribute. + * + * + * @param value the new value of the 'Error' attribute. + * @see #isError() + * @generated + */ + void setError(boolean value); + +} // 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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage; 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/RealObject.java deleted file mode 100644 index 12e8be3e..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/RealObject.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import java.math.BigDecimal; - -/** - * - * A representation of the model object 'Real Object'. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.RealObject#getValue Value}
  • - *
- * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getRealObject() - * @model - * @generated - */ -public interface RealObject extends DataObject -{ - /** - * Returns the value of the 'Value' attribute. - * - * - * @return the value of the 'Value' attribute. - * @see #setValue(BigDecimal) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getRealObject_Value() - * @model - * @generated - */ - BigDecimal getValue(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.RealObject#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(BigDecimal value); - -} // RealObject 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Real Symbol'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getRealSymbol() - * @model - * @generated - */ -public interface RealSymbol extends DataSymbol -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Reference'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.Reference#getReferred Referred}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getReference() + * @model + * @generated + */ +public interface Reference extends Expression +{ + /** + * Returns the value of the 'Referred' reference. + * + * + * @return the value of the 'Referred' reference. + * @see #setReferred(NamedElement) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getReference_Referred() + * @model + * @generated + */ + NamedElement getReferred(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Reference#getReferred Referred}' reference. + * + * + * @param value the new value of the 'Referred' reference. + * @see #getReferred() + * @generated + */ + void setReferred(NamedElement value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Reflexive Closure'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getReflexiveClosure() - * @model - * @generated - */ -public interface ReflexiveClosure extends ClosureType -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Scope Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition#getType Type}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getScopeDefinition() + * @model + * @generated + */ +public interface ScopeDefinition extends Statement +{ + /** + * Returns the value of the 'Type' reference. + * + * + * @return the value of the 'Type' reference. + * @see #setType(NamedElement) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getScopeDefinition_Type() + * @model + * @generated + */ + NamedElement getType(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(NamedElement value); + +} // 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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage; @@ -42,454 +42,400 @@ public interface SolverLanguageFactory extends EFactory Statement createStatement(); /** - * Returns a new object of class 'Boolean Value'. + * Returns a new object of class 'Predicate Definition'. * * - * @return a new object of class 'Boolean Value'. + * @return a new object of class 'Predicate Definition'. * @generated */ - BooleanValue createBooleanValue(); + PredicateDefinition createPredicateDefinition(); /** - * Returns a new object of class 'Truth Value'. + * Returns a new object of class 'Unnamed Error Prediate Definition'. * * - * @return a new object of class 'Truth Value'. + * @return a new object of class 'Unnamed Error Prediate Definition'. * @generated */ - TruthValue createTruthValue(); + UnnamedErrorPrediateDefinition createUnnamedErrorPrediateDefinition(); /** - * Returns a new object of class 'Interpretation'. + * Returns a new object of class 'Default Definition'. * * - * @return a new object of class 'Interpretation'. + * @return a new object of class 'Default Definition'. * @generated */ - Interpretation createInterpretation(); + DefaultDefinition createDefaultDefinition(); /** - * Returns a new object of class 'Basic Interpretation'. + * Returns a new object of class 'Extern Predicate Definition'. * * - * @return a new object of class 'Basic Interpretation'. + * @return a new object of class 'Extern Predicate Definition'. * @generated */ - BasicInterpretation createBasicInterpretation(); + ExternPredicateDefinition createExternPredicateDefinition(); /** - * Returns a new object of class 'Symbol'. + * Returns a new object of class 'Metric Definition'. * * - * @return a new object of class 'Symbol'. + * @return a new object of class 'Metric Definition'. * @generated */ - Symbol createSymbol(); + MetricDefinition createMetricDefinition(); /** - * Returns a new object of class 'Model Symbol'. + * Returns a new object of class 'Extern Metric Definition'. * * - * @return a new object of class 'Model Symbol'. + * @return a new object of class 'Extern Metric Definition'. * @generated */ - ModelSymbol createModelSymbol(); + ExternMetricDefinition createExternMetricDefinition(); /** - * Returns a new object of class 'Partiality Symbol'. + * Returns a new object of class 'Expression'. * * - * @return a new object of class 'Partiality Symbol'. + * @return a new object of class 'Expression'. * @generated */ - PartialitySymbol createPartialitySymbol(); + Expression createExpression(); /** - * Returns a new object of class 'Exist Symbol'. + * Returns a new object of class 'If Else'. * * - * @return a new object of class 'Exist Symbol'. + * @return a new object of class 'If Else'. * @generated */ - ExistSymbol createExistSymbol(); + IfElse createIfElse(); /** - * Returns a new object of class 'Equals Symbol'. + * Returns a new object of class 'Case'. * * - * @return a new object of class 'Equals Symbol'. + * @return a new object of class 'Case'. * @generated */ - EqualsSymbol createEqualsSymbol(); + Case createCase(); /** - * Returns a new object of class 'Data Symbol'. + * Returns a new object of class 'Count'. * * - * @return a new object of class 'Data Symbol'. + * @return a new object of class 'Count'. * @generated */ - DataSymbol createDataSymbol(); + Count createCount(); /** - * Returns a new object of class 'Boolean Symbol'. + * Returns a new object of class 'Aggregation'. * * - * @return a new object of class 'Boolean Symbol'. + * @return a new object of class 'Aggregation'. * @generated */ - BooleanSymbol createBooleanSymbol(); + Aggregation createAggregation(); /** - * Returns a new object of class 'Integer Symbol'. + * Returns a new object of class 'Call'. * * - * @return a new object of class 'Integer Symbol'. + * @return a new object of class 'Call'. * @generated */ - IntegerSymbol createIntegerSymbol(); + Call createCall(); /** - * Returns a new object of class 'Real Symbol'. + * Returns a new object of class 'Argument List'. * * - * @return a new object of class 'Real Symbol'. + * @return a new object of class 'Argument List'. * @generated */ - RealSymbol createRealSymbol(); + ArgumentList createArgumentList(); /** - * Returns a new object of class 'String Symbol'. + * Returns a new object of class 'Argument'. * * - * @return a new object of class 'String Symbol'. + * @return a new object of class 'Argument'. * @generated */ - StringSymbol createStringSymbol(); + Argument createArgument(); /** - * Returns a new object of class 'Complex Object'. + * Returns a new object of class 'Expression Argument'. * * - * @return a new object of class 'Complex Object'. + * @return a new object of class 'Expression Argument'. * @generated */ - ComplexObject createComplexObject(); + ExpressionArgument createExpressionArgument(); /** - * Returns a new object of class 'Object'. + * Returns a new object of class 'Star Argument'. * * - * @return a new object of class 'Object'. + * @return a new object of class 'Star Argument'. * @generated */ - Object createObject(); + StarArgument createStarArgument(); /** - * Returns a new object of class 'Named Object'. + * Returns a new object of class 'Typed Argument'. * * - * @return a new object of class 'Named Object'. + * @return a new object of class 'Typed Argument'. * @generated */ - NamedObject createNamedObject(); + TypedArgument createTypedArgument(); /** - * Returns a new object of class 'Unnamed Object'. + * Returns a new object of class 'Typed Star Argument'. * * - * @return a new object of class 'Unnamed Object'. + * @return a new object of class 'Typed Star Argument'. * @generated */ - UnnamedObject createUnnamedObject(); + TypedStarArgument createTypedStarArgument(); /** - * Returns a new object of class 'Data Object'. + * Returns a new object of class 'Reference'. * * - * @return a new object of class 'Data Object'. + * @return a new object of class 'Reference'. * @generated */ - DataObject createDataObject(); + Reference createReference(); /** - * Returns a new object of class 'Boolean Object'. + * Returns a new object of class 'Interval'. * * - * @return a new object of class 'Boolean Object'. + * @return a new object of class 'Interval'. * @generated */ - BooleanObject createBooleanObject(); + Interval createInterval(); /** - * Returns a new object of class 'Int Object'. - * - * - * @return a new object of class 'Int Object'. - * @generated - */ - IntObject createIntObject(); - - /** - * Returns a new object of class 'Real Object'. - * - * - * @return a new object of class 'Real Object'. - * @generated - */ - RealObject createRealObject(); - - /** - * Returns a new object of class 'String Object'. - * - * - * @return a new object of class 'String Object'. - * @generated - */ - StringObject createStringObject(); - - /** - * Returns a new object of class 'Predicate'. - * - * - * @return a new object of class 'Predicate'. - * @generated - */ - Predicate createPredicate(); - - /** - * Returns a new object of class 'Parameter'. - * - * - * @return a new object of class 'Parameter'. - * @generated - */ - Parameter createParameter(); - - /** - * Returns a new object of class 'Pattern Body'. - * - * - * @return a new object of class 'Pattern Body'. - * @generated - */ - PatternBody createPatternBody(); - - /** - * Returns a new object of class 'Polarity'. + * Returns a new object of class 'Literal'. * * - * @return a new object of class 'Polarity'. + * @return a new object of class 'Literal'. * @generated */ - Polarity createPolarity(); + Literal createLiteral(); /** - * Returns a new object of class 'Constraint'. + * Returns a new object of class 'Logic Literal'. * * - * @return a new object of class 'Constraint'. + * @return a new object of class 'Logic Literal'. * @generated */ - Constraint createConstraint(); + LogicLiteral createLogicLiteral(); /** - * Returns a new object of class 'Closure Type'. + * Returns a new object of class 'Numeric Literal'. * * - * @return a new object of class 'Closure Type'. + * @return a new object of class 'Numeric Literal'. * @generated */ - ClosureType createClosureType(); + NumericLiteral createNumericLiteral(); /** - * Returns a new object of class 'Literal'. + * Returns a new object of class 'Infinity Literal'. * * - * @return a new object of class 'Literal'. + * @return a new object of class 'Infinity Literal'. * @generated */ - Literal createLiteral(); + InfinityLiteral createInfinityLiteral(); /** - * Returns a new object of class 'Variable'. + * Returns a new object of class 'Empty Interval Literal'. * * - * @return a new object of class 'Variable'. + * @return a new object of class 'Empty Interval Literal'. * @generated */ - Variable createVariable(); + EmptyIntervalLiteral createEmptyIntervalLiteral(); /** - * Returns a new object of class 'All Instances'. + * Returns a new object of class 'String Literal'. * * - * @return a new object of class 'All Instances'. + * @return a new object of class 'String Literal'. * @generated */ - AllInstances createAllInstances(); + StringLiteral createStringLiteral(); /** - * Returns a new object of class 'All Objects'. + * Returns a new object of class 'Member Definition'. * * - * @return a new object of class 'All Objects'. + * @return a new object of class 'Member Definition'. * @generated */ - AllObjects createAllObjects(); + MemberDefinition createMemberDefinition(); /** - * Returns a new object of class 'Default Interpretation'. + * Returns a new object of class 'Multiplicity'. * * - * @return a new object of class 'Default Interpretation'. + * @return a new object of class 'Multiplicity'. * @generated */ - DefaultInterpretation createDefaultInterpretation(); + Multiplicity createMultiplicity(); /** - * Returns a new object of class 'CD Interpretation'. + * Returns a new object of class 'Many Multiplicity'. * * - * @return a new object of class 'CD Interpretation'. + * @return a new object of class 'Many Multiplicity'. * @generated */ - CDInterpretation createCDInterpretation(); + ManyMultiplicity createManyMultiplicity(); /** - * Returns a new object of class 'Class Interpretation'. + * Returns a new object of class 'Exact Multiplicity'. * * - * @return a new object of class 'Class Interpretation'. + * @return a new object of class 'Exact Multiplicity'. * @generated */ - ClassInterpretation createClassInterpretation(); + ExactMultiplicity createExactMultiplicity(); /** - * Returns a new object of class 'Enum Interpretation'. + * Returns a new object of class 'Bounded Multiplicity'. * * - * @return a new object of class 'Enum Interpretation'. + * @return a new object of class 'Bounded Multiplicity'. * @generated */ - EnumInterpretation createEnumInterpretation(); + BoundedMultiplicity createBoundedMultiplicity(); /** - * Returns a new object of class 'Field Relation Interpretation'. + * Returns a new object of class 'Scope Definition'. * * - * @return a new object of class 'Field Relation Interpretation'. + * @return a new object of class 'Scope Definition'. * @generated */ - FieldRelationInterpretation createFieldRelationInterpretation(); + ScopeDefinition createScopeDefinition(); /** - * Returns a new object of class 'Global Relation Interpretation'. + * Returns a new object of class 'Exact Scope Definition'. * * - * @return a new object of class 'Global Relation Interpretation'. + * @return a new object of class 'Exact Scope Definition'. * @generated */ - GlobalRelationInterpretation createGlobalRelationInterpretation(); + ExactScopeDefinition createExactScopeDefinition(); /** - * Returns a new object of class 'Multiplicity Definition'. + * Returns a new object of class 'Bounded Scope Definition'. * * - * @return a new object of class 'Multiplicity Definition'. + * @return a new object of class 'Bounded Scope Definition'. * @generated */ - MultiplicityDefinition createMultiplicityDefinition(); + BoundedScopeDefinition createBoundedScopeDefinition(); /** - * Returns a new object of class 'Boolean True'. + * Returns a new object of class 'Lower Bounded Scope Definition'. * * - * @return a new object of class 'Boolean True'. + * @return a new object of class 'Lower Bounded Scope Definition'. * @generated */ - BooleanTrue createBooleanTrue(); + LowerBoundedScopeDefinition createLowerBoundedScopeDefinition(); /** - * Returns a new object of class 'Boolean False'. + * Returns a new object of class 'Objective Definition'. * * - * @return a new object of class 'Boolean False'. + * @return a new object of class 'Objective Definition'. * @generated */ - BooleanFalse createBooleanFalse(); + ObjectiveDefinition createObjectiveDefinition(); /** - * Returns a new object of class 'True'. + * Returns a new object of class 'Named Element'. * * - * @return a new object of class 'True'. + * @return a new object of class 'Named Element'. * @generated */ - True createTrue(); + NamedElement createNamedElement(); /** - * Returns a new object of class 'False'. + * Returns a new object of class 'Assertion'. * * - * @return a new object of class 'False'. + * @return a new object of class 'Assertion'. * @generated */ - False createFalse(); + Assertion createAssertion(); /** - * Returns a new object of class 'Unknown'. + * Returns a new object of class 'Disjunction'. * * - * @return a new object of class 'Unknown'. + * @return a new object of class 'Disjunction'. * @generated */ - Unknown createUnknown(); + Disjunction createDisjunction(); /** - * Returns a new object of class 'Error'. + * Returns a new object of class 'Switch'. * * - * @return a new object of class 'Error'. + * @return a new object of class 'Switch'. * @generated */ - Error createError(); + Switch createSwitch(); /** - * Returns a new object of class 'Positive'. + * Returns a new object of class 'Conjunction'. * * - * @return a new object of class 'Positive'. + * @return a new object of class 'Conjunction'. * @generated */ - Positive createPositive(); + Conjunction createConjunction(); /** - * Returns a new object of class 'Negative'. + * Returns a new object of class 'Comparison'. * * - * @return a new object of class 'Negative'. + * @return a new object of class 'Comparison'. * @generated */ - Negative createNegative(); + Comparison createComparison(); /** - * Returns a new object of class 'Reflexive Closure'. + * Returns a new object of class 'Binary Expression'. * * - * @return a new object of class 'Reflexive Closure'. + * @return a new object of class 'Binary Expression'. * @generated */ - ReflexiveClosure createReflexiveClosure(); + BinaryExpression createBinaryExpression(); /** - * Returns a new object of class 'Irreflexive Closure'. + * Returns a new object of class 'Unary Expression'. * * - * @return a new object of class 'Irreflexive Closure'. + * @return a new object of class 'Unary Expression'. * @generated */ - IrreflexiveClosure createIrreflexiveClosure(); + UnaryExpression createUnaryExpression(); /** * 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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; @@ -96,2368 +97,4053 @@ public interface SolverLanguagePackage extends EPackage int STATEMENT = 1; /** - * The number of structural features of the 'Statement' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int STATEMENT_FEATURE_COUNT = 0; + int STATEMENT__ABSTRACT = 0; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanValueImpl Boolean Value}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanValueImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanValue() * @generated + * @ordered */ - int BOOLEAN_VALUE = 2; + int STATEMENT__NAME = 1; /** - * The number of structural features of the 'Boolean Value' class. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int BOOLEAN_VALUE_FEATURE_COUNT = 0; + int STATEMENT__SUPERCLASSES = 2; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TruthValueImpl Truth Value}' class. + * The feature id for the 'Members' containment reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TruthValueImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTruthValue() * @generated + * @ordered */ - int TRUTH_VALUE = 3; + int STATEMENT__MEMBERS = 3; /** - * The number of structural features of the 'Truth Value' class. + * The number of structural features of the 'Statement' class. * * * @generated * @ordered */ - int TRUTH_VALUE_FEATURE_COUNT = 0; + int STATEMENT_FEATURE_COUNT = 4; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.InterpretationImpl Interpretation}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl Predicate Definition}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.InterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInterpretation() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPredicateDefinition() * @generated */ - int INTERPRETATION = 4; + int PREDICATE_DEFINITION = 2; /** - * The number of structural features of the 'Interpretation' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int INTERPRETATION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 0; + int PREDICATE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl Basic Interpretation}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBasicInterpretation() * @generated + * @ordered */ - int BASIC_INTERPRETATION = 5; + int PREDICATE_DEFINITION__NAME = STATEMENT__NAME; /** - * The feature id for the 'Symbol' containment reference. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int BASIC_INTERPRETATION__SYMBOL = INTERPRETATION_FEATURE_COUNT + 0; + int PREDICATE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * The feature id for the 'Objects' containment reference list. + * The feature id for the 'Members' containment reference list. * * * @generated * @ordered */ - int BASIC_INTERPRETATION__OBJECTS = INTERPRETATION_FEATURE_COUNT + 1; + int PREDICATE_DEFINITION__MEMBERS = STATEMENT__MEMBERS; /** - * The feature id for the 'Value' containment reference. + * The feature id for the 'Head' containment reference. * * * @generated * @ordered */ - int BASIC_INTERPRETATION__VALUE = INTERPRETATION_FEATURE_COUNT + 2; + int PREDICATE_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 0; /** - * The number of structural features of the 'Basic Interpretation' class. + * The feature id for the 'Body' containment reference. * * * @generated * @ordered */ - int BASIC_INTERPRETATION_FEATURE_COUNT = INTERPRETATION_FEATURE_COUNT + 3; + int PREDICATE_DEFINITION__BODY = STATEMENT_FEATURE_COUNT + 1; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.SymbolImpl Symbol}' class. + * The feature id for the 'Functional' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getSymbol() * @generated + * @ordered */ - int SYMBOL = 6; + int PREDICATE_DEFINITION__FUNCTIONAL = STATEMENT_FEATURE_COUNT + 2; /** - * The number of structural features of the 'Symbol' class. + * The feature id for the 'Error' attribute. * * * @generated * @ordered */ - int SYMBOL_FEATURE_COUNT = 0; + int PREDICATE_DEFINITION__ERROR = STATEMENT_FEATURE_COUNT + 3; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl Model Symbol}' class. + * The number of structural features of the 'Predicate Definition' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getModelSymbol() * @generated + * @ordered */ - int MODEL_SYMBOL = 7; + int PREDICATE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 4; /** - * The feature id for the 'Name' attribute. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl Unnamed Error Prediate Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnnamedErrorPrediateDefinition() * @generated - * @ordered */ - int MODEL_SYMBOL__NAME = SYMBOL_FEATURE_COUNT + 0; + int UNNAMED_ERROR_PREDIATE_DEFINITION = 3; /** - * The number of structural features of the 'Model Symbol' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int MODEL_SYMBOL_FEATURE_COUNT = SYMBOL_FEATURE_COUNT + 1; + int UNNAMED_ERROR_PREDIATE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PartialitySymbolImpl Partiality Symbol}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PartialitySymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPartialitySymbol() * @generated + * @ordered */ - int PARTIALITY_SYMBOL = 8; + int UNNAMED_ERROR_PREDIATE_DEFINITION__NAME = STATEMENT__NAME; /** - * The number of structural features of the 'Partiality Symbol' class. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int PARTIALITY_SYMBOL_FEATURE_COUNT = SYMBOL_FEATURE_COUNT + 0; + int UNNAMED_ERROR_PREDIATE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExistSymbolImpl Exist Symbol}' class. + * The feature id for the 'Members' containment reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExistSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExistSymbol() * @generated + * @ordered */ - int EXIST_SYMBOL = 9; + int UNNAMED_ERROR_PREDIATE_DEFINITION__MEMBERS = STATEMENT__MEMBERS; /** - * The number of structural features of the 'Exist Symbol' class. + * The feature id for the 'Argument List' containment reference. * * * @generated * @ordered */ - int EXIST_SYMBOL_FEATURE_COUNT = PARTIALITY_SYMBOL_FEATURE_COUNT + 0; + int UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST = STATEMENT_FEATURE_COUNT + 0; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EqualsSymbolImpl Equals Symbol}' class. + * The feature id for the 'Body' containment reference. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EqualsSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEqualsSymbol() * @generated + * @ordered */ - int EQUALS_SYMBOL = 10; + int UNNAMED_ERROR_PREDIATE_DEFINITION__BODY = STATEMENT_FEATURE_COUNT + 1; /** - * The number of structural features of the 'Equals Symbol' class. + * The number of structural features of the 'Unnamed Error Prediate Definition' class. * * * @generated * @ordered */ - int EQUALS_SYMBOL_FEATURE_COUNT = PARTIALITY_SYMBOL_FEATURE_COUNT + 0; + int UNNAMED_ERROR_PREDIATE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DataSymbolImpl Data Symbol}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl Default Definition}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DataSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDataSymbol() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDefaultDefinition() * @generated */ - int DATA_SYMBOL = 11; + int DEFAULT_DEFINITION = 4; /** - * The number of structural features of the 'Data Symbol' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int DATA_SYMBOL_FEATURE_COUNT = SYMBOL_FEATURE_COUNT + 0; + int DEFAULT_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanSymbolImpl Boolean Symbol}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanSymbol() * @generated + * @ordered */ - int BOOLEAN_SYMBOL = 12; + int DEFAULT_DEFINITION__NAME = STATEMENT__NAME; /** - * The number of structural features of the 'Boolean Symbol' class. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int BOOLEAN_SYMBOL_FEATURE_COUNT = DATA_SYMBOL_FEATURE_COUNT + 0; + int DEFAULT_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntegerSymbolImpl Integer Symbol}' class. + * The feature id for the 'Members' containment reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntegerSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIntegerSymbol() * @generated + * @ordered */ - int INTEGER_SYMBOL = 13; + int DEFAULT_DEFINITION__MEMBERS = STATEMENT__MEMBERS; /** - * The number of structural features of the 'Integer Symbol' class. + * The feature id for the 'Head' containment reference. * * * @generated * @ordered */ - int INTEGER_SYMBOL_FEATURE_COUNT = DATA_SYMBOL_FEATURE_COUNT + 0; + int DEFAULT_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 0; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealSymbolImpl Real Symbol}' class. + * The feature id for the 'Range' containment reference. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.RealSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getRealSymbol() * @generated + * @ordered */ - int REAL_SYMBOL = 14; + int DEFAULT_DEFINITION__RANGE = STATEMENT_FEATURE_COUNT + 1; /** - * The number of structural features of the 'Real Symbol' class. + * The number of structural features of the 'Default Definition' class. * * * @generated * @ordered */ - int REAL_SYMBOL_FEATURE_COUNT = DATA_SYMBOL_FEATURE_COUNT + 0; + int DEFAULT_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringSymbolImpl String Symbol}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl Extern Predicate Definition}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringSymbol() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExternPredicateDefinition() * @generated */ - int STRING_SYMBOL = 15; + int EXTERN_PREDICATE_DEFINITION = 5; /** - * The number of structural features of the 'String Symbol' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int STRING_SYMBOL_FEATURE_COUNT = DATA_SYMBOL_FEATURE_COUNT + 0; + int EXTERN_PREDICATE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComplexObjectImpl Complex Object}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ComplexObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getComplexObject() * @generated + * @ordered */ - int COMPLEX_OBJECT = 16; + int EXTERN_PREDICATE_DEFINITION__NAME = STATEMENT__NAME; /** - * The number of structural features of the 'Complex Object' class. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int COMPLEX_OBJECT_FEATURE_COUNT = 0; + int EXTERN_PREDICATE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectImpl Object}' class. + * The feature id for the 'Members' containment reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObject() * @generated + * @ordered */ - int OBJECT = 17; + int EXTERN_PREDICATE_DEFINITION__MEMBERS = STATEMENT__MEMBERS; /** - * The number of structural features of the 'Object' class. + * The feature id for the 'Head' containment reference. * * * @generated * @ordered */ - int OBJECT_FEATURE_COUNT = COMPLEX_OBJECT_FEATURE_COUNT + 0; + int EXTERN_PREDICATE_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 0; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl Named Object}' class. + * The number of structural features of the 'Extern Predicate Definition' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNamedObject() * @generated + * @ordered */ - int NAMED_OBJECT = 18; + int EXTERN_PREDICATE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; /** - * The feature id for the 'Name' attribute. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl Metric Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMetricDefinition() * @generated - * @ordered */ - int NAMED_OBJECT__NAME = OBJECT_FEATURE_COUNT + 0; + int METRIC_DEFINITION = 6; /** - * The number of structural features of the 'Named Object' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int NAMED_OBJECT_FEATURE_COUNT = OBJECT_FEATURE_COUNT + 1; + int METRIC_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl Unnamed Object}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnnamedObject() * @generated + * @ordered */ - int UNNAMED_OBJECT = 19; + int METRIC_DEFINITION__NAME = STATEMENT__NAME; /** - * The feature id for the 'Name' attribute. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int UNNAMED_OBJECT__NAME = OBJECT_FEATURE_COUNT + 0; + int METRIC_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * The number of structural features of the 'Unnamed Object' class. + * The feature id for the 'Members' containment reference list. * * * @generated * @ordered */ - int UNNAMED_OBJECT_FEATURE_COUNT = OBJECT_FEATURE_COUNT + 1; + int METRIC_DEFINITION__MEMBERS = STATEMENT__MEMBERS; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DataObjectImpl Data Object}' class. + * The feature id for the 'Head' containment reference. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DataObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDataObject() * @generated + * @ordered */ - int DATA_OBJECT = 20; + int METRIC_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 0; /** - * The number of structural features of the 'Data Object' class. + * The feature id for the 'Body' containment reference. * * * @generated * @ordered */ - int DATA_OBJECT_FEATURE_COUNT = OBJECT_FEATURE_COUNT + 0; + int METRIC_DEFINITION__BODY = STATEMENT_FEATURE_COUNT + 1; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl Boolean Object}' class. + * The feature id for the 'Type' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanObject() * @generated + * @ordered */ - int BOOLEAN_OBJECT = 21; + int METRIC_DEFINITION__TYPE = STATEMENT_FEATURE_COUNT + 2; /** - * The feature id for the 'Value' containment reference. + * The number of structural features of the 'Metric Definition' class. * * * @generated * @ordered */ - int BOOLEAN_OBJECT__VALUE = DATA_OBJECT_FEATURE_COUNT + 0; + int METRIC_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3; /** - * The number of structural features of the 'Boolean Object' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl Extern Metric Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExternMetricDefinition() * @generated - * @ordered */ - int BOOLEAN_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 1; + int EXTERN_METRIC_DEFINITION = 7; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl Int Object}' class. + * The feature id for the 'Abstract' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIntObject() * @generated + * @ordered */ - int INT_OBJECT = 22; + int EXTERN_METRIC_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT; /** - * The feature id for the 'Value' attribute. + * The feature id for the 'Name' attribute. * * * @generated * @ordered */ - int INT_OBJECT__VALUE = DATA_OBJECT_FEATURE_COUNT + 0; + int EXTERN_METRIC_DEFINITION__NAME = STATEMENT__NAME; /** - * The number of structural features of the 'Int Object' class. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int INT_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 1; + int EXTERN_METRIC_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl Real Object}' class. + * The feature id for the 'Members' containment reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getRealObject() * @generated + * @ordered */ - int REAL_OBJECT = 23; + int EXTERN_METRIC_DEFINITION__MEMBERS = STATEMENT__MEMBERS; /** - * The feature id for the 'Value' attribute. + * The feature id for the 'Type' attribute. * * * @generated * @ordered */ - int REAL_OBJECT__VALUE = DATA_OBJECT_FEATURE_COUNT + 0; + int EXTERN_METRIC_DEFINITION__TYPE = STATEMENT_FEATURE_COUNT + 0; /** - * The number of structural features of the 'Real Object' class. + * The feature id for the 'Head' containment reference. * * * @generated * @ordered */ - int REAL_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 1; + int EXTERN_METRIC_DEFINITION__HEAD = STATEMENT_FEATURE_COUNT + 1; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl String Object}' class. + * The number of structural features of the 'Extern Metric Definition' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringObject() * @generated + * @ordered */ - int STRING_OBJECT = 24; + int EXTERN_METRIC_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2; /** - * The feature id for the 'Value' attribute. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionImpl Expression}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExpression() * @generated - * @ordered */ - int STRING_OBJECT__VALUE = DATA_OBJECT_FEATURE_COUNT + 0; + int EXPRESSION = 8; /** - * The number of structural features of the 'String Object' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int STRING_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 1; + int EXPRESSION__ABSTRACT = STATEMENT__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl Predicate}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPredicate() * @generated + * @ordered */ - int PREDICATE = 25; + int EXPRESSION__NAME = STATEMENT__NAME; /** - * The feature id for the 'Is Error' attribute. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int PREDICATE__IS_ERROR = STATEMENT_FEATURE_COUNT + 0; + int EXPRESSION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * The feature id for the 'Symbol' containment reference. + * The feature id for the 'Members' containment reference list. * * * @generated * @ordered */ - int PREDICATE__SYMBOL = STATEMENT_FEATURE_COUNT + 1; + int EXPRESSION__MEMBERS = STATEMENT__MEMBERS; /** - * The feature id for the 'Parameters' containment reference list. + * The number of structural features of the 'Expression' class. * * * @generated * @ordered */ - int PREDICATE__PARAMETERS = STATEMENT_FEATURE_COUNT + 2; + int EXPRESSION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 0; /** - * The feature id for the 'Bodies' containment reference list. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl If Else}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIfElse() * @generated - * @ordered */ - int PREDICATE__BODIES = STATEMENT_FEATURE_COUNT + 3; + int IF_ELSE = 9; /** - * The number of structural features of the 'Predicate' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int PREDICATE_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 4; + int IF_ELSE__ABSTRACT = EXPRESSION__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl Parameter}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getParameter() * @generated + * @ordered */ - int PARAMETER = 26; + int IF_ELSE__NAME = EXPRESSION__NAME; /** - * The feature id for the 'Variable' containment reference. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int PARAMETER__VARIABLE = 0; + int IF_ELSE__SUPERCLASSES = EXPRESSION__SUPERCLASSES; /** - * The feature id for the 'Type' containment reference. + * The feature id for the 'Members' containment reference list. * * * @generated * @ordered */ - int PARAMETER__TYPE = 1; + int IF_ELSE__MEMBERS = EXPRESSION__MEMBERS; /** - * The number of structural features of the 'Parameter' class. + * The feature id for the 'Condition' containment reference. * * * @generated * @ordered */ - int PARAMETER_FEATURE_COUNT = 2; + int IF_ELSE__CONDITION = EXPRESSION_FEATURE_COUNT + 0; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl Pattern Body}' class. + * The feature id for the 'Then' containment reference. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPatternBody() * @generated + * @ordered */ - int PATTERN_BODY = 27; + int IF_ELSE__THEN = EXPRESSION_FEATURE_COUNT + 1; /** - * The feature id for the 'Constraints' containment reference list. + * The feature id for the 'Else' containment reference. * * * @generated * @ordered */ - int PATTERN_BODY__CONSTRAINTS = 0; + int IF_ELSE__ELSE = EXPRESSION_FEATURE_COUNT + 2; /** - * The number of structural features of the 'Pattern Body' class. + * The number of structural features of the 'If Else' class. * * * @generated * @ordered */ - int PATTERN_BODY_FEATURE_COUNT = 1; + int IF_ELSE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PolarityImpl Polarity}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl Case}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PolarityImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPolarity() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCase() * @generated */ - int POLARITY = 28; + int CASE = 10; /** - * The number of structural features of the 'Polarity' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int POLARITY_FEATURE_COUNT = 0; + int CASE__ABSTRACT = EXPRESSION__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl Constraint}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getConstraint() * @generated + * @ordered */ - int CONSTRAINT = 29; + int CASE__NAME = EXPRESSION__NAME; /** - * The feature id for the 'Polarity' containment reference. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int CONSTRAINT__POLARITY = 0; + int CASE__SUPERCLASSES = EXPRESSION__SUPERCLASSES; /** - * The feature id for the 'Symbol' containment reference. + * The feature id for the 'Members' containment reference list. * * * @generated * @ordered */ - int CONSTRAINT__SYMBOL = 1; + int CASE__MEMBERS = EXPRESSION__MEMBERS; /** - * The feature id for the 'Params' containment reference list. + * The feature id for the 'Condition' containment reference. * * * @generated * @ordered */ - int CONSTRAINT__PARAMS = 2; + int CASE__CONDITION = EXPRESSION_FEATURE_COUNT + 0; /** - * The feature id for the 'Closure Type' containment reference. + * The feature id for the 'Body' containment reference. * * * @generated * @ordered */ - int CONSTRAINT__CLOSURE_TYPE = 3; + int CASE__BODY = EXPRESSION_FEATURE_COUNT + 1; /** - * The number of structural features of the 'Constraint' class. + * The number of structural features of the 'Case' class. * * * @generated * @ordered */ - int CONSTRAINT_FEATURE_COUNT = 4; + int CASE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClosureTypeImpl Closure Type}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl Count}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ClosureTypeImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getClosureType() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCount() * @generated */ - int CLOSURE_TYPE = 30; + int COUNT = 11; /** - * The number of structural features of the 'Closure Type' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int CLOSURE_TYPE_FEATURE_COUNT = 0; + int COUNT__ABSTRACT = EXPRESSION__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LiteralImpl Literal}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LiteralImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLiteral() * @generated + * @ordered */ - int LITERAL = 31; + int COUNT__NAME = EXPRESSION__NAME; /** - * The number of structural features of the 'Literal' class. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int LITERAL_FEATURE_COUNT = 0; + int COUNT__SUPERCLASSES = EXPRESSION__SUPERCLASSES; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl Variable}' class. + * The feature id for the 'Members' containment reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getVariable() * @generated + * @ordered */ - int VARIABLE = 32; + int COUNT__MEMBERS = EXPRESSION__MEMBERS; /** - * The feature id for the 'Name' attribute. + * The feature id for the 'Body' containment reference. * * * @generated * @ordered */ - int VARIABLE__NAME = LITERAL_FEATURE_COUNT + 0; + int COUNT__BODY = EXPRESSION_FEATURE_COUNT + 0; /** - * The number of structural features of the 'Variable' class. + * The number of structural features of the 'Count' class. * * * @generated * @ordered */ - int VARIABLE_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1; + int COUNT_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl All Instances}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl Aggregation}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAllInstances() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAggregation() * @generated */ - int ALL_INSTANCES = 33; + int AGGREGATION = 12; /** - * The feature id for the 'Symbol' containment reference. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int ALL_INSTANCES__SYMBOL = COMPLEX_OBJECT_FEATURE_COUNT + 0; + int AGGREGATION__ABSTRACT = EXPRESSION__ABSTRACT; /** - * The number of structural features of the 'All Instances' class. + * The feature id for the 'Name' attribute. * * * @generated * @ordered */ - int ALL_INSTANCES_FEATURE_COUNT = COMPLEX_OBJECT_FEATURE_COUNT + 1; + int AGGREGATION__NAME = EXPRESSION__NAME; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllObjectsImpl All Objects}' class. + * The feature id for the 'Superclasses' reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AllObjectsImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAllObjects() * @generated + * @ordered */ - int ALL_OBJECTS = 34; + int AGGREGATION__SUPERCLASSES = EXPRESSION__SUPERCLASSES; /** - * The number of structural features of the 'All Objects' class. + * The feature id for the 'Members' containment reference list. * * * @generated * @ordered */ - int ALL_OBJECTS_FEATURE_COUNT = COMPLEX_OBJECT_FEATURE_COUNT + 0; + int AGGREGATION__MEMBERS = EXPRESSION__MEMBERS; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl Default Interpretation}' class. + * The feature id for the 'Op' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDefaultInterpretation() * @generated + * @ordered */ - int DEFAULT_INTERPRETATION = 35; + int AGGREGATION__OP = EXPRESSION_FEATURE_COUNT + 0; /** - * The feature id for the 'Interpretation' containment reference. + * The feature id for the 'Body' containment reference. * * * @generated * @ordered */ - int DEFAULT_INTERPRETATION__INTERPRETATION = INTERPRETATION_FEATURE_COUNT + 0; + int AGGREGATION__BODY = EXPRESSION_FEATURE_COUNT + 1; /** - * The number of structural features of the 'Default Interpretation' class. + * The feature id for the 'Condition' containment reference. * * * @generated * @ordered */ - int DEFAULT_INTERPRETATION_FEATURE_COUNT = INTERPRETATION_FEATURE_COUNT + 1; + int AGGREGATION__CONDITION = EXPRESSION_FEATURE_COUNT + 2; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CDInterpretationImpl CD Interpretation}' class. + * The number of structural features of the 'Aggregation' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CDInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCDInterpretation() * @generated + * @ordered */ - int CD_INTERPRETATION = 36; + int AGGREGATION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3; /** - * The number of structural features of the 'CD Interpretation' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl Call}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCall() * @generated - * @ordered */ - int CD_INTERPRETATION_FEATURE_COUNT = INTERPRETATION_FEATURE_COUNT + 0; + int CALL = 13; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl Class Interpretation}' class. + * The feature id for the 'Abstract' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getClassInterpretation() * @generated + * @ordered */ - int CLASS_INTERPRETATION = 37; + int CALL__ABSTRACT = EXPRESSION__ABSTRACT; /** - * The feature id for the 'Abstract' attribute. + * The feature id for the 'Name' attribute. * * * @generated * @ordered */ - int CLASS_INTERPRETATION__ABSTRACT = CD_INTERPRETATION_FEATURE_COUNT + 0; + int CALL__NAME = EXPRESSION__NAME; /** - * The feature id for the 'Symbol' containment reference. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int CLASS_INTERPRETATION__SYMBOL = CD_INTERPRETATION_FEATURE_COUNT + 1; + int CALL__SUPERCLASSES = EXPRESSION__SUPERCLASSES; /** - * The feature id for the 'Supertypes' containment reference list. + * The feature id for the 'Members' containment reference list. * * * @generated * @ordered */ - int CLASS_INTERPRETATION__SUPERTYPES = CD_INTERPRETATION_FEATURE_COUNT + 2; + int CALL__MEMBERS = EXPRESSION__MEMBERS; /** - * The feature id for the 'Fielt' containment reference list. + * The feature id for the 'Functor' containment reference. * * * @generated * @ordered */ - int CLASS_INTERPRETATION__FIELT = CD_INTERPRETATION_FEATURE_COUNT + 3; + int CALL__FUNCTOR = EXPRESSION_FEATURE_COUNT + 0; /** - * The number of structural features of the 'Class Interpretation' class. + * The feature id for the 'Argument List' containment reference. * * * @generated * @ordered */ - int CLASS_INTERPRETATION_FEATURE_COUNT = CD_INTERPRETATION_FEATURE_COUNT + 4; + int CALL__ARGUMENT_LIST = EXPRESSION_FEATURE_COUNT + 1; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl Enum Interpretation}' class. + * The feature id for the 'Transitive Closure' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEnumInterpretation() * @generated + * @ordered */ - int ENUM_INTERPRETATION = 38; + int CALL__TRANSITIVE_CLOSURE = EXPRESSION_FEATURE_COUNT + 2; /** - * The feature id for the 'Symbol' containment reference. + * The feature id for the 'Reflexive Transitive Closure' attribute. * * * @generated * @ordered */ - int ENUM_INTERPRETATION__SYMBOL = CD_INTERPRETATION_FEATURE_COUNT + 0; + int CALL__REFLEXIVE_TRANSITIVE_CLOSURE = EXPRESSION_FEATURE_COUNT + 3; /** - * The feature id for the 'Objects' containment reference list. + * The number of structural features of the 'Call' class. * * * @generated * @ordered */ - int ENUM_INTERPRETATION__OBJECTS = CD_INTERPRETATION_FEATURE_COUNT + 1; + int CALL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 4; /** - * The number of structural features of the 'Enum Interpretation' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl Argument List}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getArgumentList() * @generated - * @ordered */ - int ENUM_INTERPRETATION_FEATURE_COUNT = CD_INTERPRETATION_FEATURE_COUNT + 2; + int ARGUMENT_LIST = 14; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl Field Relation Interpretation}' class. + * The feature id for the 'Arguments' containment reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getFieldRelationInterpretation() * @generated + * @ordered */ - int FIELD_RELATION_INTERPRETATION = 39; + int ARGUMENT_LIST__ARGUMENTS = 0; /** - * The feature id for the 'Containment' attribute. + * The number of structural features of the 'Argument List' class. * * * @generated * @ordered */ - int FIELD_RELATION_INTERPRETATION__CONTAINMENT = 0; + int ARGUMENT_LIST_FEATURE_COUNT = 1; /** - * The feature id for the 'Symbol' containment reference. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentImpl Argument}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getArgument() * @generated - * @ordered */ - int FIELD_RELATION_INTERPRETATION__SYMBOL = 1; + int ARGUMENT = 15; /** - * The feature id for the 'Multiplicity' containment reference. + * The number of structural features of the 'Argument' class. * * * @generated * @ordered */ - int FIELD_RELATION_INTERPRETATION__MULTIPLICITY = 2; + int ARGUMENT_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl Expression Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExpressionArgument() + * @generated + */ + int EXPRESSION_ARGUMENT = 16; /** - * The feature id for the 'Target' containment reference. + * The feature id for the 'Body' containment reference. * * * @generated * @ordered */ - int FIELD_RELATION_INTERPRETATION__TARGET = 3; + int EXPRESSION_ARGUMENT__BODY = ARGUMENT_FEATURE_COUNT + 0; /** - * The number of structural features of the 'Field Relation Interpretation' class. + * The number of structural features of the 'Expression Argument' class. * * * @generated * @ordered */ - int FIELD_RELATION_INTERPRETATION_FEATURE_COUNT = 4; + int EXPRESSION_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 1; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl Global Relation Interpretation}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StarArgumentImpl Star Argument}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getGlobalRelationInterpretation() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StarArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStarArgument() * @generated */ - int GLOBAL_RELATION_INTERPRETATION = 40; + int STAR_ARGUMENT = 17; /** - * The feature id for the 'Containment' attribute. + * The number of structural features of the 'Star Argument' class. * * * @generated * @ordered */ - int GLOBAL_RELATION_INTERPRETATION__CONTAINMENT = CD_INTERPRETATION_FEATURE_COUNT + 0; + int STAR_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 0; /** - * The feature id for the 'Symbol' containment reference. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl Typed Argument}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTypedArgument() * @generated - * @ordered */ - int GLOBAL_RELATION_INTERPRETATION__SYMBOL = CD_INTERPRETATION_FEATURE_COUNT + 1; + int TYPED_ARGUMENT = 18; /** - * The feature id for the 'Source Multiplicity' containment reference. + * The feature id for the 'Type' reference. * * * @generated * @ordered */ - int GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY = CD_INTERPRETATION_FEATURE_COUNT + 2; + int TYPED_ARGUMENT__TYPE = ARGUMENT_FEATURE_COUNT + 0; /** - * The feature id for the 'Source' containment reference. + * The feature id for the 'Variable' reference. * * * @generated * @ordered */ - int GLOBAL_RELATION_INTERPRETATION__SOURCE = CD_INTERPRETATION_FEATURE_COUNT + 3; + int TYPED_ARGUMENT__VARIABLE = ARGUMENT_FEATURE_COUNT + 1; /** - * The feature id for the 'Target Multiplicity' containment reference. + * The number of structural features of the 'Typed Argument' class. * * * @generated * @ordered */ - int GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY = CD_INTERPRETATION_FEATURE_COUNT + 4; + int TYPED_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl Typed Star Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTypedStarArgument() + * @generated + */ + int TYPED_STAR_ARGUMENT = 19; /** - * The feature id for the 'Target' containment reference. + * The feature id for the 'Type' reference. * * * @generated * @ordered */ - int GLOBAL_RELATION_INTERPRETATION__TARGET = CD_INTERPRETATION_FEATURE_COUNT + 5; + int TYPED_STAR_ARGUMENT__TYPE = ARGUMENT_FEATURE_COUNT + 0; /** - * The number of structural features of the 'Global Relation Interpretation' class. + * The number of structural features of the 'Typed Star Argument' class. * * * @generated * @ordered */ - int GLOBAL_RELATION_INTERPRETATION_FEATURE_COUNT = CD_INTERPRETATION_FEATURE_COUNT + 6; + int TYPED_STAR_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 1; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl Multiplicity Definition}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl Reference}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMultiplicityDefinition() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getReference() * @generated */ - int MULTIPLICITY_DEFINITION = 41; + int REFERENCE = 20; /** - * The feature id for the 'Lower' attribute. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int MULTIPLICITY_DEFINITION__LOWER = 0; + int REFERENCE__ABSTRACT = EXPRESSION__ABSTRACT; /** - * The feature id for the 'Upper' attribute. + * The feature id for the 'Name' attribute. * * * @generated * @ordered */ - int MULTIPLICITY_DEFINITION__UPPER = 1; + int REFERENCE__NAME = EXPRESSION__NAME; /** - * The feature id for the 'Unlimited Upper' attribute. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int MULTIPLICITY_DEFINITION__UNLIMITED_UPPER = 2; + int REFERENCE__SUPERCLASSES = EXPRESSION__SUPERCLASSES; /** - * The number of structural features of the 'Multiplicity Definition' class. + * The feature id for the 'Members' containment reference list. * * * @generated * @ordered */ - int MULTIPLICITY_DEFINITION_FEATURE_COUNT = 3; + int REFERENCE__MEMBERS = EXPRESSION__MEMBERS; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanTrueImpl Boolean True}' class. + * The feature id for the 'Referred' reference. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanTrueImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanTrue() * @generated + * @ordered */ - int BOOLEAN_TRUE = 42; + int REFERENCE__REFERRED = EXPRESSION_FEATURE_COUNT + 0; /** - * The number of structural features of the 'Boolean True' class. + * The number of structural features of the 'Reference' class. * * * @generated * @ordered */ - int BOOLEAN_TRUE_FEATURE_COUNT = BOOLEAN_VALUE_FEATURE_COUNT + 0; + int REFERENCE_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanFalseImpl Boolean False}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl Interval}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanFalseImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanFalse() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInterval() * @generated */ - int BOOLEAN_FALSE = 43; + int INTERVAL = 21; /** - * The number of structural features of the 'Boolean False' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int BOOLEAN_FALSE_FEATURE_COUNT = BOOLEAN_VALUE_FEATURE_COUNT + 0; + int INTERVAL__ABSTRACT = EXPRESSION__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TrueImpl True}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TrueImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTrue() * @generated + * @ordered */ - int TRUE = 44; + int INTERVAL__NAME = EXPRESSION__NAME; /** - * The number of structural features of the 'True' class. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int TRUE_FEATURE_COUNT = TRUTH_VALUE_FEATURE_COUNT + 0; + int INTERVAL__SUPERCLASSES = EXPRESSION__SUPERCLASSES; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FalseImpl False}' class. + * The feature id for the 'Members' containment reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.FalseImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getFalse() * @generated + * @ordered */ - int FALSE = 45; + int INTERVAL__MEMBERS = EXPRESSION__MEMBERS; /** - * The number of structural features of the 'False' class. + * The feature id for the 'Lower Bound' containment reference. * * * @generated * @ordered */ - int FALSE_FEATURE_COUNT = TRUTH_VALUE_FEATURE_COUNT + 0; + int INTERVAL__LOWER_BOUND = EXPRESSION_FEATURE_COUNT + 0; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnknownImpl Unknown}' class. + * The feature id for the 'Upper Bound' containment reference. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnknownImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnknown() * @generated + * @ordered */ - int UNKNOWN = 46; + int INTERVAL__UPPER_BOUND = EXPRESSION_FEATURE_COUNT + 1; /** - * The number of structural features of the 'Unknown' class. + * The number of structural features of the 'Interval' class. * * * @generated * @ordered */ - int UNKNOWN_FEATURE_COUNT = TRUTH_VALUE_FEATURE_COUNT + 0; + int INTERVAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ErrorImpl Error}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LiteralImpl Literal}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ErrorImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getError() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLiteral() * @generated */ - int ERROR = 47; + int LITERAL = 22; /** - * The number of structural features of the 'Error' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int ERROR_FEATURE_COUNT = TRUTH_VALUE_FEATURE_COUNT + 0; + int LITERAL__ABSTRACT = EXPRESSION__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PositiveImpl Positive}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PositiveImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPositive() * @generated + * @ordered */ - int POSITIVE = 48; + int LITERAL__NAME = EXPRESSION__NAME; /** - * The number of structural features of the 'Positive' class. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int POSITIVE_FEATURE_COUNT = POLARITY_FEATURE_COUNT + 0; + int LITERAL__SUPERCLASSES = EXPRESSION__SUPERCLASSES; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NegativeImpl Negative}' class. + * The feature id for the 'Members' containment reference list. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NegativeImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNegative() * @generated + * @ordered */ - int NEGATIVE = 49; + int LITERAL__MEMBERS = EXPRESSION__MEMBERS; /** - * The number of structural features of the 'Negative' class. + * The number of structural features of the 'Literal' class. * * * @generated * @ordered */ - int NEGATIVE_FEATURE_COUNT = POLARITY_FEATURE_COUNT + 0; + int LITERAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReflexiveClosureImpl Reflexive Closure}' class. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl Logic Literal}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ReflexiveClosureImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getReflexiveClosure() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLogicLiteral() * @generated */ - int REFLEXIVE_CLOSURE = 50; + int LOGIC_LITERAL = 23; /** - * The number of structural features of the 'Reflexive Closure' class. + * The feature id for the 'Abstract' attribute. * * * @generated * @ordered */ - int REFLEXIVE_CLOSURE_FEATURE_COUNT = CLOSURE_TYPE_FEATURE_COUNT + 0; + int LOGIC_LITERAL__ABSTRACT = LITERAL__ABSTRACT; /** - * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IrreflexiveClosureImpl Irreflexive Closure}' class. + * The feature id for the 'Name' attribute. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IrreflexiveClosureImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIrreflexiveClosure() * @generated + * @ordered */ - int IRREFLEXIVE_CLOSURE = 51; + int LOGIC_LITERAL__NAME = LITERAL__NAME; /** - * The number of structural features of the 'Irreflexive Closure' class. + * The feature id for the 'Superclasses' reference list. * * * @generated * @ordered */ - int IRREFLEXIVE_CLOSURE_FEATURE_COUNT = CLOSURE_TYPE_FEATURE_COUNT + 0; - + int LOGIC_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Problem Problem}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for class 'Problem'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Problem * @generated + * @ordered */ - EClass getProblem(); + int LOGIC_LITERAL__MEMBERS = LITERAL__MEMBERS; /** - * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Problem#getStatements Statements}'. + * The feature id for the 'Value' attribute. * * - * @return the meta object for the containment reference list 'Statements'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Problem#getStatements() - * @see #getProblem() * @generated + * @ordered */ - EReference getProblem_Statements(); + int LOGIC_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement Statement}'. + * The number of structural features of the 'Logic Literal' class. * * - * @return the meta object for class 'Statement'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Statement * @generated + * @ordered */ - EClass getStatement(); + int LOGIC_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanValue Boolean Value}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl Numeric Literal}' class. * * - * @return the meta object for class 'Boolean Value'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanValue + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNumericLiteral() * @generated */ - EClass getBooleanValue(); + int NUMERIC_LITERAL = 24; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.TruthValue Truth Value}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for class 'Truth Value'. - * @see org.eclipse.viatra.solver.language.solverLanguage.TruthValue * @generated + * @ordered */ - EClass getTruthValue(); + int NUMERIC_LITERAL__ABSTRACT = LITERAL__ABSTRACT; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Interpretation Interpretation}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for class 'Interpretation'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Interpretation * @generated + * @ordered */ - EClass getInterpretation(); + int NUMERIC_LITERAL__NAME = LITERAL__NAME; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation Basic Interpretation}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for class 'Basic Interpretation'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation * @generated + * @ordered */ - EClass getBasicInterpretation(); + int NUMERIC_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getSymbol Symbol}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for the containment reference 'Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getSymbol() - * @see #getBasicInterpretation() * @generated + * @ordered */ - EReference getBasicInterpretation_Symbol(); + int NUMERIC_LITERAL__MEMBERS = LITERAL__MEMBERS; /** - * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getObjects Objects}'. + * The feature id for the 'Value' attribute. * * - * @return the meta object for the containment reference list 'Objects'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getObjects() - * @see #getBasicInterpretation() * @generated + * @ordered */ - EReference getBasicInterpretation_Objects(); + int NUMERIC_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getValue Value}'. + * The number of structural features of the 'Numeric Literal' class. * * - * @return the meta object for the containment reference 'Value'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation#getValue() - * @see #getBasicInterpretation() * @generated + * @ordered */ - EReference getBasicInterpretation_Value(); + int NUMERIC_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Symbol Symbol}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.InfinityLiteralImpl Infinity Literal}' class. * * - * @return the meta object for class 'Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Symbol + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.InfinityLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInfinityLiteral() * @generated */ - EClass getSymbol(); + int INFINITY_LITERAL = 25; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol Model Symbol}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for class 'Model Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol * @generated + * @ordered */ - EClass getModelSymbol(); + int INFINITY_LITERAL__ABSTRACT = LITERAL__ABSTRACT; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol#getName Name}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for the attribute 'Name'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol#getName() - * @see #getModelSymbol() * @generated + * @ordered */ - EAttribute getModelSymbol_Name(); + int INFINITY_LITERAL__NAME = LITERAL__NAME; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol Partiality Symbol}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for class 'Partiality Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol * @generated + * @ordered */ - EClass getPartialitySymbol(); + int INFINITY_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol Exist Symbol}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for class 'Exist Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol * @generated + * @ordered */ - EClass getExistSymbol(); + int INFINITY_LITERAL__MEMBERS = LITERAL__MEMBERS; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol Equals Symbol}'. + * The number of structural features of the 'Infinity Literal' class. * * - * @return the meta object for class 'Equals Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol * @generated + * @ordered */ - EClass getEqualsSymbol(); + int INFINITY_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 0; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.DataSymbol Data Symbol}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EmptyIntervalLiteralImpl Empty Interval Literal}' class. * * - * @return the meta object for class 'Data Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.DataSymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EmptyIntervalLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEmptyIntervalLiteral() * @generated */ - EClass getDataSymbol(); + int EMPTY_INTERVAL_LITERAL = 26; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol Boolean Symbol}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for class 'Boolean Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol * @generated + * @ordered */ - EClass getBooleanSymbol(); + int EMPTY_INTERVAL_LITERAL__ABSTRACT = LITERAL__ABSTRACT; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol Integer Symbol}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for class 'Integer Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol * @generated + * @ordered */ - EClass getIntegerSymbol(); + int EMPTY_INTERVAL_LITERAL__NAME = LITERAL__NAME; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.RealSymbol Real Symbol}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for class 'Real Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.RealSymbol * @generated + * @ordered */ - EClass getRealSymbol(); + int EMPTY_INTERVAL_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringSymbol String Symbol}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for class 'String Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.StringSymbol * @generated + * @ordered */ - EClass getStringSymbol(); + int EMPTY_INTERVAL_LITERAL__MEMBERS = LITERAL__MEMBERS; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ComplexObject Complex Object}'. + * The number of structural features of the 'Empty Interval Literal' class. * * - * @return the meta object for class 'Complex Object'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ComplexObject * @generated + * @ordered */ - EClass getComplexObject(); + int EMPTY_INTERVAL_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 0; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Object Object}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl String Literal}' class. * * - * @return the meta object for class 'Object'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Object + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringLiteral() * @generated */ - EClass getObject(); + int STRING_LITERAL = 27; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject Named Object}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for class 'Named Object'. - * @see org.eclipse.viatra.solver.language.solverLanguage.NamedObject * @generated + * @ordered */ - EClass getNamedObject(); + int STRING_LITERAL__ABSTRACT = LITERAL__ABSTRACT; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject#getName Name}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for the attribute 'Name'. - * @see org.eclipse.viatra.solver.language.solverLanguage.NamedObject#getName() - * @see #getNamedObject() * @generated + * @ordered */ - EAttribute getNamedObject_Name(); + int STRING_LITERAL__NAME = LITERAL__NAME; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject Unnamed Object}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for class 'Unnamed Object'. - * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject * @generated + * @ordered */ - EClass getUnnamedObject(); + int STRING_LITERAL__SUPERCLASSES = LITERAL__SUPERCLASSES; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject#getName Name}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for the attribute 'Name'. - * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject#getName() - * @see #getUnnamedObject() * @generated + * @ordered */ - EAttribute getUnnamedObject_Name(); + int STRING_LITERAL__MEMBERS = LITERAL__MEMBERS; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.DataObject Data Object}'. + * The feature id for the 'Value' attribute. * * - * @return the meta object for class 'Data Object'. - * @see org.eclipse.viatra.solver.language.solverLanguage.DataObject * @generated + * @ordered */ - EClass getDataObject(); + int STRING_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject Boolean Object}'. + * The number of structural features of the 'String Literal' class. * * - * @return the meta object for class 'Boolean Object'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanObject * @generated + * @ordered */ - EClass getBooleanObject(); + int STRING_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject#getValue Value}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl Member Definition}' class. * * - * @return the meta object for the containment reference 'Value'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanObject#getValue() - * @see #getBooleanObject() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMemberDefinition() * @generated */ - EReference getBooleanObject_Value(); + int MEMBER_DEFINITION = 28; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.IntObject Int Object}'. + * The feature id for the 'Containment' attribute. * * - * @return the meta object for class 'Int Object'. - * @see org.eclipse.viatra.solver.language.solverLanguage.IntObject * @generated + * @ordered */ - EClass getIntObject(); + int MEMBER_DEFINITION__CONTAINMENT = 0; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.IntObject#getValue Value}'. + * The feature id for the 'Type' reference. * * - * @return the meta object for the attribute 'Value'. - * @see org.eclipse.viatra.solver.language.solverLanguage.IntObject#getValue() - * @see #getIntObject() * @generated + * @ordered */ - EAttribute getIntObject_Value(); + int MEMBER_DEFINITION__TYPE = 1; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.RealObject Real Object}'. + * The feature id for the 'Multiplicity' containment reference. * * - * @return the meta object for class 'Real Object'. - * @see org.eclipse.viatra.solver.language.solverLanguage.RealObject * @generated + * @ordered */ - EClass getRealObject(); + int MEMBER_DEFINITION__MULTIPLICITY = 2; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.RealObject#getValue Value}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for the attribute 'Value'. - * @see org.eclipse.viatra.solver.language.solverLanguage.RealObject#getValue() - * @see #getRealObject() * @generated + * @ordered */ - EAttribute getRealObject_Value(); + int MEMBER_DEFINITION__NAME = 3; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringObject String Object}'. + * The feature id for the 'Opposite' reference. * * - * @return the meta object for class 'String Object'. - * @see org.eclipse.viatra.solver.language.solverLanguage.StringObject * @generated + * @ordered */ - EClass getStringObject(); + int MEMBER_DEFINITION__OPPOSITE = 4; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.StringObject#getValue Value}'. + * The number of structural features of the 'Member Definition' class. * * - * @return the meta object for the attribute 'Value'. - * @see org.eclipse.viatra.solver.language.solverLanguage.StringObject#getValue() - * @see #getStringObject() * @generated + * @ordered */ - EAttribute getStringObject_Value(); + int MEMBER_DEFINITION_FEATURE_COUNT = 5; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate Predicate}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityImpl Multiplicity}' class. * * - * @return the meta object for class 'Predicate'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMultiplicity() * @generated */ - EClass getPredicate(); + int MULTIPLICITY = 29; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#isIsError Is Error}'. + * The number of structural features of the 'Multiplicity' class. * * - * @return the meta object for the attribute 'Is Error'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate#isIsError() - * @see #getPredicate() * @generated + * @ordered */ - EAttribute getPredicate_IsError(); + int MULTIPLICITY_FEATURE_COUNT = 0; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getSymbol Symbol}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ManyMultiplicityImpl Many Multiplicity}' class. * * - * @return the meta object for the containment reference 'Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate#getSymbol() - * @see #getPredicate() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ManyMultiplicityImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getManyMultiplicity() * @generated */ - EReference getPredicate_Symbol(); + int MANY_MULTIPLICITY = 30; /** - * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getParameters Parameters}'. + * The number of structural features of the 'Many Multiplicity' class. * * - * @return the meta object for the containment reference list 'Parameters'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate#getParameters() - * @see #getPredicate() * @generated + * @ordered */ - EReference getPredicate_Parameters(); + int MANY_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 0; /** - * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate#getBodies Bodies}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl Exact Multiplicity}' class. * * - * @return the meta object for the containment reference list 'Bodies'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate#getBodies() - * @see #getPredicate() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExactMultiplicity() * @generated */ - EReference getPredicate_Bodies(); + int EXACT_MULTIPLICITY = 31; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter Parameter}'. + * The feature id for the 'Multiplicity' attribute. * * - * @return the meta object for class 'Parameter'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Parameter * @generated + * @ordered */ - EClass getParameter(); + int EXACT_MULTIPLICITY__MULTIPLICITY = MULTIPLICITY_FEATURE_COUNT + 0; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getVariable Variable}'. + * The number of structural features of the 'Exact Multiplicity' class. * * - * @return the meta object for the containment reference 'Variable'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Parameter#getVariable() - * @see #getParameter() * @generated + * @ordered */ - EReference getParameter_Variable(); + int EXACT_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 1; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter#getType Type}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl Bounded Multiplicity}' class. * * - * @return the meta object for the containment reference 'Type'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Parameter#getType() - * @see #getParameter() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBoundedMultiplicity() * @generated */ - EReference getParameter_Type(); + int BOUNDED_MULTIPLICITY = 32; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody Pattern Body}'. + * The feature id for the 'Lower Bound' attribute. * * - * @return the meta object for class 'Pattern Body'. - * @see org.eclipse.viatra.solver.language.solverLanguage.PatternBody * @generated + * @ordered */ - EClass getPatternBody(); + int BOUNDED_MULTIPLICITY__LOWER_BOUND = MULTIPLICITY_FEATURE_COUNT + 0; /** - * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody#getConstraints Constraints}'. + * The feature id for the 'Upper Bound' attribute. * * - * @return the meta object for the containment reference list 'Constraints'. - * @see org.eclipse.viatra.solver.language.solverLanguage.PatternBody#getConstraints() - * @see #getPatternBody() * @generated + * @ordered */ - EReference getPatternBody_Constraints(); + int BOUNDED_MULTIPLICITY__UPPER_BOUND = MULTIPLICITY_FEATURE_COUNT + 1; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Polarity Polarity}'. + * The number of structural features of the 'Bounded Multiplicity' class. * * - * @return the meta object for class 'Polarity'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Polarity * @generated + * @ordered */ - EClass getPolarity(); + int BOUNDED_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 2; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint Constraint}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl Scope Definition}' class. * * - * @return the meta object for class 'Constraint'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getScopeDefinition() * @generated */ - EClass getConstraint(); + int SCOPE_DEFINITION = 33; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getPolarity Polarity}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for the containment reference 'Polarity'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint#getPolarity() - * @see #getConstraint() * @generated + * @ordered */ - EReference getConstraint_Polarity(); + int SCOPE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getSymbol Symbol}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for the containment reference 'Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint#getSymbol() - * @see #getConstraint() * @generated + * @ordered */ - EReference getConstraint_Symbol(); + int SCOPE_DEFINITION__NAME = STATEMENT__NAME; /** - * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getParams Params}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for the containment reference list 'Params'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint#getParams() - * @see #getConstraint() * @generated + * @ordered */ - EReference getConstraint_Params(); + int SCOPE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint#getClosureType Closure Type}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for the containment reference 'Closure Type'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint#getClosureType() - * @see #getConstraint() * @generated + * @ordered */ - EReference getConstraint_ClosureType(); + int SCOPE_DEFINITION__MEMBERS = STATEMENT__MEMBERS; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ClosureType Closure Type}'. + * The feature id for the 'Type' reference. * * - * @return the meta object for class 'Closure Type'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ClosureType * @generated + * @ordered */ - EClass getClosureType(); + int SCOPE_DEFINITION__TYPE = STATEMENT_FEATURE_COUNT + 0; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Literal Literal}'. + * The number of structural features of the 'Scope Definition' class. * * - * @return the meta object for class 'Literal'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Literal * @generated + * @ordered */ - EClass getLiteral(); + int SCOPE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Variable Variable}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl Exact Scope Definition}' class. * * - * @return the meta object for class 'Variable'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Variable + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExactScopeDefinition() * @generated */ - EClass getVariable(); + int EXACT_SCOPE_DEFINITION = 34; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Variable#getName Name}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for the attribute 'Name'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Variable#getName() - * @see #getVariable() * @generated + * @ordered */ - EAttribute getVariable_Name(); + int EXACT_SCOPE_DEFINITION__ABSTRACT = SCOPE_DEFINITION__ABSTRACT; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances All Instances}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for class 'All Instances'. - * @see org.eclipse.viatra.solver.language.solverLanguage.AllInstances * @generated + * @ordered */ - EClass getAllInstances(); + int EXACT_SCOPE_DEFINITION__NAME = SCOPE_DEFINITION__NAME; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances#getSymbol Symbol}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for the containment reference 'Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.AllInstances#getSymbol() - * @see #getAllInstances() * @generated + * @ordered */ - EReference getAllInstances_Symbol(); + int EXACT_SCOPE_DEFINITION__SUPERCLASSES = SCOPE_DEFINITION__SUPERCLASSES; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.AllObjects All Objects}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for class 'All Objects'. - * @see org.eclipse.viatra.solver.language.solverLanguage.AllObjects * @generated + * @ordered */ - EClass getAllObjects(); + int EXACT_SCOPE_DEFINITION__MEMBERS = SCOPE_DEFINITION__MEMBERS; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation Default Interpretation}'. + * The feature id for the 'Type' reference. * * - * @return the meta object for class 'Default Interpretation'. - * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation * @generated + * @ordered */ - EClass getDefaultInterpretation(); + int EXACT_SCOPE_DEFINITION__TYPE = SCOPE_DEFINITION__TYPE; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation#getInterpretation Interpretation}'. + * The feature id for the 'Exact Scope' attribute. * * - * @return the meta object for the containment reference 'Interpretation'. - * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation#getInterpretation() - * @see #getDefaultInterpretation() * @generated + * @ordered */ - EReference getDefaultInterpretation_Interpretation(); + int EXACT_SCOPE_DEFINITION__EXACT_SCOPE = SCOPE_DEFINITION_FEATURE_COUNT + 0; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation CD Interpretation}'. + * The number of structural features of the 'Exact Scope Definition' class. * * - * @return the meta object for class 'CD Interpretation'. - * @see org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation * @generated + * @ordered */ - EClass getCDInterpretation(); + int EXACT_SCOPE_DEFINITION_FEATURE_COUNT = SCOPE_DEFINITION_FEATURE_COUNT + 1; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation Class Interpretation}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl Bounded Scope Definition}' class. * * - * @return the meta object for class 'Class Interpretation'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBoundedScopeDefinition() * @generated */ - EClass getClassInterpretation(); + int BOUNDED_SCOPE_DEFINITION = 35; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#isAbstract Abstract}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for the attribute 'Abstract'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#isAbstract() - * @see #getClassInterpretation() * @generated + * @ordered */ - EAttribute getClassInterpretation_Abstract(); + int BOUNDED_SCOPE_DEFINITION__ABSTRACT = SCOPE_DEFINITION__ABSTRACT; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSymbol Symbol}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for the containment reference 'Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSymbol() - * @see #getClassInterpretation() * @generated + * @ordered */ - EReference getClassInterpretation_Symbol(); + int BOUNDED_SCOPE_DEFINITION__NAME = SCOPE_DEFINITION__NAME; /** - * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSupertypes Supertypes}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for the containment reference list 'Supertypes'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getSupertypes() - * @see #getClassInterpretation() * @generated + * @ordered */ - EReference getClassInterpretation_Supertypes(); + int BOUNDED_SCOPE_DEFINITION__SUPERCLASSES = SCOPE_DEFINITION__SUPERCLASSES; /** - * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getFielt Fielt}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for the containment reference list 'Fielt'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation#getFielt() - * @see #getClassInterpretation() * @generated + * @ordered */ - EReference getClassInterpretation_Fielt(); + int BOUNDED_SCOPE_DEFINITION__MEMBERS = SCOPE_DEFINITION__MEMBERS; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation Enum Interpretation}'. + * The feature id for the 'Type' reference. * * - * @return the meta object for class 'Enum Interpretation'. - * @see org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation * @generated + * @ordered */ - EClass getEnumInterpretation(); + int BOUNDED_SCOPE_DEFINITION__TYPE = SCOPE_DEFINITION__TYPE; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getSymbol Symbol}'. + * The feature id for the 'Lower Bound' attribute. * * - * @return the meta object for the containment reference 'Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getSymbol() - * @see #getEnumInterpretation() * @generated + * @ordered */ - EReference getEnumInterpretation_Symbol(); + int BOUNDED_SCOPE_DEFINITION__LOWER_BOUND = SCOPE_DEFINITION_FEATURE_COUNT + 0; /** - * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getObjects Objects}'. + * The feature id for the 'Upper Bound' attribute. * * - * @return the meta object for the containment reference list 'Objects'. - * @see org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation#getObjects() - * @see #getEnumInterpretation() * @generated + * @ordered */ - EReference getEnumInterpretation_Objects(); + int BOUNDED_SCOPE_DEFINITION__UPPER_BOUND = SCOPE_DEFINITION_FEATURE_COUNT + 1; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation Field Relation Interpretation}'. + * The number of structural features of the 'Bounded Scope Definition' class. * * - * @return the meta object for class 'Field Relation Interpretation'. - * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation * @generated + * @ordered */ - EClass getFieldRelationInterpretation(); + int BOUNDED_SCOPE_DEFINITION_FEATURE_COUNT = SCOPE_DEFINITION_FEATURE_COUNT + 2; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#isContainment Containment}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl Lower Bounded Scope Definition}' class. * * - * @return the meta object for the attribute 'Containment'. - * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#isContainment() - * @see #getFieldRelationInterpretation() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLowerBoundedScopeDefinition() * @generated */ - EAttribute getFieldRelationInterpretation_Containment(); + int LOWER_BOUNDED_SCOPE_DEFINITION = 36; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getSymbol Symbol}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for the containment reference 'Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getSymbol() - * @see #getFieldRelationInterpretation() * @generated + * @ordered */ - EReference getFieldRelationInterpretation_Symbol(); + int LOWER_BOUNDED_SCOPE_DEFINITION__ABSTRACT = SCOPE_DEFINITION__ABSTRACT; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getMultiplicity Multiplicity}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for the containment reference 'Multiplicity'. - * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getMultiplicity() - * @see #getFieldRelationInterpretation() * @generated + * @ordered */ - EReference getFieldRelationInterpretation_Multiplicity(); + int LOWER_BOUNDED_SCOPE_DEFINITION__NAME = SCOPE_DEFINITION__NAME; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getTarget Target}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for the containment reference 'Target'. - * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation#getTarget() - * @see #getFieldRelationInterpretation() * @generated + * @ordered */ - EReference getFieldRelationInterpretation_Target(); + int LOWER_BOUNDED_SCOPE_DEFINITION__SUPERCLASSES = SCOPE_DEFINITION__SUPERCLASSES; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation Global Relation Interpretation}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for class 'Global Relation Interpretation'. - * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation * @generated + * @ordered */ - EClass getGlobalRelationInterpretation(); + int LOWER_BOUNDED_SCOPE_DEFINITION__MEMBERS = SCOPE_DEFINITION__MEMBERS; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#isContainment Containment}'. + * The feature id for the 'Type' reference. * * - * @return the meta object for the attribute 'Containment'. - * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#isContainment() - * @see #getGlobalRelationInterpretation() * @generated + * @ordered */ - EAttribute getGlobalRelationInterpretation_Containment(); + int LOWER_BOUNDED_SCOPE_DEFINITION__TYPE = SCOPE_DEFINITION__TYPE; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSymbol Symbol}'. + * The feature id for the 'Lower Bound' attribute. * * - * @return the meta object for the containment reference 'Symbol'. - * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSymbol() - * @see #getGlobalRelationInterpretation() * @generated + * @ordered */ - EReference getGlobalRelationInterpretation_Symbol(); + int LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND = SCOPE_DEFINITION_FEATURE_COUNT + 0; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSourceMultiplicity Source Multiplicity}'. + * The number of structural features of the 'Lower Bounded Scope Definition' class. * * - * @return the meta object for the containment reference 'Source Multiplicity'. - * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSourceMultiplicity() - * @see #getGlobalRelationInterpretation() * @generated + * @ordered */ - EReference getGlobalRelationInterpretation_SourceMultiplicity(); + int LOWER_BOUNDED_SCOPE_DEFINITION_FEATURE_COUNT = SCOPE_DEFINITION_FEATURE_COUNT + 1; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSource Source}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl Objective Definition}' class. * * - * @return the meta object for the containment reference 'Source'. - * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getSource() - * @see #getGlobalRelationInterpretation() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObjectiveDefinition() * @generated */ - EReference getGlobalRelationInterpretation_Source(); + int OBJECTIVE_DEFINITION = 37; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTargetMultiplicity Target Multiplicity}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for the containment reference 'Target Multiplicity'. - * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTargetMultiplicity() - * @see #getGlobalRelationInterpretation() * @generated + * @ordered */ - EReference getGlobalRelationInterpretation_TargetMultiplicity(); + int OBJECTIVE_DEFINITION__ABSTRACT = STATEMENT__ABSTRACT; /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTarget Target}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for the containment reference 'Target'. - * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation#getTarget() - * @see #getGlobalRelationInterpretation() * @generated + * @ordered */ - EReference getGlobalRelationInterpretation_Target(); + int OBJECTIVE_DEFINITION__NAME = STATEMENT__NAME; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition Multiplicity Definition}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for class 'Multiplicity Definition'. - * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition * @generated + * @ordered */ - EClass getMultiplicityDefinition(); + int OBJECTIVE_DEFINITION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getLower Lower}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for the attribute 'Lower'. - * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getLower() - * @see #getMultiplicityDefinition() * @generated + * @ordered */ - EAttribute getMultiplicityDefinition_Lower(); + int OBJECTIVE_DEFINITION__MEMBERS = STATEMENT__MEMBERS; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getUpper Upper}'. + * The feature id for the 'Kind' attribute. * * - * @return the meta object for the attribute 'Upper'. - * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#getUpper() - * @see #getMultiplicityDefinition() * @generated + * @ordered */ - EAttribute getMultiplicityDefinition_Upper(); + int OBJECTIVE_DEFINITION__KIND = STATEMENT_FEATURE_COUNT + 0; /** - * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#isUnlimitedUpper Unlimited Upper}'. + * The feature id for the 'Objective' containment reference. * * - * @return the meta object for the attribute 'Unlimited Upper'. - * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition#isUnlimitedUpper() - * @see #getMultiplicityDefinition() * @generated + * @ordered */ - EAttribute getMultiplicityDefinition_UnlimitedUpper(); + int OBJECTIVE_DEFINITION__OBJECTIVE = STATEMENT_FEATURE_COUNT + 1; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue Boolean True}'. + * The number of structural features of the 'Objective Definition' class. * * - * @return the meta object for class 'Boolean True'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue * @generated + * @ordered */ - EClass getBooleanTrue(); + int OBJECTIVE_DEFINITION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse Boolean False}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl Named Element}' class. * * - * @return the meta object for class 'Boolean False'. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNamedElement() * @generated */ - EClass getBooleanFalse(); + int NAMED_ELEMENT = 38; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.True True}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for class 'True'. - * @see org.eclipse.viatra.solver.language.solverLanguage.True * @generated + * @ordered */ - EClass getTrue(); + int NAMED_ELEMENT__NAME = 0; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.False False}'. + * The number of structural features of the 'Named Element' class. * * - * @return the meta object for class 'False'. - * @see org.eclipse.viatra.solver.language.solverLanguage.False * @generated + * @ordered */ - EClass getFalse(); + int NAMED_ELEMENT_FEATURE_COUNT = 1; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Unknown Unknown}'. + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl Assertion}' class. * * - * @return the meta object for class 'Unknown'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Unknown + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAssertion() * @generated */ - EClass getUnknown(); + int ASSERTION = 39; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Error Error}'. + * The feature id for the 'Abstract' attribute. * * - * @return the meta object for class 'Error'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Error * @generated + * @ordered */ - EClass getError(); + int ASSERTION__ABSTRACT = STATEMENT__ABSTRACT; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Positive Positive}'. + * The feature id for the 'Name' attribute. * * - * @return the meta object for class 'Positive'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Positive * @generated + * @ordered */ - EClass getPositive(); + int ASSERTION__NAME = STATEMENT__NAME; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Negative Negative}'. + * The feature id for the 'Superclasses' reference list. * * - * @return the meta object for class 'Negative'. - * @see org.eclipse.viatra.solver.language.solverLanguage.Negative * @generated + * @ordered */ - EClass getNegative(); + int ASSERTION__SUPERCLASSES = STATEMENT__SUPERCLASSES; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure Reflexive Closure}'. + * The feature id for the 'Members' containment reference list. * * - * @return the meta object for class 'Reflexive Closure'. - * @see org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure * @generated + * @ordered */ - EClass getReflexiveClosure(); + int ASSERTION__MEMBERS = STATEMENT__MEMBERS; /** - * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure Irreflexive Closure}'. + * The feature id for the 'Body' containment reference. * * - * @return the meta object for class 'Irreflexive Closure'. - * @see org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure * @generated + * @ordered */ - EClass getIrreflexiveClosure(); + int ASSERTION__BODY = STATEMENT_FEATURE_COUNT + 0; /** - * Returns the factory that creates the instances of the model. + * The feature id for the 'Range' containment reference. * * - * @return the factory that creates the instances of the model. * @generated + * @ordered */ - SolverLanguageFactory getSolverLanguageFactory(); + int ASSERTION__RANGE = STATEMENT_FEATURE_COUNT + 1; /** + * The number of structural features of the 'Assertion' class. * - * Defines literals for the meta objects that represent + * + * @generated + * @ordered + */ + int ASSERTION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl Disjunction}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDisjunction() + * @generated + */ + int DISJUNCTION = 40; + + /** + * The feature id for the 'Abstract' attribute. + * + * + * @generated + * @ordered + */ + int DISJUNCTION__ABSTRACT = EXPRESSION__ABSTRACT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DISJUNCTION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Superclasses' reference list. + * + * + * @generated + * @ordered + */ + int DISJUNCTION__SUPERCLASSES = EXPRESSION__SUPERCLASSES; + + /** + * The feature id for the 'Members' containment reference list. + * + * + * @generated + * @ordered + */ + int DISJUNCTION__MEMBERS = EXPRESSION__MEMBERS; + + /** + * The feature id for the 'Children' containment reference list. + * + * + * @generated + * @ordered + */ + int DISJUNCTION__CHILDREN = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Disjunction' class. + * + * + * @generated + * @ordered + */ + int DISJUNCTION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl Switch}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getSwitch() + * @generated + */ + int SWITCH = 41; + + /** + * The feature id for the 'Abstract' attribute. + * + * + * @generated + * @ordered + */ + int SWITCH__ABSTRACT = EXPRESSION__ABSTRACT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SWITCH__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Superclasses' reference list. + * + * + * @generated + * @ordered + */ + int SWITCH__SUPERCLASSES = EXPRESSION__SUPERCLASSES; + + /** + * The feature id for the 'Members' containment reference list. + * + * + * @generated + * @ordered + */ + int SWITCH__MEMBERS = EXPRESSION__MEMBERS; + + /** + * The feature id for the 'Cases' containment reference list. + * + * + * @generated + * @ordered + */ + int SWITCH__CASES = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Switch' class. + * + * + * @generated + * @ordered + */ + int SWITCH_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl Conjunction}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getConjunction() + * @generated + */ + int CONJUNCTION = 42; + + /** + * The feature id for the 'Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONJUNCTION__ABSTRACT = EXPRESSION__ABSTRACT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUNCTION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Superclasses' reference list. + * + * + * @generated + * @ordered + */ + int CONJUNCTION__SUPERCLASSES = EXPRESSION__SUPERCLASSES; + + /** + * The feature id for the 'Members' containment reference list. + * + * + * @generated + * @ordered + */ + int CONJUNCTION__MEMBERS = EXPRESSION__MEMBERS; + + /** + * The feature id for the 'Children' containment reference list. + * + * + * @generated + * @ordered + */ + int CONJUNCTION__CHILDREN = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Conjunction' class. + * + * + * @generated + * @ordered + */ + int CONJUNCTION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl Comparison}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getComparison() + * @generated + */ + int COMPARISON = 43; + + /** + * The feature id for the 'Abstract' attribute. + * + * + * @generated + * @ordered + */ + int COMPARISON__ABSTRACT = EXPRESSION__ABSTRACT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMPARISON__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Superclasses' reference list. + * + * + * @generated + * @ordered + */ + int COMPARISON__SUPERCLASSES = EXPRESSION__SUPERCLASSES; + + /** + * The feature id for the 'Members' containment reference list. + * + * + * @generated + * @ordered + */ + int COMPARISON__MEMBERS = EXPRESSION__MEMBERS; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Op' attribute. + * + * + * @generated + * @ordered + */ + int COMPARISON__OP = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int COMPARISON__RIGHT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Comparison' class. + * + * + * @generated + * @ordered + */ + int COMPARISON_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl Binary Expression}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBinaryExpression() + * @generated + */ + int BINARY_EXPRESSION = 44; + + /** + * The feature id for the 'Abstract' attribute. + * + * + * @generated + * @ordered + */ + int BINARY_EXPRESSION__ABSTRACT = EXPRESSION__ABSTRACT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BINARY_EXPRESSION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Superclasses' reference list. + * + * + * @generated + * @ordered + */ + int BINARY_EXPRESSION__SUPERCLASSES = EXPRESSION__SUPERCLASSES; + + /** + * The feature id for the 'Members' containment reference list. + * + * + * @generated + * @ordered + */ + int BINARY_EXPRESSION__MEMBERS = EXPRESSION__MEMBERS; + + /** + * The feature id for the 'Left' containment reference. + * + * + * @generated + * @ordered + */ + int BINARY_EXPRESSION__LEFT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Op' attribute. + * + * + * @generated + * @ordered + */ + int BINARY_EXPRESSION__OP = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Right' containment reference. + * + * + * @generated + * @ordered + */ + int BINARY_EXPRESSION__RIGHT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Binary Expression' class. + * + * + * @generated + * @ordered + */ + int BINARY_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 3; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl Unary Expression}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnaryExpression() + * @generated + */ + int UNARY_EXPRESSION = 45; + + /** + * The feature id for the 'Abstract' attribute. + * + * + * @generated + * @ordered + */ + int UNARY_EXPRESSION__ABSTRACT = EXPRESSION__ABSTRACT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int UNARY_EXPRESSION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Superclasses' reference list. + * + * + * @generated + * @ordered + */ + int UNARY_EXPRESSION__SUPERCLASSES = EXPRESSION__SUPERCLASSES; + + /** + * The feature id for the 'Members' containment reference list. + * + * + * @generated + * @ordered + */ + int UNARY_EXPRESSION__MEMBERS = EXPRESSION__MEMBERS; + + /** + * The feature id for the 'Op' attribute. + * + * + * @generated + * @ordered + */ + int UNARY_EXPRESSION__OP = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Body' containment reference. + * + * + * @generated + * @ordered + */ + int UNARY_EXPRESSION__BODY = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Unary Expression' class. + * + * + * @generated + * @ordered + */ + int UNARY_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricType Metric Type}' enum. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMetricType() + * @generated + */ + int METRIC_TYPE = 46; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator Binary Operator}' enum. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBinaryOperator() + * @generated + */ + int BINARY_OPERATOR = 47; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryOp Unary Op}' enum. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnaryOp() + * @generated + */ + int UNARY_OP = 48; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.AggregationOp Aggregation Op}' enum. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAggregationOp() + * @generated + */ + int AGGREGATION_OP = 49; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicValue Logic Value}' enum. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLogicValue() + * @generated + */ + int LOGIC_VALUE = 50; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind Objective Kind}' enum. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObjectiveKind() + * @generated + */ + int OBJECTIVE_KIND = 51; + + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Problem Problem}'. + * + * + * @return the meta object for class 'Problem'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Problem + * @generated + */ + EClass getProblem(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Problem#getStatements Statements}'. + * + * + * @return the meta object for the containment reference list 'Statements'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Problem#getStatements() + * @see #getProblem() + * @generated + */ + EReference getProblem_Statements(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement Statement}'. + * + * + * @return the meta object for class 'Statement'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Statement + * @generated + */ + EClass getStatement(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#isAbstract Abstract}'. + * + * + * @return the meta object for the attribute 'Abstract'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Statement#isAbstract() + * @see #getStatement() + * @generated + */ + EAttribute getStatement_Abstract(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Statement#getName() + * @see #getStatement() + * @generated + */ + EAttribute getStatement_Name(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getSuperclasses Superclasses}'. + * + * + * @return the meta object for the reference list 'Superclasses'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Statement#getSuperclasses() + * @see #getStatement() + * @generated + */ + EReference getStatement_Superclasses(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getMembers Members}'. + * + * + * @return the meta object for the containment reference list 'Members'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Statement#getMembers() + * @see #getStatement() + * @generated + */ + EReference getStatement_Members(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition Predicate Definition}'. + * + * + * @return the meta object for class 'Predicate Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition + * @generated + */ + EClass getPredicateDefinition(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getHead Head}'. + * + * + * @return the meta object for the containment reference 'Head'. + * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getHead() + * @see #getPredicateDefinition() + * @generated + */ + EReference getPredicateDefinition_Head(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#getBody() + * @see #getPredicateDefinition() + * @generated + */ + EReference getPredicateDefinition_Body(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isFunctional Functional}'. + * + * + * @return the meta object for the attribute 'Functional'. + * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isFunctional() + * @see #getPredicateDefinition() + * @generated + */ + EAttribute getPredicateDefinition_Functional(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isError Error}'. + * + * + * @return the meta object for the attribute 'Error'. + * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition#isError() + * @see #getPredicateDefinition() + * @generated + */ + EAttribute getPredicateDefinition_Error(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition Unnamed Error Prediate Definition}'. + * + * + * @return the meta object for class 'Unnamed Error Prediate Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition + * @generated + */ + EClass getUnnamedErrorPrediateDefinition(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getArgumentList Argument List}'. + * + * + * @return the meta object for the containment reference 'Argument List'. + * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getArgumentList() + * @see #getUnnamedErrorPrediateDefinition() + * @generated + */ + EReference getUnnamedErrorPrediateDefinition_ArgumentList(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getBody() + * @see #getUnnamedErrorPrediateDefinition() + * @generated + */ + EReference getUnnamedErrorPrediateDefinition_Body(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition Default Definition}'. + * + * + * @return the meta object for class 'Default Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition + * @generated + */ + EClass getDefaultDefinition(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getHead Head}'. + * + * + * @return the meta object for the containment reference 'Head'. + * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getHead() + * @see #getDefaultDefinition() + * @generated + */ + EReference getDefaultDefinition_Head(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getRange Range}'. + * + * + * @return the meta object for the containment reference 'Range'. + * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition#getRange() + * @see #getDefaultDefinition() + * @generated + */ + EReference getDefaultDefinition_Range(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition Extern Predicate Definition}'. + * + * + * @return the meta object for class 'Extern Predicate Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition + * @generated + */ + EClass getExternPredicateDefinition(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition#getHead Head}'. + * + * + * @return the meta object for the containment reference 'Head'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition#getHead() + * @see #getExternPredicateDefinition() + * @generated + */ + EReference getExternPredicateDefinition_Head(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition Metric Definition}'. + * + * + * @return the meta object for class 'Metric Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition + * @generated + */ + EClass getMetricDefinition(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getHead Head}'. + * + * + * @return the meta object for the containment reference 'Head'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getHead() + * @see #getMetricDefinition() + * @generated + */ + EReference getMetricDefinition_Head(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getBody() + * @see #getMetricDefinition() + * @generated + */ + EReference getMetricDefinition_Body(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getType Type}'. + * + * + * @return the meta object for the attribute 'Type'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition#getType() + * @see #getMetricDefinition() + * @generated + */ + EAttribute getMetricDefinition_Type(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition Extern Metric Definition}'. + * + * + * @return the meta object for class 'Extern Metric Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition + * @generated + */ + EClass getExternMetricDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getType Type}'. + * + * + * @return the meta object for the attribute 'Type'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getType() + * @see #getExternMetricDefinition() + * @generated + */ + EAttribute getExternMetricDefinition_Type(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getHead Head}'. + * + * + * @return the meta object for the containment reference 'Head'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition#getHead() + * @see #getExternMetricDefinition() + * @generated + */ + EReference getExternMetricDefinition_Head(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Expression Expression}'. + * + * + * @return the meta object for class 'Expression'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Expression + * @generated + */ + EClass getExpression(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse If Else}'. + * + * + * @return the meta object for class 'If Else'. + * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse + * @generated + */ + EClass getIfElse(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse#getCondition() + * @see #getIfElse() + * @generated + */ + EReference getIfElse_Condition(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getThen Then}'. + * + * + * @return the meta object for the containment reference 'Then'. + * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse#getThen() + * @see #getIfElse() + * @generated + */ + EReference getIfElse_Then(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse#getElse Else}'. + * + * + * @return the meta object for the containment reference 'Else'. + * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse#getElse() + * @see #getIfElse() + * @generated + */ + EReference getIfElse_Else(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Case Case}'. + * + * + * @return the meta object for class 'Case'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Case + * @generated + */ + EClass getCase(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Case#getCondition() + * @see #getCase() + * @generated + */ + EReference getCase_Condition(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Case#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Case#getBody() + * @see #getCase() + * @generated + */ + EReference getCase_Body(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Count Count}'. + * + * + * @return the meta object for class 'Count'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Count + * @generated + */ + EClass getCount(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Count#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Count#getBody() + * @see #getCount() + * @generated + */ + EReference getCount_Body(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation Aggregation}'. + * + * + * @return the meta object for class 'Aggregation'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation + * @generated + */ + EClass getAggregation(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getOp Op}'. + * + * + * @return the meta object for the attribute 'Op'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getOp() + * @see #getAggregation() + * @generated + */ + EAttribute getAggregation_Op(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getBody() + * @see #getAggregation() + * @generated + */ + EReference getAggregation_Body(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getCondition Condition}'. + * + * + * @return the meta object for the containment reference 'Condition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation#getCondition() + * @see #getAggregation() + * @generated + */ + EReference getAggregation_Condition(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Call Call}'. + * + * + * @return the meta object for class 'Call'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Call + * @generated + */ + EClass getCall(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getFunctor Functor}'. + * + * + * @return the meta object for the containment reference 'Functor'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Call#getFunctor() + * @see #getCall() + * @generated + */ + EReference getCall_Functor(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#getArgumentList Argument List}'. + * + * + * @return the meta object for the containment reference 'Argument List'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Call#getArgumentList() + * @see #getCall() + * @generated + */ + EReference getCall_ArgumentList(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isTransitiveClosure Transitive Closure}'. + * + * + * @return the meta object for the attribute 'Transitive Closure'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Call#isTransitiveClosure() + * @see #getCall() + * @generated + */ + EAttribute getCall_TransitiveClosure(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Call#isReflexiveTransitiveClosure Reflexive Transitive Closure}'. + * + * + * @return the meta object for the attribute 'Reflexive Transitive Closure'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Call#isReflexiveTransitiveClosure() + * @see #getCall() + * @generated + */ + EAttribute getCall_ReflexiveTransitiveClosure(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ArgumentList Argument List}'. + * + * + * @return the meta object for class 'Argument List'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ArgumentList + * @generated + */ + EClass getArgumentList(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.ArgumentList#getArguments Arguments}'. + * + * + * @return the meta object for the containment reference list 'Arguments'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ArgumentList#getArguments() + * @see #getArgumentList() + * @generated + */ + EReference getArgumentList_Arguments(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Argument Argument}'. + * + * + * @return the meta object for class 'Argument'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Argument + * @generated + */ + EClass getArgument(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument Expression Argument}'. + * + * + * @return the meta object for class 'Expression Argument'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument + * @generated + */ + EClass getExpressionArgument(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument#getBody() + * @see #getExpressionArgument() + * @generated + */ + EReference getExpressionArgument_Body(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.StarArgument Star Argument}'. + * + * + * @return the meta object for class 'Star Argument'. + * @see org.eclipse.viatra.solver.language.solverLanguage.StarArgument + * @generated + */ + EClass getStarArgument(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument Typed Argument}'. + * + * + * @return the meta object for class 'Typed Argument'. + * @see org.eclipse.viatra.solver.language.solverLanguage.TypedArgument + * @generated + */ + EClass getTypedArgument(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getType() + * @see #getTypedArgument() + * @generated + */ + EReference getTypedArgument_Type(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getVariable Variable}'. + * + * + * @return the meta object for the reference 'Variable'. + * @see org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getVariable() + * @see #getTypedArgument() + * @generated + */ + EReference getTypedArgument_Variable(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument Typed Star Argument}'. + * + * + * @return the meta object for class 'Typed Star Argument'. + * @see org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument + * @generated + */ + EClass getTypedStarArgument(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument#getType() + * @see #getTypedStarArgument() + * @generated + */ + EReference getTypedStarArgument_Type(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Reference Reference}'. + * + * + * @return the meta object for class 'Reference'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Reference + * @generated + */ + EClass getReference(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Reference#getReferred Referred}'. + * + * + * @return the meta object for the reference 'Referred'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Reference#getReferred() + * @see #getReference() + * @generated + */ + EReference getReference_Referred(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval Interval}'. + * + * + * @return the meta object for class 'Interval'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Interval + * @generated + */ + EClass getInterval(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getLowerBound Lower Bound}'. + * + * + * @return the meta object for the containment reference 'Lower Bound'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Interval#getLowerBound() + * @see #getInterval() + * @generated + */ + EReference getInterval_LowerBound(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval#getUpperBound Upper Bound}'. + * + * + * @return the meta object for the containment reference 'Upper Bound'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Interval#getUpperBound() + * @see #getInterval() + * @generated + */ + EReference getInterval_UpperBound(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Literal Literal}'. + * + * + * @return the meta object for class 'Literal'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Literal + * @generated + */ + EClass getLiteral(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral Logic Literal}'. + * + * + * @return the meta object for class 'Logic Literal'. + * @see org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral + * @generated + */ + EClass getLogicLiteral(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral#getValue() + * @see #getLogicLiteral() + * @generated + */ + EAttribute getLogicLiteral_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral Numeric Literal}'. + * + * + * @return the meta object for class 'Numeric Literal'. + * @see org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral + * @generated + */ + EClass getNumericLiteral(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral#getValue() + * @see #getNumericLiteral() + * @generated + */ + EAttribute getNumericLiteral_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral Infinity Literal}'. + * + * + * @return the meta object for class 'Infinity Literal'. + * @see org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral + * @generated + */ + EClass getInfinityLiteral(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral Empty Interval Literal}'. + * + * + * @return the meta object for class 'Empty Interval Literal'. + * @see org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral + * @generated + */ + EClass getEmptyIntervalLiteral(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral String Literal}'. + * + * + * @return the meta object for class 'String Literal'. + * @see org.eclipse.viatra.solver.language.solverLanguage.StringLiteral + * @generated + */ + EClass getStringLiteral(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.eclipse.viatra.solver.language.solverLanguage.StringLiteral#getValue() + * @see #getStringLiteral() + * @generated + */ + EAttribute getStringLiteral_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition Member Definition}'. + * + * + * @return the meta object for class 'Member Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition + * @generated + */ + EClass getMemberDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#isContainment Containment}'. + * + * + * @return the meta object for the attribute 'Containment'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#isContainment() + * @see #getMemberDefinition() + * @generated + */ + EAttribute getMemberDefinition_Containment(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getType() + * @see #getMemberDefinition() + * @generated + */ + EReference getMemberDefinition_Type(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getMultiplicity Multiplicity}'. + * + * + * @return the meta object for the containment reference 'Multiplicity'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getMultiplicity() + * @see #getMemberDefinition() + * @generated + */ + EReference getMemberDefinition_Multiplicity(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getName() + * @see #getMemberDefinition() + * @generated + */ + EAttribute getMemberDefinition_Name(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getOpposite Opposite}'. + * + * + * @return the meta object for the reference 'Opposite'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition#getOpposite() + * @see #getMemberDefinition() + * @generated + */ + EReference getMemberDefinition_Opposite(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Multiplicity Multiplicity}'. + * + * + * @return the meta object for class 'Multiplicity'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Multiplicity + * @generated + */ + EClass getMultiplicity(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity Many Multiplicity}'. + * + * + * @return the meta object for class 'Many Multiplicity'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity + * @generated + */ + EClass getManyMultiplicity(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity Exact Multiplicity}'. + * + * + * @return the meta object for class 'Exact Multiplicity'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity + * @generated + */ + EClass getExactMultiplicity(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity#getMultiplicity Multiplicity}'. + * + * + * @return the meta object for the attribute 'Multiplicity'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity#getMultiplicity() + * @see #getExactMultiplicity() + * @generated + */ + EAttribute getExactMultiplicity_Multiplicity(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity Bounded Multiplicity}'. + * + * + * @return the meta object for class 'Bounded Multiplicity'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity + * @generated + */ + EClass getBoundedMultiplicity(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getLowerBound Lower Bound}'. + * + * + * @return the meta object for the attribute 'Lower Bound'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getLowerBound() + * @see #getBoundedMultiplicity() + * @generated + */ + EAttribute getBoundedMultiplicity_LowerBound(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getUpperBound Upper Bound}'. + * + * + * @return the meta object for the attribute 'Upper Bound'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity#getUpperBound() + * @see #getBoundedMultiplicity() + * @generated + */ + EAttribute getBoundedMultiplicity_UpperBound(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition Scope Definition}'. + * + * + * @return the meta object for class 'Scope Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition + * @generated + */ + EClass getScopeDefinition(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition#getType() + * @see #getScopeDefinition() + * @generated + */ + EReference getScopeDefinition_Type(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition Exact Scope Definition}'. + * + * + * @return the meta object for class 'Exact Scope Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition + * @generated + */ + EClass getExactScopeDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition#getExactScope Exact Scope}'. + * + * + * @return the meta object for the attribute 'Exact Scope'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition#getExactScope() + * @see #getExactScopeDefinition() + * @generated + */ + EAttribute getExactScopeDefinition_ExactScope(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition Bounded Scope Definition}'. + * + * + * @return the meta object for class 'Bounded Scope Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition + * @generated + */ + EClass getBoundedScopeDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getLowerBound Lower Bound}'. + * + * + * @return the meta object for the attribute 'Lower Bound'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getLowerBound() + * @see #getBoundedScopeDefinition() + * @generated + */ + EAttribute getBoundedScopeDefinition_LowerBound(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getUpperBound Upper Bound}'. + * + * + * @return the meta object for the attribute 'Upper Bound'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition#getUpperBound() + * @see #getBoundedScopeDefinition() + * @generated + */ + EAttribute getBoundedScopeDefinition_UpperBound(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition Lower Bounded Scope Definition}'. + * + * + * @return the meta object for class 'Lower Bounded Scope Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition + * @generated + */ + EClass getLowerBoundedScopeDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition#getLowerBound Lower Bound}'. + * + * + * @return the meta object for the attribute 'Lower Bound'. + * @see org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition#getLowerBound() + * @see #getLowerBoundedScopeDefinition() + * @generated + */ + EAttribute getLowerBoundedScopeDefinition_LowerBound(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition Objective Definition}'. + * + * + * @return the meta object for class 'Objective Definition'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition + * @generated + */ + EClass getObjectiveDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getKind() + * @see #getObjectiveDefinition() + * @generated + */ + EAttribute getObjectiveDefinition_Kind(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getObjective Objective}'. + * + * + * @return the meta object for the containment reference 'Objective'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition#getObjective() + * @see #getObjectiveDefinition() + * @generated + */ + EReference getObjectiveDefinition_Objective(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement Named Element}'. + * + * + * @return the meta object for class 'Named Element'. + * @see org.eclipse.viatra.solver.language.solverLanguage.NamedElement + * @generated + */ + EClass getNamedElement(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see org.eclipse.viatra.solver.language.solverLanguage.NamedElement#getName() + * @see #getNamedElement() + * @generated + */ + EAttribute getNamedElement_Name(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion Assertion}'. + * + * + * @return the meta object for class 'Assertion'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Assertion + * @generated + */ + EClass getAssertion(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Assertion#getBody() + * @see #getAssertion() + * @generated + */ + EReference getAssertion_Body(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion#getRange Range}'. + * + * + * @return the meta object for the containment reference 'Range'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Assertion#getRange() + * @see #getAssertion() + * @generated + */ + EReference getAssertion_Range(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Disjunction Disjunction}'. + * + * + * @return the meta object for class 'Disjunction'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Disjunction + * @generated + */ + EClass getDisjunction(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Disjunction#getChildren Children}'. + * + * + * @return the meta object for the containment reference list 'Children'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Disjunction#getChildren() + * @see #getDisjunction() + * @generated + */ + EReference getDisjunction_Children(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Switch Switch}'. + * + * + * @return the meta object for class 'Switch'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Switch + * @generated + */ + EClass getSwitch(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Switch#getCases Cases}'. + * + * + * @return the meta object for the containment reference list 'Cases'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Switch#getCases() + * @see #getSwitch() + * @generated + */ + EReference getSwitch_Cases(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Conjunction Conjunction}'. + * + * + * @return the meta object for class 'Conjunction'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Conjunction + * @generated + */ + EClass getConjunction(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.solverLanguage.Conjunction#getChildren Children}'. + * + * + * @return the meta object for the containment reference list 'Children'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Conjunction#getChildren() + * @see #getConjunction() + * @generated + */ + EReference getConjunction_Children(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison Comparison}'. + * + * + * @return the meta object for class 'Comparison'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison + * @generated + */ + EClass getComparison(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison#getLeft() + * @see #getComparison() + * @generated + */ + EReference getComparison_Left(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getOp Op}'. + * + * + * @return the meta object for the attribute 'Op'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison#getOp() + * @see #getComparison() + * @generated + */ + EAttribute getComparison_Op(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison#getRight() + * @see #getComparison() + * @generated + */ + EReference getComparison_Right(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression Binary Expression}'. + * + * + * @return the meta object for class 'Binary Expression'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression + * @generated + */ + EClass getBinaryExpression(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getLeft Left}'. + * + * + * @return the meta object for the containment reference 'Left'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getLeft() + * @see #getBinaryExpression() + * @generated + */ + EReference getBinaryExpression_Left(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getOp Op}'. + * + * + * @return the meta object for the attribute 'Op'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getOp() + * @see #getBinaryExpression() + * @generated + */ + EAttribute getBinaryExpression_Op(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getRight Right}'. + * + * + * @return the meta object for the containment reference 'Right'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression#getRight() + * @see #getBinaryExpression() + * @generated + */ + EReference getBinaryExpression_Right(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression Unary Expression}'. + * + * + * @return the meta object for class 'Unary Expression'. + * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression + * @generated + */ + EClass getUnaryExpression(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getOp Op}'. + * + * + * @return the meta object for the attribute 'Op'. + * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getOp() + * @see #getUnaryExpression() + * @generated + */ + EAttribute getUnaryExpression_Op(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getBody Body}'. + * + * + * @return the meta object for the containment reference 'Body'. + * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getBody() + * @see #getUnaryExpression() + * @generated + */ + EReference getUnaryExpression_Body(); + + /** + * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricType Metric Type}'. + * + * + * @return the meta object for enum 'Metric Type'. + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType + * @generated + */ + EEnum getMetricType(); + + /** + * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator Binary Operator}'. + * + * + * @return the meta object for enum 'Binary Operator'. + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator + * @generated + */ + EEnum getBinaryOperator(); + + /** + * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryOp Unary Op}'. + * + * + * @return the meta object for enum 'Unary Op'. + * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp + * @generated + */ + EEnum getUnaryOp(); + + /** + * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.AggregationOp Aggregation Op}'. + * + * + * @return the meta object for enum 'Aggregation Op'. + * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp + * @generated + */ + EEnum getAggregationOp(); + + /** + * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicValue Logic Value}'. + * + * + * @return the meta object for enum 'Logic Value'. + * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue + * @generated + */ + EEnum getLogicValue(); + + /** + * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind Objective Kind}'. + * + * + * @return the meta object for enum 'Objective Kind'. + * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind + * @generated + */ + EEnum getObjectiveKind(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + SolverLanguageFactory getSolverLanguageFactory(); + + /** + * + * Defines literals for the meta objects that represent *
    *
  • each class,
  • *
  • each feature of each class,
  • @@ -2498,462 +4184,516 @@ public interface SolverLanguagePackage extends EPackage EClass STATEMENT = eINSTANCE.getStatement(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanValueImpl Boolean Value}' class. + * The meta object literal for the 'Abstract' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanValueImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanValue() * @generated */ - EClass BOOLEAN_VALUE = eINSTANCE.getBooleanValue(); + EAttribute STATEMENT__ABSTRACT = eINSTANCE.getStatement_Abstract(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TruthValueImpl Truth Value}' class. + * The meta object literal for the 'Name' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TruthValueImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTruthValue() * @generated */ - EClass TRUTH_VALUE = eINSTANCE.getTruthValue(); + EAttribute STATEMENT__NAME = eINSTANCE.getStatement_Name(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.InterpretationImpl Interpretation}' class. + * The meta object literal for the 'Superclasses' reference list feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.InterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInterpretation() * @generated */ - EClass INTERPRETATION = eINSTANCE.getInterpretation(); + EReference STATEMENT__SUPERCLASSES = eINSTANCE.getStatement_Superclasses(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl Basic Interpretation}' class. + * The meta object literal for the 'Members' containment reference list feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBasicInterpretation() * @generated */ - EClass BASIC_INTERPRETATION = eINSTANCE.getBasicInterpretation(); + EReference STATEMENT__MEMBERS = eINSTANCE.getStatement_Members(); /** - * The meta object literal for the 'Symbol' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl Predicate Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPredicateDefinition() * @generated */ - EReference BASIC_INTERPRETATION__SYMBOL = eINSTANCE.getBasicInterpretation_Symbol(); + EClass PREDICATE_DEFINITION = eINSTANCE.getPredicateDefinition(); /** - * The meta object literal for the 'Objects' containment reference list feature. + * The meta object literal for the 'Head' containment reference feature. * * * @generated */ - EReference BASIC_INTERPRETATION__OBJECTS = eINSTANCE.getBasicInterpretation_Objects(); + EReference PREDICATE_DEFINITION__HEAD = eINSTANCE.getPredicateDefinition_Head(); /** - * The meta object literal for the 'Value' containment reference feature. + * The meta object literal for the 'Body' containment reference feature. * * * @generated */ - EReference BASIC_INTERPRETATION__VALUE = eINSTANCE.getBasicInterpretation_Value(); + EReference PREDICATE_DEFINITION__BODY = eINSTANCE.getPredicateDefinition_Body(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.SymbolImpl Symbol}' class. + * The meta object literal for the 'Functional' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getSymbol() * @generated */ - EClass SYMBOL = eINSTANCE.getSymbol(); + EAttribute PREDICATE_DEFINITION__FUNCTIONAL = eINSTANCE.getPredicateDefinition_Functional(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl Model Symbol}' class. + * The meta object literal for the 'Error' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getModelSymbol() * @generated */ - EClass MODEL_SYMBOL = eINSTANCE.getModelSymbol(); + EAttribute PREDICATE_DEFINITION__ERROR = eINSTANCE.getPredicateDefinition_Error(); /** - * The meta object literal for the 'Name' attribute feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl Unnamed Error Prediate Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnnamedErrorPrediateDefinition() * @generated */ - EAttribute MODEL_SYMBOL__NAME = eINSTANCE.getModelSymbol_Name(); + EClass UNNAMED_ERROR_PREDIATE_DEFINITION = eINSTANCE.getUnnamedErrorPrediateDefinition(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PartialitySymbolImpl Partiality Symbol}' class. + * The meta object literal for the 'Argument List' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PartialitySymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPartialitySymbol() * @generated */ - EClass PARTIALITY_SYMBOL = eINSTANCE.getPartialitySymbol(); + EReference UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST = eINSTANCE.getUnnamedErrorPrediateDefinition_ArgumentList(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExistSymbolImpl Exist Symbol}' class. + * The meta object literal for the 'Body' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExistSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExistSymbol() * @generated */ - EClass EXIST_SYMBOL = eINSTANCE.getExistSymbol(); + EReference UNNAMED_ERROR_PREDIATE_DEFINITION__BODY = eINSTANCE.getUnnamedErrorPrediateDefinition_Body(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EqualsSymbolImpl Equals Symbol}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl Default Definition}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EqualsSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEqualsSymbol() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDefaultDefinition() * @generated */ - EClass EQUALS_SYMBOL = eINSTANCE.getEqualsSymbol(); + EClass DEFAULT_DEFINITION = eINSTANCE.getDefaultDefinition(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DataSymbolImpl Data Symbol}' class. + * The meta object literal for the 'Head' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DataSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDataSymbol() * @generated */ - EClass DATA_SYMBOL = eINSTANCE.getDataSymbol(); + EReference DEFAULT_DEFINITION__HEAD = eINSTANCE.getDefaultDefinition_Head(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanSymbolImpl Boolean Symbol}' class. + * The meta object literal for the 'Range' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanSymbol() * @generated */ - EClass BOOLEAN_SYMBOL = eINSTANCE.getBooleanSymbol(); + EReference DEFAULT_DEFINITION__RANGE = eINSTANCE.getDefaultDefinition_Range(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntegerSymbolImpl Integer Symbol}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl Extern Predicate Definition}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntegerSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIntegerSymbol() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExternPredicateDefinition() * @generated */ - EClass INTEGER_SYMBOL = eINSTANCE.getIntegerSymbol(); + EClass EXTERN_PREDICATE_DEFINITION = eINSTANCE.getExternPredicateDefinition(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealSymbolImpl Real Symbol}' class. + * The meta object literal for the 'Head' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.RealSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getRealSymbol() * @generated */ - EClass REAL_SYMBOL = eINSTANCE.getRealSymbol(); + EReference EXTERN_PREDICATE_DEFINITION__HEAD = eINSTANCE.getExternPredicateDefinition_Head(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringSymbolImpl String Symbol}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl Metric Definition}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringSymbolImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringSymbol() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMetricDefinition() * @generated */ - EClass STRING_SYMBOL = eINSTANCE.getStringSymbol(); + EClass METRIC_DEFINITION = eINSTANCE.getMetricDefinition(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComplexObjectImpl Complex Object}' class. + * The meta object literal for the 'Head' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ComplexObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getComplexObject() * @generated */ - EClass COMPLEX_OBJECT = eINSTANCE.getComplexObject(); + EReference METRIC_DEFINITION__HEAD = eINSTANCE.getMetricDefinition_Head(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectImpl Object}' class. + * The meta object literal for the 'Body' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObject() * @generated */ - EClass OBJECT = eINSTANCE.getObject(); + EReference METRIC_DEFINITION__BODY = eINSTANCE.getMetricDefinition_Body(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl Named Object}' class. + * The meta object literal for the 'Type' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNamedObject() * @generated */ - EClass NAMED_OBJECT = eINSTANCE.getNamedObject(); + EAttribute METRIC_DEFINITION__TYPE = eINSTANCE.getMetricDefinition_Type(); /** - * The meta object literal for the 'Name' attribute feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl Extern Metric Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExternMetricDefinition() * @generated */ - EAttribute NAMED_OBJECT__NAME = eINSTANCE.getNamedObject_Name(); + EClass EXTERN_METRIC_DEFINITION = eINSTANCE.getExternMetricDefinition(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl Unnamed Object}' class. + * The meta object literal for the 'Type' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnnamedObject() * @generated */ - EClass UNNAMED_OBJECT = eINSTANCE.getUnnamedObject(); + EAttribute EXTERN_METRIC_DEFINITION__TYPE = eINSTANCE.getExternMetricDefinition_Type(); /** - * The meta object literal for the 'Name' attribute feature. + * The meta object literal for the 'Head' containment reference feature. * * * @generated */ - EAttribute UNNAMED_OBJECT__NAME = eINSTANCE.getUnnamedObject_Name(); + EReference EXTERN_METRIC_DEFINITION__HEAD = eINSTANCE.getExternMetricDefinition_Head(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DataObjectImpl Data Object}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionImpl Expression}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DataObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDataObject() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExpression() * @generated */ - EClass DATA_OBJECT = eINSTANCE.getDataObject(); + EClass EXPRESSION = eINSTANCE.getExpression(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl Boolean Object}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl If Else}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanObject() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIfElse() * @generated */ - EClass BOOLEAN_OBJECT = eINSTANCE.getBooleanObject(); + EClass IF_ELSE = eINSTANCE.getIfElse(); /** - * The meta object literal for the 'Value' containment reference feature. + * The meta object literal for the 'Condition' containment reference feature. * * * @generated */ - EReference BOOLEAN_OBJECT__VALUE = eINSTANCE.getBooleanObject_Value(); + EReference IF_ELSE__CONDITION = eINSTANCE.getIfElse_Condition(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl Int Object}' class. + * The meta object literal for the 'Then' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIntObject() * @generated */ - EClass INT_OBJECT = eINSTANCE.getIntObject(); + EReference IF_ELSE__THEN = eINSTANCE.getIfElse_Then(); /** - * The meta object literal for the 'Value' attribute feature. + * The meta object literal for the 'Else' containment reference feature. * * * @generated */ - EAttribute INT_OBJECT__VALUE = eINSTANCE.getIntObject_Value(); + EReference IF_ELSE__ELSE = eINSTANCE.getIfElse_Else(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl Real Object}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl Case}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getRealObject() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCase() * @generated */ - EClass REAL_OBJECT = eINSTANCE.getRealObject(); + EClass CASE = eINSTANCE.getCase(); /** - * The meta object literal for the 'Value' attribute feature. + * The meta object literal for the 'Condition' containment reference feature. * * * @generated */ - EAttribute REAL_OBJECT__VALUE = eINSTANCE.getRealObject_Value(); + EReference CASE__CONDITION = eINSTANCE.getCase_Condition(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl String Object}' class. + * The meta object literal for the 'Body' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringObject() * @generated */ - EClass STRING_OBJECT = eINSTANCE.getStringObject(); + EReference CASE__BODY = eINSTANCE.getCase_Body(); /** - * The meta object literal for the 'Value' attribute feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl Count}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCount() + * @generated + */ + EClass COUNT = eINSTANCE.getCount(); + + /** + * The meta object literal for the 'Body' containment reference feature. + * + * + * @generated + */ + EReference COUNT__BODY = eINSTANCE.getCount_Body(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl Aggregation}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAggregation() + * @generated + */ + EClass AGGREGATION = eINSTANCE.getAggregation(); + + /** + * The meta object literal for the 'Op' attribute feature. + * + * + * @generated + */ + EAttribute AGGREGATION__OP = eINSTANCE.getAggregation_Op(); + + /** + * The meta object literal for the 'Body' containment reference feature. + * + * + * @generated + */ + EReference AGGREGATION__BODY = eINSTANCE.getAggregation_Body(); + + /** + * The meta object literal for the 'Condition' containment reference feature. + * + * + * @generated + */ + EReference AGGREGATION__CONDITION = eINSTANCE.getAggregation_Condition(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl Call}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCall() + * @generated + */ + EClass CALL = eINSTANCE.getCall(); + + /** + * The meta object literal for the 'Functor' containment reference feature. + * + * + * @generated + */ + EReference CALL__FUNCTOR = eINSTANCE.getCall_Functor(); + + /** + * The meta object literal for the 'Argument List' containment reference feature. + * + * + * @generated + */ + EReference CALL__ARGUMENT_LIST = eINSTANCE.getCall_ArgumentList(); + + /** + * The meta object literal for the 'Transitive Closure' attribute feature. * * * @generated */ - EAttribute STRING_OBJECT__VALUE = eINSTANCE.getStringObject_Value(); + EAttribute CALL__TRANSITIVE_CLOSURE = eINSTANCE.getCall_TransitiveClosure(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl Predicate}' class. + * The meta object literal for the 'Reflexive Transitive Closure' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPredicate() * @generated */ - EClass PREDICATE = eINSTANCE.getPredicate(); + EAttribute CALL__REFLEXIVE_TRANSITIVE_CLOSURE = eINSTANCE.getCall_ReflexiveTransitiveClosure(); /** - * The meta object literal for the 'Is Error' attribute feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl Argument List}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getArgumentList() * @generated */ - EAttribute PREDICATE__IS_ERROR = eINSTANCE.getPredicate_IsError(); + EClass ARGUMENT_LIST = eINSTANCE.getArgumentList(); /** - * The meta object literal for the 'Symbol' containment reference feature. + * The meta object literal for the 'Arguments' containment reference list feature. * * * @generated */ - EReference PREDICATE__SYMBOL = eINSTANCE.getPredicate_Symbol(); + EReference ARGUMENT_LIST__ARGUMENTS = eINSTANCE.getArgumentList_Arguments(); /** - * The meta object literal for the 'Parameters' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentImpl Argument}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getArgument() * @generated */ - EReference PREDICATE__PARAMETERS = eINSTANCE.getPredicate_Parameters(); + EClass ARGUMENT = eINSTANCE.getArgument(); /** - * The meta object literal for the 'Bodies' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl Expression Argument}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExpressionArgument() * @generated */ - EReference PREDICATE__BODIES = eINSTANCE.getPredicate_Bodies(); + EClass EXPRESSION_ARGUMENT = eINSTANCE.getExpressionArgument(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl Parameter}' class. + * The meta object literal for the 'Body' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getParameter() * @generated */ - EClass PARAMETER = eINSTANCE.getParameter(); + EReference EXPRESSION_ARGUMENT__BODY = eINSTANCE.getExpressionArgument_Body(); /** - * The meta object literal for the 'Variable' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StarArgumentImpl Star Argument}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StarArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStarArgument() * @generated */ - EReference PARAMETER__VARIABLE = eINSTANCE.getParameter_Variable(); + EClass STAR_ARGUMENT = eINSTANCE.getStarArgument(); /** - * The meta object literal for the 'Type' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl Typed Argument}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTypedArgument() * @generated */ - EReference PARAMETER__TYPE = eINSTANCE.getParameter_Type(); + EClass TYPED_ARGUMENT = eINSTANCE.getTypedArgument(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl Pattern Body}' class. + * The meta object literal for the 'Type' reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPatternBody() * @generated */ - EClass PATTERN_BODY = eINSTANCE.getPatternBody(); + EReference TYPED_ARGUMENT__TYPE = eINSTANCE.getTypedArgument_Type(); /** - * The meta object literal for the 'Constraints' containment reference list feature. + * The meta object literal for the 'Variable' reference feature. * * * @generated */ - EReference PATTERN_BODY__CONSTRAINTS = eINSTANCE.getPatternBody_Constraints(); + EReference TYPED_ARGUMENT__VARIABLE = eINSTANCE.getTypedArgument_Variable(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PolarityImpl Polarity}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl Typed Star Argument}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PolarityImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPolarity() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTypedStarArgument() * @generated */ - EClass POLARITY = eINSTANCE.getPolarity(); + EClass TYPED_STAR_ARGUMENT = eINSTANCE.getTypedStarArgument(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl Constraint}' class. + * The meta object literal for the 'Type' reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getConstraint() * @generated */ - EClass CONSTRAINT = eINSTANCE.getConstraint(); + EReference TYPED_STAR_ARGUMENT__TYPE = eINSTANCE.getTypedStarArgument_Type(); /** - * The meta object literal for the 'Polarity' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl Reference}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getReference() * @generated */ - EReference CONSTRAINT__POLARITY = eINSTANCE.getConstraint_Polarity(); + EClass REFERENCE = eINSTANCE.getReference(); /** - * The meta object literal for the 'Symbol' containment reference feature. + * The meta object literal for the 'Referred' reference feature. * * * @generated */ - EReference CONSTRAINT__SYMBOL = eINSTANCE.getConstraint_Symbol(); + EReference REFERENCE__REFERRED = eINSTANCE.getReference_Referred(); /** - * The meta object literal for the 'Params' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl Interval}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInterval() * @generated */ - EReference CONSTRAINT__PARAMS = eINSTANCE.getConstraint_Params(); + EClass INTERVAL = eINSTANCE.getInterval(); /** - * The meta object literal for the 'Closure Type' containment reference feature. + * The meta object literal for the 'Lower Bound' containment reference feature. * * * @generated */ - EReference CONSTRAINT__CLOSURE_TYPE = eINSTANCE.getConstraint_ClosureType(); + EReference INTERVAL__LOWER_BOUND = eINSTANCE.getInterval_LowerBound(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClosureTypeImpl Closure Type}' class. + * The meta object literal for the 'Upper Bound' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ClosureTypeImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getClosureType() * @generated */ - EClass CLOSURE_TYPE = eINSTANCE.getClosureType(); + EReference INTERVAL__UPPER_BOUND = eINSTANCE.getInterval_UpperBound(); /** * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LiteralImpl Literal}' class. @@ -2966,14 +4706,112 @@ public interface SolverLanguagePackage extends EPackage EClass LITERAL = eINSTANCE.getLiteral(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl Variable}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl Logic Literal}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLogicLiteral() + * @generated + */ + EClass LOGIC_LITERAL = eINSTANCE.getLogicLiteral(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute LOGIC_LITERAL__VALUE = eINSTANCE.getLogicLiteral_Value(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl Numeric Literal}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNumericLiteral() + * @generated + */ + EClass NUMERIC_LITERAL = eINSTANCE.getNumericLiteral(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute NUMERIC_LITERAL__VALUE = eINSTANCE.getNumericLiteral_Value(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.InfinityLiteralImpl Infinity Literal}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.InfinityLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getInfinityLiteral() + * @generated + */ + EClass INFINITY_LITERAL = eINSTANCE.getInfinityLiteral(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EmptyIntervalLiteralImpl Empty Interval Literal}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EmptyIntervalLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEmptyIntervalLiteral() + * @generated + */ + EClass EMPTY_INTERVAL_LITERAL = eINSTANCE.getEmptyIntervalLiteral(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl String Literal}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getStringLiteral() + * @generated + */ + EClass STRING_LITERAL = eINSTANCE.getStringLiteral(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute STRING_LITERAL__VALUE = eINSTANCE.getStringLiteral_Value(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl Member Definition}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMemberDefinition() + * @generated + */ + EClass MEMBER_DEFINITION = eINSTANCE.getMemberDefinition(); + + /** + * The meta object literal for the 'Containment' attribute feature. + * + * + * @generated + */ + EAttribute MEMBER_DEFINITION__CONTAINMENT = eINSTANCE.getMemberDefinition_Containment(); + + /** + * The meta object literal for the 'Type' reference feature. + * + * + * @generated + */ + EReference MEMBER_DEFINITION__TYPE = eINSTANCE.getMemberDefinition_Type(); + + /** + * The meta object literal for the 'Multiplicity' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getVariable() * @generated */ - EClass VARIABLE = eINSTANCE.getVariable(); + EReference MEMBER_DEFINITION__MULTIPLICITY = eINSTANCE.getMemberDefinition_Multiplicity(); /** * The meta object literal for the 'Name' attribute feature. @@ -2981,365 +4819,437 @@ public interface SolverLanguagePackage extends EPackage * * @generated */ - EAttribute VARIABLE__NAME = eINSTANCE.getVariable_Name(); + EAttribute MEMBER_DEFINITION__NAME = eINSTANCE.getMemberDefinition_Name(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl All Instances}' class. + * The meta object literal for the 'Opposite' reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAllInstances() * @generated */ - EClass ALL_INSTANCES = eINSTANCE.getAllInstances(); + EReference MEMBER_DEFINITION__OPPOSITE = eINSTANCE.getMemberDefinition_Opposite(); /** - * The meta object literal for the 'Symbol' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityImpl Multiplicity}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMultiplicity() * @generated */ - EReference ALL_INSTANCES__SYMBOL = eINSTANCE.getAllInstances_Symbol(); + EClass MULTIPLICITY = eINSTANCE.getMultiplicity(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllObjectsImpl All Objects}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ManyMultiplicityImpl Many Multiplicity}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AllObjectsImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAllObjects() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ManyMultiplicityImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getManyMultiplicity() * @generated */ - EClass ALL_OBJECTS = eINSTANCE.getAllObjects(); + EClass MANY_MULTIPLICITY = eINSTANCE.getManyMultiplicity(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl Default Interpretation}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl Exact Multiplicity}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDefaultInterpretation() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExactMultiplicity() * @generated */ - EClass DEFAULT_INTERPRETATION = eINSTANCE.getDefaultInterpretation(); + EClass EXACT_MULTIPLICITY = eINSTANCE.getExactMultiplicity(); /** - * The meta object literal for the 'Interpretation' containment reference feature. + * The meta object literal for the 'Multiplicity' attribute feature. * * * @generated */ - EReference DEFAULT_INTERPRETATION__INTERPRETATION = eINSTANCE.getDefaultInterpretation_Interpretation(); + EAttribute EXACT_MULTIPLICITY__MULTIPLICITY = eINSTANCE.getExactMultiplicity_Multiplicity(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.CDInterpretationImpl CD Interpretation}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl Bounded Multiplicity}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.CDInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getCDInterpretation() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBoundedMultiplicity() * @generated */ - EClass CD_INTERPRETATION = eINSTANCE.getCDInterpretation(); + EClass BOUNDED_MULTIPLICITY = eINSTANCE.getBoundedMultiplicity(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl Class Interpretation}' class. + * The meta object literal for the 'Lower Bound' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getClassInterpretation() * @generated */ - EClass CLASS_INTERPRETATION = eINSTANCE.getClassInterpretation(); + EAttribute BOUNDED_MULTIPLICITY__LOWER_BOUND = eINSTANCE.getBoundedMultiplicity_LowerBound(); /** - * The meta object literal for the 'Abstract' attribute feature. + * The meta object literal for the 'Upper Bound' attribute feature. * * * @generated */ - EAttribute CLASS_INTERPRETATION__ABSTRACT = eINSTANCE.getClassInterpretation_Abstract(); + EAttribute BOUNDED_MULTIPLICITY__UPPER_BOUND = eINSTANCE.getBoundedMultiplicity_UpperBound(); /** - * The meta object literal for the 'Symbol' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl Scope Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getScopeDefinition() * @generated */ - EReference CLASS_INTERPRETATION__SYMBOL = eINSTANCE.getClassInterpretation_Symbol(); + EClass SCOPE_DEFINITION = eINSTANCE.getScopeDefinition(); /** - * The meta object literal for the 'Supertypes' containment reference list feature. + * The meta object literal for the 'Type' reference feature. * * * @generated */ - EReference CLASS_INTERPRETATION__SUPERTYPES = eINSTANCE.getClassInterpretation_Supertypes(); + EReference SCOPE_DEFINITION__TYPE = eINSTANCE.getScopeDefinition_Type(); /** - * The meta object literal for the 'Fielt' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl Exact Scope Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getExactScopeDefinition() * @generated */ - EReference CLASS_INTERPRETATION__FIELT = eINSTANCE.getClassInterpretation_Fielt(); + EClass EXACT_SCOPE_DEFINITION = eINSTANCE.getExactScopeDefinition(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl Enum Interpretation}' class. + * The meta object literal for the 'Exact Scope' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getEnumInterpretation() * @generated */ - EClass ENUM_INTERPRETATION = eINSTANCE.getEnumInterpretation(); + EAttribute EXACT_SCOPE_DEFINITION__EXACT_SCOPE = eINSTANCE.getExactScopeDefinition_ExactScope(); /** - * The meta object literal for the 'Symbol' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl Bounded Scope Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBoundedScopeDefinition() * @generated */ - EReference ENUM_INTERPRETATION__SYMBOL = eINSTANCE.getEnumInterpretation_Symbol(); + EClass BOUNDED_SCOPE_DEFINITION = eINSTANCE.getBoundedScopeDefinition(); /** - * The meta object literal for the 'Objects' containment reference list feature. + * The meta object literal for the 'Lower Bound' attribute feature. * * * @generated */ - EReference ENUM_INTERPRETATION__OBJECTS = eINSTANCE.getEnumInterpretation_Objects(); + EAttribute BOUNDED_SCOPE_DEFINITION__LOWER_BOUND = eINSTANCE.getBoundedScopeDefinition_LowerBound(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl Field Relation Interpretation}' class. + * The meta object literal for the 'Upper Bound' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getFieldRelationInterpretation() * @generated */ - EClass FIELD_RELATION_INTERPRETATION = eINSTANCE.getFieldRelationInterpretation(); + EAttribute BOUNDED_SCOPE_DEFINITION__UPPER_BOUND = eINSTANCE.getBoundedScopeDefinition_UpperBound(); /** - * The meta object literal for the 'Containment' attribute feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl Lower Bounded Scope Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLowerBoundedScopeDefinition() * @generated */ - EAttribute FIELD_RELATION_INTERPRETATION__CONTAINMENT = eINSTANCE.getFieldRelationInterpretation_Containment(); + EClass LOWER_BOUNDED_SCOPE_DEFINITION = eINSTANCE.getLowerBoundedScopeDefinition(); /** - * The meta object literal for the 'Symbol' containment reference feature. + * The meta object literal for the 'Lower Bound' attribute feature. * * * @generated */ - EReference FIELD_RELATION_INTERPRETATION__SYMBOL = eINSTANCE.getFieldRelationInterpretation_Symbol(); + EAttribute LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND = eINSTANCE.getLowerBoundedScopeDefinition_LowerBound(); /** - * The meta object literal for the 'Multiplicity' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl Objective Definition}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObjectiveDefinition() * @generated */ - EReference FIELD_RELATION_INTERPRETATION__MULTIPLICITY = eINSTANCE.getFieldRelationInterpretation_Multiplicity(); + EClass OBJECTIVE_DEFINITION = eINSTANCE.getObjectiveDefinition(); /** - * The meta object literal for the 'Target' containment reference feature. + * The meta object literal for the 'Kind' attribute feature. * * * @generated */ - EReference FIELD_RELATION_INTERPRETATION__TARGET = eINSTANCE.getFieldRelationInterpretation_Target(); + EAttribute OBJECTIVE_DEFINITION__KIND = eINSTANCE.getObjectiveDefinition_Kind(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl Global Relation Interpretation}' class. + * The meta object literal for the 'Objective' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getGlobalRelationInterpretation() * @generated */ - EClass GLOBAL_RELATION_INTERPRETATION = eINSTANCE.getGlobalRelationInterpretation(); + EReference OBJECTIVE_DEFINITION__OBJECTIVE = eINSTANCE.getObjectiveDefinition_Objective(); /** - * The meta object literal for the 'Containment' attribute feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl Named Element}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNamedElement() + * @generated + */ + EClass NAMED_ELEMENT = eINSTANCE.getNamedElement(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl Assertion}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAssertion() + * @generated + */ + EClass ASSERTION = eINSTANCE.getAssertion(); + + /** + * The meta object literal for the 'Body' containment reference feature. + * + * + * @generated + */ + EReference ASSERTION__BODY = eINSTANCE.getAssertion_Body(); + + /** + * The meta object literal for the 'Range' containment reference feature. + * + * + * @generated + */ + EReference ASSERTION__RANGE = eINSTANCE.getAssertion_Range(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl Disjunction}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getDisjunction() + * @generated + */ + EClass DISJUNCTION = eINSTANCE.getDisjunction(); + + /** + * The meta object literal for the 'Children' containment reference list feature. + * + * + * @generated + */ + EReference DISJUNCTION__CHILDREN = eINSTANCE.getDisjunction_Children(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl Switch}' class. + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getSwitch() + * @generated + */ + EClass SWITCH = eINSTANCE.getSwitch(); + + /** + * The meta object literal for the 'Cases' containment reference list feature. * * * @generated */ - EAttribute GLOBAL_RELATION_INTERPRETATION__CONTAINMENT = eINSTANCE.getGlobalRelationInterpretation_Containment(); + EReference SWITCH__CASES = eINSTANCE.getSwitch_Cases(); /** - * The meta object literal for the 'Symbol' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl Conjunction}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getConjunction() * @generated */ - EReference GLOBAL_RELATION_INTERPRETATION__SYMBOL = eINSTANCE.getGlobalRelationInterpretation_Symbol(); + EClass CONJUNCTION = eINSTANCE.getConjunction(); /** - * The meta object literal for the 'Source Multiplicity' containment reference feature. + * The meta object literal for the 'Children' containment reference list feature. * * * @generated */ - EReference GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY = eINSTANCE.getGlobalRelationInterpretation_SourceMultiplicity(); + EReference CONJUNCTION__CHILDREN = eINSTANCE.getConjunction_Children(); /** - * The meta object literal for the 'Source' containment reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl Comparison}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getComparison() * @generated */ - EReference GLOBAL_RELATION_INTERPRETATION__SOURCE = eINSTANCE.getGlobalRelationInterpretation_Source(); + EClass COMPARISON = eINSTANCE.getComparison(); /** - * The meta object literal for the 'Target Multiplicity' containment reference feature. + * The meta object literal for the 'Left' containment reference feature. * * * @generated */ - EReference GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY = eINSTANCE.getGlobalRelationInterpretation_TargetMultiplicity(); + EReference COMPARISON__LEFT = eINSTANCE.getComparison_Left(); /** - * The meta object literal for the 'Target' containment reference feature. + * The meta object literal for the 'Op' attribute feature. * * * @generated */ - EReference GLOBAL_RELATION_INTERPRETATION__TARGET = eINSTANCE.getGlobalRelationInterpretation_Target(); + EAttribute COMPARISON__OP = eINSTANCE.getComparison_Op(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl Multiplicity Definition}' class. + * The meta object literal for the 'Right' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMultiplicityDefinition() * @generated */ - EClass MULTIPLICITY_DEFINITION = eINSTANCE.getMultiplicityDefinition(); + EReference COMPARISON__RIGHT = eINSTANCE.getComparison_Right(); /** - * The meta object literal for the 'Lower' attribute feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl Binary Expression}' class. * * + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBinaryExpression() * @generated */ - EAttribute MULTIPLICITY_DEFINITION__LOWER = eINSTANCE.getMultiplicityDefinition_Lower(); + EClass BINARY_EXPRESSION = eINSTANCE.getBinaryExpression(); /** - * The meta object literal for the 'Upper' attribute feature. + * The meta object literal for the 'Left' containment reference feature. * * * @generated */ - EAttribute MULTIPLICITY_DEFINITION__UPPER = eINSTANCE.getMultiplicityDefinition_Upper(); + EReference BINARY_EXPRESSION__LEFT = eINSTANCE.getBinaryExpression_Left(); /** - * The meta object literal for the 'Unlimited Upper' attribute feature. + * The meta object literal for the 'Op' attribute feature. * * * @generated */ - EAttribute MULTIPLICITY_DEFINITION__UNLIMITED_UPPER = eINSTANCE.getMultiplicityDefinition_UnlimitedUpper(); + EAttribute BINARY_EXPRESSION__OP = eINSTANCE.getBinaryExpression_Op(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanTrueImpl Boolean True}' class. + * The meta object literal for the 'Right' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanTrueImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanTrue() * @generated */ - EClass BOOLEAN_TRUE = eINSTANCE.getBooleanTrue(); + EReference BINARY_EXPRESSION__RIGHT = eINSTANCE.getBinaryExpression_Right(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanFalseImpl Boolean False}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl Unary Expression}' class. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanFalseImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBooleanFalse() + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnaryExpression() * @generated */ - EClass BOOLEAN_FALSE = eINSTANCE.getBooleanFalse(); + EClass UNARY_EXPRESSION = eINSTANCE.getUnaryExpression(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.TrueImpl True}' class. + * The meta object literal for the 'Op' attribute feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.TrueImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getTrue() * @generated */ - EClass TRUE = eINSTANCE.getTrue(); + EAttribute UNARY_EXPRESSION__OP = eINSTANCE.getUnaryExpression_Op(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.FalseImpl False}' class. + * The meta object literal for the 'Body' containment reference feature. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.FalseImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getFalse() * @generated */ - EClass FALSE = eINSTANCE.getFalse(); + EReference UNARY_EXPRESSION__BODY = eINSTANCE.getUnaryExpression_Body(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnknownImpl Unknown}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricType Metric Type}' enum. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.UnknownImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnknown() + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricType + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getMetricType() * @generated */ - EClass UNKNOWN = eINSTANCE.getUnknown(); + EEnum METRIC_TYPE = eINSTANCE.getMetricType(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ErrorImpl Error}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator Binary Operator}' enum. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ErrorImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getError() + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getBinaryOperator() * @generated */ - EClass ERROR = eINSTANCE.getError(); + EEnum BINARY_OPERATOR = eINSTANCE.getBinaryOperator(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.PositiveImpl Positive}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryOp Unary Op}' enum. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.PositiveImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getPositive() + * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getUnaryOp() * @generated */ - EClass POSITIVE = eINSTANCE.getPositive(); + EEnum UNARY_OP = eINSTANCE.getUnaryOp(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.NegativeImpl Negative}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.AggregationOp Aggregation Op}' enum. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.NegativeImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getNegative() + * @see org.eclipse.viatra.solver.language.solverLanguage.AggregationOp + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getAggregationOp() * @generated */ - EClass NEGATIVE = eINSTANCE.getNegative(); + EEnum AGGREGATION_OP = eINSTANCE.getAggregationOp(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReflexiveClosureImpl Reflexive Closure}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicValue Logic Value}' enum. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.ReflexiveClosureImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getReflexiveClosure() + * @see org.eclipse.viatra.solver.language.solverLanguage.LogicValue + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getLogicValue() * @generated */ - EClass REFLEXIVE_CLOSURE = eINSTANCE.getReflexiveClosure(); + EEnum LOGIC_VALUE = eINSTANCE.getLogicValue(); /** - * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.impl.IrreflexiveClosureImpl Irreflexive Closure}' class. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind Objective Kind}' enum. * * - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.IrreflexiveClosureImpl - * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getIrreflexiveClosure() + * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind + * @see org.eclipse.viatra.solver.language.solverLanguage.impl.SolverLanguagePackageImpl#getObjectiveKind() * @generated */ - EClass IRREFLEXIVE_CLOSURE = eINSTANCE.getIrreflexiveClosure(); + EEnum OBJECTIVE_KIND = eINSTANCE.getObjectiveKind(); } diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StarArgument.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StarArgument.java new file mode 100644 index 00000000..4e4bed1b --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StarArgument.java @@ -0,0 +1,19 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Star Argument'. + * + * + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStarArgument() + * @model + * @generated + */ +public interface StarArgument extends Argument +{ +} // 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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage; +import org.eclipse.emf.common.util.EList; + import org.eclipse.emf.ecore.EObject; /** @@ -10,6 +12,15 @@ import org.eclipse.emf.ecore.EObject; * A representation of the model object 'Statement'. * * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.Statement#isAbstract Abstract}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getName Name}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getSuperclasses Superclasses}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getMembers Members}
    • + *
    * * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement() * @model @@ -17,4 +28,72 @@ import org.eclipse.emf.ecore.EObject; */ public interface Statement extends EObject { + /** + * Returns the value of the 'Abstract' attribute. + * + * + * @return the value of the 'Abstract' attribute. + * @see #setAbstract(boolean) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement_Abstract() + * @model + * @generated + */ + boolean isAbstract(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#isAbstract Abstract}' attribute. + * + * + * @param value the new value of the 'Abstract' attribute. + * @see #isAbstract() + * @generated + */ + void setAbstract(boolean value); + + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Statement#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Superclasses' reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement}. + * + * + * @return the value of the 'Superclasses' reference list. + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement_Superclasses() + * @model + * @generated + */ + EList getSuperclasses(); + + /** + * Returns the value of the 'Members' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition}. + * + * + * @return the value of the 'Members' containment reference list. + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStatement_Members() + * @model containment="true" + * @generated + */ + EList getMembers(); + } // Statement diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringLiteral.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringLiteral.java new file mode 100644 index 00000000..dc4d6487 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringLiteral.java @@ -0,0 +1,47 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'String Literal'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral#getValue Value}
    • + *
    + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringLiteral() + * @model + * @generated + */ +public interface StringLiteral extends Literal +{ + /** + * Returns the value of the 'Value' attribute. + * + * + * @return the value of the 'Value' attribute. + * @see #setValue(String) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringLiteral_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + +} // StringLiteral 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/StringObject.java deleted file mode 100644 index d1d3ee6d..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringObject.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'String Object'. - * - * - *

    - * The following features are supported: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.StringObject#getValue Value}
    • - *
    - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringObject() - * @model - * @generated - */ -public interface StringObject extends DataObject -{ - /** - * Returns the value of the 'Value' attribute. - * - * - * @return the value of the 'Value' attribute. - * @see #setValue(String) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringObject_Value() - * @model - * @generated - */ - String getValue(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.StringObject#getValue Value}' attribute. - * - * - * @param value the new value of the 'Value' attribute. - * @see #getValue() - * @generated - */ - void setValue(String value); - -} // StringObject 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/StringSymbol.java deleted file mode 100644 index f3d6d8ee..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/StringSymbol.java +++ /dev/null @@ -1,19 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'String Symbol'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getStringSymbol() - * @model - * @generated - */ -public interface StringSymbol extends DataSymbol -{ -} // StringSymbol 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Switch'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.Switch#getCases Cases}
    • + *
    + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getSwitch() + * @model + * @generated + */ +public interface Switch extends Expression +{ + /** + * Returns the value of the 'Cases' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Case}. + * + * + * @return the value of the 'Cases' containment reference list. + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getSwitch_Cases() + * @model containment="true" + * @generated + */ + EList getCases(); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Symbol'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getSymbol() - * @model - * @generated - */ -public interface Symbol extends EObject -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'True'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTrue() - * @model - * @generated - */ -public interface True extends TruthValue -{ -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - -import org.eclipse.emf.ecore.EObject; - -/** - * - * A representation of the model object 'Truth Value'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTruthValue() - * @model - * @generated - */ -public interface TruthValue extends EObject -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Typed Argument'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getType Type}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getVariable Variable}
    • + *
    + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedArgument() + * @model + * @generated + */ +public interface TypedArgument extends Argument +{ + /** + * Returns the value of the 'Type' reference. + * + * + * @return the value of the 'Type' reference. + * @see #setType(NamedElement) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedArgument_Type() + * @model + * @generated + */ + NamedElement getType(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(NamedElement value); + + /** + * Returns the value of the 'Variable' reference. + * + * + * @return the value of the 'Variable' reference. + * @see #setVariable(NamedElement) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedArgument_Variable() + * @model + * @generated + */ + NamedElement getVariable(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument#getVariable Variable}' reference. + * + * + * @param value the new value of the 'Variable' reference. + * @see #getVariable() + * @generated + */ + void setVariable(NamedElement value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Typed Star Argument'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument#getType Type}
    • + *
    + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedStarArgument() + * @model + * @generated + */ +public interface TypedStarArgument extends Argument +{ + /** + * Returns the value of the 'Type' reference. + * + * + * @return the value of the 'Type' reference. + * @see #setType(NamedElement) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getTypedStarArgument_Type() + * @model + * @generated + */ + NamedElement getType(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(NamedElement value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Unary Expression'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getOp Op}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getBody Body}
    • + *
    + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnaryExpression() + * @model + * @generated + */ +public interface UnaryExpression extends Expression +{ + /** + * Returns the value of the 'Op' attribute. + * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.solverLanguage.UnaryOp}. + * + * + * @return the value of the 'Op' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp + * @see #setOp(UnaryOp) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnaryExpression_Op() + * @model + * @generated + */ + UnaryOp getOp(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getOp Op}' attribute. + * + * + * @param value the new value of the 'Op' attribute. + * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryOp + * @see #getOp() + * @generated + */ + void setOp(UnaryOp value); + + /** + * Returns the value of the 'Body' containment reference. + * + * + * @return the value of the 'Body' containment reference. + * @see #setBody(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnaryExpression_Body() + * @model containment="true" + * @generated + */ + Expression getBody(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + +} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Unary Op', + * and utility methods for working with them. + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnaryOp() + * @model + * @generated + */ +public enum UnaryOp implements Enumerator +{ + /** + * The 'NEG' literal object. + * + * + * @see #NEG_VALUE + * @generated + * @ordered + */ + NEG(0, "NEG", "!"), + + /** + * The 'PLUS' literal object. + * + * + * @see #PLUS_VALUE + * @generated + * @ordered + */ + PLUS(1, "PLUS", "+"), + + /** + * The 'MINUS' literal object. + * + * + * @see #MINUS_VALUE + * @generated + * @ordered + */ + MINUS(2, "MINUS", "-"), + + /** + * The 'MAY' literal object. + * + * + * @see #MAY_VALUE + * @generated + * @ordered + */ + MAY(3, "MAY", "may"), + + /** + * The 'MUST' literal object. + * + * + * @see #MUST_VALUE + * @generated + * @ordered + */ + MUST(4, "MUST", "must"), + + /** + * The 'CURRENT' literal object. + * + * + * @see #CURRENT_VALUE + * @generated + * @ordered + */ + CURRENT(5, "CURRENT", "current"); + + /** + * The 'NEG' literal value. + * + * + * @see #NEG + * @model literal="!" + * @generated + * @ordered + */ + public static final int NEG_VALUE = 0; + + /** + * The 'PLUS' literal value. + * + * + * @see #PLUS + * @model literal="+" + * @generated + * @ordered + */ + public static final int PLUS_VALUE = 1; + + /** + * The 'MINUS' literal value. + * + * + * @see #MINUS + * @model literal="-" + * @generated + * @ordered + */ + public static final int MINUS_VALUE = 2; + + /** + * The 'MAY' literal value. + * + * + * @see #MAY + * @model literal="may" + * @generated + * @ordered + */ + public static final int MAY_VALUE = 3; + + /** + * The 'MUST' literal value. + * + * + * @see #MUST + * @model literal="must" + * @generated + * @ordered + */ + public static final int MUST_VALUE = 4; + + /** + * The 'CURRENT' literal value. + * + * + * @see #CURRENT + * @model literal="current" + * @generated + * @ordered + */ + public static final int CURRENT_VALUE = 5; + + /** + * An array of all the 'Unary Op' enumerators. + * + * + * @generated + */ + private static final UnaryOp[] VALUES_ARRAY = + new UnaryOp[] + { + NEG, + PLUS, + MINUS, + MAY, + MUST, + CURRENT, + }; + + /** + * A public read-only list of all the 'Unary Op' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Unary Op' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static UnaryOp get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + UnaryOp result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Unary Op' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static UnaryOp getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + UnaryOp result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the 'Unary Op' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static UnaryOp get(int value) + { + switch (value) + { + case NEG_VALUE: return NEG; + case PLUS_VALUE: return PLUS; + case MINUS_VALUE: return MINUS; + case MAY_VALUE: return MAY; + case MUST_VALUE: return MUST; + case CURRENT_VALUE: return CURRENT; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private UnaryOp(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Unknown'. - * - * - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnknown() - * @model - * @generated - */ -public interface Unknown extends TruthValue -{ -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage; + + +/** + * + * A representation of the model object 'Unnamed Error Prediate Definition'. + * + * + *

    + * The following features are supported: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getArgumentList Argument List}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getBody Body}
    • + *
    + * + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedErrorPrediateDefinition() + * @model + * @generated + */ +public interface UnnamedErrorPrediateDefinition extends Statement +{ + /** + * Returns the value of the 'Argument List' containment reference. + * + * + * @return the value of the 'Argument List' containment reference. + * @see #setArgumentList(ArgumentList) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedErrorPrediateDefinition_ArgumentList() + * @model containment="true" + * @generated + */ + ArgumentList getArgumentList(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getArgumentList Argument List}' containment reference. + * + * + * @param value the new value of the 'Argument List' containment reference. + * @see #getArgumentList() + * @generated + */ + void setArgumentList(ArgumentList value); + + /** + * Returns the value of the 'Body' containment reference. + * + * + * @return the value of the 'Body' containment reference. + * @see #setBody(Expression) + * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedErrorPrediateDefinition_Body() + * @model containment="true" + * @generated + */ + Expression getBody(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition#getBody Body}' containment reference. + * + * + * @param value the new value of the 'Body' containment reference. + * @see #getBody() + * @generated + */ + void setBody(Expression value); + +} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Unnamed Object'. - * - * - *

    - * The following features are supported: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject#getName Name}
    • - *
    - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedObject() - * @model - * @generated - */ -public interface UnnamedObject extends org.eclipse.viatra.solver.language.solverLanguage.Object -{ - /** - * Returns the value of the 'Name' attribute. - * - * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getUnnamedObject_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - -} // 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage; - - -/** - * - * A representation of the model object 'Variable'. - * - * - *

    - * The following features are supported: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.Variable#getName Name}
    • - *
    - * - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getVariable() - * @model - * @generated - */ -public interface Variable extends Literal -{ - /** - * Returns the value of the 'Name' attribute. - * - * - * @return the value of the 'Name' attribute. - * @see #setName(String) - * @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getVariable_Name() - * @model - * @generated - */ - String getName(); - - /** - * Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.Variable#getName Name}' attribute. - * - * - * @param value the new value of the 'Name' attribute. - * @see #getName() - * @generated - */ - void setName(String value); - -} // 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Aggregation; +import org.eclipse.viatra.solver.language.solverLanguage.AggregationOp; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Aggregation'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl#getOp Op}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl#getBody Body}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.AggregationImpl#getCondition Condition}
    • + *
    + * + * @generated + */ +public class AggregationImpl extends ExpressionImpl implements Aggregation +{ + /** + * The default value of the '{@link #getOp() Op}' attribute. + * + * + * @see #getOp() + * @generated + * @ordered + */ + protected static final AggregationOp OP_EDEFAULT = AggregationOp.ONLY; + + /** + * The cached value of the '{@link #getOp() Op}' attribute. + * + * + * @see #getOp() + * @generated + * @ordered + */ + protected AggregationOp op = OP_EDEFAULT; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * + * @see #getCondition() + * @generated + * @ordered + */ + protected Expression condition; + + /** + * + * + * @generated + */ + protected AggregationImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.AGGREGATION; + } + + /** + * + * + * @generated + */ + @Override + public AggregationOp getOp() + { + return op; + } + + /** + * + * + * @generated + */ + @Override + public void setOp(AggregationOp newOp) + { + AggregationOp oldOp = op; + op = newOp == null ? OP_EDEFAULT : newOp; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__OP, oldOp, op)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) + { + Expression oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(Expression newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.AGGREGATION__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.AGGREGATION__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getCondition() + { + return condition; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs) + { + Expression oldCondition = condition; + condition = newCondition; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__CONDITION, oldCondition, newCondition); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setCondition(Expression newCondition) + { + if (newCondition != condition) + { + NotificationChain msgs = null; + if (condition != null) + msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.AGGREGATION__CONDITION, null, msgs); + if (newCondition != null) + msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.AGGREGATION__CONDITION, null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.AGGREGATION__CONDITION, newCondition, newCondition)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.AGGREGATION__BODY: + return basicSetBody(null, msgs); + case SolverLanguagePackage.AGGREGATION__CONDITION: + return basicSetCondition(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.AGGREGATION__OP: + return getOp(); + case SolverLanguagePackage.AGGREGATION__BODY: + return getBody(); + case SolverLanguagePackage.AGGREGATION__CONDITION: + return getCondition(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.AGGREGATION__OP: + setOp((AggregationOp)newValue); + return; + case SolverLanguagePackage.AGGREGATION__BODY: + setBody((Expression)newValue); + return; + case SolverLanguagePackage.AGGREGATION__CONDITION: + setCondition((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.AGGREGATION__OP: + setOp(OP_EDEFAULT); + return; + case SolverLanguagePackage.AGGREGATION__BODY: + setBody((Expression)null); + return; + case SolverLanguagePackage.AGGREGATION__CONDITION: + setCondition((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.AGGREGATION__OP: + return op != OP_EDEFAULT; + case SolverLanguagePackage.AGGREGATION__BODY: + return body != null; + case SolverLanguagePackage.AGGREGATION__CONDITION: + return condition != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (op: "); + result.append(op); + result.append(')'); + return result.toString(); + } + +} //AggregationImpl 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/AllInstancesImpl.java deleted file mode 100644 index 5da3bf30..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllInstancesImpl.java +++ /dev/null @@ -1,196 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; - -/** - * - * An implementation of the model object 'All Instances'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.AllInstancesImpl#getSymbol Symbol}
    • - *
    - * - * @generated - */ -public class AllInstancesImpl extends ComplexObjectImpl implements AllInstances -{ - /** - * The cached value of the '{@link #getSymbol() Symbol}' containment reference. - * - * - * @see #getSymbol() - * @generated - * @ordered - */ - protected Symbol symbol; - - /** - * - * - * @generated - */ - protected AllInstancesImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.ALL_INSTANCES; - } - - /** - * - * - * @generated - */ - @Override - public Symbol getSymbol() - { - return symbol; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSymbol(Symbol newSymbol, NotificationChain msgs) - { - Symbol oldSymbol = symbol; - symbol = newSymbol; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ALL_INSTANCES__SYMBOL, oldSymbol, newSymbol); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSymbol(Symbol newSymbol) - { - if (newSymbol != symbol) - { - NotificationChain msgs = null; - if (symbol != null) - msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ALL_INSTANCES__SYMBOL, null, msgs); - if (newSymbol != null) - msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ALL_INSTANCES__SYMBOL, null, msgs); - msgs = basicSetSymbol(newSymbol, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ALL_INSTANCES__SYMBOL, newSymbol, newSymbol)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: - return basicSetSymbol(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: - return getSymbol(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: - setSymbol((Symbol)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: - setSymbol((Symbol)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.ALL_INSTANCES__SYMBOL: - return symbol != null; - } - return super.eIsSet(featureID); - } - -} //AllInstancesImpl 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/AllObjectsImpl.java deleted file mode 100644 index b1e9c3d0..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AllObjectsImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'All Objects'. - * - * - * @generated - */ -public class AllObjectsImpl extends ComplexObjectImpl implements AllObjects -{ - /** - * - * - * @generated - */ - protected AllObjectsImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.ALL_OBJECTS; - } - -} //AllObjectsImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentImpl.java new file mode 100644 index 00000000..d8bf8d91 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentImpl.java @@ -0,0 +1,43 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Argument; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Argument'. + * + * + * @generated + */ +public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argument +{ + /** + * + * + * @generated + */ + protected ArgumentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.ARGUMENT; + } + +} //ArgumentImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentListImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentListImpl.java new file mode 100644 index 00000000..8c16fb4f --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ArgumentListImpl.java @@ -0,0 +1,169 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.solverLanguage.Argument; +import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Argument List'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ArgumentListImpl#getArguments Arguments}
    • + *
    + * + * @generated + */ +public class ArgumentListImpl extends MinimalEObjectImpl.Container implements ArgumentList +{ + /** + * The cached value of the '{@link #getArguments() Arguments}' containment reference list. + * + * + * @see #getArguments() + * @generated + * @ordered + */ + protected EList arguments; + + /** + * + * + * @generated + */ + protected ArgumentListImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.ARGUMENT_LIST; + } + + /** + * + * + * @generated + */ + @Override + public EList getArguments() + { + if (arguments == null) + { + arguments = new EObjectContainmentEList(Argument.class, this, SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS); + } + return arguments; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS: + return ((InternalEList)getArguments()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS: + return getArguments(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS: + getArguments().clear(); + getArguments().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS: + getArguments().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.ARGUMENT_LIST__ARGUMENTS: + return arguments != null && !arguments.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ArgumentListImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AssertionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AssertionImpl.java new file mode 100644 index 00000000..8165b62e --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/AssertionImpl.java @@ -0,0 +1,269 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Assertion; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Assertion'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl#getBody Body}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.AssertionImpl#getRange Range}
    • + *
    + * + * @generated + */ +public class AssertionImpl extends StatementImpl implements Assertion +{ + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * The cached value of the '{@link #getRange() Range}' containment reference. + * + * + * @see #getRange() + * @generated + * @ordered + */ + protected Expression range; + + /** + * + * + * @generated + */ + protected AssertionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.ASSERTION; + } + + /** + * + * + * @generated + */ + @Override + public Expression getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) + { + Expression oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ASSERTION__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(Expression newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ASSERTION__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ASSERTION__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ASSERTION__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getRange() + { + return range; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRange(Expression newRange, NotificationChain msgs) + { + Expression oldRange = range; + range = newRange; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ASSERTION__RANGE, oldRange, newRange); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setRange(Expression newRange) + { + if (newRange != range) + { + NotificationChain msgs = null; + if (range != null) + msgs = ((InternalEObject)range).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ASSERTION__RANGE, null, msgs); + if (newRange != null) + msgs = ((InternalEObject)newRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ASSERTION__RANGE, null, msgs); + msgs = basicSetRange(newRange, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ASSERTION__RANGE, newRange, newRange)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.ASSERTION__BODY: + return basicSetBody(null, msgs); + case SolverLanguagePackage.ASSERTION__RANGE: + return basicSetRange(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.ASSERTION__BODY: + return getBody(); + case SolverLanguagePackage.ASSERTION__RANGE: + return getRange(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.ASSERTION__BODY: + setBody((Expression)newValue); + return; + case SolverLanguagePackage.ASSERTION__RANGE: + setRange((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.ASSERTION__BODY: + setBody((Expression)null); + return; + case SolverLanguagePackage.ASSERTION__RANGE: + setRange((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.ASSERTION__BODY: + return body != null; + case SolverLanguagePackage.ASSERTION__RANGE: + return range != null; + } + return super.eIsSet(featureID); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; -import org.eclipse.viatra.solver.language.solverLanguage.TruthValue; - -/** - * - * An implementation of the model object 'Basic Interpretation'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl#getSymbol Symbol}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl#getObjects Objects}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BasicInterpretationImpl#getValue Value}
    • - *
    - * - * @generated - */ -public class BasicInterpretationImpl extends InterpretationImpl implements BasicInterpretation -{ - /** - * The cached value of the '{@link #getSymbol() Symbol}' containment reference. - * - * - * @see #getSymbol() - * @generated - * @ordered - */ - protected Symbol symbol; - - /** - * The cached value of the '{@link #getObjects() Objects}' containment reference list. - * - * - * @see #getObjects() - * @generated - * @ordered - */ - protected EList objects; - - /** - * The cached value of the '{@link #getValue() Value}' containment reference. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected TruthValue value; - - /** - * - * - * @generated - */ - protected BasicInterpretationImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.BASIC_INTERPRETATION; - } - - /** - * - * - * @generated - */ - @Override - public Symbol getSymbol() - { - return symbol; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSymbol(Symbol newSymbol, NotificationChain msgs) - { - Symbol oldSymbol = symbol; - symbol = newSymbol; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL, oldSymbol, newSymbol); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSymbol(Symbol newSymbol) - { - if (newSymbol != symbol) - { - NotificationChain msgs = null; - if (symbol != null) - msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL, null, msgs); - if (newSymbol != null) - msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL, null, msgs); - msgs = basicSetSymbol(newSymbol, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL, newSymbol, newSymbol)); - } - - /** - * - * - * @generated - */ - @Override - public EList getObjects() - { - if (objects == null) - { - objects = new EObjectContainmentEList(ComplexObject.class, this, SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS); - } - return objects; - } - - /** - * - * - * @generated - */ - @Override - public TruthValue getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetValue(TruthValue newValue, NotificationChain msgs) - { - TruthValue oldValue = value; - value = newValue; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BASIC_INTERPRETATION__VALUE, oldValue, newValue); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setValue(TruthValue newValue) - { - if (newValue != value) - { - NotificationChain msgs = null; - if (value != null) - msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BASIC_INTERPRETATION__VALUE, null, msgs); - if (newValue != null) - msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BASIC_INTERPRETATION__VALUE, null, msgs); - msgs = basicSetValue(newValue, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BASIC_INTERPRETATION__VALUE, newValue, newValue)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL: - return basicSetSymbol(null, msgs); - case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS: - return ((InternalEList)getObjects()).basicRemove(otherEnd, msgs); - case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE: - return basicSetValue(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL: - return getSymbol(); - case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS: - return getObjects(); - case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL: - setSymbol((Symbol)newValue); - return; - case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS: - getObjects().clear(); - getObjects().addAll((Collection)newValue); - return; - case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE: - setValue((TruthValue)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL: - setSymbol((Symbol)null); - return; - case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS: - getObjects().clear(); - return; - case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE: - setValue((TruthValue)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.BASIC_INTERPRETATION__SYMBOL: - return symbol != null; - case SolverLanguagePackage.BASIC_INTERPRETATION__OBJECTS: - return objects != null && !objects.isEmpty(); - case SolverLanguagePackage.BASIC_INTERPRETATION__VALUE: - return value != null; - } - return super.eIsSet(featureID); - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression; +import org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Binary Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl#getLeft Left}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl#getOp Op}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BinaryExpressionImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class BinaryExpressionImpl extends ExpressionImpl implements BinaryExpression +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The default value of the '{@link #getOp() Op}' attribute. + * + * + * @see #getOp() + * @generated + * @ordered + */ + protected static final BinaryOperator OP_EDEFAULT = BinaryOperator.EQ; + + /** + * The cached value of the '{@link #getOp() Op}' attribute. + * + * + * @see #getOp() + * @generated + * @ordered + */ + protected BinaryOperator op = OP_EDEFAULT; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected BinaryExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.BINARY_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BINARY_EXPRESSION__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BINARY_EXPRESSION__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + @Override + public BinaryOperator getOp() + { + return op; + } + + /** + * + * + * @generated + */ + @Override + public void setOp(BinaryOperator newOp) + { + BinaryOperator oldOp = op; + op = newOp == null ? OP_EDEFAULT : newOp; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__OP, oldOp, op)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BINARY_EXPRESSION__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BINARY_EXPRESSION__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BINARY_EXPRESSION__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.BINARY_EXPRESSION__LEFT: + return basicSetLeft(null, msgs); + case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.BINARY_EXPRESSION__LEFT: + return getLeft(); + case SolverLanguagePackage.BINARY_EXPRESSION__OP: + return getOp(); + case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.BINARY_EXPRESSION__LEFT: + setLeft((Expression)newValue); + return; + case SolverLanguagePackage.BINARY_EXPRESSION__OP: + setOp((BinaryOperator)newValue); + return; + case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.BINARY_EXPRESSION__LEFT: + setLeft((Expression)null); + return; + case SolverLanguagePackage.BINARY_EXPRESSION__OP: + setOp(OP_EDEFAULT); + return; + case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.BINARY_EXPRESSION__LEFT: + return left != null; + case SolverLanguagePackage.BINARY_EXPRESSION__OP: + return op != OP_EDEFAULT; + case SolverLanguagePackage.BINARY_EXPRESSION__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (op: "); + result.append(op); + result.append(')'); + return result.toString(); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Boolean False'. - * - * - * @generated - */ -public class BooleanFalseImpl extends BooleanValueImpl implements BooleanFalse -{ - /** - * - * - * @generated - */ - protected BooleanFalseImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.BOOLEAN_FALSE; - } - -} //BooleanFalseImpl 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/BooleanObjectImpl.java deleted file mode 100644 index cb1a3ff4..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanObjectImpl.java +++ /dev/null @@ -1,196 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Boolean Object'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BooleanObjectImpl#getValue Value}
    • - *
    - * - * @generated - */ -public class BooleanObjectImpl extends DataObjectImpl implements BooleanObject -{ - /** - * The cached value of the '{@link #getValue() Value}' containment reference. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected BooleanValue value; - - /** - * - * - * @generated - */ - protected BooleanObjectImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.BOOLEAN_OBJECT; - } - - /** - * - * - * @generated - */ - @Override - public BooleanValue getValue() - { - return value; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetValue(BooleanValue newValue, NotificationChain msgs) - { - BooleanValue oldValue = value; - value = newValue; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOOLEAN_OBJECT__VALUE, oldValue, newValue); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setValue(BooleanValue newValue) - { - if (newValue != value) - { - NotificationChain msgs = null; - if (value != null) - msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BOOLEAN_OBJECT__VALUE, null, msgs); - if (newValue != null) - msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.BOOLEAN_OBJECT__VALUE, null, msgs); - msgs = basicSetValue(newValue, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOOLEAN_OBJECT__VALUE, newValue, newValue)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: - return basicSetValue(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: - setValue((BooleanValue)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: - setValue((BooleanValue)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.BOOLEAN_OBJECT__VALUE: - return value != null; - } - return super.eIsSet(featureID); - } - -} //BooleanObjectImpl 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Boolean Symbol'. - * - * - * @generated - */ -public class BooleanSymbolImpl extends DataSymbolImpl implements BooleanSymbol -{ - /** - * - * - * @generated - */ - protected BooleanSymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.BOOLEAN_SYMBOL; - } - -} //BooleanSymbolImpl 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/BooleanTrueImpl.java deleted file mode 100644 index 4d110ee9..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/BooleanTrueImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Boolean True'. - * - * - * @generated - */ -public class BooleanTrueImpl extends BooleanValueImpl implements BooleanTrue -{ - /** - * - * - * @generated - */ - protected BooleanTrueImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.BOOLEAN_TRUE; - } - -} //BooleanTrueImpl 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Boolean Value'. - * - * - * @generated - */ -public class BooleanValueImpl extends MinimalEObjectImpl.Container implements BooleanValue -{ - /** - * - * - * @generated - */ - protected BooleanValueImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.BOOLEAN_VALUE; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Bounded Multiplicity'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl#getLowerBound Lower Bound}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedMultiplicityImpl#getUpperBound Upper Bound}
    • + *
    + * + * @generated + */ +public class BoundedMultiplicityImpl extends MultiplicityImpl implements BoundedMultiplicity +{ + /** + * The default value of the '{@link #getLowerBound() Lower Bound}' attribute. + * + * + * @see #getLowerBound() + * @generated + * @ordered + */ + protected static final int LOWER_BOUND_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getLowerBound() Lower Bound}' attribute. + * + * + * @see #getLowerBound() + * @generated + * @ordered + */ + protected int lowerBound = LOWER_BOUND_EDEFAULT; + + /** + * The default value of the '{@link #getUpperBound() Upper Bound}' attribute. + * + * + * @see #getUpperBound() + * @generated + * @ordered + */ + protected static final int UPPER_BOUND_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getUpperBound() Upper Bound}' attribute. + * + * + * @see #getUpperBound() + * @generated + * @ordered + */ + protected int upperBound = UPPER_BOUND_EDEFAULT; + + /** + * + * + * @generated + */ + protected BoundedMultiplicityImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.BOUNDED_MULTIPLICITY; + } + + /** + * + * + * @generated + */ + @Override + public int getLowerBound() + { + return lowerBound; + } + + /** + * + * + * @generated + */ + @Override + public void setLowerBound(int newLowerBound) + { + int oldLowerBound = lowerBound; + lowerBound = newLowerBound; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND, oldLowerBound, lowerBound)); + } + + /** + * + * + * @generated + */ + @Override + public int getUpperBound() + { + return upperBound; + } + + /** + * + * + * @generated + */ + @Override + public void setUpperBound(int newUpperBound) + { + int oldUpperBound = upperBound; + upperBound = newUpperBound; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND, oldUpperBound, upperBound)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND: + return getLowerBound(); + case SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND: + return getUpperBound(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND: + setLowerBound((Integer)newValue); + return; + case SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND: + setUpperBound((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND: + setLowerBound(LOWER_BOUND_EDEFAULT); + return; + case SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND: + setUpperBound(UPPER_BOUND_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.BOUNDED_MULTIPLICITY__LOWER_BOUND: + return lowerBound != LOWER_BOUND_EDEFAULT; + case SolverLanguagePackage.BOUNDED_MULTIPLICITY__UPPER_BOUND: + return upperBound != UPPER_BOUND_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (lowerBound: "); + result.append(lowerBound); + result.append(", upperBound: "); + result.append(upperBound); + result.append(')'); + return result.toString(); + } + +} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Bounded Scope Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl#getLowerBound Lower Bound}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.BoundedScopeDefinitionImpl#getUpperBound Upper Bound}
    • + *
    + * + * @generated + */ +public class BoundedScopeDefinitionImpl extends ScopeDefinitionImpl implements BoundedScopeDefinition +{ + /** + * The default value of the '{@link #getLowerBound() Lower Bound}' attribute. + * + * + * @see #getLowerBound() + * @generated + * @ordered + */ + protected static final int LOWER_BOUND_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getLowerBound() Lower Bound}' attribute. + * + * + * @see #getLowerBound() + * @generated + * @ordered + */ + protected int lowerBound = LOWER_BOUND_EDEFAULT; + + /** + * The default value of the '{@link #getUpperBound() Upper Bound}' attribute. + * + * + * @see #getUpperBound() + * @generated + * @ordered + */ + protected static final int UPPER_BOUND_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getUpperBound() Upper Bound}' attribute. + * + * + * @see #getUpperBound() + * @generated + * @ordered + */ + protected int upperBound = UPPER_BOUND_EDEFAULT; + + /** + * + * + * @generated + */ + protected BoundedScopeDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.BOUNDED_SCOPE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public int getLowerBound() + { + return lowerBound; + } + + /** + * + * + * @generated + */ + @Override + public void setLowerBound(int newLowerBound) + { + int oldLowerBound = lowerBound; + lowerBound = newLowerBound; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND, oldLowerBound, lowerBound)); + } + + /** + * + * + * @generated + */ + @Override + public int getUpperBound() + { + return upperBound; + } + + /** + * + * + * @generated + */ + @Override + public void setUpperBound(int newUpperBound) + { + int oldUpperBound = upperBound; + upperBound = newUpperBound; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND, oldUpperBound, upperBound)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND: + return getLowerBound(); + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND: + return getUpperBound(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND: + setLowerBound((Integer)newValue); + return; + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND: + setUpperBound((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND: + setLowerBound(LOWER_BOUND_EDEFAULT); + return; + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND: + setUpperBound(UPPER_BOUND_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__LOWER_BOUND: + return lowerBound != LOWER_BOUND_EDEFAULT; + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION__UPPER_BOUND: + return upperBound != UPPER_BOUND_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (lowerBound: "); + result.append(lowerBound); + result.append(", upperBound: "); + result.append(upperBound); + result.append(')'); + return result.toString(); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'CD Interpretation'. - * - * - * @generated - */ -public class CDInterpretationImpl extends InterpretationImpl implements CDInterpretation -{ - /** - * - * - * @generated - */ - protected CDInterpretationImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.CD_INTERPRETATION; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList; +import org.eclipse.viatra.solver.language.solverLanguage.Call; +import org.eclipse.viatra.solver.language.solverLanguage.Reference; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Call'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl#getFunctor Functor}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl#getArgumentList Argument List}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl#isTransitiveClosure Transitive Closure}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.CallImpl#isReflexiveTransitiveClosure Reflexive Transitive Closure}
    • + *
    + * + * @generated + */ +public class CallImpl extends ExpressionImpl implements Call +{ + /** + * The cached value of the '{@link #getFunctor() Functor}' containment reference. + * + * + * @see #getFunctor() + * @generated + * @ordered + */ + protected Reference functor; + + /** + * The cached value of the '{@link #getArgumentList() Argument List}' containment reference. + * + * + * @see #getArgumentList() + * @generated + * @ordered + */ + protected ArgumentList argumentList; + + /** + * The default value of the '{@link #isTransitiveClosure() Transitive Closure}' attribute. + * + * + * @see #isTransitiveClosure() + * @generated + * @ordered + */ + protected static final boolean TRANSITIVE_CLOSURE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isTransitiveClosure() Transitive Closure}' attribute. + * + * + * @see #isTransitiveClosure() + * @generated + * @ordered + */ + protected boolean transitiveClosure = TRANSITIVE_CLOSURE_EDEFAULT; + + /** + * The default value of the '{@link #isReflexiveTransitiveClosure() Reflexive Transitive Closure}' attribute. + * + * + * @see #isReflexiveTransitiveClosure() + * @generated + * @ordered + */ + protected static final boolean REFLEXIVE_TRANSITIVE_CLOSURE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isReflexiveTransitiveClosure() Reflexive Transitive Closure}' attribute. + * + * + * @see #isReflexiveTransitiveClosure() + * @generated + * @ordered + */ + protected boolean reflexiveTransitiveClosure = REFLEXIVE_TRANSITIVE_CLOSURE_EDEFAULT; + + /** + * + * + * @generated + */ + protected CallImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.CALL; + } + + /** + * + * + * @generated + */ + @Override + public Reference getFunctor() + { + return functor; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetFunctor(Reference newFunctor, NotificationChain msgs) + { + Reference oldFunctor = functor; + functor = newFunctor; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__FUNCTOR, oldFunctor, newFunctor); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setFunctor(Reference newFunctor) + { + if (newFunctor != functor) + { + NotificationChain msgs = null; + if (functor != null) + msgs = ((InternalEObject)functor).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CALL__FUNCTOR, null, msgs); + if (newFunctor != null) + msgs = ((InternalEObject)newFunctor).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CALL__FUNCTOR, null, msgs); + msgs = basicSetFunctor(newFunctor, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__FUNCTOR, newFunctor, newFunctor)); + } + + /** + * + * + * @generated + */ + @Override + public ArgumentList getArgumentList() + { + return argumentList; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetArgumentList(ArgumentList newArgumentList, NotificationChain msgs) + { + ArgumentList oldArgumentList = argumentList; + argumentList = newArgumentList; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__ARGUMENT_LIST, oldArgumentList, newArgumentList); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setArgumentList(ArgumentList newArgumentList) + { + if (newArgumentList != argumentList) + { + NotificationChain msgs = null; + if (argumentList != null) + msgs = ((InternalEObject)argumentList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CALL__ARGUMENT_LIST, null, msgs); + if (newArgumentList != null) + msgs = ((InternalEObject)newArgumentList).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CALL__ARGUMENT_LIST, null, msgs); + msgs = basicSetArgumentList(newArgumentList, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__ARGUMENT_LIST, newArgumentList, newArgumentList)); + } + + /** + * + * + * @generated + */ + @Override + public boolean isTransitiveClosure() + { + return transitiveClosure; + } + + /** + * + * + * @generated + */ + @Override + public void setTransitiveClosure(boolean newTransitiveClosure) + { + boolean oldTransitiveClosure = transitiveClosure; + transitiveClosure = newTransitiveClosure; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE, oldTransitiveClosure, transitiveClosure)); + } + + /** + * + * + * @generated + */ + @Override + public boolean isReflexiveTransitiveClosure() + { + return reflexiveTransitiveClosure; + } + + /** + * + * + * @generated + */ + @Override + public void setReflexiveTransitiveClosure(boolean newReflexiveTransitiveClosure) + { + boolean oldReflexiveTransitiveClosure = reflexiveTransitiveClosure; + reflexiveTransitiveClosure = newReflexiveTransitiveClosure; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE, oldReflexiveTransitiveClosure, reflexiveTransitiveClosure)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.CALL__FUNCTOR: + return basicSetFunctor(null, msgs); + case SolverLanguagePackage.CALL__ARGUMENT_LIST: + return basicSetArgumentList(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.CALL__FUNCTOR: + return getFunctor(); + case SolverLanguagePackage.CALL__ARGUMENT_LIST: + return getArgumentList(); + case SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE: + return isTransitiveClosure(); + case SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE: + return isReflexiveTransitiveClosure(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.CALL__FUNCTOR: + setFunctor((Reference)newValue); + return; + case SolverLanguagePackage.CALL__ARGUMENT_LIST: + setArgumentList((ArgumentList)newValue); + return; + case SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE: + setTransitiveClosure((Boolean)newValue); + return; + case SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE: + setReflexiveTransitiveClosure((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.CALL__FUNCTOR: + setFunctor((Reference)null); + return; + case SolverLanguagePackage.CALL__ARGUMENT_LIST: + setArgumentList((ArgumentList)null); + return; + case SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE: + setTransitiveClosure(TRANSITIVE_CLOSURE_EDEFAULT); + return; + case SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE: + setReflexiveTransitiveClosure(REFLEXIVE_TRANSITIVE_CLOSURE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.CALL__FUNCTOR: + return functor != null; + case SolverLanguagePackage.CALL__ARGUMENT_LIST: + return argumentList != null; + case SolverLanguagePackage.CALL__TRANSITIVE_CLOSURE: + return transitiveClosure != TRANSITIVE_CLOSURE_EDEFAULT; + case SolverLanguagePackage.CALL__REFLEXIVE_TRANSITIVE_CLOSURE: + return reflexiveTransitiveClosure != REFLEXIVE_TRANSITIVE_CLOSURE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (transitiveClosure: "); + result.append(transitiveClosure); + result.append(", reflexiveTransitiveClosure: "); + result.append(reflexiveTransitiveClosure); + result.append(')'); + return result.toString(); + } + +} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Case; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Case'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl#getCondition Condition}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.CaseImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class CaseImpl extends ExpressionImpl implements Case +{ + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * + * @see #getCondition() + * @generated + * @ordered + */ + protected Expression condition; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * + * + * @generated + */ + protected CaseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.CASE; + } + + /** + * + * + * @generated + */ + @Override + public Expression getCondition() + { + return condition; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs) + { + Expression oldCondition = condition; + condition = newCondition; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CASE__CONDITION, oldCondition, newCondition); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setCondition(Expression newCondition) + { + if (newCondition != condition) + { + NotificationChain msgs = null; + if (condition != null) + msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CASE__CONDITION, null, msgs); + if (newCondition != null) + msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CASE__CONDITION, null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CASE__CONDITION, newCondition, newCondition)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) + { + Expression oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CASE__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(Expression newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CASE__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CASE__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CASE__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.CASE__CONDITION: + return basicSetCondition(null, msgs); + case SolverLanguagePackage.CASE__BODY: + return basicSetBody(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.CASE__CONDITION: + return getCondition(); + case SolverLanguagePackage.CASE__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.CASE__CONDITION: + setCondition((Expression)newValue); + return; + case SolverLanguagePackage.CASE__BODY: + setBody((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.CASE__CONDITION: + setCondition((Expression)null); + return; + case SolverLanguagePackage.CASE__BODY: + setBody((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.CASE__CONDITION: + return condition != null; + case SolverLanguagePackage.CASE__BODY: + return body != null; + } + return super.eIsSet(featureID); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Class Interpretation'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl#isAbstract Abstract}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl#getSymbol Symbol}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl#getSupertypes Supertypes}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ClassInterpretationImpl#getFielt Fielt}
    • - *
    - * - * @generated - */ -public class ClassInterpretationImpl extends CDInterpretationImpl implements ClassInterpretation -{ - /** - * The default value of the '{@link #isAbstract() Abstract}' attribute. - * - * - * @see #isAbstract() - * @generated - * @ordered - */ - protected static final boolean ABSTRACT_EDEFAULT = false; - - /** - * The cached value of the '{@link #isAbstract() Abstract}' attribute. - * - * - * @see #isAbstract() - * @generated - * @ordered - */ - protected boolean abstract_ = ABSTRACT_EDEFAULT; - - /** - * The cached value of the '{@link #getSymbol() Symbol}' containment reference. - * - * - * @see #getSymbol() - * @generated - * @ordered - */ - protected ModelSymbol symbol; - - /** - * The cached value of the '{@link #getSupertypes() Supertypes}' containment reference list. - * - * - * @see #getSupertypes() - * @generated - * @ordered - */ - protected EList supertypes; - - /** - * The cached value of the '{@link #getFielt() Fielt}' containment reference list. - * - * - * @see #getFielt() - * @generated - * @ordered - */ - protected EList fielt; - - /** - * - * - * @generated - */ - protected ClassInterpretationImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.CLASS_INTERPRETATION; - } - - /** - * - * - * @generated - */ - @Override - public boolean isAbstract() - { - return abstract_; - } - - /** - * - * - * @generated - */ - @Override - public void setAbstract(boolean newAbstract) - { - boolean oldAbstract = abstract_; - abstract_ = newAbstract; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT, oldAbstract, abstract_)); - } - - /** - * - * - * @generated - */ - @Override - public ModelSymbol getSymbol() - { - return symbol; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs) - { - ModelSymbol oldSymbol = symbol; - symbol = newSymbol; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL, oldSymbol, newSymbol); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSymbol(ModelSymbol newSymbol) - { - if (newSymbol != symbol) - { - NotificationChain msgs = null; - if (symbol != null) - msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL, null, msgs); - if (newSymbol != null) - msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL, null, msgs); - msgs = basicSetSymbol(newSymbol, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL, newSymbol, newSymbol)); - } - - /** - * - * - * @generated - */ - @Override - public EList getSupertypes() - { - if (supertypes == null) - { - supertypes = new EObjectContainmentEList(ModelSymbol.class, this, SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES); - } - return supertypes; - } - - /** - * - * - * @generated - */ - @Override - public EList getFielt() - { - if (fielt == null) - { - fielt = new EObjectContainmentEList(FieldRelationInterpretation.class, this, SolverLanguagePackage.CLASS_INTERPRETATION__FIELT); - } - return fielt; - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL: - return basicSetSymbol(null, msgs); - case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES: - return ((InternalEList)getSupertypes()).basicRemove(otherEnd, msgs); - case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT: - return ((InternalEList)getFielt()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT: - return isAbstract(); - case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL: - return getSymbol(); - case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES: - return getSupertypes(); - case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT: - return getFielt(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT: - setAbstract((Boolean)newValue); - return; - case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL: - setSymbol((ModelSymbol)newValue); - return; - case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES: - getSupertypes().clear(); - getSupertypes().addAll((Collection)newValue); - return; - case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT: - getFielt().clear(); - getFielt().addAll((Collection)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT: - setAbstract(ABSTRACT_EDEFAULT); - return; - case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL: - setSymbol((ModelSymbol)null); - return; - case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES: - getSupertypes().clear(); - return; - case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT: - getFielt().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.CLASS_INTERPRETATION__ABSTRACT: - return abstract_ != ABSTRACT_EDEFAULT; - case SolverLanguagePackage.CLASS_INTERPRETATION__SYMBOL: - return symbol != null; - case SolverLanguagePackage.CLASS_INTERPRETATION__SUPERTYPES: - return supertypes != null && !supertypes.isEmpty(); - case SolverLanguagePackage.CLASS_INTERPRETATION__FIELT: - return fielt != null && !fielt.isEmpty(); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (abstract: "); - result.append(abstract_); - result.append(')'); - return result.toString(); - } - -} //ClassInterpretationImpl 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/ClosureTypeImpl.java deleted file mode 100644 index 98136f79..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ClosureTypeImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.ClosureType; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Closure Type'. - * - * - * @generated - */ -public class ClosureTypeImpl extends MinimalEObjectImpl.Container implements ClosureType -{ - /** - * - * - * @generated - */ - protected ClosureTypeImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.CLOSURE_TYPE; - } - -} //ClosureTypeImpl 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator; +import org.eclipse.viatra.solver.language.solverLanguage.Comparison; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Comparison'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl#getLeft Left}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl#getOp Op}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ComparisonImpl#getRight Right}
    • + *
    + * + * @generated + */ +public class ComparisonImpl extends ExpressionImpl implements Comparison +{ + /** + * The cached value of the '{@link #getLeft() Left}' containment reference. + * + * + * @see #getLeft() + * @generated + * @ordered + */ + protected Expression left; + + /** + * The default value of the '{@link #getOp() Op}' attribute. + * + * + * @see #getOp() + * @generated + * @ordered + */ + protected static final BinaryOperator OP_EDEFAULT = BinaryOperator.EQ; + + /** + * The cached value of the '{@link #getOp() Op}' attribute. + * + * + * @see #getOp() + * @generated + * @ordered + */ + protected BinaryOperator op = OP_EDEFAULT; + + /** + * The cached value of the '{@link #getRight() Right}' containment reference. + * + * + * @see #getRight() + * @generated + * @ordered + */ + protected Expression right; + + /** + * + * + * @generated + */ + protected ComparisonImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.COMPARISON; + } + + /** + * + * + * @generated + */ + @Override + public Expression getLeft() + { + return left; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLeft(Expression newLeft, NotificationChain msgs) + { + Expression oldLeft = left; + left = newLeft; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__LEFT, oldLeft, newLeft); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setLeft(Expression newLeft) + { + if (newLeft != left) + { + NotificationChain msgs = null; + if (left != null) + msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COMPARISON__LEFT, null, msgs); + if (newLeft != null) + msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COMPARISON__LEFT, null, msgs); + msgs = basicSetLeft(newLeft, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__LEFT, newLeft, newLeft)); + } + + /** + * + * + * @generated + */ + @Override + public BinaryOperator getOp() + { + return op; + } + + /** + * + * + * @generated + */ + @Override + public void setOp(BinaryOperator newOp) + { + BinaryOperator oldOp = op; + op = newOp == null ? OP_EDEFAULT : newOp; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__OP, oldOp, op)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getRight() + { + return right; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRight(Expression newRight, NotificationChain msgs) + { + Expression oldRight = right; + right = newRight; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__RIGHT, oldRight, newRight); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setRight(Expression newRight) + { + if (newRight != right) + { + NotificationChain msgs = null; + if (right != null) + msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COMPARISON__RIGHT, null, msgs); + if (newRight != null) + msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COMPARISON__RIGHT, null, msgs); + msgs = basicSetRight(newRight, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COMPARISON__RIGHT, newRight, newRight)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.COMPARISON__LEFT: + return basicSetLeft(null, msgs); + case SolverLanguagePackage.COMPARISON__RIGHT: + return basicSetRight(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.COMPARISON__LEFT: + return getLeft(); + case SolverLanguagePackage.COMPARISON__OP: + return getOp(); + case SolverLanguagePackage.COMPARISON__RIGHT: + return getRight(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.COMPARISON__LEFT: + setLeft((Expression)newValue); + return; + case SolverLanguagePackage.COMPARISON__OP: + setOp((BinaryOperator)newValue); + return; + case SolverLanguagePackage.COMPARISON__RIGHT: + setRight((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.COMPARISON__LEFT: + setLeft((Expression)null); + return; + case SolverLanguagePackage.COMPARISON__OP: + setOp(OP_EDEFAULT); + return; + case SolverLanguagePackage.COMPARISON__RIGHT: + setRight((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.COMPARISON__LEFT: + return left != null; + case SolverLanguagePackage.COMPARISON__OP: + return op != OP_EDEFAULT; + case SolverLanguagePackage.COMPARISON__RIGHT: + return right != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (op: "); + result.append(op); + result.append(')'); + return result.toString(); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Complex Object'. - * - * - * @generated - */ -public class ComplexObjectImpl extends MinimalEObjectImpl.Container implements ComplexObject -{ - /** - * - * - * @generated - */ - protected ComplexObjectImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.COMPLEX_OBJECT; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.solverLanguage.Conjunction; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Conjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConjunctionImpl#getChildren Children}
    • + *
    + * + * @generated + */ +public class ConjunctionImpl extends ExpressionImpl implements Conjunction +{ + /** + * The cached value of the '{@link #getChildren() Children}' containment reference list. + * + * + * @see #getChildren() + * @generated + * @ordered + */ + protected EList children; + + /** + * + * + * @generated + */ + protected ConjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.CONJUNCTION; + } + + /** + * + * + * @generated + */ + @Override + public EList getChildren() + { + if (children == null) + { + children = new EObjectContainmentEList(Expression.class, this, SolverLanguagePackage.CONJUNCTION__CHILDREN); + } + return children; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.CONJUNCTION__CHILDREN: + return ((InternalEList)getChildren()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.CONJUNCTION__CHILDREN: + return getChildren(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.CONJUNCTION__CHILDREN: + getChildren().clear(); + getChildren().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.CONJUNCTION__CHILDREN: + getChildren().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.CONJUNCTION__CHILDREN: + return children != null && !children.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import org.eclipse.viatra.solver.language.solverLanguage.ClosureType; -import org.eclipse.viatra.solver.language.solverLanguage.Constraint; -import org.eclipse.viatra.solver.language.solverLanguage.Literal; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Polarity; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Constraint'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl#getPolarity Polarity}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl#getSymbol Symbol}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl#getParams Params}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ConstraintImpl#getClosureType Closure Type}
    • - *
    - * - * @generated - */ -public class ConstraintImpl extends MinimalEObjectImpl.Container implements Constraint -{ - /** - * The cached value of the '{@link #getPolarity() Polarity}' containment reference. - * - * - * @see #getPolarity() - * @generated - * @ordered - */ - protected Polarity polarity; - - /** - * The cached value of the '{@link #getSymbol() Symbol}' containment reference. - * - * - * @see #getSymbol() - * @generated - * @ordered - */ - protected ModelSymbol symbol; - - /** - * The cached value of the '{@link #getParams() Params}' containment reference list. - * - * - * @see #getParams() - * @generated - * @ordered - */ - protected EList params; - - /** - * The cached value of the '{@link #getClosureType() Closure Type}' containment reference. - * - * - * @see #getClosureType() - * @generated - * @ordered - */ - protected ClosureType closureType; - - /** - * - * - * @generated - */ - protected ConstraintImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.CONSTRAINT; - } - - /** - * - * - * @generated - */ - @Override - public Polarity getPolarity() - { - return polarity; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetPolarity(Polarity newPolarity, NotificationChain msgs) - { - Polarity oldPolarity = polarity; - polarity = newPolarity; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__POLARITY, oldPolarity, newPolarity); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setPolarity(Polarity newPolarity) - { - if (newPolarity != polarity) - { - NotificationChain msgs = null; - if (polarity != null) - msgs = ((InternalEObject)polarity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__POLARITY, null, msgs); - if (newPolarity != null) - msgs = ((InternalEObject)newPolarity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__POLARITY, null, msgs); - msgs = basicSetPolarity(newPolarity, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__POLARITY, newPolarity, newPolarity)); - } - - /** - * - * - * @generated - */ - @Override - public ModelSymbol getSymbol() - { - return symbol; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs) - { - ModelSymbol oldSymbol = symbol; - symbol = newSymbol; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__SYMBOL, oldSymbol, newSymbol); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSymbol(ModelSymbol newSymbol) - { - if (newSymbol != symbol) - { - NotificationChain msgs = null; - if (symbol != null) - msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__SYMBOL, null, msgs); - if (newSymbol != null) - msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__SYMBOL, null, msgs); - msgs = basicSetSymbol(newSymbol, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__SYMBOL, newSymbol, newSymbol)); - } - - /** - * - * - * @generated - */ - @Override - public EList getParams() - { - if (params == null) - { - params = new EObjectContainmentEList(Literal.class, this, SolverLanguagePackage.CONSTRAINT__PARAMS); - } - return params; - } - - /** - * - * - * @generated - */ - @Override - public ClosureType getClosureType() - { - return closureType; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetClosureType(ClosureType newClosureType, NotificationChain msgs) - { - ClosureType oldClosureType = closureType; - closureType = newClosureType; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE, oldClosureType, newClosureType); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setClosureType(ClosureType newClosureType) - { - if (newClosureType != closureType) - { - NotificationChain msgs = null; - if (closureType != null) - msgs = ((InternalEObject)closureType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE, null, msgs); - if (newClosureType != null) - msgs = ((InternalEObject)newClosureType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE, null, msgs); - msgs = basicSetClosureType(newClosureType, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE, newClosureType, newClosureType)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.CONSTRAINT__POLARITY: - return basicSetPolarity(null, msgs); - case SolverLanguagePackage.CONSTRAINT__SYMBOL: - return basicSetSymbol(null, msgs); - case SolverLanguagePackage.CONSTRAINT__PARAMS: - return ((InternalEList)getParams()).basicRemove(otherEnd, msgs); - case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE: - return basicSetClosureType(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.CONSTRAINT__POLARITY: - return getPolarity(); - case SolverLanguagePackage.CONSTRAINT__SYMBOL: - return getSymbol(); - case SolverLanguagePackage.CONSTRAINT__PARAMS: - return getParams(); - case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE: - return getClosureType(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.CONSTRAINT__POLARITY: - setPolarity((Polarity)newValue); - return; - case SolverLanguagePackage.CONSTRAINT__SYMBOL: - setSymbol((ModelSymbol)newValue); - return; - case SolverLanguagePackage.CONSTRAINT__PARAMS: - getParams().clear(); - getParams().addAll((Collection)newValue); - return; - case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE: - setClosureType((ClosureType)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.CONSTRAINT__POLARITY: - setPolarity((Polarity)null); - return; - case SolverLanguagePackage.CONSTRAINT__SYMBOL: - setSymbol((ModelSymbol)null); - return; - case SolverLanguagePackage.CONSTRAINT__PARAMS: - getParams().clear(); - return; - case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE: - setClosureType((ClosureType)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.CONSTRAINT__POLARITY: - return polarity != null; - case SolverLanguagePackage.CONSTRAINT__SYMBOL: - return symbol != null; - case SolverLanguagePackage.CONSTRAINT__PARAMS: - return params != null && !params.isEmpty(); - case SolverLanguagePackage.CONSTRAINT__CLOSURE_TYPE: - return closureType != null; - } - return super.eIsSet(featureID); - } - -} //ConstraintImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CountImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CountImpl.java new file mode 100644 index 00000000..1609245f --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/CountImpl.java @@ -0,0 +1,196 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Count; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Count'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.CountImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class CountImpl extends ExpressionImpl implements Count +{ + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * + * + * @generated + */ + protected CountImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.COUNT; + } + + /** + * + * + * @generated + */ + @Override + public Expression getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) + { + Expression oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COUNT__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(Expression newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COUNT__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.COUNT__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.COUNT__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.COUNT__BODY: + return basicSetBody(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.COUNT__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.COUNT__BODY: + setBody((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.COUNT__BODY: + setBody((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.COUNT__BODY: + return body != null; + } + return super.eIsSet(featureID); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.DataObject; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Data Object'. - * - * - * @generated - */ -public class DataObjectImpl extends ObjectImpl implements DataObject -{ - /** - * - * - * @generated - */ - protected DataObjectImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.DATA_OBJECT; - } - -} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Data Symbol'. - * - * - * @generated - */ -public class DataSymbolImpl extends SymbolImpl implements DataSymbol -{ - /** - * - * - * @generated - */ - protected DataSymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.DATA_SYMBOL; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Call; +import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Default Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl#getHead Head}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultDefinitionImpl#getRange Range}
    • + *
    + * + * @generated + */ +public class DefaultDefinitionImpl extends StatementImpl implements DefaultDefinition +{ + /** + * The cached value of the '{@link #getHead() Head}' containment reference. + * + * + * @see #getHead() + * @generated + * @ordered + */ + protected Call head; + + /** + * The cached value of the '{@link #getRange() Range}' containment reference. + * + * + * @see #getRange() + * @generated + * @ordered + */ + protected Expression range; + + /** + * + * + * @generated + */ + protected DefaultDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.DEFAULT_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public Call getHead() + { + return head; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetHead(Call newHead, NotificationChain msgs) + { + Call oldHead = head; + head = newHead; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_DEFINITION__HEAD, oldHead, newHead); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setHead(Call newHead) + { + if (newHead != head) + { + NotificationChain msgs = null; + if (head != null) + msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_DEFINITION__HEAD, null, msgs); + if (newHead != null) + msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_DEFINITION__HEAD, null, msgs); + msgs = basicSetHead(newHead, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_DEFINITION__HEAD, newHead, newHead)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getRange() + { + return range; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetRange(Expression newRange, NotificationChain msgs) + { + Expression oldRange = range; + range = newRange; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_DEFINITION__RANGE, oldRange, newRange); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setRange(Expression newRange) + { + if (newRange != range) + { + NotificationChain msgs = null; + if (range != null) + msgs = ((InternalEObject)range).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_DEFINITION__RANGE, null, msgs); + if (newRange != null) + msgs = ((InternalEObject)newRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_DEFINITION__RANGE, null, msgs); + msgs = basicSetRange(newRange, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_DEFINITION__RANGE, newRange, newRange)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD: + return basicSetHead(null, msgs); + case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE: + return basicSetRange(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD: + return getHead(); + case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE: + return getRange(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD: + setHead((Call)newValue); + return; + case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE: + setRange((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD: + setHead((Call)null); + return; + case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE: + setRange((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.DEFAULT_DEFINITION__HEAD: + return head != null; + case SolverLanguagePackage.DEFAULT_DEFINITION__RANGE: + return range != null; + } + return super.eIsSet(featureID); + } + +} //DefaultDefinitionImpl 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/DefaultInterpretationImpl.java deleted file mode 100644 index eb2835a0..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/DefaultInterpretationImpl.java +++ /dev/null @@ -1,196 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Default Interpretation'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.DefaultInterpretationImpl#getInterpretation Interpretation}
    • - *
    - * - * @generated - */ -public class DefaultInterpretationImpl extends InterpretationImpl implements DefaultInterpretation -{ - /** - * The cached value of the '{@link #getInterpretation() Interpretation}' containment reference. - * - * - * @see #getInterpretation() - * @generated - * @ordered - */ - protected BasicInterpretation interpretation; - - /** - * - * - * @generated - */ - protected DefaultInterpretationImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.DEFAULT_INTERPRETATION; - } - - /** - * - * - * @generated - */ - @Override - public BasicInterpretation getInterpretation() - { - return interpretation; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetInterpretation(BasicInterpretation newInterpretation, NotificationChain msgs) - { - BasicInterpretation oldInterpretation = interpretation; - interpretation = newInterpretation; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION, oldInterpretation, newInterpretation); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setInterpretation(BasicInterpretation newInterpretation) - { - if (newInterpretation != interpretation) - { - NotificationChain msgs = null; - if (interpretation != null) - msgs = ((InternalEObject)interpretation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION, null, msgs); - if (newInterpretation != null) - msgs = ((InternalEObject)newInterpretation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION, null, msgs); - msgs = basicSetInterpretation(newInterpretation, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION, newInterpretation, newInterpretation)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: - return basicSetInterpretation(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: - return getInterpretation(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: - setInterpretation((BasicInterpretation)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: - setInterpretation((BasicInterpretation)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.DEFAULT_INTERPRETATION__INTERPRETATION: - return interpretation != null; - } - return super.eIsSet(featureID); - } - -} //DefaultInterpretationImpl 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.solverLanguage.Disjunction; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Disjunction'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.DisjunctionImpl#getChildren Children}
    • + *
    + * + * @generated + */ +public class DisjunctionImpl extends ExpressionImpl implements Disjunction +{ + /** + * The cached value of the '{@link #getChildren() Children}' containment reference list. + * + * + * @see #getChildren() + * @generated + * @ordered + */ + protected EList children; + + /** + * + * + * @generated + */ + protected DisjunctionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.DISJUNCTION; + } + + /** + * + * + * @generated + */ + @Override + public EList getChildren() + { + if (children == null) + { + children = new EObjectContainmentEList(Expression.class, this, SolverLanguagePackage.DISJUNCTION__CHILDREN); + } + return children; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.DISJUNCTION__CHILDREN: + return ((InternalEList)getChildren()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.DISJUNCTION__CHILDREN: + return getChildren(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.DISJUNCTION__CHILDREN: + getChildren().clear(); + getChildren().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.DISJUNCTION__CHILDREN: + getChildren().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.DISJUNCTION__CHILDREN: + return children != null && !children.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //DisjunctionImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EmptyIntervalLiteralImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EmptyIntervalLiteralImpl.java new file mode 100644 index 00000000..1ebf38ad --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/EmptyIntervalLiteralImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Empty Interval Literal'. + * + * + * @generated + */ +public class EmptyIntervalLiteralImpl extends LiteralImpl implements EmptyIntervalLiteral +{ + /** + * + * + * @generated + */ + protected EmptyIntervalLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.EMPTY_INTERVAL_LITERAL; + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Enum Interpretation'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl#getSymbol Symbol}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.EnumInterpretationImpl#getObjects Objects}
    • - *
    - * - * @generated - */ -public class EnumInterpretationImpl extends CDInterpretationImpl implements EnumInterpretation -{ - /** - * The cached value of the '{@link #getSymbol() Symbol}' containment reference. - * - * - * @see #getSymbol() - * @generated - * @ordered - */ - protected ModelSymbol symbol; - - /** - * The cached value of the '{@link #getObjects() Objects}' containment reference list. - * - * - * @see #getObjects() - * @generated - * @ordered - */ - protected EList objects; - - /** - * - * - * @generated - */ - protected EnumInterpretationImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.ENUM_INTERPRETATION; - } - - /** - * - * - * @generated - */ - @Override - public ModelSymbol getSymbol() - { - return symbol; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs) - { - ModelSymbol oldSymbol = symbol; - symbol = newSymbol; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL, oldSymbol, newSymbol); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSymbol(ModelSymbol newSymbol) - { - if (newSymbol != symbol) - { - NotificationChain msgs = null; - if (symbol != null) - msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL, null, msgs); - if (newSymbol != null) - msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL, null, msgs); - msgs = basicSetSymbol(newSymbol, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL, newSymbol, newSymbol)); - } - - /** - * - * - * @generated - */ - @Override - public EList getObjects() - { - if (objects == null) - { - objects = new EObjectContainmentEList(NamedObject.class, this, SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS); - } - return objects; - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL: - return basicSetSymbol(null, msgs); - case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS: - return ((InternalEList)getObjects()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL: - return getSymbol(); - case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS: - return getObjects(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL: - setSymbol((ModelSymbol)newValue); - return; - case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS: - getObjects().clear(); - getObjects().addAll((Collection)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL: - setSymbol((ModelSymbol)null); - return; - case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS: - getObjects().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.ENUM_INTERPRETATION__SYMBOL: - return symbol != null; - case SolverLanguagePackage.ENUM_INTERPRETATION__OBJECTS: - return objects != null && !objects.isEmpty(); - } - return super.eIsSet(featureID); - } - -} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Equals Symbol'. - * - * - * @generated - */ -public class EqualsSymbolImpl extends PartialitySymbolImpl implements EqualsSymbol -{ - /** - * - * - * @generated - */ - protected EqualsSymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.EQUALS_SYMBOL; - } - -} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Error'. - * - * - * @generated - */ -public class ErrorImpl extends TruthValueImpl implements org.eclipse.viatra.solver.language.solverLanguage.Error -{ - /** - * - * - * @generated - */ - protected ErrorImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.ERROR; - } - -} //ErrorImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactMultiplicityImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactMultiplicityImpl.java new file mode 100644 index 00000000..3751de39 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactMultiplicityImpl.java @@ -0,0 +1,179 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Exact Multiplicity'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactMultiplicityImpl#getMultiplicity Multiplicity}
    • + *
    + * + * @generated + */ +public class ExactMultiplicityImpl extends MultiplicityImpl implements ExactMultiplicity +{ + /** + * The default value of the '{@link #getMultiplicity() Multiplicity}' attribute. + * + * + * @see #getMultiplicity() + * @generated + * @ordered + */ + protected static final int MULTIPLICITY_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getMultiplicity() Multiplicity}' attribute. + * + * + * @see #getMultiplicity() + * @generated + * @ordered + */ + protected int multiplicity = MULTIPLICITY_EDEFAULT; + + /** + * + * + * @generated + */ + protected ExactMultiplicityImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.EXACT_MULTIPLICITY; + } + + /** + * + * + * @generated + */ + @Override + public int getMultiplicity() + { + return multiplicity; + } + + /** + * + * + * @generated + */ + @Override + public void setMultiplicity(int newMultiplicity) + { + int oldMultiplicity = multiplicity; + multiplicity = newMultiplicity; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY, oldMultiplicity, multiplicity)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY: + return getMultiplicity(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY: + setMultiplicity((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY: + setMultiplicity(MULTIPLICITY_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXACT_MULTIPLICITY__MULTIPLICITY: + return multiplicity != MULTIPLICITY_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (multiplicity: "); + result.append(multiplicity); + result.append(')'); + return result.toString(); + } + +} //ExactMultiplicityImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactScopeDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactScopeDefinitionImpl.java new file mode 100644 index 00000000..faf51904 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExactScopeDefinitionImpl.java @@ -0,0 +1,179 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Exact Scope Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExactScopeDefinitionImpl#getExactScope Exact Scope}
    • + *
    + * + * @generated + */ +public class ExactScopeDefinitionImpl extends ScopeDefinitionImpl implements ExactScopeDefinition +{ + /** + * The default value of the '{@link #getExactScope() Exact Scope}' attribute. + * + * + * @see #getExactScope() + * @generated + * @ordered + */ + protected static final int EXACT_SCOPE_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getExactScope() Exact Scope}' attribute. + * + * + * @see #getExactScope() + * @generated + * @ordered + */ + protected int exactScope = EXACT_SCOPE_EDEFAULT; + + /** + * + * + * @generated + */ + protected ExactScopeDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.EXACT_SCOPE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public int getExactScope() + { + return exactScope; + } + + /** + * + * + * @generated + */ + @Override + public void setExactScope(int newExactScope) + { + int oldExactScope = exactScope; + exactScope = newExactScope; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE, oldExactScope, exactScope)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE: + return getExactScope(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE: + setExactScope((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE: + setExactScope(EXACT_SCOPE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXACT_SCOPE_DEFINITION__EXACT_SCOPE: + return exactScope != EXACT_SCOPE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (exactScope: "); + result.append(exactScope); + result.append(')'); + return result.toString(); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Exist Symbol'. - * - * - * @generated - */ -public class ExistSymbolImpl extends PartialitySymbolImpl implements ExistSymbol -{ - /** - * - * - * @generated - */ - protected ExistSymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.EXIST_SYMBOL; - } - -} //ExistSymbolImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionArgumentImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionArgumentImpl.java new file mode 100644 index 00000000..f83c1cb3 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionArgumentImpl.java @@ -0,0 +1,196 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Expression Argument'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExpressionArgumentImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class ExpressionArgumentImpl extends ArgumentImpl implements ExpressionArgument +{ + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * + * + * @generated + */ + protected ExpressionArgumentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.EXPRESSION_ARGUMENT; + } + + /** + * + * + * @generated + */ + @Override + public Expression getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) + { + Expression oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(Expression newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY: + return basicSetBody(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY: + setBody((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY: + setBody((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXPRESSION_ARGUMENT__BODY: + return body != null; + } + return super.eIsSet(featureID); + } + +} //ExpressionArgumentImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionImpl.java new file mode 100644 index 00000000..585e3c41 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExpressionImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Expression'. + * + * + * @generated + */ +public class ExpressionImpl extends StatementImpl implements Expression +{ + /** + * + * + * @generated + */ + protected ExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.EXPRESSION; + } + +} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Call; +import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.MetricType; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Extern Metric Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl#getType Type}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternMetricDefinitionImpl#getHead Head}
    • + *
    + * + * @generated + */ +public class ExternMetricDefinitionImpl extends StatementImpl implements ExternMetricDefinition +{ + /** + * The default value of the '{@link #getType() Type}' attribute. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected static final MetricType TYPE_EDEFAULT = MetricType.INT; + + /** + * The cached value of the '{@link #getType() Type}' attribute. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected MetricType type = TYPE_EDEFAULT; + + /** + * The cached value of the '{@link #getHead() Head}' containment reference. + * + * + * @see #getHead() + * @generated + * @ordered + */ + protected Call head; + + /** + * + * + * @generated + */ + protected ExternMetricDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.EXTERN_METRIC_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public MetricType getType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(MetricType newType) + { + MetricType oldType = type; + type = newType == null ? TYPE_EDEFAULT : newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public Call getHead() + { + return head; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetHead(Call newHead, NotificationChain msgs) + { + Call oldHead = head; + head = newHead; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD, oldHead, newHead); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setHead(Call newHead) + { + if (newHead != head) + { + NotificationChain msgs = null; + if (head != null) + msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD, null, msgs); + if (newHead != null) + msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD, null, msgs); + msgs = basicSetHead(newHead, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD, newHead, newHead)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD: + return basicSetHead(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE: + return getType(); + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD: + return getHead(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE: + setType((MetricType)newValue); + return; + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD: + setHead((Call)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE: + setType(TYPE_EDEFAULT); + return; + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD: + setHead((Call)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__TYPE: + return type != TYPE_EDEFAULT; + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION__HEAD: + return head != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (type: "); + result.append(type); + result.append(')'); + return result.toString(); + } + +} //ExternMetricDefinitionImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternPredicateDefinitionImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternPredicateDefinitionImpl.java new file mode 100644 index 00000000..0605cb0f --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ExternPredicateDefinitionImpl.java @@ -0,0 +1,196 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Call; +import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Extern Predicate Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ExternPredicateDefinitionImpl#getHead Head}
    • + *
    + * + * @generated + */ +public class ExternPredicateDefinitionImpl extends StatementImpl implements ExternPredicateDefinition +{ + /** + * The cached value of the '{@link #getHead() Head}' containment reference. + * + * + * @see #getHead() + * @generated + * @ordered + */ + protected Call head; + + /** + * + * + * @generated + */ + protected ExternPredicateDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.EXTERN_PREDICATE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public Call getHead() + { + return head; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetHead(Call newHead, NotificationChain msgs) + { + Call oldHead = head; + head = newHead; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD, oldHead, newHead); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setHead(Call newHead) + { + if (newHead != head) + { + NotificationChain msgs = null; + if (head != null) + msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD, null, msgs); + if (newHead != null) + msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD, null, msgs); + msgs = basicSetHead(newHead, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD, newHead, newHead)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD: + return basicSetHead(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD: + return getHead(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD: + setHead((Call)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD: + setHead((Call)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION__HEAD: + return head != null; + } + return super.eIsSet(featureID); + } + +} //ExternPredicateDefinitionImpl 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/FalseImpl.java deleted file mode 100644 index 332f9af3..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/FalseImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.False; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'False'. - * - * - * @generated - */ -public class FalseImpl extends TruthValueImpl implements False -{ - /** - * - * - * @generated - */ - protected FalseImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.FALSE; - } - -} //FalseImpl 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; - -/** - * - * An implementation of the model object 'Field Relation Interpretation'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl#isContainment Containment}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl#getSymbol Symbol}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl#getMultiplicity Multiplicity}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.FieldRelationInterpretationImpl#getTarget Target}
    • - *
    - * - * @generated - */ -public class FieldRelationInterpretationImpl extends MinimalEObjectImpl.Container implements FieldRelationInterpretation -{ - /** - * The default value of the '{@link #isContainment() Containment}' attribute. - * - * - * @see #isContainment() - * @generated - * @ordered - */ - protected static final boolean CONTAINMENT_EDEFAULT = false; - - /** - * The cached value of the '{@link #isContainment() Containment}' attribute. - * - * - * @see #isContainment() - * @generated - * @ordered - */ - protected boolean containment = CONTAINMENT_EDEFAULT; - - /** - * The cached value of the '{@link #getSymbol() Symbol}' containment reference. - * - * - * @see #getSymbol() - * @generated - * @ordered - */ - protected ModelSymbol symbol; - - /** - * The cached value of the '{@link #getMultiplicity() Multiplicity}' containment reference. - * - * - * @see #getMultiplicity() - * @generated - * @ordered - */ - protected MultiplicityDefinition multiplicity; - - /** - * The cached value of the '{@link #getTarget() Target}' containment reference. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected Symbol target; - - /** - * - * - * @generated - */ - protected FieldRelationInterpretationImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.FIELD_RELATION_INTERPRETATION; - } - - /** - * - * - * @generated - */ - @Override - public boolean isContainment() - { - return containment; - } - - /** - * - * - * @generated - */ - @Override - public void setContainment(boolean newContainment) - { - boolean oldContainment = containment; - containment = newContainment; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT, oldContainment, containment)); - } - - /** - * - * - * @generated - */ - @Override - public ModelSymbol getSymbol() - { - return symbol; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs) - { - ModelSymbol oldSymbol = symbol; - symbol = newSymbol; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL, oldSymbol, newSymbol); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSymbol(ModelSymbol newSymbol) - { - if (newSymbol != symbol) - { - NotificationChain msgs = null; - if (symbol != null) - msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL, null, msgs); - if (newSymbol != null) - msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL, null, msgs); - msgs = basicSetSymbol(newSymbol, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL, newSymbol, newSymbol)); - } - - /** - * - * - * @generated - */ - @Override - public MultiplicityDefinition getMultiplicity() - { - return multiplicity; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetMultiplicity(MultiplicityDefinition newMultiplicity, NotificationChain msgs) - { - MultiplicityDefinition oldMultiplicity = multiplicity; - multiplicity = newMultiplicity; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY, oldMultiplicity, newMultiplicity); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setMultiplicity(MultiplicityDefinition newMultiplicity) - { - if (newMultiplicity != multiplicity) - { - NotificationChain msgs = null; - if (multiplicity != null) - msgs = ((InternalEObject)multiplicity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY, null, msgs); - if (newMultiplicity != null) - msgs = ((InternalEObject)newMultiplicity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY, null, msgs); - msgs = basicSetMultiplicity(newMultiplicity, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY, newMultiplicity, newMultiplicity)); - } - - /** - * - * - * @generated - */ - @Override - public Symbol getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetTarget(Symbol newTarget, NotificationChain msgs) - { - Symbol oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET, oldTarget, newTarget); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setTarget(Symbol newTarget) - { - if (newTarget != target) - { - NotificationChain msgs = null; - if (target != null) - msgs = ((InternalEObject)target).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET, null, msgs); - if (newTarget != null) - msgs = ((InternalEObject)newTarget).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET, null, msgs); - msgs = basicSetTarget(newTarget, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET, newTarget, newTarget)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL: - return basicSetSymbol(null, msgs); - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY: - return basicSetMultiplicity(null, msgs); - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET: - return basicSetTarget(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT: - return isContainment(); - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL: - return getSymbol(); - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY: - return getMultiplicity(); - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET: - return getTarget(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT: - setContainment((Boolean)newValue); - return; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL: - setSymbol((ModelSymbol)newValue); - return; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY: - setMultiplicity((MultiplicityDefinition)newValue); - return; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET: - setTarget((Symbol)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT: - setContainment(CONTAINMENT_EDEFAULT); - return; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL: - setSymbol((ModelSymbol)null); - return; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY: - setMultiplicity((MultiplicityDefinition)null); - return; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET: - setTarget((Symbol)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__CONTAINMENT: - return containment != CONTAINMENT_EDEFAULT; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__SYMBOL: - return symbol != null; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__MULTIPLICITY: - return multiplicity != null; - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION__TARGET: - return target != null; - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (containment: "); - result.append(containment); - result.append(')'); - return result.toString(); - } - -} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; - -/** - * - * An implementation of the model object 'Global Relation Interpretation'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#isContainment Containment}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getSymbol Symbol}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getSourceMultiplicity Source Multiplicity}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getSource Source}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getTargetMultiplicity Target Multiplicity}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.GlobalRelationInterpretationImpl#getTarget Target}
    • - *
    - * - * @generated - */ -public class GlobalRelationInterpretationImpl extends CDInterpretationImpl implements GlobalRelationInterpretation -{ - /** - * The default value of the '{@link #isContainment() Containment}' attribute. - * - * - * @see #isContainment() - * @generated - * @ordered - */ - protected static final boolean CONTAINMENT_EDEFAULT = false; - - /** - * The cached value of the '{@link #isContainment() Containment}' attribute. - * - * - * @see #isContainment() - * @generated - * @ordered - */ - protected boolean containment = CONTAINMENT_EDEFAULT; - - /** - * The cached value of the '{@link #getSymbol() Symbol}' containment reference. - * - * - * @see #getSymbol() - * @generated - * @ordered - */ - protected ModelSymbol symbol; - - /** - * The cached value of the '{@link #getSourceMultiplicity() Source Multiplicity}' containment reference. - * - * - * @see #getSourceMultiplicity() - * @generated - * @ordered - */ - protected MultiplicityDefinition sourceMultiplicity; - - /** - * The cached value of the '{@link #getSource() Source}' containment reference. - * - * - * @see #getSource() - * @generated - * @ordered - */ - protected Symbol source; - - /** - * The cached value of the '{@link #getTargetMultiplicity() Target Multiplicity}' containment reference. - * - * - * @see #getTargetMultiplicity() - * @generated - * @ordered - */ - protected MultiplicityDefinition targetMultiplicity; - - /** - * The cached value of the '{@link #getTarget() Target}' containment reference. - * - * - * @see #getTarget() - * @generated - * @ordered - */ - protected Symbol target; - - /** - * - * - * @generated - */ - protected GlobalRelationInterpretationImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.GLOBAL_RELATION_INTERPRETATION; - } - - /** - * - * - * @generated - */ - @Override - public boolean isContainment() - { - return containment; - } - - /** - * - * - * @generated - */ - @Override - public void setContainment(boolean newContainment) - { - boolean oldContainment = containment; - containment = newContainment; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT, oldContainment, containment)); - } - - /** - * - * - * @generated - */ - @Override - public ModelSymbol getSymbol() - { - return symbol; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs) - { - ModelSymbol oldSymbol = symbol; - symbol = newSymbol; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL, oldSymbol, newSymbol); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSymbol(ModelSymbol newSymbol) - { - if (newSymbol != symbol) - { - NotificationChain msgs = null; - if (symbol != null) - msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL, null, msgs); - if (newSymbol != null) - msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL, null, msgs); - msgs = basicSetSymbol(newSymbol, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL, newSymbol, newSymbol)); - } - - /** - * - * - * @generated - */ - @Override - public MultiplicityDefinition getSourceMultiplicity() - { - return sourceMultiplicity; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSourceMultiplicity(MultiplicityDefinition newSourceMultiplicity, NotificationChain msgs) - { - MultiplicityDefinition oldSourceMultiplicity = sourceMultiplicity; - sourceMultiplicity = newSourceMultiplicity; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY, oldSourceMultiplicity, newSourceMultiplicity); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSourceMultiplicity(MultiplicityDefinition newSourceMultiplicity) - { - if (newSourceMultiplicity != sourceMultiplicity) - { - NotificationChain msgs = null; - if (sourceMultiplicity != null) - msgs = ((InternalEObject)sourceMultiplicity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY, null, msgs); - if (newSourceMultiplicity != null) - msgs = ((InternalEObject)newSourceMultiplicity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY, null, msgs); - msgs = basicSetSourceMultiplicity(newSourceMultiplicity, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY, newSourceMultiplicity, newSourceMultiplicity)); - } - - /** - * - * - * @generated - */ - @Override - public Symbol getSource() - { - return source; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSource(Symbol newSource, NotificationChain msgs) - { - Symbol oldSource = source; - source = newSource; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE, oldSource, newSource); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSource(Symbol newSource) - { - if (newSource != source) - { - NotificationChain msgs = null; - if (source != null) - msgs = ((InternalEObject)source).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE, null, msgs); - if (newSource != null) - msgs = ((InternalEObject)newSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE, null, msgs); - msgs = basicSetSource(newSource, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE, newSource, newSource)); - } - - /** - * - * - * @generated - */ - @Override - public MultiplicityDefinition getTargetMultiplicity() - { - return targetMultiplicity; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetTargetMultiplicity(MultiplicityDefinition newTargetMultiplicity, NotificationChain msgs) - { - MultiplicityDefinition oldTargetMultiplicity = targetMultiplicity; - targetMultiplicity = newTargetMultiplicity; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY, oldTargetMultiplicity, newTargetMultiplicity); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setTargetMultiplicity(MultiplicityDefinition newTargetMultiplicity) - { - if (newTargetMultiplicity != targetMultiplicity) - { - NotificationChain msgs = null; - if (targetMultiplicity != null) - msgs = ((InternalEObject)targetMultiplicity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY, null, msgs); - if (newTargetMultiplicity != null) - msgs = ((InternalEObject)newTargetMultiplicity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY, null, msgs); - msgs = basicSetTargetMultiplicity(newTargetMultiplicity, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY, newTargetMultiplicity, newTargetMultiplicity)); - } - - /** - * - * - * @generated - */ - @Override - public Symbol getTarget() - { - return target; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetTarget(Symbol newTarget, NotificationChain msgs) - { - Symbol oldTarget = target; - target = newTarget; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET, oldTarget, newTarget); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setTarget(Symbol newTarget) - { - if (newTarget != target) - { - NotificationChain msgs = null; - if (target != null) - msgs = ((InternalEObject)target).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET, null, msgs); - if (newTarget != null) - msgs = ((InternalEObject)newTarget).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET, null, msgs); - msgs = basicSetTarget(newTarget, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET, newTarget, newTarget)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL: - return basicSetSymbol(null, msgs); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY: - return basicSetSourceMultiplicity(null, msgs); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE: - return basicSetSource(null, msgs); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY: - return basicSetTargetMultiplicity(null, msgs); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET: - return basicSetTarget(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT: - return isContainment(); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL: - return getSymbol(); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY: - return getSourceMultiplicity(); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE: - return getSource(); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY: - return getTargetMultiplicity(); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET: - return getTarget(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT: - setContainment((Boolean)newValue); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL: - setSymbol((ModelSymbol)newValue); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY: - setSourceMultiplicity((MultiplicityDefinition)newValue); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE: - setSource((Symbol)newValue); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY: - setTargetMultiplicity((MultiplicityDefinition)newValue); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET: - setTarget((Symbol)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT: - setContainment(CONTAINMENT_EDEFAULT); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL: - setSymbol((ModelSymbol)null); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY: - setSourceMultiplicity((MultiplicityDefinition)null); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE: - setSource((Symbol)null); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY: - setTargetMultiplicity((MultiplicityDefinition)null); - return; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET: - setTarget((Symbol)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__CONTAINMENT: - return containment != CONTAINMENT_EDEFAULT; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SYMBOL: - return symbol != null; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY: - return sourceMultiplicity != null; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__SOURCE: - return source != null; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY: - return targetMultiplicity != null; - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION__TARGET: - return target != null; - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (containment: "); - result.append(containment); - result.append(')'); - return result.toString(); - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.IfElse; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'If Else'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl#getCondition Condition}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl#getThen Then}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.IfElseImpl#getElse Else}
    • + *
    + * + * @generated + */ +public class IfElseImpl extends ExpressionImpl implements IfElse +{ + /** + * The cached value of the '{@link #getCondition() Condition}' containment reference. + * + * + * @see #getCondition() + * @generated + * @ordered + */ + protected Expression condition; + + /** + * The cached value of the '{@link #getThen() Then}' containment reference. + * + * + * @see #getThen() + * @generated + * @ordered + */ + protected Expression then; + + /** + * The cached value of the '{@link #getElse() Else}' containment reference. + * + * + * @see #getElse() + * @generated + * @ordered + */ + protected Expression else_; + + /** + * + * + * @generated + */ + protected IfElseImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.IF_ELSE; + } + + /** + * + * + * @generated + */ + @Override + public Expression getCondition() + { + return condition; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetCondition(Expression newCondition, NotificationChain msgs) + { + Expression oldCondition = condition; + condition = newCondition; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__CONDITION, oldCondition, newCondition); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setCondition(Expression newCondition) + { + if (newCondition != condition) + { + NotificationChain msgs = null; + if (condition != null) + msgs = ((InternalEObject)condition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__CONDITION, null, msgs); + if (newCondition != null) + msgs = ((InternalEObject)newCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__CONDITION, null, msgs); + msgs = basicSetCondition(newCondition, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__CONDITION, newCondition, newCondition)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getThen() + { + return then; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetThen(Expression newThen, NotificationChain msgs) + { + Expression oldThen = then; + then = newThen; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__THEN, oldThen, newThen); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setThen(Expression newThen) + { + if (newThen != then) + { + NotificationChain msgs = null; + if (then != null) + msgs = ((InternalEObject)then).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__THEN, null, msgs); + if (newThen != null) + msgs = ((InternalEObject)newThen).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__THEN, null, msgs); + msgs = basicSetThen(newThen, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__THEN, newThen, newThen)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getElse() + { + return else_; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetElse(Expression newElse, NotificationChain msgs) + { + Expression oldElse = else_; + else_ = newElse; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__ELSE, oldElse, newElse); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setElse(Expression newElse) + { + if (newElse != else_) + { + NotificationChain msgs = null; + if (else_ != null) + msgs = ((InternalEObject)else_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__ELSE, null, msgs); + if (newElse != null) + msgs = ((InternalEObject)newElse).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.IF_ELSE__ELSE, null, msgs); + msgs = basicSetElse(newElse, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.IF_ELSE__ELSE, newElse, newElse)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.IF_ELSE__CONDITION: + return basicSetCondition(null, msgs); + case SolverLanguagePackage.IF_ELSE__THEN: + return basicSetThen(null, msgs); + case SolverLanguagePackage.IF_ELSE__ELSE: + return basicSetElse(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.IF_ELSE__CONDITION: + return getCondition(); + case SolverLanguagePackage.IF_ELSE__THEN: + return getThen(); + case SolverLanguagePackage.IF_ELSE__ELSE: + return getElse(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.IF_ELSE__CONDITION: + setCondition((Expression)newValue); + return; + case SolverLanguagePackage.IF_ELSE__THEN: + setThen((Expression)newValue); + return; + case SolverLanguagePackage.IF_ELSE__ELSE: + setElse((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.IF_ELSE__CONDITION: + setCondition((Expression)null); + return; + case SolverLanguagePackage.IF_ELSE__THEN: + setThen((Expression)null); + return; + case SolverLanguagePackage.IF_ELSE__ELSE: + setElse((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.IF_ELSE__CONDITION: + return condition != null; + case SolverLanguagePackage.IF_ELSE__THEN: + return then != null; + case SolverLanguagePackage.IF_ELSE__ELSE: + return else_ != null; + } + return super.eIsSet(featureID); + } + +} //IfElseImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InfinityLiteralImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InfinityLiteralImpl.java new file mode 100644 index 00000000..e796f5a0 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/InfinityLiteralImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Infinity Literal'. + * + * + * @generated + */ +public class InfinityLiteralImpl extends LiteralImpl implements InfinityLiteral +{ + /** + * + * + * @generated + */ + protected InfinityLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.INFINITY_LITERAL; + } + +} //InfinityLiteralImpl 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/IntObjectImpl.java deleted file mode 100644 index fa844b68..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/IntObjectImpl.java +++ /dev/null @@ -1,179 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.IntObject; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Int Object'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntObjectImpl#getValue Value}
    • - *
    - * - * @generated - */ -public class IntObjectImpl extends DataObjectImpl implements IntObject -{ - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final int VALUE_EDEFAULT = 0; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected int value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected IntObjectImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.INT_OBJECT; - } - - /** - * - * - * @generated - */ - @Override - public int getValue() - { - return value; - } - - /** - * - * - * @generated - */ - @Override - public void setValue(int newValue) - { - int oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INT_OBJECT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.INT_OBJECT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.INT_OBJECT__VALUE: - setValue((Integer)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.INT_OBJECT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.INT_OBJECT__VALUE: - return value != VALUE_EDEFAULT; - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //IntObjectImpl 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Integer Symbol'. - * - * - * @generated - */ -public class IntegerSymbolImpl extends DataSymbolImpl implements IntegerSymbol -{ - /** - * - * - * @generated - */ - protected IntegerSymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.INTEGER_SYMBOL; - } - -} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Interpretation'. - * - * - * @generated - */ -public class InterpretationImpl extends StatementImpl implements Interpretation -{ - /** - * - * - * @generated - */ - protected InterpretationImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.INTERPRETATION; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.Interval; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Interval'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl#getLowerBound Lower Bound}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.IntervalImpl#getUpperBound Upper Bound}
    • + *
    + * + * @generated + */ +public class IntervalImpl extends ExpressionImpl implements Interval +{ + /** + * The cached value of the '{@link #getLowerBound() Lower Bound}' containment reference. + * + * + * @see #getLowerBound() + * @generated + * @ordered + */ + protected Expression lowerBound; + + /** + * The cached value of the '{@link #getUpperBound() Upper Bound}' containment reference. + * + * + * @see #getUpperBound() + * @generated + * @ordered + */ + protected Expression upperBound; + + /** + * + * + * @generated + */ + protected IntervalImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.INTERVAL; + } + + /** + * + * + * @generated + */ + @Override + public Expression getLowerBound() + { + return lowerBound; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetLowerBound(Expression newLowerBound, NotificationChain msgs) + { + Expression oldLowerBound = lowerBound; + lowerBound = newLowerBound; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INTERVAL__LOWER_BOUND, oldLowerBound, newLowerBound); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setLowerBound(Expression newLowerBound) + { + if (newLowerBound != lowerBound) + { + NotificationChain msgs = null; + if (lowerBound != null) + msgs = ((InternalEObject)lowerBound).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.INTERVAL__LOWER_BOUND, null, msgs); + if (newLowerBound != null) + msgs = ((InternalEObject)newLowerBound).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.INTERVAL__LOWER_BOUND, null, msgs); + msgs = basicSetLowerBound(newLowerBound, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INTERVAL__LOWER_BOUND, newLowerBound, newLowerBound)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getUpperBound() + { + return upperBound; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetUpperBound(Expression newUpperBound, NotificationChain msgs) + { + Expression oldUpperBound = upperBound; + upperBound = newUpperBound; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INTERVAL__UPPER_BOUND, oldUpperBound, newUpperBound); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setUpperBound(Expression newUpperBound) + { + if (newUpperBound != upperBound) + { + NotificationChain msgs = null; + if (upperBound != null) + msgs = ((InternalEObject)upperBound).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.INTERVAL__UPPER_BOUND, null, msgs); + if (newUpperBound != null) + msgs = ((InternalEObject)newUpperBound).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.INTERVAL__UPPER_BOUND, null, msgs); + msgs = basicSetUpperBound(newUpperBound, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.INTERVAL__UPPER_BOUND, newUpperBound, newUpperBound)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.INTERVAL__LOWER_BOUND: + return basicSetLowerBound(null, msgs); + case SolverLanguagePackage.INTERVAL__UPPER_BOUND: + return basicSetUpperBound(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.INTERVAL__LOWER_BOUND: + return getLowerBound(); + case SolverLanguagePackage.INTERVAL__UPPER_BOUND: + return getUpperBound(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.INTERVAL__LOWER_BOUND: + setLowerBound((Expression)newValue); + return; + case SolverLanguagePackage.INTERVAL__UPPER_BOUND: + setUpperBound((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.INTERVAL__LOWER_BOUND: + setLowerBound((Expression)null); + return; + case SolverLanguagePackage.INTERVAL__UPPER_BOUND: + setUpperBound((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.INTERVAL__LOWER_BOUND: + return lowerBound != null; + case SolverLanguagePackage.INTERVAL__UPPER_BOUND: + return upperBound != null; + } + return super.eIsSet(featureID); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Irreflexive Closure'. - * - * - * @generated - */ -public class IrreflexiveClosureImpl extends ClosureTypeImpl implements IrreflexiveClosure -{ - /** - * - * - * @generated - */ - protected IrreflexiveClosureImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.IRREFLEXIVE_CLOSURE; - } - -} //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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage.impl; import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - import org.eclipse.viatra.solver.language.solverLanguage.Literal; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; @@ -17,7 +15,7 @@ import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; * * @generated */ -public class LiteralImpl extends MinimalEObjectImpl.Container implements Literal +public class LiteralImpl extends ExpressionImpl implements Literal { /** * diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LogicLiteralImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LogicLiteralImpl.java new file mode 100644 index 00000000..2bc27a20 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/LogicLiteralImpl.java @@ -0,0 +1,180 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.LogicValue; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Logic Literal'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.LogicLiteralImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class LogicLiteralImpl extends LiteralImpl implements LogicLiteral +{ + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final LogicValue VALUE_EDEFAULT = LogicValue.TRUE; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected LogicValue value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected LogicLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.LOGIC_LITERAL; + } + + /** + * + * + * @generated + */ + @Override + public LogicValue getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public void setValue(LogicValue newValue) + { + LogicValue oldValue = value; + value = newValue == null ? VALUE_EDEFAULT : newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.LOGIC_LITERAL__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.LOGIC_LITERAL__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.LOGIC_LITERAL__VALUE: + setValue((LogicValue)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.LOGIC_LITERAL__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.LOGIC_LITERAL__VALUE: + return value != VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Lower Bounded Scope Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.LowerBoundedScopeDefinitionImpl#getLowerBound Lower Bound}
    • + *
    + * + * @generated + */ +public class LowerBoundedScopeDefinitionImpl extends ScopeDefinitionImpl implements LowerBoundedScopeDefinition +{ + /** + * The default value of the '{@link #getLowerBound() Lower Bound}' attribute. + * + * + * @see #getLowerBound() + * @generated + * @ordered + */ + protected static final int LOWER_BOUND_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getLowerBound() Lower Bound}' attribute. + * + * + * @see #getLowerBound() + * @generated + * @ordered + */ + protected int lowerBound = LOWER_BOUND_EDEFAULT; + + /** + * + * + * @generated + */ + protected LowerBoundedScopeDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.LOWER_BOUNDED_SCOPE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public int getLowerBound() + { + return lowerBound; + } + + /** + * + * + * @generated + */ + @Override + public void setLowerBound(int newLowerBound) + { + int oldLowerBound = lowerBound; + lowerBound = newLowerBound; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND, oldLowerBound, lowerBound)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND: + return getLowerBound(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND: + setLowerBound((Integer)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND: + setLowerBound(LOWER_BOUND_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND: + return lowerBound != LOWER_BOUND_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (lowerBound: "); + result.append(lowerBound); + result.append(')'); + return result.toString(); + } + +} //LowerBoundedScopeDefinitionImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ManyMultiplicityImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ManyMultiplicityImpl.java new file mode 100644 index 00000000..c248b4ea --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ManyMultiplicityImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Many Multiplicity'. + * + * + * @generated + */ +public class ManyMultiplicityImpl extends MultiplicityImpl implements ManyMultiplicity +{ + /** + * + * + * @generated + */ + protected ManyMultiplicityImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.MANY_MULTIPLICITY; + } + +} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Multiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Member Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#isContainment Containment}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#getType Type}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#getMultiplicity Multiplicity}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#getName Name}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MemberDefinitionImpl#getOpposite Opposite}
    • + *
    + * + * @generated + */ +public class MemberDefinitionImpl extends MinimalEObjectImpl.Container implements MemberDefinition +{ + /** + * The default value of the '{@link #isContainment() Containment}' attribute. + * + * + * @see #isContainment() + * @generated + * @ordered + */ + protected static final boolean CONTAINMENT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isContainment() Containment}' attribute. + * + * + * @see #isContainment() + * @generated + * @ordered + */ + protected boolean containment = CONTAINMENT_EDEFAULT; + + /** + * The cached value of the '{@link #getType() Type}' reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected NamedElement type; + + /** + * The cached value of the '{@link #getMultiplicity() Multiplicity}' containment reference. + * + * + * @see #getMultiplicity() + * @generated + * @ordered + */ + protected Multiplicity multiplicity; + + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getOpposite() Opposite}' reference. + * + * + * @see #getOpposite() + * @generated + * @ordered + */ + protected NamedElement opposite; + + /** + * + * + * @generated + */ + protected MemberDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.MEMBER_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isContainment() + { + return containment; + } + + /** + * + * + * @generated + */ + @Override + public void setContainment(boolean newContainment) + { + boolean oldContainment = containment; + containment = newContainment; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT, oldContainment, containment)); + } + + /** + * + * + * @generated + */ + @Override + public NamedElement getType() + { + if (type != null && type.eIsProxy()) + { + InternalEObject oldType = (InternalEObject)type; + type = (NamedElement)eResolveProxy(oldType); + if (type != oldType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.MEMBER_DEFINITION__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public NamedElement basicGetType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(NamedElement newType) + { + NamedElement oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public Multiplicity getMultiplicity() + { + return multiplicity; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMultiplicity(Multiplicity newMultiplicity, NotificationChain msgs) + { + Multiplicity oldMultiplicity = multiplicity; + multiplicity = newMultiplicity; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY, oldMultiplicity, newMultiplicity); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setMultiplicity(Multiplicity newMultiplicity) + { + if (newMultiplicity != multiplicity) + { + NotificationChain msgs = null; + if (multiplicity != null) + msgs = ((InternalEObject)multiplicity).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY, null, msgs); + if (newMultiplicity != null) + msgs = ((InternalEObject)newMultiplicity).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY, null, msgs); + msgs = basicSetMultiplicity(newMultiplicity, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY, newMultiplicity, newMultiplicity)); + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public NamedElement getOpposite() + { + if (opposite != null && opposite.eIsProxy()) + { + InternalEObject oldOpposite = (InternalEObject)opposite; + opposite = (NamedElement)eResolveProxy(oldOpposite); + if (opposite != oldOpposite) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE, oldOpposite, opposite)); + } + } + return opposite; + } + + /** + * + * + * @generated + */ + public NamedElement basicGetOpposite() + { + return opposite; + } + + /** + * + * + * @generated + */ + @Override + public void setOpposite(NamedElement newOpposite) + { + NamedElement oldOpposite = opposite; + opposite = newOpposite; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE, oldOpposite, opposite)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY: + return basicSetMultiplicity(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT: + return isContainment(); + case SolverLanguagePackage.MEMBER_DEFINITION__TYPE: + if (resolve) return getType(); + return basicGetType(); + case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY: + return getMultiplicity(); + case SolverLanguagePackage.MEMBER_DEFINITION__NAME: + return getName(); + case SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE: + if (resolve) return getOpposite(); + return basicGetOpposite(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT: + setContainment((Boolean)newValue); + return; + case SolverLanguagePackage.MEMBER_DEFINITION__TYPE: + setType((NamedElement)newValue); + return; + case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY: + setMultiplicity((Multiplicity)newValue); + return; + case SolverLanguagePackage.MEMBER_DEFINITION__NAME: + setName((String)newValue); + return; + case SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE: + setOpposite((NamedElement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT: + setContainment(CONTAINMENT_EDEFAULT); + return; + case SolverLanguagePackage.MEMBER_DEFINITION__TYPE: + setType((NamedElement)null); + return; + case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY: + setMultiplicity((Multiplicity)null); + return; + case SolverLanguagePackage.MEMBER_DEFINITION__NAME: + setName(NAME_EDEFAULT); + return; + case SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE: + setOpposite((NamedElement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.MEMBER_DEFINITION__CONTAINMENT: + return containment != CONTAINMENT_EDEFAULT; + case SolverLanguagePackage.MEMBER_DEFINITION__TYPE: + return type != null; + case SolverLanguagePackage.MEMBER_DEFINITION__MULTIPLICITY: + return multiplicity != null; + case SolverLanguagePackage.MEMBER_DEFINITION__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case SolverLanguagePackage.MEMBER_DEFINITION__OPPOSITE: + return opposite != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (containment: "); + result.append(containment); + result.append(", name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.MetricType; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Metric Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl#getHead Head}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl#getBody Body}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MetricDefinitionImpl#getType Type}
    • + *
    + * + * @generated + */ +public class MetricDefinitionImpl extends StatementImpl implements MetricDefinition +{ + /** + * The cached value of the '{@link #getHead() Head}' containment reference. + * + * + * @see #getHead() + * @generated + * @ordered + */ + protected Expression head; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * The default value of the '{@link #getType() Type}' attribute. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected static final MetricType TYPE_EDEFAULT = MetricType.INT; + + /** + * The cached value of the '{@link #getType() Type}' attribute. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected MetricType type = TYPE_EDEFAULT; + + /** + * + * + * @generated + */ + protected MetricDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.METRIC_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public Expression getHead() + { + return head; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetHead(Expression newHead, NotificationChain msgs) + { + Expression oldHead = head; + head = newHead; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__HEAD, oldHead, newHead); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setHead(Expression newHead) + { + if (newHead != head) + { + NotificationChain msgs = null; + if (head != null) + msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.METRIC_DEFINITION__HEAD, null, msgs); + if (newHead != null) + msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.METRIC_DEFINITION__HEAD, null, msgs); + msgs = basicSetHead(newHead, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__HEAD, newHead, newHead)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) + { + Expression oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(Expression newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.METRIC_DEFINITION__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.METRIC_DEFINITION__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public MetricType getType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(MetricType newType) + { + MetricType oldType = type; + type = newType == null ? TYPE_EDEFAULT : newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.METRIC_DEFINITION__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.METRIC_DEFINITION__HEAD: + return basicSetHead(null, msgs); + case SolverLanguagePackage.METRIC_DEFINITION__BODY: + return basicSetBody(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.METRIC_DEFINITION__HEAD: + return getHead(); + case SolverLanguagePackage.METRIC_DEFINITION__BODY: + return getBody(); + case SolverLanguagePackage.METRIC_DEFINITION__TYPE: + return getType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.METRIC_DEFINITION__HEAD: + setHead((Expression)newValue); + return; + case SolverLanguagePackage.METRIC_DEFINITION__BODY: + setBody((Expression)newValue); + return; + case SolverLanguagePackage.METRIC_DEFINITION__TYPE: + setType((MetricType)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.METRIC_DEFINITION__HEAD: + setHead((Expression)null); + return; + case SolverLanguagePackage.METRIC_DEFINITION__BODY: + setBody((Expression)null); + return; + case SolverLanguagePackage.METRIC_DEFINITION__TYPE: + setType(TYPE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.METRIC_DEFINITION__HEAD: + return head != null; + case SolverLanguagePackage.METRIC_DEFINITION__BODY: + return body != null; + case SolverLanguagePackage.METRIC_DEFINITION__TYPE: + return type != TYPE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (type: "); + result.append(type); + result.append(')'); + return result.toString(); + } + +} //MetricDefinitionImpl 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/ModelSymbolImpl.java deleted file mode 100644 index bd195572..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ModelSymbolImpl.java +++ /dev/null @@ -1,179 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Model Symbol'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ModelSymbolImpl#getName Name}
    • - *
    - * - * @generated - */ -public class ModelSymbolImpl extends SymbolImpl implements ModelSymbol -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * - * - * @generated - */ - protected ModelSymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.MODEL_SYMBOL; - } - - /** - * - * - * @generated - */ - @Override - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - @Override - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MODEL_SYMBOL__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.MODEL_SYMBOL__NAME: - return getName(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.MODEL_SYMBOL__NAME: - setName((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.MODEL_SYMBOL__NAME: - setName(NAME_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.MODEL_SYMBOL__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //ModelSymbolImpl 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Multiplicity Definition'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl#getLower Lower}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl#getUpper Upper}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.MultiplicityDefinitionImpl#isUnlimitedUpper Unlimited Upper}
    • - *
    - * - * @generated - */ -public class MultiplicityDefinitionImpl extends MinimalEObjectImpl.Container implements MultiplicityDefinition -{ - /** - * The default value of the '{@link #getLower() Lower}' attribute. - * - * - * @see #getLower() - * @generated - * @ordered - */ - protected static final int LOWER_EDEFAULT = 0; - - /** - * The cached value of the '{@link #getLower() Lower}' attribute. - * - * - * @see #getLower() - * @generated - * @ordered - */ - protected int lower = LOWER_EDEFAULT; - - /** - * The default value of the '{@link #getUpper() Upper}' attribute. - * - * - * @see #getUpper() - * @generated - * @ordered - */ - protected static final int UPPER_EDEFAULT = 0; - - /** - * The cached value of the '{@link #getUpper() Upper}' attribute. - * - * - * @see #getUpper() - * @generated - * @ordered - */ - protected int upper = UPPER_EDEFAULT; - - /** - * The default value of the '{@link #isUnlimitedUpper() Unlimited Upper}' attribute. - * - * - * @see #isUnlimitedUpper() - * @generated - * @ordered - */ - protected static final boolean UNLIMITED_UPPER_EDEFAULT = false; - - /** - * The cached value of the '{@link #isUnlimitedUpper() Unlimited Upper}' attribute. - * - * - * @see #isUnlimitedUpper() - * @generated - * @ordered - */ - protected boolean unlimitedUpper = UNLIMITED_UPPER_EDEFAULT; - - /** - * - * - * @generated - */ - protected MultiplicityDefinitionImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.MULTIPLICITY_DEFINITION; - } - - /** - * - * - * @generated - */ - @Override - public int getLower() - { - return lower; - } - - /** - * - * - * @generated - */ - @Override - public void setLower(int newLower) - { - int oldLower = lower; - lower = newLower; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER, oldLower, lower)); - } - - /** - * - * - * @generated - */ - @Override - public int getUpper() - { - return upper; - } - - /** - * - * - * @generated - */ - @Override - public void setUpper(int newUpper) - { - int oldUpper = upper; - upper = newUpper; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER, oldUpper, upper)); - } - - /** - * - * - * @generated - */ - @Override - public boolean isUnlimitedUpper() - { - return unlimitedUpper; - } - - /** - * - * - * @generated - */ - @Override - public void setUnlimitedUpper(boolean newUnlimitedUpper) - { - boolean oldUnlimitedUpper = unlimitedUpper; - unlimitedUpper = newUnlimitedUpper; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER, oldUnlimitedUpper, unlimitedUpper)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER: - return getLower(); - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER: - return getUpper(); - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER: - return isUnlimitedUpper(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER: - setLower((Integer)newValue); - return; - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER: - setUpper((Integer)newValue); - return; - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER: - setUnlimitedUpper((Boolean)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER: - setLower(LOWER_EDEFAULT); - return; - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER: - setUpper(UPPER_EDEFAULT); - return; - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER: - setUnlimitedUpper(UNLIMITED_UPPER_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__LOWER: - return lower != LOWER_EDEFAULT; - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UPPER: - return upper != UPPER_EDEFAULT; - case SolverLanguagePackage.MULTIPLICITY_DEFINITION__UNLIMITED_UPPER: - return unlimitedUpper != UNLIMITED_UPPER_EDEFAULT; - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (lower: "); - result.append(lower); - result.append(", upper: "); - result.append(upper); - result.append(", unlimitedUpper: "); - result.append(unlimitedUpper); - result.append(')'); - return result.toString(); - } - -} //MultiplicityDefinitionImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityImpl.java new file mode 100644 index 00000000..935cf5be --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/MultiplicityImpl.java @@ -0,0 +1,43 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Multiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Multiplicity'. + * + * + * @generated + */ +public class MultiplicityImpl extends MinimalEObjectImpl.Container implements Multiplicity +{ + /** + * + * + * @generated + */ + protected MultiplicityImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.MULTIPLICITY; + } + +} //MultiplicityImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedElementImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedElementImpl.java new file mode 100644 index 00000000..a94f9894 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedElementImpl.java @@ -0,0 +1,180 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Named Element'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedElementImpl#getName Name}
    • + *
    + * + * @generated + */ +public class NamedElementImpl extends MinimalEObjectImpl.Container implements NamedElement +{ + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected NamedElementImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.NAMED_ELEMENT; + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.NAMED_ELEMENT__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.NAMED_ELEMENT__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.NAMED_ELEMENT__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.NAMED_ELEMENT__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.NAMED_ELEMENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //NamedElementImpl 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/NamedObjectImpl.java deleted file mode 100644 index 9d907661..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NamedObjectImpl.java +++ /dev/null @@ -1,179 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Named Object'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.NamedObjectImpl#getName Name}
    • - *
    - * - * @generated - */ -public class NamedObjectImpl extends ObjectImpl implements NamedObject -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * - * - * @generated - */ - protected NamedObjectImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.NAMED_OBJECT; - } - - /** - * - * - * @generated - */ - @Override - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - @Override - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.NAMED_OBJECT__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.NAMED_OBJECT__NAME: - return getName(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.NAMED_OBJECT__NAME: - setName((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.NAMED_OBJECT__NAME: - setName(NAME_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.NAMED_OBJECT__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //NamedObjectImpl 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.Negative; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Negative'. - * - * - * @generated - */ -public class NegativeImpl extends PolarityImpl implements Negative -{ - /** - * - * - * @generated - */ - protected NegativeImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.NEGATIVE; - } - -} //NegativeImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NumericLiteralImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NumericLiteralImpl.java new file mode 100644 index 00000000..04622dfb --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/NumericLiteralImpl.java @@ -0,0 +1,181 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import java.math.BigDecimal; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Numeric Literal'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.NumericLiteralImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class NumericLiteralImpl extends LiteralImpl implements NumericLiteral +{ + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final BigDecimal VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected BigDecimal value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected NumericLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.NUMERIC_LITERAL; + } + + /** + * + * + * @generated + */ + @Override + public BigDecimal getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public void setValue(BigDecimal newValue) + { + BigDecimal oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.NUMERIC_LITERAL__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.NUMERIC_LITERAL__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.NUMERIC_LITERAL__VALUE: + setValue((BigDecimal)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.NUMERIC_LITERAL__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.NUMERIC_LITERAL__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Object'. - * - * - * @generated - */ -public class ObjectImpl extends ComplexObjectImpl implements org.eclipse.viatra.solver.language.solverLanguage.Object -{ - /** - * - * - * @generated - */ - protected ObjectImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.OBJECT; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Objective Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl#getKind Kind}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ObjectiveDefinitionImpl#getObjective Objective}
    • + *
    + * + * @generated + */ +public class ObjectiveDefinitionImpl extends StatementImpl implements ObjectiveDefinition +{ + /** + * The default value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected static final ObjectiveKind KIND_EDEFAULT = ObjectiveKind.MINIMIZE; + + /** + * The cached value of the '{@link #getKind() Kind}' attribute. + * + * + * @see #getKind() + * @generated + * @ordered + */ + protected ObjectiveKind kind = KIND_EDEFAULT; + + /** + * The cached value of the '{@link #getObjective() Objective}' containment reference. + * + * + * @see #getObjective() + * @generated + * @ordered + */ + protected Expression objective; + + /** + * + * + * @generated + */ + protected ObjectiveDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.OBJECTIVE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public ObjectiveKind getKind() + { + return kind; + } + + /** + * + * + * @generated + */ + @Override + public void setKind(ObjectiveKind newKind) + { + ObjectiveKind oldKind = kind; + kind = newKind == null ? KIND_EDEFAULT : newKind; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND, oldKind, kind)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getObjective() + { + return objective; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetObjective(Expression newObjective, NotificationChain msgs) + { + Expression oldObjective = objective; + objective = newObjective; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE, oldObjective, newObjective); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setObjective(Expression newObjective) + { + if (newObjective != objective) + { + NotificationChain msgs = null; + if (objective != null) + msgs = ((InternalEObject)objective).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE, null, msgs); + if (newObjective != null) + msgs = ((InternalEObject)newObjective).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE, null, msgs); + msgs = basicSetObjective(newObjective, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE, newObjective, newObjective)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE: + return basicSetObjective(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND: + return getKind(); + case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE: + return getObjective(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND: + setKind((ObjectiveKind)newValue); + return; + case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE: + setObjective((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND: + setKind(KIND_EDEFAULT); + return; + case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE: + setObjective((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.OBJECTIVE_DEFINITION__KIND: + return kind != KIND_EDEFAULT; + case SolverLanguagePackage.OBJECTIVE_DEFINITION__OBJECTIVE: + return objective != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (kind: "); + result.append(kind); + result.append(')'); + return result.toString(); + } + +} //ObjectiveDefinitionImpl 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/ParameterImpl.java deleted file mode 100644 index 6281c4bc..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/ParameterImpl.java +++ /dev/null @@ -1,271 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.Parameter; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; -import org.eclipse.viatra.solver.language.solverLanguage.Variable; - -/** - * - * An implementation of the model object 'Parameter'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl#getVariable Variable}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ParameterImpl#getType Type}
    • - *
    - * - * @generated - */ -public class ParameterImpl extends MinimalEObjectImpl.Container implements Parameter -{ - /** - * The cached value of the '{@link #getVariable() Variable}' containment reference. - * - * - * @see #getVariable() - * @generated - * @ordered - */ - protected Variable variable; - - /** - * The cached value of the '{@link #getType() Type}' containment reference. - * - * - * @see #getType() - * @generated - * @ordered - */ - protected Symbol type; - - /** - * - * - * @generated - */ - protected ParameterImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.PARAMETER; - } - - /** - * - * - * @generated - */ - @Override - public Variable getVariable() - { - return variable; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetVariable(Variable newVariable, NotificationChain msgs) - { - Variable oldVariable = variable; - variable = newVariable; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PARAMETER__VARIABLE, oldVariable, newVariable); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setVariable(Variable newVariable) - { - if (newVariable != variable) - { - NotificationChain msgs = null; - if (variable != null) - msgs = ((InternalEObject)variable).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PARAMETER__VARIABLE, null, msgs); - if (newVariable != null) - msgs = ((InternalEObject)newVariable).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PARAMETER__VARIABLE, null, msgs); - msgs = basicSetVariable(newVariable, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PARAMETER__VARIABLE, newVariable, newVariable)); - } - - /** - * - * - * @generated - */ - @Override - public Symbol getType() - { - return type; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetType(Symbol newType, NotificationChain msgs) - { - Symbol oldType = type; - type = newType; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PARAMETER__TYPE, oldType, newType); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setType(Symbol newType) - { - if (newType != type) - { - NotificationChain msgs = null; - if (type != null) - msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PARAMETER__TYPE, null, msgs); - if (newType != null) - msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PARAMETER__TYPE, null, msgs); - msgs = basicSetType(newType, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PARAMETER__TYPE, newType, newType)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.PARAMETER__VARIABLE: - return basicSetVariable(null, msgs); - case SolverLanguagePackage.PARAMETER__TYPE: - return basicSetType(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.PARAMETER__VARIABLE: - return getVariable(); - case SolverLanguagePackage.PARAMETER__TYPE: - return getType(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.PARAMETER__VARIABLE: - setVariable((Variable)newValue); - return; - case SolverLanguagePackage.PARAMETER__TYPE: - setType((Symbol)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.PARAMETER__VARIABLE: - setVariable((Variable)null); - return; - case SolverLanguagePackage.PARAMETER__TYPE: - setType((Symbol)null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.PARAMETER__VARIABLE: - return variable != null; - case SolverLanguagePackage.PARAMETER__TYPE: - return type != null; - } - return super.eIsSet(featureID); - } - -} //ParameterImpl 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Partiality Symbol'. - * - * - * @generated - */ -public class PartialitySymbolImpl extends SymbolImpl implements PartialitySymbol -{ - /** - * - * - * @generated - */ - protected PartialitySymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.PARTIALITY_SYMBOL; - } - -} //PartialitySymbolImpl 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/PatternBodyImpl.java deleted file mode 100644 index 5cd03fbf..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PatternBodyImpl.java +++ /dev/null @@ -1,169 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import org.eclipse.viatra.solver.language.solverLanguage.Constraint; -import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Pattern Body'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.PatternBodyImpl#getConstraints Constraints}
    • - *
    - * - * @generated - */ -public class PatternBodyImpl extends MinimalEObjectImpl.Container implements PatternBody -{ - /** - * The cached value of the '{@link #getConstraints() Constraints}' containment reference list. - * - * - * @see #getConstraints() - * @generated - * @ordered - */ - protected EList constraints; - - /** - * - * - * @generated - */ - protected PatternBodyImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.PATTERN_BODY; - } - - /** - * - * - * @generated - */ - @Override - public EList getConstraints() - { - if (constraints == null) - { - constraints = new EObjectContainmentEList(Constraint.class, this, SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS); - } - return constraints; - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: - return ((InternalEList)getConstraints()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: - return getConstraints(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: - getConstraints().clear(); - getConstraints().addAll((Collection)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: - getConstraints().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.PATTERN_BODY__CONSTRAINTS: - return constraints != null && !constraints.isEmpty(); - } - return super.eIsSet(featureID); - } - -} //PatternBodyImpl 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/PolarityImpl.java deleted file mode 100644 index 7c2ae07d..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/PolarityImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.Polarity; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Polarity'. - * - * - * @generated - */ -public class PolarityImpl extends MinimalEObjectImpl.Container implements Polarity -{ - /** - * - * - * @generated - */ - protected PolarityImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.POLARITY; - } - -} //PolarityImpl 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.Positive; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Positive'. - * - * - * @generated - */ -public class PositiveImpl extends PolarityImpl implements Positive -{ - /** - * - * - * @generated - */ - protected PositiveImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.POSITIVE; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Predicate Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl#getHead Head}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl#getBody Body}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl#isFunctional Functional}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateDefinitionImpl#isError Error}
    • + *
    + * + * @generated + */ +public class PredicateDefinitionImpl extends StatementImpl implements PredicateDefinition +{ + /** + * The cached value of the '{@link #getHead() Head}' containment reference. + * + * + * @see #getHead() + * @generated + * @ordered + */ + protected Expression head; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * The default value of the '{@link #isFunctional() Functional}' attribute. + * + * + * @see #isFunctional() + * @generated + * @ordered + */ + protected static final boolean FUNCTIONAL_EDEFAULT = false; + + /** + * The cached value of the '{@link #isFunctional() Functional}' attribute. + * + * + * @see #isFunctional() + * @generated + * @ordered + */ + protected boolean functional = FUNCTIONAL_EDEFAULT; + + /** + * The default value of the '{@link #isError() Error}' attribute. + * + * + * @see #isError() + * @generated + * @ordered + */ + protected static final boolean ERROR_EDEFAULT = false; + + /** + * The cached value of the '{@link #isError() Error}' attribute. + * + * + * @see #isError() + * @generated + * @ordered + */ + protected boolean error = ERROR_EDEFAULT; + + /** + * + * + * @generated + */ + protected PredicateDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.PREDICATE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public Expression getHead() + { + return head; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetHead(Expression newHead, NotificationChain msgs) + { + Expression oldHead = head; + head = newHead; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__HEAD, oldHead, newHead); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setHead(Expression newHead) + { + if (newHead != head) + { + NotificationChain msgs = null; + if (head != null) + msgs = ((InternalEObject)head).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE_DEFINITION__HEAD, null, msgs); + if (newHead != null) + msgs = ((InternalEObject)newHead).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE_DEFINITION__HEAD, null, msgs); + msgs = basicSetHead(newHead, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__HEAD, newHead, newHead)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) + { + Expression oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(Expression newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE_DEFINITION__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE_DEFINITION__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public boolean isFunctional() + { + return functional; + } + + /** + * + * + * @generated + */ + @Override + public void setFunctional(boolean newFunctional) + { + boolean oldFunctional = functional; + functional = newFunctional; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL, oldFunctional, functional)); + } + + /** + * + * + * @generated + */ + @Override + public boolean isError() + { + return error; + } + + /** + * + * + * @generated + */ + @Override + public void setError(boolean newError) + { + boolean oldError = error; + error = newError; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE_DEFINITION__ERROR, oldError, error)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD: + return basicSetHead(null, msgs); + case SolverLanguagePackage.PREDICATE_DEFINITION__BODY: + return basicSetBody(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD: + return getHead(); + case SolverLanguagePackage.PREDICATE_DEFINITION__BODY: + return getBody(); + case SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL: + return isFunctional(); + case SolverLanguagePackage.PREDICATE_DEFINITION__ERROR: + return isError(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD: + setHead((Expression)newValue); + return; + case SolverLanguagePackage.PREDICATE_DEFINITION__BODY: + setBody((Expression)newValue); + return; + case SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL: + setFunctional((Boolean)newValue); + return; + case SolverLanguagePackage.PREDICATE_DEFINITION__ERROR: + setError((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD: + setHead((Expression)null); + return; + case SolverLanguagePackage.PREDICATE_DEFINITION__BODY: + setBody((Expression)null); + return; + case SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL: + setFunctional(FUNCTIONAL_EDEFAULT); + return; + case SolverLanguagePackage.PREDICATE_DEFINITION__ERROR: + setError(ERROR_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.PREDICATE_DEFINITION__HEAD: + return head != null; + case SolverLanguagePackage.PREDICATE_DEFINITION__BODY: + return body != null; + case SolverLanguagePackage.PREDICATE_DEFINITION__FUNCTIONAL: + return functional != FUNCTIONAL_EDEFAULT; + case SolverLanguagePackage.PREDICATE_DEFINITION__ERROR: + return error != ERROR_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (functional: "); + result.append(functional); + result.append(", error: "); + result.append(error); + result.append(')'); + return result.toString(); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import java.util.Collection; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - -import org.eclipse.emf.common.util.EList; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Parameter; -import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; -import org.eclipse.viatra.solver.language.solverLanguage.Predicate; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Predicate'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl#isIsError Is Error}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl#getSymbol Symbol}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl#getParameters Parameters}
    • - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.PredicateImpl#getBodies Bodies}
    • - *
    - * - * @generated - */ -public class PredicateImpl extends StatementImpl implements Predicate -{ - /** - * The default value of the '{@link #isIsError() Is Error}' attribute. - * - * - * @see #isIsError() - * @generated - * @ordered - */ - protected static final boolean IS_ERROR_EDEFAULT = false; - - /** - * The cached value of the '{@link #isIsError() Is Error}' attribute. - * - * - * @see #isIsError() - * @generated - * @ordered - */ - protected boolean isError = IS_ERROR_EDEFAULT; - - /** - * The cached value of the '{@link #getSymbol() Symbol}' containment reference. - * - * - * @see #getSymbol() - * @generated - * @ordered - */ - protected ModelSymbol symbol; - - /** - * The cached value of the '{@link #getParameters() Parameters}' containment reference list. - * - * - * @see #getParameters() - * @generated - * @ordered - */ - protected EList parameters; - - /** - * The cached value of the '{@link #getBodies() Bodies}' containment reference list. - * - * - * @see #getBodies() - * @generated - * @ordered - */ - protected EList bodies; - - /** - * - * - * @generated - */ - protected PredicateImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.PREDICATE; - } - - /** - * - * - * @generated - */ - @Override - public boolean isIsError() - { - return isError; - } - - /** - * - * - * @generated - */ - @Override - public void setIsError(boolean newIsError) - { - boolean oldIsError = isError; - isError = newIsError; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE__IS_ERROR, oldIsError, isError)); - } - - /** - * - * - * @generated - */ - @Override - public ModelSymbol getSymbol() - { - return symbol; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSymbol(ModelSymbol newSymbol, NotificationChain msgs) - { - ModelSymbol oldSymbol = symbol; - symbol = newSymbol; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE__SYMBOL, oldSymbol, newSymbol); - if (msgs == null) msgs = notification; else msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - @Override - public void setSymbol(ModelSymbol newSymbol) - { - if (newSymbol != symbol) - { - NotificationChain msgs = null; - if (symbol != null) - msgs = ((InternalEObject)symbol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE__SYMBOL, null, msgs); - if (newSymbol != null) - msgs = ((InternalEObject)newSymbol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.PREDICATE__SYMBOL, null, msgs); - msgs = basicSetSymbol(newSymbol, msgs); - if (msgs != null) msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.PREDICATE__SYMBOL, newSymbol, newSymbol)); - } - - /** - * - * - * @generated - */ - @Override - public EList getParameters() - { - if (parameters == null) - { - parameters = new EObjectContainmentEList(Parameter.class, this, SolverLanguagePackage.PREDICATE__PARAMETERS); - } - return parameters; - } - - /** - * - * - * @generated - */ - @Override - public EList getBodies() - { - if (bodies == null) - { - bodies = new EObjectContainmentEList(PatternBody.class, this, SolverLanguagePackage.PREDICATE__BODIES); - } - return bodies; - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SolverLanguagePackage.PREDICATE__SYMBOL: - return basicSetSymbol(null, msgs); - case SolverLanguagePackage.PREDICATE__PARAMETERS: - return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs); - case SolverLanguagePackage.PREDICATE__BODIES: - return ((InternalEList)getBodies()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.PREDICATE__IS_ERROR: - return isIsError(); - case SolverLanguagePackage.PREDICATE__SYMBOL: - return getSymbol(); - case SolverLanguagePackage.PREDICATE__PARAMETERS: - return getParameters(); - case SolverLanguagePackage.PREDICATE__BODIES: - return getBodies(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.PREDICATE__IS_ERROR: - setIsError((Boolean)newValue); - return; - case SolverLanguagePackage.PREDICATE__SYMBOL: - setSymbol((ModelSymbol)newValue); - return; - case SolverLanguagePackage.PREDICATE__PARAMETERS: - getParameters().clear(); - getParameters().addAll((Collection)newValue); - return; - case SolverLanguagePackage.PREDICATE__BODIES: - getBodies().clear(); - getBodies().addAll((Collection)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.PREDICATE__IS_ERROR: - setIsError(IS_ERROR_EDEFAULT); - return; - case SolverLanguagePackage.PREDICATE__SYMBOL: - setSymbol((ModelSymbol)null); - return; - case SolverLanguagePackage.PREDICATE__PARAMETERS: - getParameters().clear(); - return; - case SolverLanguagePackage.PREDICATE__BODIES: - getBodies().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.PREDICATE__IS_ERROR: - return isError != IS_ERROR_EDEFAULT; - case SolverLanguagePackage.PREDICATE__SYMBOL: - return symbol != null; - case SolverLanguagePackage.PREDICATE__PARAMETERS: - return parameters != null && !parameters.isEmpty(); - case SolverLanguagePackage.PREDICATE__BODIES: - return bodies != null && !bodies.isEmpty(); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (isError: "); - result.append(isError); - result.append(')'); - return result.toString(); - } - -} //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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage.impl; 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/RealObjectImpl.java deleted file mode 100644 index bc32a9a6..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/RealObjectImpl.java +++ /dev/null @@ -1,181 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import java.math.BigDecimal; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.RealObject; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Real Object'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.RealObjectImpl#getValue Value}
    • - *
    - * - * @generated - */ -public class RealObjectImpl extends DataObjectImpl implements RealObject -{ - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final BigDecimal VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected BigDecimal value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected RealObjectImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.REAL_OBJECT; - } - - /** - * - * - * @generated - */ - @Override - public BigDecimal getValue() - { - return value; - } - - /** - * - * - * @generated - */ - @Override - public void setValue(BigDecimal newValue) - { - BigDecimal oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.REAL_OBJECT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.REAL_OBJECT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.REAL_OBJECT__VALUE: - setValue((BigDecimal)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.REAL_OBJECT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.REAL_OBJECT__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //RealObjectImpl 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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Real Symbol'. - * - * - * @generated - */ -public class RealSymbolImpl extends DataSymbolImpl implements RealSymbol -{ - /** - * - * - * @generated - */ - protected RealSymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.REAL_SYMBOL; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; +import org.eclipse.viatra.solver.language.solverLanguage.Reference; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Reference'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ReferenceImpl#getReferred Referred}
    • + *
    + * + * @generated + */ +public class ReferenceImpl extends ExpressionImpl implements Reference +{ + /** + * The cached value of the '{@link #getReferred() Referred}' reference. + * + * + * @see #getReferred() + * @generated + * @ordered + */ + protected NamedElement referred; + + /** + * + * + * @generated + */ + protected ReferenceImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.REFERENCE; + } + + /** + * + * + * @generated + */ + @Override + public NamedElement getReferred() + { + if (referred != null && referred.eIsProxy()) + { + InternalEObject oldReferred = (InternalEObject)referred; + referred = (NamedElement)eResolveProxy(oldReferred); + if (referred != oldReferred) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.REFERENCE__REFERRED, oldReferred, referred)); + } + } + return referred; + } + + /** + * + * + * @generated + */ + public NamedElement basicGetReferred() + { + return referred; + } + + /** + * + * + * @generated + */ + @Override + public void setReferred(NamedElement newReferred) + { + NamedElement oldReferred = referred; + referred = newReferred; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.REFERENCE__REFERRED, oldReferred, referred)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.REFERENCE__REFERRED: + if (resolve) return getReferred(); + return basicGetReferred(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.REFERENCE__REFERRED: + setReferred((NamedElement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.REFERENCE__REFERRED: + setReferred((NamedElement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.REFERENCE__REFERRED: + return referred != null; + } + return super.eIsSet(featureID); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; - -/** - * - * An implementation of the model object 'Reflexive Closure'. - * - * - * @generated - */ -public class ReflexiveClosureImpl extends ClosureTypeImpl implements ReflexiveClosure -{ - /** - * - * - * @generated - */ - protected ReflexiveClosureImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.REFLEXIVE_CLOSURE; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; +import org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; + +/** + * + * An implementation of the model object 'Scope Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.ScopeDefinitionImpl#getType Type}
    • + *
    + * + * @generated + */ +public class ScopeDefinitionImpl extends StatementImpl implements ScopeDefinition +{ + /** + * The cached value of the '{@link #getType() Type}' reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected NamedElement type; + + /** + * + * + * @generated + */ + protected ScopeDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.SCOPE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public NamedElement getType() + { + if (type != null && type.eIsProxy()) + { + InternalEObject oldType = (InternalEObject)type; + type = (NamedElement)eResolveProxy(oldType); + if (type != oldType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.SCOPE_DEFINITION__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public NamedElement basicGetType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(NamedElement newType) + { + NamedElement oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.SCOPE_DEFINITION__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.SCOPE_DEFINITION__TYPE: + if (resolve) return getType(); + return basicGetType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.SCOPE_DEFINITION__TYPE: + setType((NamedElement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.SCOPE_DEFINITION__TYPE: + setType((NamedElement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.SCOPE_DEFINITION__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage.impl; import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; @@ -11,58 +12,7 @@ import org.eclipse.emf.ecore.impl.EFactoryImpl; import org.eclipse.emf.ecore.plugin.EcorePlugin; -import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; -import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; -import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue; -import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClosureType; -import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject; -import org.eclipse.viatra.solver.language.solverLanguage.Constraint; -import org.eclipse.viatra.solver.language.solverLanguage.DataObject; -import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.False; -import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IntObject; -import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure; -import org.eclipse.viatra.solver.language.solverLanguage.Literal; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Negative; -import org.eclipse.viatra.solver.language.solverLanguage.Parameter; -import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol; -import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; -import org.eclipse.viatra.solver.language.solverLanguage.Polarity; -import org.eclipse.viatra.solver.language.solverLanguage.Positive; -import org.eclipse.viatra.solver.language.solverLanguage.Predicate; -import org.eclipse.viatra.solver.language.solverLanguage.Problem; -import org.eclipse.viatra.solver.language.solverLanguage.RealObject; -import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguageFactory; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Statement; -import org.eclipse.viatra.solver.language.solverLanguage.StringObject; -import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; -import org.eclipse.viatra.solver.language.solverLanguage.True; -import org.eclipse.viatra.solver.language.solverLanguage.TruthValue; -import org.eclipse.viatra.solver.language.solverLanguage.Unknown; -import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Variable; +import org.eclipse.viatra.solver.language.solverLanguage.*; /** * @@ -118,61 +68,109 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan { case SolverLanguagePackage.PROBLEM: return createProblem(); case SolverLanguagePackage.STATEMENT: return createStatement(); - case SolverLanguagePackage.BOOLEAN_VALUE: return createBooleanValue(); - case SolverLanguagePackage.TRUTH_VALUE: return createTruthValue(); - case SolverLanguagePackage.INTERPRETATION: return createInterpretation(); - case SolverLanguagePackage.BASIC_INTERPRETATION: return createBasicInterpretation(); - case SolverLanguagePackage.SYMBOL: return createSymbol(); - case SolverLanguagePackage.MODEL_SYMBOL: return createModelSymbol(); - case SolverLanguagePackage.PARTIALITY_SYMBOL: return createPartialitySymbol(); - case SolverLanguagePackage.EXIST_SYMBOL: return createExistSymbol(); - case SolverLanguagePackage.EQUALS_SYMBOL: return createEqualsSymbol(); - case SolverLanguagePackage.DATA_SYMBOL: return createDataSymbol(); - case SolverLanguagePackage.BOOLEAN_SYMBOL: return createBooleanSymbol(); - case SolverLanguagePackage.INTEGER_SYMBOL: return createIntegerSymbol(); - case SolverLanguagePackage.REAL_SYMBOL: return createRealSymbol(); - case SolverLanguagePackage.STRING_SYMBOL: return createStringSymbol(); - case SolverLanguagePackage.COMPLEX_OBJECT: return createComplexObject(); - case SolverLanguagePackage.OBJECT: return createObject(); - case SolverLanguagePackage.NAMED_OBJECT: return createNamedObject(); - case SolverLanguagePackage.UNNAMED_OBJECT: return createUnnamedObject(); - case SolverLanguagePackage.DATA_OBJECT: return createDataObject(); - case SolverLanguagePackage.BOOLEAN_OBJECT: return createBooleanObject(); - case SolverLanguagePackage.INT_OBJECT: return createIntObject(); - case SolverLanguagePackage.REAL_OBJECT: return createRealObject(); - case SolverLanguagePackage.STRING_OBJECT: return createStringObject(); - case SolverLanguagePackage.PREDICATE: return createPredicate(); - case SolverLanguagePackage.PARAMETER: return createParameter(); - case SolverLanguagePackage.PATTERN_BODY: return createPatternBody(); - case SolverLanguagePackage.POLARITY: return createPolarity(); - case SolverLanguagePackage.CONSTRAINT: return createConstraint(); - case SolverLanguagePackage.CLOSURE_TYPE: return createClosureType(); + case SolverLanguagePackage.PREDICATE_DEFINITION: return createPredicateDefinition(); + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION: return createUnnamedErrorPrediateDefinition(); + case SolverLanguagePackage.DEFAULT_DEFINITION: return createDefaultDefinition(); + case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION: return createExternPredicateDefinition(); + case SolverLanguagePackage.METRIC_DEFINITION: return createMetricDefinition(); + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION: return createExternMetricDefinition(); + case SolverLanguagePackage.EXPRESSION: return createExpression(); + case SolverLanguagePackage.IF_ELSE: return createIfElse(); + case SolverLanguagePackage.CASE: return createCase(); + case SolverLanguagePackage.COUNT: return createCount(); + case SolverLanguagePackage.AGGREGATION: return createAggregation(); + case SolverLanguagePackage.CALL: return createCall(); + case SolverLanguagePackage.ARGUMENT_LIST: return createArgumentList(); + case SolverLanguagePackage.ARGUMENT: return createArgument(); + case SolverLanguagePackage.EXPRESSION_ARGUMENT: return createExpressionArgument(); + case SolverLanguagePackage.STAR_ARGUMENT: return createStarArgument(); + case SolverLanguagePackage.TYPED_ARGUMENT: return createTypedArgument(); + case SolverLanguagePackage.TYPED_STAR_ARGUMENT: return createTypedStarArgument(); + case SolverLanguagePackage.REFERENCE: return createReference(); + case SolverLanguagePackage.INTERVAL: return createInterval(); case SolverLanguagePackage.LITERAL: return createLiteral(); - case SolverLanguagePackage.VARIABLE: return createVariable(); - case SolverLanguagePackage.ALL_INSTANCES: return createAllInstances(); - case SolverLanguagePackage.ALL_OBJECTS: return createAllObjects(); - case SolverLanguagePackage.DEFAULT_INTERPRETATION: return createDefaultInterpretation(); - case SolverLanguagePackage.CD_INTERPRETATION: return createCDInterpretation(); - case SolverLanguagePackage.CLASS_INTERPRETATION: return createClassInterpretation(); - case SolverLanguagePackage.ENUM_INTERPRETATION: return createEnumInterpretation(); - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION: return createFieldRelationInterpretation(); - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION: return createGlobalRelationInterpretation(); - case SolverLanguagePackage.MULTIPLICITY_DEFINITION: return createMultiplicityDefinition(); - case SolverLanguagePackage.BOOLEAN_TRUE: return createBooleanTrue(); - case SolverLanguagePackage.BOOLEAN_FALSE: return createBooleanFalse(); - case SolverLanguagePackage.TRUE: return createTrue(); - case SolverLanguagePackage.FALSE: return createFalse(); - case SolverLanguagePackage.UNKNOWN: return createUnknown(); - case SolverLanguagePackage.ERROR: return createError(); - case SolverLanguagePackage.POSITIVE: return createPositive(); - case SolverLanguagePackage.NEGATIVE: return createNegative(); - case SolverLanguagePackage.REFLEXIVE_CLOSURE: return createReflexiveClosure(); - case SolverLanguagePackage.IRREFLEXIVE_CLOSURE: return createIrreflexiveClosure(); + case SolverLanguagePackage.LOGIC_LITERAL: return createLogicLiteral(); + case SolverLanguagePackage.NUMERIC_LITERAL: return createNumericLiteral(); + case SolverLanguagePackage.INFINITY_LITERAL: return createInfinityLiteral(); + case SolverLanguagePackage.EMPTY_INTERVAL_LITERAL: return createEmptyIntervalLiteral(); + case SolverLanguagePackage.STRING_LITERAL: return createStringLiteral(); + case SolverLanguagePackage.MEMBER_DEFINITION: return createMemberDefinition(); + case SolverLanguagePackage.MULTIPLICITY: return createMultiplicity(); + case SolverLanguagePackage.MANY_MULTIPLICITY: return createManyMultiplicity(); + case SolverLanguagePackage.EXACT_MULTIPLICITY: return createExactMultiplicity(); + case SolverLanguagePackage.BOUNDED_MULTIPLICITY: return createBoundedMultiplicity(); + case SolverLanguagePackage.SCOPE_DEFINITION: return createScopeDefinition(); + case SolverLanguagePackage.EXACT_SCOPE_DEFINITION: return createExactScopeDefinition(); + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION: return createBoundedScopeDefinition(); + case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION: return createLowerBoundedScopeDefinition(); + case SolverLanguagePackage.OBJECTIVE_DEFINITION: return createObjectiveDefinition(); + case SolverLanguagePackage.NAMED_ELEMENT: return createNamedElement(); + case SolverLanguagePackage.ASSERTION: return createAssertion(); + case SolverLanguagePackage.DISJUNCTION: return createDisjunction(); + case SolverLanguagePackage.SWITCH: return createSwitch(); + case SolverLanguagePackage.CONJUNCTION: return createConjunction(); + case SolverLanguagePackage.COMPARISON: return createComparison(); + case SolverLanguagePackage.BINARY_EXPRESSION: return createBinaryExpression(); + case SolverLanguagePackage.UNARY_EXPRESSION: return createUnaryExpression(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } } + /** + * + * + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) + { + switch (eDataType.getClassifierID()) + { + case SolverLanguagePackage.METRIC_TYPE: + return createMetricTypeFromString(eDataType, initialValue); + case SolverLanguagePackage.BINARY_OPERATOR: + return createBinaryOperatorFromString(eDataType, initialValue); + case SolverLanguagePackage.UNARY_OP: + return createUnaryOpFromString(eDataType, initialValue); + case SolverLanguagePackage.AGGREGATION_OP: + return createAggregationOpFromString(eDataType, initialValue); + case SolverLanguagePackage.LOGIC_VALUE: + return createLogicValueFromString(eDataType, initialValue); + case SolverLanguagePackage.OBJECTIVE_KIND: + return createObjectiveKindFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) + { + switch (eDataType.getClassifierID()) + { + case SolverLanguagePackage.METRIC_TYPE: + return convertMetricTypeToString(eDataType, instanceValue); + case SolverLanguagePackage.BINARY_OPERATOR: + return convertBinaryOperatorToString(eDataType, instanceValue); + case SolverLanguagePackage.UNARY_OP: + return convertUnaryOpToString(eDataType, instanceValue); + case SolverLanguagePackage.AGGREGATION_OP: + return convertAggregationOpToString(eDataType, instanceValue); + case SolverLanguagePackage.LOGIC_VALUE: + return convertLogicValueToString(eDataType, instanceValue); + case SolverLanguagePackage.OBJECTIVE_KIND: + return convertObjectiveKindToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + /** * * @@ -203,10 +201,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public BooleanValue createBooleanValue() + public PredicateDefinition createPredicateDefinition() { - BooleanValueImpl booleanValue = new BooleanValueImpl(); - return booleanValue; + PredicateDefinitionImpl predicateDefinition = new PredicateDefinitionImpl(); + return predicateDefinition; } /** @@ -215,10 +213,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public TruthValue createTruthValue() + public UnnamedErrorPrediateDefinition createUnnamedErrorPrediateDefinition() { - TruthValueImpl truthValue = new TruthValueImpl(); - return truthValue; + UnnamedErrorPrediateDefinitionImpl unnamedErrorPrediateDefinition = new UnnamedErrorPrediateDefinitionImpl(); + return unnamedErrorPrediateDefinition; } /** @@ -227,10 +225,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public Interpretation createInterpretation() + public DefaultDefinition createDefaultDefinition() { - InterpretationImpl interpretation = new InterpretationImpl(); - return interpretation; + DefaultDefinitionImpl defaultDefinition = new DefaultDefinitionImpl(); + return defaultDefinition; } /** @@ -239,10 +237,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public BasicInterpretation createBasicInterpretation() + public ExternPredicateDefinition createExternPredicateDefinition() { - BasicInterpretationImpl basicInterpretation = new BasicInterpretationImpl(); - return basicInterpretation; + ExternPredicateDefinitionImpl externPredicateDefinition = new ExternPredicateDefinitionImpl(); + return externPredicateDefinition; } /** @@ -251,10 +249,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public Symbol createSymbol() + public MetricDefinition createMetricDefinition() { - SymbolImpl symbol = new SymbolImpl(); - return symbol; + MetricDefinitionImpl metricDefinition = new MetricDefinitionImpl(); + return metricDefinition; } /** @@ -263,10 +261,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public ModelSymbol createModelSymbol() + public ExternMetricDefinition createExternMetricDefinition() { - ModelSymbolImpl modelSymbol = new ModelSymbolImpl(); - return modelSymbol; + ExternMetricDefinitionImpl externMetricDefinition = new ExternMetricDefinitionImpl(); + return externMetricDefinition; } /** @@ -275,10 +273,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public PartialitySymbol createPartialitySymbol() + public Expression createExpression() { - PartialitySymbolImpl partialitySymbol = new PartialitySymbolImpl(); - return partialitySymbol; + ExpressionImpl expression = new ExpressionImpl(); + return expression; } /** @@ -287,10 +285,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public ExistSymbol createExistSymbol() + public IfElse createIfElse() { - ExistSymbolImpl existSymbol = new ExistSymbolImpl(); - return existSymbol; + IfElseImpl ifElse = new IfElseImpl(); + return ifElse; } /** @@ -299,10 +297,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public EqualsSymbol createEqualsSymbol() + public Case createCase() { - EqualsSymbolImpl equalsSymbol = new EqualsSymbolImpl(); - return equalsSymbol; + CaseImpl case_ = new CaseImpl(); + return case_; } /** @@ -311,10 +309,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public DataSymbol createDataSymbol() + public Count createCount() { - DataSymbolImpl dataSymbol = new DataSymbolImpl(); - return dataSymbol; + CountImpl count = new CountImpl(); + return count; } /** @@ -323,10 +321,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public BooleanSymbol createBooleanSymbol() + public Aggregation createAggregation() { - BooleanSymbolImpl booleanSymbol = new BooleanSymbolImpl(); - return booleanSymbol; + AggregationImpl aggregation = new AggregationImpl(); + return aggregation; } /** @@ -335,10 +333,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public IntegerSymbol createIntegerSymbol() + public Call createCall() { - IntegerSymbolImpl integerSymbol = new IntegerSymbolImpl(); - return integerSymbol; + CallImpl call = new CallImpl(); + return call; } /** @@ -347,10 +345,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public RealSymbol createRealSymbol() + public ArgumentList createArgumentList() { - RealSymbolImpl realSymbol = new RealSymbolImpl(); - return realSymbol; + ArgumentListImpl argumentList = new ArgumentListImpl(); + return argumentList; } /** @@ -359,10 +357,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public StringSymbol createStringSymbol() + public Argument createArgument() { - StringSymbolImpl stringSymbol = new StringSymbolImpl(); - return stringSymbol; + ArgumentImpl argument = new ArgumentImpl(); + return argument; } /** @@ -371,10 +369,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public ComplexObject createComplexObject() + public ExpressionArgument createExpressionArgument() { - ComplexObjectImpl complexObject = new ComplexObjectImpl(); - return complexObject; + ExpressionArgumentImpl expressionArgument = new ExpressionArgumentImpl(); + return expressionArgument; } /** @@ -383,10 +381,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public org.eclipse.viatra.solver.language.solverLanguage.Object createObject() + public StarArgument createStarArgument() { - ObjectImpl object = new ObjectImpl(); - return object; + StarArgumentImpl starArgument = new StarArgumentImpl(); + return starArgument; } /** @@ -395,10 +393,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public NamedObject createNamedObject() + public TypedArgument createTypedArgument() { - NamedObjectImpl namedObject = new NamedObjectImpl(); - return namedObject; + TypedArgumentImpl typedArgument = new TypedArgumentImpl(); + return typedArgument; } /** @@ -407,10 +405,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public UnnamedObject createUnnamedObject() + public TypedStarArgument createTypedStarArgument() { - UnnamedObjectImpl unnamedObject = new UnnamedObjectImpl(); - return unnamedObject; + TypedStarArgumentImpl typedStarArgument = new TypedStarArgumentImpl(); + return typedStarArgument; } /** @@ -419,10 +417,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public DataObject createDataObject() + public Reference createReference() { - DataObjectImpl dataObject = new DataObjectImpl(); - return dataObject; + ReferenceImpl reference = new ReferenceImpl(); + return reference; } /** @@ -431,10 +429,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public BooleanObject createBooleanObject() + public Interval createInterval() { - BooleanObjectImpl booleanObject = new BooleanObjectImpl(); - return booleanObject; + IntervalImpl interval = new IntervalImpl(); + return interval; } /** @@ -443,10 +441,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public IntObject createIntObject() + public Literal createLiteral() { - IntObjectImpl intObject = new IntObjectImpl(); - return intObject; + LiteralImpl literal = new LiteralImpl(); + return literal; } /** @@ -455,10 +453,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public RealObject createRealObject() + public LogicLiteral createLogicLiteral() { - RealObjectImpl realObject = new RealObjectImpl(); - return realObject; + LogicLiteralImpl logicLiteral = new LogicLiteralImpl(); + return logicLiteral; } /** @@ -467,10 +465,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public StringObject createStringObject() + public NumericLiteral createNumericLiteral() { - StringObjectImpl stringObject = new StringObjectImpl(); - return stringObject; + NumericLiteralImpl numericLiteral = new NumericLiteralImpl(); + return numericLiteral; } /** @@ -479,10 +477,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public Predicate createPredicate() + public InfinityLiteral createInfinityLiteral() { - PredicateImpl predicate = new PredicateImpl(); - return predicate; + InfinityLiteralImpl infinityLiteral = new InfinityLiteralImpl(); + return infinityLiteral; } /** @@ -491,10 +489,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public Parameter createParameter() + public EmptyIntervalLiteral createEmptyIntervalLiteral() { - ParameterImpl parameter = new ParameterImpl(); - return parameter; + EmptyIntervalLiteralImpl emptyIntervalLiteral = new EmptyIntervalLiteralImpl(); + return emptyIntervalLiteral; } /** @@ -503,10 +501,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public PatternBody createPatternBody() + public StringLiteral createStringLiteral() { - PatternBodyImpl patternBody = new PatternBodyImpl(); - return patternBody; + StringLiteralImpl stringLiteral = new StringLiteralImpl(); + return stringLiteral; } /** @@ -515,10 +513,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public Polarity createPolarity() + public MemberDefinition createMemberDefinition() { - PolarityImpl polarity = new PolarityImpl(); - return polarity; + MemberDefinitionImpl memberDefinition = new MemberDefinitionImpl(); + return memberDefinition; } /** @@ -527,10 +525,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public Constraint createConstraint() + public Multiplicity createMultiplicity() { - ConstraintImpl constraint = new ConstraintImpl(); - return constraint; + MultiplicityImpl multiplicity = new MultiplicityImpl(); + return multiplicity; } /** @@ -539,10 +537,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public ClosureType createClosureType() + public ManyMultiplicity createManyMultiplicity() { - ClosureTypeImpl closureType = new ClosureTypeImpl(); - return closureType; + ManyMultiplicityImpl manyMultiplicity = new ManyMultiplicityImpl(); + return manyMultiplicity; } /** @@ -551,10 +549,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public Literal createLiteral() + public ExactMultiplicity createExactMultiplicity() { - LiteralImpl literal = new LiteralImpl(); - return literal; + ExactMultiplicityImpl exactMultiplicity = new ExactMultiplicityImpl(); + return exactMultiplicity; } /** @@ -563,10 +561,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public Variable createVariable() + public BoundedMultiplicity createBoundedMultiplicity() { - VariableImpl variable = new VariableImpl(); - return variable; + BoundedMultiplicityImpl boundedMultiplicity = new BoundedMultiplicityImpl(); + return boundedMultiplicity; } /** @@ -575,10 +573,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public AllInstances createAllInstances() + public ScopeDefinition createScopeDefinition() { - AllInstancesImpl allInstances = new AllInstancesImpl(); - return allInstances; + ScopeDefinitionImpl scopeDefinition = new ScopeDefinitionImpl(); + return scopeDefinition; } /** @@ -587,10 +585,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public AllObjects createAllObjects() + public ExactScopeDefinition createExactScopeDefinition() { - AllObjectsImpl allObjects = new AllObjectsImpl(); - return allObjects; + ExactScopeDefinitionImpl exactScopeDefinition = new ExactScopeDefinitionImpl(); + return exactScopeDefinition; } /** @@ -599,10 +597,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public DefaultInterpretation createDefaultInterpretation() + public BoundedScopeDefinition createBoundedScopeDefinition() { - DefaultInterpretationImpl defaultInterpretation = new DefaultInterpretationImpl(); - return defaultInterpretation; + BoundedScopeDefinitionImpl boundedScopeDefinition = new BoundedScopeDefinitionImpl(); + return boundedScopeDefinition; } /** @@ -611,10 +609,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public CDInterpretation createCDInterpretation() + public LowerBoundedScopeDefinition createLowerBoundedScopeDefinition() { - CDInterpretationImpl cdInterpretation = new CDInterpretationImpl(); - return cdInterpretation; + LowerBoundedScopeDefinitionImpl lowerBoundedScopeDefinition = new LowerBoundedScopeDefinitionImpl(); + return lowerBoundedScopeDefinition; } /** @@ -623,10 +621,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public ClassInterpretation createClassInterpretation() + public ObjectiveDefinition createObjectiveDefinition() { - ClassInterpretationImpl classInterpretation = new ClassInterpretationImpl(); - return classInterpretation; + ObjectiveDefinitionImpl objectiveDefinition = new ObjectiveDefinitionImpl(); + return objectiveDefinition; } /** @@ -635,10 +633,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public EnumInterpretation createEnumInterpretation() + public NamedElement createNamedElement() { - EnumInterpretationImpl enumInterpretation = new EnumInterpretationImpl(); - return enumInterpretation; + NamedElementImpl namedElement = new NamedElementImpl(); + return namedElement; } /** @@ -647,10 +645,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public FieldRelationInterpretation createFieldRelationInterpretation() + public Assertion createAssertion() { - FieldRelationInterpretationImpl fieldRelationInterpretation = new FieldRelationInterpretationImpl(); - return fieldRelationInterpretation; + AssertionImpl assertion = new AssertionImpl(); + return assertion; } /** @@ -659,10 +657,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public GlobalRelationInterpretation createGlobalRelationInterpretation() + public Disjunction createDisjunction() { - GlobalRelationInterpretationImpl globalRelationInterpretation = new GlobalRelationInterpretationImpl(); - return globalRelationInterpretation; + DisjunctionImpl disjunction = new DisjunctionImpl(); + return disjunction; } /** @@ -671,10 +669,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public MultiplicityDefinition createMultiplicityDefinition() + public Switch createSwitch() { - MultiplicityDefinitionImpl multiplicityDefinition = new MultiplicityDefinitionImpl(); - return multiplicityDefinition; + SwitchImpl switch_ = new SwitchImpl(); + return switch_; } /** @@ -683,10 +681,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public BooleanTrue createBooleanTrue() + public Conjunction createConjunction() { - BooleanTrueImpl booleanTrue = new BooleanTrueImpl(); - return booleanTrue; + ConjunctionImpl conjunction = new ConjunctionImpl(); + return conjunction; } /** @@ -695,10 +693,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public BooleanFalse createBooleanFalse() + public Comparison createComparison() { - BooleanFalseImpl booleanFalse = new BooleanFalseImpl(); - return booleanFalse; + ComparisonImpl comparison = new ComparisonImpl(); + return comparison; } /** @@ -707,10 +705,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public True createTrue() + public BinaryExpression createBinaryExpression() { - TrueImpl true_ = new TrueImpl(); - return true_; + BinaryExpressionImpl binaryExpression = new BinaryExpressionImpl(); + return binaryExpression; } /** @@ -719,10 +717,10 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * @generated */ @Override - public False createFalse() + public UnaryExpression createUnaryExpression() { - FalseImpl false_ = new FalseImpl(); - return false_; + UnaryExpressionImpl unaryExpression = new UnaryExpressionImpl(); + return unaryExpression; } /** @@ -730,11 +728,11 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * * @generated */ - @Override - public Unknown createUnknown() + public MetricType createMetricTypeFromString(EDataType eDataType, String initialValue) { - UnknownImpl unknown = new UnknownImpl(); - return unknown; + MetricType result = MetricType.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; } /** @@ -742,11 +740,9 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * * @generated */ - @Override - public org.eclipse.viatra.solver.language.solverLanguage.Error createError() + public String convertMetricTypeToString(EDataType eDataType, Object instanceValue) { - ErrorImpl error = new ErrorImpl(); - return error; + return instanceValue == null ? null : instanceValue.toString(); } /** @@ -754,11 +750,11 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * * @generated */ - @Override - public Positive createPositive() + public BinaryOperator createBinaryOperatorFromString(EDataType eDataType, String initialValue) { - PositiveImpl positive = new PositiveImpl(); - return positive; + BinaryOperator result = BinaryOperator.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; } /** @@ -766,11 +762,9 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * * @generated */ - @Override - public Negative createNegative() + public String convertBinaryOperatorToString(EDataType eDataType, Object instanceValue) { - NegativeImpl negative = new NegativeImpl(); - return negative; + return instanceValue == null ? null : instanceValue.toString(); } /** @@ -778,11 +772,11 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * * @generated */ - @Override - public ReflexiveClosure createReflexiveClosure() + public UnaryOp createUnaryOpFromString(EDataType eDataType, String initialValue) { - ReflexiveClosureImpl reflexiveClosure = new ReflexiveClosureImpl(); - return reflexiveClosure; + UnaryOp result = UnaryOp.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; } /** @@ -790,11 +784,75 @@ public class SolverLanguageFactoryImpl extends EFactoryImpl implements SolverLan * * @generated */ - @Override - public IrreflexiveClosure createIrreflexiveClosure() + public String convertUnaryOpToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public AggregationOp createAggregationOpFromString(EDataType eDataType, String initialValue) + { + AggregationOp result = AggregationOp.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertAggregationOpToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public LogicValue createLogicValueFromString(EDataType eDataType, String initialValue) + { + LogicValue result = LogicValue.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertLogicValueToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ObjectiveKind createObjectiveKindFromString(EDataType eDataType, String initialValue) + { + ObjectiveKind result = ObjectiveKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertObjectiveKindToString(EDataType eDataType, Object instanceValue) { - IrreflexiveClosureImpl irreflexiveClosure = new IrreflexiveClosureImpl(); - return irreflexiveClosure; + return instanceValue == null ? null : instanceValue.toString(); } /** diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java index f617be3f..393a2545 100644 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/SolverLanguagePackageImpl.java @@ -1,67 +1,70 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage.impl; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; -import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; -import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; -import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue; -import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClosureType; -import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject; -import org.eclipse.viatra.solver.language.solverLanguage.Constraint; -import org.eclipse.viatra.solver.language.solverLanguage.DataObject; -import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.False; -import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IntObject; -import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure; +import org.eclipse.viatra.solver.language.solverLanguage.Aggregation; +import org.eclipse.viatra.solver.language.solverLanguage.AggregationOp; +import org.eclipse.viatra.solver.language.solverLanguage.Argument; +import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList; +import org.eclipse.viatra.solver.language.solverLanguage.Assertion; +import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression; +import org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator; +import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Call; +import org.eclipse.viatra.solver.language.solverLanguage.Case; +import org.eclipse.viatra.solver.language.solverLanguage.Comparison; +import org.eclipse.viatra.solver.language.solverLanguage.Conjunction; +import org.eclipse.viatra.solver.language.solverLanguage.Count; +import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Disjunction; +import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument; +import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.IfElse; +import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.Interval; import org.eclipse.viatra.solver.language.solverLanguage.Literal; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Negative; -import org.eclipse.viatra.solver.language.solverLanguage.Parameter; -import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol; -import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; -import org.eclipse.viatra.solver.language.solverLanguage.Polarity; -import org.eclipse.viatra.solver.language.solverLanguage.Positive; -import org.eclipse.viatra.solver.language.solverLanguage.Predicate; +import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.LogicValue; +import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.MetricType; +import org.eclipse.viatra.solver.language.solverLanguage.Multiplicity; +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; +import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind; +import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Problem; -import org.eclipse.viatra.solver.language.solverLanguage.RealObject; -import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure; +import org.eclipse.viatra.solver.language.solverLanguage.Reference; +import org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguageFactory; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; +import org.eclipse.viatra.solver.language.solverLanguage.StarArgument; import org.eclipse.viatra.solver.language.solverLanguage.Statement; -import org.eclipse.viatra.solver.language.solverLanguage.StringObject; -import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; -import org.eclipse.viatra.solver.language.solverLanguage.True; -import org.eclipse.viatra.solver.language.solverLanguage.TruthValue; -import org.eclipse.viatra.solver.language.solverLanguage.Unknown; -import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Variable; +import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral; +import org.eclipse.viatra.solver.language.solverLanguage.Switch; +import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument; +import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument; +import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression; +import org.eclipse.viatra.solver.language.solverLanguage.UnaryOp; +import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition; /** * @@ -90,350 +93,350 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * * @generated */ - private EClass booleanValueEClass = null; + private EClass predicateDefinitionEClass = null; /** * * * @generated */ - private EClass truthValueEClass = null; + private EClass unnamedErrorPrediateDefinitionEClass = null; /** * * * @generated */ - private EClass interpretationEClass = null; + private EClass defaultDefinitionEClass = null; /** * * * @generated */ - private EClass basicInterpretationEClass = null; + private EClass externPredicateDefinitionEClass = null; /** * * * @generated */ - private EClass symbolEClass = null; + private EClass metricDefinitionEClass = null; /** * * * @generated */ - private EClass modelSymbolEClass = null; + private EClass externMetricDefinitionEClass = null; /** * * * @generated */ - private EClass partialitySymbolEClass = null; + private EClass expressionEClass = null; /** * * * @generated */ - private EClass existSymbolEClass = null; + private EClass ifElseEClass = null; /** * * * @generated */ - private EClass equalsSymbolEClass = null; + private EClass caseEClass = null; /** * * * @generated */ - private EClass dataSymbolEClass = null; + private EClass countEClass = null; /** * * * @generated */ - private EClass booleanSymbolEClass = null; + private EClass aggregationEClass = null; /** * * * @generated */ - private EClass integerSymbolEClass = null; + private EClass callEClass = null; /** * * * @generated */ - private EClass realSymbolEClass = null; + private EClass argumentListEClass = null; /** * * * @generated */ - private EClass stringSymbolEClass = null; + private EClass argumentEClass = null; /** * * * @generated */ - private EClass complexObjectEClass = null; + private EClass expressionArgumentEClass = null; /** * * * @generated */ - private EClass objectEClass = null; + private EClass starArgumentEClass = null; /** * * * @generated */ - private EClass namedObjectEClass = null; + private EClass typedArgumentEClass = null; /** * * * @generated */ - private EClass unnamedObjectEClass = null; + private EClass typedStarArgumentEClass = null; /** * * * @generated */ - private EClass dataObjectEClass = null; + private EClass referenceEClass = null; /** * * * @generated */ - private EClass booleanObjectEClass = null; + private EClass intervalEClass = null; /** * * * @generated */ - private EClass intObjectEClass = null; + private EClass literalEClass = null; /** * * * @generated */ - private EClass realObjectEClass = null; + private EClass logicLiteralEClass = null; /** * * * @generated */ - private EClass stringObjectEClass = null; + private EClass numericLiteralEClass = null; /** * * * @generated */ - private EClass predicateEClass = null; + private EClass infinityLiteralEClass = null; /** * * * @generated */ - private EClass parameterEClass = null; + private EClass emptyIntervalLiteralEClass = null; /** * * * @generated */ - private EClass patternBodyEClass = null; + private EClass stringLiteralEClass = null; /** * * * @generated */ - private EClass polarityEClass = null; + private EClass memberDefinitionEClass = null; /** * * * @generated */ - private EClass constraintEClass = null; + private EClass multiplicityEClass = null; /** * * * @generated */ - private EClass closureTypeEClass = null; + private EClass manyMultiplicityEClass = null; /** * * * @generated */ - private EClass literalEClass = null; + private EClass exactMultiplicityEClass = null; /** * * * @generated */ - private EClass variableEClass = null; + private EClass boundedMultiplicityEClass = null; /** * * * @generated */ - private EClass allInstancesEClass = null; + private EClass scopeDefinitionEClass = null; /** * * * @generated */ - private EClass allObjectsEClass = null; + private EClass exactScopeDefinitionEClass = null; /** * * * @generated */ - private EClass defaultInterpretationEClass = null; + private EClass boundedScopeDefinitionEClass = null; /** * * * @generated */ - private EClass cdInterpretationEClass = null; + private EClass lowerBoundedScopeDefinitionEClass = null; /** * * * @generated */ - private EClass classInterpretationEClass = null; + private EClass objectiveDefinitionEClass = null; /** * * * @generated */ - private EClass enumInterpretationEClass = null; + private EClass namedElementEClass = null; /** * * * @generated */ - private EClass fieldRelationInterpretationEClass = null; + private EClass assertionEClass = null; /** * * * @generated */ - private EClass globalRelationInterpretationEClass = null; + private EClass disjunctionEClass = null; /** * * * @generated */ - private EClass multiplicityDefinitionEClass = null; + private EClass switchEClass = null; /** * * * @generated */ - private EClass booleanTrueEClass = null; + private EClass conjunctionEClass = null; /** * * * @generated */ - private EClass booleanFalseEClass = null; + private EClass comparisonEClass = null; /** * * * @generated */ - private EClass trueEClass = null; + private EClass binaryExpressionEClass = null; /** * * * @generated */ - private EClass falseEClass = null; + private EClass unaryExpressionEClass = null; /** * * * @generated */ - private EClass unknownEClass = null; + private EEnum metricTypeEEnum = null; /** * * * @generated */ - private EClass errorEClass = null; + private EEnum binaryOperatorEEnum = null; /** * * * @generated */ - private EClass positiveEClass = null; + private EEnum unaryOpEEnum = null; /** * * * @generated */ - private EClass negativeEClass = null; + private EEnum aggregationOpEEnum = null; /** * * * @generated */ - private EClass reflexiveClosureEClass = null; + private EEnum logicValueEEnum = null; /** * * * @generated */ - private EClass irreflexiveClosureEClass = null; + private EEnum objectiveKindEEnum = null; /** * Creates an instance of the model Package, registered with @@ -537,9 +540,108 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanValue() + public EAttribute getStatement_Abstract() + { + return (EAttribute)statementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getStatement_Name() + { + return (EAttribute)statementEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStatement_Superclasses() + { + return (EReference)statementEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStatement_Members() + { + return (EReference)statementEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPredicateDefinition() + { + return predicateDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPredicateDefinition_Head() + { + return (EReference)predicateDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getPredicateDefinition_Body() + { + return (EReference)predicateDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getPredicateDefinition_Functional() + { + return (EAttribute)predicateDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getPredicateDefinition_Error() + { + return (EAttribute)predicateDefinitionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getUnnamedErrorPrediateDefinition() { - return booleanValueEClass; + return unnamedErrorPrediateDefinitionEClass; } /** @@ -548,9 +650,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getTruthValue() + public EReference getUnnamedErrorPrediateDefinition_ArgumentList() { - return truthValueEClass; + return (EReference)unnamedErrorPrediateDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -559,9 +661,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getInterpretation() + public EReference getUnnamedErrorPrediateDefinition_Body() { - return interpretationEClass; + return (EReference)unnamedErrorPrediateDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -570,9 +672,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBasicInterpretation() + public EClass getDefaultDefinition() { - return basicInterpretationEClass; + return defaultDefinitionEClass; } /** @@ -581,9 +683,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getBasicInterpretation_Symbol() + public EReference getDefaultDefinition_Head() { - return (EReference)basicInterpretationEClass.getEStructuralFeatures().get(0); + return (EReference)defaultDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -592,9 +694,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getBasicInterpretation_Objects() + public EReference getDefaultDefinition_Range() { - return (EReference)basicInterpretationEClass.getEStructuralFeatures().get(1); + return (EReference)defaultDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -603,9 +705,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getBasicInterpretation_Value() + public EClass getExternPredicateDefinition() { - return (EReference)basicInterpretationEClass.getEStructuralFeatures().get(2); + return externPredicateDefinitionEClass; } /** @@ -614,9 +716,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getSymbol() + public EReference getExternPredicateDefinition_Head() { - return symbolEClass; + return (EReference)externPredicateDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -625,9 +727,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getModelSymbol() + public EClass getMetricDefinition() { - return modelSymbolEClass; + return metricDefinitionEClass; } /** @@ -636,9 +738,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getModelSymbol_Name() + public EReference getMetricDefinition_Head() { - return (EAttribute)modelSymbolEClass.getEStructuralFeatures().get(0); + return (EReference)metricDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -647,9 +749,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPartialitySymbol() + public EReference getMetricDefinition_Body() { - return partialitySymbolEClass; + return (EReference)metricDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -658,9 +760,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getExistSymbol() + public EAttribute getMetricDefinition_Type() { - return existSymbolEClass; + return (EAttribute)metricDefinitionEClass.getEStructuralFeatures().get(2); } /** @@ -669,9 +771,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getEqualsSymbol() + public EClass getExternMetricDefinition() { - return equalsSymbolEClass; + return externMetricDefinitionEClass; } /** @@ -680,9 +782,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getDataSymbol() + public EAttribute getExternMetricDefinition_Type() { - return dataSymbolEClass; + return (EAttribute)externMetricDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -691,9 +793,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanSymbol() + public EReference getExternMetricDefinition_Head() { - return booleanSymbolEClass; + return (EReference)externMetricDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -702,9 +804,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getIntegerSymbol() + public EClass getExpression() { - return integerSymbolEClass; + return expressionEClass; } /** @@ -713,9 +815,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getRealSymbol() + public EClass getIfElse() { - return realSymbolEClass; + return ifElseEClass; } /** @@ -724,9 +826,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getStringSymbol() + public EReference getIfElse_Condition() { - return stringSymbolEClass; + return (EReference)ifElseEClass.getEStructuralFeatures().get(0); } /** @@ -735,9 +837,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getComplexObject() + public EReference getIfElse_Then() { - return complexObjectEClass; + return (EReference)ifElseEClass.getEStructuralFeatures().get(1); } /** @@ -746,9 +848,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getObject() + public EReference getIfElse_Else() { - return objectEClass; + return (EReference)ifElseEClass.getEStructuralFeatures().get(2); } /** @@ -757,9 +859,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getNamedObject() + public EClass getCase() { - return namedObjectEClass; + return caseEClass; } /** @@ -768,9 +870,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getNamedObject_Name() + public EReference getCase_Condition() { - return (EAttribute)namedObjectEClass.getEStructuralFeatures().get(0); + return (EReference)caseEClass.getEStructuralFeatures().get(0); } /** @@ -779,9 +881,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getUnnamedObject() + public EReference getCase_Body() { - return unnamedObjectEClass; + return (EReference)caseEClass.getEStructuralFeatures().get(1); } /** @@ -790,9 +892,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getUnnamedObject_Name() + public EClass getCount() { - return (EAttribute)unnamedObjectEClass.getEStructuralFeatures().get(0); + return countEClass; } /** @@ -801,9 +903,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getDataObject() + public EReference getCount_Body() { - return dataObjectEClass; + return (EReference)countEClass.getEStructuralFeatures().get(0); } /** @@ -812,9 +914,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanObject() + public EClass getAggregation() { - return booleanObjectEClass; + return aggregationEClass; } /** @@ -823,9 +925,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getBooleanObject_Value() + public EAttribute getAggregation_Op() { - return (EReference)booleanObjectEClass.getEStructuralFeatures().get(0); + return (EAttribute)aggregationEClass.getEStructuralFeatures().get(0); } /** @@ -834,9 +936,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getIntObject() + public EReference getAggregation_Body() { - return intObjectEClass; + return (EReference)aggregationEClass.getEStructuralFeatures().get(1); } /** @@ -845,9 +947,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getIntObject_Value() + public EReference getAggregation_Condition() { - return (EAttribute)intObjectEClass.getEStructuralFeatures().get(0); + return (EReference)aggregationEClass.getEStructuralFeatures().get(2); } /** @@ -856,9 +958,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getRealObject() + public EClass getCall() { - return realObjectEClass; + return callEClass; } /** @@ -867,9 +969,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getRealObject_Value() + public EReference getCall_Functor() { - return (EAttribute)realObjectEClass.getEStructuralFeatures().get(0); + return (EReference)callEClass.getEStructuralFeatures().get(0); } /** @@ -878,9 +980,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getStringObject() + public EReference getCall_ArgumentList() { - return stringObjectEClass; + return (EReference)callEClass.getEStructuralFeatures().get(1); } /** @@ -889,9 +991,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getStringObject_Value() + public EAttribute getCall_TransitiveClosure() { - return (EAttribute)stringObjectEClass.getEStructuralFeatures().get(0); + return (EAttribute)callEClass.getEStructuralFeatures().get(2); } /** @@ -900,9 +1002,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPredicate() + public EAttribute getCall_ReflexiveTransitiveClosure() { - return predicateEClass; + return (EAttribute)callEClass.getEStructuralFeatures().get(3); } /** @@ -911,9 +1013,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getPredicate_IsError() + public EClass getArgumentList() { - return (EAttribute)predicateEClass.getEStructuralFeatures().get(0); + return argumentListEClass; } /** @@ -922,9 +1024,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getPredicate_Symbol() + public EReference getArgumentList_Arguments() { - return (EReference)predicateEClass.getEStructuralFeatures().get(1); + return (EReference)argumentListEClass.getEStructuralFeatures().get(0); } /** @@ -933,9 +1035,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getPredicate_Parameters() + public EClass getArgument() { - return (EReference)predicateEClass.getEStructuralFeatures().get(2); + return argumentEClass; } /** @@ -944,9 +1046,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getPredicate_Bodies() + public EClass getExpressionArgument() { - return (EReference)predicateEClass.getEStructuralFeatures().get(3); + return expressionArgumentEClass; } /** @@ -955,9 +1057,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getParameter() + public EReference getExpressionArgument_Body() { - return parameterEClass; + return (EReference)expressionArgumentEClass.getEStructuralFeatures().get(0); } /** @@ -966,9 +1068,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getParameter_Variable() + public EClass getStarArgument() { - return (EReference)parameterEClass.getEStructuralFeatures().get(0); + return starArgumentEClass; } /** @@ -977,9 +1079,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getParameter_Type() + public EClass getTypedArgument() { - return (EReference)parameterEClass.getEStructuralFeatures().get(1); + return typedArgumentEClass; } /** @@ -988,9 +1090,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPatternBody() + public EReference getTypedArgument_Type() { - return patternBodyEClass; + return (EReference)typedArgumentEClass.getEStructuralFeatures().get(0); } /** @@ -999,9 +1101,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getPatternBody_Constraints() + public EReference getTypedArgument_Variable() { - return (EReference)patternBodyEClass.getEStructuralFeatures().get(0); + return (EReference)typedArgumentEClass.getEStructuralFeatures().get(1); } /** @@ -1010,9 +1112,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPolarity() + public EClass getTypedStarArgument() { - return polarityEClass; + return typedStarArgumentEClass; } /** @@ -1021,9 +1123,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getConstraint() + public EReference getTypedStarArgument_Type() { - return constraintEClass; + return (EReference)typedStarArgumentEClass.getEStructuralFeatures().get(0); } /** @@ -1032,9 +1134,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getConstraint_Polarity() + public EClass getReference() { - return (EReference)constraintEClass.getEStructuralFeatures().get(0); + return referenceEClass; } /** @@ -1043,9 +1145,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getConstraint_Symbol() + public EReference getReference_Referred() { - return (EReference)constraintEClass.getEStructuralFeatures().get(1); + return (EReference)referenceEClass.getEStructuralFeatures().get(0); } /** @@ -1054,9 +1156,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getConstraint_Params() + public EClass getInterval() { - return (EReference)constraintEClass.getEStructuralFeatures().get(2); + return intervalEClass; } /** @@ -1065,9 +1167,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getConstraint_ClosureType() + public EReference getInterval_LowerBound() { - return (EReference)constraintEClass.getEStructuralFeatures().get(3); + return (EReference)intervalEClass.getEStructuralFeatures().get(0); } /** @@ -1076,9 +1178,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getClosureType() + public EReference getInterval_UpperBound() { - return closureTypeEClass; + return (EReference)intervalEClass.getEStructuralFeatures().get(1); } /** @@ -1098,9 +1200,207 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getVariable() + public EClass getLogicLiteral() + { + return logicLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLogicLiteral_Value() + { + return (EAttribute)logicLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getNumericLiteral() + { + return numericLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getNumericLiteral_Value() + { + return (EAttribute)numericLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getInfinityLiteral() + { + return infinityLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getEmptyIntervalLiteral() + { + return emptyIntervalLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getStringLiteral() + { + return stringLiteralEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getStringLiteral_Value() + { + return (EAttribute)stringLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMemberDefinition() + { + return memberDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMemberDefinition_Containment() + { + return (EAttribute)memberDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberDefinition_Type() + { + return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberDefinition_Multiplicity() + { + return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMemberDefinition_Name() + { + return (EAttribute)memberDefinitionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMemberDefinition_Opposite() + { + return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMultiplicity() + { + return multiplicityEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getManyMultiplicity() + { + return manyMultiplicityEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getExactMultiplicity() + { + return exactMultiplicityEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getExactMultiplicity_Multiplicity() + { + return (EAttribute)exactMultiplicityEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getBoundedMultiplicity() { - return variableEClass; + return boundedMultiplicityEClass; } /** @@ -1109,9 +1409,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getVariable_Name() + public EAttribute getBoundedMultiplicity_LowerBound() { - return (EAttribute)variableEClass.getEStructuralFeatures().get(0); + return (EAttribute)boundedMultiplicityEClass.getEStructuralFeatures().get(0); } /** @@ -1120,9 +1420,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getAllInstances() + public EAttribute getBoundedMultiplicity_UpperBound() { - return allInstancesEClass; + return (EAttribute)boundedMultiplicityEClass.getEStructuralFeatures().get(1); } /** @@ -1131,9 +1431,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getAllInstances_Symbol() + public EClass getScopeDefinition() { - return (EReference)allInstancesEClass.getEStructuralFeatures().get(0); + return scopeDefinitionEClass; } /** @@ -1142,9 +1442,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getAllObjects() + public EReference getScopeDefinition_Type() { - return allObjectsEClass; + return (EReference)scopeDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1153,9 +1453,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getDefaultInterpretation() + public EClass getExactScopeDefinition() { - return defaultInterpretationEClass; + return exactScopeDefinitionEClass; } /** @@ -1164,9 +1464,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getDefaultInterpretation_Interpretation() + public EAttribute getExactScopeDefinition_ExactScope() { - return (EReference)defaultInterpretationEClass.getEStructuralFeatures().get(0); + return (EAttribute)exactScopeDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1175,9 +1475,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getCDInterpretation() + public EClass getBoundedScopeDefinition() { - return cdInterpretationEClass; + return boundedScopeDefinitionEClass; } /** @@ -1186,9 +1486,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getClassInterpretation() + public EAttribute getBoundedScopeDefinition_LowerBound() { - return classInterpretationEClass; + return (EAttribute)boundedScopeDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1197,9 +1497,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getClassInterpretation_Abstract() + public EAttribute getBoundedScopeDefinition_UpperBound() { - return (EAttribute)classInterpretationEClass.getEStructuralFeatures().get(0); + return (EAttribute)boundedScopeDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -1208,9 +1508,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getClassInterpretation_Symbol() + public EClass getLowerBoundedScopeDefinition() { - return (EReference)classInterpretationEClass.getEStructuralFeatures().get(1); + return lowerBoundedScopeDefinitionEClass; } /** @@ -1219,9 +1519,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getClassInterpretation_Supertypes() + public EAttribute getLowerBoundedScopeDefinition_LowerBound() { - return (EReference)classInterpretationEClass.getEStructuralFeatures().get(2); + return (EAttribute)lowerBoundedScopeDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1230,9 +1530,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getClassInterpretation_Fielt() + public EClass getObjectiveDefinition() { - return (EReference)classInterpretationEClass.getEStructuralFeatures().get(3); + return objectiveDefinitionEClass; } /** @@ -1241,9 +1541,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getEnumInterpretation() + public EAttribute getObjectiveDefinition_Kind() { - return enumInterpretationEClass; + return (EAttribute)objectiveDefinitionEClass.getEStructuralFeatures().get(0); } /** @@ -1252,9 +1552,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getEnumInterpretation_Symbol() + public EReference getObjectiveDefinition_Objective() { - return (EReference)enumInterpretationEClass.getEStructuralFeatures().get(0); + return (EReference)objectiveDefinitionEClass.getEStructuralFeatures().get(1); } /** @@ -1263,9 +1563,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getEnumInterpretation_Objects() + public EClass getNamedElement() { - return (EReference)enumInterpretationEClass.getEStructuralFeatures().get(1); + return namedElementEClass; } /** @@ -1274,9 +1574,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getFieldRelationInterpretation() + public EAttribute getNamedElement_Name() { - return fieldRelationInterpretationEClass; + return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0); } /** @@ -1285,9 +1585,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getFieldRelationInterpretation_Containment() + public EClass getAssertion() { - return (EAttribute)fieldRelationInterpretationEClass.getEStructuralFeatures().get(0); + return assertionEClass; } /** @@ -1296,9 +1596,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getFieldRelationInterpretation_Symbol() + public EReference getAssertion_Body() { - return (EReference)fieldRelationInterpretationEClass.getEStructuralFeatures().get(1); + return (EReference)assertionEClass.getEStructuralFeatures().get(0); } /** @@ -1307,9 +1607,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getFieldRelationInterpretation_Multiplicity() + public EReference getAssertion_Range() { - return (EReference)fieldRelationInterpretationEClass.getEStructuralFeatures().get(2); + return (EReference)assertionEClass.getEStructuralFeatures().get(1); } /** @@ -1318,9 +1618,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getFieldRelationInterpretation_Target() + public EClass getDisjunction() { - return (EReference)fieldRelationInterpretationEClass.getEStructuralFeatures().get(3); + return disjunctionEClass; } /** @@ -1329,9 +1629,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getGlobalRelationInterpretation() + public EReference getDisjunction_Children() { - return globalRelationInterpretationEClass; + return (EReference)disjunctionEClass.getEStructuralFeatures().get(0); } /** @@ -1340,9 +1640,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getGlobalRelationInterpretation_Containment() + public EClass getSwitch() { - return (EAttribute)globalRelationInterpretationEClass.getEStructuralFeatures().get(0); + return switchEClass; } /** @@ -1351,9 +1651,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_Symbol() + public EReference getSwitch_Cases() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(1); + return (EReference)switchEClass.getEStructuralFeatures().get(0); } /** @@ -1362,9 +1662,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_SourceMultiplicity() + public EClass getConjunction() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(2); + return conjunctionEClass; } /** @@ -1373,9 +1673,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_Source() + public EReference getConjunction_Children() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(3); + return (EReference)conjunctionEClass.getEStructuralFeatures().get(0); } /** @@ -1384,9 +1684,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_TargetMultiplicity() + public EClass getComparison() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(4); + return comparisonEClass; } /** @@ -1395,9 +1695,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EReference getGlobalRelationInterpretation_Target() + public EReference getComparison_Left() { - return (EReference)globalRelationInterpretationEClass.getEStructuralFeatures().get(5); + return (EReference)comparisonEClass.getEStructuralFeatures().get(0); } /** @@ -1406,9 +1706,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getMultiplicityDefinition() + public EAttribute getComparison_Op() { - return multiplicityDefinitionEClass; + return (EAttribute)comparisonEClass.getEStructuralFeatures().get(1); } /** @@ -1417,9 +1717,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getMultiplicityDefinition_Lower() + public EReference getComparison_Right() { - return (EAttribute)multiplicityDefinitionEClass.getEStructuralFeatures().get(0); + return (EReference)comparisonEClass.getEStructuralFeatures().get(2); } /** @@ -1428,9 +1728,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getMultiplicityDefinition_Upper() + public EClass getBinaryExpression() { - return (EAttribute)multiplicityDefinitionEClass.getEStructuralFeatures().get(1); + return binaryExpressionEClass; } /** @@ -1439,9 +1739,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EAttribute getMultiplicityDefinition_UnlimitedUpper() + public EReference getBinaryExpression_Left() { - return (EAttribute)multiplicityDefinitionEClass.getEStructuralFeatures().get(2); + return (EReference)binaryExpressionEClass.getEStructuralFeatures().get(0); } /** @@ -1450,9 +1750,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanTrue() + public EAttribute getBinaryExpression_Op() { - return booleanTrueEClass; + return (EAttribute)binaryExpressionEClass.getEStructuralFeatures().get(1); } /** @@ -1461,9 +1761,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getBooleanFalse() + public EReference getBinaryExpression_Right() { - return booleanFalseEClass; + return (EReference)binaryExpressionEClass.getEStructuralFeatures().get(2); } /** @@ -1472,9 +1772,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getTrue() + public EClass getUnaryExpression() { - return trueEClass; + return unaryExpressionEClass; } /** @@ -1483,9 +1783,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getFalse() + public EAttribute getUnaryExpression_Op() { - return falseEClass; + return (EAttribute)unaryExpressionEClass.getEStructuralFeatures().get(0); } /** @@ -1494,9 +1794,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getUnknown() + public EReference getUnaryExpression_Body() { - return unknownEClass; + return (EReference)unaryExpressionEClass.getEStructuralFeatures().get(1); } /** @@ -1505,9 +1805,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getError() + public EEnum getMetricType() { - return errorEClass; + return metricTypeEEnum; } /** @@ -1516,9 +1816,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getPositive() + public EEnum getBinaryOperator() { - return positiveEClass; + return binaryOperatorEEnum; } /** @@ -1527,9 +1827,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getNegative() + public EEnum getUnaryOp() { - return negativeEClass; + return unaryOpEEnum; } /** @@ -1538,9 +1838,9 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getReflexiveClosure() + public EEnum getAggregationOp() { - return reflexiveClosureEClass; + return aggregationOpEEnum; } /** @@ -1549,9 +1849,20 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan * @generated */ @Override - public EClass getIrreflexiveClosure() + public EEnum getLogicValue() { - return irreflexiveClosureEClass; + return logicValueEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getObjectiveKind() + { + return objectiveKindEEnum; } /** @@ -1589,149 +1900,173 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan createEReference(problemEClass, PROBLEM__STATEMENTS); statementEClass = createEClass(STATEMENT); + createEAttribute(statementEClass, STATEMENT__ABSTRACT); + createEAttribute(statementEClass, STATEMENT__NAME); + createEReference(statementEClass, STATEMENT__SUPERCLASSES); + createEReference(statementEClass, STATEMENT__MEMBERS); - booleanValueEClass = createEClass(BOOLEAN_VALUE); - - truthValueEClass = createEClass(TRUTH_VALUE); - - interpretationEClass = createEClass(INTERPRETATION); - - basicInterpretationEClass = createEClass(BASIC_INTERPRETATION); - createEReference(basicInterpretationEClass, BASIC_INTERPRETATION__SYMBOL); - createEReference(basicInterpretationEClass, BASIC_INTERPRETATION__OBJECTS); - createEReference(basicInterpretationEClass, BASIC_INTERPRETATION__VALUE); - - symbolEClass = createEClass(SYMBOL); + predicateDefinitionEClass = createEClass(PREDICATE_DEFINITION); + createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__HEAD); + createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__BODY); + createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__FUNCTIONAL); + createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__ERROR); - modelSymbolEClass = createEClass(MODEL_SYMBOL); - createEAttribute(modelSymbolEClass, MODEL_SYMBOL__NAME); + unnamedErrorPrediateDefinitionEClass = createEClass(UNNAMED_ERROR_PREDIATE_DEFINITION); + createEReference(unnamedErrorPrediateDefinitionEClass, UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST); + createEReference(unnamedErrorPrediateDefinitionEClass, UNNAMED_ERROR_PREDIATE_DEFINITION__BODY); - partialitySymbolEClass = createEClass(PARTIALITY_SYMBOL); + defaultDefinitionEClass = createEClass(DEFAULT_DEFINITION); + createEReference(defaultDefinitionEClass, DEFAULT_DEFINITION__HEAD); + createEReference(defaultDefinitionEClass, DEFAULT_DEFINITION__RANGE); - existSymbolEClass = createEClass(EXIST_SYMBOL); + externPredicateDefinitionEClass = createEClass(EXTERN_PREDICATE_DEFINITION); + createEReference(externPredicateDefinitionEClass, EXTERN_PREDICATE_DEFINITION__HEAD); - equalsSymbolEClass = createEClass(EQUALS_SYMBOL); + metricDefinitionEClass = createEClass(METRIC_DEFINITION); + createEReference(metricDefinitionEClass, METRIC_DEFINITION__HEAD); + createEReference(metricDefinitionEClass, METRIC_DEFINITION__BODY); + createEAttribute(metricDefinitionEClass, METRIC_DEFINITION__TYPE); - dataSymbolEClass = createEClass(DATA_SYMBOL); + externMetricDefinitionEClass = createEClass(EXTERN_METRIC_DEFINITION); + createEAttribute(externMetricDefinitionEClass, EXTERN_METRIC_DEFINITION__TYPE); + createEReference(externMetricDefinitionEClass, EXTERN_METRIC_DEFINITION__HEAD); - booleanSymbolEClass = createEClass(BOOLEAN_SYMBOL); + expressionEClass = createEClass(EXPRESSION); - integerSymbolEClass = createEClass(INTEGER_SYMBOL); + ifElseEClass = createEClass(IF_ELSE); + createEReference(ifElseEClass, IF_ELSE__CONDITION); + createEReference(ifElseEClass, IF_ELSE__THEN); + createEReference(ifElseEClass, IF_ELSE__ELSE); - realSymbolEClass = createEClass(REAL_SYMBOL); + caseEClass = createEClass(CASE); + createEReference(caseEClass, CASE__CONDITION); + createEReference(caseEClass, CASE__BODY); - stringSymbolEClass = createEClass(STRING_SYMBOL); + countEClass = createEClass(COUNT); + createEReference(countEClass, COUNT__BODY); - complexObjectEClass = createEClass(COMPLEX_OBJECT); + aggregationEClass = createEClass(AGGREGATION); + createEAttribute(aggregationEClass, AGGREGATION__OP); + createEReference(aggregationEClass, AGGREGATION__BODY); + createEReference(aggregationEClass, AGGREGATION__CONDITION); - objectEClass = createEClass(OBJECT); + callEClass = createEClass(CALL); + createEReference(callEClass, CALL__FUNCTOR); + createEReference(callEClass, CALL__ARGUMENT_LIST); + createEAttribute(callEClass, CALL__TRANSITIVE_CLOSURE); + createEAttribute(callEClass, CALL__REFLEXIVE_TRANSITIVE_CLOSURE); - namedObjectEClass = createEClass(NAMED_OBJECT); - createEAttribute(namedObjectEClass, NAMED_OBJECT__NAME); + argumentListEClass = createEClass(ARGUMENT_LIST); + createEReference(argumentListEClass, ARGUMENT_LIST__ARGUMENTS); - unnamedObjectEClass = createEClass(UNNAMED_OBJECT); - createEAttribute(unnamedObjectEClass, UNNAMED_OBJECT__NAME); + argumentEClass = createEClass(ARGUMENT); - dataObjectEClass = createEClass(DATA_OBJECT); + expressionArgumentEClass = createEClass(EXPRESSION_ARGUMENT); + createEReference(expressionArgumentEClass, EXPRESSION_ARGUMENT__BODY); - booleanObjectEClass = createEClass(BOOLEAN_OBJECT); - createEReference(booleanObjectEClass, BOOLEAN_OBJECT__VALUE); + starArgumentEClass = createEClass(STAR_ARGUMENT); - intObjectEClass = createEClass(INT_OBJECT); - createEAttribute(intObjectEClass, INT_OBJECT__VALUE); + typedArgumentEClass = createEClass(TYPED_ARGUMENT); + createEReference(typedArgumentEClass, TYPED_ARGUMENT__TYPE); + createEReference(typedArgumentEClass, TYPED_ARGUMENT__VARIABLE); - realObjectEClass = createEClass(REAL_OBJECT); - createEAttribute(realObjectEClass, REAL_OBJECT__VALUE); + typedStarArgumentEClass = createEClass(TYPED_STAR_ARGUMENT); + createEReference(typedStarArgumentEClass, TYPED_STAR_ARGUMENT__TYPE); - stringObjectEClass = createEClass(STRING_OBJECT); - createEAttribute(stringObjectEClass, STRING_OBJECT__VALUE); + referenceEClass = createEClass(REFERENCE); + createEReference(referenceEClass, REFERENCE__REFERRED); - predicateEClass = createEClass(PREDICATE); - createEAttribute(predicateEClass, PREDICATE__IS_ERROR); - createEReference(predicateEClass, PREDICATE__SYMBOL); - createEReference(predicateEClass, PREDICATE__PARAMETERS); - createEReference(predicateEClass, PREDICATE__BODIES); + intervalEClass = createEClass(INTERVAL); + createEReference(intervalEClass, INTERVAL__LOWER_BOUND); + createEReference(intervalEClass, INTERVAL__UPPER_BOUND); - parameterEClass = createEClass(PARAMETER); - createEReference(parameterEClass, PARAMETER__VARIABLE); - createEReference(parameterEClass, PARAMETER__TYPE); - - patternBodyEClass = createEClass(PATTERN_BODY); - createEReference(patternBodyEClass, PATTERN_BODY__CONSTRAINTS); + literalEClass = createEClass(LITERAL); - polarityEClass = createEClass(POLARITY); + logicLiteralEClass = createEClass(LOGIC_LITERAL); + createEAttribute(logicLiteralEClass, LOGIC_LITERAL__VALUE); - constraintEClass = createEClass(CONSTRAINT); - createEReference(constraintEClass, CONSTRAINT__POLARITY); - createEReference(constraintEClass, CONSTRAINT__SYMBOL); - createEReference(constraintEClass, CONSTRAINT__PARAMS); - createEReference(constraintEClass, CONSTRAINT__CLOSURE_TYPE); + numericLiteralEClass = createEClass(NUMERIC_LITERAL); + createEAttribute(numericLiteralEClass, NUMERIC_LITERAL__VALUE); - closureTypeEClass = createEClass(CLOSURE_TYPE); + infinityLiteralEClass = createEClass(INFINITY_LITERAL); - literalEClass = createEClass(LITERAL); + emptyIntervalLiteralEClass = createEClass(EMPTY_INTERVAL_LITERAL); - variableEClass = createEClass(VARIABLE); - createEAttribute(variableEClass, VARIABLE__NAME); + stringLiteralEClass = createEClass(STRING_LITERAL); + createEAttribute(stringLiteralEClass, STRING_LITERAL__VALUE); - allInstancesEClass = createEClass(ALL_INSTANCES); - createEReference(allInstancesEClass, ALL_INSTANCES__SYMBOL); + memberDefinitionEClass = createEClass(MEMBER_DEFINITION); + createEAttribute(memberDefinitionEClass, MEMBER_DEFINITION__CONTAINMENT); + createEReference(memberDefinitionEClass, MEMBER_DEFINITION__TYPE); + createEReference(memberDefinitionEClass, MEMBER_DEFINITION__MULTIPLICITY); + createEAttribute(memberDefinitionEClass, MEMBER_DEFINITION__NAME); + createEReference(memberDefinitionEClass, MEMBER_DEFINITION__OPPOSITE); - allObjectsEClass = createEClass(ALL_OBJECTS); + multiplicityEClass = createEClass(MULTIPLICITY); - defaultInterpretationEClass = createEClass(DEFAULT_INTERPRETATION); - createEReference(defaultInterpretationEClass, DEFAULT_INTERPRETATION__INTERPRETATION); + manyMultiplicityEClass = createEClass(MANY_MULTIPLICITY); - cdInterpretationEClass = createEClass(CD_INTERPRETATION); + exactMultiplicityEClass = createEClass(EXACT_MULTIPLICITY); + createEAttribute(exactMultiplicityEClass, EXACT_MULTIPLICITY__MULTIPLICITY); - classInterpretationEClass = createEClass(CLASS_INTERPRETATION); - createEAttribute(classInterpretationEClass, CLASS_INTERPRETATION__ABSTRACT); - createEReference(classInterpretationEClass, CLASS_INTERPRETATION__SYMBOL); - createEReference(classInterpretationEClass, CLASS_INTERPRETATION__SUPERTYPES); - createEReference(classInterpretationEClass, CLASS_INTERPRETATION__FIELT); + boundedMultiplicityEClass = createEClass(BOUNDED_MULTIPLICITY); + createEAttribute(boundedMultiplicityEClass, BOUNDED_MULTIPLICITY__LOWER_BOUND); + createEAttribute(boundedMultiplicityEClass, BOUNDED_MULTIPLICITY__UPPER_BOUND); - enumInterpretationEClass = createEClass(ENUM_INTERPRETATION); - createEReference(enumInterpretationEClass, ENUM_INTERPRETATION__SYMBOL); - createEReference(enumInterpretationEClass, ENUM_INTERPRETATION__OBJECTS); + scopeDefinitionEClass = createEClass(SCOPE_DEFINITION); + createEReference(scopeDefinitionEClass, SCOPE_DEFINITION__TYPE); - fieldRelationInterpretationEClass = createEClass(FIELD_RELATION_INTERPRETATION); - createEAttribute(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__CONTAINMENT); - createEReference(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__SYMBOL); - createEReference(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__MULTIPLICITY); - createEReference(fieldRelationInterpretationEClass, FIELD_RELATION_INTERPRETATION__TARGET); + exactScopeDefinitionEClass = createEClass(EXACT_SCOPE_DEFINITION); + createEAttribute(exactScopeDefinitionEClass, EXACT_SCOPE_DEFINITION__EXACT_SCOPE); - globalRelationInterpretationEClass = createEClass(GLOBAL_RELATION_INTERPRETATION); - createEAttribute(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__CONTAINMENT); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__SYMBOL); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__SOURCE_MULTIPLICITY); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__SOURCE); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__TARGET_MULTIPLICITY); - createEReference(globalRelationInterpretationEClass, GLOBAL_RELATION_INTERPRETATION__TARGET); + boundedScopeDefinitionEClass = createEClass(BOUNDED_SCOPE_DEFINITION); + createEAttribute(boundedScopeDefinitionEClass, BOUNDED_SCOPE_DEFINITION__LOWER_BOUND); + createEAttribute(boundedScopeDefinitionEClass, BOUNDED_SCOPE_DEFINITION__UPPER_BOUND); - multiplicityDefinitionEClass = createEClass(MULTIPLICITY_DEFINITION); - createEAttribute(multiplicityDefinitionEClass, MULTIPLICITY_DEFINITION__LOWER); - createEAttribute(multiplicityDefinitionEClass, MULTIPLICITY_DEFINITION__UPPER); - createEAttribute(multiplicityDefinitionEClass, MULTIPLICITY_DEFINITION__UNLIMITED_UPPER); + lowerBoundedScopeDefinitionEClass = createEClass(LOWER_BOUNDED_SCOPE_DEFINITION); + createEAttribute(lowerBoundedScopeDefinitionEClass, LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND); - booleanTrueEClass = createEClass(BOOLEAN_TRUE); + objectiveDefinitionEClass = createEClass(OBJECTIVE_DEFINITION); + createEAttribute(objectiveDefinitionEClass, OBJECTIVE_DEFINITION__KIND); + createEReference(objectiveDefinitionEClass, OBJECTIVE_DEFINITION__OBJECTIVE); - booleanFalseEClass = createEClass(BOOLEAN_FALSE); + namedElementEClass = createEClass(NAMED_ELEMENT); + createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME); - trueEClass = createEClass(TRUE); + assertionEClass = createEClass(ASSERTION); + createEReference(assertionEClass, ASSERTION__BODY); + createEReference(assertionEClass, ASSERTION__RANGE); - falseEClass = createEClass(FALSE); + disjunctionEClass = createEClass(DISJUNCTION); + createEReference(disjunctionEClass, DISJUNCTION__CHILDREN); - unknownEClass = createEClass(UNKNOWN); + switchEClass = createEClass(SWITCH); + createEReference(switchEClass, SWITCH__CASES); - errorEClass = createEClass(ERROR); + conjunctionEClass = createEClass(CONJUNCTION); + createEReference(conjunctionEClass, CONJUNCTION__CHILDREN); - positiveEClass = createEClass(POSITIVE); + comparisonEClass = createEClass(COMPARISON); + createEReference(comparisonEClass, COMPARISON__LEFT); + createEAttribute(comparisonEClass, COMPARISON__OP); + createEReference(comparisonEClass, COMPARISON__RIGHT); - negativeEClass = createEClass(NEGATIVE); + binaryExpressionEClass = createEClass(BINARY_EXPRESSION); + createEReference(binaryExpressionEClass, BINARY_EXPRESSION__LEFT); + createEAttribute(binaryExpressionEClass, BINARY_EXPRESSION__OP); + createEReference(binaryExpressionEClass, BINARY_EXPRESSION__RIGHT); - reflexiveClosureEClass = createEClass(REFLEXIVE_CLOSURE); + unaryExpressionEClass = createEClass(UNARY_EXPRESSION); + createEAttribute(unaryExpressionEClass, UNARY_EXPRESSION__OP); + createEReference(unaryExpressionEClass, UNARY_EXPRESSION__BODY); - irreflexiveClosureEClass = createEClass(IRREFLEXIVE_CLOSURE); + // Create enums + metricTypeEEnum = createEEnum(METRIC_TYPE); + binaryOperatorEEnum = createEEnum(BINARY_OPERATOR); + unaryOpEEnum = createEEnum(UNARY_OP); + aggregationOpEEnum = createEEnum(AGGREGATION_OP); + logicValueEEnum = createEEnum(LOGIC_VALUE); + objectiveKindEEnum = createEEnum(OBJECTIVE_KIND); } /** @@ -1763,195 +2098,255 @@ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLan // Set bounds for type parameters // Add supertypes to classes - interpretationEClass.getESuperTypes().add(this.getStatement()); - basicInterpretationEClass.getESuperTypes().add(this.getInterpretation()); - modelSymbolEClass.getESuperTypes().add(this.getSymbol()); - partialitySymbolEClass.getESuperTypes().add(this.getSymbol()); - existSymbolEClass.getESuperTypes().add(this.getPartialitySymbol()); - equalsSymbolEClass.getESuperTypes().add(this.getPartialitySymbol()); - dataSymbolEClass.getESuperTypes().add(this.getSymbol()); - booleanSymbolEClass.getESuperTypes().add(this.getDataSymbol()); - integerSymbolEClass.getESuperTypes().add(this.getDataSymbol()); - realSymbolEClass.getESuperTypes().add(this.getDataSymbol()); - stringSymbolEClass.getESuperTypes().add(this.getDataSymbol()); - objectEClass.getESuperTypes().add(this.getComplexObject()); - namedObjectEClass.getESuperTypes().add(this.getObject()); - namedObjectEClass.getESuperTypes().add(this.getLiteral()); - unnamedObjectEClass.getESuperTypes().add(this.getObject()); - dataObjectEClass.getESuperTypes().add(this.getObject()); - dataObjectEClass.getESuperTypes().add(this.getLiteral()); - booleanObjectEClass.getESuperTypes().add(this.getDataObject()); - intObjectEClass.getESuperTypes().add(this.getDataObject()); - realObjectEClass.getESuperTypes().add(this.getDataObject()); - stringObjectEClass.getESuperTypes().add(this.getDataObject()); - predicateEClass.getESuperTypes().add(this.getStatement()); - variableEClass.getESuperTypes().add(this.getLiteral()); - allInstancesEClass.getESuperTypes().add(this.getComplexObject()); - allObjectsEClass.getESuperTypes().add(this.getComplexObject()); - defaultInterpretationEClass.getESuperTypes().add(this.getInterpretation()); - cdInterpretationEClass.getESuperTypes().add(this.getInterpretation()); - classInterpretationEClass.getESuperTypes().add(this.getCDInterpretation()); - enumInterpretationEClass.getESuperTypes().add(this.getCDInterpretation()); - globalRelationInterpretationEClass.getESuperTypes().add(this.getCDInterpretation()); - booleanTrueEClass.getESuperTypes().add(this.getBooleanValue()); - booleanFalseEClass.getESuperTypes().add(this.getBooleanValue()); - trueEClass.getESuperTypes().add(this.getTruthValue()); - falseEClass.getESuperTypes().add(this.getTruthValue()); - unknownEClass.getESuperTypes().add(this.getTruthValue()); - errorEClass.getESuperTypes().add(this.getTruthValue()); - positiveEClass.getESuperTypes().add(this.getPolarity()); - negativeEClass.getESuperTypes().add(this.getPolarity()); - reflexiveClosureEClass.getESuperTypes().add(this.getClosureType()); - irreflexiveClosureEClass.getESuperTypes().add(this.getClosureType()); + predicateDefinitionEClass.getESuperTypes().add(this.getStatement()); + unnamedErrorPrediateDefinitionEClass.getESuperTypes().add(this.getStatement()); + defaultDefinitionEClass.getESuperTypes().add(this.getStatement()); + externPredicateDefinitionEClass.getESuperTypes().add(this.getStatement()); + metricDefinitionEClass.getESuperTypes().add(this.getStatement()); + externMetricDefinitionEClass.getESuperTypes().add(this.getStatement()); + expressionEClass.getESuperTypes().add(this.getStatement()); + ifElseEClass.getESuperTypes().add(this.getExpression()); + caseEClass.getESuperTypes().add(this.getExpression()); + countEClass.getESuperTypes().add(this.getExpression()); + aggregationEClass.getESuperTypes().add(this.getExpression()); + callEClass.getESuperTypes().add(this.getExpression()); + expressionArgumentEClass.getESuperTypes().add(this.getArgument()); + starArgumentEClass.getESuperTypes().add(this.getArgument()); + typedArgumentEClass.getESuperTypes().add(this.getArgument()); + typedStarArgumentEClass.getESuperTypes().add(this.getArgument()); + referenceEClass.getESuperTypes().add(this.getExpression()); + intervalEClass.getESuperTypes().add(this.getExpression()); + literalEClass.getESuperTypes().add(this.getExpression()); + logicLiteralEClass.getESuperTypes().add(this.getLiteral()); + numericLiteralEClass.getESuperTypes().add(this.getLiteral()); + infinityLiteralEClass.getESuperTypes().add(this.getLiteral()); + emptyIntervalLiteralEClass.getESuperTypes().add(this.getLiteral()); + stringLiteralEClass.getESuperTypes().add(this.getLiteral()); + manyMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); + exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); + boundedMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); + scopeDefinitionEClass.getESuperTypes().add(this.getStatement()); + exactScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition()); + boundedScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition()); + lowerBoundedScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition()); + objectiveDefinitionEClass.getESuperTypes().add(this.getStatement()); + assertionEClass.getESuperTypes().add(this.getStatement()); + disjunctionEClass.getESuperTypes().add(this.getExpression()); + switchEClass.getESuperTypes().add(this.getExpression()); + conjunctionEClass.getESuperTypes().add(this.getExpression()); + comparisonEClass.getESuperTypes().add(this.getExpression()); + binaryExpressionEClass.getESuperTypes().add(this.getExpression()); + unaryExpressionEClass.getESuperTypes().add(this.getExpression()); // Initialize classes and features; add operations and parameters initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getProblem_Statements(), this.getStatement(), null, "statements", null, 0, -1, Problem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStatement_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1, Statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getStatement_Name(), ecorePackage.getEString(), "name", null, 0, 1, Statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStatement_Superclasses(), this.getNamedElement(), null, "superclasses", null, 0, -1, Statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getStatement_Members(), this.getMemberDefinition(), null, "members", null, 0, -1, Statement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(booleanValueEClass, BooleanValue.class, "BooleanValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(truthValueEClass, TruthValue.class, "TruthValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(interpretationEClass, Interpretation.class, "Interpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(basicInterpretationEClass, BasicInterpretation.class, "BasicInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getBasicInterpretation_Symbol(), this.getSymbol(), null, "symbol", null, 0, 1, BasicInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getBasicInterpretation_Objects(), this.getComplexObject(), null, "objects", null, 0, -1, BasicInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getBasicInterpretation_Value(), this.getTruthValue(), null, "value", null, 0, 1, BasicInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(symbolEClass, Symbol.class, "Symbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(modelSymbolEClass, ModelSymbol.class, "ModelSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getModelSymbol_Name(), ecorePackage.getEString(), "name", null, 0, 1, ModelSymbol.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(partialitySymbolEClass, PartialitySymbol.class, "PartialitySymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(predicateDefinitionEClass, PredicateDefinition.class, "PredicateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPredicateDefinition_Head(), this.getExpression(), null, "head", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPredicateDefinition_Body(), this.getExpression(), null, "body", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPredicateDefinition_Functional(), ecorePackage.getEBoolean(), "functional", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getPredicateDefinition_Error(), ecorePackage.getEBoolean(), "error", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(existSymbolEClass, ExistSymbol.class, "ExistSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(unnamedErrorPrediateDefinitionEClass, UnnamedErrorPrediateDefinition.class, "UnnamedErrorPrediateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getUnnamedErrorPrediateDefinition_ArgumentList(), this.getArgumentList(), null, "argumentList", null, 0, 1, UnnamedErrorPrediateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getUnnamedErrorPrediateDefinition_Body(), this.getExpression(), null, "body", null, 0, 1, UnnamedErrorPrediateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(equalsSymbolEClass, EqualsSymbol.class, "EqualsSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(defaultDefinitionEClass, DefaultDefinition.class, "DefaultDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDefaultDefinition_Head(), this.getCall(), null, "head", null, 0, 1, DefaultDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDefaultDefinition_Range(), this.getExpression(), null, "range", null, 0, 1, DefaultDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(dataSymbolEClass, DataSymbol.class, "DataSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(externPredicateDefinitionEClass, ExternPredicateDefinition.class, "ExternPredicateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExternPredicateDefinition_Head(), this.getCall(), null, "head", null, 0, 1, ExternPredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(booleanSymbolEClass, BooleanSymbol.class, "BooleanSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(metricDefinitionEClass, MetricDefinition.class, "MetricDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMetricDefinition_Head(), this.getExpression(), null, "head", null, 0, 1, MetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMetricDefinition_Body(), this.getExpression(), null, "body", null, 0, 1, MetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMetricDefinition_Type(), this.getMetricType(), "type", null, 0, 1, MetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(integerSymbolEClass, IntegerSymbol.class, "IntegerSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(externMetricDefinitionEClass, ExternMetricDefinition.class, "ExternMetricDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExternMetricDefinition_Type(), this.getMetricType(), "type", null, 0, 1, ExternMetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExternMetricDefinition_Head(), this.getCall(), null, "head", null, 0, 1, ExternMetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(realSymbolEClass, RealSymbol.class, "RealSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(stringSymbolEClass, StringSymbol.class, "StringSymbol", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(ifElseEClass, IfElse.class, "IfElse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIfElse_Condition(), this.getExpression(), null, "condition", null, 0, 1, IfElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIfElse_Then(), this.getExpression(), null, "then", null, 0, 1, IfElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getIfElse_Else(), this.getExpression(), null, "else", null, 0, 1, IfElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(complexObjectEClass, ComplexObject.class, "ComplexObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(caseEClass, Case.class, "Case", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCase_Condition(), this.getExpression(), null, "condition", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCase_Body(), this.getExpression(), null, "body", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(objectEClass, org.eclipse.viatra.solver.language.solverLanguage.Object.class, "Object", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(countEClass, Count.class, "Count", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCount_Body(), this.getExpression(), null, "body", null, 0, 1, Count.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(namedObjectEClass, NamedObject.class, "NamedObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getNamedObject_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(aggregationEClass, Aggregation.class, "Aggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getAggregation_Op(), this.getAggregationOp(), "op", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAggregation_Body(), this.getExpression(), null, "body", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAggregation_Condition(), this.getExpression(), null, "condition", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(unnamedObjectEClass, UnnamedObject.class, "UnnamedObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getUnnamedObject_Name(), ecorePackage.getEString(), "name", null, 0, 1, UnnamedObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(callEClass, Call.class, "Call", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCall_Functor(), this.getReference(), null, "functor", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCall_ArgumentList(), this.getArgumentList(), null, "argumentList", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getCall_TransitiveClosure(), ecorePackage.getEBoolean(), "transitiveClosure", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getCall_ReflexiveTransitiveClosure(), ecorePackage.getEBoolean(), "reflexiveTransitiveClosure", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(dataObjectEClass, DataObject.class, "DataObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(argumentListEClass, ArgumentList.class, "ArgumentList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getArgumentList_Arguments(), this.getArgument(), null, "arguments", null, 0, -1, ArgumentList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(booleanObjectEClass, BooleanObject.class, "BooleanObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getBooleanObject_Value(), this.getBooleanValue(), null, "value", null, 0, 1, BooleanObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(argumentEClass, Argument.class, "Argument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(intObjectEClass, IntObject.class, "IntObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getIntObject_Value(), ecorePackage.getEInt(), "value", null, 0, 1, IntObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(expressionArgumentEClass, ExpressionArgument.class, "ExpressionArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExpressionArgument_Body(), this.getExpression(), null, "body", null, 0, 1, ExpressionArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(realObjectEClass, RealObject.class, "RealObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getRealObject_Value(), ecorePackage.getEBigDecimal(), "value", null, 0, 1, RealObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(starArgumentEClass, StarArgument.class, "StarArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(stringObjectEClass, StringObject.class, "StringObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getStringObject_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(typedArgumentEClass, TypedArgument.class, "TypedArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTypedArgument_Type(), this.getNamedElement(), null, "type", null, 0, 1, TypedArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTypedArgument_Variable(), this.getNamedElement(), null, "variable", null, 0, 1, TypedArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(predicateEClass, Predicate.class, "Predicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getPredicate_IsError(), ecorePackage.getEBoolean(), "isError", null, 0, 1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getPredicate_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getPredicate_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getPredicate_Bodies(), this.getPatternBody(), null, "bodies", null, 0, -1, Predicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(typedStarArgumentEClass, TypedStarArgument.class, "TypedStarArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTypedStarArgument_Type(), this.getNamedElement(), null, "type", null, 0, 1, TypedStarArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getParameter_Variable(), this.getVariable(), null, "variable", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getParameter_Type(), this.getSymbol(), null, "type", null, 0, 1, Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(referenceEClass, Reference.class, "Reference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getReference_Referred(), this.getNamedElement(), null, "referred", null, 0, 1, Reference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(patternBodyEClass, PatternBody.class, "PatternBody", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getPatternBody_Constraints(), this.getConstraint(), null, "constraints", null, 0, -1, PatternBody.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(polarityEClass, Polarity.class, "Polarity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(constraintEClass, Constraint.class, "Constraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getConstraint_Polarity(), this.getPolarity(), null, "polarity", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getConstraint_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getConstraint_Params(), this.getLiteral(), null, "params", null, 0, -1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getConstraint_ClosureType(), this.getClosureType(), null, "closureType", null, 0, 1, Constraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(closureTypeEClass, ClosureType.class, "ClosureType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(intervalEClass, Interval.class, "Interval", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getInterval_LowerBound(), this.getExpression(), null, "lowerBound", null, 0, 1, Interval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInterval_UpperBound(), this.getExpression(), null, "upperBound", null, 0, 1, Interval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(literalEClass, Literal.class, "Literal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(variableEClass, Variable.class, "Variable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getVariable_Name(), ecorePackage.getEString(), "name", null, 0, 1, Variable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(allInstancesEClass, AllInstances.class, "AllInstances", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getAllInstances_Symbol(), this.getSymbol(), null, "symbol", null, 0, 1, AllInstances.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(allObjectsEClass, AllObjects.class, "AllObjects", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(defaultInterpretationEClass, DefaultInterpretation.class, "DefaultInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getDefaultInterpretation_Interpretation(), this.getBasicInterpretation(), null, "interpretation", null, 0, 1, DefaultInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(cdInterpretationEClass, CDInterpretation.class, "CDInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(classInterpretationEClass, ClassInterpretation.class, "ClassInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getClassInterpretation_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1, ClassInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getClassInterpretation_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, ClassInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getClassInterpretation_Supertypes(), this.getModelSymbol(), null, "supertypes", null, 0, -1, ClassInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getClassInterpretation_Fielt(), this.getFieldRelationInterpretation(), null, "fielt", null, 0, -1, ClassInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(enumInterpretationEClass, EnumInterpretation.class, "EnumInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getEnumInterpretation_Symbol(), this.getModelSymbol(), null, "Symbol", null, 0, 1, EnumInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getEnumInterpretation_Objects(), this.getNamedObject(), null, "objects", null, 0, -1, EnumInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(fieldRelationInterpretationEClass, FieldRelationInterpretation.class, "FieldRelationInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getFieldRelationInterpretation_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1, FieldRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getFieldRelationInterpretation_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, FieldRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getFieldRelationInterpretation_Multiplicity(), this.getMultiplicityDefinition(), null, "multiplicity", null, 0, 1, FieldRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getFieldRelationInterpretation_Target(), this.getSymbol(), null, "target", null, 0, 1, FieldRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(globalRelationInterpretationEClass, GlobalRelationInterpretation.class, "GlobalRelationInterpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getGlobalRelationInterpretation_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_Symbol(), this.getModelSymbol(), null, "symbol", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_SourceMultiplicity(), this.getMultiplicityDefinition(), null, "sourceMultiplicity", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_Source(), this.getSymbol(), null, "source", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_TargetMultiplicity(), this.getMultiplicityDefinition(), null, "targetMultiplicity", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getGlobalRelationInterpretation_Target(), this.getSymbol(), null, "target", null, 0, 1, GlobalRelationInterpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(multiplicityDefinitionEClass, MultiplicityDefinition.class, "MultiplicityDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getMultiplicityDefinition_Lower(), ecorePackage.getEInt(), "lower", null, 0, 1, MultiplicityDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getMultiplicityDefinition_Upper(), ecorePackage.getEInt(), "upper", null, 0, 1, MultiplicityDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getMultiplicityDefinition_UnlimitedUpper(), ecorePackage.getEBoolean(), "unlimitedUpper", null, 0, 1, MultiplicityDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - - initEClass(booleanTrueEClass, BooleanTrue.class, "BooleanTrue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(booleanFalseEClass, BooleanFalse.class, "BooleanFalse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(trueEClass, True.class, "True", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(falseEClass, False.class, "False", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(unknownEClass, Unknown.class, "Unknown", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(logicLiteralEClass, LogicLiteral.class, "LogicLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLogicLiteral_Value(), this.getLogicValue(), "value", null, 0, 1, LogicLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(errorEClass, org.eclipse.viatra.solver.language.solverLanguage.Error.class, "Error", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(numericLiteralEClass, NumericLiteral.class, "NumericLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNumericLiteral_Value(), ecorePackage.getEBigDecimal(), "value", null, 0, 1, NumericLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(positiveEClass, Positive.class, "Positive", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(infinityLiteralEClass, InfinityLiteral.class, "InfinityLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(negativeEClass, Negative.class, "Negative", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(emptyIntervalLiteralEClass, EmptyIntervalLiteral.class, "EmptyIntervalLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(reflexiveClosureEClass, ReflexiveClosure.class, "ReflexiveClosure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(stringLiteralEClass, StringLiteral.class, "StringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStringLiteral_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(irreflexiveClosureEClass, IrreflexiveClosure.class, "IrreflexiveClosure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(memberDefinitionEClass, MemberDefinition.class, "MemberDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getMemberDefinition_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMemberDefinition_Type(), this.getNamedElement(), null, "type", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMemberDefinition_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMemberDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMemberDefinition_Opposite(), this.getNamedElement(), null, "opposite", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(multiplicityEClass, Multiplicity.class, "Multiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(manyMultiplicityEClass, ManyMultiplicity.class, "ManyMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(exactMultiplicityEClass, ExactMultiplicity.class, "ExactMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExactMultiplicity_Multiplicity(), ecorePackage.getEInt(), "multiplicity", null, 0, 1, ExactMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(boundedMultiplicityEClass, BoundedMultiplicity.class, "BoundedMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getBoundedMultiplicity_LowerBound(), ecorePackage.getEInt(), "lowerBound", null, 0, 1, BoundedMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getBoundedMultiplicity_UpperBound(), ecorePackage.getEInt(), "upperBound", null, 0, 1, BoundedMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(scopeDefinitionEClass, ScopeDefinition.class, "ScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getScopeDefinition_Type(), this.getNamedElement(), null, "type", null, 0, 1, ScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(exactScopeDefinitionEClass, ExactScopeDefinition.class, "ExactScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExactScopeDefinition_ExactScope(), ecorePackage.getEInt(), "exactScope", null, 0, 1, ExactScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(boundedScopeDefinitionEClass, BoundedScopeDefinition.class, "BoundedScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getBoundedScopeDefinition_LowerBound(), ecorePackage.getEInt(), "lowerBound", null, 0, 1, BoundedScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getBoundedScopeDefinition_UpperBound(), ecorePackage.getEInt(), "upperBound", null, 0, 1, BoundedScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(lowerBoundedScopeDefinitionEClass, LowerBoundedScopeDefinition.class, "LowerBoundedScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLowerBoundedScopeDefinition_LowerBound(), ecorePackage.getEInt(), "lowerBound", null, 0, 1, LowerBoundedScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(objectiveDefinitionEClass, ObjectiveDefinition.class, "ObjectiveDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getObjectiveDefinition_Kind(), this.getObjectiveKind(), "kind", null, 0, 1, ObjectiveDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getObjectiveDefinition_Objective(), this.getExpression(), null, "objective", null, 0, 1, ObjectiveDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(namedElementEClass, NamedElement.class, "NamedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(assertionEClass, Assertion.class, "Assertion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAssertion_Body(), this.getExpression(), null, "body", null, 0, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAssertion_Range(), this.getExpression(), null, "range", null, 0, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(disjunctionEClass, Disjunction.class, "Disjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDisjunction_Children(), this.getExpression(), null, "children", null, 0, -1, Disjunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(switchEClass, Switch.class, "Switch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSwitch_Cases(), this.getCase(), null, "cases", null, 0, -1, Switch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(conjunctionEClass, Conjunction.class, "Conjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConjunction_Children(), this.getExpression(), null, "children", null, 0, -1, Conjunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(comparisonEClass, Comparison.class, "Comparison", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getComparison_Left(), this.getExpression(), null, "left", null, 0, 1, Comparison.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getComparison_Op(), this.getBinaryOperator(), "op", null, 0, 1, Comparison.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getComparison_Right(), this.getExpression(), null, "right", null, 0, 1, Comparison.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(binaryExpressionEClass, BinaryExpression.class, "BinaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBinaryExpression_Left(), this.getExpression(), null, "left", null, 0, 1, BinaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getBinaryExpression_Op(), this.getBinaryOperator(), "op", null, 0, 1, BinaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getBinaryExpression_Right(), this.getExpression(), null, "right", null, 0, 1, BinaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(unaryExpressionEClass, UnaryExpression.class, "UnaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getUnaryExpression_Op(), this.getUnaryOp(), "op", null, 0, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getUnaryExpression_Body(), this.getExpression(), null, "body", null, 0, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Initialize enums and add enum literals + initEEnum(metricTypeEEnum, MetricType.class, "MetricType"); + addEEnumLiteral(metricTypeEEnum, MetricType.INT); + addEEnumLiteral(metricTypeEEnum, MetricType.REAL); + + initEEnum(binaryOperatorEEnum, BinaryOperator.class, "BinaryOperator"); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.EQ); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.NOT_EQ); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.LESS); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.LESS_EQ); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.GREATER); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.GREATER_EQ); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.IN); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.ADD); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.SUB); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.MUL); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.DIV); + addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.POW); + + initEEnum(unaryOpEEnum, UnaryOp.class, "UnaryOp"); + addEEnumLiteral(unaryOpEEnum, UnaryOp.NEG); + addEEnumLiteral(unaryOpEEnum, UnaryOp.PLUS); + addEEnumLiteral(unaryOpEEnum, UnaryOp.MINUS); + addEEnumLiteral(unaryOpEEnum, UnaryOp.MAY); + addEEnumLiteral(unaryOpEEnum, UnaryOp.MUST); + addEEnumLiteral(unaryOpEEnum, UnaryOp.CURRENT); + + initEEnum(aggregationOpEEnum, AggregationOp.class, "AggregationOp"); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.ONLY); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.SUM); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.PROD); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.AVG); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.MIN); + addEEnumLiteral(aggregationOpEEnum, AggregationOp.MAX); + + initEEnum(logicValueEEnum, LogicValue.class, "LogicValue"); + addEEnumLiteral(logicValueEEnum, LogicValue.TRUE); + addEEnumLiteral(logicValueEEnum, LogicValue.FALSE); + addEEnumLiteral(logicValueEEnum, LogicValue.UNKNOWN); + addEEnumLiteral(logicValueEEnum, LogicValue.ERROR); + + initEEnum(objectiveKindEEnum, ObjectiveKind.class, "ObjectiveKind"); + addEEnumLiteral(objectiveKindEEnum, ObjectiveKind.MINIMIZE); + addEEnumLiteral(objectiveKindEEnum, ObjectiveKind.MAXIMIZE); // Create resource createResource(eNS_URI); diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StarArgumentImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StarArgumentImpl.java new file mode 100644 index 00000000..b0cecaab --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StarArgumentImpl.java @@ -0,0 +1,41 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; +import org.eclipse.viatra.solver.language.solverLanguage.StarArgument; + +/** + * + * An implementation of the model object 'Star Argument'. + * + * + * @generated + */ +public class StarArgumentImpl extends ArgumentImpl implements StarArgument +{ + /** + * + * + * @generated + */ + protected StarArgumentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.STAR_ARGUMENT; + } + +} //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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage.impl; +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition; +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; import org.eclipse.viatra.solver.language.solverLanguage.Statement; @@ -14,11 +29,80 @@ import org.eclipse.viatra.solver.language.solverLanguage.Statement; * * An implementation of the model object 'Statement'. * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.StatementImpl#isAbstract Abstract}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.StatementImpl#getName Name}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.StatementImpl#getSuperclasses Superclasses}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.StatementImpl#getMembers Members}
    • + *
    * * @generated */ public class StatementImpl extends MinimalEObjectImpl.Container implements Statement { + /** + * The default value of the '{@link #isAbstract() Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected static final boolean ABSTRACT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isAbstract() Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected boolean abstract_ = ABSTRACT_EDEFAULT; + + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getSuperclasses() Superclasses}' reference list. + * + * + * @see #getSuperclasses() + * @generated + * @ordered + */ + protected EList superclasses; + + /** + * The cached value of the '{@link #getMembers() Members}' containment reference list. + * + * + * @see #getMembers() + * @generated + * @ordered + */ + protected EList members; + /** * * @@ -40,4 +124,218 @@ public class StatementImpl extends MinimalEObjectImpl.Container implements State return SolverLanguagePackage.Literals.STATEMENT; } + /** + * + * + * @generated + */ + @Override + public boolean isAbstract() + { + return abstract_; + } + + /** + * + * + * @generated + */ + @Override + public void setAbstract(boolean newAbstract) + { + boolean oldAbstract = abstract_; + abstract_ = newAbstract; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.STATEMENT__ABSTRACT, oldAbstract, abstract_)); + } + + /** + * + * + * @generated + */ + @Override + public String getName() + { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.STATEMENT__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public EList getSuperclasses() + { + if (superclasses == null) + { + superclasses = new EObjectResolvingEList(NamedElement.class, this, SolverLanguagePackage.STATEMENT__SUPERCLASSES); + } + return superclasses; + } + + /** + * + * + * @generated + */ + @Override + public EList getMembers() + { + if (members == null) + { + members = new EObjectContainmentEList(MemberDefinition.class, this, SolverLanguagePackage.STATEMENT__MEMBERS); + } + return members; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.STATEMENT__MEMBERS: + return ((InternalEList)getMembers()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.STATEMENT__ABSTRACT: + return isAbstract(); + case SolverLanguagePackage.STATEMENT__NAME: + return getName(); + case SolverLanguagePackage.STATEMENT__SUPERCLASSES: + return getSuperclasses(); + case SolverLanguagePackage.STATEMENT__MEMBERS: + return getMembers(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.STATEMENT__ABSTRACT: + setAbstract((Boolean)newValue); + return; + case SolverLanguagePackage.STATEMENT__NAME: + setName((String)newValue); + return; + case SolverLanguagePackage.STATEMENT__SUPERCLASSES: + getSuperclasses().clear(); + getSuperclasses().addAll((Collection)newValue); + return; + case SolverLanguagePackage.STATEMENT__MEMBERS: + getMembers().clear(); + getMembers().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.STATEMENT__ABSTRACT: + setAbstract(ABSTRACT_EDEFAULT); + return; + case SolverLanguagePackage.STATEMENT__NAME: + setName(NAME_EDEFAULT); + return; + case SolverLanguagePackage.STATEMENT__SUPERCLASSES: + getSuperclasses().clear(); + return; + case SolverLanguagePackage.STATEMENT__MEMBERS: + getMembers().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.STATEMENT__ABSTRACT: + return abstract_ != ABSTRACT_EDEFAULT; + case SolverLanguagePackage.STATEMENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case SolverLanguagePackage.STATEMENT__SUPERCLASSES: + return superclasses != null && !superclasses.isEmpty(); + case SolverLanguagePackage.STATEMENT__MEMBERS: + return members != null && !members.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (abstract: "); + result.append(abstract_); + result.append(", name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + } //StatementImpl diff --git a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringLiteralImpl.java b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringLiteralImpl.java new file mode 100644 index 00000000..2b0b2720 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringLiteralImpl.java @@ -0,0 +1,179 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; +import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral; + +/** + * + * An implementation of the model object 'String Literal'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringLiteralImpl#getValue Value}
    • + *
    + * + * @generated + */ +public class StringLiteralImpl extends LiteralImpl implements StringLiteral +{ + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected StringLiteralImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.STRING_LITERAL; + } + + /** + * + * + * @generated + */ + @Override + public String getValue() + { + return value; + } + + /** + * + * + * @generated + */ + @Override + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.STRING_LITERAL__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.STRING_LITERAL__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.STRING_LITERAL__VALUE: + setValue((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.STRING_LITERAL__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.STRING_LITERAL__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //StringLiteralImpl 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/StringObjectImpl.java deleted file mode 100644 index 7a7866a7..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringObjectImpl.java +++ /dev/null @@ -1,179 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.StringObject; - -/** - * - * An implementation of the model object 'String Object'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.StringObjectImpl#getValue Value}
    • - *
    - * - * @generated - */ -public class StringObjectImpl extends DataObjectImpl implements StringObject -{ - /** - * The default value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected static final String VALUE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getValue() Value}' attribute. - * - * - * @see #getValue() - * @generated - * @ordered - */ - protected String value = VALUE_EDEFAULT; - - /** - * - * - * @generated - */ - protected StringObjectImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.STRING_OBJECT; - } - - /** - * - * - * @generated - */ - @Override - public String getValue() - { - return value; - } - - /** - * - * - * @generated - */ - @Override - public void setValue(String newValue) - { - String oldValue = value; - value = newValue; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.STRING_OBJECT__VALUE, oldValue, value)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.STRING_OBJECT__VALUE: - return getValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.STRING_OBJECT__VALUE: - setValue((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.STRING_OBJECT__VALUE: - setValue(VALUE_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.STRING_OBJECT__VALUE: - return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (value: "); - result.append(value); - result.append(')'); - return result.toString(); - } - -} //StringObjectImpl 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/StringSymbolImpl.java deleted file mode 100644 index faf3f06a..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/StringSymbolImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; - -/** - * - * An implementation of the model object 'String Symbol'. - * - * - * @generated - */ -public class StringSymbolImpl extends DataSymbolImpl implements StringSymbol -{ - /** - * - * - * @generated - */ - protected StringSymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.STRING_SYMBOL; - } - -} //StringSymbolImpl 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.solverLanguage.Case; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; +import org.eclipse.viatra.solver.language.solverLanguage.Switch; + +/** + * + * An implementation of the model object 'Switch'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.SwitchImpl#getCases Cases}
    • + *
    + * + * @generated + */ +public class SwitchImpl extends ExpressionImpl implements Switch +{ + /** + * The cached value of the '{@link #getCases() Cases}' containment reference list. + * + * + * @see #getCases() + * @generated + * @ordered + */ + protected EList cases; + + /** + * + * + * @generated + */ + protected SwitchImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.SWITCH; + } + + /** + * + * + * @generated + */ + @Override + public EList getCases() + { + if (cases == null) + { + cases = new EObjectContainmentEList(Case.class, this, SolverLanguagePackage.SWITCH__CASES); + } + return cases; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.SWITCH__CASES: + return ((InternalEList)getCases()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.SWITCH__CASES: + return getCases(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.SWITCH__CASES: + getCases().clear(); + getCases().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.SWITCH__CASES: + getCases().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.SWITCH__CASES: + return cases != null && !cases.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; - -/** - * - * An implementation of the model object 'Symbol'. - * - * - * @generated - */ -public class SymbolImpl extends MinimalEObjectImpl.Container implements Symbol -{ - /** - * - * - * @generated - */ - protected SymbolImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.SYMBOL; - } - -} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.True; - -/** - * - * An implementation of the model object 'True'. - * - * - * @generated - */ -public class TrueImpl extends TruthValueImpl implements True -{ - /** - * - * - * @generated - */ - protected TrueImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.TRUE; - } - -} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.TruthValue; - -/** - * - * An implementation of the model object 'Truth Value'. - * - * - * @generated - */ -public class TruthValueImpl extends MinimalEObjectImpl.Container implements TruthValue -{ - /** - * - * - * @generated - */ - protected TruthValueImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.TRUTH_VALUE; - } - -} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; +import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument; + +/** + * + * An implementation of the model object 'Typed Argument'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl#getType Type}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedArgumentImpl#getVariable Variable}
    • + *
    + * + * @generated + */ +public class TypedArgumentImpl extends ArgumentImpl implements TypedArgument +{ + /** + * The cached value of the '{@link #getType() Type}' reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected NamedElement type; + + /** + * The cached value of the '{@link #getVariable() Variable}' reference. + * + * + * @see #getVariable() + * @generated + * @ordered + */ + protected NamedElement variable; + + /** + * + * + * @generated + */ + protected TypedArgumentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.TYPED_ARGUMENT; + } + + /** + * + * + * @generated + */ + @Override + public NamedElement getType() + { + if (type != null && type.eIsProxy()) + { + InternalEObject oldType = (InternalEObject)type; + type = (NamedElement)eResolveProxy(oldType); + if (type != oldType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.TYPED_ARGUMENT__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public NamedElement basicGetType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(NamedElement newType) + { + NamedElement oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.TYPED_ARGUMENT__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public NamedElement getVariable() + { + if (variable != null && variable.eIsProxy()) + { + InternalEObject oldVariable = (InternalEObject)variable; + variable = (NamedElement)eResolveProxy(oldVariable); + if (variable != oldVariable) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE, oldVariable, variable)); + } + } + return variable; + } + + /** + * + * + * @generated + */ + public NamedElement basicGetVariable() + { + return variable; + } + + /** + * + * + * @generated + */ + @Override + public void setVariable(NamedElement newVariable) + { + NamedElement oldVariable = variable; + variable = newVariable; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE, oldVariable, variable)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.TYPED_ARGUMENT__TYPE: + if (resolve) return getType(); + return basicGetType(); + case SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE: + if (resolve) return getVariable(); + return basicGetVariable(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.TYPED_ARGUMENT__TYPE: + setType((NamedElement)newValue); + return; + case SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE: + setVariable((NamedElement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.TYPED_ARGUMENT__TYPE: + setType((NamedElement)null); + return; + case SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE: + setVariable((NamedElement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.TYPED_ARGUMENT__TYPE: + return type != null; + case SolverLanguagePackage.TYPED_ARGUMENT__VARIABLE: + return variable != null; + } + return super.eIsSet(featureID); + } + +} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; +import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument; + +/** + * + * An implementation of the model object 'Typed Star Argument'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.TypedStarArgumentImpl#getType Type}
    • + *
    + * + * @generated + */ +public class TypedStarArgumentImpl extends ArgumentImpl implements TypedStarArgument +{ + /** + * The cached value of the '{@link #getType() Type}' reference. + * + * + * @see #getType() + * @generated + * @ordered + */ + protected NamedElement type; + + /** + * + * + * @generated + */ + protected TypedStarArgumentImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.TYPED_STAR_ARGUMENT; + } + + /** + * + * + * @generated + */ + @Override + public NamedElement getType() + { + if (type != null && type.eIsProxy()) + { + InternalEObject oldType = (InternalEObject)type; + type = (NamedElement)eResolveProxy(oldType); + if (type != oldType) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE, oldType, type)); + } + } + return type; + } + + /** + * + * + * @generated + */ + public NamedElement basicGetType() + { + return type; + } + + /** + * + * + * @generated + */ + @Override + public void setType(NamedElement newType) + { + NamedElement oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE, oldType, type)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE: + if (resolve) return getType(); + return basicGetType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE: + setType((NamedElement)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE: + setType((NamedElement)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.TYPED_STAR_ARGUMENT__TYPE: + return type != null; + } + return super.eIsSet(featureID); + } + +} //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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; +import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression; +import org.eclipse.viatra.solver.language.solverLanguage.UnaryOp; + +/** + * + * An implementation of the model object 'Unary Expression'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl#getOp Op}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnaryExpressionImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class UnaryExpressionImpl extends ExpressionImpl implements UnaryExpression +{ + /** + * The default value of the '{@link #getOp() Op}' attribute. + * + * + * @see #getOp() + * @generated + * @ordered + */ + protected static final UnaryOp OP_EDEFAULT = UnaryOp.NEG; + + /** + * The cached value of the '{@link #getOp() Op}' attribute. + * + * + * @see #getOp() + * @generated + * @ordered + */ + protected UnaryOp op = OP_EDEFAULT; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * + * + * @generated + */ + protected UnaryExpressionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.UNARY_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public UnaryOp getOp() + { + return op; + } + + /** + * + * + * @generated + */ + @Override + public void setOp(UnaryOp newOp) + { + UnaryOp oldOp = op; + op = newOp == null ? OP_EDEFAULT : newOp; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNARY_EXPRESSION__OP, oldOp, op)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) + { + Expression oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNARY_EXPRESSION__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(Expression newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNARY_EXPRESSION__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNARY_EXPRESSION__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNARY_EXPRESSION__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.UNARY_EXPRESSION__BODY: + return basicSetBody(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.UNARY_EXPRESSION__OP: + return getOp(); + case SolverLanguagePackage.UNARY_EXPRESSION__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.UNARY_EXPRESSION__OP: + setOp((UnaryOp)newValue); + return; + case SolverLanguagePackage.UNARY_EXPRESSION__BODY: + setBody((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.UNARY_EXPRESSION__OP: + setOp(OP_EDEFAULT); + return; + case SolverLanguagePackage.UNARY_EXPRESSION__BODY: + setBody((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.UNARY_EXPRESSION__OP: + return op != OP_EDEFAULT; + case SolverLanguagePackage.UNARY_EXPRESSION__BODY: + return body != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (op: "); + result.append(op); + result.append(')'); + return result.toString(); + } + +} //UnaryExpressionImpl 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/UnknownImpl.java deleted file mode 100644 index 44195feb..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/UnknownImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Unknown; - -/** - * - * An implementation of the model object 'Unknown'. - * - * - * @generated - */ -public class UnknownImpl extends TruthValueImpl implements Unknown -{ - /** - * - * - * @generated - */ - protected UnknownImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.UNKNOWN; - } - -} //UnknownImpl 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 @@ +/** + * generated by Xtext 2.21.0 + */ +package org.eclipse.viatra.solver.language.solverLanguage.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList; +import org.eclipse.viatra.solver.language.solverLanguage.Expression; +import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; +import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition; + +/** + * + * An implementation of the model object 'Unnamed Error Prediate Definition'. + * + *

    + * The following features are implemented: + *

    + *
      + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl#getArgumentList Argument List}
    • + *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedErrorPrediateDefinitionImpl#getBody Body}
    • + *
    + * + * @generated + */ +public class UnnamedErrorPrediateDefinitionImpl extends StatementImpl implements UnnamedErrorPrediateDefinition +{ + /** + * The cached value of the '{@link #getArgumentList() Argument List}' containment reference. + * + * + * @see #getArgumentList() + * @generated + * @ordered + */ + protected ArgumentList argumentList; + + /** + * The cached value of the '{@link #getBody() Body}' containment reference. + * + * + * @see #getBody() + * @generated + * @ordered + */ + protected Expression body; + + /** + * + * + * @generated + */ + protected UnnamedErrorPrediateDefinitionImpl() + { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SolverLanguagePackage.Literals.UNNAMED_ERROR_PREDIATE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public ArgumentList getArgumentList() + { + return argumentList; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetArgumentList(ArgumentList newArgumentList, NotificationChain msgs) + { + ArgumentList oldArgumentList = argumentList; + argumentList = newArgumentList; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST, oldArgumentList, newArgumentList); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setArgumentList(ArgumentList newArgumentList) + { + if (newArgumentList != argumentList) + { + NotificationChain msgs = null; + if (argumentList != null) + msgs = ((InternalEObject)argumentList).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST, null, msgs); + if (newArgumentList != null) + msgs = ((InternalEObject)newArgumentList).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST, null, msgs); + msgs = basicSetArgumentList(newArgumentList, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST, newArgumentList, newArgumentList)); + } + + /** + * + * + * @generated + */ + @Override + public Expression getBody() + { + return body; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetBody(Expression newBody, NotificationChain msgs) + { + Expression oldBody = body; + body = newBody; + if (eNotificationRequired()) + { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY, oldBody, newBody); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setBody(Expression newBody) + { + if (newBody != body) + { + NotificationChain msgs = null; + if (body != null) + msgs = ((InternalEObject)body).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY, null, msgs); + if (newBody != null) + msgs = ((InternalEObject)newBody).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY, null, msgs); + msgs = basicSetBody(newBody, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY, newBody, newBody)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST: + return basicSetArgumentList(null, msgs); + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY: + return basicSetBody(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST: + return getArgumentList(); + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY: + return getBody(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST: + setArgumentList((ArgumentList)newValue); + return; + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY: + setBody((Expression)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST: + setArgumentList((ArgumentList)null); + return; + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY: + setBody((Expression)null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST: + return argumentList != null; + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION__BODY: + return body != null; + } + return super.eIsSet(featureID); + } + +} //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 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject; - -/** - * - * An implementation of the model object 'Unnamed Object'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.UnnamedObjectImpl#getName Name}
    • - *
    - * - * @generated - */ -public class UnnamedObjectImpl extends ObjectImpl implements UnnamedObject -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * - * - * @generated - */ - protected UnnamedObjectImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.UNNAMED_OBJECT; - } - - /** - * - * - * @generated - */ - @Override - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - @Override - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.UNNAMED_OBJECT__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.UNNAMED_OBJECT__NAME: - return getName(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.UNNAMED_OBJECT__NAME: - setName((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.UNNAMED_OBJECT__NAME: - setName(NAME_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.UNNAMED_OBJECT__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //UnnamedObjectImpl 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/VariableImpl.java deleted file mode 100644 index 9a254023..00000000 --- a/Application/org.eclipse.viatra.solver.language/src-gen/org/eclipse/viatra/solver/language/solverLanguage/impl/VariableImpl.java +++ /dev/null @@ -1,179 +0,0 @@ -/** - * generated by Xtext 2.18.0.M3 - */ -package org.eclipse.viatra.solver.language.solverLanguage.impl; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; - -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Variable; - -/** - * - * An implementation of the model object 'Variable'. - * - *

    - * The following features are implemented: - *

    - *
      - *
    • {@link org.eclipse.viatra.solver.language.solverLanguage.impl.VariableImpl#getName Name}
    • - *
    - * - * @generated - */ -public class VariableImpl extends LiteralImpl implements Variable -{ - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * - * - * @generated - */ - protected VariableImpl() - { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SolverLanguagePackage.Literals.VARIABLE; - } - - /** - * - * - * @generated - */ - @Override - public String getName() - { - return name; - } - - /** - * - * - * @generated - */ - @Override - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SolverLanguagePackage.VARIABLE__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SolverLanguagePackage.VARIABLE__NAME: - return getName(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SolverLanguagePackage.VARIABLE__NAME: - setName((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.VARIABLE__NAME: - setName(NAME_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SolverLanguagePackage.VARIABLE__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //VariableImpl 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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage.util; @@ -10,57 +10,7 @@ import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; import org.eclipse.emf.ecore.EObject; -import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; -import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; -import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue; -import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClosureType; -import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject; -import org.eclipse.viatra.solver.language.solverLanguage.Constraint; -import org.eclipse.viatra.solver.language.solverLanguage.DataObject; -import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.False; -import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IntObject; -import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure; -import org.eclipse.viatra.solver.language.solverLanguage.Literal; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Negative; -import org.eclipse.viatra.solver.language.solverLanguage.Parameter; -import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol; -import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; -import org.eclipse.viatra.solver.language.solverLanguage.Polarity; -import org.eclipse.viatra.solver.language.solverLanguage.Positive; -import org.eclipse.viatra.solver.language.solverLanguage.Predicate; -import org.eclipse.viatra.solver.language.solverLanguage.Problem; -import org.eclipse.viatra.solver.language.solverLanguage.RealObject; -import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Statement; -import org.eclipse.viatra.solver.language.solverLanguage.StringObject; -import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; -import org.eclipse.viatra.solver.language.solverLanguage.True; -import org.eclipse.viatra.solver.language.solverLanguage.TruthValue; -import org.eclipse.viatra.solver.language.solverLanguage.Unknown; -import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Variable; +import org.eclipse.viatra.solver.language.solverLanguage.*; /** * @@ -136,254 +86,224 @@ public class SolverLanguageAdapterFactory extends AdapterFactoryImpl return createStatementAdapter(); } @Override - public Adapter caseBooleanValue(BooleanValue object) + public Adapter casePredicateDefinition(PredicateDefinition object) { - return createBooleanValueAdapter(); + return createPredicateDefinitionAdapter(); } @Override - public Adapter caseTruthValue(TruthValue object) + public Adapter caseUnnamedErrorPrediateDefinition(UnnamedErrorPrediateDefinition object) { - return createTruthValueAdapter(); + return createUnnamedErrorPrediateDefinitionAdapter(); } @Override - public Adapter caseInterpretation(Interpretation object) + public Adapter caseDefaultDefinition(DefaultDefinition object) { - return createInterpretationAdapter(); + return createDefaultDefinitionAdapter(); } @Override - public Adapter caseBasicInterpretation(BasicInterpretation object) + public Adapter caseExternPredicateDefinition(ExternPredicateDefinition object) { - return createBasicInterpretationAdapter(); + return createExternPredicateDefinitionAdapter(); } @Override - public Adapter caseSymbol(Symbol object) + public Adapter caseMetricDefinition(MetricDefinition object) { - return createSymbolAdapter(); + return createMetricDefinitionAdapter(); } @Override - public Adapter caseModelSymbol(ModelSymbol object) + public Adapter caseExternMetricDefinition(ExternMetricDefinition object) { - return createModelSymbolAdapter(); + return createExternMetricDefinitionAdapter(); } @Override - public Adapter casePartialitySymbol(PartialitySymbol object) + public Adapter caseExpression(Expression object) { - return createPartialitySymbolAdapter(); + return createExpressionAdapter(); } @Override - public Adapter caseExistSymbol(ExistSymbol object) + public Adapter caseIfElse(IfElse object) { - return createExistSymbolAdapter(); + return createIfElseAdapter(); } @Override - public Adapter caseEqualsSymbol(EqualsSymbol object) + public Adapter caseCase(Case object) { - return createEqualsSymbolAdapter(); + return createCaseAdapter(); } @Override - public Adapter caseDataSymbol(DataSymbol object) + public Adapter caseCount(Count object) { - return createDataSymbolAdapter(); + return createCountAdapter(); } @Override - public Adapter caseBooleanSymbol(BooleanSymbol object) + public Adapter caseAggregation(Aggregation object) { - return createBooleanSymbolAdapter(); + return createAggregationAdapter(); } @Override - public Adapter caseIntegerSymbol(IntegerSymbol object) + public Adapter caseCall(Call object) { - return createIntegerSymbolAdapter(); + return createCallAdapter(); } @Override - public Adapter caseRealSymbol(RealSymbol object) + public Adapter caseArgumentList(ArgumentList object) { - return createRealSymbolAdapter(); + return createArgumentListAdapter(); } @Override - public Adapter caseStringSymbol(StringSymbol object) + public Adapter caseArgument(Argument object) { - return createStringSymbolAdapter(); + return createArgumentAdapter(); } @Override - public Adapter caseComplexObject(ComplexObject object) + public Adapter caseExpressionArgument(ExpressionArgument object) { - return createComplexObjectAdapter(); + return createExpressionArgumentAdapter(); } @Override - public Adapter caseObject(org.eclipse.viatra.solver.language.solverLanguage.Object object) + public Adapter caseStarArgument(StarArgument object) { - return createObjectAdapter(); + return createStarArgumentAdapter(); } @Override - public Adapter caseNamedObject(NamedObject object) + public Adapter caseTypedArgument(TypedArgument object) { - return createNamedObjectAdapter(); + return createTypedArgumentAdapter(); } @Override - public Adapter caseUnnamedObject(UnnamedObject object) + public Adapter caseTypedStarArgument(TypedStarArgument object) { - return createUnnamedObjectAdapter(); + return createTypedStarArgumentAdapter(); } @Override - public Adapter caseDataObject(DataObject object) + public Adapter caseReference(Reference object) { - return createDataObjectAdapter(); + return createReferenceAdapter(); } @Override - public Adapter caseBooleanObject(BooleanObject object) + public Adapter caseInterval(Interval object) { - return createBooleanObjectAdapter(); + return createIntervalAdapter(); } @Override - public Adapter caseIntObject(IntObject object) - { - return createIntObjectAdapter(); - } - @Override - public Adapter caseRealObject(RealObject object) - { - return createRealObjectAdapter(); - } - @Override - public Adapter caseStringObject(StringObject object) - { - return createStringObjectAdapter(); - } - @Override - public Adapter casePredicate(Predicate object) - { - return createPredicateAdapter(); - } - @Override - public Adapter caseParameter(Parameter object) - { - return createParameterAdapter(); - } - @Override - public Adapter casePatternBody(PatternBody object) - { - return createPatternBodyAdapter(); - } - @Override - public Adapter casePolarity(Polarity object) + public Adapter caseLiteral(Literal object) { - return createPolarityAdapter(); + return createLiteralAdapter(); } @Override - public Adapter caseConstraint(Constraint object) + public Adapter caseLogicLiteral(LogicLiteral object) { - return createConstraintAdapter(); + return createLogicLiteralAdapter(); } @Override - public Adapter caseClosureType(ClosureType object) + public Adapter caseNumericLiteral(NumericLiteral object) { - return createClosureTypeAdapter(); + return createNumericLiteralAdapter(); } @Override - public Adapter caseLiteral(Literal object) + public Adapter caseInfinityLiteral(InfinityLiteral object) { - return createLiteralAdapter(); + return createInfinityLiteralAdapter(); } @Override - public Adapter caseVariable(Variable object) + public Adapter caseEmptyIntervalLiteral(EmptyIntervalLiteral object) { - return createVariableAdapter(); + return createEmptyIntervalLiteralAdapter(); } @Override - public Adapter caseAllInstances(AllInstances object) + public Adapter caseStringLiteral(StringLiteral object) { - return createAllInstancesAdapter(); + return createStringLiteralAdapter(); } @Override - public Adapter caseAllObjects(AllObjects object) + public Adapter caseMemberDefinition(MemberDefinition object) { - return createAllObjectsAdapter(); + return createMemberDefinitionAdapter(); } @Override - public Adapter caseDefaultInterpretation(DefaultInterpretation object) + public Adapter caseMultiplicity(Multiplicity object) { - return createDefaultInterpretationAdapter(); + return createMultiplicityAdapter(); } @Override - public Adapter caseCDInterpretation(CDInterpretation object) + public Adapter caseManyMultiplicity(ManyMultiplicity object) { - return createCDInterpretationAdapter(); + return createManyMultiplicityAdapter(); } @Override - public Adapter caseClassInterpretation(ClassInterpretation object) + public Adapter caseExactMultiplicity(ExactMultiplicity object) { - return createClassInterpretationAdapter(); + return createExactMultiplicityAdapter(); } @Override - public Adapter caseEnumInterpretation(EnumInterpretation object) + public Adapter caseBoundedMultiplicity(BoundedMultiplicity object) { - return createEnumInterpretationAdapter(); + return createBoundedMultiplicityAdapter(); } @Override - public Adapter caseFieldRelationInterpretation(FieldRelationInterpretation object) + public Adapter caseScopeDefinition(ScopeDefinition object) { - return createFieldRelationInterpretationAdapter(); + return createScopeDefinitionAdapter(); } @Override - public Adapter caseGlobalRelationInterpretation(GlobalRelationInterpretation object) + public Adapter caseExactScopeDefinition(ExactScopeDefinition object) { - return createGlobalRelationInterpretationAdapter(); + return createExactScopeDefinitionAdapter(); } @Override - public Adapter caseMultiplicityDefinition(MultiplicityDefinition object) + public Adapter caseBoundedScopeDefinition(BoundedScopeDefinition object) { - return createMultiplicityDefinitionAdapter(); + return createBoundedScopeDefinitionAdapter(); } @Override - public Adapter caseBooleanTrue(BooleanTrue object) + public Adapter caseLowerBoundedScopeDefinition(LowerBoundedScopeDefinition object) { - return createBooleanTrueAdapter(); + return createLowerBoundedScopeDefinitionAdapter(); } @Override - public Adapter caseBooleanFalse(BooleanFalse object) + public Adapter caseObjectiveDefinition(ObjectiveDefinition object) { - return createBooleanFalseAdapter(); + return createObjectiveDefinitionAdapter(); } @Override - public Adapter caseTrue(True object) + public Adapter caseNamedElement(NamedElement object) { - return createTrueAdapter(); + return createNamedElementAdapter(); } @Override - public Adapter caseFalse(False object) + public Adapter caseAssertion(Assertion object) { - return createFalseAdapter(); + return createAssertionAdapter(); } @Override - public Adapter caseUnknown(Unknown object) + public Adapter caseDisjunction(Disjunction object) { - return createUnknownAdapter(); + return createDisjunctionAdapter(); } @Override - public Adapter caseError(org.eclipse.viatra.solver.language.solverLanguage.Error object) + public Adapter caseSwitch(Switch object) { - return createErrorAdapter(); + return createSwitchAdapter(); } @Override - public Adapter casePositive(Positive object) + public Adapter caseConjunction(Conjunction object) { - return createPositiveAdapter(); + return createConjunctionAdapter(); } @Override - public Adapter caseNegative(Negative object) + public Adapter caseComparison(Comparison object) { - return createNegativeAdapter(); + return createComparisonAdapter(); } @Override - public Adapter caseReflexiveClosure(ReflexiveClosure object) + public Adapter caseBinaryExpression(BinaryExpression object) { - return createReflexiveClosureAdapter(); + return createBinaryExpressionAdapter(); } @Override - public Adapter caseIrreflexiveClosure(IrreflexiveClosure object) + public Adapter caseUnaryExpression(UnaryExpression object) { - return createIrreflexiveClosureAdapter(); + return createUnaryExpressionAdapter(); } @Override public Adapter defaultCase(EObject object) @@ -438,751 +358,661 @@ public class SolverLanguageAdapterFactory extends AdapterFactoryImpl } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanValue Boolean Value}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanValue - * @generated - */ - public Adapter createBooleanValueAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.TruthValue Truth Value}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.TruthValue - * @generated - */ - public Adapter createTruthValueAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Interpretation Interpretation}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Interpretation - * @generated - */ - public Adapter createInterpretationAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation Basic Interpretation}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation - * @generated - */ - public Adapter createBasicInterpretationAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Symbol Symbol}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Symbol - * @generated - */ - public Adapter createSymbolAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol Model Symbol}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition Predicate Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition * @generated */ - public Adapter createModelSymbolAdapter() + public Adapter createPredicateDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol Partiality Symbol}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition Unnamed Error Prediate Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition * @generated */ - public Adapter createPartialitySymbolAdapter() + public Adapter createUnnamedErrorPrediateDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol Exist Symbol}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition Default Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition * @generated */ - public Adapter createExistSymbolAdapter() + public Adapter createDefaultDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol Equals Symbol}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition Extern Predicate Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition * @generated */ - public Adapter createEqualsSymbolAdapter() + public Adapter createExternPredicateDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.DataSymbol Data Symbol}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition Metric Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.DataSymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition * @generated */ - public Adapter createDataSymbolAdapter() + public Adapter createMetricDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol Boolean Symbol}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition Extern Metric Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition * @generated */ - public Adapter createBooleanSymbolAdapter() + public Adapter createExternMetricDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol Integer Symbol}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Expression Expression}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.Expression * @generated */ - public Adapter createIntegerSymbolAdapter() + public Adapter createExpressionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.RealSymbol Real Symbol}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.IfElse If Else}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.RealSymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.IfElse * @generated */ - public Adapter createRealSymbolAdapter() + public Adapter createIfElseAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringSymbol String Symbol}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Case Case}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.StringSymbol + * @see org.eclipse.viatra.solver.language.solverLanguage.Case * @generated */ - public Adapter createStringSymbolAdapter() + public Adapter createCaseAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ComplexObject Complex Object}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Count Count}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.ComplexObject + * @see org.eclipse.viatra.solver.language.solverLanguage.Count * @generated */ - public Adapter createComplexObjectAdapter() + public Adapter createCountAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Object Object}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Aggregation Aggregation}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Object + * @see org.eclipse.viatra.solver.language.solverLanguage.Aggregation * @generated */ - public Adapter createObjectAdapter() + public Adapter createAggregationAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedObject Named Object}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Call Call}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.NamedObject + * @see org.eclipse.viatra.solver.language.solverLanguage.Call * @generated */ - public Adapter createNamedObjectAdapter() + public Adapter createCallAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject Unnamed Object}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ArgumentList Argument List}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject + * @see org.eclipse.viatra.solver.language.solverLanguage.ArgumentList * @generated */ - public Adapter createUnnamedObjectAdapter() + public Adapter createArgumentListAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.DataObject Data Object}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Argument Argument}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.DataObject + * @see org.eclipse.viatra.solver.language.solverLanguage.Argument * @generated */ - public Adapter createDataObjectAdapter() + public Adapter createArgumentAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanObject Boolean Object}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument Expression Argument}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanObject + * @see org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument * @generated */ - public Adapter createBooleanObjectAdapter() + public Adapter createExpressionArgumentAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.IntObject Int Object}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.StarArgument Star Argument}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.IntObject + * @see org.eclipse.viatra.solver.language.solverLanguage.StarArgument * @generated */ - public Adapter createIntObjectAdapter() + public Adapter createStarArgumentAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.RealObject Real Object}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedArgument Typed Argument}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.RealObject + * @see org.eclipse.viatra.solver.language.solverLanguage.TypedArgument * @generated */ - public Adapter createRealObjectAdapter() + public Adapter createTypedArgumentAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringObject String Object}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument Typed Star Argument}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.StringObject + * @see org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument * @generated */ - public Adapter createStringObjectAdapter() + public Adapter createTypedStarArgumentAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Predicate Predicate}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Reference Reference}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Predicate + * @see org.eclipse.viatra.solver.language.solverLanguage.Reference * @generated */ - public Adapter createPredicateAdapter() + public Adapter createReferenceAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Parameter Parameter}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Interval Interval}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Parameter + * @see org.eclipse.viatra.solver.language.solverLanguage.Interval * @generated */ - public Adapter createParameterAdapter() + public Adapter createIntervalAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.PatternBody Pattern Body}'. - * - * This default implementation returns null so that we can easily ignore cases; - * it's useful to ignore a case when inheritance will catch all the cases anyway. - * - * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.PatternBody - * @generated - */ - public Adapter createPatternBodyAdapter() - { - return null; - } - - /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Polarity Polarity}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Literal Literal}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Polarity + * @see org.eclipse.viatra.solver.language.solverLanguage.Literal * @generated */ - public Adapter createPolarityAdapter() + public Adapter createLiteralAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Constraint Constraint}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral Logic Literal}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Constraint + * @see org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral * @generated */ - public Adapter createConstraintAdapter() + public Adapter createLogicLiteralAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ClosureType Closure Type}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral Numeric Literal}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.ClosureType + * @see org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral * @generated */ - public Adapter createClosureTypeAdapter() + public Adapter createNumericLiteralAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Literal Literal}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral Infinity Literal}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Literal + * @see org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral * @generated */ - public Adapter createLiteralAdapter() + public Adapter createInfinityLiteralAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Variable Variable}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral Empty Interval Literal}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Variable + * @see org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral * @generated */ - public Adapter createVariableAdapter() + public Adapter createEmptyIntervalLiteralAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.AllInstances All Instances}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.StringLiteral String Literal}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.AllInstances + * @see org.eclipse.viatra.solver.language.solverLanguage.StringLiteral * @generated */ - public Adapter createAllInstancesAdapter() + public Adapter createStringLiteralAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.AllObjects All Objects}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition Member Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.AllObjects + * @see org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition * @generated */ - public Adapter createAllObjectsAdapter() + public Adapter createMemberDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation Default Interpretation}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Multiplicity Multiplicity}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation + * @see org.eclipse.viatra.solver.language.solverLanguage.Multiplicity * @generated */ - public Adapter createDefaultInterpretationAdapter() + public Adapter createMultiplicityAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation CD Interpretation}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity Many Multiplicity}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation + * @see org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity * @generated */ - public Adapter createCDInterpretationAdapter() + public Adapter createManyMultiplicityAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation Class Interpretation}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity Exact Multiplicity}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation + * @see org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity * @generated */ - public Adapter createClassInterpretationAdapter() + public Adapter createExactMultiplicityAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation Enum Interpretation}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity Bounded Multiplicity}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation + * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity * @generated */ - public Adapter createEnumInterpretationAdapter() + public Adapter createBoundedMultiplicityAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation Field Relation Interpretation}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition Scope Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation + * @see org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition * @generated */ - public Adapter createFieldRelationInterpretationAdapter() + public Adapter createScopeDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation Global Relation Interpretation}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition Exact Scope Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation + * @see org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition * @generated */ - public Adapter createGlobalRelationInterpretationAdapter() + public Adapter createExactScopeDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition Multiplicity Definition}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition Bounded Scope Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition + * @see org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition * @generated */ - public Adapter createMultiplicityDefinitionAdapter() + public Adapter createBoundedScopeDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue Boolean True}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition Lower Bounded Scope Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue + * @see org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition * @generated */ - public Adapter createBooleanTrueAdapter() + public Adapter createLowerBoundedScopeDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse Boolean False}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition Objective Definition}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse + * @see org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition * @generated */ - public Adapter createBooleanFalseAdapter() + public Adapter createObjectiveDefinitionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.True True}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.NamedElement Named Element}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.True + * @see org.eclipse.viatra.solver.language.solverLanguage.NamedElement * @generated */ - public Adapter createTrueAdapter() + public Adapter createNamedElementAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.False False}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Assertion Assertion}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.False + * @see org.eclipse.viatra.solver.language.solverLanguage.Assertion * @generated */ - public Adapter createFalseAdapter() + public Adapter createAssertionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Unknown Unknown}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Disjunction Disjunction}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Unknown + * @see org.eclipse.viatra.solver.language.solverLanguage.Disjunction * @generated */ - public Adapter createUnknownAdapter() + public Adapter createDisjunctionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Error Error}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Switch Switch}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Error + * @see org.eclipse.viatra.solver.language.solverLanguage.Switch * @generated */ - public Adapter createErrorAdapter() + public Adapter createSwitchAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Positive Positive}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Conjunction Conjunction}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Positive + * @see org.eclipse.viatra.solver.language.solverLanguage.Conjunction * @generated */ - public Adapter createPositiveAdapter() + public Adapter createConjunctionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Negative Negative}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.Comparison Comparison}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.Negative + * @see org.eclipse.viatra.solver.language.solverLanguage.Comparison * @generated */ - public Adapter createNegativeAdapter() + public Adapter createComparisonAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure Reflexive Closure}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression Binary Expression}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure + * @see org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression * @generated */ - public Adapter createReflexiveClosureAdapter() + public Adapter createBinaryExpressionAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure Irreflexive Closure}'. + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression Unary Expression}'. * * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * * @return the new adapter. - * @see org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure + * @see org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression * @generated */ - public Adapter createIrreflexiveClosureAdapter() + public Adapter createUnaryExpressionAdapter() { return null; } 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 @@ /** - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage.util; @@ -8,57 +8,7 @@ import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.util.Switch; -import org.eclipse.viatra.solver.language.solverLanguage.AllInstances; -import org.eclipse.viatra.solver.language.solverLanguage.AllObjects; -import org.eclipse.viatra.solver.language.solverLanguage.BasicInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanFalse; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanObject; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanTrue; -import org.eclipse.viatra.solver.language.solverLanguage.BooleanValue; -import org.eclipse.viatra.solver.language.solverLanguage.CDInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClassInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.ClosureType; -import org.eclipse.viatra.solver.language.solverLanguage.ComplexObject; -import org.eclipse.viatra.solver.language.solverLanguage.Constraint; -import org.eclipse.viatra.solver.language.solverLanguage.DataObject; -import org.eclipse.viatra.solver.language.solverLanguage.DataSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.DefaultInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EnumInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.EqualsSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ExistSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.False; -import org.eclipse.viatra.solver.language.solverLanguage.FieldRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.GlobalRelationInterpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IntObject; -import org.eclipse.viatra.solver.language.solverLanguage.IntegerSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; -import org.eclipse.viatra.solver.language.solverLanguage.IrreflexiveClosure; -import org.eclipse.viatra.solver.language.solverLanguage.Literal; -import org.eclipse.viatra.solver.language.solverLanguage.ModelSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.MultiplicityDefinition; -import org.eclipse.viatra.solver.language.solverLanguage.NamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Negative; -import org.eclipse.viatra.solver.language.solverLanguage.Parameter; -import org.eclipse.viatra.solver.language.solverLanguage.PartialitySymbol; -import org.eclipse.viatra.solver.language.solverLanguage.PatternBody; -import org.eclipse.viatra.solver.language.solverLanguage.Polarity; -import org.eclipse.viatra.solver.language.solverLanguage.Positive; -import org.eclipse.viatra.solver.language.solverLanguage.Predicate; -import org.eclipse.viatra.solver.language.solverLanguage.Problem; -import org.eclipse.viatra.solver.language.solverLanguage.RealObject; -import org.eclipse.viatra.solver.language.solverLanguage.RealSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.ReflexiveClosure; -import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; -import org.eclipse.viatra.solver.language.solverLanguage.Statement; -import org.eclipse.viatra.solver.language.solverLanguage.StringObject; -import org.eclipse.viatra.solver.language.solverLanguage.StringSymbol; -import org.eclipse.viatra.solver.language.solverLanguage.Symbol; -import org.eclipse.viatra.solver.language.solverLanguage.True; -import org.eclipse.viatra.solver.language.solverLanguage.TruthValue; -import org.eclipse.viatra.solver.language.solverLanguage.Unknown; -import org.eclipse.viatra.solver.language.solverLanguage.UnnamedObject; -import org.eclipse.viatra.solver.language.solverLanguage.Variable; +import org.eclipse.viatra.solver.language.solverLanguage.*; /** * @@ -137,423 +87,377 @@ public class SolverLanguageSwitch extends Switch if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.BOOLEAN_VALUE: + case SolverLanguagePackage.PREDICATE_DEFINITION: { - BooleanValue booleanValue = (BooleanValue)theEObject; - T result = caseBooleanValue(booleanValue); + PredicateDefinition predicateDefinition = (PredicateDefinition)theEObject; + T result = casePredicateDefinition(predicateDefinition); + if (result == null) result = caseStatement(predicateDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.TRUTH_VALUE: + case SolverLanguagePackage.UNNAMED_ERROR_PREDIATE_DEFINITION: { - TruthValue truthValue = (TruthValue)theEObject; - T result = caseTruthValue(truthValue); + UnnamedErrorPrediateDefinition unnamedErrorPrediateDefinition = (UnnamedErrorPrediateDefinition)theEObject; + T result = caseUnnamedErrorPrediateDefinition(unnamedErrorPrediateDefinition); + if (result == null) result = caseStatement(unnamedErrorPrediateDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.INTERPRETATION: + case SolverLanguagePackage.DEFAULT_DEFINITION: { - Interpretation interpretation = (Interpretation)theEObject; - T result = caseInterpretation(interpretation); - if (result == null) result = caseStatement(interpretation); + DefaultDefinition defaultDefinition = (DefaultDefinition)theEObject; + T result = caseDefaultDefinition(defaultDefinition); + if (result == null) result = caseStatement(defaultDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.BASIC_INTERPRETATION: + case SolverLanguagePackage.EXTERN_PREDICATE_DEFINITION: { - BasicInterpretation basicInterpretation = (BasicInterpretation)theEObject; - T result = caseBasicInterpretation(basicInterpretation); - if (result == null) result = caseInterpretation(basicInterpretation); - if (result == null) result = caseStatement(basicInterpretation); + ExternPredicateDefinition externPredicateDefinition = (ExternPredicateDefinition)theEObject; + T result = caseExternPredicateDefinition(externPredicateDefinition); + if (result == null) result = caseStatement(externPredicateDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.SYMBOL: + case SolverLanguagePackage.METRIC_DEFINITION: { - Symbol symbol = (Symbol)theEObject; - T result = caseSymbol(symbol); + MetricDefinition metricDefinition = (MetricDefinition)theEObject; + T result = caseMetricDefinition(metricDefinition); + if (result == null) result = caseStatement(metricDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.MODEL_SYMBOL: + case SolverLanguagePackage.EXTERN_METRIC_DEFINITION: { - ModelSymbol modelSymbol = (ModelSymbol)theEObject; - T result = caseModelSymbol(modelSymbol); - if (result == null) result = caseSymbol(modelSymbol); + ExternMetricDefinition externMetricDefinition = (ExternMetricDefinition)theEObject; + T result = caseExternMetricDefinition(externMetricDefinition); + if (result == null) result = caseStatement(externMetricDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.PARTIALITY_SYMBOL: + case SolverLanguagePackage.EXPRESSION: { - PartialitySymbol partialitySymbol = (PartialitySymbol)theEObject; - T result = casePartialitySymbol(partialitySymbol); - if (result == null) result = caseSymbol(partialitySymbol); + Expression expression = (Expression)theEObject; + T result = caseExpression(expression); + if (result == null) result = caseStatement(expression); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.EXIST_SYMBOL: + case SolverLanguagePackage.IF_ELSE: { - ExistSymbol existSymbol = (ExistSymbol)theEObject; - T result = caseExistSymbol(existSymbol); - if (result == null) result = casePartialitySymbol(existSymbol); - if (result == null) result = caseSymbol(existSymbol); + IfElse ifElse = (IfElse)theEObject; + T result = caseIfElse(ifElse); + if (result == null) result = caseExpression(ifElse); + if (result == null) result = caseStatement(ifElse); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.EQUALS_SYMBOL: + case SolverLanguagePackage.CASE: { - EqualsSymbol equalsSymbol = (EqualsSymbol)theEObject; - T result = caseEqualsSymbol(equalsSymbol); - if (result == null) result = casePartialitySymbol(equalsSymbol); - if (result == null) result = caseSymbol(equalsSymbol); + Case case_ = (Case)theEObject; + T result = caseCase(case_); + if (result == null) result = caseExpression(case_); + if (result == null) result = caseStatement(case_); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.DATA_SYMBOL: + case SolverLanguagePackage.COUNT: { - DataSymbol dataSymbol = (DataSymbol)theEObject; - T result = caseDataSymbol(dataSymbol); - if (result == null) result = caseSymbol(dataSymbol); + Count count = (Count)theEObject; + T result = caseCount(count); + if (result == null) result = caseExpression(count); + if (result == null) result = caseStatement(count); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.BOOLEAN_SYMBOL: + case SolverLanguagePackage.AGGREGATION: { - BooleanSymbol booleanSymbol = (BooleanSymbol)theEObject; - T result = caseBooleanSymbol(booleanSymbol); - if (result == null) result = caseDataSymbol(booleanSymbol); - if (result == null) result = caseSymbol(booleanSymbol); + Aggregation aggregation = (Aggregation)theEObject; + T result = caseAggregation(aggregation); + if (result == null) result = caseExpression(aggregation); + if (result == null) result = caseStatement(aggregation); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.INTEGER_SYMBOL: + case SolverLanguagePackage.CALL: { - IntegerSymbol integerSymbol = (IntegerSymbol)theEObject; - T result = caseIntegerSymbol(integerSymbol); - if (result == null) result = caseDataSymbol(integerSymbol); - if (result == null) result = caseSymbol(integerSymbol); + Call call = (Call)theEObject; + T result = caseCall(call); + if (result == null) result = caseExpression(call); + if (result == null) result = caseStatement(call); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.REAL_SYMBOL: + case SolverLanguagePackage.ARGUMENT_LIST: { - RealSymbol realSymbol = (RealSymbol)theEObject; - T result = caseRealSymbol(realSymbol); - if (result == null) result = caseDataSymbol(realSymbol); - if (result == null) result = caseSymbol(realSymbol); + ArgumentList argumentList = (ArgumentList)theEObject; + T result = caseArgumentList(argumentList); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.STRING_SYMBOL: + case SolverLanguagePackage.ARGUMENT: { - StringSymbol stringSymbol = (StringSymbol)theEObject; - T result = caseStringSymbol(stringSymbol); - if (result == null) result = caseDataSymbol(stringSymbol); - if (result == null) result = caseSymbol(stringSymbol); + Argument argument = (Argument)theEObject; + T result = caseArgument(argument); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.COMPLEX_OBJECT: + case SolverLanguagePackage.EXPRESSION_ARGUMENT: { - ComplexObject complexObject = (ComplexObject)theEObject; - T result = caseComplexObject(complexObject); + ExpressionArgument expressionArgument = (ExpressionArgument)theEObject; + T result = caseExpressionArgument(expressionArgument); + if (result == null) result = caseArgument(expressionArgument); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.OBJECT: + case SolverLanguagePackage.STAR_ARGUMENT: { - org.eclipse.viatra.solver.language.solverLanguage.Object object = (org.eclipse.viatra.solver.language.solverLanguage.Object)theEObject; - T result = caseObject(object); - if (result == null) result = caseComplexObject(object); + StarArgument starArgument = (StarArgument)theEObject; + T result = caseStarArgument(starArgument); + if (result == null) result = caseArgument(starArgument); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.NAMED_OBJECT: + case SolverLanguagePackage.TYPED_ARGUMENT: { - NamedObject namedObject = (NamedObject)theEObject; - T result = caseNamedObject(namedObject); - if (result == null) result = caseObject(namedObject); - if (result == null) result = caseLiteral(namedObject); - if (result == null) result = caseComplexObject(namedObject); + TypedArgument typedArgument = (TypedArgument)theEObject; + T result = caseTypedArgument(typedArgument); + if (result == null) result = caseArgument(typedArgument); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.UNNAMED_OBJECT: + case SolverLanguagePackage.TYPED_STAR_ARGUMENT: { - UnnamedObject unnamedObject = (UnnamedObject)theEObject; - T result = caseUnnamedObject(unnamedObject); - if (result == null) result = caseObject(unnamedObject); - if (result == null) result = caseComplexObject(unnamedObject); + TypedStarArgument typedStarArgument = (TypedStarArgument)theEObject; + T result = caseTypedStarArgument(typedStarArgument); + if (result == null) result = caseArgument(typedStarArgument); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.DATA_OBJECT: + case SolverLanguagePackage.REFERENCE: { - DataObject dataObject = (DataObject)theEObject; - T result = caseDataObject(dataObject); - if (result == null) result = caseObject(dataObject); - if (result == null) result = caseLiteral(dataObject); - if (result == null) result = caseComplexObject(dataObject); + Reference reference = (Reference)theEObject; + T result = caseReference(reference); + if (result == null) result = caseExpression(reference); + if (result == null) result = caseStatement(reference); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.BOOLEAN_OBJECT: + case SolverLanguagePackage.INTERVAL: { - BooleanObject booleanObject = (BooleanObject)theEObject; - T result = caseBooleanObject(booleanObject); - if (result == null) result = caseDataObject(booleanObject); - if (result == null) result = caseObject(booleanObject); - if (result == null) result = caseLiteral(booleanObject); - if (result == null) result = caseComplexObject(booleanObject); + Interval interval = (Interval)theEObject; + T result = caseInterval(interval); + if (result == null) result = caseExpression(interval); + if (result == null) result = caseStatement(interval); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.INT_OBJECT: - { - IntObject intObject = (IntObject)theEObject; - T result = caseIntObject(intObject); - if (result == null) result = caseDataObject(intObject); - if (result == null) result = caseObject(intObject); - if (result == null) result = caseLiteral(intObject); - if (result == null) result = caseComplexObject(intObject); - if (result == null) result = defaultCase(theEObject); - return result; - } - case SolverLanguagePackage.REAL_OBJECT: - { - RealObject realObject = (RealObject)theEObject; - T result = caseRealObject(realObject); - if (result == null) result = caseDataObject(realObject); - if (result == null) result = caseObject(realObject); - if (result == null) result = caseLiteral(realObject); - if (result == null) result = caseComplexObject(realObject); - if (result == null) result = defaultCase(theEObject); - return result; - } - case SolverLanguagePackage.STRING_OBJECT: - { - StringObject stringObject = (StringObject)theEObject; - T result = caseStringObject(stringObject); - if (result == null) result = caseDataObject(stringObject); - if (result == null) result = caseObject(stringObject); - if (result == null) result = caseLiteral(stringObject); - if (result == null) result = caseComplexObject(stringObject); - if (result == null) result = defaultCase(theEObject); - return result; - } - case SolverLanguagePackage.PREDICATE: - { - Predicate predicate = (Predicate)theEObject; - T result = casePredicate(predicate); - if (result == null) result = caseStatement(predicate); - if (result == null) result = defaultCase(theEObject); - return result; - } - case SolverLanguagePackage.PARAMETER: - { - Parameter parameter = (Parameter)theEObject; - T result = caseParameter(parameter); - if (result == null) result = defaultCase(theEObject); - return result; - } - case SolverLanguagePackage.PATTERN_BODY: + case SolverLanguagePackage.LITERAL: { - PatternBody patternBody = (PatternBody)theEObject; - T result = casePatternBody(patternBody); + Literal literal = (Literal)theEObject; + T result = caseLiteral(literal); + if (result == null) result = caseExpression(literal); + if (result == null) result = caseStatement(literal); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.POLARITY: + case SolverLanguagePackage.LOGIC_LITERAL: { - Polarity polarity = (Polarity)theEObject; - T result = casePolarity(polarity); + LogicLiteral logicLiteral = (LogicLiteral)theEObject; + T result = caseLogicLiteral(logicLiteral); + if (result == null) result = caseLiteral(logicLiteral); + if (result == null) result = caseExpression(logicLiteral); + if (result == null) result = caseStatement(logicLiteral); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.CONSTRAINT: + case SolverLanguagePackage.NUMERIC_LITERAL: { - Constraint constraint = (Constraint)theEObject; - T result = caseConstraint(constraint); + NumericLiteral numericLiteral = (NumericLiteral)theEObject; + T result = caseNumericLiteral(numericLiteral); + if (result == null) result = caseLiteral(numericLiteral); + if (result == null) result = caseExpression(numericLiteral); + if (result == null) result = caseStatement(numericLiteral); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.CLOSURE_TYPE: + case SolverLanguagePackage.INFINITY_LITERAL: { - ClosureType closureType = (ClosureType)theEObject; - T result = caseClosureType(closureType); + InfinityLiteral infinityLiteral = (InfinityLiteral)theEObject; + T result = caseInfinityLiteral(infinityLiteral); + if (result == null) result = caseLiteral(infinityLiteral); + if (result == null) result = caseExpression(infinityLiteral); + if (result == null) result = caseStatement(infinityLiteral); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.LITERAL: + case SolverLanguagePackage.EMPTY_INTERVAL_LITERAL: { - Literal literal = (Literal)theEObject; - T result = caseLiteral(literal); + EmptyIntervalLiteral emptyIntervalLiteral = (EmptyIntervalLiteral)theEObject; + T result = caseEmptyIntervalLiteral(emptyIntervalLiteral); + if (result == null) result = caseLiteral(emptyIntervalLiteral); + if (result == null) result = caseExpression(emptyIntervalLiteral); + if (result == null) result = caseStatement(emptyIntervalLiteral); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.VARIABLE: + case SolverLanguagePackage.STRING_LITERAL: { - Variable variable = (Variable)theEObject; - T result = caseVariable(variable); - if (result == null) result = caseLiteral(variable); + StringLiteral stringLiteral = (StringLiteral)theEObject; + T result = caseStringLiteral(stringLiteral); + if (result == null) result = caseLiteral(stringLiteral); + if (result == null) result = caseExpression(stringLiteral); + if (result == null) result = caseStatement(stringLiteral); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.ALL_INSTANCES: + case SolverLanguagePackage.MEMBER_DEFINITION: { - AllInstances allInstances = (AllInstances)theEObject; - T result = caseAllInstances(allInstances); - if (result == null) result = caseComplexObject(allInstances); + MemberDefinition memberDefinition = (MemberDefinition)theEObject; + T result = caseMemberDefinition(memberDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.ALL_OBJECTS: + case SolverLanguagePackage.MULTIPLICITY: { - AllObjects allObjects = (AllObjects)theEObject; - T result = caseAllObjects(allObjects); - if (result == null) result = caseComplexObject(allObjects); + Multiplicity multiplicity = (Multiplicity)theEObject; + T result = caseMultiplicity(multiplicity); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.DEFAULT_INTERPRETATION: + case SolverLanguagePackage.MANY_MULTIPLICITY: { - DefaultInterpretation defaultInterpretation = (DefaultInterpretation)theEObject; - T result = caseDefaultInterpretation(defaultInterpretation); - if (result == null) result = caseInterpretation(defaultInterpretation); - if (result == null) result = caseStatement(defaultInterpretation); + ManyMultiplicity manyMultiplicity = (ManyMultiplicity)theEObject; + T result = caseManyMultiplicity(manyMultiplicity); + if (result == null) result = caseMultiplicity(manyMultiplicity); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.CD_INTERPRETATION: + case SolverLanguagePackage.EXACT_MULTIPLICITY: { - CDInterpretation cdInterpretation = (CDInterpretation)theEObject; - T result = caseCDInterpretation(cdInterpretation); - if (result == null) result = caseInterpretation(cdInterpretation); - if (result == null) result = caseStatement(cdInterpretation); + ExactMultiplicity exactMultiplicity = (ExactMultiplicity)theEObject; + T result = caseExactMultiplicity(exactMultiplicity); + if (result == null) result = caseMultiplicity(exactMultiplicity); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.CLASS_INTERPRETATION: + case SolverLanguagePackage.BOUNDED_MULTIPLICITY: { - ClassInterpretation classInterpretation = (ClassInterpretation)theEObject; - T result = caseClassInterpretation(classInterpretation); - if (result == null) result = caseCDInterpretation(classInterpretation); - if (result == null) result = caseInterpretation(classInterpretation); - if (result == null) result = caseStatement(classInterpretation); + BoundedMultiplicity boundedMultiplicity = (BoundedMultiplicity)theEObject; + T result = caseBoundedMultiplicity(boundedMultiplicity); + if (result == null) result = caseMultiplicity(boundedMultiplicity); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.ENUM_INTERPRETATION: + case SolverLanguagePackage.SCOPE_DEFINITION: { - EnumInterpretation enumInterpretation = (EnumInterpretation)theEObject; - T result = caseEnumInterpretation(enumInterpretation); - if (result == null) result = caseCDInterpretation(enumInterpretation); - if (result == null) result = caseInterpretation(enumInterpretation); - if (result == null) result = caseStatement(enumInterpretation); + ScopeDefinition scopeDefinition = (ScopeDefinition)theEObject; + T result = caseScopeDefinition(scopeDefinition); + if (result == null) result = caseStatement(scopeDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.FIELD_RELATION_INTERPRETATION: + case SolverLanguagePackage.EXACT_SCOPE_DEFINITION: { - FieldRelationInterpretation fieldRelationInterpretation = (FieldRelationInterpretation)theEObject; - T result = caseFieldRelationInterpretation(fieldRelationInterpretation); + ExactScopeDefinition exactScopeDefinition = (ExactScopeDefinition)theEObject; + T result = caseExactScopeDefinition(exactScopeDefinition); + if (result == null) result = caseScopeDefinition(exactScopeDefinition); + if (result == null) result = caseStatement(exactScopeDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.GLOBAL_RELATION_INTERPRETATION: + case SolverLanguagePackage.BOUNDED_SCOPE_DEFINITION: { - GlobalRelationInterpretation globalRelationInterpretation = (GlobalRelationInterpretation)theEObject; - T result = caseGlobalRelationInterpretation(globalRelationInterpretation); - if (result == null) result = caseCDInterpretation(globalRelationInterpretation); - if (result == null) result = caseInterpretation(globalRelationInterpretation); - if (result == null) result = caseStatement(globalRelationInterpretation); + BoundedScopeDefinition boundedScopeDefinition = (BoundedScopeDefinition)theEObject; + T result = caseBoundedScopeDefinition(boundedScopeDefinition); + if (result == null) result = caseScopeDefinition(boundedScopeDefinition); + if (result == null) result = caseStatement(boundedScopeDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.MULTIPLICITY_DEFINITION: + case SolverLanguagePackage.LOWER_BOUNDED_SCOPE_DEFINITION: { - MultiplicityDefinition multiplicityDefinition = (MultiplicityDefinition)theEObject; - T result = caseMultiplicityDefinition(multiplicityDefinition); + LowerBoundedScopeDefinition lowerBoundedScopeDefinition = (LowerBoundedScopeDefinition)theEObject; + T result = caseLowerBoundedScopeDefinition(lowerBoundedScopeDefinition); + if (result == null) result = caseScopeDefinition(lowerBoundedScopeDefinition); + if (result == null) result = caseStatement(lowerBoundedScopeDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.BOOLEAN_TRUE: + case SolverLanguagePackage.OBJECTIVE_DEFINITION: { - BooleanTrue booleanTrue = (BooleanTrue)theEObject; - T result = caseBooleanTrue(booleanTrue); - if (result == null) result = caseBooleanValue(booleanTrue); + ObjectiveDefinition objectiveDefinition = (ObjectiveDefinition)theEObject; + T result = caseObjectiveDefinition(objectiveDefinition); + if (result == null) result = caseStatement(objectiveDefinition); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.BOOLEAN_FALSE: + case SolverLanguagePackage.NAMED_ELEMENT: { - BooleanFalse booleanFalse = (BooleanFalse)theEObject; - T result = caseBooleanFalse(booleanFalse); - if (result == null) result = caseBooleanValue(booleanFalse); + NamedElement namedElement = (NamedElement)theEObject; + T result = caseNamedElement(namedElement); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.TRUE: + case SolverLanguagePackage.ASSERTION: { - True true_ = (True)theEObject; - T result = caseTrue(true_); - if (result == null) result = caseTruthValue(true_); + Assertion assertion = (Assertion)theEObject; + T result = caseAssertion(assertion); + if (result == null) result = caseStatement(assertion); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.FALSE: + case SolverLanguagePackage.DISJUNCTION: { - False false_ = (False)theEObject; - T result = caseFalse(false_); - if (result == null) result = caseTruthValue(false_); + Disjunction disjunction = (Disjunction)theEObject; + T result = caseDisjunction(disjunction); + if (result == null) result = caseExpression(disjunction); + if (result == null) result = caseStatement(disjunction); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.UNKNOWN: + case SolverLanguagePackage.SWITCH: { - Unknown unknown = (Unknown)theEObject; - T result = caseUnknown(unknown); - if (result == null) result = caseTruthValue(unknown); + org.eclipse.viatra.solver.language.solverLanguage.Switch switch_ = (org.eclipse.viatra.solver.language.solverLanguage.Switch)theEObject; + T result = caseSwitch(switch_); + if (result == null) result = caseExpression(switch_); + if (result == null) result = caseStatement(switch_); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.ERROR: + case SolverLanguagePackage.CONJUNCTION: { - org.eclipse.viatra.solver.language.solverLanguage.Error error = (org.eclipse.viatra.solver.language.solverLanguage.Error)theEObject; - T result = caseError(error); - if (result == null) result = caseTruthValue(error); + Conjunction conjunction = (Conjunction)theEObject; + T result = caseConjunction(conjunction); + if (result == null) result = caseExpression(conjunction); + if (result == null) result = caseStatement(conjunction); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.POSITIVE: + case SolverLanguagePackage.COMPARISON: { - Positive positive = (Positive)theEObject; - T result = casePositive(positive); - if (result == null) result = casePolarity(positive); + Comparison comparison = (Comparison)theEObject; + T result = caseComparison(comparison); + if (result == null) result = caseExpression(comparison); + if (result == null) result = caseStatement(comparison); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.NEGATIVE: + case SolverLanguagePackage.BINARY_EXPRESSION: { - Negative negative = (Negative)theEObject; - T result = caseNegative(negative); - if (result == null) result = casePolarity(negative); + BinaryExpression binaryExpression = (BinaryExpression)theEObject; + T result = caseBinaryExpression(binaryExpression); + if (result == null) result = caseExpression(binaryExpression); + if (result == null) result = caseStatement(binaryExpression); if (result == null) result = defaultCase(theEObject); return result; } - case SolverLanguagePackage.REFLEXIVE_CLOSURE: + case SolverLanguagePackage.UNARY_EXPRESSION: { - ReflexiveClosure reflexiveClosure = (ReflexiveClosure)theEObject; - T result = caseReflexiveClosure(reflexiveClosure); - if (result == null) result = caseClosureType(reflexiveClosure); - if (result == null) result = defaultCase(theEObject); - return result; - } - case SolverLanguagePackage.IRREFLEXIVE_CLOSURE: - { - IrreflexiveClosure irreflexiveClosure = (IrreflexiveClosure)theEObject; - T result = caseIrreflexiveClosure(irreflexiveClosure); - if (result == null) result = caseClosureType(irreflexiveClosure); + UnaryExpression unaryExpression = (UnaryExpression)theEObject; + T result = caseUnaryExpression(unaryExpression); + if (result == null) result = caseExpression(unaryExpression); + if (result == null) result = caseStatement(unaryExpression); if (result == null) result = defaultCase(theEObject); return result; } @@ -594,801 +498,705 @@ public class SolverLanguageSwitch extends Switch } /** - * Returns the result of interpreting the object as an instance of 'Boolean Value'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Boolean Value'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseBooleanValue(BooleanValue object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Truth Value'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Truth Value'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseTruthValue(TruthValue object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Interpretation'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Interpretation'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseInterpretation(Interpretation object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Basic Interpretation'. + * Returns the result of interpreting the object as an instance of 'Predicate Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Basic Interpretation'. + * @return the result of interpreting the object as an instance of 'Predicate Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseBasicInterpretation(BasicInterpretation object) + public T casePredicateDefinition(PredicateDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Symbol'. + * Returns the result of interpreting the object as an instance of 'Unnamed Error Prediate Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Symbol'. + * @return the result of interpreting the object as an instance of 'Unnamed Error Prediate Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseSymbol(Symbol object) + public T caseUnnamedErrorPrediateDefinition(UnnamedErrorPrediateDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Model Symbol'. + * Returns the result of interpreting the object as an instance of 'Default Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Model Symbol'. + * @return the result of interpreting the object as an instance of 'Default Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseModelSymbol(ModelSymbol object) + public T caseDefaultDefinition(DefaultDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Partiality Symbol'. + * Returns the result of interpreting the object as an instance of 'Extern Predicate Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Partiality Symbol'. + * @return the result of interpreting the object as an instance of 'Extern Predicate Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T casePartialitySymbol(PartialitySymbol object) + public T caseExternPredicateDefinition(ExternPredicateDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Exist Symbol'. + * Returns the result of interpreting the object as an instance of 'Metric Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Exist Symbol'. + * @return the result of interpreting the object as an instance of 'Metric Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseExistSymbol(ExistSymbol object) + public T caseMetricDefinition(MetricDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Equals Symbol'. + * Returns the result of interpreting the object as an instance of 'Extern Metric Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Equals Symbol'. + * @return the result of interpreting the object as an instance of 'Extern Metric Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseEqualsSymbol(EqualsSymbol object) + public T caseExternMetricDefinition(ExternMetricDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Data Symbol'. + * Returns the result of interpreting the object as an instance of 'Expression'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Data Symbol'. + * @return the result of interpreting the object as an instance of 'Expression'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseDataSymbol(DataSymbol object) + public T caseExpression(Expression object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Boolean Symbol'. + * Returns the result of interpreting the object as an instance of 'If Else'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Boolean Symbol'. + * @return the result of interpreting the object as an instance of 'If Else'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseBooleanSymbol(BooleanSymbol object) + public T caseIfElse(IfElse object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Integer Symbol'. + * Returns the result of interpreting the object as an instance of 'Case'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Integer Symbol'. + * @return the result of interpreting the object as an instance of 'Case'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseIntegerSymbol(IntegerSymbol object) + public T caseCase(Case object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Real Symbol'. + * Returns the result of interpreting the object as an instance of 'Count'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Real Symbol'. + * @return the result of interpreting the object as an instance of 'Count'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseRealSymbol(RealSymbol object) + public T caseCount(Count object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'String Symbol'. + * Returns the result of interpreting the object as an instance of 'Aggregation'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'String Symbol'. + * @return the result of interpreting the object as an instance of 'Aggregation'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseStringSymbol(StringSymbol object) + public T caseAggregation(Aggregation object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Complex Object'. + * Returns the result of interpreting the object as an instance of 'Call'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Complex Object'. + * @return the result of interpreting the object as an instance of 'Call'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseComplexObject(ComplexObject object) + public T caseCall(Call object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Object'. + * Returns the result of interpreting the object as an instance of 'Argument List'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Object'. + * @return the result of interpreting the object as an instance of 'Argument List'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseObject(org.eclipse.viatra.solver.language.solverLanguage.Object object) + public T caseArgumentList(ArgumentList object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Named Object'. + * Returns the result of interpreting the object as an instance of 'Argument'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Named Object'. + * @return the result of interpreting the object as an instance of 'Argument'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseNamedObject(NamedObject object) + public T caseArgument(Argument object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Unnamed Object'. + * Returns the result of interpreting the object as an instance of 'Expression Argument'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Unnamed Object'. + * @return the result of interpreting the object as an instance of 'Expression Argument'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseUnnamedObject(UnnamedObject object) + public T caseExpressionArgument(ExpressionArgument object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Data Object'. + * Returns the result of interpreting the object as an instance of 'Star Argument'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Data Object'. + * @return the result of interpreting the object as an instance of 'Star Argument'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseDataObject(DataObject object) + public T caseStarArgument(StarArgument object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Boolean Object'. + * Returns the result of interpreting the object as an instance of 'Typed Argument'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Boolean Object'. + * @return the result of interpreting the object as an instance of 'Typed Argument'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseBooleanObject(BooleanObject object) + public T caseTypedArgument(TypedArgument object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Int Object'. + * Returns the result of interpreting the object as an instance of 'Typed Star Argument'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Int Object'. + * @return the result of interpreting the object as an instance of 'Typed Star Argument'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseIntObject(IntObject object) + public T caseTypedStarArgument(TypedStarArgument object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Real Object'. + * Returns the result of interpreting the object as an instance of 'Reference'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Real Object'. + * @return the result of interpreting the object as an instance of 'Reference'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseRealObject(RealObject object) + public T caseReference(Reference object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'String Object'. + * Returns the result of interpreting the object as an instance of 'Interval'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'String Object'. + * @return the result of interpreting the object as an instance of 'Interval'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseStringObject(StringObject object) + public T caseInterval(Interval object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Predicate'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Predicate'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T casePredicate(Predicate object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Parameter'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Parameter'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseParameter(Parameter object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Pattern Body'. - * - * This implementation returns null; - * returning a non-null result will terminate the switch. - * - * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Pattern Body'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T casePatternBody(PatternBody object) - { - return null; - } - - /** - * Returns the result of interpreting the object as an instance of 'Polarity'. + * Returns the result of interpreting the object as an instance of 'Literal'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Polarity'. + * @return the result of interpreting the object as an instance of 'Literal'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T casePolarity(Polarity object) + public T caseLiteral(Literal object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Constraint'. + * Returns the result of interpreting the object as an instance of 'Logic Literal'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Constraint'. + * @return the result of interpreting the object as an instance of 'Logic Literal'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseConstraint(Constraint object) + public T caseLogicLiteral(LogicLiteral object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Closure Type'. + * Returns the result of interpreting the object as an instance of 'Numeric Literal'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Closure Type'. + * @return the result of interpreting the object as an instance of 'Numeric Literal'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseClosureType(ClosureType object) + public T caseNumericLiteral(NumericLiteral object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Literal'. + * Returns the result of interpreting the object as an instance of 'Infinity Literal'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Literal'. + * @return the result of interpreting the object as an instance of 'Infinity Literal'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseLiteral(Literal object) + public T caseInfinityLiteral(InfinityLiteral object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Variable'. + * Returns the result of interpreting the object as an instance of 'Empty Interval Literal'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Variable'. + * @return the result of interpreting the object as an instance of 'Empty Interval Literal'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseVariable(Variable object) + public T caseEmptyIntervalLiteral(EmptyIntervalLiteral object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'All Instances'. + * Returns the result of interpreting the object as an instance of 'String Literal'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'All Instances'. + * @return the result of interpreting the object as an instance of 'String Literal'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseAllInstances(AllInstances object) + public T caseStringLiteral(StringLiteral object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'All Objects'. + * Returns the result of interpreting the object as an instance of 'Member Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'All Objects'. + * @return the result of interpreting the object as an instance of 'Member Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseAllObjects(AllObjects object) + public T caseMemberDefinition(MemberDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Default Interpretation'. + * Returns the result of interpreting the object as an instance of 'Multiplicity'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Default Interpretation'. + * @return the result of interpreting the object as an instance of 'Multiplicity'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseDefaultInterpretation(DefaultInterpretation object) + public T caseMultiplicity(Multiplicity object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'CD Interpretation'. + * Returns the result of interpreting the object as an instance of 'Many Multiplicity'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'CD Interpretation'. + * @return the result of interpreting the object as an instance of 'Many Multiplicity'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseCDInterpretation(CDInterpretation object) + public T caseManyMultiplicity(ManyMultiplicity object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Class Interpretation'. + * Returns the result of interpreting the object as an instance of 'Exact Multiplicity'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Class Interpretation'. + * @return the result of interpreting the object as an instance of 'Exact Multiplicity'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseClassInterpretation(ClassInterpretation object) + public T caseExactMultiplicity(ExactMultiplicity object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Enum Interpretation'. + * Returns the result of interpreting the object as an instance of 'Bounded Multiplicity'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Enum Interpretation'. + * @return the result of interpreting the object as an instance of 'Bounded Multiplicity'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseEnumInterpretation(EnumInterpretation object) + public T caseBoundedMultiplicity(BoundedMultiplicity object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Field Relation Interpretation'. + * Returns the result of interpreting the object as an instance of 'Scope Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Field Relation Interpretation'. + * @return the result of interpreting the object as an instance of 'Scope Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseFieldRelationInterpretation(FieldRelationInterpretation object) + public T caseScopeDefinition(ScopeDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Global Relation Interpretation'. + * Returns the result of interpreting the object as an instance of 'Exact Scope Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Global Relation Interpretation'. + * @return the result of interpreting the object as an instance of 'Exact Scope Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseGlobalRelationInterpretation(GlobalRelationInterpretation object) + public T caseExactScopeDefinition(ExactScopeDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Multiplicity Definition'. + * Returns the result of interpreting the object as an instance of 'Bounded Scope Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Multiplicity Definition'. + * @return the result of interpreting the object as an instance of 'Bounded Scope Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseMultiplicityDefinition(MultiplicityDefinition object) + public T caseBoundedScopeDefinition(BoundedScopeDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Boolean True'. + * Returns the result of interpreting the object as an instance of 'Lower Bounded Scope Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Boolean True'. + * @return the result of interpreting the object as an instance of 'Lower Bounded Scope Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseBooleanTrue(BooleanTrue object) + public T caseLowerBoundedScopeDefinition(LowerBoundedScopeDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Boolean False'. + * Returns the result of interpreting the object as an instance of 'Objective Definition'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Boolean False'. + * @return the result of interpreting the object as an instance of 'Objective Definition'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseBooleanFalse(BooleanFalse object) + public T caseObjectiveDefinition(ObjectiveDefinition object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'True'. + * Returns the result of interpreting the object as an instance of 'Named Element'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'True'. + * @return the result of interpreting the object as an instance of 'Named Element'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseTrue(True object) + public T caseNamedElement(NamedElement object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'False'. + * Returns the result of interpreting the object as an instance of 'Assertion'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'False'. + * @return the result of interpreting the object as an instance of 'Assertion'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseFalse(False object) + public T caseAssertion(Assertion object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Unknown'. + * Returns the result of interpreting the object as an instance of 'Disjunction'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Unknown'. + * @return the result of interpreting the object as an instance of 'Disjunction'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseUnknown(Unknown object) + public T caseDisjunction(Disjunction object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Error'. + * Returns the result of interpreting the object as an instance of 'Switch'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Error'. + * @return the result of interpreting the object as an instance of 'Switch'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseError(org.eclipse.viatra.solver.language.solverLanguage.Error object) + public T caseSwitch(org.eclipse.viatra.solver.language.solverLanguage.Switch object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Positive'. + * Returns the result of interpreting the object as an instance of 'Conjunction'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Positive'. + * @return the result of interpreting the object as an instance of 'Conjunction'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T casePositive(Positive object) + public T caseConjunction(Conjunction object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Negative'. + * Returns the result of interpreting the object as an instance of 'Comparison'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Negative'. + * @return the result of interpreting the object as an instance of 'Comparison'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseNegative(Negative object) + public T caseComparison(Comparison object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Reflexive Closure'. + * Returns the result of interpreting the object as an instance of 'Binary Expression'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Reflexive Closure'. + * @return the result of interpreting the object as an instance of 'Binary Expression'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseReflexiveClosure(ReflexiveClosure object) + public T caseBinaryExpression(BinaryExpression object) { return null; } /** - * Returns the result of interpreting the object as an instance of 'Irreflexive Closure'. + * Returns the result of interpreting the object as an instance of 'Unary Expression'. * * This implementation returns null; * returning a non-null result will terminate the switch. * * @param object the target of the switch. - * @return the result of interpreting the object as an instance of 'Irreflexive Closure'. + * @return the result of interpreting the object as an instance of 'Unary Expression'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseIrreflexiveClosure(IrreflexiveClosure object) + public T caseUnaryExpression(UnaryExpression object) { return null; } 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.validation; 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 @@ /* - * generated by Xtext 2.18.0.M3 + * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.validation; -- cgit v1.2.3-54-g00ecf