aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.viatra.solver.language.parent
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-06-25 17:12:45 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-06-25 17:12:45 +0200
commitbaba88758a0ea5f671ab4a2aeacec374bed938c4 (patch)
tree1be30230a0959ce8d22986d91b1ed2460a328148 /org.eclipse.viatra.solver.language.parent
parentInitial commit (diff)
downloadrefinery-baba88758a0ea5f671ab4a2aeacec374bed938c4.tar.gz
refinery-baba88758a0ea5f671ab4a2aeacec374bed938c4.tar.zst
refinery-baba88758a0ea5f671ab4a2aeacec374bed938c4.zip
Add initial prototype
Diffstat (limited to 'org.eclipse.viatra.solver.language.parent')
-rw-r--r--org.eclipse.viatra.solver.language.parent/.gitignore1
-rw-r--r--org.eclipse.viatra.solver.language.parent/.project17
-rw-r--r--org.eclipse.viatra.solver.language.parent/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--org.eclipse.viatra.solver.language.parent/build.gradle34
-rw-r--r--org.eclipse.viatra.solver.language.parent/gradle/source-layout.gradle28
-rw-r--r--org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.jarbin0 -> 55616 bytes
-rw-r--r--org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.properties5
-rwxr-xr-xorg.eclipse.viatra.solver.language.parent/gradlew188
-rw-r--r--org.eclipse.viatra.solver.language.parent/gradlew.bat100
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.classpath30
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.gitignore1
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.project29
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.jdt.core.prefs10
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/build.gradle23
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeModule.java17
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeSetup.java22
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java138
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/META-INF/services/org.eclipse.xtext.ISetup1
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/AbstractProblemIdeModule.java60
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/PartialProblemContentAssistParser.java33
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/ProblemParser.java165
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g4206
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens65
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java1699
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java12761
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.classpath18
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.gitignore2
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.project41
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/META-INF/MANIFEST.MF16
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.gradle9
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.properties10
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.properties4
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.xml17
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/problem.aird1756
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java85
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java82
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java72
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java36
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java45
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java38
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java16
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java18
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java227
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java18
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java46
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java44
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java16
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java44
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java72
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java51
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java168
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java2101
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java69
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java113
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java16
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java36
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java18
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java92
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java16
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java272
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java271
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java260
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java189
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java164
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java37
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java39
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java39
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java164
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java228
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java37
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java159
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java262
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java317
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java189
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java1061
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java219
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java379
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java37
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java153
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java317
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java37
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java518
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java620
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore94
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel87
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.classpath35
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.gitignore1
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.project40
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.jdt.core.prefs10
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/build.gradle35
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemServlet.java36
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebModule.java11
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebSetup.java23
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java65
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html43
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js20
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css91
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js23
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/xtext-gen/org/eclipse/viatra/solver/language/web/AbstractProblemWebModule.java14
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.classpath58
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.gitignore1
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.launch/Generate Problem (problem) Language Infrastructure.launch14
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.project29
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.jdt.core.prefs10
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/build.gradle42
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe254
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext88
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemRuntimeModule.java86
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemStandaloneSetup.java26
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/ProblemValueConverterService.java17
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/UpperBoundValueConverter.java35
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/generator/ProblemGenerator.xtend25
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java13
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameProvider.java15
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemDerivedStateComputer.java218
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemLocationInFileProvider.java130
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemResourceDescriptionStrategy.java39
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemGlobalScopeProvider.java19
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemScopeProvider.java74
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/validation/ProblemValidator.java25
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/resources/org/eclipse/viatra/solver/language/library.problem4
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java201
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbinbin0 -> 5210 bytes
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java37
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java16
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java40
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g1522
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens65
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java1699
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java4056
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java9
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java296
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java77
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java1411
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java19
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java22
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend30
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java69
-rw-r--r--org.eclipse.viatra.solver.language.parent/settings.gradle4
142 files changed, 42244 insertions, 0 deletions
diff --git a/org.eclipse.viatra.solver.language.parent/.gitignore b/org.eclipse.viatra.solver.language.parent/.gitignore
new file mode 100644
index 00000000..da88288c
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/.gitignore
@@ -0,0 +1 @@
/.gradle/
diff --git a/org.eclipse.viatra.solver.language.parent/.project b/org.eclipse.viatra.solver.language.parent/.project
new file mode 100644
index 00000000..21b452ad
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/.project
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>org.eclipse.viatra.solver.language.parent</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 </buildSpec>
14 <natures>
15 <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
16 </natures>
17</projectDescription>
diff --git a/org.eclipse.viatra.solver.language.parent/.settings/org.eclipse.core.resources.prefs b/org.eclipse.viatra.solver.language.parent/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..99f26c02
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
1eclipse.preferences.version=1
2encoding/<project>=UTF-8
diff --git a/org.eclipse.viatra.solver.language.parent/build.gradle b/org.eclipse.viatra.solver.language.parent/build.gradle
new file mode 100644
index 00000000..69c33a9d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/build.gradle
@@ -0,0 +1,34 @@
1buildscript {
2 repositories {
3 mavenCentral()
4 }
5 dependencies {
6 classpath 'org.xtext:xtext-gradle-plugin:2.0.9-alpha.3'
7 }
8}
9
10subprojects {
11 ext.xtextVersion = '2.26.0.M1'
12 repositories {
13 mavenCentral()
14 }
15
16 apply plugin: 'java'
17 dependencies {
18 compile platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}")
19 }
20
21 apply plugin: 'org.xtext.xtend'
22 apply from: "${rootDir}/gradle/source-layout.gradle"
23 apply plugin: 'eclipse'
24
25 group = 'org.eclipse.viatra.solver.language'
26 version = '1.0.0-SNAPSHOT'
27
28 sourceCompatibility = '11'
29 targetCompatibility = '11'
30
31 configurations.all {
32 exclude group: 'asm'
33 }
34}
diff --git a/org.eclipse.viatra.solver.language.parent/gradle/source-layout.gradle b/org.eclipse.viatra.solver.language.parent/gradle/source-layout.gradle
new file mode 100644
index 00000000..d347fb13
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/gradle/source-layout.gradle
@@ -0,0 +1,28 @@
1sourceSets {
2 main {
3 java.srcDirs = ['src/main/java', 'src/main/xtext-gen']
4 resources.srcDirs = ['src/main/resources', 'src/main/xtext-gen']
5 xtendOutputDir = 'src/main/xtend-gen'
6 }
7 test {
8 java.srcDirs = ['src/test/java', 'src/test/xtext-gen']
9 resources.srcDirs = ['src/test/resources', 'src/test/xtext-gen']
10 xtendOutputDir = 'src/test/xtend-gen'
11 }
12}
13
14jar {
15 from('model') {
16 into('model')
17 }
18 from(sourceSets.main.allSource) {
19 include '**/*.xtext'
20 }
21 manifest {
22 attributes 'Bundle-SymbolicName': project.name
23 }
24}
25
26plugins.withId('war') {
27 webAppDirName = "src/main/webapp"
28}
diff --git a/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.jar b/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..5c2d1cf0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.properties b/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..f04d6a20
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
1distributionBase=GRADLE_USER_HOME
2distributionPath=wrapper/dists
3distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.3-bin.zip
4zipStoreBase=GRADLE_USER_HOME
5zipStorePath=wrapper/dists
diff --git a/org.eclipse.viatra.solver.language.parent/gradlew b/org.eclipse.viatra.solver.language.parent/gradlew
new file mode 100755
index 00000000..83f2acfd
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/gradlew
@@ -0,0 +1,188 @@
1#!/usr/bin/env sh
2
3#
4# Copyright 2015 the original author or authors.
5#
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# https://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#
18
19##############################################################################
20##
21## Gradle start up script for UN*X
22##
23##############################################################################
24
25# Attempt to set APP_HOME
26# Resolve links: $0 may be a link
27PRG="$0"
28# Need this for relative symlinks.
29while [ -h "$PRG" ] ; do
30 ls=`ls -ld "$PRG"`
31 link=`expr "$ls" : '.*-> \(.*\)$'`
32 if expr "$link" : '/.*' > /dev/null; then
33 PRG="$link"
34 else
35 PRG=`dirname "$PRG"`"/$link"
36 fi
37done
38SAVED="`pwd`"
39cd "`dirname \"$PRG\"`/" >/dev/null
40APP_HOME="`pwd -P`"
41cd "$SAVED" >/dev/null
42
43APP_NAME="Gradle"
44APP_BASE_NAME=`basename "$0"`
45
46# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48
49# Use the maximum available, or set MAX_FD != -1 to use that value.
50MAX_FD="maximum"
51
52warn () {
53 echo "$*"
54}
55
56die () {
57 echo
58 echo "$*"
59 echo
60 exit 1
61}
62
63# OS specific support (must be 'true' or 'false').
64cygwin=false
65msys=false
66darwin=false
67nonstop=false
68case "`uname`" in
69 CYGWIN* )
70 cygwin=true
71 ;;
72 Darwin* )
73 darwin=true
74 ;;
75 MINGW* )
76 msys=true
77 ;;
78 NONSTOP* )
79 nonstop=true
80 ;;
81esac
82
83CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84
85# Determine the Java command to use to start the JVM.
86if [ -n "$JAVA_HOME" ] ; then
87 if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
88 # IBM's JDK on AIX uses strange locations for the executables
89 JAVACMD="$JAVA_HOME/jre/sh/java"
90 else
91 JAVACMD="$JAVA_HOME/bin/java"
92 fi
93 if [ ! -x "$JAVACMD" ] ; then
94 die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
95
96Please set the JAVA_HOME variable in your environment to match the
97location of your Java installation."
98 fi
99else
100 JAVACMD="java"
101 which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
102
103Please set the JAVA_HOME variable in your environment to match the
104location of your Java installation."
105fi
106
107# Increase the maximum file descriptors if we can.
108if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
109 MAX_FD_LIMIT=`ulimit -H -n`
110 if [ $? -eq 0 ] ; then
111 if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
112 MAX_FD="$MAX_FD_LIMIT"
113 fi
114 ulimit -n $MAX_FD
115 if [ $? -ne 0 ] ; then
116 warn "Could not set maximum file descriptor limit: $MAX_FD"
117 fi
118 else
119 warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
120 fi
121fi
122
123# For Darwin, add options to specify how the application appears in the dock
124if $darwin; then
125 GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
126fi
127
128# For Cygwin or MSYS, switch paths to Windows format before running java
129if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
130 APP_HOME=`cygpath --path --mixed "$APP_HOME"`
131 CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
132 JAVACMD=`cygpath --unix "$JAVACMD"`
133
134 # We build the pattern for arguments to be converted via cygpath
135 ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
136 SEP=""
137 for dir in $ROOTDIRSRAW ; do
138 ROOTDIRS="$ROOTDIRS$SEP$dir"
139 SEP="|"
140 done
141 OURCYGPATTERN="(^($ROOTDIRS))"
142 # Add a user-defined pattern to the cygpath arguments
143 if [ "$GRADLE_CYGPATTERN" != "" ] ; then
144 OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
145 fi
146 # Now convert the arguments - kludge to limit ourselves to /bin/sh
147 i=0
148 for arg in "$@" ; do
149 CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
150 CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
151
152 if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
153 eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
154 else
155 eval `echo args$i`="\"$arg\""
156 fi
157 i=$((i+1))
158 done
159 case $i in
160 (0) set -- ;;
161 (1) set -- "$args0" ;;
162 (2) set -- "$args0" "$args1" ;;
163 (3) set -- "$args0" "$args1" "$args2" ;;
164 (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
165 (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
166 (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
167 (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
168 (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
169 (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
170 esac
171fi
172
173# Escape application args
174save () {
175 for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
176 echo " "
177}
178APP_ARGS=$(save "$@")
179
180# Collect all arguments for the java command, following the shell quoting and substitution rules
181eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
182
183# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
184if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
185 cd "$(dirname "$0")"
186fi
187
188exec "$JAVACMD" "$@"
diff --git a/org.eclipse.viatra.solver.language.parent/gradlew.bat b/org.eclipse.viatra.solver.language.parent/gradlew.bat
new file mode 100644
index 00000000..24467a14
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/gradlew.bat
@@ -0,0 +1,100 @@
1@rem
2@rem Copyright 2015 the original author or authors.
3@rem
4@rem Licensed under the Apache License, Version 2.0 (the "License");
5@rem you may not use this file except in compliance with the License.
6@rem You may obtain a copy of the License at
7@rem
8@rem https://www.apache.org/licenses/LICENSE-2.0
9@rem
10@rem Unless required by applicable law or agreed to in writing, software
11@rem distributed under the License is distributed on an "AS IS" BASIS,
12@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13@rem See the License for the specific language governing permissions and
14@rem limitations under the License.
15@rem
16
17@if "%DEBUG%" == "" @echo off
18@rem ##########################################################################
19@rem
20@rem Gradle startup script for Windows
21@rem
22@rem ##########################################################################
23
24@rem Set local scope for the variables with windows NT shell
25if "%OS%"=="Windows_NT" setlocal
26
27set DIRNAME=%~dp0
28if "%DIRNAME%" == "" set DIRNAME=.
29set APP_BASE_NAME=%~n0
30set APP_HOME=%DIRNAME%
31
32@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
33set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
34
35@rem Find java.exe
36if defined JAVA_HOME goto findJavaFromJavaHome
37
38set JAVA_EXE=java.exe
39%JAVA_EXE% -version >NUL 2>&1
40if "%ERRORLEVEL%" == "0" goto init
41
42echo.
43echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
44echo.
45echo Please set the JAVA_HOME variable in your environment to match the
46echo location of your Java installation.
47
48goto fail
49
50:findJavaFromJavaHome
51set JAVA_HOME=%JAVA_HOME:"=%
52set JAVA_EXE=%JAVA_HOME%/bin/java.exe
53
54if exist "%JAVA_EXE%" goto init
55
56echo.
57echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
58echo.
59echo Please set the JAVA_HOME variable in your environment to match the
60echo location of your Java installation.
61
62goto fail
63
64:init
65@rem Get command-line arguments, handling Windows variants
66
67if not "%OS%" == "Windows_NT" goto win9xME_args
68
69:win9xME_args
70@rem Slurp the command line arguments.
71set CMD_LINE_ARGS=
72set _SKIP=2
73
74:win9xME_args_slurp
75if "x%~1" == "x" goto execute
76
77set CMD_LINE_ARGS=%*
78
79:execute
80@rem Setup the command line
81
82set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
83
84@rem Execute Gradle
85"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
86
87:end
88@rem End local scope for the variables with windows NT shell
89if "%ERRORLEVEL%"=="0" goto mainEnd
90
91:fail
92rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
93rem the _cmd.exe /c_ return code!
94if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
95exit /b 1
96
97:mainEnd
98if "%OS%"=="Windows_NT" endlocal
99
100:omega
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.classpath b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.classpath
new file mode 100644
index 00000000..94600478
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.classpath
@@ -0,0 +1,30 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" output="bin/main" path="src/main/resources">
4 <attributes>
5 <attribute name="gradle_scope" value="main"/>
6 <attribute name="gradle_used_by_scope" value="main,test"/>
7 </attributes>
8 </classpathentry>
9 <classpathentry kind="src" output="bin/main" path="src/main/xtext-gen">
10 <attributes>
11 <attribute name="gradle_scope" value="main"/>
12 <attribute name="gradle_used_by_scope" value="main,test"/>
13 </attributes>
14 </classpathentry>
15 <classpathentry kind="src" output="bin/main" path="src/main/xtend-gen">
16 <attributes>
17 <attribute name="gradle_scope" value="main"/>
18 <attribute name="gradle_used_by_scope" value="main,test"/>
19 </attributes>
20 </classpathentry>
21 <classpathentry kind="src" output="bin/main" path="src/main/java">
22 <attributes>
23 <attribute name="gradle_scope" value="main"/>
24 <attribute name="gradle_used_by_scope" value="main,test"/>
25 </attributes>
26 </classpathentry>
27 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
28 <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
29 <classpathentry kind="output" path="bin/default"/>
30</classpath>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.gitignore b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.gitignore
new file mode 100644
index 00000000..84c048a7
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.gitignore
@@ -0,0 +1 @@
/build/
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.project b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.project
new file mode 100644
index 00000000..a931f0bf
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.project
@@ -0,0 +1,29 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>org.eclipse.viatra.solver.language.ide</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.jdt.core.javabuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 </buildSpec>
24 <natures>
25 <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
26 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
27 <nature>org.eclipse.jdt.core.javanature</nature>
28 </natures>
29</projectDescription>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.core.resources.prefs b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..99f26c02
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
1eclipse.preferences.version=1
2encoding/<project>=UTF-8
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..7adc0fb9
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,10 @@
1eclipse.preferences.version=1
2org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
4org.eclipse.jdt.core.compiler.compliance=11
5org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
7org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
8org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
9org.eclipse.jdt.core.compiler.release=enabled
10org.eclipse.jdt.core.compiler.source=11
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/build.gradle b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/build.gradle
new file mode 100644
index 00000000..1b060b13
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/build.gradle
@@ -0,0 +1,23 @@
1plugins {
2 id 'com.github.johnrengelman.shadow' version '5.2.0'
3}
4
5dependencies {
6 compile project(':org.eclipse.viatra.solver.language')
7 compile "org.eclipse.xtext:org.eclipse.xtext.ide:${xtextVersion}"
8 compile "org.eclipse.xtext:org.eclipse.xtext.xbase.ide:${xtextVersion}"
9}
10
11apply plugin: 'application'
12apply plugin: 'com.github.johnrengelman.shadow'
13mainClassName = "org.eclipse.xtext.ide.server.ServerLauncher"
14
15shadowJar {
16 from(project.convention.getPlugin(JavaPluginConvention).sourceSets.main.output)
17 configurations = [project.configurations.runtime]
18 exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA','schema/*',
19 '.options', '.api_description', '*.profile', '*.html', 'about.*', 'about_files/*',
20 'plugin.xml', 'systembundle.properties', 'profile.list')
21 classifier = 'ls'
22 append('plugin.properties')
23}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeModule.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeModule.java
new file mode 100644
index 00000000..c6e41049
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeModule.java
@@ -0,0 +1,17 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.ide;
5
6import org.eclipse.viatra.solver.language.ide.syntaxcoloring.ProblemSemanticHighlightingCalculator;
7import org.eclipse.xtext.ide.editor.syntaxcoloring.ISemanticHighlightingCalculator;
8
9/**
10 * Use this class to register ide components.
11 */
12public class ProblemIdeModule extends AbstractProblemIdeModule {
13
14 public Class<? extends ISemanticHighlightingCalculator> bindISemanticHighlightingCalculator() {
15 return ProblemSemanticHighlightingCalculator.class;
16 }
17}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeSetup.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeSetup.java
new file mode 100644
index 00000000..ca1fec30
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeSetup.java
@@ -0,0 +1,22 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.ide;
5
6import com.google.inject.Guice;
7import com.google.inject.Injector;
8import org.eclipse.viatra.solver.language.ProblemRuntimeModule;
9import org.eclipse.viatra.solver.language.ProblemStandaloneSetup;
10import org.eclipse.xtext.util.Modules2;
11
12/**
13 * Initialization support for running Xtext languages as language servers.
14 */
15public class ProblemIdeSetup extends ProblemStandaloneSetup {
16
17 @Override
18 public Injector createInjector() {
19 return Guice.createInjector(Modules2.mixin(new ProblemRuntimeModule(), new ProblemIdeModule()));
20 }
21
22}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
new file mode 100644
index 00000000..f6a29457
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
@@ -0,0 +1,138 @@
1package org.eclipse.viatra.solver.language.ide.syntaxcoloring;
2
3import java.util.List;
4
5import org.eclipse.emf.common.util.EList;
6import org.eclipse.emf.ecore.EAttribute;
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EReference;
9import org.eclipse.emf.ecore.resource.Resource;
10import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
11import org.eclipse.viatra.solver.language.model.problem.Node;
12import org.eclipse.viatra.solver.language.model.problem.Parameter;
13import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
14import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
15import org.eclipse.viatra.solver.language.model.problem.Variable;
16import org.eclipse.viatra.solver.language.scoping.ProblemGlobalScopeProvider;
17import org.eclipse.xtext.ide.editor.syntaxcoloring.DefaultSemanticHighlightingCalculator;
18import org.eclipse.xtext.ide.editor.syntaxcoloring.IHighlightedPositionAcceptor;
19import org.eclipse.xtext.nodemodel.INode;
20import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
21import org.eclipse.xtext.service.OperationCanceledManager;
22import org.eclipse.xtext.util.CancelIndicator;
23import org.eclipse.xtext.util.SimpleAttributeResolver;
24
25import com.google.inject.Inject;
26
27public class ProblemSemanticHighlightingCalculator extends DefaultSemanticHighlightingCalculator {
28 private static final String BUILTIN_CLASS = "cm-keyword";
29 private static final String CLASS_CLASS = "problem-class";
30 private static final String ABSTRACT_CLASS = "problem-abstract";
31 private static final String REFERENCE_CLASS = "problem-reference";
32 private static final String CONTAINMENT_CLASS = "problem-containment";
33 private static final String PREDICATE_CLASS = "problem-predicate";
34 private static final String ERROR_CLASS = "problem-error";
35 private static final String NODE_CLASS = "problem-node";
36 private static final String PARAMETER_CLASS = "problem-parameter";
37 private static final String VARIABLE_CLASS = "problem-variable";
38
39 @Inject
40 private OperationCanceledManager operationCanceledManager;
41
42 @Override
43 protected boolean highlightElement(EObject object, IHighlightedPositionAcceptor acceptor,
44 CancelIndicator cancelIndicator) {
45 highlightName(object, acceptor, cancelIndicator);
46 highlightCrossReferences(object, acceptor, cancelIndicator);
47 return false;
48 }
49
50 protected void highlightName(EObject object, IHighlightedPositionAcceptor acceptor,
51 CancelIndicator cancelIndicator) {
52 String highlightClass = getHighlightClass(object);
53 if (highlightClass != null) {
54 EAttribute nameAttribute = SimpleAttributeResolver.NAME_RESOLVER.getAttribute(object);
55 if (nameAttribute != null) {
56 highlightFeature(acceptor, object, nameAttribute, highlightClass);
57 }
58 }
59 }
60
61 protected void highlightCrossReferences(EObject object, IHighlightedPositionAcceptor acceptor,
62 CancelIndicator cancelIndicator) {
63 for (EReference reference : object.eClass().getEAllReferences()) {
64 if (reference.isContainment()) {
65 continue;
66 }
67 operationCanceledManager.checkCanceled(cancelIndicator);
68 Object value = object.eGet(reference);
69 if (value instanceof EList) {
70 @SuppressWarnings("unchecked")
71 EList<? extends EObject> values = (EList<? extends EObject>) value;
72 List<INode> nodes = NodeModelUtils.findNodesForFeature(object, reference);
73 int size = Math.min(values.size(), nodes.size());
74 for (int i = 0; i < size; i++) {
75 EObject valueInList = values.get(i);
76 INode node = nodes.get(i);
77 String highlightClass = getHighlightClass(valueInList);
78 if (highlightClass != null) {
79 highlightNode(acceptor, node, highlightClass);
80 }
81 }
82 } else if (value instanceof EObject) {
83 EObject valueObj = (EObject) value;
84 String highlightClass = getHighlightClass(valueObj);
85 if (highlightClass != null) {
86 highlightFeature(acceptor, object, reference, highlightClass);
87 }
88 }
89 }
90 }
91
92 protected String getHighlightClass(EObject eObject) {
93 if (isBuiltIn(eObject)) {
94 return BUILTIN_CLASS;
95 }
96 if (eObject instanceof ClassDeclaration) {
97 ClassDeclaration classDeclaration = (ClassDeclaration) eObject;
98 if (classDeclaration.isAbstract()) {
99 return ABSTRACT_CLASS;
100 }
101 return CLASS_CLASS;
102 }
103 if (eObject instanceof ReferenceDeclaration) {
104 ReferenceDeclaration referenceDeclaration = (ReferenceDeclaration) eObject;
105 if (referenceDeclaration.isContainment()) {
106 return CONTAINMENT_CLASS;
107 }
108 return REFERENCE_CLASS;
109 }
110 if (eObject instanceof PredicateDefinition) {
111 PredicateDefinition predicateDefinition = (PredicateDefinition) eObject;
112 if (predicateDefinition.isError()) {
113 return ERROR_CLASS;
114 }
115 return PREDICATE_CLASS;
116 }
117 if (eObject instanceof Node) {
118 return NODE_CLASS;
119 }
120 if (eObject instanceof Parameter) {
121 return PARAMETER_CLASS;
122 }
123 if (eObject instanceof Variable) {
124 return VARIABLE_CLASS;
125 }
126 return null;
127 }
128
129 protected boolean isBuiltIn(EObject eObject) {
130 if (eObject != null) {
131 Resource eResource = eObject.eResource();
132 if (eResource != null) {
133 return ProblemGlobalScopeProvider.LIBRARY_URI.equals(eResource.getURI());
134 }
135 }
136 return false;
137 }
138}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/META-INF/services/org.eclipse.xtext.ISetup b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/META-INF/services/org.eclipse.xtext.ISetup
new file mode 100644
index 00000000..8e9ec892
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/META-INF/services/org.eclipse.xtext.ISetup
@@ -0,0 +1 @@
org.eclipse.viatra.solver.language.ide.ProblemIdeSetup
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/AbstractProblemIdeModule.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/AbstractProblemIdeModule.java
new file mode 100644
index 00000000..a44461f9
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/AbstractProblemIdeModule.java
@@ -0,0 +1,60 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.ide;
5
6import com.google.inject.Binder;
7import com.google.inject.name.Names;
8import org.eclipse.viatra.solver.language.ide.contentassist.antlr.ProblemParser;
9import org.eclipse.viatra.solver.language.ide.contentassist.antlr.internal.InternalProblemLexer;
10import org.eclipse.xtext.ide.DefaultIdeModule;
11import org.eclipse.xtext.ide.LexerIdeBindings;
12import org.eclipse.xtext.ide.editor.contentassist.FQNPrefixMatcher;
13import org.eclipse.xtext.ide.editor.contentassist.IPrefixMatcher;
14import org.eclipse.xtext.ide.editor.contentassist.IProposalConflictHelper;
15import org.eclipse.xtext.ide.editor.contentassist.antlr.AntlrProposalConflictHelper;
16import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
17import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
18import org.eclipse.xtext.ide.refactoring.IRenameStrategy2;
19import org.eclipse.xtext.ide.server.rename.IRenameService2;
20import org.eclipse.xtext.ide.server.rename.RenameService2;
21
22/**
23 * Manual modifications go to {@link ProblemIdeModule}.
24 */
25@SuppressWarnings("all")
26public abstract class AbstractProblemIdeModule extends DefaultIdeModule {
27
28 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
29 public void configureContentAssistLexer(Binder binder) {
30 binder.bind(Lexer.class)
31 .annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST))
32 .to(InternalProblemLexer.class);
33 }
34
35 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
36 public Class<? extends IContentAssistParser> bindIContentAssistParser() {
37 return ProblemParser.class;
38 }
39
40 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
41 public Class<? extends IProposalConflictHelper> bindIProposalConflictHelper() {
42 return AntlrProposalConflictHelper.class;
43 }
44
45 // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
46 public Class<? extends IPrefixMatcher> bindIPrefixMatcher() {
47 return FQNPrefixMatcher.class;
48 }
49
50 // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
51 public Class<? extends IRenameService2> bindIRenameService2() {
52 return RenameService2.class;
53 }
54
55 // contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
56 public Class<? extends IRenameStrategy2> bindIRenameStrategy2() {
57 return IRenameStrategy2.DefaultImpl.class;
58 }
59
60}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/PartialProblemContentAssistParser.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/PartialProblemContentAssistParser.java
new file mode 100644
index 00000000..890ab643
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/PartialProblemContentAssistParser.java
@@ -0,0 +1,33 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.ide.contentassist.antlr;
5
6import java.util.Collection;
7import java.util.Collections;
8import org.eclipse.xtext.AbstractRule;
9import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement;
10import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
11import org.eclipse.xtext.util.PolymorphicDispatcher;
12
13public class PartialProblemContentAssistParser extends ProblemParser {
14
15 private AbstractRule rule;
16
17 @Override
18 public void initializeFor(AbstractRule rule) {
19 this.rule = rule;
20 }
21
22 @Override
23 protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
24 if (rule == null || rule.eIsProxy())
25 return Collections.emptyList();
26 String methodName = "entryRule" + rule.getName();
27 PolymorphicDispatcher<Collection<FollowElement>> dispatcher =
28 new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
29 dispatcher.invoke();
30 return parser.getFollowElements();
31 }
32
33}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/ProblemParser.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/ProblemParser.java
new file mode 100644
index 00000000..78416e64
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/ProblemParser.java
@@ -0,0 +1,165 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.ide.contentassist.antlr;
5
6import com.google.common.collect.ImmutableMap;
7import com.google.inject.Inject;
8import com.google.inject.Singleton;
9import java.util.Map;
10import org.eclipse.viatra.solver.language.ide.contentassist.antlr.internal.InternalProblemParser;
11import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
12import org.eclipse.xtext.AbstractElement;
13import org.eclipse.xtext.ide.editor.contentassist.antlr.AbstractContentAssistParser;
14
15public class ProblemParser extends AbstractContentAssistParser {
16
17 @Singleton
18 public static final class NameMappings {
19
20 private final Map<AbstractElement, String> mappings;
21
22 @Inject
23 public NameMappings(ProblemGrammarAccess grammarAccess) {
24 ImmutableMap.Builder<AbstractElement, String> builder = ImmutableMap.builder();
25 init(builder, grammarAccess);
26 this.mappings = builder.build();
27 }
28
29 public String getRuleName(AbstractElement element) {
30 return mappings.get(element);
31 }
32
33 private static void init(ImmutableMap.Builder<AbstractElement, String> builder, ProblemGrammarAccess grammarAccess) {
34 builder.put(grammarAccess.getStatementAccess().getAlternatives(), "rule__Statement__Alternatives");
35 builder.put(grammarAccess.getClassDeclarationAccess().getAlternatives_3(), "rule__ClassDeclaration__Alternatives_3");
36 builder.put(grammarAccess.getClassDeclarationAccess().getAlternatives_3_0_1(), "rule__ClassDeclaration__Alternatives_3_0_1");
37 builder.put(grammarAccess.getReferenceDeclarationAccess().getAlternatives_0(), "rule__ReferenceDeclaration__Alternatives_0");
38 builder.put(grammarAccess.getPredicateDefinitionAccess().getAlternatives_0(), "rule__PredicateDefinition__Alternatives_0");
39 builder.put(grammarAccess.getLiteralAccess().getAlternatives(), "rule__Literal__Alternatives");
40 builder.put(grammarAccess.getAssertionAccess().getAlternatives_0(), "rule__Assertion__Alternatives_0");
41 builder.put(grammarAccess.getTypeScopeAccess().getAlternatives_1(), "rule__TypeScope__Alternatives_1");
42 builder.put(grammarAccess.getMultiplicityAccess().getAlternatives(), "rule__Multiplicity__Alternatives");
43 builder.put(grammarAccess.getUpperBoundAccess().getAlternatives(), "rule__UpperBound__Alternatives");
44 builder.put(grammarAccess.getLogicValueAccess().getAlternatives(), "rule__LogicValue__Alternatives");
45 builder.put(grammarAccess.getShortLogicValueAccess().getAlternatives(), "rule__ShortLogicValue__Alternatives");
46 builder.put(grammarAccess.getClassDeclarationAccess().getGroup(), "rule__ClassDeclaration__Group__0");
47 builder.put(grammarAccess.getClassDeclarationAccess().getGroup_3_0(), "rule__ClassDeclaration__Group_3_0__0");
48 builder.put(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1(), "rule__ClassDeclaration__Group_3_0_1_1__0");
49 builder.put(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1(), "rule__ClassDeclaration__Group_3_0_1_1_1__0");
50 builder.put(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1_1(), "rule__ClassDeclaration__Group_3_0_1_1_1_1__0");
51 builder.put(grammarAccess.getClassDeclarationAccess().getGroup_4(), "rule__ClassDeclaration__Group_4__0");
52 builder.put(grammarAccess.getReferenceDeclarationAccess().getGroup(), "rule__ReferenceDeclaration__Group__0");
53 builder.put(grammarAccess.getReferenceDeclarationAccess().getGroup_6(), "rule__ReferenceDeclaration__Group_6__0");
54 builder.put(grammarAccess.getPredicateDefinitionAccess().getGroup(), "rule__PredicateDefinition__Group__0");
55 builder.put(grammarAccess.getPredicateDefinitionAccess().getGroup_0_0(), "rule__PredicateDefinition__Group_0_0__0");
56 builder.put(grammarAccess.getPredicateDefinitionAccess().getGroup_3(), "rule__PredicateDefinition__Group_3__0");
57 builder.put(grammarAccess.getPredicateDefinitionAccess().getGroup_3_1(), "rule__PredicateDefinition__Group_3_1__0");
58 builder.put(grammarAccess.getPredicateDefinitionAccess().getGroup_5(), "rule__PredicateDefinition__Group_5__0");
59 builder.put(grammarAccess.getPredicateDefinitionAccess().getGroup_5_2(), "rule__PredicateDefinition__Group_5_2__0");
60 builder.put(grammarAccess.getParameterAccess().getGroup(), "rule__Parameter__Group__0");
61 builder.put(grammarAccess.getConjunctionAccess().getGroup(), "rule__Conjunction__Group__0");
62 builder.put(grammarAccess.getConjunctionAccess().getGroup_1(), "rule__Conjunction__Group_1__0");
63 builder.put(grammarAccess.getNegativeLiteralAccess().getGroup(), "rule__NegativeLiteral__Group__0");
64 builder.put(grammarAccess.getAtomAccess().getGroup(), "rule__Atom__Group__0");
65 builder.put(grammarAccess.getAtomAccess().getGroup_3(), "rule__Atom__Group_3__0");
66 builder.put(grammarAccess.getAtomAccess().getGroup_3_1(), "rule__Atom__Group_3_1__0");
67 builder.put(grammarAccess.getAssertionAccess().getGroup(), "rule__Assertion__Group__0");
68 builder.put(grammarAccess.getAssertionAccess().getGroup_0_0(), "rule__Assertion__Group_0_0__0");
69 builder.put(grammarAccess.getAssertionAccess().getGroup_0_0_2(), "rule__Assertion__Group_0_0_2__0");
70 builder.put(grammarAccess.getAssertionAccess().getGroup_0_0_2_1(), "rule__Assertion__Group_0_0_2_1__0");
71 builder.put(grammarAccess.getAssertionAccess().getGroup_0_1(), "rule__Assertion__Group_0_1__0");
72 builder.put(grammarAccess.getAssertionAccess().getGroup_0_1_3(), "rule__Assertion__Group_0_1_3__0");
73 builder.put(grammarAccess.getAssertionAccess().getGroup_0_1_3_1(), "rule__Assertion__Group_0_1_3_1__0");
74 builder.put(grammarAccess.getScopeDeclarationAccess().getGroup(), "rule__ScopeDeclaration__Group__0");
75 builder.put(grammarAccess.getScopeDeclarationAccess().getGroup_2(), "rule__ScopeDeclaration__Group_2__0");
76 builder.put(grammarAccess.getTypeScopeAccess().getGroup(), "rule__TypeScope__Group__0");
77 builder.put(grammarAccess.getRangeMultiplicityAccess().getGroup(), "rule__RangeMultiplicity__Group__0");
78 builder.put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
79 builder.put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
80 builder.put(grammarAccess.getProblemAccess().getStatementsAssignment(), "rule__Problem__StatementsAssignment");
81 builder.put(grammarAccess.getClassDeclarationAccess().getAbstractAssignment_0(), "rule__ClassDeclaration__AbstractAssignment_0");
82 builder.put(grammarAccess.getClassDeclarationAccess().getNameAssignment_2(), "rule__ClassDeclaration__NameAssignment_2");
83 builder.put(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_0(), "rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0");
84 builder.put(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_0(), "rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0");
85 builder.put(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_1_1(), "rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1");
86 builder.put(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_3_1(), "rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1");
87 builder.put(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_4_1(), "rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1");
88 builder.put(grammarAccess.getReferenceDeclarationAccess().getContainmentAssignment_0_0(), "rule__ReferenceDeclaration__ContainmentAssignment_0_0");
89 builder.put(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeAssignment_1(), "rule__ReferenceDeclaration__ReferenceTypeAssignment_1");
90 builder.put(grammarAccess.getReferenceDeclarationAccess().getMultiplicityAssignment_3(), "rule__ReferenceDeclaration__MultiplicityAssignment_3");
91 builder.put(grammarAccess.getReferenceDeclarationAccess().getNameAssignment_5(), "rule__ReferenceDeclaration__NameAssignment_5");
92 builder.put(grammarAccess.getReferenceDeclarationAccess().getOppositeAssignment_6_1(), "rule__ReferenceDeclaration__OppositeAssignment_6_1");
93 builder.put(grammarAccess.getPredicateDefinitionAccess().getErrorAssignment_0_0_0(), "rule__PredicateDefinition__ErrorAssignment_0_0_0");
94 builder.put(grammarAccess.getPredicateDefinitionAccess().getNameAssignment_1(), "rule__PredicateDefinition__NameAssignment_1");
95 builder.put(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_0(), "rule__PredicateDefinition__ParametersAssignment_3_0");
96 builder.put(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_1_1(), "rule__PredicateDefinition__ParametersAssignment_3_1_1");
97 builder.put(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_1(), "rule__PredicateDefinition__BodiesAssignment_5_1");
98 builder.put(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_2_1(), "rule__PredicateDefinition__BodiesAssignment_5_2_1");
99 builder.put(grammarAccess.getParameterAccess().getParameterTypeAssignment_0(), "rule__Parameter__ParameterTypeAssignment_0");
100 builder.put(grammarAccess.getParameterAccess().getNameAssignment_1(), "rule__Parameter__NameAssignment_1");
101 builder.put(grammarAccess.getConjunctionAccess().getLiteralsAssignment_0(), "rule__Conjunction__LiteralsAssignment_0");
102 builder.put(grammarAccess.getConjunctionAccess().getLiteralsAssignment_1_1(), "rule__Conjunction__LiteralsAssignment_1_1");
103 builder.put(grammarAccess.getNegativeLiteralAccess().getAtomAssignment_1(), "rule__NegativeLiteral__AtomAssignment_1");
104 builder.put(grammarAccess.getAtomAccess().getRelationAssignment_0(), "rule__Atom__RelationAssignment_0");
105 builder.put(grammarAccess.getAtomAccess().getTransitiveClosureAssignment_1(), "rule__Atom__TransitiveClosureAssignment_1");
106 builder.put(grammarAccess.getAtomAccess().getArgumentsAssignment_3_0(), "rule__Atom__ArgumentsAssignment_3_0");
107 builder.put(grammarAccess.getAtomAccess().getArgumentsAssignment_3_1_1(), "rule__Atom__ArgumentsAssignment_3_1_1");
108 builder.put(grammarAccess.getAssertionAccess().getRelationAssignment_0_0_0(), "rule__Assertion__RelationAssignment_0_0_0");
109 builder.put(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_0(), "rule__Assertion__ArgumentsAssignment_0_0_2_0");
110 builder.put(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_1_1(), "rule__Assertion__ArgumentsAssignment_0_0_2_1_1");
111 builder.put(grammarAccess.getAssertionAccess().getValueAssignment_0_0_5(), "rule__Assertion__ValueAssignment_0_0_5");
112 builder.put(grammarAccess.getAssertionAccess().getValueAssignment_0_1_0(), "rule__Assertion__ValueAssignment_0_1_0");
113 builder.put(grammarAccess.getAssertionAccess().getRelationAssignment_0_1_1(), "rule__Assertion__RelationAssignment_0_1_1");
114 builder.put(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_0(), "rule__Assertion__ArgumentsAssignment_0_1_3_0");
115 builder.put(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_1_1(), "rule__Assertion__ArgumentsAssignment_0_1_3_1_1");
116 builder.put(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_1(), "rule__ScopeDeclaration__TypeScopesAssignment_1");
117 builder.put(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_2_1(), "rule__ScopeDeclaration__TypeScopesAssignment_2_1");
118 builder.put(grammarAccess.getTypeScopeAccess().getTargetTypeAssignment_0(), "rule__TypeScope__TargetTypeAssignment_0");
119 builder.put(grammarAccess.getTypeScopeAccess().getIncrementAssignment_1_0(), "rule__TypeScope__IncrementAssignment_1_0");
120 builder.put(grammarAccess.getTypeScopeAccess().getMultiplicityAssignment_2(), "rule__TypeScope__MultiplicityAssignment_2");
121 builder.put(grammarAccess.getRangeMultiplicityAccess().getLowerBoundAssignment_0(), "rule__RangeMultiplicity__LowerBoundAssignment_0");
122 builder.put(grammarAccess.getRangeMultiplicityAccess().getUpperBoundAssignment_2(), "rule__RangeMultiplicity__UpperBoundAssignment_2");
123 builder.put(grammarAccess.getExactMultiplicityAccess().getExactValueAssignment(), "rule__ExactMultiplicity__ExactValueAssignment");
124 }
125 }
126
127 @Inject
128 private NameMappings nameMappings;
129
130 @Inject
131 private ProblemGrammarAccess grammarAccess;
132
133 @Override
134 protected InternalProblemParser createParser() {
135 InternalProblemParser result = new InternalProblemParser(null);
136 result.setGrammarAccess(grammarAccess);
137 return result;
138 }
139
140 @Override
141 protected String getRuleName(AbstractElement element) {
142 return nameMappings.getRuleName(element);
143 }
144
145 @Override
146 protected String[] getInitialHiddenTokens() {
147 return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
148 }
149
150 public ProblemGrammarAccess getGrammarAccess() {
151 return this.grammarAccess;
152 }
153
154 public void setGrammarAccess(ProblemGrammarAccess grammarAccess) {
155 this.grammarAccess = grammarAccess;
156 }
157
158 public NameMappings getNameMappings() {
159 return nameMappings;
160 }
161
162 public void setNameMappings(NameMappings nameMappings) {
163 this.nameMappings = nameMappings;
164 }
165}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g
new file mode 100644
index 00000000..7dd99f99
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g
@@ -0,0 +1,4206 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4grammar InternalProblem;
5
6options {
7 superClass=AbstractInternalContentAssistParser;
8}
9
10@lexer::header {
11package org.eclipse.viatra.solver.language.ide.contentassist.antlr.internal;
12
13// Hack: Use our own Lexer superclass by means of import.
14// Currently there is no other way to specify the superclass for the lexer.
15import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
16}
17
18@parser::header {
19package org.eclipse.viatra.solver.language.ide.contentassist.antlr.internal;
20
21import java.io.InputStream;
22import org.eclipse.xtext.*;
23import org.eclipse.xtext.parser.*;
24import org.eclipse.xtext.parser.impl.*;
25import org.eclipse.emf.ecore.util.EcoreUtil;
26import org.eclipse.emf.ecore.EObject;
27import org.eclipse.xtext.parser.antlr.XtextTokenStream;
28import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
29import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
30import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
31import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
32
33}
34@parser::members {
35 private ProblemGrammarAccess grammarAccess;
36
37 public void setGrammarAccess(ProblemGrammarAccess grammarAccess) {
38 this.grammarAccess = grammarAccess;
39 }
40
41 @Override
42 protected Grammar getGrammar() {
43 return grammarAccess.getGrammar();
44 }
45
46 @Override
47 protected String getValueForTokenName(String tokenName) {
48 return tokenName;
49 }
50}
51
52// Entry rule entryRuleProblem
53entryRuleProblem
54:
55{ before(grammarAccess.getProblemRule()); }
56 ruleProblem
57{ after(grammarAccess.getProblemRule()); }
58 EOF
59;
60
61// Rule Problem
62ruleProblem
63 @init {
64 int stackSize = keepStackSize();
65 }
66 :
67 (
68 { before(grammarAccess.getProblemAccess().getStatementsAssignment()); }
69 (rule__Problem__StatementsAssignment)*
70 { after(grammarAccess.getProblemAccess().getStatementsAssignment()); }
71 )
72;
73finally {
74 restoreStackSize(stackSize);
75}
76
77// Entry rule entryRuleStatement
78entryRuleStatement
79:
80{ before(grammarAccess.getStatementRule()); }
81 ruleStatement
82{ after(grammarAccess.getStatementRule()); }
83 EOF
84;
85
86// Rule Statement
87ruleStatement
88 @init {
89 int stackSize = keepStackSize();
90 }
91 :
92 (
93 { before(grammarAccess.getStatementAccess().getAlternatives()); }
94 (rule__Statement__Alternatives)
95 { after(grammarAccess.getStatementAccess().getAlternatives()); }
96 )
97;
98finally {
99 restoreStackSize(stackSize);
100}
101
102// Entry rule entryRuleClassDeclaration
103entryRuleClassDeclaration
104:
105{ before(grammarAccess.getClassDeclarationRule()); }
106 ruleClassDeclaration
107{ after(grammarAccess.getClassDeclarationRule()); }
108 EOF
109;
110
111// Rule ClassDeclaration
112ruleClassDeclaration
113 @init {
114 int stackSize = keepStackSize();
115 }
116 :
117 (
118 { before(grammarAccess.getClassDeclarationAccess().getGroup()); }
119 (rule__ClassDeclaration__Group__0)
120 { after(grammarAccess.getClassDeclarationAccess().getGroup()); }
121 )
122;
123finally {
124 restoreStackSize(stackSize);
125}
126
127// Entry rule entryRuleReferenceDeclaration
128entryRuleReferenceDeclaration
129:
130{ before(grammarAccess.getReferenceDeclarationRule()); }
131 ruleReferenceDeclaration
132{ after(grammarAccess.getReferenceDeclarationRule()); }
133 EOF
134;
135
136// Rule ReferenceDeclaration
137ruleReferenceDeclaration
138 @init {
139 int stackSize = keepStackSize();
140 }
141 :
142 (
143 { before(grammarAccess.getReferenceDeclarationAccess().getGroup()); }
144 (rule__ReferenceDeclaration__Group__0)
145 { after(grammarAccess.getReferenceDeclarationAccess().getGroup()); }
146 )
147;
148finally {
149 restoreStackSize(stackSize);
150}
151
152// Entry rule entryRulePredicateDefinition
153entryRulePredicateDefinition
154:
155{ before(grammarAccess.getPredicateDefinitionRule()); }
156 rulePredicateDefinition
157{ after(grammarAccess.getPredicateDefinitionRule()); }
158 EOF
159;
160
161// Rule PredicateDefinition
162rulePredicateDefinition
163 @init {
164 int stackSize = keepStackSize();
165 }
166 :
167 (
168 { before(grammarAccess.getPredicateDefinitionAccess().getGroup()); }
169 (rule__PredicateDefinition__Group__0)
170 { after(grammarAccess.getPredicateDefinitionAccess().getGroup()); }
171 )
172;
173finally {
174 restoreStackSize(stackSize);
175}
176
177// Entry rule entryRuleParameter
178entryRuleParameter
179:
180{ before(grammarAccess.getParameterRule()); }
181 ruleParameter
182{ after(grammarAccess.getParameterRule()); }
183 EOF
184;
185
186// Rule Parameter
187ruleParameter
188 @init {
189 int stackSize = keepStackSize();
190 }
191 :
192 (
193 { before(grammarAccess.getParameterAccess().getGroup()); }
194 (rule__Parameter__Group__0)
195 { after(grammarAccess.getParameterAccess().getGroup()); }
196 )
197;
198finally {
199 restoreStackSize(stackSize);
200}
201
202// Entry rule entryRuleConjunction
203entryRuleConjunction
204:
205{ before(grammarAccess.getConjunctionRule()); }
206 ruleConjunction
207{ after(grammarAccess.getConjunctionRule()); }
208 EOF
209;
210
211// Rule Conjunction
212ruleConjunction
213 @init {
214 int stackSize = keepStackSize();
215 }
216 :
217 (
218 { before(grammarAccess.getConjunctionAccess().getGroup()); }
219 (rule__Conjunction__Group__0)
220 { after(grammarAccess.getConjunctionAccess().getGroup()); }
221 )
222;
223finally {
224 restoreStackSize(stackSize);
225}
226
227// Entry rule entryRuleLiteral
228entryRuleLiteral
229:
230{ before(grammarAccess.getLiteralRule()); }
231 ruleLiteral
232{ after(grammarAccess.getLiteralRule()); }
233 EOF
234;
235
236// Rule Literal
237ruleLiteral
238 @init {
239 int stackSize = keepStackSize();
240 }
241 :
242 (
243 { before(grammarAccess.getLiteralAccess().getAlternatives()); }
244 (rule__Literal__Alternatives)
245 { after(grammarAccess.getLiteralAccess().getAlternatives()); }
246 )
247;
248finally {
249 restoreStackSize(stackSize);
250}
251
252// Entry rule entryRuleNegativeLiteral
253entryRuleNegativeLiteral
254:
255{ before(grammarAccess.getNegativeLiteralRule()); }
256 ruleNegativeLiteral
257{ after(grammarAccess.getNegativeLiteralRule()); }
258 EOF
259;
260
261// Rule NegativeLiteral
262ruleNegativeLiteral
263 @init {
264 int stackSize = keepStackSize();
265 }
266 :
267 (
268 { before(grammarAccess.getNegativeLiteralAccess().getGroup()); }
269 (rule__NegativeLiteral__Group__0)
270 { after(grammarAccess.getNegativeLiteralAccess().getGroup()); }
271 )
272;
273finally {
274 restoreStackSize(stackSize);
275}
276
277// Entry rule entryRuleAtom
278entryRuleAtom
279:
280{ before(grammarAccess.getAtomRule()); }
281 ruleAtom
282{ after(grammarAccess.getAtomRule()); }
283 EOF
284;
285
286// Rule Atom
287ruleAtom
288 @init {
289 int stackSize = keepStackSize();
290 }
291 :
292 (
293 { before(grammarAccess.getAtomAccess().getGroup()); }
294 (rule__Atom__Group__0)
295 { after(grammarAccess.getAtomAccess().getGroup()); }
296 )
297;
298finally {
299 restoreStackSize(stackSize);
300}
301
302// Entry rule entryRuleAssertion
303entryRuleAssertion
304:
305{ before(grammarAccess.getAssertionRule()); }
306 ruleAssertion
307{ after(grammarAccess.getAssertionRule()); }
308 EOF
309;
310
311// Rule Assertion
312ruleAssertion
313 @init {
314 int stackSize = keepStackSize();
315 }
316 :
317 (
318 { before(grammarAccess.getAssertionAccess().getGroup()); }
319 (rule__Assertion__Group__0)
320 { after(grammarAccess.getAssertionAccess().getGroup()); }
321 )
322;
323finally {
324 restoreStackSize(stackSize);
325}
326
327// Entry rule entryRuleScopeDeclaration
328entryRuleScopeDeclaration
329:
330{ before(grammarAccess.getScopeDeclarationRule()); }
331 ruleScopeDeclaration
332{ after(grammarAccess.getScopeDeclarationRule()); }
333 EOF
334;
335
336// Rule ScopeDeclaration
337ruleScopeDeclaration
338 @init {
339 int stackSize = keepStackSize();
340 }
341 :
342 (
343 { before(grammarAccess.getScopeDeclarationAccess().getGroup()); }
344 (rule__ScopeDeclaration__Group__0)
345 { after(grammarAccess.getScopeDeclarationAccess().getGroup()); }
346 )
347;
348finally {
349 restoreStackSize(stackSize);
350}
351
352// Entry rule entryRuleTypeScope
353entryRuleTypeScope
354:
355{ before(grammarAccess.getTypeScopeRule()); }
356 ruleTypeScope
357{ after(grammarAccess.getTypeScopeRule()); }
358 EOF
359;
360
361// Rule TypeScope
362ruleTypeScope
363 @init {
364 int stackSize = keepStackSize();
365 }
366 :
367 (
368 { before(grammarAccess.getTypeScopeAccess().getGroup()); }
369 (rule__TypeScope__Group__0)
370 { after(grammarAccess.getTypeScopeAccess().getGroup()); }
371 )
372;
373finally {
374 restoreStackSize(stackSize);
375}
376
377// Entry rule entryRuleMultiplicity
378entryRuleMultiplicity
379:
380{ before(grammarAccess.getMultiplicityRule()); }
381 ruleMultiplicity
382{ after(grammarAccess.getMultiplicityRule()); }
383 EOF
384;
385
386// Rule Multiplicity
387ruleMultiplicity
388 @init {
389 int stackSize = keepStackSize();
390 }
391 :
392 (
393 { before(grammarAccess.getMultiplicityAccess().getAlternatives()); }
394 (rule__Multiplicity__Alternatives)
395 { after(grammarAccess.getMultiplicityAccess().getAlternatives()); }
396 )
397;
398finally {
399 restoreStackSize(stackSize);
400}
401
402// Entry rule entryRuleRangeMultiplicity
403entryRuleRangeMultiplicity
404:
405{ before(grammarAccess.getRangeMultiplicityRule()); }
406 ruleRangeMultiplicity
407{ after(grammarAccess.getRangeMultiplicityRule()); }
408 EOF
409;
410
411// Rule RangeMultiplicity
412ruleRangeMultiplicity
413 @init {
414 int stackSize = keepStackSize();
415 }
416 :
417 (
418 { before(grammarAccess.getRangeMultiplicityAccess().getGroup()); }
419 (rule__RangeMultiplicity__Group__0)
420 { after(grammarAccess.getRangeMultiplicityAccess().getGroup()); }
421 )
422;
423finally {
424 restoreStackSize(stackSize);
425}
426
427// Entry rule entryRuleExactMultiplicity
428entryRuleExactMultiplicity
429:
430{ before(grammarAccess.getExactMultiplicityRule()); }
431 ruleExactMultiplicity
432{ after(grammarAccess.getExactMultiplicityRule()); }
433 EOF
434;
435
436// Rule ExactMultiplicity
437ruleExactMultiplicity
438 @init {
439 int stackSize = keepStackSize();
440 }
441 :
442 (
443 { before(grammarAccess.getExactMultiplicityAccess().getExactValueAssignment()); }
444 (rule__ExactMultiplicity__ExactValueAssignment)
445 { after(grammarAccess.getExactMultiplicityAccess().getExactValueAssignment()); }
446 )
447;
448finally {
449 restoreStackSize(stackSize);
450}
451
452// Entry rule entryRuleUpperBound
453entryRuleUpperBound
454:
455{ before(grammarAccess.getUpperBoundRule()); }
456 ruleUpperBound
457{ after(grammarAccess.getUpperBoundRule()); }
458 EOF
459;
460
461// Rule UpperBound
462ruleUpperBound
463 @init {
464 int stackSize = keepStackSize();
465 }
466 :
467 (
468 { before(grammarAccess.getUpperBoundAccess().getAlternatives()); }
469 (rule__UpperBound__Alternatives)
470 { after(grammarAccess.getUpperBoundAccess().getAlternatives()); }
471 )
472;
473finally {
474 restoreStackSize(stackSize);
475}
476
477// Entry rule entryRuleQualifiedName
478entryRuleQualifiedName
479:
480{ before(grammarAccess.getQualifiedNameRule()); }
481 ruleQualifiedName
482{ after(grammarAccess.getQualifiedNameRule()); }
483 EOF
484;
485
486// Rule QualifiedName
487ruleQualifiedName
488 @init {
489 int stackSize = keepStackSize();
490 }
491 :
492 (
493 { before(grammarAccess.getQualifiedNameAccess().getGroup()); }
494 (rule__QualifiedName__Group__0)
495 { after(grammarAccess.getQualifiedNameAccess().getGroup()); }
496 )
497;
498finally {
499 restoreStackSize(stackSize);
500}
501
502// Rule LogicValue
503ruleLogicValue
504 @init {
505 int stackSize = keepStackSize();
506 }
507:
508 (
509 { before(grammarAccess.getLogicValueAccess().getAlternatives()); }
510 (rule__LogicValue__Alternatives)
511 { after(grammarAccess.getLogicValueAccess().getAlternatives()); }
512 )
513;
514finally {
515 restoreStackSize(stackSize);
516}
517
518// Rule ShortLogicValue
519ruleShortLogicValue
520 @init {
521 int stackSize = keepStackSize();
522 }
523:
524 (
525 { before(grammarAccess.getShortLogicValueAccess().getAlternatives()); }
526 (rule__ShortLogicValue__Alternatives)
527 { after(grammarAccess.getShortLogicValueAccess().getAlternatives()); }
528 )
529;
530finally {
531 restoreStackSize(stackSize);
532}
533
534rule__Statement__Alternatives
535 @init {
536 int stackSize = keepStackSize();
537 }
538:
539 (
540 { before(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0()); }
541 ruleClassDeclaration
542 { after(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0()); }
543 )
544 |
545 (
546 { before(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1()); }
547 rulePredicateDefinition
548 { after(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1()); }
549 )
550 |
551 (
552 { before(grammarAccess.getStatementAccess().getAssertionParserRuleCall_2()); }
553 ruleAssertion
554 { after(grammarAccess.getStatementAccess().getAssertionParserRuleCall_2()); }
555 )
556 |
557 (
558 { before(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_3()); }
559 ruleScopeDeclaration
560 { after(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_3()); }
561 )
562;
563finally {
564 restoreStackSize(stackSize);
565}
566
567rule__ClassDeclaration__Alternatives_3
568 @init {
569 int stackSize = keepStackSize();
570 }
571:
572 (
573 { before(grammarAccess.getClassDeclarationAccess().getGroup_3_0()); }
574 (rule__ClassDeclaration__Group_3_0__0)
575 { after(grammarAccess.getClassDeclarationAccess().getGroup_3_0()); }
576 )
577 |
578 (
579 { before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_3_1()); }
580 (rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1)
581 { after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_3_1()); }
582 )
583;
584finally {
585 restoreStackSize(stackSize);
586}
587
588rule__ClassDeclaration__Alternatives_3_0_1
589 @init {
590 int stackSize = keepStackSize();
591 }
592:
593 (
594 { before(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_0()); }
595 (rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0)
596 { after(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_0()); }
597 )
598 |
599 (
600 { before(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1()); }
601 (rule__ClassDeclaration__Group_3_0_1_1__0)
602 { after(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1()); }
603 )
604;
605finally {
606 restoreStackSize(stackSize);
607}
608
609rule__ReferenceDeclaration__Alternatives_0
610 @init {
611 int stackSize = keepStackSize();
612 }
613:
614 (
615 { before(grammarAccess.getReferenceDeclarationAccess().getContainmentAssignment_0_0()); }
616 (rule__ReferenceDeclaration__ContainmentAssignment_0_0)
617 { after(grammarAccess.getReferenceDeclarationAccess().getContainmentAssignment_0_0()); }
618 )
619 |
620 (
621 { before(grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1()); }
622 'refers'
623 { after(grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1()); }
624 )
625;
626finally {
627 restoreStackSize(stackSize);
628}
629
630rule__PredicateDefinition__Alternatives_0
631 @init {
632 int stackSize = keepStackSize();
633 }
634:
635 (
636 { before(grammarAccess.getPredicateDefinitionAccess().getGroup_0_0()); }
637 (rule__PredicateDefinition__Group_0_0__0)
638 { after(grammarAccess.getPredicateDefinitionAccess().getGroup_0_0()); }
639 )
640 |
641 (
642 { before(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1()); }
643 'pred'
644 { after(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1()); }
645 )
646;
647finally {
648 restoreStackSize(stackSize);
649}
650
651rule__Literal__Alternatives
652 @init {
653 int stackSize = keepStackSize();
654 }
655:
656 (
657 { before(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0()); }
658 ruleAtom
659 { after(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0()); }
660 )
661 |
662 (
663 { before(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1()); }
664 ruleNegativeLiteral
665 { after(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1()); }
666 )
667;
668finally {
669 restoreStackSize(stackSize);
670}
671
672rule__Assertion__Alternatives_0
673 @init {
674 int stackSize = keepStackSize();
675 }
676:
677 (
678 { before(grammarAccess.getAssertionAccess().getGroup_0_0()); }
679 (rule__Assertion__Group_0_0__0)
680 { after(grammarAccess.getAssertionAccess().getGroup_0_0()); }
681 )
682 |
683 (
684 { before(grammarAccess.getAssertionAccess().getGroup_0_1()); }
685 (rule__Assertion__Group_0_1__0)
686 { after(grammarAccess.getAssertionAccess().getGroup_0_1()); }
687 )
688;
689finally {
690 restoreStackSize(stackSize);
691}
692
693rule__TypeScope__Alternatives_1
694 @init {
695 int stackSize = keepStackSize();
696 }
697:
698 (
699 { before(grammarAccess.getTypeScopeAccess().getIncrementAssignment_1_0()); }
700 (rule__TypeScope__IncrementAssignment_1_0)
701 { after(grammarAccess.getTypeScopeAccess().getIncrementAssignment_1_0()); }
702 )
703 |
704 (
705 { before(grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1()); }
706 '='
707 { after(grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1()); }
708 )
709;
710finally {
711 restoreStackSize(stackSize);
712}
713
714rule__Multiplicity__Alternatives
715 @init {
716 int stackSize = keepStackSize();
717 }
718:
719 (
720 { before(grammarAccess.getMultiplicityAccess().getRangeMultiplicityParserRuleCall_0()); }
721 ruleRangeMultiplicity
722 { after(grammarAccess.getMultiplicityAccess().getRangeMultiplicityParserRuleCall_0()); }
723 )
724 |
725 (
726 { before(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); }
727 ruleExactMultiplicity
728 { after(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1()); }
729 )
730;
731finally {
732 restoreStackSize(stackSize);
733}
734
735rule__UpperBound__Alternatives
736 @init {
737 int stackSize = keepStackSize();
738 }
739:
740 (
741 { before(grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0()); }
742 RULE_INT
743 { after(grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0()); }
744 )
745 |
746 (
747 { before(grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1()); }
748 '*'
749 { after(grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1()); }
750 )
751;
752finally {
753 restoreStackSize(stackSize);
754}
755
756rule__LogicValue__Alternatives
757 @init {
758 int stackSize = keepStackSize();
759 }
760:
761 (
762 { before(grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0()); }
763 ('true')
764 { after(grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0()); }
765 )
766 |
767 (
768 { before(grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1()); }
769 ('false')
770 { after(grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1()); }
771 )
772 |
773 (
774 { before(grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2()); }
775 ('unknown')
776 { after(grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2()); }
777 )
778;
779finally {
780 restoreStackSize(stackSize);
781}
782
783rule__ShortLogicValue__Alternatives
784 @init {
785 int stackSize = keepStackSize();
786 }
787:
788 (
789 { before(grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0()); }
790 ('!')
791 { after(grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0()); }
792 )
793 |
794 (
795 { before(grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1()); }
796 ('?')
797 { after(grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1()); }
798 )
799;
800finally {
801 restoreStackSize(stackSize);
802}
803
804rule__ClassDeclaration__Group__0
805 @init {
806 int stackSize = keepStackSize();
807 }
808:
809 rule__ClassDeclaration__Group__0__Impl
810 rule__ClassDeclaration__Group__1
811;
812finally {
813 restoreStackSize(stackSize);
814}
815
816rule__ClassDeclaration__Group__0__Impl
817 @init {
818 int stackSize = keepStackSize();
819 }
820:
821(
822 { before(grammarAccess.getClassDeclarationAccess().getAbstractAssignment_0()); }
823 (rule__ClassDeclaration__AbstractAssignment_0)?
824 { after(grammarAccess.getClassDeclarationAccess().getAbstractAssignment_0()); }
825)
826;
827finally {
828 restoreStackSize(stackSize);
829}
830
831rule__ClassDeclaration__Group__1
832 @init {
833 int stackSize = keepStackSize();
834 }
835:
836 rule__ClassDeclaration__Group__1__Impl
837 rule__ClassDeclaration__Group__2
838;
839finally {
840 restoreStackSize(stackSize);
841}
842
843rule__ClassDeclaration__Group__1__Impl
844 @init {
845 int stackSize = keepStackSize();
846 }
847:
848(
849 { before(grammarAccess.getClassDeclarationAccess().getClassKeyword_1()); }
850 'class'
851 { after(grammarAccess.getClassDeclarationAccess().getClassKeyword_1()); }
852)
853;
854finally {
855 restoreStackSize(stackSize);
856}
857
858rule__ClassDeclaration__Group__2
859 @init {
860 int stackSize = keepStackSize();
861 }
862:
863 rule__ClassDeclaration__Group__2__Impl
864 rule__ClassDeclaration__Group__3
865;
866finally {
867 restoreStackSize(stackSize);
868}
869
870rule__ClassDeclaration__Group__2__Impl
871 @init {
872 int stackSize = keepStackSize();
873 }
874:
875(
876 { before(grammarAccess.getClassDeclarationAccess().getNameAssignment_2()); }
877 (rule__ClassDeclaration__NameAssignment_2)
878 { after(grammarAccess.getClassDeclarationAccess().getNameAssignment_2()); }
879)
880;
881finally {
882 restoreStackSize(stackSize);
883}
884
885rule__ClassDeclaration__Group__3
886 @init {
887 int stackSize = keepStackSize();
888 }
889:
890 rule__ClassDeclaration__Group__3__Impl
891 rule__ClassDeclaration__Group__4
892;
893finally {
894 restoreStackSize(stackSize);
895}
896
897rule__ClassDeclaration__Group__3__Impl
898 @init {
899 int stackSize = keepStackSize();
900 }
901:
902(
903 { before(grammarAccess.getClassDeclarationAccess().getAlternatives_3()); }
904 (rule__ClassDeclaration__Alternatives_3)?
905 { after(grammarAccess.getClassDeclarationAccess().getAlternatives_3()); }
906)
907;
908finally {
909 restoreStackSize(stackSize);
910}
911
912rule__ClassDeclaration__Group__4
913 @init {
914 int stackSize = keepStackSize();
915 }
916:
917 rule__ClassDeclaration__Group__4__Impl
918 rule__ClassDeclaration__Group__5
919;
920finally {
921 restoreStackSize(stackSize);
922}
923
924rule__ClassDeclaration__Group__4__Impl
925 @init {
926 int stackSize = keepStackSize();
927 }
928:
929(
930 { before(grammarAccess.getClassDeclarationAccess().getGroup_4()); }
931 (rule__ClassDeclaration__Group_4__0)*
932 { after(grammarAccess.getClassDeclarationAccess().getGroup_4()); }
933)
934;
935finally {
936 restoreStackSize(stackSize);
937}
938
939rule__ClassDeclaration__Group__5
940 @init {
941 int stackSize = keepStackSize();
942 }
943:
944 rule__ClassDeclaration__Group__5__Impl
945;
946finally {
947 restoreStackSize(stackSize);
948}
949
950rule__ClassDeclaration__Group__5__Impl
951 @init {
952 int stackSize = keepStackSize();
953 }
954:
955(
956 { before(grammarAccess.getClassDeclarationAccess().getFullStopKeyword_5()); }
957 '.'
958 { after(grammarAccess.getClassDeclarationAccess().getFullStopKeyword_5()); }
959)
960;
961finally {
962 restoreStackSize(stackSize);
963}
964
965
966rule__ClassDeclaration__Group_3_0__0
967 @init {
968 int stackSize = keepStackSize();
969 }
970:
971 rule__ClassDeclaration__Group_3_0__0__Impl
972 rule__ClassDeclaration__Group_3_0__1
973;
974finally {
975 restoreStackSize(stackSize);
976}
977
978rule__ClassDeclaration__Group_3_0__0__Impl
979 @init {
980 int stackSize = keepStackSize();
981 }
982:
983(
984 { before(grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0_0()); }
985 'extends'
986 { after(grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0_0()); }
987)
988;
989finally {
990 restoreStackSize(stackSize);
991}
992
993rule__ClassDeclaration__Group_3_0__1
994 @init {
995 int stackSize = keepStackSize();
996 }
997:
998 rule__ClassDeclaration__Group_3_0__1__Impl
999;
1000finally {
1001 restoreStackSize(stackSize);
1002}
1003
1004rule__ClassDeclaration__Group_3_0__1__Impl
1005 @init {
1006 int stackSize = keepStackSize();
1007 }
1008:
1009(
1010 { before(grammarAccess.getClassDeclarationAccess().getAlternatives_3_0_1()); }
1011 (rule__ClassDeclaration__Alternatives_3_0_1)
1012 { after(grammarAccess.getClassDeclarationAccess().getAlternatives_3_0_1()); }
1013)
1014;
1015finally {
1016 restoreStackSize(stackSize);
1017}
1018
1019
1020rule__ClassDeclaration__Group_3_0_1_1__0
1021 @init {
1022 int stackSize = keepStackSize();
1023 }
1024:
1025 rule__ClassDeclaration__Group_3_0_1_1__0__Impl
1026 rule__ClassDeclaration__Group_3_0_1_1__1
1027;
1028finally {
1029 restoreStackSize(stackSize);
1030}
1031
1032rule__ClassDeclaration__Group_3_0_1_1__0__Impl
1033 @init {
1034 int stackSize = keepStackSize();
1035 }
1036:
1037(
1038 { before(grammarAccess.getClassDeclarationAccess().getLeftSquareBracketKeyword_3_0_1_1_0()); }
1039 '['
1040 { after(grammarAccess.getClassDeclarationAccess().getLeftSquareBracketKeyword_3_0_1_1_0()); }
1041)
1042;
1043finally {
1044 restoreStackSize(stackSize);
1045}
1046
1047rule__ClassDeclaration__Group_3_0_1_1__1
1048 @init {
1049 int stackSize = keepStackSize();
1050 }
1051:
1052 rule__ClassDeclaration__Group_3_0_1_1__1__Impl
1053 rule__ClassDeclaration__Group_3_0_1_1__2
1054;
1055finally {
1056 restoreStackSize(stackSize);
1057}
1058
1059rule__ClassDeclaration__Group_3_0_1_1__1__Impl
1060 @init {
1061 int stackSize = keepStackSize();
1062 }
1063:
1064(
1065 { before(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1()); }
1066 (rule__ClassDeclaration__Group_3_0_1_1_1__0)?
1067 { after(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1()); }
1068)
1069;
1070finally {
1071 restoreStackSize(stackSize);
1072}
1073
1074rule__ClassDeclaration__Group_3_0_1_1__2
1075 @init {
1076 int stackSize = keepStackSize();
1077 }
1078:
1079 rule__ClassDeclaration__Group_3_0_1_1__2__Impl
1080;
1081finally {
1082 restoreStackSize(stackSize);
1083}
1084
1085rule__ClassDeclaration__Group_3_0_1_1__2__Impl
1086 @init {
1087 int stackSize = keepStackSize();
1088 }
1089:
1090(
1091 { before(grammarAccess.getClassDeclarationAccess().getRightSquareBracketKeyword_3_0_1_1_2()); }
1092 ']'
1093 { after(grammarAccess.getClassDeclarationAccess().getRightSquareBracketKeyword_3_0_1_1_2()); }
1094)
1095;
1096finally {
1097 restoreStackSize(stackSize);
1098}
1099
1100
1101rule__ClassDeclaration__Group_3_0_1_1_1__0
1102 @init {
1103 int stackSize = keepStackSize();
1104 }
1105:
1106 rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl
1107 rule__ClassDeclaration__Group_3_0_1_1_1__1
1108;
1109finally {
1110 restoreStackSize(stackSize);
1111}
1112
1113rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl
1114 @init {
1115 int stackSize = keepStackSize();
1116 }
1117:
1118(
1119 { before(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_0()); }
1120 (rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0)
1121 { after(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_0()); }
1122)
1123;
1124finally {
1125 restoreStackSize(stackSize);
1126}
1127
1128rule__ClassDeclaration__Group_3_0_1_1_1__1
1129 @init {
1130 int stackSize = keepStackSize();
1131 }
1132:
1133 rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl
1134;
1135finally {
1136 restoreStackSize(stackSize);
1137}
1138
1139rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl
1140 @init {
1141 int stackSize = keepStackSize();
1142 }
1143:
1144(
1145 { before(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1_1()); }
1146 (rule__ClassDeclaration__Group_3_0_1_1_1_1__0)*
1147 { after(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1_1()); }
1148)
1149;
1150finally {
1151 restoreStackSize(stackSize);
1152}
1153
1154
1155rule__ClassDeclaration__Group_3_0_1_1_1_1__0
1156 @init {
1157 int stackSize = keepStackSize();
1158 }
1159:
1160 rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl
1161 rule__ClassDeclaration__Group_3_0_1_1_1_1__1
1162;
1163finally {
1164 restoreStackSize(stackSize);
1165}
1166
1167rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl
1168 @init {
1169 int stackSize = keepStackSize();
1170 }
1171:
1172(
1173 { before(grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_0_1_1_1_1_0()); }
1174 ','
1175 { after(grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_0_1_1_1_1_0()); }
1176)
1177;
1178finally {
1179 restoreStackSize(stackSize);
1180}
1181
1182rule__ClassDeclaration__Group_3_0_1_1_1_1__1
1183 @init {
1184 int stackSize = keepStackSize();
1185 }
1186:
1187 rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl
1188;
1189finally {
1190 restoreStackSize(stackSize);
1191}
1192
1193rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl
1194 @init {
1195 int stackSize = keepStackSize();
1196 }
1197:
1198(
1199 { before(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_1_1()); }
1200 (rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1)
1201 { after(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_1_1()); }
1202)
1203;
1204finally {
1205 restoreStackSize(stackSize);
1206}
1207
1208
1209rule__ClassDeclaration__Group_4__0
1210 @init {
1211 int stackSize = keepStackSize();
1212 }
1213:
1214 rule__ClassDeclaration__Group_4__0__Impl
1215 rule__ClassDeclaration__Group_4__1
1216;
1217finally {
1218 restoreStackSize(stackSize);
1219}
1220
1221rule__ClassDeclaration__Group_4__0__Impl
1222 @init {
1223 int stackSize = keepStackSize();
1224 }
1225:
1226(
1227 { before(grammarAccess.getClassDeclarationAccess().getCommaKeyword_4_0()); }
1228 ','
1229 { after(grammarAccess.getClassDeclarationAccess().getCommaKeyword_4_0()); }
1230)
1231;
1232finally {
1233 restoreStackSize(stackSize);
1234}
1235
1236rule__ClassDeclaration__Group_4__1
1237 @init {
1238 int stackSize = keepStackSize();
1239 }
1240:
1241 rule__ClassDeclaration__Group_4__1__Impl
1242;
1243finally {
1244 restoreStackSize(stackSize);
1245}
1246
1247rule__ClassDeclaration__Group_4__1__Impl
1248 @init {
1249 int stackSize = keepStackSize();
1250 }
1251:
1252(
1253 { before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_4_1()); }
1254 (rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1)
1255 { after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_4_1()); }
1256)
1257;
1258finally {
1259 restoreStackSize(stackSize);
1260}
1261
1262
1263rule__ReferenceDeclaration__Group__0
1264 @init {
1265 int stackSize = keepStackSize();
1266 }
1267:
1268 rule__ReferenceDeclaration__Group__0__Impl
1269 rule__ReferenceDeclaration__Group__1
1270;
1271finally {
1272 restoreStackSize(stackSize);
1273}
1274
1275rule__ReferenceDeclaration__Group__0__Impl
1276 @init {
1277 int stackSize = keepStackSize();
1278 }
1279:
1280(
1281 { before(grammarAccess.getReferenceDeclarationAccess().getAlternatives_0()); }
1282 (rule__ReferenceDeclaration__Alternatives_0)
1283 { after(grammarAccess.getReferenceDeclarationAccess().getAlternatives_0()); }
1284)
1285;
1286finally {
1287 restoreStackSize(stackSize);
1288}
1289
1290rule__ReferenceDeclaration__Group__1
1291 @init {
1292 int stackSize = keepStackSize();
1293 }
1294:
1295 rule__ReferenceDeclaration__Group__1__Impl
1296 rule__ReferenceDeclaration__Group__2
1297;
1298finally {
1299 restoreStackSize(stackSize);
1300}
1301
1302rule__ReferenceDeclaration__Group__1__Impl
1303 @init {
1304 int stackSize = keepStackSize();
1305 }
1306:
1307(
1308 { before(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeAssignment_1()); }
1309 (rule__ReferenceDeclaration__ReferenceTypeAssignment_1)
1310 { after(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeAssignment_1()); }
1311)
1312;
1313finally {
1314 restoreStackSize(stackSize);
1315}
1316
1317rule__ReferenceDeclaration__Group__2
1318 @init {
1319 int stackSize = keepStackSize();
1320 }
1321:
1322 rule__ReferenceDeclaration__Group__2__Impl
1323 rule__ReferenceDeclaration__Group__3
1324;
1325finally {
1326 restoreStackSize(stackSize);
1327}
1328
1329rule__ReferenceDeclaration__Group__2__Impl
1330 @init {
1331 int stackSize = keepStackSize();
1332 }
1333:
1334(
1335 { before(grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2()); }
1336 '['
1337 { after(grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2()); }
1338)
1339;
1340finally {
1341 restoreStackSize(stackSize);
1342}
1343
1344rule__ReferenceDeclaration__Group__3
1345 @init {
1346 int stackSize = keepStackSize();
1347 }
1348:
1349 rule__ReferenceDeclaration__Group__3__Impl
1350 rule__ReferenceDeclaration__Group__4
1351;
1352finally {
1353 restoreStackSize(stackSize);
1354}
1355
1356rule__ReferenceDeclaration__Group__3__Impl
1357 @init {
1358 int stackSize = keepStackSize();
1359 }
1360:
1361(
1362 { before(grammarAccess.getReferenceDeclarationAccess().getMultiplicityAssignment_3()); }
1363 (rule__ReferenceDeclaration__MultiplicityAssignment_3)
1364 { after(grammarAccess.getReferenceDeclarationAccess().getMultiplicityAssignment_3()); }
1365)
1366;
1367finally {
1368 restoreStackSize(stackSize);
1369}
1370
1371rule__ReferenceDeclaration__Group__4
1372 @init {
1373 int stackSize = keepStackSize();
1374 }
1375:
1376 rule__ReferenceDeclaration__Group__4__Impl
1377 rule__ReferenceDeclaration__Group__5
1378;
1379finally {
1380 restoreStackSize(stackSize);
1381}
1382
1383rule__ReferenceDeclaration__Group__4__Impl
1384 @init {
1385 int stackSize = keepStackSize();
1386 }
1387:
1388(
1389 { before(grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_4()); }
1390 ']'
1391 { after(grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_4()); }
1392)
1393;
1394finally {
1395 restoreStackSize(stackSize);
1396}
1397
1398rule__ReferenceDeclaration__Group__5
1399 @init {
1400 int stackSize = keepStackSize();
1401 }
1402:
1403 rule__ReferenceDeclaration__Group__5__Impl
1404 rule__ReferenceDeclaration__Group__6
1405;
1406finally {
1407 restoreStackSize(stackSize);
1408}
1409
1410rule__ReferenceDeclaration__Group__5__Impl
1411 @init {
1412 int stackSize = keepStackSize();
1413 }
1414:
1415(
1416 { before(grammarAccess.getReferenceDeclarationAccess().getNameAssignment_5()); }
1417 (rule__ReferenceDeclaration__NameAssignment_5)
1418 { after(grammarAccess.getReferenceDeclarationAccess().getNameAssignment_5()); }
1419)
1420;
1421finally {
1422 restoreStackSize(stackSize);
1423}
1424
1425rule__ReferenceDeclaration__Group__6
1426 @init {
1427 int stackSize = keepStackSize();
1428 }
1429:
1430 rule__ReferenceDeclaration__Group__6__Impl
1431;
1432finally {
1433 restoreStackSize(stackSize);
1434}
1435
1436rule__ReferenceDeclaration__Group__6__Impl
1437 @init {
1438 int stackSize = keepStackSize();
1439 }
1440:
1441(
1442 { before(grammarAccess.getReferenceDeclarationAccess().getGroup_6()); }
1443 (rule__ReferenceDeclaration__Group_6__0)?
1444 { after(grammarAccess.getReferenceDeclarationAccess().getGroup_6()); }
1445)
1446;
1447finally {
1448 restoreStackSize(stackSize);
1449}
1450
1451
1452rule__ReferenceDeclaration__Group_6__0
1453 @init {
1454 int stackSize = keepStackSize();
1455 }
1456:
1457 rule__ReferenceDeclaration__Group_6__0__Impl
1458 rule__ReferenceDeclaration__Group_6__1
1459;
1460finally {
1461 restoreStackSize(stackSize);
1462}
1463
1464rule__ReferenceDeclaration__Group_6__0__Impl
1465 @init {
1466 int stackSize = keepStackSize();
1467 }
1468:
1469(
1470 { before(grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_6_0()); }
1471 'opposite'
1472 { after(grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_6_0()); }
1473)
1474;
1475finally {
1476 restoreStackSize(stackSize);
1477}
1478
1479rule__ReferenceDeclaration__Group_6__1
1480 @init {
1481 int stackSize = keepStackSize();
1482 }
1483:
1484 rule__ReferenceDeclaration__Group_6__1__Impl
1485;
1486finally {
1487 restoreStackSize(stackSize);
1488}
1489
1490rule__ReferenceDeclaration__Group_6__1__Impl
1491 @init {
1492 int stackSize = keepStackSize();
1493 }
1494:
1495(
1496 { before(grammarAccess.getReferenceDeclarationAccess().getOppositeAssignment_6_1()); }
1497 (rule__ReferenceDeclaration__OppositeAssignment_6_1)
1498 { after(grammarAccess.getReferenceDeclarationAccess().getOppositeAssignment_6_1()); }
1499)
1500;
1501finally {
1502 restoreStackSize(stackSize);
1503}
1504
1505
1506rule__PredicateDefinition__Group__0
1507 @init {
1508 int stackSize = keepStackSize();
1509 }
1510:
1511 rule__PredicateDefinition__Group__0__Impl
1512 rule__PredicateDefinition__Group__1
1513;
1514finally {
1515 restoreStackSize(stackSize);
1516}
1517
1518rule__PredicateDefinition__Group__0__Impl
1519 @init {
1520 int stackSize = keepStackSize();
1521 }
1522:
1523(
1524 { before(grammarAccess.getPredicateDefinitionAccess().getAlternatives_0()); }
1525 (rule__PredicateDefinition__Alternatives_0)
1526 { after(grammarAccess.getPredicateDefinitionAccess().getAlternatives_0()); }
1527)
1528;
1529finally {
1530 restoreStackSize(stackSize);
1531}
1532
1533rule__PredicateDefinition__Group__1
1534 @init {
1535 int stackSize = keepStackSize();
1536 }
1537:
1538 rule__PredicateDefinition__Group__1__Impl
1539 rule__PredicateDefinition__Group__2
1540;
1541finally {
1542 restoreStackSize(stackSize);
1543}
1544
1545rule__PredicateDefinition__Group__1__Impl
1546 @init {
1547 int stackSize = keepStackSize();
1548 }
1549:
1550(
1551 { before(grammarAccess.getPredicateDefinitionAccess().getNameAssignment_1()); }
1552 (rule__PredicateDefinition__NameAssignment_1)
1553 { after(grammarAccess.getPredicateDefinitionAccess().getNameAssignment_1()); }
1554)
1555;
1556finally {
1557 restoreStackSize(stackSize);
1558}
1559
1560rule__PredicateDefinition__Group__2
1561 @init {
1562 int stackSize = keepStackSize();
1563 }
1564:
1565 rule__PredicateDefinition__Group__2__Impl
1566 rule__PredicateDefinition__Group__3
1567;
1568finally {
1569 restoreStackSize(stackSize);
1570}
1571
1572rule__PredicateDefinition__Group__2__Impl
1573 @init {
1574 int stackSize = keepStackSize();
1575 }
1576:
1577(
1578 { before(grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2()); }
1579 '('
1580 { after(grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2()); }
1581)
1582;
1583finally {
1584 restoreStackSize(stackSize);
1585}
1586
1587rule__PredicateDefinition__Group__3
1588 @init {
1589 int stackSize = keepStackSize();
1590 }
1591:
1592 rule__PredicateDefinition__Group__3__Impl
1593 rule__PredicateDefinition__Group__4
1594;
1595finally {
1596 restoreStackSize(stackSize);
1597}
1598
1599rule__PredicateDefinition__Group__3__Impl
1600 @init {
1601 int stackSize = keepStackSize();
1602 }
1603:
1604(
1605 { before(grammarAccess.getPredicateDefinitionAccess().getGroup_3()); }
1606 (rule__PredicateDefinition__Group_3__0)?
1607 { after(grammarAccess.getPredicateDefinitionAccess().getGroup_3()); }
1608)
1609;
1610finally {
1611 restoreStackSize(stackSize);
1612}
1613
1614rule__PredicateDefinition__Group__4
1615 @init {
1616 int stackSize = keepStackSize();
1617 }
1618:
1619 rule__PredicateDefinition__Group__4__Impl
1620 rule__PredicateDefinition__Group__5
1621;
1622finally {
1623 restoreStackSize(stackSize);
1624}
1625
1626rule__PredicateDefinition__Group__4__Impl
1627 @init {
1628 int stackSize = keepStackSize();
1629 }
1630:
1631(
1632 { before(grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4()); }
1633 ')'
1634 { after(grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4()); }
1635)
1636;
1637finally {
1638 restoreStackSize(stackSize);
1639}
1640
1641rule__PredicateDefinition__Group__5
1642 @init {
1643 int stackSize = keepStackSize();
1644 }
1645:
1646 rule__PredicateDefinition__Group__5__Impl
1647 rule__PredicateDefinition__Group__6
1648;
1649finally {
1650 restoreStackSize(stackSize);
1651}
1652
1653rule__PredicateDefinition__Group__5__Impl
1654 @init {
1655 int stackSize = keepStackSize();
1656 }
1657:
1658(
1659 { before(grammarAccess.getPredicateDefinitionAccess().getGroup_5()); }
1660 (rule__PredicateDefinition__Group_5__0)?
1661 { after(grammarAccess.getPredicateDefinitionAccess().getGroup_5()); }
1662)
1663;
1664finally {
1665 restoreStackSize(stackSize);
1666}
1667
1668rule__PredicateDefinition__Group__6
1669 @init {
1670 int stackSize = keepStackSize();
1671 }
1672:
1673 rule__PredicateDefinition__Group__6__Impl
1674;
1675finally {
1676 restoreStackSize(stackSize);
1677}
1678
1679rule__PredicateDefinition__Group__6__Impl
1680 @init {
1681 int stackSize = keepStackSize();
1682 }
1683:
1684(
1685 { before(grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6()); }
1686 '.'
1687 { after(grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6()); }
1688)
1689;
1690finally {
1691 restoreStackSize(stackSize);
1692}
1693
1694
1695rule__PredicateDefinition__Group_0_0__0
1696 @init {
1697 int stackSize = keepStackSize();
1698 }
1699:
1700 rule__PredicateDefinition__Group_0_0__0__Impl
1701 rule__PredicateDefinition__Group_0_0__1
1702;
1703finally {
1704 restoreStackSize(stackSize);
1705}
1706
1707rule__PredicateDefinition__Group_0_0__0__Impl
1708 @init {
1709 int stackSize = keepStackSize();
1710 }
1711:
1712(
1713 { before(grammarAccess.getPredicateDefinitionAccess().getErrorAssignment_0_0_0()); }
1714 (rule__PredicateDefinition__ErrorAssignment_0_0_0)
1715 { after(grammarAccess.getPredicateDefinitionAccess().getErrorAssignment_0_0_0()); }
1716)
1717;
1718finally {
1719 restoreStackSize(stackSize);
1720}
1721
1722rule__PredicateDefinition__Group_0_0__1
1723 @init {
1724 int stackSize = keepStackSize();
1725 }
1726:
1727 rule__PredicateDefinition__Group_0_0__1__Impl
1728;
1729finally {
1730 restoreStackSize(stackSize);
1731}
1732
1733rule__PredicateDefinition__Group_0_0__1__Impl
1734 @init {
1735 int stackSize = keepStackSize();
1736 }
1737:
1738(
1739 { before(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1()); }
1740 ('pred')?
1741 { after(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1()); }
1742)
1743;
1744finally {
1745 restoreStackSize(stackSize);
1746}
1747
1748
1749rule__PredicateDefinition__Group_3__0
1750 @init {
1751 int stackSize = keepStackSize();
1752 }
1753:
1754 rule__PredicateDefinition__Group_3__0__Impl
1755 rule__PredicateDefinition__Group_3__1
1756;
1757finally {
1758 restoreStackSize(stackSize);
1759}
1760
1761rule__PredicateDefinition__Group_3__0__Impl
1762 @init {
1763 int stackSize = keepStackSize();
1764 }
1765:
1766(
1767 { before(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_0()); }
1768 (rule__PredicateDefinition__ParametersAssignment_3_0)
1769 { after(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_0()); }
1770)
1771;
1772finally {
1773 restoreStackSize(stackSize);
1774}
1775
1776rule__PredicateDefinition__Group_3__1
1777 @init {
1778 int stackSize = keepStackSize();
1779 }
1780:
1781 rule__PredicateDefinition__Group_3__1__Impl
1782;
1783finally {
1784 restoreStackSize(stackSize);
1785}
1786
1787rule__PredicateDefinition__Group_3__1__Impl
1788 @init {
1789 int stackSize = keepStackSize();
1790 }
1791:
1792(
1793 { before(grammarAccess.getPredicateDefinitionAccess().getGroup_3_1()); }
1794 (rule__PredicateDefinition__Group_3_1__0)*
1795 { after(grammarAccess.getPredicateDefinitionAccess().getGroup_3_1()); }
1796)
1797;
1798finally {
1799 restoreStackSize(stackSize);
1800}
1801
1802
1803rule__PredicateDefinition__Group_3_1__0
1804 @init {
1805 int stackSize = keepStackSize();
1806 }
1807:
1808 rule__PredicateDefinition__Group_3_1__0__Impl
1809 rule__PredicateDefinition__Group_3_1__1
1810;
1811finally {
1812 restoreStackSize(stackSize);
1813}
1814
1815rule__PredicateDefinition__Group_3_1__0__Impl
1816 @init {
1817 int stackSize = keepStackSize();
1818 }
1819:
1820(
1821 { before(grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0()); }
1822 ','
1823 { after(grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0()); }
1824)
1825;
1826finally {
1827 restoreStackSize(stackSize);
1828}
1829
1830rule__PredicateDefinition__Group_3_1__1
1831 @init {
1832 int stackSize = keepStackSize();
1833 }
1834:
1835 rule__PredicateDefinition__Group_3_1__1__Impl
1836;
1837finally {
1838 restoreStackSize(stackSize);
1839}
1840
1841rule__PredicateDefinition__Group_3_1__1__Impl
1842 @init {
1843 int stackSize = keepStackSize();
1844 }
1845:
1846(
1847 { before(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_1_1()); }
1848 (rule__PredicateDefinition__ParametersAssignment_3_1_1)
1849 { after(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_1_1()); }
1850)
1851;
1852finally {
1853 restoreStackSize(stackSize);
1854}
1855
1856
1857rule__PredicateDefinition__Group_5__0
1858 @init {
1859 int stackSize = keepStackSize();
1860 }
1861:
1862 rule__PredicateDefinition__Group_5__0__Impl
1863 rule__PredicateDefinition__Group_5__1
1864;
1865finally {
1866 restoreStackSize(stackSize);
1867}
1868
1869rule__PredicateDefinition__Group_5__0__Impl
1870 @init {
1871 int stackSize = keepStackSize();
1872 }
1873:
1874(
1875 { before(grammarAccess.getPredicateDefinitionAccess().getColonEqualsSignKeyword_5_0()); }
1876 ':='
1877 { after(grammarAccess.getPredicateDefinitionAccess().getColonEqualsSignKeyword_5_0()); }
1878)
1879;
1880finally {
1881 restoreStackSize(stackSize);
1882}
1883
1884rule__PredicateDefinition__Group_5__1
1885 @init {
1886 int stackSize = keepStackSize();
1887 }
1888:
1889 rule__PredicateDefinition__Group_5__1__Impl
1890 rule__PredicateDefinition__Group_5__2
1891;
1892finally {
1893 restoreStackSize(stackSize);
1894}
1895
1896rule__PredicateDefinition__Group_5__1__Impl
1897 @init {
1898 int stackSize = keepStackSize();
1899 }
1900:
1901(
1902 { before(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_1()); }
1903 (rule__PredicateDefinition__BodiesAssignment_5_1)
1904 { after(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_1()); }
1905)
1906;
1907finally {
1908 restoreStackSize(stackSize);
1909}
1910
1911rule__PredicateDefinition__Group_5__2
1912 @init {
1913 int stackSize = keepStackSize();
1914 }
1915:
1916 rule__PredicateDefinition__Group_5__2__Impl
1917;
1918finally {
1919 restoreStackSize(stackSize);
1920}
1921
1922rule__PredicateDefinition__Group_5__2__Impl
1923 @init {
1924 int stackSize = keepStackSize();
1925 }
1926:
1927(
1928 { before(grammarAccess.getPredicateDefinitionAccess().getGroup_5_2()); }
1929 (rule__PredicateDefinition__Group_5_2__0)*
1930 { after(grammarAccess.getPredicateDefinitionAccess().getGroup_5_2()); }
1931)
1932;
1933finally {
1934 restoreStackSize(stackSize);
1935}
1936
1937
1938rule__PredicateDefinition__Group_5_2__0
1939 @init {
1940 int stackSize = keepStackSize();
1941 }
1942:
1943 rule__PredicateDefinition__Group_5_2__0__Impl
1944 rule__PredicateDefinition__Group_5_2__1
1945;
1946finally {
1947 restoreStackSize(stackSize);
1948}
1949
1950rule__PredicateDefinition__Group_5_2__0__Impl
1951 @init {
1952 int stackSize = keepStackSize();
1953 }
1954:
1955(
1956 { before(grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0()); }
1957 ';'
1958 { after(grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0()); }
1959)
1960;
1961finally {
1962 restoreStackSize(stackSize);
1963}
1964
1965rule__PredicateDefinition__Group_5_2__1
1966 @init {
1967 int stackSize = keepStackSize();
1968 }
1969:
1970 rule__PredicateDefinition__Group_5_2__1__Impl
1971;
1972finally {
1973 restoreStackSize(stackSize);
1974}
1975
1976rule__PredicateDefinition__Group_5_2__1__Impl
1977 @init {
1978 int stackSize = keepStackSize();
1979 }
1980:
1981(
1982 { before(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_2_1()); }
1983 (rule__PredicateDefinition__BodiesAssignment_5_2_1)
1984 { after(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_2_1()); }
1985)
1986;
1987finally {
1988 restoreStackSize(stackSize);
1989}
1990
1991
1992rule__Parameter__Group__0
1993 @init {
1994 int stackSize = keepStackSize();
1995 }
1996:
1997 rule__Parameter__Group__0__Impl
1998 rule__Parameter__Group__1
1999;
2000finally {
2001 restoreStackSize(stackSize);
2002}
2003
2004rule__Parameter__Group__0__Impl
2005 @init {
2006 int stackSize = keepStackSize();
2007 }
2008:
2009(
2010 { before(grammarAccess.getParameterAccess().getParameterTypeAssignment_0()); }
2011 (rule__Parameter__ParameterTypeAssignment_0)
2012 { after(grammarAccess.getParameterAccess().getParameterTypeAssignment_0()); }
2013)
2014;
2015finally {
2016 restoreStackSize(stackSize);
2017}
2018
2019rule__Parameter__Group__1
2020 @init {
2021 int stackSize = keepStackSize();
2022 }
2023:
2024 rule__Parameter__Group__1__Impl
2025;
2026finally {
2027 restoreStackSize(stackSize);
2028}
2029
2030rule__Parameter__Group__1__Impl
2031 @init {
2032 int stackSize = keepStackSize();
2033 }
2034:
2035(
2036 { before(grammarAccess.getParameterAccess().getNameAssignment_1()); }
2037 (rule__Parameter__NameAssignment_1)
2038 { after(grammarAccess.getParameterAccess().getNameAssignment_1()); }
2039)
2040;
2041finally {
2042 restoreStackSize(stackSize);
2043}
2044
2045
2046rule__Conjunction__Group__0
2047 @init {
2048 int stackSize = keepStackSize();
2049 }
2050:
2051 rule__Conjunction__Group__0__Impl
2052 rule__Conjunction__Group__1
2053;
2054finally {
2055 restoreStackSize(stackSize);
2056}
2057
2058rule__Conjunction__Group__0__Impl
2059 @init {
2060 int stackSize = keepStackSize();
2061 }
2062:
2063(
2064 { before(grammarAccess.getConjunctionAccess().getLiteralsAssignment_0()); }
2065 (rule__Conjunction__LiteralsAssignment_0)
2066 { after(grammarAccess.getConjunctionAccess().getLiteralsAssignment_0()); }
2067)
2068;
2069finally {
2070 restoreStackSize(stackSize);
2071}
2072
2073rule__Conjunction__Group__1
2074 @init {
2075 int stackSize = keepStackSize();
2076 }
2077:
2078 rule__Conjunction__Group__1__Impl
2079;
2080finally {
2081 restoreStackSize(stackSize);
2082}
2083
2084rule__Conjunction__Group__1__Impl
2085 @init {
2086 int stackSize = keepStackSize();
2087 }
2088:
2089(
2090 { before(grammarAccess.getConjunctionAccess().getGroup_1()); }
2091 (rule__Conjunction__Group_1__0)*
2092 { after(grammarAccess.getConjunctionAccess().getGroup_1()); }
2093)
2094;
2095finally {
2096 restoreStackSize(stackSize);
2097}
2098
2099
2100rule__Conjunction__Group_1__0
2101 @init {
2102 int stackSize = keepStackSize();
2103 }
2104:
2105 rule__Conjunction__Group_1__0__Impl
2106 rule__Conjunction__Group_1__1
2107;
2108finally {
2109 restoreStackSize(stackSize);
2110}
2111
2112rule__Conjunction__Group_1__0__Impl
2113 @init {
2114 int stackSize = keepStackSize();
2115 }
2116:
2117(
2118 { before(grammarAccess.getConjunctionAccess().getCommaKeyword_1_0()); }
2119 ','
2120 { after(grammarAccess.getConjunctionAccess().getCommaKeyword_1_0()); }
2121)
2122;
2123finally {
2124 restoreStackSize(stackSize);
2125}
2126
2127rule__Conjunction__Group_1__1
2128 @init {
2129 int stackSize = keepStackSize();
2130 }
2131:
2132 rule__Conjunction__Group_1__1__Impl
2133;
2134finally {
2135 restoreStackSize(stackSize);
2136}
2137
2138rule__Conjunction__Group_1__1__Impl
2139 @init {
2140 int stackSize = keepStackSize();
2141 }
2142:
2143(
2144 { before(grammarAccess.getConjunctionAccess().getLiteralsAssignment_1_1()); }
2145 (rule__Conjunction__LiteralsAssignment_1_1)
2146 { after(grammarAccess.getConjunctionAccess().getLiteralsAssignment_1_1()); }
2147)
2148;
2149finally {
2150 restoreStackSize(stackSize);
2151}
2152
2153
2154rule__NegativeLiteral__Group__0
2155 @init {
2156 int stackSize = keepStackSize();
2157 }
2158:
2159 rule__NegativeLiteral__Group__0__Impl
2160 rule__NegativeLiteral__Group__1
2161;
2162finally {
2163 restoreStackSize(stackSize);
2164}
2165
2166rule__NegativeLiteral__Group__0__Impl
2167 @init {
2168 int stackSize = keepStackSize();
2169 }
2170:
2171(
2172 { before(grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0()); }
2173 '!'
2174 { after(grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0()); }
2175)
2176;
2177finally {
2178 restoreStackSize(stackSize);
2179}
2180
2181rule__NegativeLiteral__Group__1
2182 @init {
2183 int stackSize = keepStackSize();
2184 }
2185:
2186 rule__NegativeLiteral__Group__1__Impl
2187;
2188finally {
2189 restoreStackSize(stackSize);
2190}
2191
2192rule__NegativeLiteral__Group__1__Impl
2193 @init {
2194 int stackSize = keepStackSize();
2195 }
2196:
2197(
2198 { before(grammarAccess.getNegativeLiteralAccess().getAtomAssignment_1()); }
2199 (rule__NegativeLiteral__AtomAssignment_1)
2200 { after(grammarAccess.getNegativeLiteralAccess().getAtomAssignment_1()); }
2201)
2202;
2203finally {
2204 restoreStackSize(stackSize);
2205}
2206
2207
2208rule__Atom__Group__0
2209 @init {
2210 int stackSize = keepStackSize();
2211 }
2212:
2213 rule__Atom__Group__0__Impl
2214 rule__Atom__Group__1
2215;
2216finally {
2217 restoreStackSize(stackSize);
2218}
2219
2220rule__Atom__Group__0__Impl
2221 @init {
2222 int stackSize = keepStackSize();
2223 }
2224:
2225(
2226 { before(grammarAccess.getAtomAccess().getRelationAssignment_0()); }
2227 (rule__Atom__RelationAssignment_0)
2228 { after(grammarAccess.getAtomAccess().getRelationAssignment_0()); }
2229)
2230;
2231finally {
2232 restoreStackSize(stackSize);
2233}
2234
2235rule__Atom__Group__1
2236 @init {
2237 int stackSize = keepStackSize();
2238 }
2239:
2240 rule__Atom__Group__1__Impl
2241 rule__Atom__Group__2
2242;
2243finally {
2244 restoreStackSize(stackSize);
2245}
2246
2247rule__Atom__Group__1__Impl
2248 @init {
2249 int stackSize = keepStackSize();
2250 }
2251:
2252(
2253 { before(grammarAccess.getAtomAccess().getTransitiveClosureAssignment_1()); }
2254 (rule__Atom__TransitiveClosureAssignment_1)?
2255 { after(grammarAccess.getAtomAccess().getTransitiveClosureAssignment_1()); }
2256)
2257;
2258finally {
2259 restoreStackSize(stackSize);
2260}
2261
2262rule__Atom__Group__2
2263 @init {
2264 int stackSize = keepStackSize();
2265 }
2266:
2267 rule__Atom__Group__2__Impl
2268 rule__Atom__Group__3
2269;
2270finally {
2271 restoreStackSize(stackSize);
2272}
2273
2274rule__Atom__Group__2__Impl
2275 @init {
2276 int stackSize = keepStackSize();
2277 }
2278:
2279(
2280 { before(grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2()); }
2281 '('
2282 { after(grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2()); }
2283)
2284;
2285finally {
2286 restoreStackSize(stackSize);
2287}
2288
2289rule__Atom__Group__3
2290 @init {
2291 int stackSize = keepStackSize();
2292 }
2293:
2294 rule__Atom__Group__3__Impl
2295 rule__Atom__Group__4
2296;
2297finally {
2298 restoreStackSize(stackSize);
2299}
2300
2301rule__Atom__Group__3__Impl
2302 @init {
2303 int stackSize = keepStackSize();
2304 }
2305:
2306(
2307 { before(grammarAccess.getAtomAccess().getGroup_3()); }
2308 (rule__Atom__Group_3__0)?
2309 { after(grammarAccess.getAtomAccess().getGroup_3()); }
2310)
2311;
2312finally {
2313 restoreStackSize(stackSize);
2314}
2315
2316rule__Atom__Group__4
2317 @init {
2318 int stackSize = keepStackSize();
2319 }
2320:
2321 rule__Atom__Group__4__Impl
2322;
2323finally {
2324 restoreStackSize(stackSize);
2325}
2326
2327rule__Atom__Group__4__Impl
2328 @init {
2329 int stackSize = keepStackSize();
2330 }
2331:
2332(
2333 { before(grammarAccess.getAtomAccess().getRightParenthesisKeyword_4()); }
2334 ')'
2335 { after(grammarAccess.getAtomAccess().getRightParenthesisKeyword_4()); }
2336)
2337;
2338finally {
2339 restoreStackSize(stackSize);
2340}
2341
2342
2343rule__Atom__Group_3__0
2344 @init {
2345 int stackSize = keepStackSize();
2346 }
2347:
2348 rule__Atom__Group_3__0__Impl
2349 rule__Atom__Group_3__1
2350;
2351finally {
2352 restoreStackSize(stackSize);
2353}
2354
2355rule__Atom__Group_3__0__Impl
2356 @init {
2357 int stackSize = keepStackSize();
2358 }
2359:
2360(
2361 { before(grammarAccess.getAtomAccess().getArgumentsAssignment_3_0()); }
2362 (rule__Atom__ArgumentsAssignment_3_0)
2363 { after(grammarAccess.getAtomAccess().getArgumentsAssignment_3_0()); }
2364)
2365;
2366finally {
2367 restoreStackSize(stackSize);
2368}
2369
2370rule__Atom__Group_3__1
2371 @init {
2372 int stackSize = keepStackSize();
2373 }
2374:
2375 rule__Atom__Group_3__1__Impl
2376;
2377finally {
2378 restoreStackSize(stackSize);
2379}
2380
2381rule__Atom__Group_3__1__Impl
2382 @init {
2383 int stackSize = keepStackSize();
2384 }
2385:
2386(
2387 { before(grammarAccess.getAtomAccess().getGroup_3_1()); }
2388 (rule__Atom__Group_3_1__0)*
2389 { after(grammarAccess.getAtomAccess().getGroup_3_1()); }
2390)
2391;
2392finally {
2393 restoreStackSize(stackSize);
2394}
2395
2396
2397rule__Atom__Group_3_1__0
2398 @init {
2399 int stackSize = keepStackSize();
2400 }
2401:
2402 rule__Atom__Group_3_1__0__Impl
2403 rule__Atom__Group_3_1__1
2404;
2405finally {
2406 restoreStackSize(stackSize);
2407}
2408
2409rule__Atom__Group_3_1__0__Impl
2410 @init {
2411 int stackSize = keepStackSize();
2412 }
2413:
2414(
2415 { before(grammarAccess.getAtomAccess().getCommaKeyword_3_1_0()); }
2416 ','
2417 { after(grammarAccess.getAtomAccess().getCommaKeyword_3_1_0()); }
2418)
2419;
2420finally {
2421 restoreStackSize(stackSize);
2422}
2423
2424rule__Atom__Group_3_1__1
2425 @init {
2426 int stackSize = keepStackSize();
2427 }
2428:
2429 rule__Atom__Group_3_1__1__Impl
2430;
2431finally {
2432 restoreStackSize(stackSize);
2433}
2434
2435rule__Atom__Group_3_1__1__Impl
2436 @init {
2437 int stackSize = keepStackSize();
2438 }
2439:
2440(
2441 { before(grammarAccess.getAtomAccess().getArgumentsAssignment_3_1_1()); }
2442 (rule__Atom__ArgumentsAssignment_3_1_1)
2443 { after(grammarAccess.getAtomAccess().getArgumentsAssignment_3_1_1()); }
2444)
2445;
2446finally {
2447 restoreStackSize(stackSize);
2448}
2449
2450
2451rule__Assertion__Group__0
2452 @init {
2453 int stackSize = keepStackSize();
2454 }
2455:
2456 rule__Assertion__Group__0__Impl
2457 rule__Assertion__Group__1
2458;
2459finally {
2460 restoreStackSize(stackSize);
2461}
2462
2463rule__Assertion__Group__0__Impl
2464 @init {
2465 int stackSize = keepStackSize();
2466 }
2467:
2468(
2469 { before(grammarAccess.getAssertionAccess().getAlternatives_0()); }
2470 (rule__Assertion__Alternatives_0)
2471 { after(grammarAccess.getAssertionAccess().getAlternatives_0()); }
2472)
2473;
2474finally {
2475 restoreStackSize(stackSize);
2476}
2477
2478rule__Assertion__Group__1
2479 @init {
2480 int stackSize = keepStackSize();
2481 }
2482:
2483 rule__Assertion__Group__1__Impl
2484;
2485finally {
2486 restoreStackSize(stackSize);
2487}
2488
2489rule__Assertion__Group__1__Impl
2490 @init {
2491 int stackSize = keepStackSize();
2492 }
2493:
2494(
2495 { before(grammarAccess.getAssertionAccess().getFullStopKeyword_1()); }
2496 '.'
2497 { after(grammarAccess.getAssertionAccess().getFullStopKeyword_1()); }
2498)
2499;
2500finally {
2501 restoreStackSize(stackSize);
2502}
2503
2504
2505rule__Assertion__Group_0_0__0
2506 @init {
2507 int stackSize = keepStackSize();
2508 }
2509:
2510 rule__Assertion__Group_0_0__0__Impl
2511 rule__Assertion__Group_0_0__1
2512;
2513finally {
2514 restoreStackSize(stackSize);
2515}
2516
2517rule__Assertion__Group_0_0__0__Impl
2518 @init {
2519 int stackSize = keepStackSize();
2520 }
2521:
2522(
2523 { before(grammarAccess.getAssertionAccess().getRelationAssignment_0_0_0()); }
2524 (rule__Assertion__RelationAssignment_0_0_0)
2525 { after(grammarAccess.getAssertionAccess().getRelationAssignment_0_0_0()); }
2526)
2527;
2528finally {
2529 restoreStackSize(stackSize);
2530}
2531
2532rule__Assertion__Group_0_0__1
2533 @init {
2534 int stackSize = keepStackSize();
2535 }
2536:
2537 rule__Assertion__Group_0_0__1__Impl
2538 rule__Assertion__Group_0_0__2
2539;
2540finally {
2541 restoreStackSize(stackSize);
2542}
2543
2544rule__Assertion__Group_0_0__1__Impl
2545 @init {
2546 int stackSize = keepStackSize();
2547 }
2548:
2549(
2550 { before(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1()); }
2551 '('
2552 { after(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1()); }
2553)
2554;
2555finally {
2556 restoreStackSize(stackSize);
2557}
2558
2559rule__Assertion__Group_0_0__2
2560 @init {
2561 int stackSize = keepStackSize();
2562 }
2563:
2564 rule__Assertion__Group_0_0__2__Impl
2565 rule__Assertion__Group_0_0__3
2566;
2567finally {
2568 restoreStackSize(stackSize);
2569}
2570
2571rule__Assertion__Group_0_0__2__Impl
2572 @init {
2573 int stackSize = keepStackSize();
2574 }
2575:
2576(
2577 { before(grammarAccess.getAssertionAccess().getGroup_0_0_2()); }
2578 (rule__Assertion__Group_0_0_2__0)?
2579 { after(grammarAccess.getAssertionAccess().getGroup_0_0_2()); }
2580)
2581;
2582finally {
2583 restoreStackSize(stackSize);
2584}
2585
2586rule__Assertion__Group_0_0__3
2587 @init {
2588 int stackSize = keepStackSize();
2589 }
2590:
2591 rule__Assertion__Group_0_0__3__Impl
2592 rule__Assertion__Group_0_0__4
2593;
2594finally {
2595 restoreStackSize(stackSize);
2596}
2597
2598rule__Assertion__Group_0_0__3__Impl
2599 @init {
2600 int stackSize = keepStackSize();
2601 }
2602:
2603(
2604 { before(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3()); }
2605 ')'
2606 { after(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3()); }
2607)
2608;
2609finally {
2610 restoreStackSize(stackSize);
2611}
2612
2613rule__Assertion__Group_0_0__4
2614 @init {
2615 int stackSize = keepStackSize();
2616 }
2617:
2618 rule__Assertion__Group_0_0__4__Impl
2619 rule__Assertion__Group_0_0__5
2620;
2621finally {
2622 restoreStackSize(stackSize);
2623}
2624
2625rule__Assertion__Group_0_0__4__Impl
2626 @init {
2627 int stackSize = keepStackSize();
2628 }
2629:
2630(
2631 { before(grammarAccess.getAssertionAccess().getColonKeyword_0_0_4()); }
2632 ':'
2633 { after(grammarAccess.getAssertionAccess().getColonKeyword_0_0_4()); }
2634)
2635;
2636finally {
2637 restoreStackSize(stackSize);
2638}
2639
2640rule__Assertion__Group_0_0__5
2641 @init {
2642 int stackSize = keepStackSize();
2643 }
2644:
2645 rule__Assertion__Group_0_0__5__Impl
2646;
2647finally {
2648 restoreStackSize(stackSize);
2649}
2650
2651rule__Assertion__Group_0_0__5__Impl
2652 @init {
2653 int stackSize = keepStackSize();
2654 }
2655:
2656(
2657 { before(grammarAccess.getAssertionAccess().getValueAssignment_0_0_5()); }
2658 (rule__Assertion__ValueAssignment_0_0_5)
2659 { after(grammarAccess.getAssertionAccess().getValueAssignment_0_0_5()); }
2660)
2661;
2662finally {
2663 restoreStackSize(stackSize);
2664}
2665
2666
2667rule__Assertion__Group_0_0_2__0
2668 @init {
2669 int stackSize = keepStackSize();
2670 }
2671:
2672 rule__Assertion__Group_0_0_2__0__Impl
2673 rule__Assertion__Group_0_0_2__1
2674;
2675finally {
2676 restoreStackSize(stackSize);
2677}
2678
2679rule__Assertion__Group_0_0_2__0__Impl
2680 @init {
2681 int stackSize = keepStackSize();
2682 }
2683:
2684(
2685 { before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_0()); }
2686 (rule__Assertion__ArgumentsAssignment_0_0_2_0)
2687 { after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_0()); }
2688)
2689;
2690finally {
2691 restoreStackSize(stackSize);
2692}
2693
2694rule__Assertion__Group_0_0_2__1
2695 @init {
2696 int stackSize = keepStackSize();
2697 }
2698:
2699 rule__Assertion__Group_0_0_2__1__Impl
2700;
2701finally {
2702 restoreStackSize(stackSize);
2703}
2704
2705rule__Assertion__Group_0_0_2__1__Impl
2706 @init {
2707 int stackSize = keepStackSize();
2708 }
2709:
2710(
2711 { before(grammarAccess.getAssertionAccess().getGroup_0_0_2_1()); }
2712 (rule__Assertion__Group_0_0_2_1__0)*
2713 { after(grammarAccess.getAssertionAccess().getGroup_0_0_2_1()); }
2714)
2715;
2716finally {
2717 restoreStackSize(stackSize);
2718}
2719
2720
2721rule__Assertion__Group_0_0_2_1__0
2722 @init {
2723 int stackSize = keepStackSize();
2724 }
2725:
2726 rule__Assertion__Group_0_0_2_1__0__Impl
2727 rule__Assertion__Group_0_0_2_1__1
2728;
2729finally {
2730 restoreStackSize(stackSize);
2731}
2732
2733rule__Assertion__Group_0_0_2_1__0__Impl
2734 @init {
2735 int stackSize = keepStackSize();
2736 }
2737:
2738(
2739 { before(grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0()); }
2740 ','
2741 { after(grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0()); }
2742)
2743;
2744finally {
2745 restoreStackSize(stackSize);
2746}
2747
2748rule__Assertion__Group_0_0_2_1__1
2749 @init {
2750 int stackSize = keepStackSize();
2751 }
2752:
2753 rule__Assertion__Group_0_0_2_1__1__Impl
2754;
2755finally {
2756 restoreStackSize(stackSize);
2757}
2758
2759rule__Assertion__Group_0_0_2_1__1__Impl
2760 @init {
2761 int stackSize = keepStackSize();
2762 }
2763:
2764(
2765 { before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_1_1()); }
2766 (rule__Assertion__ArgumentsAssignment_0_0_2_1_1)
2767 { after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_1_1()); }
2768)
2769;
2770finally {
2771 restoreStackSize(stackSize);
2772}
2773
2774
2775rule__Assertion__Group_0_1__0
2776 @init {
2777 int stackSize = keepStackSize();
2778 }
2779:
2780 rule__Assertion__Group_0_1__0__Impl
2781 rule__Assertion__Group_0_1__1
2782;
2783finally {
2784 restoreStackSize(stackSize);
2785}
2786
2787rule__Assertion__Group_0_1__0__Impl
2788 @init {
2789 int stackSize = keepStackSize();
2790 }
2791:
2792(
2793 { before(grammarAccess.getAssertionAccess().getValueAssignment_0_1_0()); }
2794 (rule__Assertion__ValueAssignment_0_1_0)?
2795 { after(grammarAccess.getAssertionAccess().getValueAssignment_0_1_0()); }
2796)
2797;
2798finally {
2799 restoreStackSize(stackSize);
2800}
2801
2802rule__Assertion__Group_0_1__1
2803 @init {
2804 int stackSize = keepStackSize();
2805 }
2806:
2807 rule__Assertion__Group_0_1__1__Impl
2808 rule__Assertion__Group_0_1__2
2809;
2810finally {
2811 restoreStackSize(stackSize);
2812}
2813
2814rule__Assertion__Group_0_1__1__Impl
2815 @init {
2816 int stackSize = keepStackSize();
2817 }
2818:
2819(
2820 { before(grammarAccess.getAssertionAccess().getRelationAssignment_0_1_1()); }
2821 (rule__Assertion__RelationAssignment_0_1_1)
2822 { after(grammarAccess.getAssertionAccess().getRelationAssignment_0_1_1()); }
2823)
2824;
2825finally {
2826 restoreStackSize(stackSize);
2827}
2828
2829rule__Assertion__Group_0_1__2
2830 @init {
2831 int stackSize = keepStackSize();
2832 }
2833:
2834 rule__Assertion__Group_0_1__2__Impl
2835 rule__Assertion__Group_0_1__3
2836;
2837finally {
2838 restoreStackSize(stackSize);
2839}
2840
2841rule__Assertion__Group_0_1__2__Impl
2842 @init {
2843 int stackSize = keepStackSize();
2844 }
2845:
2846(
2847 { before(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2()); }
2848 '('
2849 { after(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2()); }
2850)
2851;
2852finally {
2853 restoreStackSize(stackSize);
2854}
2855
2856rule__Assertion__Group_0_1__3
2857 @init {
2858 int stackSize = keepStackSize();
2859 }
2860:
2861 rule__Assertion__Group_0_1__3__Impl
2862 rule__Assertion__Group_0_1__4
2863;
2864finally {
2865 restoreStackSize(stackSize);
2866}
2867
2868rule__Assertion__Group_0_1__3__Impl
2869 @init {
2870 int stackSize = keepStackSize();
2871 }
2872:
2873(
2874 { before(grammarAccess.getAssertionAccess().getGroup_0_1_3()); }
2875 (rule__Assertion__Group_0_1_3__0)?
2876 { after(grammarAccess.getAssertionAccess().getGroup_0_1_3()); }
2877)
2878;
2879finally {
2880 restoreStackSize(stackSize);
2881}
2882
2883rule__Assertion__Group_0_1__4
2884 @init {
2885 int stackSize = keepStackSize();
2886 }
2887:
2888 rule__Assertion__Group_0_1__4__Impl
2889;
2890finally {
2891 restoreStackSize(stackSize);
2892}
2893
2894rule__Assertion__Group_0_1__4__Impl
2895 @init {
2896 int stackSize = keepStackSize();
2897 }
2898:
2899(
2900 { before(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4()); }
2901 ')'
2902 { after(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4()); }
2903)
2904;
2905finally {
2906 restoreStackSize(stackSize);
2907}
2908
2909
2910rule__Assertion__Group_0_1_3__0
2911 @init {
2912 int stackSize = keepStackSize();
2913 }
2914:
2915 rule__Assertion__Group_0_1_3__0__Impl
2916 rule__Assertion__Group_0_1_3__1
2917;
2918finally {
2919 restoreStackSize(stackSize);
2920}
2921
2922rule__Assertion__Group_0_1_3__0__Impl
2923 @init {
2924 int stackSize = keepStackSize();
2925 }
2926:
2927(
2928 { before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_0()); }
2929 (rule__Assertion__ArgumentsAssignment_0_1_3_0)
2930 { after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_0()); }
2931)
2932;
2933finally {
2934 restoreStackSize(stackSize);
2935}
2936
2937rule__Assertion__Group_0_1_3__1
2938 @init {
2939 int stackSize = keepStackSize();
2940 }
2941:
2942 rule__Assertion__Group_0_1_3__1__Impl
2943;
2944finally {
2945 restoreStackSize(stackSize);
2946}
2947
2948rule__Assertion__Group_0_1_3__1__Impl
2949 @init {
2950 int stackSize = keepStackSize();
2951 }
2952:
2953(
2954 { before(grammarAccess.getAssertionAccess().getGroup_0_1_3_1()); }
2955 (rule__Assertion__Group_0_1_3_1__0)*
2956 { after(grammarAccess.getAssertionAccess().getGroup_0_1_3_1()); }
2957)
2958;
2959finally {
2960 restoreStackSize(stackSize);
2961}
2962
2963
2964rule__Assertion__Group_0_1_3_1__0
2965 @init {
2966 int stackSize = keepStackSize();
2967 }
2968:
2969 rule__Assertion__Group_0_1_3_1__0__Impl
2970 rule__Assertion__Group_0_1_3_1__1
2971;
2972finally {
2973 restoreStackSize(stackSize);
2974}
2975
2976rule__Assertion__Group_0_1_3_1__0__Impl
2977 @init {
2978 int stackSize = keepStackSize();
2979 }
2980:
2981(
2982 { before(grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0()); }
2983 ','
2984 { after(grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0()); }
2985)
2986;
2987finally {
2988 restoreStackSize(stackSize);
2989}
2990
2991rule__Assertion__Group_0_1_3_1__1
2992 @init {
2993 int stackSize = keepStackSize();
2994 }
2995:
2996 rule__Assertion__Group_0_1_3_1__1__Impl
2997;
2998finally {
2999 restoreStackSize(stackSize);
3000}
3001
3002rule__Assertion__Group_0_1_3_1__1__Impl
3003 @init {
3004 int stackSize = keepStackSize();
3005 }
3006:
3007(
3008 { before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_1_1()); }
3009 (rule__Assertion__ArgumentsAssignment_0_1_3_1_1)
3010 { after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_1_1()); }
3011)
3012;
3013finally {
3014 restoreStackSize(stackSize);
3015}
3016
3017
3018rule__ScopeDeclaration__Group__0
3019 @init {
3020 int stackSize = keepStackSize();
3021 }
3022:
3023 rule__ScopeDeclaration__Group__0__Impl
3024 rule__ScopeDeclaration__Group__1
3025;
3026finally {
3027 restoreStackSize(stackSize);
3028}
3029
3030rule__ScopeDeclaration__Group__0__Impl
3031 @init {
3032 int stackSize = keepStackSize();
3033 }
3034:
3035(
3036 { before(grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0()); }
3037 'scope'
3038 { after(grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0()); }
3039)
3040;
3041finally {
3042 restoreStackSize(stackSize);
3043}
3044
3045rule__ScopeDeclaration__Group__1
3046 @init {
3047 int stackSize = keepStackSize();
3048 }
3049:
3050 rule__ScopeDeclaration__Group__1__Impl
3051 rule__ScopeDeclaration__Group__2
3052;
3053finally {
3054 restoreStackSize(stackSize);
3055}
3056
3057rule__ScopeDeclaration__Group__1__Impl
3058 @init {
3059 int stackSize = keepStackSize();
3060 }
3061:
3062(
3063 { before(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_1()); }
3064 (rule__ScopeDeclaration__TypeScopesAssignment_1)
3065 { after(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_1()); }
3066)
3067;
3068finally {
3069 restoreStackSize(stackSize);
3070}
3071
3072rule__ScopeDeclaration__Group__2
3073 @init {
3074 int stackSize = keepStackSize();
3075 }
3076:
3077 rule__ScopeDeclaration__Group__2__Impl
3078 rule__ScopeDeclaration__Group__3
3079;
3080finally {
3081 restoreStackSize(stackSize);
3082}
3083
3084rule__ScopeDeclaration__Group__2__Impl
3085 @init {
3086 int stackSize = keepStackSize();
3087 }
3088:
3089(
3090 { before(grammarAccess.getScopeDeclarationAccess().getGroup_2()); }
3091 (rule__ScopeDeclaration__Group_2__0)*
3092 { after(grammarAccess.getScopeDeclarationAccess().getGroup_2()); }
3093)
3094;
3095finally {
3096 restoreStackSize(stackSize);
3097}
3098
3099rule__ScopeDeclaration__Group__3
3100 @init {
3101 int stackSize = keepStackSize();
3102 }
3103:
3104 rule__ScopeDeclaration__Group__3__Impl
3105;
3106finally {
3107 restoreStackSize(stackSize);
3108}
3109
3110rule__ScopeDeclaration__Group__3__Impl
3111 @init {
3112 int stackSize = keepStackSize();
3113 }
3114:
3115(
3116 { before(grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3()); }
3117 '.'
3118 { after(grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3()); }
3119)
3120;
3121finally {
3122 restoreStackSize(stackSize);
3123}
3124
3125
3126rule__ScopeDeclaration__Group_2__0
3127 @init {
3128 int stackSize = keepStackSize();
3129 }
3130:
3131 rule__ScopeDeclaration__Group_2__0__Impl
3132 rule__ScopeDeclaration__Group_2__1
3133;
3134finally {
3135 restoreStackSize(stackSize);
3136}
3137
3138rule__ScopeDeclaration__Group_2__0__Impl
3139 @init {
3140 int stackSize = keepStackSize();
3141 }
3142:
3143(
3144 { before(grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0()); }
3145 ','
3146 { after(grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0()); }
3147)
3148;
3149finally {
3150 restoreStackSize(stackSize);
3151}
3152
3153rule__ScopeDeclaration__Group_2__1
3154 @init {
3155 int stackSize = keepStackSize();
3156 }
3157:
3158 rule__ScopeDeclaration__Group_2__1__Impl
3159;
3160finally {
3161 restoreStackSize(stackSize);
3162}
3163
3164rule__ScopeDeclaration__Group_2__1__Impl
3165 @init {
3166 int stackSize = keepStackSize();
3167 }
3168:
3169(
3170 { before(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_2_1()); }
3171 (rule__ScopeDeclaration__TypeScopesAssignment_2_1)
3172 { after(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_2_1()); }
3173)
3174;
3175finally {
3176 restoreStackSize(stackSize);
3177}
3178
3179
3180rule__TypeScope__Group__0
3181 @init {
3182 int stackSize = keepStackSize();
3183 }
3184:
3185 rule__TypeScope__Group__0__Impl
3186 rule__TypeScope__Group__1
3187;
3188finally {
3189 restoreStackSize(stackSize);
3190}
3191
3192rule__TypeScope__Group__0__Impl
3193 @init {
3194 int stackSize = keepStackSize();
3195 }
3196:
3197(
3198 { before(grammarAccess.getTypeScopeAccess().getTargetTypeAssignment_0()); }
3199 (rule__TypeScope__TargetTypeAssignment_0)
3200 { after(grammarAccess.getTypeScopeAccess().getTargetTypeAssignment_0()); }
3201)
3202;
3203finally {
3204 restoreStackSize(stackSize);
3205}
3206
3207rule__TypeScope__Group__1
3208 @init {
3209 int stackSize = keepStackSize();
3210 }
3211:
3212 rule__TypeScope__Group__1__Impl
3213 rule__TypeScope__Group__2
3214;
3215finally {
3216 restoreStackSize(stackSize);
3217}
3218
3219rule__TypeScope__Group__1__Impl
3220 @init {
3221 int stackSize = keepStackSize();
3222 }
3223:
3224(
3225 { before(grammarAccess.getTypeScopeAccess().getAlternatives_1()); }
3226 (rule__TypeScope__Alternatives_1)
3227 { after(grammarAccess.getTypeScopeAccess().getAlternatives_1()); }
3228)
3229;
3230finally {
3231 restoreStackSize(stackSize);
3232}
3233
3234rule__TypeScope__Group__2
3235 @init {
3236 int stackSize = keepStackSize();
3237 }
3238:
3239 rule__TypeScope__Group__2__Impl
3240;
3241finally {
3242 restoreStackSize(stackSize);
3243}
3244
3245rule__TypeScope__Group__2__Impl
3246 @init {
3247 int stackSize = keepStackSize();
3248 }
3249:
3250(
3251 { before(grammarAccess.getTypeScopeAccess().getMultiplicityAssignment_2()); }
3252 (rule__TypeScope__MultiplicityAssignment_2)
3253 { after(grammarAccess.getTypeScopeAccess().getMultiplicityAssignment_2()); }
3254)
3255;
3256finally {
3257 restoreStackSize(stackSize);
3258}
3259
3260
3261rule__RangeMultiplicity__Group__0
3262 @init {
3263 int stackSize = keepStackSize();
3264 }
3265:
3266 rule__RangeMultiplicity__Group__0__Impl
3267 rule__RangeMultiplicity__Group__1
3268;
3269finally {
3270 restoreStackSize(stackSize);
3271}
3272
3273rule__RangeMultiplicity__Group__0__Impl
3274 @init {
3275 int stackSize = keepStackSize();
3276 }
3277:
3278(
3279 { before(grammarAccess.getRangeMultiplicityAccess().getLowerBoundAssignment_0()); }
3280 (rule__RangeMultiplicity__LowerBoundAssignment_0)
3281 { after(grammarAccess.getRangeMultiplicityAccess().getLowerBoundAssignment_0()); }
3282)
3283;
3284finally {
3285 restoreStackSize(stackSize);
3286}
3287
3288rule__RangeMultiplicity__Group__1
3289 @init {
3290 int stackSize = keepStackSize();
3291 }
3292:
3293 rule__RangeMultiplicity__Group__1__Impl
3294 rule__RangeMultiplicity__Group__2
3295;
3296finally {
3297 restoreStackSize(stackSize);
3298}
3299
3300rule__RangeMultiplicity__Group__1__Impl
3301 @init {
3302 int stackSize = keepStackSize();
3303 }
3304:
3305(
3306 { before(grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1()); }
3307 '..'
3308 { after(grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1()); }
3309)
3310;
3311finally {
3312 restoreStackSize(stackSize);
3313}
3314
3315rule__RangeMultiplicity__Group__2
3316 @init {
3317 int stackSize = keepStackSize();
3318 }
3319:
3320 rule__RangeMultiplicity__Group__2__Impl
3321;
3322finally {
3323 restoreStackSize(stackSize);
3324}
3325
3326rule__RangeMultiplicity__Group__2__Impl
3327 @init {
3328 int stackSize = keepStackSize();
3329 }
3330:
3331(
3332 { before(grammarAccess.getRangeMultiplicityAccess().getUpperBoundAssignment_2()); }
3333 (rule__RangeMultiplicity__UpperBoundAssignment_2)
3334 { after(grammarAccess.getRangeMultiplicityAccess().getUpperBoundAssignment_2()); }
3335)
3336;
3337finally {
3338 restoreStackSize(stackSize);
3339}
3340
3341
3342rule__QualifiedName__Group__0
3343 @init {
3344 int stackSize = keepStackSize();
3345 }
3346:
3347 rule__QualifiedName__Group__0__Impl
3348 rule__QualifiedName__Group__1
3349;
3350finally {
3351 restoreStackSize(stackSize);
3352}
3353
3354rule__QualifiedName__Group__0__Impl
3355 @init {
3356 int stackSize = keepStackSize();
3357 }
3358:
3359(
3360 { before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); }
3361 RULE_ID
3362 { after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); }
3363)
3364;
3365finally {
3366 restoreStackSize(stackSize);
3367}
3368
3369rule__QualifiedName__Group__1
3370 @init {
3371 int stackSize = keepStackSize();
3372 }
3373:
3374 rule__QualifiedName__Group__1__Impl
3375;
3376finally {
3377 restoreStackSize(stackSize);
3378}
3379
3380rule__QualifiedName__Group__1__Impl
3381 @init {
3382 int stackSize = keepStackSize();
3383 }
3384:
3385(
3386 { before(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
3387 (rule__QualifiedName__Group_1__0)*
3388 { after(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
3389)
3390;
3391finally {
3392 restoreStackSize(stackSize);
3393}
3394
3395
3396rule__QualifiedName__Group_1__0
3397 @init {
3398 int stackSize = keepStackSize();
3399 }
3400:
3401 rule__QualifiedName__Group_1__0__Impl
3402 rule__QualifiedName__Group_1__1
3403;
3404finally {
3405 restoreStackSize(stackSize);
3406}
3407
3408rule__QualifiedName__Group_1__0__Impl
3409 @init {
3410 int stackSize = keepStackSize();
3411 }
3412:
3413(
3414 { before(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0()); }
3415 '::'
3416 { after(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0()); }
3417)
3418;
3419finally {
3420 restoreStackSize(stackSize);
3421}
3422
3423rule__QualifiedName__Group_1__1
3424 @init {
3425 int stackSize = keepStackSize();
3426 }
3427:
3428 rule__QualifiedName__Group_1__1__Impl
3429;
3430finally {
3431 restoreStackSize(stackSize);
3432}
3433
3434rule__QualifiedName__Group_1__1__Impl
3435 @init {
3436 int stackSize = keepStackSize();
3437 }
3438:
3439(
3440 { before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); }
3441 RULE_ID
3442 { after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); }
3443)
3444;
3445finally {
3446 restoreStackSize(stackSize);
3447}
3448
3449
3450rule__Problem__StatementsAssignment
3451 @init {
3452 int stackSize = keepStackSize();
3453 }
3454:
3455 (
3456 { before(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0()); }
3457 ruleStatement
3458 { after(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0()); }
3459 )
3460;
3461finally {
3462 restoreStackSize(stackSize);
3463}
3464
3465rule__ClassDeclaration__AbstractAssignment_0
3466 @init {
3467 int stackSize = keepStackSize();
3468 }
3469:
3470 (
3471 { before(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); }
3472 (
3473 { before(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); }
3474 'abstract'
3475 { after(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); }
3476 )
3477 { after(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); }
3478 )
3479;
3480finally {
3481 restoreStackSize(stackSize);
3482}
3483
3484rule__ClassDeclaration__NameAssignment_2
3485 @init {
3486 int stackSize = keepStackSize();
3487 }
3488:
3489 (
3490 { before(grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0()); }
3491 RULE_ID
3492 { after(grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0()); }
3493 )
3494;
3495finally {
3496 restoreStackSize(stackSize);
3497}
3498
3499rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0
3500 @init {
3501 int stackSize = keepStackSize();
3502 }
3503:
3504 (
3505 { before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_0_0()); }
3506 (
3507 { before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_0_0_1()); }
3508 RULE_ID
3509 { after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_0_0_1()); }
3510 )
3511 { after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_0_0()); }
3512 )
3513;
3514finally {
3515 restoreStackSize(stackSize);
3516}
3517
3518rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0
3519 @init {
3520 int stackSize = keepStackSize();
3521 }
3522:
3523 (
3524 { before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0()); }
3525 (
3526 { before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_0_0_1()); }
3527 RULE_ID
3528 { after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_0_0_1()); }
3529 )
3530 { after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0()); }
3531 )
3532;
3533finally {
3534 restoreStackSize(stackSize);
3535}
3536
3537rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1
3538 @init {
3539 int stackSize = keepStackSize();
3540 }
3541:
3542 (
3543 { before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0()); }
3544 (
3545 { before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_1_1_0_1()); }
3546 RULE_ID
3547 { after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_1_1_0_1()); }
3548 )
3549 { after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0()); }
3550 )
3551;
3552finally {
3553 restoreStackSize(stackSize);
3554}
3555
3556rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1
3557 @init {
3558 int stackSize = keepStackSize();
3559 }
3560:
3561 (
3562 { before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0()); }
3563 ruleReferenceDeclaration
3564 { after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0()); }
3565 )
3566;
3567finally {
3568 restoreStackSize(stackSize);
3569}
3570
3571rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1
3572 @init {
3573 int stackSize = keepStackSize();
3574 }
3575:
3576 (
3577 { before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0()); }
3578 ruleReferenceDeclaration
3579 { after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0()); }
3580 )
3581;
3582finally {
3583 restoreStackSize(stackSize);
3584}
3585
3586rule__ReferenceDeclaration__ContainmentAssignment_0_0
3587 @init {
3588 int stackSize = keepStackSize();
3589 }
3590:
3591 (
3592 { before(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); }
3593 (
3594 { before(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); }
3595 'contains'
3596 { after(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); }
3597 )
3598 { after(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); }
3599 )
3600;
3601finally {
3602 restoreStackSize(stackSize);
3603}
3604
3605rule__ReferenceDeclaration__ReferenceTypeAssignment_1
3606 @init {
3607 int stackSize = keepStackSize();
3608 }
3609:
3610 (
3611 { before(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationCrossReference_1_0()); }
3612 (
3613 { before(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationIDTerminalRuleCall_1_0_1()); }
3614 RULE_ID
3615 { after(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationIDTerminalRuleCall_1_0_1()); }
3616 )
3617 { after(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationCrossReference_1_0()); }
3618 )
3619;
3620finally {
3621 restoreStackSize(stackSize);
3622}
3623
3624rule__ReferenceDeclaration__MultiplicityAssignment_3
3625 @init {
3626 int stackSize = keepStackSize();
3627 }
3628:
3629 (
3630 { before(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_3_0()); }
3631 ruleMultiplicity
3632 { after(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_3_0()); }
3633 )
3634;
3635finally {
3636 restoreStackSize(stackSize);
3637}
3638
3639rule__ReferenceDeclaration__NameAssignment_5
3640 @init {
3641 int stackSize = keepStackSize();
3642 }
3643:
3644 (
3645 { before(grammarAccess.getReferenceDeclarationAccess().getNameIDTerminalRuleCall_5_0()); }
3646 RULE_ID
3647 { after(grammarAccess.getReferenceDeclarationAccess().getNameIDTerminalRuleCall_5_0()); }
3648 )
3649;
3650finally {
3651 restoreStackSize(stackSize);
3652}
3653
3654rule__ReferenceDeclaration__OppositeAssignment_6_1
3655 @init {
3656 int stackSize = keepStackSize();
3657 }
3658:
3659 (
3660 { before(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_6_1_0()); }
3661 (
3662 { before(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationQualifiedNameParserRuleCall_6_1_0_1()); }
3663 ruleQualifiedName
3664 { after(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationQualifiedNameParserRuleCall_6_1_0_1()); }
3665 )
3666 { after(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_6_1_0()); }
3667 )
3668;
3669finally {
3670 restoreStackSize(stackSize);
3671}
3672
3673rule__PredicateDefinition__ErrorAssignment_0_0_0
3674 @init {
3675 int stackSize = keepStackSize();
3676 }
3677:
3678 (
3679 { before(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); }
3680 (
3681 { before(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); }
3682 'error'
3683 { after(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); }
3684 )
3685 { after(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); }
3686 )
3687;
3688finally {
3689 restoreStackSize(stackSize);
3690}
3691
3692rule__PredicateDefinition__NameAssignment_1
3693 @init {
3694 int stackSize = keepStackSize();
3695 }
3696:
3697 (
3698 { before(grammarAccess.getPredicateDefinitionAccess().getNameIDTerminalRuleCall_1_0()); }
3699 RULE_ID
3700 { after(grammarAccess.getPredicateDefinitionAccess().getNameIDTerminalRuleCall_1_0()); }
3701 )
3702;
3703finally {
3704 restoreStackSize(stackSize);
3705}
3706
3707rule__PredicateDefinition__ParametersAssignment_3_0
3708 @init {
3709 int stackSize = keepStackSize();
3710 }
3711:
3712 (
3713 { before(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0()); }
3714 ruleParameter
3715 { after(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0()); }
3716 )
3717;
3718finally {
3719 restoreStackSize(stackSize);
3720}
3721
3722rule__PredicateDefinition__ParametersAssignment_3_1_1
3723 @init {
3724 int stackSize = keepStackSize();
3725 }
3726:
3727 (
3728 { before(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0()); }
3729 ruleParameter
3730 { after(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0()); }
3731 )
3732;
3733finally {
3734 restoreStackSize(stackSize);
3735}
3736
3737rule__PredicateDefinition__BodiesAssignment_5_1
3738 @init {
3739 int stackSize = keepStackSize();
3740 }
3741:
3742 (
3743 { before(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0()); }
3744 ruleConjunction
3745 { after(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0()); }
3746 )
3747;
3748finally {
3749 restoreStackSize(stackSize);
3750}
3751
3752rule__PredicateDefinition__BodiesAssignment_5_2_1
3753 @init {
3754 int stackSize = keepStackSize();
3755 }
3756:
3757 (
3758 { before(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0()); }
3759 ruleConjunction
3760 { after(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0()); }
3761 )
3762;
3763finally {
3764 restoreStackSize(stackSize);
3765}
3766
3767rule__Parameter__ParameterTypeAssignment_0
3768 @init {
3769 int stackSize = keepStackSize();
3770 }
3771:
3772 (
3773 { before(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationCrossReference_0_0()); }
3774 (
3775 { before(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1()); }
3776 RULE_ID
3777 { after(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1()); }
3778 )
3779 { after(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationCrossReference_0_0()); }
3780 )
3781;
3782finally {
3783 restoreStackSize(stackSize);
3784}
3785
3786rule__Parameter__NameAssignment_1
3787 @init {
3788 int stackSize = keepStackSize();
3789 }
3790:
3791 (
3792 { before(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0()); }
3793 RULE_ID
3794 { after(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0()); }
3795 )
3796;
3797finally {
3798 restoreStackSize(stackSize);
3799}
3800
3801rule__Conjunction__LiteralsAssignment_0
3802 @init {
3803 int stackSize = keepStackSize();
3804 }
3805:
3806 (
3807 { before(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0()); }
3808 ruleLiteral
3809 { after(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0()); }
3810 )
3811;
3812finally {
3813 restoreStackSize(stackSize);
3814}
3815
3816rule__Conjunction__LiteralsAssignment_1_1
3817 @init {
3818 int stackSize = keepStackSize();
3819 }
3820:
3821 (
3822 { before(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0()); }
3823 ruleLiteral
3824 { after(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0()); }
3825 )
3826;
3827finally {
3828 restoreStackSize(stackSize);
3829}
3830
3831rule__NegativeLiteral__AtomAssignment_1
3832 @init {
3833 int stackSize = keepStackSize();
3834 }
3835:
3836 (
3837 { before(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0()); }
3838 ruleAtom
3839 { after(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0()); }
3840 )
3841;
3842finally {
3843 restoreStackSize(stackSize);
3844}
3845
3846rule__Atom__RelationAssignment_0
3847 @init {
3848 int stackSize = keepStackSize();
3849 }
3850:
3851 (
3852 { before(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0()); }
3853 (
3854 { before(grammarAccess.getAtomAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_1()); }
3855 ruleQualifiedName
3856 { after(grammarAccess.getAtomAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_1()); }
3857 )
3858 { after(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0()); }
3859 )
3860;
3861finally {
3862 restoreStackSize(stackSize);
3863}
3864
3865rule__Atom__TransitiveClosureAssignment_1
3866 @init {
3867 int stackSize = keepStackSize();
3868 }
3869:
3870 (
3871 { before(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); }
3872 (
3873 { before(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); }
3874 '+'
3875 { after(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); }
3876 )
3877 { after(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); }
3878 )
3879;
3880finally {
3881 restoreStackSize(stackSize);
3882}
3883
3884rule__Atom__ArgumentsAssignment_3_0
3885 @init {
3886 int stackSize = keepStackSize();
3887 }
3888:
3889 (
3890 { before(grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_0_0()); }
3891 (
3892 { before(grammarAccess.getAtomAccess().getArgumentsVariableIDTerminalRuleCall_3_0_0_1()); }
3893 RULE_ID
3894 { after(grammarAccess.getAtomAccess().getArgumentsVariableIDTerminalRuleCall_3_0_0_1()); }
3895 )
3896 { after(grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_0_0()); }
3897 )
3898;
3899finally {
3900 restoreStackSize(stackSize);
3901}
3902
3903rule__Atom__ArgumentsAssignment_3_1_1
3904 @init {
3905 int stackSize = keepStackSize();
3906 }
3907:
3908 (
3909 { before(grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_1_1_0()); }
3910 (
3911 { before(grammarAccess.getAtomAccess().getArgumentsVariableIDTerminalRuleCall_3_1_1_0_1()); }
3912 RULE_ID
3913 { after(grammarAccess.getAtomAccess().getArgumentsVariableIDTerminalRuleCall_3_1_1_0_1()); }
3914 )
3915 { after(grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_1_1_0()); }
3916 )
3917;
3918finally {
3919 restoreStackSize(stackSize);
3920}
3921
3922rule__Assertion__RelationAssignment_0_0_0
3923 @init {
3924 int stackSize = keepStackSize();
3925 }
3926:
3927 (
3928 { before(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0()); }
3929 (
3930 { before(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1()); }
3931 ruleQualifiedName
3932 { after(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1()); }
3933 )
3934 { after(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0()); }
3935 )
3936;
3937finally {
3938 restoreStackSize(stackSize);
3939}
3940
3941rule__Assertion__ArgumentsAssignment_0_0_2_0
3942 @init {
3943 int stackSize = keepStackSize();
3944 }
3945:
3946 (
3947 { before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0()); }
3948 (
3949 { before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1()); }
3950 ruleQualifiedName
3951 { after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1()); }
3952 )
3953 { after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0()); }
3954 )
3955;
3956finally {
3957 restoreStackSize(stackSize);
3958}
3959
3960rule__Assertion__ArgumentsAssignment_0_0_2_1_1
3961 @init {
3962 int stackSize = keepStackSize();
3963 }
3964:
3965 (
3966 { before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0()); }
3967 (
3968 { before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1()); }
3969 ruleQualifiedName
3970 { after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1()); }
3971 )
3972 { after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0()); }
3973 )
3974;
3975finally {
3976 restoreStackSize(stackSize);
3977}
3978
3979rule__Assertion__ValueAssignment_0_0_5
3980 @init {
3981 int stackSize = keepStackSize();
3982 }
3983:
3984 (
3985 { before(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0()); }
3986 ruleLogicValue
3987 { after(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0()); }
3988 )
3989;
3990finally {
3991 restoreStackSize(stackSize);
3992}
3993
3994rule__Assertion__ValueAssignment_0_1_0
3995 @init {
3996 int stackSize = keepStackSize();
3997 }
3998:
3999 (
4000 { before(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0()); }
4001 ruleShortLogicValue
4002 { after(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0()); }
4003 )
4004;
4005finally {
4006 restoreStackSize(stackSize);
4007}
4008
4009rule__Assertion__RelationAssignment_0_1_1
4010 @init {
4011 int stackSize = keepStackSize();
4012 }
4013:
4014 (
4015 { before(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0()); }
4016 (
4017 { before(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1()); }
4018 ruleQualifiedName
4019 { after(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1()); }
4020 )
4021 { after(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0()); }
4022 )
4023;
4024finally {
4025 restoreStackSize(stackSize);
4026}
4027
4028rule__Assertion__ArgumentsAssignment_0_1_3_0
4029 @init {
4030 int stackSize = keepStackSize();
4031 }
4032:
4033 (
4034 { before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0()); }
4035 (
4036 { before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1()); }
4037 ruleQualifiedName
4038 { after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1()); }
4039 )
4040 { after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0()); }
4041 )
4042;
4043finally {
4044 restoreStackSize(stackSize);
4045}
4046
4047rule__Assertion__ArgumentsAssignment_0_1_3_1_1
4048 @init {
4049 int stackSize = keepStackSize();
4050 }
4051:
4052 (
4053 { before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0()); }
4054 (
4055 { before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1()); }
4056 ruleQualifiedName
4057 { after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1()); }
4058 )
4059 { after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0()); }
4060 )
4061;
4062finally {
4063 restoreStackSize(stackSize);
4064}
4065
4066rule__ScopeDeclaration__TypeScopesAssignment_1
4067 @init {
4068 int stackSize = keepStackSize();
4069 }
4070:
4071 (
4072 { before(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0()); }
4073 ruleTypeScope
4074 { after(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0()); }
4075 )
4076;
4077finally {
4078 restoreStackSize(stackSize);
4079}
4080
4081rule__ScopeDeclaration__TypeScopesAssignment_2_1
4082 @init {
4083 int stackSize = keepStackSize();
4084 }
4085:
4086 (
4087 { before(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0()); }
4088 ruleTypeScope
4089 { after(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0()); }
4090 )
4091;
4092finally {
4093 restoreStackSize(stackSize);
4094}
4095
4096rule__TypeScope__TargetTypeAssignment_0
4097 @init {
4098 int stackSize = keepStackSize();
4099 }
4100:
4101 (
4102 { before(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0()); }
4103 (
4104 { before(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1()); }
4105 RULE_ID
4106 { after(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1()); }
4107 )
4108 { after(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0()); }
4109 )
4110;
4111finally {
4112 restoreStackSize(stackSize);
4113}
4114
4115rule__TypeScope__IncrementAssignment_1_0
4116 @init {
4117 int stackSize = keepStackSize();
4118 }
4119:
4120 (
4121 { before(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); }
4122 (
4123 { before(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); }
4124 '+='
4125 { after(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); }
4126 )
4127 { after(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); }
4128 )
4129;
4130finally {
4131 restoreStackSize(stackSize);
4132}
4133
4134rule__TypeScope__MultiplicityAssignment_2
4135 @init {
4136 int stackSize = keepStackSize();
4137 }
4138:
4139 (
4140 { before(grammarAccess.getTypeScopeAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); }
4141 ruleMultiplicity
4142 { after(grammarAccess.getTypeScopeAccess().getMultiplicityMultiplicityParserRuleCall_2_0()); }
4143 )
4144;
4145finally {
4146 restoreStackSize(stackSize);
4147}
4148
4149rule__RangeMultiplicity__LowerBoundAssignment_0
4150 @init {
4151 int stackSize = keepStackSize();
4152 }
4153:
4154 (
4155 { before(grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0()); }
4156 RULE_INT
4157 { after(grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0()); }
4158 )
4159;
4160finally {
4161 restoreStackSize(stackSize);
4162}
4163
4164rule__RangeMultiplicity__UpperBoundAssignment_2
4165 @init {
4166 int stackSize = keepStackSize();
4167 }
4168:
4169 (
4170 { before(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0()); }
4171 ruleUpperBound
4172 { after(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0()); }
4173 )
4174;
4175finally {
4176 restoreStackSize(stackSize);
4177}
4178
4179rule__ExactMultiplicity__ExactValueAssignment
4180 @init {
4181 int stackSize = keepStackSize();
4182 }
4183:
4184 (
4185 { before(grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0()); }
4186 RULE_INT
4187 { after(grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0()); }
4188 )
4189;
4190finally {
4191 restoreStackSize(stackSize);
4192}
4193
4194RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
4195
4196RULE_INT : ('0'..'9')+;
4197
4198RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
4199
4200RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
4201
4202RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
4203
4204RULE_WS : (' '|'\t'|'\r'|'\n')+;
4205
4206RULE_ANY_OTHER : .;
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens
new file mode 100644
index 00000000..b3c4a1ea
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens
@@ -0,0 +1,65 @@
1'!'=18
2'('=27
3')'=28
4'*'=14
5'+'=38
6'+='=39
7','=25
8'.'=21
9'..'=33
10':'=31
11'::'=34
12':='=29
13';'=30
14'='=13
15'?'=19
16'['=23
17']'=24
18'abstract'=35
19'class'=20
20'contains'=36
21'error'=37
22'extends'=22
23'false'=16
24'opposite'=26
25'pred'=12
26'refers'=11
27'scope'=32
28'true'=15
29'unknown'=17
30RULE_ANY_OTHER=10
31RULE_ID=5
32RULE_INT=4
33RULE_ML_COMMENT=7
34RULE_SL_COMMENT=8
35RULE_STRING=6
36RULE_WS=9
37T__11=11
38T__12=12
39T__13=13
40T__14=14
41T__15=15
42T__16=16
43T__17=17
44T__18=18
45T__19=19
46T__20=20
47T__21=21
48T__22=22
49T__23=23
50T__24=24
51T__25=25
52T__26=26
53T__27=27
54T__28=28
55T__29=29
56T__30=30
57T__31=31
58T__32=32
59T__33=33
60T__34=34
61T__35=35
62T__36=36
63T__37=37
64T__38=38
65T__39=39
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java
new file mode 100644
index 00000000..0bd65406
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java
@@ -0,0 +1,1699 @@
1package org.eclipse.viatra.solver.language.ide.contentassist.antlr.internal;
2
3// Hack: Use our own Lexer superclass by means of import.
4// Currently there is no other way to specify the superclass for the lexer.
5import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
6
7
8import org.antlr.runtime.*;
9import java.util.Stack;
10import java.util.List;
11import java.util.ArrayList;
12
13@SuppressWarnings("all")
14public class InternalProblemLexer extends Lexer {
15 public static final int RULE_STRING=6;
16 public static final int RULE_SL_COMMENT=8;
17 public static final int T__19=19;
18 public static final int T__15=15;
19 public static final int T__37=37;
20 public static final int T__16=16;
21 public static final int T__38=38;
22 public static final int T__17=17;
23 public static final int T__39=39;
24 public static final int T__18=18;
25 public static final int T__11=11;
26 public static final int T__33=33;
27 public static final int T__12=12;
28 public static final int T__34=34;
29 public static final int T__13=13;
30 public static final int T__35=35;
31 public static final int T__14=14;
32 public static final int T__36=36;
33 public static final int EOF=-1;
34 public static final int T__30=30;
35 public static final int T__31=31;
36 public static final int T__32=32;
37 public static final int RULE_ID=5;
38 public static final int RULE_WS=9;
39 public static final int RULE_ANY_OTHER=10;
40 public static final int T__26=26;
41 public static final int T__27=27;
42 public static final int T__28=28;
43 public static final int RULE_INT=4;
44 public static final int T__29=29;
45 public static final int T__22=22;
46 public static final int RULE_ML_COMMENT=7;
47 public static final int T__23=23;
48 public static final int T__24=24;
49 public static final int T__25=25;
50 public static final int T__20=20;
51 public static final int T__21=21;
52
53 // delegates
54 // delegators
55
56 public InternalProblemLexer() {;}
57 public InternalProblemLexer(CharStream input) {
58 this(input, new RecognizerSharedState());
59 }
60 public InternalProblemLexer(CharStream input, RecognizerSharedState state) {
61 super(input,state);
62
63 }
64 public String getGrammarFileName() { return "InternalProblem.g"; }
65
66 // $ANTLR start "T__11"
67 public final void mT__11() throws RecognitionException {
68 try {
69 int _type = T__11;
70 int _channel = DEFAULT_TOKEN_CHANNEL;
71 // InternalProblem.g:11:7: ( 'refers' )
72 // InternalProblem.g:11:9: 'refers'
73 {
74 match("refers");
75
76
77 }
78
79 state.type = _type;
80 state.channel = _channel;
81 }
82 finally {
83 }
84 }
85 // $ANTLR end "T__11"
86
87 // $ANTLR start "T__12"
88 public final void mT__12() throws RecognitionException {
89 try {
90 int _type = T__12;
91 int _channel = DEFAULT_TOKEN_CHANNEL;
92 // InternalProblem.g:12:7: ( 'pred' )
93 // InternalProblem.g:12:9: 'pred'
94 {
95 match("pred");
96
97
98 }
99
100 state.type = _type;
101 state.channel = _channel;
102 }
103 finally {
104 }
105 }
106 // $ANTLR end "T__12"
107
108 // $ANTLR start "T__13"
109 public final void mT__13() throws RecognitionException {
110 try {
111 int _type = T__13;
112 int _channel = DEFAULT_TOKEN_CHANNEL;
113 // InternalProblem.g:13:7: ( '=' )
114 // InternalProblem.g:13:9: '='
115 {
116 match('=');
117
118 }
119
120 state.type = _type;
121 state.channel = _channel;
122 }
123 finally {
124 }
125 }
126 // $ANTLR end "T__13"
127
128 // $ANTLR start "T__14"
129 public final void mT__14() throws RecognitionException {
130 try {
131 int _type = T__14;
132 int _channel = DEFAULT_TOKEN_CHANNEL;
133 // InternalProblem.g:14:7: ( '*' )
134 // InternalProblem.g:14:9: '*'
135 {
136 match('*');
137
138 }
139
140 state.type = _type;
141 state.channel = _channel;
142 }
143 finally {
144 }
145 }
146 // $ANTLR end "T__14"
147
148 // $ANTLR start "T__15"
149 public final void mT__15() throws RecognitionException {
150 try {
151 int _type = T__15;
152 int _channel = DEFAULT_TOKEN_CHANNEL;
153 // InternalProblem.g:15:7: ( 'true' )
154 // InternalProblem.g:15:9: 'true'
155 {
156 match("true");
157
158
159 }
160
161 state.type = _type;
162 state.channel = _channel;
163 }
164 finally {
165 }
166 }
167 // $ANTLR end "T__15"
168
169 // $ANTLR start "T__16"
170 public final void mT__16() throws RecognitionException {
171 try {
172 int _type = T__16;
173 int _channel = DEFAULT_TOKEN_CHANNEL;
174 // InternalProblem.g:16:7: ( 'false' )
175 // InternalProblem.g:16:9: 'false'
176 {
177 match("false");
178
179
180 }
181
182 state.type = _type;
183 state.channel = _channel;
184 }
185 finally {
186 }
187 }
188 // $ANTLR end "T__16"
189
190 // $ANTLR start "T__17"
191 public final void mT__17() throws RecognitionException {
192 try {
193 int _type = T__17;
194 int _channel = DEFAULT_TOKEN_CHANNEL;
195 // InternalProblem.g:17:7: ( 'unknown' )
196 // InternalProblem.g:17:9: 'unknown'
197 {
198 match("unknown");
199
200
201 }
202
203 state.type = _type;
204 state.channel = _channel;
205 }
206 finally {
207 }
208 }
209 // $ANTLR end "T__17"
210
211 // $ANTLR start "T__18"
212 public final void mT__18() throws RecognitionException {
213 try {
214 int _type = T__18;
215 int _channel = DEFAULT_TOKEN_CHANNEL;
216 // InternalProblem.g:18:7: ( '!' )
217 // InternalProblem.g:18:9: '!'
218 {
219 match('!');
220
221 }
222
223 state.type = _type;
224 state.channel = _channel;
225 }
226 finally {
227 }
228 }
229 // $ANTLR end "T__18"
230
231 // $ANTLR start "T__19"
232 public final void mT__19() throws RecognitionException {
233 try {
234 int _type = T__19;
235 int _channel = DEFAULT_TOKEN_CHANNEL;
236 // InternalProblem.g:19:7: ( '?' )
237 // InternalProblem.g:19:9: '?'
238 {
239 match('?');
240
241 }
242
243 state.type = _type;
244 state.channel = _channel;
245 }
246 finally {
247 }
248 }
249 // $ANTLR end "T__19"
250
251 // $ANTLR start "T__20"
252 public final void mT__20() throws RecognitionException {
253 try {
254 int _type = T__20;
255 int _channel = DEFAULT_TOKEN_CHANNEL;
256 // InternalProblem.g:20:7: ( 'class' )
257 // InternalProblem.g:20:9: 'class'
258 {
259 match("class");
260
261
262 }
263
264 state.type = _type;
265 state.channel = _channel;
266 }
267 finally {
268 }
269 }
270 // $ANTLR end "T__20"
271
272 // $ANTLR start "T__21"
273 public final void mT__21() throws RecognitionException {
274 try {
275 int _type = T__21;
276 int _channel = DEFAULT_TOKEN_CHANNEL;
277 // InternalProblem.g:21:7: ( '.' )
278 // InternalProblem.g:21:9: '.'
279 {
280 match('.');
281
282 }
283
284 state.type = _type;
285 state.channel = _channel;
286 }
287 finally {
288 }
289 }
290 // $ANTLR end "T__21"
291
292 // $ANTLR start "T__22"
293 public final void mT__22() throws RecognitionException {
294 try {
295 int _type = T__22;
296 int _channel = DEFAULT_TOKEN_CHANNEL;
297 // InternalProblem.g:22:7: ( 'extends' )
298 // InternalProblem.g:22:9: 'extends'
299 {
300 match("extends");
301
302
303 }
304
305 state.type = _type;
306 state.channel = _channel;
307 }
308 finally {
309 }
310 }
311 // $ANTLR end "T__22"
312
313 // $ANTLR start "T__23"
314 public final void mT__23() throws RecognitionException {
315 try {
316 int _type = T__23;
317 int _channel = DEFAULT_TOKEN_CHANNEL;
318 // InternalProblem.g:23:7: ( '[' )
319 // InternalProblem.g:23:9: '['
320 {
321 match('[');
322
323 }
324
325 state.type = _type;
326 state.channel = _channel;
327 }
328 finally {
329 }
330 }
331 // $ANTLR end "T__23"
332
333 // $ANTLR start "T__24"
334 public final void mT__24() throws RecognitionException {
335 try {
336 int _type = T__24;
337 int _channel = DEFAULT_TOKEN_CHANNEL;
338 // InternalProblem.g:24:7: ( ']' )
339 // InternalProblem.g:24:9: ']'
340 {
341 match(']');
342
343 }
344
345 state.type = _type;
346 state.channel = _channel;
347 }
348 finally {
349 }
350 }
351 // $ANTLR end "T__24"
352
353 // $ANTLR start "T__25"
354 public final void mT__25() throws RecognitionException {
355 try {
356 int _type = T__25;
357 int _channel = DEFAULT_TOKEN_CHANNEL;
358 // InternalProblem.g:25:7: ( ',' )
359 // InternalProblem.g:25:9: ','
360 {
361 match(',');
362
363 }
364
365 state.type = _type;
366 state.channel = _channel;
367 }
368 finally {
369 }
370 }
371 // $ANTLR end "T__25"
372
373 // $ANTLR start "T__26"
374 public final void mT__26() throws RecognitionException {
375 try {
376 int _type = T__26;
377 int _channel = DEFAULT_TOKEN_CHANNEL;
378 // InternalProblem.g:26:7: ( 'opposite' )
379 // InternalProblem.g:26:9: 'opposite'
380 {
381 match("opposite");
382
383
384 }
385
386 state.type = _type;
387 state.channel = _channel;
388 }
389 finally {
390 }
391 }
392 // $ANTLR end "T__26"
393
394 // $ANTLR start "T__27"
395 public final void mT__27() throws RecognitionException {
396 try {
397 int _type = T__27;
398 int _channel = DEFAULT_TOKEN_CHANNEL;
399 // InternalProblem.g:27:7: ( '(' )
400 // InternalProblem.g:27:9: '('
401 {
402 match('(');
403
404 }
405
406 state.type = _type;
407 state.channel = _channel;
408 }
409 finally {
410 }
411 }
412 // $ANTLR end "T__27"
413
414 // $ANTLR start "T__28"
415 public final void mT__28() throws RecognitionException {
416 try {
417 int _type = T__28;
418 int _channel = DEFAULT_TOKEN_CHANNEL;
419 // InternalProblem.g:28:7: ( ')' )
420 // InternalProblem.g:28:9: ')'
421 {
422 match(')');
423
424 }
425
426 state.type = _type;
427 state.channel = _channel;
428 }
429 finally {
430 }
431 }
432 // $ANTLR end "T__28"
433
434 // $ANTLR start "T__29"
435 public final void mT__29() throws RecognitionException {
436 try {
437 int _type = T__29;
438 int _channel = DEFAULT_TOKEN_CHANNEL;
439 // InternalProblem.g:29:7: ( ':=' )
440 // InternalProblem.g:29:9: ':='
441 {
442 match(":=");
443
444
445 }
446
447 state.type = _type;
448 state.channel = _channel;
449 }
450 finally {
451 }
452 }
453 // $ANTLR end "T__29"
454
455 // $ANTLR start "T__30"
456 public final void mT__30() throws RecognitionException {
457 try {
458 int _type = T__30;
459 int _channel = DEFAULT_TOKEN_CHANNEL;
460 // InternalProblem.g:30:7: ( ';' )
461 // InternalProblem.g:30:9: ';'
462 {
463 match(';');
464
465 }
466
467 state.type = _type;
468 state.channel = _channel;
469 }
470 finally {
471 }
472 }
473 // $ANTLR end "T__30"
474
475 // $ANTLR start "T__31"
476 public final void mT__31() throws RecognitionException {
477 try {
478 int _type = T__31;
479 int _channel = DEFAULT_TOKEN_CHANNEL;
480 // InternalProblem.g:31:7: ( ':' )
481 // InternalProblem.g:31:9: ':'
482 {
483 match(':');
484
485 }
486
487 state.type = _type;
488 state.channel = _channel;
489 }
490 finally {
491 }
492 }
493 // $ANTLR end "T__31"
494
495 // $ANTLR start "T__32"
496 public final void mT__32() throws RecognitionException {
497 try {
498 int _type = T__32;
499 int _channel = DEFAULT_TOKEN_CHANNEL;
500 // InternalProblem.g:32:7: ( 'scope' )
501 // InternalProblem.g:32:9: 'scope'
502 {
503 match("scope");
504
505
506 }
507
508 state.type = _type;
509 state.channel = _channel;
510 }
511 finally {
512 }
513 }
514 // $ANTLR end "T__32"
515
516 // $ANTLR start "T__33"
517 public final void mT__33() throws RecognitionException {
518 try {
519 int _type = T__33;
520 int _channel = DEFAULT_TOKEN_CHANNEL;
521 // InternalProblem.g:33:7: ( '..' )
522 // InternalProblem.g:33:9: '..'
523 {
524 match("..");
525
526
527 }
528
529 state.type = _type;
530 state.channel = _channel;
531 }
532 finally {
533 }
534 }
535 // $ANTLR end "T__33"
536
537 // $ANTLR start "T__34"
538 public final void mT__34() throws RecognitionException {
539 try {
540 int _type = T__34;
541 int _channel = DEFAULT_TOKEN_CHANNEL;
542 // InternalProblem.g:34:7: ( '::' )
543 // InternalProblem.g:34:9: '::'
544 {
545 match("::");
546
547
548 }
549
550 state.type = _type;
551 state.channel = _channel;
552 }
553 finally {
554 }
555 }
556 // $ANTLR end "T__34"
557
558 // $ANTLR start "T__35"
559 public final void mT__35() throws RecognitionException {
560 try {
561 int _type = T__35;
562 int _channel = DEFAULT_TOKEN_CHANNEL;
563 // InternalProblem.g:35:7: ( 'abstract' )
564 // InternalProblem.g:35:9: 'abstract'
565 {
566 match("abstract");
567
568
569 }
570
571 state.type = _type;
572 state.channel = _channel;
573 }
574 finally {
575 }
576 }
577 // $ANTLR end "T__35"
578
579 // $ANTLR start "T__36"
580 public final void mT__36() throws RecognitionException {
581 try {
582 int _type = T__36;
583 int _channel = DEFAULT_TOKEN_CHANNEL;
584 // InternalProblem.g:36:7: ( 'contains' )
585 // InternalProblem.g:36:9: 'contains'
586 {
587 match("contains");
588
589
590 }
591
592 state.type = _type;
593 state.channel = _channel;
594 }
595 finally {
596 }
597 }
598 // $ANTLR end "T__36"
599
600 // $ANTLR start "T__37"
601 public final void mT__37() throws RecognitionException {
602 try {
603 int _type = T__37;
604 int _channel = DEFAULT_TOKEN_CHANNEL;
605 // InternalProblem.g:37:7: ( 'error' )
606 // InternalProblem.g:37:9: 'error'
607 {
608 match("error");
609
610
611 }
612
613 state.type = _type;
614 state.channel = _channel;
615 }
616 finally {
617 }
618 }
619 // $ANTLR end "T__37"
620
621 // $ANTLR start "T__38"
622 public final void mT__38() throws RecognitionException {
623 try {
624 int _type = T__38;
625 int _channel = DEFAULT_TOKEN_CHANNEL;
626 // InternalProblem.g:38:7: ( '+' )
627 // InternalProblem.g:38:9: '+'
628 {
629 match('+');
630
631 }
632
633 state.type = _type;
634 state.channel = _channel;
635 }
636 finally {
637 }
638 }
639 // $ANTLR end "T__38"
640
641 // $ANTLR start "T__39"
642 public final void mT__39() throws RecognitionException {
643 try {
644 int _type = T__39;
645 int _channel = DEFAULT_TOKEN_CHANNEL;
646 // InternalProblem.g:39:7: ( '+=' )
647 // InternalProblem.g:39:9: '+='
648 {
649 match("+=");
650
651
652 }
653
654 state.type = _type;
655 state.channel = _channel;
656 }
657 finally {
658 }
659 }
660 // $ANTLR end "T__39"
661
662 // $ANTLR start "RULE_ID"
663 public final void mRULE_ID() throws RecognitionException {
664 try {
665 int _type = RULE_ID;
666 int _channel = DEFAULT_TOKEN_CHANNEL;
667 // InternalProblem.g:4194:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
668 // InternalProblem.g:4194:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
669 {
670 // InternalProblem.g:4194:11: ( '^' )?
671 int alt1=2;
672 int LA1_0 = input.LA(1);
673
674 if ( (LA1_0=='^') ) {
675 alt1=1;
676 }
677 switch (alt1) {
678 case 1 :
679 // InternalProblem.g:4194:11: '^'
680 {
681 match('^');
682
683 }
684 break;
685
686 }
687
688 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
689 input.consume();
690
691 }
692 else {
693 MismatchedSetException mse = new MismatchedSetException(null,input);
694 recover(mse);
695 throw mse;}
696
697 // InternalProblem.g:4194:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
698 loop2:
699 do {
700 int alt2=2;
701 int LA2_0 = input.LA(1);
702
703 if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
704 alt2=1;
705 }
706
707
708 switch (alt2) {
709 case 1 :
710 // InternalProblem.g:
711 {
712 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') ) {
713 input.consume();
714
715 }
716 else {
717 MismatchedSetException mse = new MismatchedSetException(null,input);
718 recover(mse);
719 throw mse;}
720
721
722 }
723 break;
724
725 default :
726 break loop2;
727 }
728 } while (true);
729
730
731 }
732
733 state.type = _type;
734 state.channel = _channel;
735 }
736 finally {
737 }
738 }
739 // $ANTLR end "RULE_ID"
740
741 // $ANTLR start "RULE_INT"
742 public final void mRULE_INT() throws RecognitionException {
743 try {
744 int _type = RULE_INT;
745 int _channel = DEFAULT_TOKEN_CHANNEL;
746 // InternalProblem.g:4196:10: ( ( '0' .. '9' )+ )
747 // InternalProblem.g:4196:12: ( '0' .. '9' )+
748 {
749 // InternalProblem.g:4196:12: ( '0' .. '9' )+
750 int cnt3=0;
751 loop3:
752 do {
753 int alt3=2;
754 int LA3_0 = input.LA(1);
755
756 if ( ((LA3_0>='0' && LA3_0<='9')) ) {
757 alt3=1;
758 }
759
760
761 switch (alt3) {
762 case 1 :
763 // InternalProblem.g:4196:13: '0' .. '9'
764 {
765 matchRange('0','9');
766
767 }
768 break;
769
770 default :
771 if ( cnt3 >= 1 ) break loop3;
772 EarlyExitException eee =
773 new EarlyExitException(3, input);
774 throw eee;
775 }
776 cnt3++;
777 } while (true);
778
779
780 }
781
782 state.type = _type;
783 state.channel = _channel;
784 }
785 finally {
786 }
787 }
788 // $ANTLR end "RULE_INT"
789
790 // $ANTLR start "RULE_STRING"
791 public final void mRULE_STRING() throws RecognitionException {
792 try {
793 int _type = RULE_STRING;
794 int _channel = DEFAULT_TOKEN_CHANNEL;
795 // InternalProblem.g:4198:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
796 // InternalProblem.g:4198:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
797 {
798 // InternalProblem.g:4198:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
799 int alt6=2;
800 int LA6_0 = input.LA(1);
801
802 if ( (LA6_0=='\"') ) {
803 alt6=1;
804 }
805 else if ( (LA6_0=='\'') ) {
806 alt6=2;
807 }
808 else {
809 NoViableAltException nvae =
810 new NoViableAltException("", 6, 0, input);
811
812 throw nvae;
813 }
814 switch (alt6) {
815 case 1 :
816 // InternalProblem.g:4198:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
817 {
818 match('\"');
819 // InternalProblem.g:4198:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
820 loop4:
821 do {
822 int alt4=3;
823 int LA4_0 = input.LA(1);
824
825 if ( (LA4_0=='\\') ) {
826 alt4=1;
827 }
828 else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
829 alt4=2;
830 }
831
832
833 switch (alt4) {
834 case 1 :
835 // InternalProblem.g:4198:21: '\\\\' .
836 {
837 match('\\');
838 matchAny();
839
840 }
841 break;
842 case 2 :
843 // InternalProblem.g:4198:28: ~ ( ( '\\\\' | '\"' ) )
844 {
845 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
846 input.consume();
847
848 }
849 else {
850 MismatchedSetException mse = new MismatchedSetException(null,input);
851 recover(mse);
852 throw mse;}
853
854
855 }
856 break;
857
858 default :
859 break loop4;
860 }
861 } while (true);
862
863 match('\"');
864
865 }
866 break;
867 case 2 :
868 // InternalProblem.g:4198:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
869 {
870 match('\'');
871 // InternalProblem.g:4198:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
872 loop5:
873 do {
874 int alt5=3;
875 int LA5_0 = input.LA(1);
876
877 if ( (LA5_0=='\\') ) {
878 alt5=1;
879 }
880 else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
881 alt5=2;
882 }
883
884
885 switch (alt5) {
886 case 1 :
887 // InternalProblem.g:4198:54: '\\\\' .
888 {
889 match('\\');
890 matchAny();
891
892 }
893 break;
894 case 2 :
895 // InternalProblem.g:4198:61: ~ ( ( '\\\\' | '\\'' ) )
896 {
897 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
898 input.consume();
899
900 }
901 else {
902 MismatchedSetException mse = new MismatchedSetException(null,input);
903 recover(mse);
904 throw mse;}
905
906
907 }
908 break;
909
910 default :
911 break loop5;
912 }
913 } while (true);
914
915 match('\'');
916
917 }
918 break;
919
920 }
921
922
923 }
924
925 state.type = _type;
926 state.channel = _channel;
927 }
928 finally {
929 }
930 }
931 // $ANTLR end "RULE_STRING"
932
933 // $ANTLR start "RULE_ML_COMMENT"
934 public final void mRULE_ML_COMMENT() throws RecognitionException {
935 try {
936 int _type = RULE_ML_COMMENT;
937 int _channel = DEFAULT_TOKEN_CHANNEL;
938 // InternalProblem.g:4200:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
939 // InternalProblem.g:4200:19: '/*' ( options {greedy=false; } : . )* '*/'
940 {
941 match("/*");
942
943 // InternalProblem.g:4200:24: ( options {greedy=false; } : . )*
944 loop7:
945 do {
946 int alt7=2;
947 int LA7_0 = input.LA(1);
948
949 if ( (LA7_0=='*') ) {
950 int LA7_1 = input.LA(2);
951
952 if ( (LA7_1=='/') ) {
953 alt7=2;
954 }
955 else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
956 alt7=1;
957 }
958
959
960 }
961 else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
962 alt7=1;
963 }
964
965
966 switch (alt7) {
967 case 1 :
968 // InternalProblem.g:4200:52: .
969 {
970 matchAny();
971
972 }
973 break;
974
975 default :
976 break loop7;
977 }
978 } while (true);
979
980 match("*/");
981
982
983 }
984
985 state.type = _type;
986 state.channel = _channel;
987 }
988 finally {
989 }
990 }
991 // $ANTLR end "RULE_ML_COMMENT"
992
993 // $ANTLR start "RULE_SL_COMMENT"
994 public final void mRULE_SL_COMMENT() throws RecognitionException {
995 try {
996 int _type = RULE_SL_COMMENT;
997 int _channel = DEFAULT_TOKEN_CHANNEL;
998 // InternalProblem.g:4202:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
999 // InternalProblem.g:4202:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1000 {
1001 match("//");
1002
1003 // InternalProblem.g:4202:24: (~ ( ( '\\n' | '\\r' ) ) )*
1004 loop8:
1005 do {
1006 int alt8=2;
1007 int LA8_0 = input.LA(1);
1008
1009 if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
1010 alt8=1;
1011 }
1012
1013
1014 switch (alt8) {
1015 case 1 :
1016 // InternalProblem.g:4202:24: ~ ( ( '\\n' | '\\r' ) )
1017 {
1018 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') ) {
1019 input.consume();
1020
1021 }
1022 else {
1023 MismatchedSetException mse = new MismatchedSetException(null,input);
1024 recover(mse);
1025 throw mse;}
1026
1027
1028 }
1029 break;
1030
1031 default :
1032 break loop8;
1033 }
1034 } while (true);
1035
1036 // InternalProblem.g:4202:40: ( ( '\\r' )? '\\n' )?
1037 int alt10=2;
1038 int LA10_0 = input.LA(1);
1039
1040 if ( (LA10_0=='\n'||LA10_0=='\r') ) {
1041 alt10=1;
1042 }
1043 switch (alt10) {
1044 case 1 :
1045 // InternalProblem.g:4202:41: ( '\\r' )? '\\n'
1046 {
1047 // InternalProblem.g:4202:41: ( '\\r' )?
1048 int alt9=2;
1049 int LA9_0 = input.LA(1);
1050
1051 if ( (LA9_0=='\r') ) {
1052 alt9=1;
1053 }
1054 switch (alt9) {
1055 case 1 :
1056 // InternalProblem.g:4202:41: '\\r'
1057 {
1058 match('\r');
1059
1060 }
1061 break;
1062
1063 }
1064
1065 match('\n');
1066
1067 }
1068 break;
1069
1070 }
1071
1072
1073 }
1074
1075 state.type = _type;
1076 state.channel = _channel;
1077 }
1078 finally {
1079 }
1080 }
1081 // $ANTLR end "RULE_SL_COMMENT"
1082
1083 // $ANTLR start "RULE_WS"
1084 public final void mRULE_WS() throws RecognitionException {
1085 try {
1086 int _type = RULE_WS;
1087 int _channel = DEFAULT_TOKEN_CHANNEL;
1088 // InternalProblem.g:4204:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1089 // InternalProblem.g:4204:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1090 {
1091 // InternalProblem.g:4204:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1092 int cnt11=0;
1093 loop11:
1094 do {
1095 int alt11=2;
1096 int LA11_0 = input.LA(1);
1097
1098 if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
1099 alt11=1;
1100 }
1101
1102
1103 switch (alt11) {
1104 case 1 :
1105 // InternalProblem.g:
1106 {
1107 if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
1108 input.consume();
1109
1110 }
1111 else {
1112 MismatchedSetException mse = new MismatchedSetException(null,input);
1113 recover(mse);
1114 throw mse;}
1115
1116
1117 }
1118 break;
1119
1120 default :
1121 if ( cnt11 >= 1 ) break loop11;
1122 EarlyExitException eee =
1123 new EarlyExitException(11, input);
1124 throw eee;
1125 }
1126 cnt11++;
1127 } while (true);
1128
1129
1130 }
1131
1132 state.type = _type;
1133 state.channel = _channel;
1134 }
1135 finally {
1136 }
1137 }
1138 // $ANTLR end "RULE_WS"
1139
1140 // $ANTLR start "RULE_ANY_OTHER"
1141 public final void mRULE_ANY_OTHER() throws RecognitionException {
1142 try {
1143 int _type = RULE_ANY_OTHER;
1144 int _channel = DEFAULT_TOKEN_CHANNEL;
1145 // InternalProblem.g:4206:16: ( . )
1146 // InternalProblem.g:4206:18: .
1147 {
1148 matchAny();
1149
1150 }
1151
1152 state.type = _type;
1153 state.channel = _channel;
1154 }
1155 finally {
1156 }
1157 }
1158 // $ANTLR end "RULE_ANY_OTHER"
1159
1160 public void mTokens() throws RecognitionException {
1161 // InternalProblem.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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
1162 int alt12=36;
1163 alt12 = dfa12.predict(input);
1164 switch (alt12) {
1165 case 1 :
1166 // InternalProblem.g:1:10: T__11
1167 {
1168 mT__11();
1169
1170 }
1171 break;
1172 case 2 :
1173 // InternalProblem.g:1:16: T__12
1174 {
1175 mT__12();
1176
1177 }
1178 break;
1179 case 3 :
1180 // InternalProblem.g:1:22: T__13
1181 {
1182 mT__13();
1183
1184 }
1185 break;
1186 case 4 :
1187 // InternalProblem.g:1:28: T__14
1188 {
1189 mT__14();
1190
1191 }
1192 break;
1193 case 5 :
1194 // InternalProblem.g:1:34: T__15
1195 {
1196 mT__15();
1197
1198 }
1199 break;
1200 case 6 :
1201 // InternalProblem.g:1:40: T__16
1202 {
1203 mT__16();
1204
1205 }
1206 break;
1207 case 7 :
1208 // InternalProblem.g:1:46: T__17
1209 {
1210 mT__17();
1211
1212 }
1213 break;
1214 case 8 :
1215 // InternalProblem.g:1:52: T__18
1216 {
1217 mT__18();
1218
1219 }
1220 break;
1221 case 9 :
1222 // InternalProblem.g:1:58: T__19
1223 {
1224 mT__19();
1225
1226 }
1227 break;
1228 case 10 :
1229 // InternalProblem.g:1:64: T__20
1230 {
1231 mT__20();
1232
1233 }
1234 break;
1235 case 11 :
1236 // InternalProblem.g:1:70: T__21
1237 {
1238 mT__21();
1239
1240 }
1241 break;
1242 case 12 :
1243 // InternalProblem.g:1:76: T__22
1244 {
1245 mT__22();
1246
1247 }
1248 break;
1249 case 13 :
1250 // InternalProblem.g:1:82: T__23
1251 {
1252 mT__23();
1253
1254 }
1255 break;
1256 case 14 :
1257 // InternalProblem.g:1:88: T__24
1258 {
1259 mT__24();
1260
1261 }
1262 break;
1263 case 15 :
1264 // InternalProblem.g:1:94: T__25
1265 {
1266 mT__25();
1267
1268 }
1269 break;
1270 case 16 :
1271 // InternalProblem.g:1:100: T__26
1272 {
1273 mT__26();
1274
1275 }
1276 break;
1277 case 17 :
1278 // InternalProblem.g:1:106: T__27
1279 {
1280 mT__27();
1281
1282 }
1283 break;
1284 case 18 :
1285 // InternalProblem.g:1:112: T__28
1286 {
1287 mT__28();
1288
1289 }
1290 break;
1291 case 19 :
1292 // InternalProblem.g:1:118: T__29
1293 {
1294 mT__29();
1295
1296 }
1297 break;
1298 case 20 :
1299 // InternalProblem.g:1:124: T__30
1300 {
1301 mT__30();
1302
1303 }
1304 break;
1305 case 21 :
1306 // InternalProblem.g:1:130: T__31
1307 {
1308 mT__31();
1309
1310 }
1311 break;
1312 case 22 :
1313 // InternalProblem.g:1:136: T__32
1314 {
1315 mT__32();
1316
1317 }
1318 break;
1319 case 23 :
1320 // InternalProblem.g:1:142: T__33
1321 {
1322 mT__33();
1323
1324 }
1325 break;
1326 case 24 :
1327 // InternalProblem.g:1:148: T__34
1328 {
1329 mT__34();
1330
1331 }
1332 break;
1333 case 25 :
1334 // InternalProblem.g:1:154: T__35
1335 {
1336 mT__35();
1337
1338 }
1339 break;
1340 case 26 :
1341 // InternalProblem.g:1:160: T__36
1342 {
1343 mT__36();
1344
1345 }
1346 break;
1347 case 27 :
1348 // InternalProblem.g:1:166: T__37
1349 {
1350 mT__37();
1351
1352 }
1353 break;
1354 case 28 :
1355 // InternalProblem.g:1:172: T__38
1356 {
1357 mT__38();
1358
1359 }
1360 break;
1361 case 29 :
1362 // InternalProblem.g:1:178: T__39
1363 {
1364 mT__39();
1365
1366 }
1367 break;
1368 case 30 :
1369 // InternalProblem.g:1:184: RULE_ID
1370 {
1371 mRULE_ID();
1372
1373 }
1374 break;
1375 case 31 :
1376 // InternalProblem.g:1:192: RULE_INT
1377 {
1378 mRULE_INT();
1379
1380 }
1381 break;
1382 case 32 :
1383 // InternalProblem.g:1:201: RULE_STRING
1384 {
1385 mRULE_STRING();
1386
1387 }
1388 break;
1389 case 33 :
1390 // InternalProblem.g:1:213: RULE_ML_COMMENT
1391 {
1392 mRULE_ML_COMMENT();
1393
1394 }
1395 break;
1396 case 34 :
1397 // InternalProblem.g:1:229: RULE_SL_COMMENT
1398 {
1399 mRULE_SL_COMMENT();
1400
1401 }
1402 break;
1403 case 35 :
1404 // InternalProblem.g:1:245: RULE_WS
1405 {
1406 mRULE_WS();
1407
1408 }
1409 break;
1410 case 36 :
1411 // InternalProblem.g:1:253: RULE_ANY_OTHER
1412 {
1413 mRULE_ANY_OTHER();
1414
1415 }
1416 break;
1417
1418 }
1419
1420 }
1421
1422
1423 protected DFA12 dfa12 = new DFA12(this);
1424 static final String DFA12_eotS =
1425 "\1\uffff\2\41\2\uffff\3\41\2\uffff\1\41\1\55\1\41\3\uffff\1\41\2\uffff\1\70\1\uffff\2\41\1\75\1\37\2\uffff\3\37\2\uffff\1\41\1\uffff\1\41\2\uffff\3\41\2\uffff\2\41\2\uffff\2\41\3\uffff\1\41\6\uffff\2\41\7\uffff\15\41\1\134\1\135\12\41\2\uffff\1\150\1\41\1\152\2\41\1\155\1\41\1\157\1\41\1\161\1\uffff\1\41\1\uffff\2\41\1\uffff\1\41\1\uffff\1\41\1\uffff\1\167\1\41\1\171\2\41\1\uffff\1\174\1\uffff\1\175\1\176\3\uffff";
1426 static final String DFA12_eofS =
1427 "\177\uffff";
1428 static final String DFA12_minS =
1429 "\1\0\1\145\1\162\2\uffff\1\162\1\141\1\156\2\uffff\1\154\1\56\1\162\3\uffff\1\160\2\uffff\1\72\1\uffff\1\143\1\142\1\75\1\101\2\uffff\2\0\1\52\2\uffff\1\146\1\uffff\1\145\2\uffff\1\165\1\154\1\153\2\uffff\1\141\1\156\2\uffff\1\164\1\162\3\uffff\1\160\6\uffff\1\157\1\163\7\uffff\1\145\1\144\1\145\1\163\1\156\1\163\1\164\1\145\2\157\1\160\1\164\1\162\2\60\1\145\1\157\1\163\1\141\1\156\1\162\1\163\1\145\1\162\1\163\2\uffff\1\60\1\167\1\60\1\151\1\144\1\60\1\151\1\60\1\141\1\60\1\uffff\1\156\1\uffff\1\156\1\163\1\uffff\1\164\1\uffff\1\143\1\uffff\1\60\1\163\1\60\1\145\1\164\1\uffff\1\60\1\uffff\2\60\3\uffff";
1430 static final String DFA12_maxS =
1431 "\1\uffff\1\145\1\162\2\uffff\1\162\1\141\1\156\2\uffff\1\157\1\56\1\170\3\uffff\1\160\2\uffff\1\75\1\uffff\1\143\1\142\1\75\1\172\2\uffff\2\uffff\1\57\2\uffff\1\146\1\uffff\1\145\2\uffff\1\165\1\154\1\153\2\uffff\1\141\1\156\2\uffff\1\164\1\162\3\uffff\1\160\6\uffff\1\157\1\163\7\uffff\1\145\1\144\1\145\1\163\1\156\1\163\1\164\1\145\2\157\1\160\1\164\1\162\2\172\1\145\1\157\1\163\1\141\1\156\1\162\1\163\1\145\1\162\1\163\2\uffff\1\172\1\167\1\172\1\151\1\144\1\172\1\151\1\172\1\141\1\172\1\uffff\1\156\1\uffff\1\156\1\163\1\uffff\1\164\1\uffff\1\143\1\uffff\1\172\1\163\1\172\1\145\1\164\1\uffff\1\172\1\uffff\2\172\3\uffff";
1432 static final String DFA12_acceptS =
1433 "\3\uffff\1\3\1\4\3\uffff\1\10\1\11\3\uffff\1\15\1\16\1\17\1\uffff\1\21\1\22\1\uffff\1\24\4\uffff\1\36\1\37\3\uffff\1\43\1\44\1\uffff\1\36\1\uffff\1\3\1\4\3\uffff\1\10\1\11\2\uffff\1\27\1\13\2\uffff\1\15\1\16\1\17\1\uffff\1\21\1\22\1\23\1\30\1\25\1\24\2\uffff\1\35\1\34\1\37\1\40\1\41\1\42\1\43\31\uffff\1\2\1\5\12\uffff\1\6\1\uffff\1\12\2\uffff\1\33\1\uffff\1\26\1\uffff\1\1\5\uffff\1\7\1\uffff\1\14\2\uffff\1\32\1\20\1\31";
1434 static final String DFA12_specialS =
1435 "\1\1\32\uffff\1\2\1\0\142\uffff}>";
1436 static final String[] DFA12_transitionS = {
1437 "\11\37\2\36\2\37\1\36\22\37\1\36\1\10\1\33\4\37\1\34\1\21\1\22\1\4\1\27\1\17\1\37\1\13\1\35\12\32\1\23\1\24\1\37\1\3\1\37\1\11\1\37\32\31\1\15\1\37\1\16\1\30\1\31\1\37\1\26\1\31\1\12\1\31\1\14\1\6\10\31\1\20\1\2\1\31\1\1\1\25\1\5\1\7\5\31\uff85\37",
1438 "\1\40",
1439 "\1\42",
1440 "",
1441 "",
1442 "\1\45",
1443 "\1\46",
1444 "\1\47",
1445 "",
1446 "",
1447 "\1\52\2\uffff\1\53",
1448 "\1\54",
1449 "\1\57\5\uffff\1\56",
1450 "",
1451 "",
1452 "",
1453 "\1\63",
1454 "",
1455 "",
1456 "\1\67\2\uffff\1\66",
1457 "",
1458 "\1\72",
1459 "\1\73",
1460 "\1\74",
1461 "\32\41\4\uffff\1\41\1\uffff\32\41",
1462 "",
1463 "",
1464 "\0\77",
1465 "\0\77",
1466 "\1\100\4\uffff\1\101",
1467 "",
1468 "",
1469 "\1\103",
1470 "",
1471 "\1\104",
1472 "",
1473 "",
1474 "\1\105",
1475 "\1\106",
1476 "\1\107",
1477 "",
1478 "",
1479 "\1\110",
1480 "\1\111",
1481 "",
1482 "",
1483 "\1\112",
1484 "\1\113",
1485 "",
1486 "",
1487 "",
1488 "\1\114",
1489 "",
1490 "",
1491 "",
1492 "",
1493 "",
1494 "",
1495 "\1\115",
1496 "\1\116",
1497 "",
1498 "",
1499 "",
1500 "",
1501 "",
1502 "",
1503 "",
1504 "\1\117",
1505 "\1\120",
1506 "\1\121",
1507 "\1\122",
1508 "\1\123",
1509 "\1\124",
1510 "\1\125",
1511 "\1\126",
1512 "\1\127",
1513 "\1\130",
1514 "\1\131",
1515 "\1\132",
1516 "\1\133",
1517 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1518 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1519 "\1\136",
1520 "\1\137",
1521 "\1\140",
1522 "\1\141",
1523 "\1\142",
1524 "\1\143",
1525 "\1\144",
1526 "\1\145",
1527 "\1\146",
1528 "\1\147",
1529 "",
1530 "",
1531 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1532 "\1\151",
1533 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1534 "\1\153",
1535 "\1\154",
1536 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1537 "\1\156",
1538 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1539 "\1\160",
1540 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1541 "",
1542 "\1\162",
1543 "",
1544 "\1\163",
1545 "\1\164",
1546 "",
1547 "\1\165",
1548 "",
1549 "\1\166",
1550 "",
1551 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1552 "\1\170",
1553 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1554 "\1\172",
1555 "\1\173",
1556 "",
1557 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1558 "",
1559 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1560 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1561 "",
1562 "",
1563 ""
1564 };
1565
1566 static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
1567 static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
1568 static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
1569 static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
1570 static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
1571 static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
1572 static final short[][] DFA12_transition;
1573
1574 static {
1575 int numStates = DFA12_transitionS.length;
1576 DFA12_transition = new short[numStates][];
1577 for (int i=0; i<numStates; i++) {
1578 DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
1579 }
1580 }
1581
1582 class DFA12 extends DFA {
1583
1584 public DFA12(BaseRecognizer recognizer) {
1585 this.recognizer = recognizer;
1586 this.decisionNumber = 12;
1587 this.eot = DFA12_eot;
1588 this.eof = DFA12_eof;
1589 this.min = DFA12_min;
1590 this.max = DFA12_max;
1591 this.accept = DFA12_accept;
1592 this.special = DFA12_special;
1593 this.transition = DFA12_transition;
1594 }
1595 public String getDescription() {
1596 return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
1597 }
1598 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1599 IntStream input = _input;
1600 int _s = s;
1601 switch ( s ) {
1602 case 0 :
1603 int LA12_28 = input.LA(1);
1604
1605 s = -1;
1606 if ( ((LA12_28>='\u0000' && LA12_28<='\uFFFF')) ) {s = 63;}
1607
1608 else s = 31;
1609
1610 if ( s>=0 ) return s;
1611 break;
1612 case 1 :
1613 int LA12_0 = input.LA(1);
1614
1615 s = -1;
1616 if ( (LA12_0=='r') ) {s = 1;}
1617
1618 else if ( (LA12_0=='p') ) {s = 2;}
1619
1620 else if ( (LA12_0=='=') ) {s = 3;}
1621
1622 else if ( (LA12_0=='*') ) {s = 4;}
1623
1624 else if ( (LA12_0=='t') ) {s = 5;}
1625
1626 else if ( (LA12_0=='f') ) {s = 6;}
1627
1628 else if ( (LA12_0=='u') ) {s = 7;}
1629
1630 else if ( (LA12_0=='!') ) {s = 8;}
1631
1632 else if ( (LA12_0=='?') ) {s = 9;}
1633
1634 else if ( (LA12_0=='c') ) {s = 10;}
1635
1636 else if ( (LA12_0=='.') ) {s = 11;}
1637
1638 else if ( (LA12_0=='e') ) {s = 12;}
1639
1640 else if ( (LA12_0=='[') ) {s = 13;}
1641
1642 else if ( (LA12_0==']') ) {s = 14;}
1643
1644 else if ( (LA12_0==',') ) {s = 15;}
1645
1646 else if ( (LA12_0=='o') ) {s = 16;}
1647
1648 else if ( (LA12_0=='(') ) {s = 17;}
1649
1650 else if ( (LA12_0==')') ) {s = 18;}
1651
1652 else if ( (LA12_0==':') ) {s = 19;}
1653
1654 else if ( (LA12_0==';') ) {s = 20;}
1655
1656 else if ( (LA12_0=='s') ) {s = 21;}
1657
1658 else if ( (LA12_0=='a') ) {s = 22;}
1659
1660 else if ( (LA12_0=='+') ) {s = 23;}
1661
1662 else if ( (LA12_0=='^') ) {s = 24;}
1663
1664 else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='g' && LA12_0<='n')||LA12_0=='q'||(LA12_0>='v' && LA12_0<='z')) ) {s = 25;}
1665
1666 else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 26;}
1667
1668 else if ( (LA12_0=='\"') ) {s = 27;}
1669
1670 else if ( (LA12_0=='\'') ) {s = 28;}
1671
1672 else if ( (LA12_0=='/') ) {s = 29;}
1673
1674 else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 30;}
1675
1676 else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||(LA12_0>='#' && LA12_0<='&')||LA12_0=='-'||LA12_0=='<'||LA12_0=='>'||LA12_0=='@'||LA12_0=='\\'||LA12_0=='`'||(LA12_0>='{' && LA12_0<='\uFFFF')) ) {s = 31;}
1677
1678 if ( s>=0 ) return s;
1679 break;
1680 case 2 :
1681 int LA12_27 = input.LA(1);
1682
1683 s = -1;
1684 if ( ((LA12_27>='\u0000' && LA12_27<='\uFFFF')) ) {s = 63;}
1685
1686 else s = 31;
1687
1688 if ( s>=0 ) return s;
1689 break;
1690 }
1691 NoViableAltException nvae =
1692 new NoViableAltException(getDescription(), 12, _s, input);
1693 error(nvae);
1694 throw nvae;
1695 }
1696 }
1697
1698
1699} \ No newline at end of file
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java
new file mode 100644
index 00000000..1169b189
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java
@@ -0,0 +1,12761 @@
1package org.eclipse.viatra.solver.language.ide.contentassist.antlr.internal;
2
3import java.io.InputStream;
4import org.eclipse.xtext.*;
5import org.eclipse.xtext.parser.*;
6import org.eclipse.xtext.parser.impl.*;
7import org.eclipse.emf.ecore.util.EcoreUtil;
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.xtext.parser.antlr.XtextTokenStream;
10import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
11import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
12import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
13import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
14
15
16
17import org.antlr.runtime.*;
18import java.util.Stack;
19import java.util.List;
20import java.util.ArrayList;
21
22@SuppressWarnings("all")
23public class InternalProblemParser extends AbstractInternalContentAssistParser {
24 public static final String[] tokenNames = new String[] {
25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'refers'", "'pred'", "'='", "'*'", "'true'", "'false'", "'unknown'", "'!'", "'?'", "'class'", "'.'", "'extends'", "'['", "']'", "','", "'opposite'", "'('", "')'", "':='", "';'", "':'", "'scope'", "'..'", "'::'", "'abstract'", "'contains'", "'error'", "'+'", "'+='"
26 };
27 public static final int RULE_STRING=6;
28 public static final int RULE_SL_COMMENT=8;
29 public static final int T__19=19;
30 public static final int T__15=15;
31 public static final int T__37=37;
32 public static final int T__16=16;
33 public static final int T__38=38;
34 public static final int T__17=17;
35 public static final int T__39=39;
36 public static final int T__18=18;
37 public static final int T__11=11;
38 public static final int T__33=33;
39 public static final int T__12=12;
40 public static final int T__34=34;
41 public static final int T__13=13;
42 public static final int T__35=35;
43 public static final int T__14=14;
44 public static final int T__36=36;
45 public static final int EOF=-1;
46 public static final int T__30=30;
47 public static final int T__31=31;
48 public static final int T__32=32;
49 public static final int RULE_ID=5;
50 public static final int RULE_WS=9;
51 public static final int RULE_ANY_OTHER=10;
52 public static final int T__26=26;
53 public static final int T__27=27;
54 public static final int T__28=28;
55 public static final int RULE_INT=4;
56 public static final int T__29=29;
57 public static final int T__22=22;
58 public static final int RULE_ML_COMMENT=7;
59 public static final int T__23=23;
60 public static final int T__24=24;
61 public static final int T__25=25;
62 public static final int T__20=20;
63 public static final int T__21=21;
64
65 // delegates
66 // delegators
67
68
69 public InternalProblemParser(TokenStream input) {
70 this(input, new RecognizerSharedState());
71 }
72 public InternalProblemParser(TokenStream input, RecognizerSharedState state) {
73 super(input, state);
74
75 }
76
77
78 public String[] getTokenNames() { return InternalProblemParser.tokenNames; }
79 public String getGrammarFileName() { return "InternalProblem.g"; }
80
81
82 private ProblemGrammarAccess grammarAccess;
83
84 public void setGrammarAccess(ProblemGrammarAccess grammarAccess) {
85 this.grammarAccess = grammarAccess;
86 }
87
88 @Override
89 protected Grammar getGrammar() {
90 return grammarAccess.getGrammar();
91 }
92
93 @Override
94 protected String getValueForTokenName(String tokenName) {
95 return tokenName;
96 }
97
98
99
100 // $ANTLR start "entryRuleProblem"
101 // InternalProblem.g:53:1: entryRuleProblem : ruleProblem EOF ;
102 public final void entryRuleProblem() throws RecognitionException {
103 try {
104 // InternalProblem.g:54:1: ( ruleProblem EOF )
105 // InternalProblem.g:55:1: ruleProblem EOF
106 {
107 before(grammarAccess.getProblemRule());
108 pushFollow(FOLLOW_1);
109 ruleProblem();
110
111 state._fsp--;
112
113 after(grammarAccess.getProblemRule());
114 match(input,EOF,FOLLOW_2);
115
116 }
117
118 }
119 catch (RecognitionException re) {
120 reportError(re);
121 recover(input,re);
122 }
123 finally {
124 }
125 return ;
126 }
127 // $ANTLR end "entryRuleProblem"
128
129
130 // $ANTLR start "ruleProblem"
131 // InternalProblem.g:62:1: ruleProblem : ( ( rule__Problem__StatementsAssignment )* ) ;
132 public final void ruleProblem() throws RecognitionException {
133
134 int stackSize = keepStackSize();
135
136 try {
137 // InternalProblem.g:66:2: ( ( ( rule__Problem__StatementsAssignment )* ) )
138 // InternalProblem.g:67:2: ( ( rule__Problem__StatementsAssignment )* )
139 {
140 // InternalProblem.g:67:2: ( ( rule__Problem__StatementsAssignment )* )
141 // InternalProblem.g:68:3: ( rule__Problem__StatementsAssignment )*
142 {
143 before(grammarAccess.getProblemAccess().getStatementsAssignment());
144 // InternalProblem.g:69:3: ( rule__Problem__StatementsAssignment )*
145 loop1:
146 do {
147 int alt1=2;
148 int LA1_0 = input.LA(1);
149
150 if ( (LA1_0==RULE_ID||LA1_0==12||(LA1_0>=18 && LA1_0<=20)||LA1_0==32||LA1_0==35||LA1_0==37) ) {
151 alt1=1;
152 }
153
154
155 switch (alt1) {
156 case 1 :
157 // InternalProblem.g:69:4: rule__Problem__StatementsAssignment
158 {
159 pushFollow(FOLLOW_3);
160 rule__Problem__StatementsAssignment();
161
162 state._fsp--;
163
164
165 }
166 break;
167
168 default :
169 break loop1;
170 }
171 } while (true);
172
173 after(grammarAccess.getProblemAccess().getStatementsAssignment());
174
175 }
176
177
178 }
179
180 }
181 catch (RecognitionException re) {
182 reportError(re);
183 recover(input,re);
184 }
185 finally {
186
187 restoreStackSize(stackSize);
188
189 }
190 return ;
191 }
192 // $ANTLR end "ruleProblem"
193
194
195 // $ANTLR start "entryRuleStatement"
196 // InternalProblem.g:78:1: entryRuleStatement : ruleStatement EOF ;
197 public final void entryRuleStatement() throws RecognitionException {
198 try {
199 // InternalProblem.g:79:1: ( ruleStatement EOF )
200 // InternalProblem.g:80:1: ruleStatement EOF
201 {
202 before(grammarAccess.getStatementRule());
203 pushFollow(FOLLOW_1);
204 ruleStatement();
205
206 state._fsp--;
207
208 after(grammarAccess.getStatementRule());
209 match(input,EOF,FOLLOW_2);
210
211 }
212
213 }
214 catch (RecognitionException re) {
215 reportError(re);
216 recover(input,re);
217 }
218 finally {
219 }
220 return ;
221 }
222 // $ANTLR end "entryRuleStatement"
223
224
225 // $ANTLR start "ruleStatement"
226 // InternalProblem.g:87:1: ruleStatement : ( ( rule__Statement__Alternatives ) ) ;
227 public final void ruleStatement() throws RecognitionException {
228
229 int stackSize = keepStackSize();
230
231 try {
232 // InternalProblem.g:91:2: ( ( ( rule__Statement__Alternatives ) ) )
233 // InternalProblem.g:92:2: ( ( rule__Statement__Alternatives ) )
234 {
235 // InternalProblem.g:92:2: ( ( rule__Statement__Alternatives ) )
236 // InternalProblem.g:93:3: ( rule__Statement__Alternatives )
237 {
238 before(grammarAccess.getStatementAccess().getAlternatives());
239 // InternalProblem.g:94:3: ( rule__Statement__Alternatives )
240 // InternalProblem.g:94:4: rule__Statement__Alternatives
241 {
242 pushFollow(FOLLOW_2);
243 rule__Statement__Alternatives();
244
245 state._fsp--;
246
247
248 }
249
250 after(grammarAccess.getStatementAccess().getAlternatives());
251
252 }
253
254
255 }
256
257 }
258 catch (RecognitionException re) {
259 reportError(re);
260 recover(input,re);
261 }
262 finally {
263
264 restoreStackSize(stackSize);
265
266 }
267 return ;
268 }
269 // $ANTLR end "ruleStatement"
270
271
272 // $ANTLR start "entryRuleClassDeclaration"
273 // InternalProblem.g:103:1: entryRuleClassDeclaration : ruleClassDeclaration EOF ;
274 public final void entryRuleClassDeclaration() throws RecognitionException {
275 try {
276 // InternalProblem.g:104:1: ( ruleClassDeclaration EOF )
277 // InternalProblem.g:105:1: ruleClassDeclaration EOF
278 {
279 before(grammarAccess.getClassDeclarationRule());
280 pushFollow(FOLLOW_1);
281 ruleClassDeclaration();
282
283 state._fsp--;
284
285 after(grammarAccess.getClassDeclarationRule());
286 match(input,EOF,FOLLOW_2);
287
288 }
289
290 }
291 catch (RecognitionException re) {
292 reportError(re);
293 recover(input,re);
294 }
295 finally {
296 }
297 return ;
298 }
299 // $ANTLR end "entryRuleClassDeclaration"
300
301
302 // $ANTLR start "ruleClassDeclaration"
303 // InternalProblem.g:112:1: ruleClassDeclaration : ( ( rule__ClassDeclaration__Group__0 ) ) ;
304 public final void ruleClassDeclaration() throws RecognitionException {
305
306 int stackSize = keepStackSize();
307
308 try {
309 // InternalProblem.g:116:2: ( ( ( rule__ClassDeclaration__Group__0 ) ) )
310 // InternalProblem.g:117:2: ( ( rule__ClassDeclaration__Group__0 ) )
311 {
312 // InternalProblem.g:117:2: ( ( rule__ClassDeclaration__Group__0 ) )
313 // InternalProblem.g:118:3: ( rule__ClassDeclaration__Group__0 )
314 {
315 before(grammarAccess.getClassDeclarationAccess().getGroup());
316 // InternalProblem.g:119:3: ( rule__ClassDeclaration__Group__0 )
317 // InternalProblem.g:119:4: rule__ClassDeclaration__Group__0
318 {
319 pushFollow(FOLLOW_2);
320 rule__ClassDeclaration__Group__0();
321
322 state._fsp--;
323
324
325 }
326
327 after(grammarAccess.getClassDeclarationAccess().getGroup());
328
329 }
330
331
332 }
333
334 }
335 catch (RecognitionException re) {
336 reportError(re);
337 recover(input,re);
338 }
339 finally {
340
341 restoreStackSize(stackSize);
342
343 }
344 return ;
345 }
346 // $ANTLR end "ruleClassDeclaration"
347
348
349 // $ANTLR start "entryRuleReferenceDeclaration"
350 // InternalProblem.g:128:1: entryRuleReferenceDeclaration : ruleReferenceDeclaration EOF ;
351 public final void entryRuleReferenceDeclaration() throws RecognitionException {
352 try {
353 // InternalProblem.g:129:1: ( ruleReferenceDeclaration EOF )
354 // InternalProblem.g:130:1: ruleReferenceDeclaration EOF
355 {
356 before(grammarAccess.getReferenceDeclarationRule());
357 pushFollow(FOLLOW_1);
358 ruleReferenceDeclaration();
359
360 state._fsp--;
361
362 after(grammarAccess.getReferenceDeclarationRule());
363 match(input,EOF,FOLLOW_2);
364
365 }
366
367 }
368 catch (RecognitionException re) {
369 reportError(re);
370 recover(input,re);
371 }
372 finally {
373 }
374 return ;
375 }
376 // $ANTLR end "entryRuleReferenceDeclaration"
377
378
379 // $ANTLR start "ruleReferenceDeclaration"
380 // InternalProblem.g:137:1: ruleReferenceDeclaration : ( ( rule__ReferenceDeclaration__Group__0 ) ) ;
381 public final void ruleReferenceDeclaration() throws RecognitionException {
382
383 int stackSize = keepStackSize();
384
385 try {
386 // InternalProblem.g:141:2: ( ( ( rule__ReferenceDeclaration__Group__0 ) ) )
387 // InternalProblem.g:142:2: ( ( rule__ReferenceDeclaration__Group__0 ) )
388 {
389 // InternalProblem.g:142:2: ( ( rule__ReferenceDeclaration__Group__0 ) )
390 // InternalProblem.g:143:3: ( rule__ReferenceDeclaration__Group__0 )
391 {
392 before(grammarAccess.getReferenceDeclarationAccess().getGroup());
393 // InternalProblem.g:144:3: ( rule__ReferenceDeclaration__Group__0 )
394 // InternalProblem.g:144:4: rule__ReferenceDeclaration__Group__0
395 {
396 pushFollow(FOLLOW_2);
397 rule__ReferenceDeclaration__Group__0();
398
399 state._fsp--;
400
401
402 }
403
404 after(grammarAccess.getReferenceDeclarationAccess().getGroup());
405
406 }
407
408
409 }
410
411 }
412 catch (RecognitionException re) {
413 reportError(re);
414 recover(input,re);
415 }
416 finally {
417
418 restoreStackSize(stackSize);
419
420 }
421 return ;
422 }
423 // $ANTLR end "ruleReferenceDeclaration"
424
425
426 // $ANTLR start "entryRulePredicateDefinition"
427 // InternalProblem.g:153:1: entryRulePredicateDefinition : rulePredicateDefinition EOF ;
428 public final void entryRulePredicateDefinition() throws RecognitionException {
429 try {
430 // InternalProblem.g:154:1: ( rulePredicateDefinition EOF )
431 // InternalProblem.g:155:1: rulePredicateDefinition EOF
432 {
433 before(grammarAccess.getPredicateDefinitionRule());
434 pushFollow(FOLLOW_1);
435 rulePredicateDefinition();
436
437 state._fsp--;
438
439 after(grammarAccess.getPredicateDefinitionRule());
440 match(input,EOF,FOLLOW_2);
441
442 }
443
444 }
445 catch (RecognitionException re) {
446 reportError(re);
447 recover(input,re);
448 }
449 finally {
450 }
451 return ;
452 }
453 // $ANTLR end "entryRulePredicateDefinition"
454
455
456 // $ANTLR start "rulePredicateDefinition"
457 // InternalProblem.g:162:1: rulePredicateDefinition : ( ( rule__PredicateDefinition__Group__0 ) ) ;
458 public final void rulePredicateDefinition() throws RecognitionException {
459
460 int stackSize = keepStackSize();
461
462 try {
463 // InternalProblem.g:166:2: ( ( ( rule__PredicateDefinition__Group__0 ) ) )
464 // InternalProblem.g:167:2: ( ( rule__PredicateDefinition__Group__0 ) )
465 {
466 // InternalProblem.g:167:2: ( ( rule__PredicateDefinition__Group__0 ) )
467 // InternalProblem.g:168:3: ( rule__PredicateDefinition__Group__0 )
468 {
469 before(grammarAccess.getPredicateDefinitionAccess().getGroup());
470 // InternalProblem.g:169:3: ( rule__PredicateDefinition__Group__0 )
471 // InternalProblem.g:169:4: rule__PredicateDefinition__Group__0
472 {
473 pushFollow(FOLLOW_2);
474 rule__PredicateDefinition__Group__0();
475
476 state._fsp--;
477
478
479 }
480
481 after(grammarAccess.getPredicateDefinitionAccess().getGroup());
482
483 }
484
485
486 }
487
488 }
489 catch (RecognitionException re) {
490 reportError(re);
491 recover(input,re);
492 }
493 finally {
494
495 restoreStackSize(stackSize);
496
497 }
498 return ;
499 }
500 // $ANTLR end "rulePredicateDefinition"
501
502
503 // $ANTLR start "entryRuleParameter"
504 // InternalProblem.g:178:1: entryRuleParameter : ruleParameter EOF ;
505 public final void entryRuleParameter() throws RecognitionException {
506 try {
507 // InternalProblem.g:179:1: ( ruleParameter EOF )
508 // InternalProblem.g:180:1: ruleParameter EOF
509 {
510 before(grammarAccess.getParameterRule());
511 pushFollow(FOLLOW_1);
512 ruleParameter();
513
514 state._fsp--;
515
516 after(grammarAccess.getParameterRule());
517 match(input,EOF,FOLLOW_2);
518
519 }
520
521 }
522 catch (RecognitionException re) {
523 reportError(re);
524 recover(input,re);
525 }
526 finally {
527 }
528 return ;
529 }
530 // $ANTLR end "entryRuleParameter"
531
532
533 // $ANTLR start "ruleParameter"
534 // InternalProblem.g:187:1: ruleParameter : ( ( rule__Parameter__Group__0 ) ) ;
535 public final void ruleParameter() throws RecognitionException {
536
537 int stackSize = keepStackSize();
538
539 try {
540 // InternalProblem.g:191:2: ( ( ( rule__Parameter__Group__0 ) ) )
541 // InternalProblem.g:192:2: ( ( rule__Parameter__Group__0 ) )
542 {
543 // InternalProblem.g:192:2: ( ( rule__Parameter__Group__0 ) )
544 // InternalProblem.g:193:3: ( rule__Parameter__Group__0 )
545 {
546 before(grammarAccess.getParameterAccess().getGroup());
547 // InternalProblem.g:194:3: ( rule__Parameter__Group__0 )
548 // InternalProblem.g:194:4: rule__Parameter__Group__0
549 {
550 pushFollow(FOLLOW_2);
551 rule__Parameter__Group__0();
552
553 state._fsp--;
554
555
556 }
557
558 after(grammarAccess.getParameterAccess().getGroup());
559
560 }
561
562
563 }
564
565 }
566 catch (RecognitionException re) {
567 reportError(re);
568 recover(input,re);
569 }
570 finally {
571
572 restoreStackSize(stackSize);
573
574 }
575 return ;
576 }
577 // $ANTLR end "ruleParameter"
578
579
580 // $ANTLR start "entryRuleConjunction"
581 // InternalProblem.g:203:1: entryRuleConjunction : ruleConjunction EOF ;
582 public final void entryRuleConjunction() throws RecognitionException {
583 try {
584 // InternalProblem.g:204:1: ( ruleConjunction EOF )
585 // InternalProblem.g:205:1: ruleConjunction EOF
586 {
587 before(grammarAccess.getConjunctionRule());
588 pushFollow(FOLLOW_1);
589 ruleConjunction();
590
591 state._fsp--;
592
593 after(grammarAccess.getConjunctionRule());
594 match(input,EOF,FOLLOW_2);
595
596 }
597
598 }
599 catch (RecognitionException re) {
600 reportError(re);
601 recover(input,re);
602 }
603 finally {
604 }
605 return ;
606 }
607 // $ANTLR end "entryRuleConjunction"
608
609
610 // $ANTLR start "ruleConjunction"
611 // InternalProblem.g:212:1: ruleConjunction : ( ( rule__Conjunction__Group__0 ) ) ;
612 public final void ruleConjunction() throws RecognitionException {
613
614 int stackSize = keepStackSize();
615
616 try {
617 // InternalProblem.g:216:2: ( ( ( rule__Conjunction__Group__0 ) ) )
618 // InternalProblem.g:217:2: ( ( rule__Conjunction__Group__0 ) )
619 {
620 // InternalProblem.g:217:2: ( ( rule__Conjunction__Group__0 ) )
621 // InternalProblem.g:218:3: ( rule__Conjunction__Group__0 )
622 {
623 before(grammarAccess.getConjunctionAccess().getGroup());
624 // InternalProblem.g:219:3: ( rule__Conjunction__Group__0 )
625 // InternalProblem.g:219:4: rule__Conjunction__Group__0
626 {
627 pushFollow(FOLLOW_2);
628 rule__Conjunction__Group__0();
629
630 state._fsp--;
631
632
633 }
634
635 after(grammarAccess.getConjunctionAccess().getGroup());
636
637 }
638
639
640 }
641
642 }
643 catch (RecognitionException re) {
644 reportError(re);
645 recover(input,re);
646 }
647 finally {
648
649 restoreStackSize(stackSize);
650
651 }
652 return ;
653 }
654 // $ANTLR end "ruleConjunction"
655
656
657 // $ANTLR start "entryRuleLiteral"
658 // InternalProblem.g:228:1: entryRuleLiteral : ruleLiteral EOF ;
659 public final void entryRuleLiteral() throws RecognitionException {
660 try {
661 // InternalProblem.g:229:1: ( ruleLiteral EOF )
662 // InternalProblem.g:230:1: ruleLiteral EOF
663 {
664 before(grammarAccess.getLiteralRule());
665 pushFollow(FOLLOW_1);
666 ruleLiteral();
667
668 state._fsp--;
669
670 after(grammarAccess.getLiteralRule());
671 match(input,EOF,FOLLOW_2);
672
673 }
674
675 }
676 catch (RecognitionException re) {
677 reportError(re);
678 recover(input,re);
679 }
680 finally {
681 }
682 return ;
683 }
684 // $ANTLR end "entryRuleLiteral"
685
686
687 // $ANTLR start "ruleLiteral"
688 // InternalProblem.g:237:1: ruleLiteral : ( ( rule__Literal__Alternatives ) ) ;
689 public final void ruleLiteral() throws RecognitionException {
690
691 int stackSize = keepStackSize();
692
693 try {
694 // InternalProblem.g:241:2: ( ( ( rule__Literal__Alternatives ) ) )
695 // InternalProblem.g:242:2: ( ( rule__Literal__Alternatives ) )
696 {
697 // InternalProblem.g:242:2: ( ( rule__Literal__Alternatives ) )
698 // InternalProblem.g:243:3: ( rule__Literal__Alternatives )
699 {
700 before(grammarAccess.getLiteralAccess().getAlternatives());
701 // InternalProblem.g:244:3: ( rule__Literal__Alternatives )
702 // InternalProblem.g:244:4: rule__Literal__Alternatives
703 {
704 pushFollow(FOLLOW_2);
705 rule__Literal__Alternatives();
706
707 state._fsp--;
708
709
710 }
711
712 after(grammarAccess.getLiteralAccess().getAlternatives());
713
714 }
715
716
717 }
718
719 }
720 catch (RecognitionException re) {
721 reportError(re);
722 recover(input,re);
723 }
724 finally {
725
726 restoreStackSize(stackSize);
727
728 }
729 return ;
730 }
731 // $ANTLR end "ruleLiteral"
732
733
734 // $ANTLR start "entryRuleNegativeLiteral"
735 // InternalProblem.g:253:1: entryRuleNegativeLiteral : ruleNegativeLiteral EOF ;
736 public final void entryRuleNegativeLiteral() throws RecognitionException {
737 try {
738 // InternalProblem.g:254:1: ( ruleNegativeLiteral EOF )
739 // InternalProblem.g:255:1: ruleNegativeLiteral EOF
740 {
741 before(grammarAccess.getNegativeLiteralRule());
742 pushFollow(FOLLOW_1);
743 ruleNegativeLiteral();
744
745 state._fsp--;
746
747 after(grammarAccess.getNegativeLiteralRule());
748 match(input,EOF,FOLLOW_2);
749
750 }
751
752 }
753 catch (RecognitionException re) {
754 reportError(re);
755 recover(input,re);
756 }
757 finally {
758 }
759 return ;
760 }
761 // $ANTLR end "entryRuleNegativeLiteral"
762
763
764 // $ANTLR start "ruleNegativeLiteral"
765 // InternalProblem.g:262:1: ruleNegativeLiteral : ( ( rule__NegativeLiteral__Group__0 ) ) ;
766 public final void ruleNegativeLiteral() throws RecognitionException {
767
768 int stackSize = keepStackSize();
769
770 try {
771 // InternalProblem.g:266:2: ( ( ( rule__NegativeLiteral__Group__0 ) ) )
772 // InternalProblem.g:267:2: ( ( rule__NegativeLiteral__Group__0 ) )
773 {
774 // InternalProblem.g:267:2: ( ( rule__NegativeLiteral__Group__0 ) )
775 // InternalProblem.g:268:3: ( rule__NegativeLiteral__Group__0 )
776 {
777 before(grammarAccess.getNegativeLiteralAccess().getGroup());
778 // InternalProblem.g:269:3: ( rule__NegativeLiteral__Group__0 )
779 // InternalProblem.g:269:4: rule__NegativeLiteral__Group__0
780 {
781 pushFollow(FOLLOW_2);
782 rule__NegativeLiteral__Group__0();
783
784 state._fsp--;
785
786
787 }
788
789 after(grammarAccess.getNegativeLiteralAccess().getGroup());
790
791 }
792
793
794 }
795
796 }
797 catch (RecognitionException re) {
798 reportError(re);
799 recover(input,re);
800 }
801 finally {
802
803 restoreStackSize(stackSize);
804
805 }
806 return ;
807 }
808 // $ANTLR end "ruleNegativeLiteral"
809
810
811 // $ANTLR start "entryRuleAtom"
812 // InternalProblem.g:278:1: entryRuleAtom : ruleAtom EOF ;
813 public final void entryRuleAtom() throws RecognitionException {
814 try {
815 // InternalProblem.g:279:1: ( ruleAtom EOF )
816 // InternalProblem.g:280:1: ruleAtom EOF
817 {
818 before(grammarAccess.getAtomRule());
819 pushFollow(FOLLOW_1);
820 ruleAtom();
821
822 state._fsp--;
823
824 after(grammarAccess.getAtomRule());
825 match(input,EOF,FOLLOW_2);
826
827 }
828
829 }
830 catch (RecognitionException re) {
831 reportError(re);
832 recover(input,re);
833 }
834 finally {
835 }
836 return ;
837 }
838 // $ANTLR end "entryRuleAtom"
839
840
841 // $ANTLR start "ruleAtom"
842 // InternalProblem.g:287:1: ruleAtom : ( ( rule__Atom__Group__0 ) ) ;
843 public final void ruleAtom() throws RecognitionException {
844
845 int stackSize = keepStackSize();
846
847 try {
848 // InternalProblem.g:291:2: ( ( ( rule__Atom__Group__0 ) ) )
849 // InternalProblem.g:292:2: ( ( rule__Atom__Group__0 ) )
850 {
851 // InternalProblem.g:292:2: ( ( rule__Atom__Group__0 ) )
852 // InternalProblem.g:293:3: ( rule__Atom__Group__0 )
853 {
854 before(grammarAccess.getAtomAccess().getGroup());
855 // InternalProblem.g:294:3: ( rule__Atom__Group__0 )
856 // InternalProblem.g:294:4: rule__Atom__Group__0
857 {
858 pushFollow(FOLLOW_2);
859 rule__Atom__Group__0();
860
861 state._fsp--;
862
863
864 }
865
866 after(grammarAccess.getAtomAccess().getGroup());
867
868 }
869
870
871 }
872
873 }
874 catch (RecognitionException re) {
875 reportError(re);
876 recover(input,re);
877 }
878 finally {
879
880 restoreStackSize(stackSize);
881
882 }
883 return ;
884 }
885 // $ANTLR end "ruleAtom"
886
887
888 // $ANTLR start "entryRuleAssertion"
889 // InternalProblem.g:303:1: entryRuleAssertion : ruleAssertion EOF ;
890 public final void entryRuleAssertion() throws RecognitionException {
891 try {
892 // InternalProblem.g:304:1: ( ruleAssertion EOF )
893 // InternalProblem.g:305:1: ruleAssertion EOF
894 {
895 before(grammarAccess.getAssertionRule());
896 pushFollow(FOLLOW_1);
897 ruleAssertion();
898
899 state._fsp--;
900
901 after(grammarAccess.getAssertionRule());
902 match(input,EOF,FOLLOW_2);
903
904 }
905
906 }
907 catch (RecognitionException re) {
908 reportError(re);
909 recover(input,re);
910 }
911 finally {
912 }
913 return ;
914 }
915 // $ANTLR end "entryRuleAssertion"
916
917
918 // $ANTLR start "ruleAssertion"
919 // InternalProblem.g:312:1: ruleAssertion : ( ( rule__Assertion__Group__0 ) ) ;
920 public final void ruleAssertion() throws RecognitionException {
921
922 int stackSize = keepStackSize();
923
924 try {
925 // InternalProblem.g:316:2: ( ( ( rule__Assertion__Group__0 ) ) )
926 // InternalProblem.g:317:2: ( ( rule__Assertion__Group__0 ) )
927 {
928 // InternalProblem.g:317:2: ( ( rule__Assertion__Group__0 ) )
929 // InternalProblem.g:318:3: ( rule__Assertion__Group__0 )
930 {
931 before(grammarAccess.getAssertionAccess().getGroup());
932 // InternalProblem.g:319:3: ( rule__Assertion__Group__0 )
933 // InternalProblem.g:319:4: rule__Assertion__Group__0
934 {
935 pushFollow(FOLLOW_2);
936 rule__Assertion__Group__0();
937
938 state._fsp--;
939
940
941 }
942
943 after(grammarAccess.getAssertionAccess().getGroup());
944
945 }
946
947
948 }
949
950 }
951 catch (RecognitionException re) {
952 reportError(re);
953 recover(input,re);
954 }
955 finally {
956
957 restoreStackSize(stackSize);
958
959 }
960 return ;
961 }
962 // $ANTLR end "ruleAssertion"
963
964
965 // $ANTLR start "entryRuleScopeDeclaration"
966 // InternalProblem.g:328:1: entryRuleScopeDeclaration : ruleScopeDeclaration EOF ;
967 public final void entryRuleScopeDeclaration() throws RecognitionException {
968 try {
969 // InternalProblem.g:329:1: ( ruleScopeDeclaration EOF )
970 // InternalProblem.g:330:1: ruleScopeDeclaration EOF
971 {
972 before(grammarAccess.getScopeDeclarationRule());
973 pushFollow(FOLLOW_1);
974 ruleScopeDeclaration();
975
976 state._fsp--;
977
978 after(grammarAccess.getScopeDeclarationRule());
979 match(input,EOF,FOLLOW_2);
980
981 }
982
983 }
984 catch (RecognitionException re) {
985 reportError(re);
986 recover(input,re);
987 }
988 finally {
989 }
990 return ;
991 }
992 // $ANTLR end "entryRuleScopeDeclaration"
993
994
995 // $ANTLR start "ruleScopeDeclaration"
996 // InternalProblem.g:337:1: ruleScopeDeclaration : ( ( rule__ScopeDeclaration__Group__0 ) ) ;
997 public final void ruleScopeDeclaration() throws RecognitionException {
998
999 int stackSize = keepStackSize();
1000
1001 try {
1002 // InternalProblem.g:341:2: ( ( ( rule__ScopeDeclaration__Group__0 ) ) )
1003 // InternalProblem.g:342:2: ( ( rule__ScopeDeclaration__Group__0 ) )
1004 {
1005 // InternalProblem.g:342:2: ( ( rule__ScopeDeclaration__Group__0 ) )
1006 // InternalProblem.g:343:3: ( rule__ScopeDeclaration__Group__0 )
1007 {
1008 before(grammarAccess.getScopeDeclarationAccess().getGroup());
1009 // InternalProblem.g:344:3: ( rule__ScopeDeclaration__Group__0 )
1010 // InternalProblem.g:344:4: rule__ScopeDeclaration__Group__0
1011 {
1012 pushFollow(FOLLOW_2);
1013 rule__ScopeDeclaration__Group__0();
1014
1015 state._fsp--;
1016
1017
1018 }
1019
1020 after(grammarAccess.getScopeDeclarationAccess().getGroup());
1021
1022 }
1023
1024
1025 }
1026
1027 }
1028 catch (RecognitionException re) {
1029 reportError(re);
1030 recover(input,re);
1031 }
1032 finally {
1033
1034 restoreStackSize(stackSize);
1035
1036 }
1037 return ;
1038 }
1039 // $ANTLR end "ruleScopeDeclaration"
1040
1041
1042 // $ANTLR start "entryRuleTypeScope"
1043 // InternalProblem.g:353:1: entryRuleTypeScope : ruleTypeScope EOF ;
1044 public final void entryRuleTypeScope() throws RecognitionException {
1045 try {
1046 // InternalProblem.g:354:1: ( ruleTypeScope EOF )
1047 // InternalProblem.g:355:1: ruleTypeScope EOF
1048 {
1049 before(grammarAccess.getTypeScopeRule());
1050 pushFollow(FOLLOW_1);
1051 ruleTypeScope();
1052
1053 state._fsp--;
1054
1055 after(grammarAccess.getTypeScopeRule());
1056 match(input,EOF,FOLLOW_2);
1057
1058 }
1059
1060 }
1061 catch (RecognitionException re) {
1062 reportError(re);
1063 recover(input,re);
1064 }
1065 finally {
1066 }
1067 return ;
1068 }
1069 // $ANTLR end "entryRuleTypeScope"
1070
1071
1072 // $ANTLR start "ruleTypeScope"
1073 // InternalProblem.g:362:1: ruleTypeScope : ( ( rule__TypeScope__Group__0 ) ) ;
1074 public final void ruleTypeScope() throws RecognitionException {
1075
1076 int stackSize = keepStackSize();
1077
1078 try {
1079 // InternalProblem.g:366:2: ( ( ( rule__TypeScope__Group__0 ) ) )
1080 // InternalProblem.g:367:2: ( ( rule__TypeScope__Group__0 ) )
1081 {
1082 // InternalProblem.g:367:2: ( ( rule__TypeScope__Group__0 ) )
1083 // InternalProblem.g:368:3: ( rule__TypeScope__Group__0 )
1084 {
1085 before(grammarAccess.getTypeScopeAccess().getGroup());
1086 // InternalProblem.g:369:3: ( rule__TypeScope__Group__0 )
1087 // InternalProblem.g:369:4: rule__TypeScope__Group__0
1088 {
1089 pushFollow(FOLLOW_2);
1090 rule__TypeScope__Group__0();
1091
1092 state._fsp--;
1093
1094
1095 }
1096
1097 after(grammarAccess.getTypeScopeAccess().getGroup());
1098
1099 }
1100
1101
1102 }
1103
1104 }
1105 catch (RecognitionException re) {
1106 reportError(re);
1107 recover(input,re);
1108 }
1109 finally {
1110
1111 restoreStackSize(stackSize);
1112
1113 }
1114 return ;
1115 }
1116 // $ANTLR end "ruleTypeScope"
1117
1118
1119 // $ANTLR start "entryRuleMultiplicity"
1120 // InternalProblem.g:378:1: entryRuleMultiplicity : ruleMultiplicity EOF ;
1121 public final void entryRuleMultiplicity() throws RecognitionException {
1122 try {
1123 // InternalProblem.g:379:1: ( ruleMultiplicity EOF )
1124 // InternalProblem.g:380:1: ruleMultiplicity EOF
1125 {
1126 before(grammarAccess.getMultiplicityRule());
1127 pushFollow(FOLLOW_1);
1128 ruleMultiplicity();
1129
1130 state._fsp--;
1131
1132 after(grammarAccess.getMultiplicityRule());
1133 match(input,EOF,FOLLOW_2);
1134
1135 }
1136
1137 }
1138 catch (RecognitionException re) {
1139 reportError(re);
1140 recover(input,re);
1141 }
1142 finally {
1143 }
1144 return ;
1145 }
1146 // $ANTLR end "entryRuleMultiplicity"
1147
1148
1149 // $ANTLR start "ruleMultiplicity"
1150 // InternalProblem.g:387:1: ruleMultiplicity : ( ( rule__Multiplicity__Alternatives ) ) ;
1151 public final void ruleMultiplicity() throws RecognitionException {
1152
1153 int stackSize = keepStackSize();
1154
1155 try {
1156 // InternalProblem.g:391:2: ( ( ( rule__Multiplicity__Alternatives ) ) )
1157 // InternalProblem.g:392:2: ( ( rule__Multiplicity__Alternatives ) )
1158 {
1159 // InternalProblem.g:392:2: ( ( rule__Multiplicity__Alternatives ) )
1160 // InternalProblem.g:393:3: ( rule__Multiplicity__Alternatives )
1161 {
1162 before(grammarAccess.getMultiplicityAccess().getAlternatives());
1163 // InternalProblem.g:394:3: ( rule__Multiplicity__Alternatives )
1164 // InternalProblem.g:394:4: rule__Multiplicity__Alternatives
1165 {
1166 pushFollow(FOLLOW_2);
1167 rule__Multiplicity__Alternatives();
1168
1169 state._fsp--;
1170
1171
1172 }
1173
1174 after(grammarAccess.getMultiplicityAccess().getAlternatives());
1175
1176 }
1177
1178
1179 }
1180
1181 }
1182 catch (RecognitionException re) {
1183 reportError(re);
1184 recover(input,re);
1185 }
1186 finally {
1187
1188 restoreStackSize(stackSize);
1189
1190 }
1191 return ;
1192 }
1193 // $ANTLR end "ruleMultiplicity"
1194
1195
1196 // $ANTLR start "entryRuleRangeMultiplicity"
1197 // InternalProblem.g:403:1: entryRuleRangeMultiplicity : ruleRangeMultiplicity EOF ;
1198 public final void entryRuleRangeMultiplicity() throws RecognitionException {
1199 try {
1200 // InternalProblem.g:404:1: ( ruleRangeMultiplicity EOF )
1201 // InternalProblem.g:405:1: ruleRangeMultiplicity EOF
1202 {
1203 before(grammarAccess.getRangeMultiplicityRule());
1204 pushFollow(FOLLOW_1);
1205 ruleRangeMultiplicity();
1206
1207 state._fsp--;
1208
1209 after(grammarAccess.getRangeMultiplicityRule());
1210 match(input,EOF,FOLLOW_2);
1211
1212 }
1213
1214 }
1215 catch (RecognitionException re) {
1216 reportError(re);
1217 recover(input,re);
1218 }
1219 finally {
1220 }
1221 return ;
1222 }
1223 // $ANTLR end "entryRuleRangeMultiplicity"
1224
1225
1226 // $ANTLR start "ruleRangeMultiplicity"
1227 // InternalProblem.g:412:1: ruleRangeMultiplicity : ( ( rule__RangeMultiplicity__Group__0 ) ) ;
1228 public final void ruleRangeMultiplicity() throws RecognitionException {
1229
1230 int stackSize = keepStackSize();
1231
1232 try {
1233 // InternalProblem.g:416:2: ( ( ( rule__RangeMultiplicity__Group__0 ) ) )
1234 // InternalProblem.g:417:2: ( ( rule__RangeMultiplicity__Group__0 ) )
1235 {
1236 // InternalProblem.g:417:2: ( ( rule__RangeMultiplicity__Group__0 ) )
1237 // InternalProblem.g:418:3: ( rule__RangeMultiplicity__Group__0 )
1238 {
1239 before(grammarAccess.getRangeMultiplicityAccess().getGroup());
1240 // InternalProblem.g:419:3: ( rule__RangeMultiplicity__Group__0 )
1241 // InternalProblem.g:419:4: rule__RangeMultiplicity__Group__0
1242 {
1243 pushFollow(FOLLOW_2);
1244 rule__RangeMultiplicity__Group__0();
1245
1246 state._fsp--;
1247
1248
1249 }
1250
1251 after(grammarAccess.getRangeMultiplicityAccess().getGroup());
1252
1253 }
1254
1255
1256 }
1257
1258 }
1259 catch (RecognitionException re) {
1260 reportError(re);
1261 recover(input,re);
1262 }
1263 finally {
1264
1265 restoreStackSize(stackSize);
1266
1267 }
1268 return ;
1269 }
1270 // $ANTLR end "ruleRangeMultiplicity"
1271
1272
1273 // $ANTLR start "entryRuleExactMultiplicity"
1274 // InternalProblem.g:428:1: entryRuleExactMultiplicity : ruleExactMultiplicity EOF ;
1275 public final void entryRuleExactMultiplicity() throws RecognitionException {
1276 try {
1277 // InternalProblem.g:429:1: ( ruleExactMultiplicity EOF )
1278 // InternalProblem.g:430:1: ruleExactMultiplicity EOF
1279 {
1280 before(grammarAccess.getExactMultiplicityRule());
1281 pushFollow(FOLLOW_1);
1282 ruleExactMultiplicity();
1283
1284 state._fsp--;
1285
1286 after(grammarAccess.getExactMultiplicityRule());
1287 match(input,EOF,FOLLOW_2);
1288
1289 }
1290
1291 }
1292 catch (RecognitionException re) {
1293 reportError(re);
1294 recover(input,re);
1295 }
1296 finally {
1297 }
1298 return ;
1299 }
1300 // $ANTLR end "entryRuleExactMultiplicity"
1301
1302
1303 // $ANTLR start "ruleExactMultiplicity"
1304 // InternalProblem.g:437:1: ruleExactMultiplicity : ( ( rule__ExactMultiplicity__ExactValueAssignment ) ) ;
1305 public final void ruleExactMultiplicity() throws RecognitionException {
1306
1307 int stackSize = keepStackSize();
1308
1309 try {
1310 // InternalProblem.g:441:2: ( ( ( rule__ExactMultiplicity__ExactValueAssignment ) ) )
1311 // InternalProblem.g:442:2: ( ( rule__ExactMultiplicity__ExactValueAssignment ) )
1312 {
1313 // InternalProblem.g:442:2: ( ( rule__ExactMultiplicity__ExactValueAssignment ) )
1314 // InternalProblem.g:443:3: ( rule__ExactMultiplicity__ExactValueAssignment )
1315 {
1316 before(grammarAccess.getExactMultiplicityAccess().getExactValueAssignment());
1317 // InternalProblem.g:444:3: ( rule__ExactMultiplicity__ExactValueAssignment )
1318 // InternalProblem.g:444:4: rule__ExactMultiplicity__ExactValueAssignment
1319 {
1320 pushFollow(FOLLOW_2);
1321 rule__ExactMultiplicity__ExactValueAssignment();
1322
1323 state._fsp--;
1324
1325
1326 }
1327
1328 after(grammarAccess.getExactMultiplicityAccess().getExactValueAssignment());
1329
1330 }
1331
1332
1333 }
1334
1335 }
1336 catch (RecognitionException re) {
1337 reportError(re);
1338 recover(input,re);
1339 }
1340 finally {
1341
1342 restoreStackSize(stackSize);
1343
1344 }
1345 return ;
1346 }
1347 // $ANTLR end "ruleExactMultiplicity"
1348
1349
1350 // $ANTLR start "entryRuleUpperBound"
1351 // InternalProblem.g:453:1: entryRuleUpperBound : ruleUpperBound EOF ;
1352 public final void entryRuleUpperBound() throws RecognitionException {
1353 try {
1354 // InternalProblem.g:454:1: ( ruleUpperBound EOF )
1355 // InternalProblem.g:455:1: ruleUpperBound EOF
1356 {
1357 before(grammarAccess.getUpperBoundRule());
1358 pushFollow(FOLLOW_1);
1359 ruleUpperBound();
1360
1361 state._fsp--;
1362
1363 after(grammarAccess.getUpperBoundRule());
1364 match(input,EOF,FOLLOW_2);
1365
1366 }
1367
1368 }
1369 catch (RecognitionException re) {
1370 reportError(re);
1371 recover(input,re);
1372 }
1373 finally {
1374 }
1375 return ;
1376 }
1377 // $ANTLR end "entryRuleUpperBound"
1378
1379
1380 // $ANTLR start "ruleUpperBound"
1381 // InternalProblem.g:462:1: ruleUpperBound : ( ( rule__UpperBound__Alternatives ) ) ;
1382 public final void ruleUpperBound() throws RecognitionException {
1383
1384 int stackSize = keepStackSize();
1385
1386 try {
1387 // InternalProblem.g:466:2: ( ( ( rule__UpperBound__Alternatives ) ) )
1388 // InternalProblem.g:467:2: ( ( rule__UpperBound__Alternatives ) )
1389 {
1390 // InternalProblem.g:467:2: ( ( rule__UpperBound__Alternatives ) )
1391 // InternalProblem.g:468:3: ( rule__UpperBound__Alternatives )
1392 {
1393 before(grammarAccess.getUpperBoundAccess().getAlternatives());
1394 // InternalProblem.g:469:3: ( rule__UpperBound__Alternatives )
1395 // InternalProblem.g:469:4: rule__UpperBound__Alternatives
1396 {
1397 pushFollow(FOLLOW_2);
1398 rule__UpperBound__Alternatives();
1399
1400 state._fsp--;
1401
1402
1403 }
1404
1405 after(grammarAccess.getUpperBoundAccess().getAlternatives());
1406
1407 }
1408
1409
1410 }
1411
1412 }
1413 catch (RecognitionException re) {
1414 reportError(re);
1415 recover(input,re);
1416 }
1417 finally {
1418
1419 restoreStackSize(stackSize);
1420
1421 }
1422 return ;
1423 }
1424 // $ANTLR end "ruleUpperBound"
1425
1426
1427 // $ANTLR start "entryRuleQualifiedName"
1428 // InternalProblem.g:478:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
1429 public final void entryRuleQualifiedName() throws RecognitionException {
1430 try {
1431 // InternalProblem.g:479:1: ( ruleQualifiedName EOF )
1432 // InternalProblem.g:480:1: ruleQualifiedName EOF
1433 {
1434 before(grammarAccess.getQualifiedNameRule());
1435 pushFollow(FOLLOW_1);
1436 ruleQualifiedName();
1437
1438 state._fsp--;
1439
1440 after(grammarAccess.getQualifiedNameRule());
1441 match(input,EOF,FOLLOW_2);
1442
1443 }
1444
1445 }
1446 catch (RecognitionException re) {
1447 reportError(re);
1448 recover(input,re);
1449 }
1450 finally {
1451 }
1452 return ;
1453 }
1454 // $ANTLR end "entryRuleQualifiedName"
1455
1456
1457 // $ANTLR start "ruleQualifiedName"
1458 // InternalProblem.g:487:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
1459 public final void ruleQualifiedName() throws RecognitionException {
1460
1461 int stackSize = keepStackSize();
1462
1463 try {
1464 // InternalProblem.g:491:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
1465 // InternalProblem.g:492:2: ( ( rule__QualifiedName__Group__0 ) )
1466 {
1467 // InternalProblem.g:492:2: ( ( rule__QualifiedName__Group__0 ) )
1468 // InternalProblem.g:493:3: ( rule__QualifiedName__Group__0 )
1469 {
1470 before(grammarAccess.getQualifiedNameAccess().getGroup());
1471 // InternalProblem.g:494:3: ( rule__QualifiedName__Group__0 )
1472 // InternalProblem.g:494:4: rule__QualifiedName__Group__0
1473 {
1474 pushFollow(FOLLOW_2);
1475 rule__QualifiedName__Group__0();
1476
1477 state._fsp--;
1478
1479
1480 }
1481
1482 after(grammarAccess.getQualifiedNameAccess().getGroup());
1483
1484 }
1485
1486
1487 }
1488
1489 }
1490 catch (RecognitionException re) {
1491 reportError(re);
1492 recover(input,re);
1493 }
1494 finally {
1495
1496 restoreStackSize(stackSize);
1497
1498 }
1499 return ;
1500 }
1501 // $ANTLR end "ruleQualifiedName"
1502
1503
1504 // $ANTLR start "ruleLogicValue"
1505 // InternalProblem.g:503:1: ruleLogicValue : ( ( rule__LogicValue__Alternatives ) ) ;
1506 public final void ruleLogicValue() throws RecognitionException {
1507
1508 int stackSize = keepStackSize();
1509
1510 try {
1511 // InternalProblem.g:507:1: ( ( ( rule__LogicValue__Alternatives ) ) )
1512 // InternalProblem.g:508:2: ( ( rule__LogicValue__Alternatives ) )
1513 {
1514 // InternalProblem.g:508:2: ( ( rule__LogicValue__Alternatives ) )
1515 // InternalProblem.g:509:3: ( rule__LogicValue__Alternatives )
1516 {
1517 before(grammarAccess.getLogicValueAccess().getAlternatives());
1518 // InternalProblem.g:510:3: ( rule__LogicValue__Alternatives )
1519 // InternalProblem.g:510:4: rule__LogicValue__Alternatives
1520 {
1521 pushFollow(FOLLOW_2);
1522 rule__LogicValue__Alternatives();
1523
1524 state._fsp--;
1525
1526
1527 }
1528
1529 after(grammarAccess.getLogicValueAccess().getAlternatives());
1530
1531 }
1532
1533
1534 }
1535
1536 }
1537 catch (RecognitionException re) {
1538 reportError(re);
1539 recover(input,re);
1540 }
1541 finally {
1542
1543 restoreStackSize(stackSize);
1544
1545 }
1546 return ;
1547 }
1548 // $ANTLR end "ruleLogicValue"
1549
1550
1551 // $ANTLR start "ruleShortLogicValue"
1552 // InternalProblem.g:519:1: ruleShortLogicValue : ( ( rule__ShortLogicValue__Alternatives ) ) ;
1553 public final void ruleShortLogicValue() throws RecognitionException {
1554
1555 int stackSize = keepStackSize();
1556
1557 try {
1558 // InternalProblem.g:523:1: ( ( ( rule__ShortLogicValue__Alternatives ) ) )
1559 // InternalProblem.g:524:2: ( ( rule__ShortLogicValue__Alternatives ) )
1560 {
1561 // InternalProblem.g:524:2: ( ( rule__ShortLogicValue__Alternatives ) )
1562 // InternalProblem.g:525:3: ( rule__ShortLogicValue__Alternatives )
1563 {
1564 before(grammarAccess.getShortLogicValueAccess().getAlternatives());
1565 // InternalProblem.g:526:3: ( rule__ShortLogicValue__Alternatives )
1566 // InternalProblem.g:526:4: rule__ShortLogicValue__Alternatives
1567 {
1568 pushFollow(FOLLOW_2);
1569 rule__ShortLogicValue__Alternatives();
1570
1571 state._fsp--;
1572
1573
1574 }
1575
1576 after(grammarAccess.getShortLogicValueAccess().getAlternatives());
1577
1578 }
1579
1580
1581 }
1582
1583 }
1584 catch (RecognitionException re) {
1585 reportError(re);
1586 recover(input,re);
1587 }
1588 finally {
1589
1590 restoreStackSize(stackSize);
1591
1592 }
1593 return ;
1594 }
1595 // $ANTLR end "ruleShortLogicValue"
1596
1597
1598 // $ANTLR start "rule__Statement__Alternatives"
1599 // InternalProblem.g:534:1: rule__Statement__Alternatives : ( ( ruleClassDeclaration ) | ( rulePredicateDefinition ) | ( ruleAssertion ) | ( ruleScopeDeclaration ) );
1600 public final void rule__Statement__Alternatives() throws RecognitionException {
1601
1602 int stackSize = keepStackSize();
1603
1604 try {
1605 // InternalProblem.g:538:1: ( ( ruleClassDeclaration ) | ( rulePredicateDefinition ) | ( ruleAssertion ) | ( ruleScopeDeclaration ) )
1606 int alt2=4;
1607 switch ( input.LA(1) ) {
1608 case 20:
1609 case 35:
1610 {
1611 alt2=1;
1612 }
1613 break;
1614 case 12:
1615 case 37:
1616 {
1617 alt2=2;
1618 }
1619 break;
1620 case RULE_ID:
1621 case 18:
1622 case 19:
1623 {
1624 alt2=3;
1625 }
1626 break;
1627 case 32:
1628 {
1629 alt2=4;
1630 }
1631 break;
1632 default:
1633 NoViableAltException nvae =
1634 new NoViableAltException("", 2, 0, input);
1635
1636 throw nvae;
1637 }
1638
1639 switch (alt2) {
1640 case 1 :
1641 // InternalProblem.g:539:2: ( ruleClassDeclaration )
1642 {
1643 // InternalProblem.g:539:2: ( ruleClassDeclaration )
1644 // InternalProblem.g:540:3: ruleClassDeclaration
1645 {
1646 before(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
1647 pushFollow(FOLLOW_2);
1648 ruleClassDeclaration();
1649
1650 state._fsp--;
1651
1652 after(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
1653
1654 }
1655
1656
1657 }
1658 break;
1659 case 2 :
1660 // InternalProblem.g:545:2: ( rulePredicateDefinition )
1661 {
1662 // InternalProblem.g:545:2: ( rulePredicateDefinition )
1663 // InternalProblem.g:546:3: rulePredicateDefinition
1664 {
1665 before(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1());
1666 pushFollow(FOLLOW_2);
1667 rulePredicateDefinition();
1668
1669 state._fsp--;
1670
1671 after(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1());
1672
1673 }
1674
1675
1676 }
1677 break;
1678 case 3 :
1679 // InternalProblem.g:551:2: ( ruleAssertion )
1680 {
1681 // InternalProblem.g:551:2: ( ruleAssertion )
1682 // InternalProblem.g:552:3: ruleAssertion
1683 {
1684 before(grammarAccess.getStatementAccess().getAssertionParserRuleCall_2());
1685 pushFollow(FOLLOW_2);
1686 ruleAssertion();
1687
1688 state._fsp--;
1689
1690 after(grammarAccess.getStatementAccess().getAssertionParserRuleCall_2());
1691
1692 }
1693
1694
1695 }
1696 break;
1697 case 4 :
1698 // InternalProblem.g:557:2: ( ruleScopeDeclaration )
1699 {
1700 // InternalProblem.g:557:2: ( ruleScopeDeclaration )
1701 // InternalProblem.g:558:3: ruleScopeDeclaration
1702 {
1703 before(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_3());
1704 pushFollow(FOLLOW_2);
1705 ruleScopeDeclaration();
1706
1707 state._fsp--;
1708
1709 after(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_3());
1710
1711 }
1712
1713
1714 }
1715 break;
1716
1717 }
1718 }
1719 catch (RecognitionException re) {
1720 reportError(re);
1721 recover(input,re);
1722 }
1723 finally {
1724
1725 restoreStackSize(stackSize);
1726
1727 }
1728 return ;
1729 }
1730 // $ANTLR end "rule__Statement__Alternatives"
1731
1732
1733 // $ANTLR start "rule__ClassDeclaration__Alternatives_3"
1734 // InternalProblem.g:567:1: rule__ClassDeclaration__Alternatives_3 : ( ( ( rule__ClassDeclaration__Group_3_0__0 ) ) | ( ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1 ) ) );
1735 public final void rule__ClassDeclaration__Alternatives_3() throws RecognitionException {
1736
1737 int stackSize = keepStackSize();
1738
1739 try {
1740 // InternalProblem.g:571:1: ( ( ( rule__ClassDeclaration__Group_3_0__0 ) ) | ( ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1 ) ) )
1741 int alt3=2;
1742 int LA3_0 = input.LA(1);
1743
1744 if ( (LA3_0==22) ) {
1745 alt3=1;
1746 }
1747 else if ( (LA3_0==11||LA3_0==36) ) {
1748 alt3=2;
1749 }
1750 else {
1751 NoViableAltException nvae =
1752 new NoViableAltException("", 3, 0, input);
1753
1754 throw nvae;
1755 }
1756 switch (alt3) {
1757 case 1 :
1758 // InternalProblem.g:572:2: ( ( rule__ClassDeclaration__Group_3_0__0 ) )
1759 {
1760 // InternalProblem.g:572:2: ( ( rule__ClassDeclaration__Group_3_0__0 ) )
1761 // InternalProblem.g:573:3: ( rule__ClassDeclaration__Group_3_0__0 )
1762 {
1763 before(grammarAccess.getClassDeclarationAccess().getGroup_3_0());
1764 // InternalProblem.g:574:3: ( rule__ClassDeclaration__Group_3_0__0 )
1765 // InternalProblem.g:574:4: rule__ClassDeclaration__Group_3_0__0
1766 {
1767 pushFollow(FOLLOW_2);
1768 rule__ClassDeclaration__Group_3_0__0();
1769
1770 state._fsp--;
1771
1772
1773 }
1774
1775 after(grammarAccess.getClassDeclarationAccess().getGroup_3_0());
1776
1777 }
1778
1779
1780 }
1781 break;
1782 case 2 :
1783 // InternalProblem.g:578:2: ( ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1 ) )
1784 {
1785 // InternalProblem.g:578:2: ( ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1 ) )
1786 // InternalProblem.g:579:3: ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1 )
1787 {
1788 before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_3_1());
1789 // InternalProblem.g:580:3: ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1 )
1790 // InternalProblem.g:580:4: rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1
1791 {
1792 pushFollow(FOLLOW_2);
1793 rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1();
1794
1795 state._fsp--;
1796
1797
1798 }
1799
1800 after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_3_1());
1801
1802 }
1803
1804
1805 }
1806 break;
1807
1808 }
1809 }
1810 catch (RecognitionException re) {
1811 reportError(re);
1812 recover(input,re);
1813 }
1814 finally {
1815
1816 restoreStackSize(stackSize);
1817
1818 }
1819 return ;
1820 }
1821 // $ANTLR end "rule__ClassDeclaration__Alternatives_3"
1822
1823
1824 // $ANTLR start "rule__ClassDeclaration__Alternatives_3_0_1"
1825 // InternalProblem.g:588:1: rule__ClassDeclaration__Alternatives_3_0_1 : ( ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0 ) ) | ( ( rule__ClassDeclaration__Group_3_0_1_1__0 ) ) );
1826 public final void rule__ClassDeclaration__Alternatives_3_0_1() throws RecognitionException {
1827
1828 int stackSize = keepStackSize();
1829
1830 try {
1831 // InternalProblem.g:592:1: ( ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0 ) ) | ( ( rule__ClassDeclaration__Group_3_0_1_1__0 ) ) )
1832 int alt4=2;
1833 int LA4_0 = input.LA(1);
1834
1835 if ( (LA4_0==RULE_ID) ) {
1836 alt4=1;
1837 }
1838 else if ( (LA4_0==23) ) {
1839 alt4=2;
1840 }
1841 else {
1842 NoViableAltException nvae =
1843 new NoViableAltException("", 4, 0, input);
1844
1845 throw nvae;
1846 }
1847 switch (alt4) {
1848 case 1 :
1849 // InternalProblem.g:593:2: ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0 ) )
1850 {
1851 // InternalProblem.g:593:2: ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0 ) )
1852 // InternalProblem.g:594:3: ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0 )
1853 {
1854 before(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_0());
1855 // InternalProblem.g:595:3: ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0 )
1856 // InternalProblem.g:595:4: rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0
1857 {
1858 pushFollow(FOLLOW_2);
1859 rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0();
1860
1861 state._fsp--;
1862
1863
1864 }
1865
1866 after(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_0());
1867
1868 }
1869
1870
1871 }
1872 break;
1873 case 2 :
1874 // InternalProblem.g:599:2: ( ( rule__ClassDeclaration__Group_3_0_1_1__0 ) )
1875 {
1876 // InternalProblem.g:599:2: ( ( rule__ClassDeclaration__Group_3_0_1_1__0 ) )
1877 // InternalProblem.g:600:3: ( rule__ClassDeclaration__Group_3_0_1_1__0 )
1878 {
1879 before(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1());
1880 // InternalProblem.g:601:3: ( rule__ClassDeclaration__Group_3_0_1_1__0 )
1881 // InternalProblem.g:601:4: rule__ClassDeclaration__Group_3_0_1_1__0
1882 {
1883 pushFollow(FOLLOW_2);
1884 rule__ClassDeclaration__Group_3_0_1_1__0();
1885
1886 state._fsp--;
1887
1888
1889 }
1890
1891 after(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1());
1892
1893 }
1894
1895
1896 }
1897 break;
1898
1899 }
1900 }
1901 catch (RecognitionException re) {
1902 reportError(re);
1903 recover(input,re);
1904 }
1905 finally {
1906
1907 restoreStackSize(stackSize);
1908
1909 }
1910 return ;
1911 }
1912 // $ANTLR end "rule__ClassDeclaration__Alternatives_3_0_1"
1913
1914
1915 // $ANTLR start "rule__ReferenceDeclaration__Alternatives_0"
1916 // InternalProblem.g:609:1: rule__ReferenceDeclaration__Alternatives_0 : ( ( ( rule__ReferenceDeclaration__ContainmentAssignment_0_0 ) ) | ( 'refers' ) );
1917 public final void rule__ReferenceDeclaration__Alternatives_0() throws RecognitionException {
1918
1919 int stackSize = keepStackSize();
1920
1921 try {
1922 // InternalProblem.g:613:1: ( ( ( rule__ReferenceDeclaration__ContainmentAssignment_0_0 ) ) | ( 'refers' ) )
1923 int alt5=2;
1924 int LA5_0 = input.LA(1);
1925
1926 if ( (LA5_0==36) ) {
1927 alt5=1;
1928 }
1929 else if ( (LA5_0==11) ) {
1930 alt5=2;
1931 }
1932 else {
1933 NoViableAltException nvae =
1934 new NoViableAltException("", 5, 0, input);
1935
1936 throw nvae;
1937 }
1938 switch (alt5) {
1939 case 1 :
1940 // InternalProblem.g:614:2: ( ( rule__ReferenceDeclaration__ContainmentAssignment_0_0 ) )
1941 {
1942 // InternalProblem.g:614:2: ( ( rule__ReferenceDeclaration__ContainmentAssignment_0_0 ) )
1943 // InternalProblem.g:615:3: ( rule__ReferenceDeclaration__ContainmentAssignment_0_0 )
1944 {
1945 before(grammarAccess.getReferenceDeclarationAccess().getContainmentAssignment_0_0());
1946 // InternalProblem.g:616:3: ( rule__ReferenceDeclaration__ContainmentAssignment_0_0 )
1947 // InternalProblem.g:616:4: rule__ReferenceDeclaration__ContainmentAssignment_0_0
1948 {
1949 pushFollow(FOLLOW_2);
1950 rule__ReferenceDeclaration__ContainmentAssignment_0_0();
1951
1952 state._fsp--;
1953
1954
1955 }
1956
1957 after(grammarAccess.getReferenceDeclarationAccess().getContainmentAssignment_0_0());
1958
1959 }
1960
1961
1962 }
1963 break;
1964 case 2 :
1965 // InternalProblem.g:620:2: ( 'refers' )
1966 {
1967 // InternalProblem.g:620:2: ( 'refers' )
1968 // InternalProblem.g:621:3: 'refers'
1969 {
1970 before(grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
1971 match(input,11,FOLLOW_2);
1972 after(grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
1973
1974 }
1975
1976
1977 }
1978 break;
1979
1980 }
1981 }
1982 catch (RecognitionException re) {
1983 reportError(re);
1984 recover(input,re);
1985 }
1986 finally {
1987
1988 restoreStackSize(stackSize);
1989
1990 }
1991 return ;
1992 }
1993 // $ANTLR end "rule__ReferenceDeclaration__Alternatives_0"
1994
1995
1996 // $ANTLR start "rule__PredicateDefinition__Alternatives_0"
1997 // InternalProblem.g:630:1: rule__PredicateDefinition__Alternatives_0 : ( ( ( rule__PredicateDefinition__Group_0_0__0 ) ) | ( 'pred' ) );
1998 public final void rule__PredicateDefinition__Alternatives_0() throws RecognitionException {
1999
2000 int stackSize = keepStackSize();
2001
2002 try {
2003 // InternalProblem.g:634:1: ( ( ( rule__PredicateDefinition__Group_0_0__0 ) ) | ( 'pred' ) )
2004 int alt6=2;
2005 int LA6_0 = input.LA(1);
2006
2007 if ( (LA6_0==37) ) {
2008 alt6=1;
2009 }
2010 else if ( (LA6_0==12) ) {
2011 alt6=2;
2012 }
2013 else {
2014 NoViableAltException nvae =
2015 new NoViableAltException("", 6, 0, input);
2016
2017 throw nvae;
2018 }
2019 switch (alt6) {
2020 case 1 :
2021 // InternalProblem.g:635:2: ( ( rule__PredicateDefinition__Group_0_0__0 ) )
2022 {
2023 // InternalProblem.g:635:2: ( ( rule__PredicateDefinition__Group_0_0__0 ) )
2024 // InternalProblem.g:636:3: ( rule__PredicateDefinition__Group_0_0__0 )
2025 {
2026 before(grammarAccess.getPredicateDefinitionAccess().getGroup_0_0());
2027 // InternalProblem.g:637:3: ( rule__PredicateDefinition__Group_0_0__0 )
2028 // InternalProblem.g:637:4: rule__PredicateDefinition__Group_0_0__0
2029 {
2030 pushFollow(FOLLOW_2);
2031 rule__PredicateDefinition__Group_0_0__0();
2032
2033 state._fsp--;
2034
2035
2036 }
2037
2038 after(grammarAccess.getPredicateDefinitionAccess().getGroup_0_0());
2039
2040 }
2041
2042
2043 }
2044 break;
2045 case 2 :
2046 // InternalProblem.g:641:2: ( 'pred' )
2047 {
2048 // InternalProblem.g:641:2: ( 'pred' )
2049 // InternalProblem.g:642:3: 'pred'
2050 {
2051 before(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
2052 match(input,12,FOLLOW_2);
2053 after(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
2054
2055 }
2056
2057
2058 }
2059 break;
2060
2061 }
2062 }
2063 catch (RecognitionException re) {
2064 reportError(re);
2065 recover(input,re);
2066 }
2067 finally {
2068
2069 restoreStackSize(stackSize);
2070
2071 }
2072 return ;
2073 }
2074 // $ANTLR end "rule__PredicateDefinition__Alternatives_0"
2075
2076
2077 // $ANTLR start "rule__Literal__Alternatives"
2078 // InternalProblem.g:651:1: rule__Literal__Alternatives : ( ( ruleAtom ) | ( ruleNegativeLiteral ) );
2079 public final void rule__Literal__Alternatives() throws RecognitionException {
2080
2081 int stackSize = keepStackSize();
2082
2083 try {
2084 // InternalProblem.g:655:1: ( ( ruleAtom ) | ( ruleNegativeLiteral ) )
2085 int alt7=2;
2086 int LA7_0 = input.LA(1);
2087
2088 if ( (LA7_0==RULE_ID) ) {
2089 alt7=1;
2090 }
2091 else if ( (LA7_0==18) ) {
2092 alt7=2;
2093 }
2094 else {
2095 NoViableAltException nvae =
2096 new NoViableAltException("", 7, 0, input);
2097
2098 throw nvae;
2099 }
2100 switch (alt7) {
2101 case 1 :
2102 // InternalProblem.g:656:2: ( ruleAtom )
2103 {
2104 // InternalProblem.g:656:2: ( ruleAtom )
2105 // InternalProblem.g:657:3: ruleAtom
2106 {
2107 before(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
2108 pushFollow(FOLLOW_2);
2109 ruleAtom();
2110
2111 state._fsp--;
2112
2113 after(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
2114
2115 }
2116
2117
2118 }
2119 break;
2120 case 2 :
2121 // InternalProblem.g:662:2: ( ruleNegativeLiteral )
2122 {
2123 // InternalProblem.g:662:2: ( ruleNegativeLiteral )
2124 // InternalProblem.g:663:3: ruleNegativeLiteral
2125 {
2126 before(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
2127 pushFollow(FOLLOW_2);
2128 ruleNegativeLiteral();
2129
2130 state._fsp--;
2131
2132 after(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
2133
2134 }
2135
2136
2137 }
2138 break;
2139
2140 }
2141 }
2142 catch (RecognitionException re) {
2143 reportError(re);
2144 recover(input,re);
2145 }
2146 finally {
2147
2148 restoreStackSize(stackSize);
2149
2150 }
2151 return ;
2152 }
2153 // $ANTLR end "rule__Literal__Alternatives"
2154
2155
2156 // $ANTLR start "rule__Assertion__Alternatives_0"
2157 // InternalProblem.g:672:1: rule__Assertion__Alternatives_0 : ( ( ( rule__Assertion__Group_0_0__0 ) ) | ( ( rule__Assertion__Group_0_1__0 ) ) );
2158 public final void rule__Assertion__Alternatives_0() throws RecognitionException {
2159
2160 int stackSize = keepStackSize();
2161
2162 try {
2163 // InternalProblem.g:676:1: ( ( ( rule__Assertion__Group_0_0__0 ) ) | ( ( rule__Assertion__Group_0_1__0 ) ) )
2164 int alt8=2;
2165 alt8 = dfa8.predict(input);
2166 switch (alt8) {
2167 case 1 :
2168 // InternalProblem.g:677:2: ( ( rule__Assertion__Group_0_0__0 ) )
2169 {
2170 // InternalProblem.g:677:2: ( ( rule__Assertion__Group_0_0__0 ) )
2171 // InternalProblem.g:678:3: ( rule__Assertion__Group_0_0__0 )
2172 {
2173 before(grammarAccess.getAssertionAccess().getGroup_0_0());
2174 // InternalProblem.g:679:3: ( rule__Assertion__Group_0_0__0 )
2175 // InternalProblem.g:679:4: rule__Assertion__Group_0_0__0
2176 {
2177 pushFollow(FOLLOW_2);
2178 rule__Assertion__Group_0_0__0();
2179
2180 state._fsp--;
2181
2182
2183 }
2184
2185 after(grammarAccess.getAssertionAccess().getGroup_0_0());
2186
2187 }
2188
2189
2190 }
2191 break;
2192 case 2 :
2193 // InternalProblem.g:683:2: ( ( rule__Assertion__Group_0_1__0 ) )
2194 {
2195 // InternalProblem.g:683:2: ( ( rule__Assertion__Group_0_1__0 ) )
2196 // InternalProblem.g:684:3: ( rule__Assertion__Group_0_1__0 )
2197 {
2198 before(grammarAccess.getAssertionAccess().getGroup_0_1());
2199 // InternalProblem.g:685:3: ( rule__Assertion__Group_0_1__0 )
2200 // InternalProblem.g:685:4: rule__Assertion__Group_0_1__0
2201 {
2202 pushFollow(FOLLOW_2);
2203 rule__Assertion__Group_0_1__0();
2204
2205 state._fsp--;
2206
2207
2208 }
2209
2210 after(grammarAccess.getAssertionAccess().getGroup_0_1());
2211
2212 }
2213
2214
2215 }
2216 break;
2217
2218 }
2219 }
2220 catch (RecognitionException re) {
2221 reportError(re);
2222 recover(input,re);
2223 }
2224 finally {
2225
2226 restoreStackSize(stackSize);
2227
2228 }
2229 return ;
2230 }
2231 // $ANTLR end "rule__Assertion__Alternatives_0"
2232
2233
2234 // $ANTLR start "rule__TypeScope__Alternatives_1"
2235 // InternalProblem.g:693:1: rule__TypeScope__Alternatives_1 : ( ( ( rule__TypeScope__IncrementAssignment_1_0 ) ) | ( '=' ) );
2236 public final void rule__TypeScope__Alternatives_1() throws RecognitionException {
2237
2238 int stackSize = keepStackSize();
2239
2240 try {
2241 // InternalProblem.g:697:1: ( ( ( rule__TypeScope__IncrementAssignment_1_0 ) ) | ( '=' ) )
2242 int alt9=2;
2243 int LA9_0 = input.LA(1);
2244
2245 if ( (LA9_0==39) ) {
2246 alt9=1;
2247 }
2248 else if ( (LA9_0==13) ) {
2249 alt9=2;
2250 }
2251 else {
2252 NoViableAltException nvae =
2253 new NoViableAltException("", 9, 0, input);
2254
2255 throw nvae;
2256 }
2257 switch (alt9) {
2258 case 1 :
2259 // InternalProblem.g:698:2: ( ( rule__TypeScope__IncrementAssignment_1_0 ) )
2260 {
2261 // InternalProblem.g:698:2: ( ( rule__TypeScope__IncrementAssignment_1_0 ) )
2262 // InternalProblem.g:699:3: ( rule__TypeScope__IncrementAssignment_1_0 )
2263 {
2264 before(grammarAccess.getTypeScopeAccess().getIncrementAssignment_1_0());
2265 // InternalProblem.g:700:3: ( rule__TypeScope__IncrementAssignment_1_0 )
2266 // InternalProblem.g:700:4: rule__TypeScope__IncrementAssignment_1_0
2267 {
2268 pushFollow(FOLLOW_2);
2269 rule__TypeScope__IncrementAssignment_1_0();
2270
2271 state._fsp--;
2272
2273
2274 }
2275
2276 after(grammarAccess.getTypeScopeAccess().getIncrementAssignment_1_0());
2277
2278 }
2279
2280
2281 }
2282 break;
2283 case 2 :
2284 // InternalProblem.g:704:2: ( '=' )
2285 {
2286 // InternalProblem.g:704:2: ( '=' )
2287 // InternalProblem.g:705:3: '='
2288 {
2289 before(grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
2290 match(input,13,FOLLOW_2);
2291 after(grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
2292
2293 }
2294
2295
2296 }
2297 break;
2298
2299 }
2300 }
2301 catch (RecognitionException re) {
2302 reportError(re);
2303 recover(input,re);
2304 }
2305 finally {
2306
2307 restoreStackSize(stackSize);
2308
2309 }
2310 return ;
2311 }
2312 // $ANTLR end "rule__TypeScope__Alternatives_1"
2313
2314
2315 // $ANTLR start "rule__Multiplicity__Alternatives"
2316 // InternalProblem.g:714:1: rule__Multiplicity__Alternatives : ( ( ruleRangeMultiplicity ) | ( ruleExactMultiplicity ) );
2317 public final void rule__Multiplicity__Alternatives() throws RecognitionException {
2318
2319 int stackSize = keepStackSize();
2320
2321 try {
2322 // InternalProblem.g:718:1: ( ( ruleRangeMultiplicity ) | ( ruleExactMultiplicity ) )
2323 int alt10=2;
2324 int LA10_0 = input.LA(1);
2325
2326 if ( (LA10_0==RULE_INT) ) {
2327 int LA10_1 = input.LA(2);
2328
2329 if ( (LA10_1==33) ) {
2330 alt10=1;
2331 }
2332 else if ( (LA10_1==EOF||LA10_1==21||(LA10_1>=24 && LA10_1<=25)) ) {
2333 alt10=2;
2334 }
2335 else {
2336 NoViableAltException nvae =
2337 new NoViableAltException("", 10, 1, input);
2338
2339 throw nvae;
2340 }
2341 }
2342 else {
2343 NoViableAltException nvae =
2344 new NoViableAltException("", 10, 0, input);
2345
2346 throw nvae;
2347 }
2348 switch (alt10) {
2349 case 1 :
2350 // InternalProblem.g:719:2: ( ruleRangeMultiplicity )
2351 {
2352 // InternalProblem.g:719:2: ( ruleRangeMultiplicity )
2353 // InternalProblem.g:720:3: ruleRangeMultiplicity
2354 {
2355 before(grammarAccess.getMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
2356 pushFollow(FOLLOW_2);
2357 ruleRangeMultiplicity();
2358
2359 state._fsp--;
2360
2361 after(grammarAccess.getMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
2362
2363 }
2364
2365
2366 }
2367 break;
2368 case 2 :
2369 // InternalProblem.g:725:2: ( ruleExactMultiplicity )
2370 {
2371 // InternalProblem.g:725:2: ( ruleExactMultiplicity )
2372 // InternalProblem.g:726:3: ruleExactMultiplicity
2373 {
2374 before(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
2375 pushFollow(FOLLOW_2);
2376 ruleExactMultiplicity();
2377
2378 state._fsp--;
2379
2380 after(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
2381
2382 }
2383
2384
2385 }
2386 break;
2387
2388 }
2389 }
2390 catch (RecognitionException re) {
2391 reportError(re);
2392 recover(input,re);
2393 }
2394 finally {
2395
2396 restoreStackSize(stackSize);
2397
2398 }
2399 return ;
2400 }
2401 // $ANTLR end "rule__Multiplicity__Alternatives"
2402
2403
2404 // $ANTLR start "rule__UpperBound__Alternatives"
2405 // InternalProblem.g:735:1: rule__UpperBound__Alternatives : ( ( RULE_INT ) | ( '*' ) );
2406 public final void rule__UpperBound__Alternatives() throws RecognitionException {
2407
2408 int stackSize = keepStackSize();
2409
2410 try {
2411 // InternalProblem.g:739:1: ( ( RULE_INT ) | ( '*' ) )
2412 int alt11=2;
2413 int LA11_0 = input.LA(1);
2414
2415 if ( (LA11_0==RULE_INT) ) {
2416 alt11=1;
2417 }
2418 else if ( (LA11_0==14) ) {
2419 alt11=2;
2420 }
2421 else {
2422 NoViableAltException nvae =
2423 new NoViableAltException("", 11, 0, input);
2424
2425 throw nvae;
2426 }
2427 switch (alt11) {
2428 case 1 :
2429 // InternalProblem.g:740:2: ( RULE_INT )
2430 {
2431 // InternalProblem.g:740:2: ( RULE_INT )
2432 // InternalProblem.g:741:3: RULE_INT
2433 {
2434 before(grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
2435 match(input,RULE_INT,FOLLOW_2);
2436 after(grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
2437
2438 }
2439
2440
2441 }
2442 break;
2443 case 2 :
2444 // InternalProblem.g:746:2: ( '*' )
2445 {
2446 // InternalProblem.g:746:2: ( '*' )
2447 // InternalProblem.g:747:3: '*'
2448 {
2449 before(grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
2450 match(input,14,FOLLOW_2);
2451 after(grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
2452
2453 }
2454
2455
2456 }
2457 break;
2458
2459 }
2460 }
2461 catch (RecognitionException re) {
2462 reportError(re);
2463 recover(input,re);
2464 }
2465 finally {
2466
2467 restoreStackSize(stackSize);
2468
2469 }
2470 return ;
2471 }
2472 // $ANTLR end "rule__UpperBound__Alternatives"
2473
2474
2475 // $ANTLR start "rule__LogicValue__Alternatives"
2476 // InternalProblem.g:756:1: rule__LogicValue__Alternatives : ( ( ( 'true' ) ) | ( ( 'false' ) ) | ( ( 'unknown' ) ) );
2477 public final void rule__LogicValue__Alternatives() throws RecognitionException {
2478
2479 int stackSize = keepStackSize();
2480
2481 try {
2482 // InternalProblem.g:760:1: ( ( ( 'true' ) ) | ( ( 'false' ) ) | ( ( 'unknown' ) ) )
2483 int alt12=3;
2484 switch ( input.LA(1) ) {
2485 case 15:
2486 {
2487 alt12=1;
2488 }
2489 break;
2490 case 16:
2491 {
2492 alt12=2;
2493 }
2494 break;
2495 case 17:
2496 {
2497 alt12=3;
2498 }
2499 break;
2500 default:
2501 NoViableAltException nvae =
2502 new NoViableAltException("", 12, 0, input);
2503
2504 throw nvae;
2505 }
2506
2507 switch (alt12) {
2508 case 1 :
2509 // InternalProblem.g:761:2: ( ( 'true' ) )
2510 {
2511 // InternalProblem.g:761:2: ( ( 'true' ) )
2512 // InternalProblem.g:762:3: ( 'true' )
2513 {
2514 before(grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
2515 // InternalProblem.g:763:3: ( 'true' )
2516 // InternalProblem.g:763:4: 'true'
2517 {
2518 match(input,15,FOLLOW_2);
2519
2520 }
2521
2522 after(grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
2523
2524 }
2525
2526
2527 }
2528 break;
2529 case 2 :
2530 // InternalProblem.g:767:2: ( ( 'false' ) )
2531 {
2532 // InternalProblem.g:767:2: ( ( 'false' ) )
2533 // InternalProblem.g:768:3: ( 'false' )
2534 {
2535 before(grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
2536 // InternalProblem.g:769:3: ( 'false' )
2537 // InternalProblem.g:769:4: 'false'
2538 {
2539 match(input,16,FOLLOW_2);
2540
2541 }
2542
2543 after(grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
2544
2545 }
2546
2547
2548 }
2549 break;
2550 case 3 :
2551 // InternalProblem.g:773:2: ( ( 'unknown' ) )
2552 {
2553 // InternalProblem.g:773:2: ( ( 'unknown' ) )
2554 // InternalProblem.g:774:3: ( 'unknown' )
2555 {
2556 before(grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
2557 // InternalProblem.g:775:3: ( 'unknown' )
2558 // InternalProblem.g:775:4: 'unknown'
2559 {
2560 match(input,17,FOLLOW_2);
2561
2562 }
2563
2564 after(grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
2565
2566 }
2567
2568
2569 }
2570 break;
2571
2572 }
2573 }
2574 catch (RecognitionException re) {
2575 reportError(re);
2576 recover(input,re);
2577 }
2578 finally {
2579
2580 restoreStackSize(stackSize);
2581
2582 }
2583 return ;
2584 }
2585 // $ANTLR end "rule__LogicValue__Alternatives"
2586
2587
2588 // $ANTLR start "rule__ShortLogicValue__Alternatives"
2589 // InternalProblem.g:783:1: rule__ShortLogicValue__Alternatives : ( ( ( '!' ) ) | ( ( '?' ) ) );
2590 public final void rule__ShortLogicValue__Alternatives() throws RecognitionException {
2591
2592 int stackSize = keepStackSize();
2593
2594 try {
2595 // InternalProblem.g:787:1: ( ( ( '!' ) ) | ( ( '?' ) ) )
2596 int alt13=2;
2597 int LA13_0 = input.LA(1);
2598
2599 if ( (LA13_0==18) ) {
2600 alt13=1;
2601 }
2602 else if ( (LA13_0==19) ) {
2603 alt13=2;
2604 }
2605 else {
2606 NoViableAltException nvae =
2607 new NoViableAltException("", 13, 0, input);
2608
2609 throw nvae;
2610 }
2611 switch (alt13) {
2612 case 1 :
2613 // InternalProblem.g:788:2: ( ( '!' ) )
2614 {
2615 // InternalProblem.g:788:2: ( ( '!' ) )
2616 // InternalProblem.g:789:3: ( '!' )
2617 {
2618 before(grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
2619 // InternalProblem.g:790:3: ( '!' )
2620 // InternalProblem.g:790:4: '!'
2621 {
2622 match(input,18,FOLLOW_2);
2623
2624 }
2625
2626 after(grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
2627
2628 }
2629
2630
2631 }
2632 break;
2633 case 2 :
2634 // InternalProblem.g:794:2: ( ( '?' ) )
2635 {
2636 // InternalProblem.g:794:2: ( ( '?' ) )
2637 // InternalProblem.g:795:3: ( '?' )
2638 {
2639 before(grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
2640 // InternalProblem.g:796:3: ( '?' )
2641 // InternalProblem.g:796:4: '?'
2642 {
2643 match(input,19,FOLLOW_2);
2644
2645 }
2646
2647 after(grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
2648
2649 }
2650
2651
2652 }
2653 break;
2654
2655 }
2656 }
2657 catch (RecognitionException re) {
2658 reportError(re);
2659 recover(input,re);
2660 }
2661 finally {
2662
2663 restoreStackSize(stackSize);
2664
2665 }
2666 return ;
2667 }
2668 // $ANTLR end "rule__ShortLogicValue__Alternatives"
2669
2670
2671 // $ANTLR start "rule__ClassDeclaration__Group__0"
2672 // InternalProblem.g:804:1: rule__ClassDeclaration__Group__0 : rule__ClassDeclaration__Group__0__Impl rule__ClassDeclaration__Group__1 ;
2673 public final void rule__ClassDeclaration__Group__0() throws RecognitionException {
2674
2675 int stackSize = keepStackSize();
2676
2677 try {
2678 // InternalProblem.g:808:1: ( rule__ClassDeclaration__Group__0__Impl rule__ClassDeclaration__Group__1 )
2679 // InternalProblem.g:809:2: rule__ClassDeclaration__Group__0__Impl rule__ClassDeclaration__Group__1
2680 {
2681 pushFollow(FOLLOW_4);
2682 rule__ClassDeclaration__Group__0__Impl();
2683
2684 state._fsp--;
2685
2686 pushFollow(FOLLOW_2);
2687 rule__ClassDeclaration__Group__1();
2688
2689 state._fsp--;
2690
2691
2692 }
2693
2694 }
2695 catch (RecognitionException re) {
2696 reportError(re);
2697 recover(input,re);
2698 }
2699 finally {
2700
2701 restoreStackSize(stackSize);
2702
2703 }
2704 return ;
2705 }
2706 // $ANTLR end "rule__ClassDeclaration__Group__0"
2707
2708
2709 // $ANTLR start "rule__ClassDeclaration__Group__0__Impl"
2710 // InternalProblem.g:816:1: rule__ClassDeclaration__Group__0__Impl : ( ( rule__ClassDeclaration__AbstractAssignment_0 )? ) ;
2711 public final void rule__ClassDeclaration__Group__0__Impl() throws RecognitionException {
2712
2713 int stackSize = keepStackSize();
2714
2715 try {
2716 // InternalProblem.g:820:1: ( ( ( rule__ClassDeclaration__AbstractAssignment_0 )? ) )
2717 // InternalProblem.g:821:1: ( ( rule__ClassDeclaration__AbstractAssignment_0 )? )
2718 {
2719 // InternalProblem.g:821:1: ( ( rule__ClassDeclaration__AbstractAssignment_0 )? )
2720 // InternalProblem.g:822:2: ( rule__ClassDeclaration__AbstractAssignment_0 )?
2721 {
2722 before(grammarAccess.getClassDeclarationAccess().getAbstractAssignment_0());
2723 // InternalProblem.g:823:2: ( rule__ClassDeclaration__AbstractAssignment_0 )?
2724 int alt14=2;
2725 int LA14_0 = input.LA(1);
2726
2727 if ( (LA14_0==35) ) {
2728 alt14=1;
2729 }
2730 switch (alt14) {
2731 case 1 :
2732 // InternalProblem.g:823:3: rule__ClassDeclaration__AbstractAssignment_0
2733 {
2734 pushFollow(FOLLOW_2);
2735 rule__ClassDeclaration__AbstractAssignment_0();
2736
2737 state._fsp--;
2738
2739
2740 }
2741 break;
2742
2743 }
2744
2745 after(grammarAccess.getClassDeclarationAccess().getAbstractAssignment_0());
2746
2747 }
2748
2749
2750 }
2751
2752 }
2753 catch (RecognitionException re) {
2754 reportError(re);
2755 recover(input,re);
2756 }
2757 finally {
2758
2759 restoreStackSize(stackSize);
2760
2761 }
2762 return ;
2763 }
2764 // $ANTLR end "rule__ClassDeclaration__Group__0__Impl"
2765
2766
2767 // $ANTLR start "rule__ClassDeclaration__Group__1"
2768 // InternalProblem.g:831:1: rule__ClassDeclaration__Group__1 : rule__ClassDeclaration__Group__1__Impl rule__ClassDeclaration__Group__2 ;
2769 public final void rule__ClassDeclaration__Group__1() throws RecognitionException {
2770
2771 int stackSize = keepStackSize();
2772
2773 try {
2774 // InternalProblem.g:835:1: ( rule__ClassDeclaration__Group__1__Impl rule__ClassDeclaration__Group__2 )
2775 // InternalProblem.g:836:2: rule__ClassDeclaration__Group__1__Impl rule__ClassDeclaration__Group__2
2776 {
2777 pushFollow(FOLLOW_5);
2778 rule__ClassDeclaration__Group__1__Impl();
2779
2780 state._fsp--;
2781
2782 pushFollow(FOLLOW_2);
2783 rule__ClassDeclaration__Group__2();
2784
2785 state._fsp--;
2786
2787
2788 }
2789
2790 }
2791 catch (RecognitionException re) {
2792 reportError(re);
2793 recover(input,re);
2794 }
2795 finally {
2796
2797 restoreStackSize(stackSize);
2798
2799 }
2800 return ;
2801 }
2802 // $ANTLR end "rule__ClassDeclaration__Group__1"
2803
2804
2805 // $ANTLR start "rule__ClassDeclaration__Group__1__Impl"
2806 // InternalProblem.g:843:1: rule__ClassDeclaration__Group__1__Impl : ( 'class' ) ;
2807 public final void rule__ClassDeclaration__Group__1__Impl() throws RecognitionException {
2808
2809 int stackSize = keepStackSize();
2810
2811 try {
2812 // InternalProblem.g:847:1: ( ( 'class' ) )
2813 // InternalProblem.g:848:1: ( 'class' )
2814 {
2815 // InternalProblem.g:848:1: ( 'class' )
2816 // InternalProblem.g:849:2: 'class'
2817 {
2818 before(grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
2819 match(input,20,FOLLOW_2);
2820 after(grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
2821
2822 }
2823
2824
2825 }
2826
2827 }
2828 catch (RecognitionException re) {
2829 reportError(re);
2830 recover(input,re);
2831 }
2832 finally {
2833
2834 restoreStackSize(stackSize);
2835
2836 }
2837 return ;
2838 }
2839 // $ANTLR end "rule__ClassDeclaration__Group__1__Impl"
2840
2841
2842 // $ANTLR start "rule__ClassDeclaration__Group__2"
2843 // InternalProblem.g:858:1: rule__ClassDeclaration__Group__2 : rule__ClassDeclaration__Group__2__Impl rule__ClassDeclaration__Group__3 ;
2844 public final void rule__ClassDeclaration__Group__2() throws RecognitionException {
2845
2846 int stackSize = keepStackSize();
2847
2848 try {
2849 // InternalProblem.g:862:1: ( rule__ClassDeclaration__Group__2__Impl rule__ClassDeclaration__Group__3 )
2850 // InternalProblem.g:863:2: rule__ClassDeclaration__Group__2__Impl rule__ClassDeclaration__Group__3
2851 {
2852 pushFollow(FOLLOW_6);
2853 rule__ClassDeclaration__Group__2__Impl();
2854
2855 state._fsp--;
2856
2857 pushFollow(FOLLOW_2);
2858 rule__ClassDeclaration__Group__3();
2859
2860 state._fsp--;
2861
2862
2863 }
2864
2865 }
2866 catch (RecognitionException re) {
2867 reportError(re);
2868 recover(input,re);
2869 }
2870 finally {
2871
2872 restoreStackSize(stackSize);
2873
2874 }
2875 return ;
2876 }
2877 // $ANTLR end "rule__ClassDeclaration__Group__2"
2878
2879
2880 // $ANTLR start "rule__ClassDeclaration__Group__2__Impl"
2881 // InternalProblem.g:870:1: rule__ClassDeclaration__Group__2__Impl : ( ( rule__ClassDeclaration__NameAssignment_2 ) ) ;
2882 public final void rule__ClassDeclaration__Group__2__Impl() throws RecognitionException {
2883
2884 int stackSize = keepStackSize();
2885
2886 try {
2887 // InternalProblem.g:874:1: ( ( ( rule__ClassDeclaration__NameAssignment_2 ) ) )
2888 // InternalProblem.g:875:1: ( ( rule__ClassDeclaration__NameAssignment_2 ) )
2889 {
2890 // InternalProblem.g:875:1: ( ( rule__ClassDeclaration__NameAssignment_2 ) )
2891 // InternalProblem.g:876:2: ( rule__ClassDeclaration__NameAssignment_2 )
2892 {
2893 before(grammarAccess.getClassDeclarationAccess().getNameAssignment_2());
2894 // InternalProblem.g:877:2: ( rule__ClassDeclaration__NameAssignment_2 )
2895 // InternalProblem.g:877:3: rule__ClassDeclaration__NameAssignment_2
2896 {
2897 pushFollow(FOLLOW_2);
2898 rule__ClassDeclaration__NameAssignment_2();
2899
2900 state._fsp--;
2901
2902
2903 }
2904
2905 after(grammarAccess.getClassDeclarationAccess().getNameAssignment_2());
2906
2907 }
2908
2909
2910 }
2911
2912 }
2913 catch (RecognitionException re) {
2914 reportError(re);
2915 recover(input,re);
2916 }
2917 finally {
2918
2919 restoreStackSize(stackSize);
2920
2921 }
2922 return ;
2923 }
2924 // $ANTLR end "rule__ClassDeclaration__Group__2__Impl"
2925
2926
2927 // $ANTLR start "rule__ClassDeclaration__Group__3"
2928 // InternalProblem.g:885:1: rule__ClassDeclaration__Group__3 : rule__ClassDeclaration__Group__3__Impl rule__ClassDeclaration__Group__4 ;
2929 public final void rule__ClassDeclaration__Group__3() throws RecognitionException {
2930
2931 int stackSize = keepStackSize();
2932
2933 try {
2934 // InternalProblem.g:889:1: ( rule__ClassDeclaration__Group__3__Impl rule__ClassDeclaration__Group__4 )
2935 // InternalProblem.g:890:2: rule__ClassDeclaration__Group__3__Impl rule__ClassDeclaration__Group__4
2936 {
2937 pushFollow(FOLLOW_6);
2938 rule__ClassDeclaration__Group__3__Impl();
2939
2940 state._fsp--;
2941
2942 pushFollow(FOLLOW_2);
2943 rule__ClassDeclaration__Group__4();
2944
2945 state._fsp--;
2946
2947
2948 }
2949
2950 }
2951 catch (RecognitionException re) {
2952 reportError(re);
2953 recover(input,re);
2954 }
2955 finally {
2956
2957 restoreStackSize(stackSize);
2958
2959 }
2960 return ;
2961 }
2962 // $ANTLR end "rule__ClassDeclaration__Group__3"
2963
2964
2965 // $ANTLR start "rule__ClassDeclaration__Group__3__Impl"
2966 // InternalProblem.g:897:1: rule__ClassDeclaration__Group__3__Impl : ( ( rule__ClassDeclaration__Alternatives_3 )? ) ;
2967 public final void rule__ClassDeclaration__Group__3__Impl() throws RecognitionException {
2968
2969 int stackSize = keepStackSize();
2970
2971 try {
2972 // InternalProblem.g:901:1: ( ( ( rule__ClassDeclaration__Alternatives_3 )? ) )
2973 // InternalProblem.g:902:1: ( ( rule__ClassDeclaration__Alternatives_3 )? )
2974 {
2975 // InternalProblem.g:902:1: ( ( rule__ClassDeclaration__Alternatives_3 )? )
2976 // InternalProblem.g:903:2: ( rule__ClassDeclaration__Alternatives_3 )?
2977 {
2978 before(grammarAccess.getClassDeclarationAccess().getAlternatives_3());
2979 // InternalProblem.g:904:2: ( rule__ClassDeclaration__Alternatives_3 )?
2980 int alt15=2;
2981 int LA15_0 = input.LA(1);
2982
2983 if ( (LA15_0==11||LA15_0==22||LA15_0==36) ) {
2984 alt15=1;
2985 }
2986 switch (alt15) {
2987 case 1 :
2988 // InternalProblem.g:904:3: rule__ClassDeclaration__Alternatives_3
2989 {
2990 pushFollow(FOLLOW_2);
2991 rule__ClassDeclaration__Alternatives_3();
2992
2993 state._fsp--;
2994
2995
2996 }
2997 break;
2998
2999 }
3000
3001 after(grammarAccess.getClassDeclarationAccess().getAlternatives_3());
3002
3003 }
3004
3005
3006 }
3007
3008 }
3009 catch (RecognitionException re) {
3010 reportError(re);
3011 recover(input,re);
3012 }
3013 finally {
3014
3015 restoreStackSize(stackSize);
3016
3017 }
3018 return ;
3019 }
3020 // $ANTLR end "rule__ClassDeclaration__Group__3__Impl"
3021
3022
3023 // $ANTLR start "rule__ClassDeclaration__Group__4"
3024 // InternalProblem.g:912:1: rule__ClassDeclaration__Group__4 : rule__ClassDeclaration__Group__4__Impl rule__ClassDeclaration__Group__5 ;
3025 public final void rule__ClassDeclaration__Group__4() throws RecognitionException {
3026
3027 int stackSize = keepStackSize();
3028
3029 try {
3030 // InternalProblem.g:916:1: ( rule__ClassDeclaration__Group__4__Impl rule__ClassDeclaration__Group__5 )
3031 // InternalProblem.g:917:2: rule__ClassDeclaration__Group__4__Impl rule__ClassDeclaration__Group__5
3032 {
3033 pushFollow(FOLLOW_6);
3034 rule__ClassDeclaration__Group__4__Impl();
3035
3036 state._fsp--;
3037
3038 pushFollow(FOLLOW_2);
3039 rule__ClassDeclaration__Group__5();
3040
3041 state._fsp--;
3042
3043
3044 }
3045
3046 }
3047 catch (RecognitionException re) {
3048 reportError(re);
3049 recover(input,re);
3050 }
3051 finally {
3052
3053 restoreStackSize(stackSize);
3054
3055 }
3056 return ;
3057 }
3058 // $ANTLR end "rule__ClassDeclaration__Group__4"
3059
3060
3061 // $ANTLR start "rule__ClassDeclaration__Group__4__Impl"
3062 // InternalProblem.g:924:1: rule__ClassDeclaration__Group__4__Impl : ( ( rule__ClassDeclaration__Group_4__0 )* ) ;
3063 public final void rule__ClassDeclaration__Group__4__Impl() throws RecognitionException {
3064
3065 int stackSize = keepStackSize();
3066
3067 try {
3068 // InternalProblem.g:928:1: ( ( ( rule__ClassDeclaration__Group_4__0 )* ) )
3069 // InternalProblem.g:929:1: ( ( rule__ClassDeclaration__Group_4__0 )* )
3070 {
3071 // InternalProblem.g:929:1: ( ( rule__ClassDeclaration__Group_4__0 )* )
3072 // InternalProblem.g:930:2: ( rule__ClassDeclaration__Group_4__0 )*
3073 {
3074 before(grammarAccess.getClassDeclarationAccess().getGroup_4());
3075 // InternalProblem.g:931:2: ( rule__ClassDeclaration__Group_4__0 )*
3076 loop16:
3077 do {
3078 int alt16=2;
3079 int LA16_0 = input.LA(1);
3080
3081 if ( (LA16_0==25) ) {
3082 alt16=1;
3083 }
3084
3085
3086 switch (alt16) {
3087 case 1 :
3088 // InternalProblem.g:931:3: rule__ClassDeclaration__Group_4__0
3089 {
3090 pushFollow(FOLLOW_7);
3091 rule__ClassDeclaration__Group_4__0();
3092
3093 state._fsp--;
3094
3095
3096 }
3097 break;
3098
3099 default :
3100 break loop16;
3101 }
3102 } while (true);
3103
3104 after(grammarAccess.getClassDeclarationAccess().getGroup_4());
3105
3106 }
3107
3108
3109 }
3110
3111 }
3112 catch (RecognitionException re) {
3113 reportError(re);
3114 recover(input,re);
3115 }
3116 finally {
3117
3118 restoreStackSize(stackSize);
3119
3120 }
3121 return ;
3122 }
3123 // $ANTLR end "rule__ClassDeclaration__Group__4__Impl"
3124
3125
3126 // $ANTLR start "rule__ClassDeclaration__Group__5"
3127 // InternalProblem.g:939:1: rule__ClassDeclaration__Group__5 : rule__ClassDeclaration__Group__5__Impl ;
3128 public final void rule__ClassDeclaration__Group__5() throws RecognitionException {
3129
3130 int stackSize = keepStackSize();
3131
3132 try {
3133 // InternalProblem.g:943:1: ( rule__ClassDeclaration__Group__5__Impl )
3134 // InternalProblem.g:944:2: rule__ClassDeclaration__Group__5__Impl
3135 {
3136 pushFollow(FOLLOW_2);
3137 rule__ClassDeclaration__Group__5__Impl();
3138
3139 state._fsp--;
3140
3141
3142 }
3143
3144 }
3145 catch (RecognitionException re) {
3146 reportError(re);
3147 recover(input,re);
3148 }
3149 finally {
3150
3151 restoreStackSize(stackSize);
3152
3153 }
3154 return ;
3155 }
3156 // $ANTLR end "rule__ClassDeclaration__Group__5"
3157
3158
3159 // $ANTLR start "rule__ClassDeclaration__Group__5__Impl"
3160 // InternalProblem.g:950:1: rule__ClassDeclaration__Group__5__Impl : ( '.' ) ;
3161 public final void rule__ClassDeclaration__Group__5__Impl() throws RecognitionException {
3162
3163 int stackSize = keepStackSize();
3164
3165 try {
3166 // InternalProblem.g:954:1: ( ( '.' ) )
3167 // InternalProblem.g:955:1: ( '.' )
3168 {
3169 // InternalProblem.g:955:1: ( '.' )
3170 // InternalProblem.g:956:2: '.'
3171 {
3172 before(grammarAccess.getClassDeclarationAccess().getFullStopKeyword_5());
3173 match(input,21,FOLLOW_2);
3174 after(grammarAccess.getClassDeclarationAccess().getFullStopKeyword_5());
3175
3176 }
3177
3178
3179 }
3180
3181 }
3182 catch (RecognitionException re) {
3183 reportError(re);
3184 recover(input,re);
3185 }
3186 finally {
3187
3188 restoreStackSize(stackSize);
3189
3190 }
3191 return ;
3192 }
3193 // $ANTLR end "rule__ClassDeclaration__Group__5__Impl"
3194
3195
3196 // $ANTLR start "rule__ClassDeclaration__Group_3_0__0"
3197 // InternalProblem.g:966:1: rule__ClassDeclaration__Group_3_0__0 : rule__ClassDeclaration__Group_3_0__0__Impl rule__ClassDeclaration__Group_3_0__1 ;
3198 public final void rule__ClassDeclaration__Group_3_0__0() throws RecognitionException {
3199
3200 int stackSize = keepStackSize();
3201
3202 try {
3203 // InternalProblem.g:970:1: ( rule__ClassDeclaration__Group_3_0__0__Impl rule__ClassDeclaration__Group_3_0__1 )
3204 // InternalProblem.g:971:2: rule__ClassDeclaration__Group_3_0__0__Impl rule__ClassDeclaration__Group_3_0__1
3205 {
3206 pushFollow(FOLLOW_8);
3207 rule__ClassDeclaration__Group_3_0__0__Impl();
3208
3209 state._fsp--;
3210
3211 pushFollow(FOLLOW_2);
3212 rule__ClassDeclaration__Group_3_0__1();
3213
3214 state._fsp--;
3215
3216
3217 }
3218
3219 }
3220 catch (RecognitionException re) {
3221 reportError(re);
3222 recover(input,re);
3223 }
3224 finally {
3225
3226 restoreStackSize(stackSize);
3227
3228 }
3229 return ;
3230 }
3231 // $ANTLR end "rule__ClassDeclaration__Group_3_0__0"
3232
3233
3234 // $ANTLR start "rule__ClassDeclaration__Group_3_0__0__Impl"
3235 // InternalProblem.g:978:1: rule__ClassDeclaration__Group_3_0__0__Impl : ( 'extends' ) ;
3236 public final void rule__ClassDeclaration__Group_3_0__0__Impl() throws RecognitionException {
3237
3238 int stackSize = keepStackSize();
3239
3240 try {
3241 // InternalProblem.g:982:1: ( ( 'extends' ) )
3242 // InternalProblem.g:983:1: ( 'extends' )
3243 {
3244 // InternalProblem.g:983:1: ( 'extends' )
3245 // InternalProblem.g:984:2: 'extends'
3246 {
3247 before(grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0_0());
3248 match(input,22,FOLLOW_2);
3249 after(grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0_0());
3250
3251 }
3252
3253
3254 }
3255
3256 }
3257 catch (RecognitionException re) {
3258 reportError(re);
3259 recover(input,re);
3260 }
3261 finally {
3262
3263 restoreStackSize(stackSize);
3264
3265 }
3266 return ;
3267 }
3268 // $ANTLR end "rule__ClassDeclaration__Group_3_0__0__Impl"
3269
3270
3271 // $ANTLR start "rule__ClassDeclaration__Group_3_0__1"
3272 // InternalProblem.g:993:1: rule__ClassDeclaration__Group_3_0__1 : rule__ClassDeclaration__Group_3_0__1__Impl ;
3273 public final void rule__ClassDeclaration__Group_3_0__1() throws RecognitionException {
3274
3275 int stackSize = keepStackSize();
3276
3277 try {
3278 // InternalProblem.g:997:1: ( rule__ClassDeclaration__Group_3_0__1__Impl )
3279 // InternalProblem.g:998:2: rule__ClassDeclaration__Group_3_0__1__Impl
3280 {
3281 pushFollow(FOLLOW_2);
3282 rule__ClassDeclaration__Group_3_0__1__Impl();
3283
3284 state._fsp--;
3285
3286
3287 }
3288
3289 }
3290 catch (RecognitionException re) {
3291 reportError(re);
3292 recover(input,re);
3293 }
3294 finally {
3295
3296 restoreStackSize(stackSize);
3297
3298 }
3299 return ;
3300 }
3301 // $ANTLR end "rule__ClassDeclaration__Group_3_0__1"
3302
3303
3304 // $ANTLR start "rule__ClassDeclaration__Group_3_0__1__Impl"
3305 // InternalProblem.g:1004:1: rule__ClassDeclaration__Group_3_0__1__Impl : ( ( rule__ClassDeclaration__Alternatives_3_0_1 ) ) ;
3306 public final void rule__ClassDeclaration__Group_3_0__1__Impl() throws RecognitionException {
3307
3308 int stackSize = keepStackSize();
3309
3310 try {
3311 // InternalProblem.g:1008:1: ( ( ( rule__ClassDeclaration__Alternatives_3_0_1 ) ) )
3312 // InternalProblem.g:1009:1: ( ( rule__ClassDeclaration__Alternatives_3_0_1 ) )
3313 {
3314 // InternalProblem.g:1009:1: ( ( rule__ClassDeclaration__Alternatives_3_0_1 ) )
3315 // InternalProblem.g:1010:2: ( rule__ClassDeclaration__Alternatives_3_0_1 )
3316 {
3317 before(grammarAccess.getClassDeclarationAccess().getAlternatives_3_0_1());
3318 // InternalProblem.g:1011:2: ( rule__ClassDeclaration__Alternatives_3_0_1 )
3319 // InternalProblem.g:1011:3: rule__ClassDeclaration__Alternatives_3_0_1
3320 {
3321 pushFollow(FOLLOW_2);
3322 rule__ClassDeclaration__Alternatives_3_0_1();
3323
3324 state._fsp--;
3325
3326
3327 }
3328
3329 after(grammarAccess.getClassDeclarationAccess().getAlternatives_3_0_1());
3330
3331 }
3332
3333
3334 }
3335
3336 }
3337 catch (RecognitionException re) {
3338 reportError(re);
3339 recover(input,re);
3340 }
3341 finally {
3342
3343 restoreStackSize(stackSize);
3344
3345 }
3346 return ;
3347 }
3348 // $ANTLR end "rule__ClassDeclaration__Group_3_0__1__Impl"
3349
3350
3351 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1__0"
3352 // InternalProblem.g:1020:1: rule__ClassDeclaration__Group_3_0_1_1__0 : rule__ClassDeclaration__Group_3_0_1_1__0__Impl rule__ClassDeclaration__Group_3_0_1_1__1 ;
3353 public final void rule__ClassDeclaration__Group_3_0_1_1__0() throws RecognitionException {
3354
3355 int stackSize = keepStackSize();
3356
3357 try {
3358 // InternalProblem.g:1024:1: ( rule__ClassDeclaration__Group_3_0_1_1__0__Impl rule__ClassDeclaration__Group_3_0_1_1__1 )
3359 // InternalProblem.g:1025:2: rule__ClassDeclaration__Group_3_0_1_1__0__Impl rule__ClassDeclaration__Group_3_0_1_1__1
3360 {
3361 pushFollow(FOLLOW_9);
3362 rule__ClassDeclaration__Group_3_0_1_1__0__Impl();
3363
3364 state._fsp--;
3365
3366 pushFollow(FOLLOW_2);
3367 rule__ClassDeclaration__Group_3_0_1_1__1();
3368
3369 state._fsp--;
3370
3371
3372 }
3373
3374 }
3375 catch (RecognitionException re) {
3376 reportError(re);
3377 recover(input,re);
3378 }
3379 finally {
3380
3381 restoreStackSize(stackSize);
3382
3383 }
3384 return ;
3385 }
3386 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1__0"
3387
3388
3389 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1__0__Impl"
3390 // InternalProblem.g:1032:1: rule__ClassDeclaration__Group_3_0_1_1__0__Impl : ( '[' ) ;
3391 public final void rule__ClassDeclaration__Group_3_0_1_1__0__Impl() throws RecognitionException {
3392
3393 int stackSize = keepStackSize();
3394
3395 try {
3396 // InternalProblem.g:1036:1: ( ( '[' ) )
3397 // InternalProblem.g:1037:1: ( '[' )
3398 {
3399 // InternalProblem.g:1037:1: ( '[' )
3400 // InternalProblem.g:1038:2: '['
3401 {
3402 before(grammarAccess.getClassDeclarationAccess().getLeftSquareBracketKeyword_3_0_1_1_0());
3403 match(input,23,FOLLOW_2);
3404 after(grammarAccess.getClassDeclarationAccess().getLeftSquareBracketKeyword_3_0_1_1_0());
3405
3406 }
3407
3408
3409 }
3410
3411 }
3412 catch (RecognitionException re) {
3413 reportError(re);
3414 recover(input,re);
3415 }
3416 finally {
3417
3418 restoreStackSize(stackSize);
3419
3420 }
3421 return ;
3422 }
3423 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1__0__Impl"
3424
3425
3426 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1__1"
3427 // InternalProblem.g:1047:1: rule__ClassDeclaration__Group_3_0_1_1__1 : rule__ClassDeclaration__Group_3_0_1_1__1__Impl rule__ClassDeclaration__Group_3_0_1_1__2 ;
3428 public final void rule__ClassDeclaration__Group_3_0_1_1__1() throws RecognitionException {
3429
3430 int stackSize = keepStackSize();
3431
3432 try {
3433 // InternalProblem.g:1051:1: ( rule__ClassDeclaration__Group_3_0_1_1__1__Impl rule__ClassDeclaration__Group_3_0_1_1__2 )
3434 // InternalProblem.g:1052:2: rule__ClassDeclaration__Group_3_0_1_1__1__Impl rule__ClassDeclaration__Group_3_0_1_1__2
3435 {
3436 pushFollow(FOLLOW_9);
3437 rule__ClassDeclaration__Group_3_0_1_1__1__Impl();
3438
3439 state._fsp--;
3440
3441 pushFollow(FOLLOW_2);
3442 rule__ClassDeclaration__Group_3_0_1_1__2();
3443
3444 state._fsp--;
3445
3446
3447 }
3448
3449 }
3450 catch (RecognitionException re) {
3451 reportError(re);
3452 recover(input,re);
3453 }
3454 finally {
3455
3456 restoreStackSize(stackSize);
3457
3458 }
3459 return ;
3460 }
3461 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1__1"
3462
3463
3464 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1__1__Impl"
3465 // InternalProblem.g:1059:1: rule__ClassDeclaration__Group_3_0_1_1__1__Impl : ( ( rule__ClassDeclaration__Group_3_0_1_1_1__0 )? ) ;
3466 public final void rule__ClassDeclaration__Group_3_0_1_1__1__Impl() throws RecognitionException {
3467
3468 int stackSize = keepStackSize();
3469
3470 try {
3471 // InternalProblem.g:1063:1: ( ( ( rule__ClassDeclaration__Group_3_0_1_1_1__0 )? ) )
3472 // InternalProblem.g:1064:1: ( ( rule__ClassDeclaration__Group_3_0_1_1_1__0 )? )
3473 {
3474 // InternalProblem.g:1064:1: ( ( rule__ClassDeclaration__Group_3_0_1_1_1__0 )? )
3475 // InternalProblem.g:1065:2: ( rule__ClassDeclaration__Group_3_0_1_1_1__0 )?
3476 {
3477 before(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1());
3478 // InternalProblem.g:1066:2: ( rule__ClassDeclaration__Group_3_0_1_1_1__0 )?
3479 int alt17=2;
3480 int LA17_0 = input.LA(1);
3481
3482 if ( (LA17_0==RULE_ID) ) {
3483 alt17=1;
3484 }
3485 switch (alt17) {
3486 case 1 :
3487 // InternalProblem.g:1066:3: rule__ClassDeclaration__Group_3_0_1_1_1__0
3488 {
3489 pushFollow(FOLLOW_2);
3490 rule__ClassDeclaration__Group_3_0_1_1_1__0();
3491
3492 state._fsp--;
3493
3494
3495 }
3496 break;
3497
3498 }
3499
3500 after(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1());
3501
3502 }
3503
3504
3505 }
3506
3507 }
3508 catch (RecognitionException re) {
3509 reportError(re);
3510 recover(input,re);
3511 }
3512 finally {
3513
3514 restoreStackSize(stackSize);
3515
3516 }
3517 return ;
3518 }
3519 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1__1__Impl"
3520
3521
3522 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1__2"
3523 // InternalProblem.g:1074:1: rule__ClassDeclaration__Group_3_0_1_1__2 : rule__ClassDeclaration__Group_3_0_1_1__2__Impl ;
3524 public final void rule__ClassDeclaration__Group_3_0_1_1__2() throws RecognitionException {
3525
3526 int stackSize = keepStackSize();
3527
3528 try {
3529 // InternalProblem.g:1078:1: ( rule__ClassDeclaration__Group_3_0_1_1__2__Impl )
3530 // InternalProblem.g:1079:2: rule__ClassDeclaration__Group_3_0_1_1__2__Impl
3531 {
3532 pushFollow(FOLLOW_2);
3533 rule__ClassDeclaration__Group_3_0_1_1__2__Impl();
3534
3535 state._fsp--;
3536
3537
3538 }
3539
3540 }
3541 catch (RecognitionException re) {
3542 reportError(re);
3543 recover(input,re);
3544 }
3545 finally {
3546
3547 restoreStackSize(stackSize);
3548
3549 }
3550 return ;
3551 }
3552 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1__2"
3553
3554
3555 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1__2__Impl"
3556 // InternalProblem.g:1085:1: rule__ClassDeclaration__Group_3_0_1_1__2__Impl : ( ']' ) ;
3557 public final void rule__ClassDeclaration__Group_3_0_1_1__2__Impl() throws RecognitionException {
3558
3559 int stackSize = keepStackSize();
3560
3561 try {
3562 // InternalProblem.g:1089:1: ( ( ']' ) )
3563 // InternalProblem.g:1090:1: ( ']' )
3564 {
3565 // InternalProblem.g:1090:1: ( ']' )
3566 // InternalProblem.g:1091:2: ']'
3567 {
3568 before(grammarAccess.getClassDeclarationAccess().getRightSquareBracketKeyword_3_0_1_1_2());
3569 match(input,24,FOLLOW_2);
3570 after(grammarAccess.getClassDeclarationAccess().getRightSquareBracketKeyword_3_0_1_1_2());
3571
3572 }
3573
3574
3575 }
3576
3577 }
3578 catch (RecognitionException re) {
3579 reportError(re);
3580 recover(input,re);
3581 }
3582 finally {
3583
3584 restoreStackSize(stackSize);
3585
3586 }
3587 return ;
3588 }
3589 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1__2__Impl"
3590
3591
3592 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1_1__0"
3593 // InternalProblem.g:1101:1: rule__ClassDeclaration__Group_3_0_1_1_1__0 : rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl rule__ClassDeclaration__Group_3_0_1_1_1__1 ;
3594 public final void rule__ClassDeclaration__Group_3_0_1_1_1__0() throws RecognitionException {
3595
3596 int stackSize = keepStackSize();
3597
3598 try {
3599 // InternalProblem.g:1105:1: ( rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl rule__ClassDeclaration__Group_3_0_1_1_1__1 )
3600 // InternalProblem.g:1106:2: rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl rule__ClassDeclaration__Group_3_0_1_1_1__1
3601 {
3602 pushFollow(FOLLOW_10);
3603 rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl();
3604
3605 state._fsp--;
3606
3607 pushFollow(FOLLOW_2);
3608 rule__ClassDeclaration__Group_3_0_1_1_1__1();
3609
3610 state._fsp--;
3611
3612
3613 }
3614
3615 }
3616 catch (RecognitionException re) {
3617 reportError(re);
3618 recover(input,re);
3619 }
3620 finally {
3621
3622 restoreStackSize(stackSize);
3623
3624 }
3625 return ;
3626 }
3627 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1_1__0"
3628
3629
3630 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl"
3631 // InternalProblem.g:1113:1: rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl : ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0 ) ) ;
3632 public final void rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl() throws RecognitionException {
3633
3634 int stackSize = keepStackSize();
3635
3636 try {
3637 // InternalProblem.g:1117:1: ( ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0 ) ) )
3638 // InternalProblem.g:1118:1: ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0 ) )
3639 {
3640 // InternalProblem.g:1118:1: ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0 ) )
3641 // InternalProblem.g:1119:2: ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0 )
3642 {
3643 before(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_0());
3644 // InternalProblem.g:1120:2: ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0 )
3645 // InternalProblem.g:1120:3: rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0
3646 {
3647 pushFollow(FOLLOW_2);
3648 rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0();
3649
3650 state._fsp--;
3651
3652
3653 }
3654
3655 after(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_0());
3656
3657 }
3658
3659
3660 }
3661
3662 }
3663 catch (RecognitionException re) {
3664 reportError(re);
3665 recover(input,re);
3666 }
3667 finally {
3668
3669 restoreStackSize(stackSize);
3670
3671 }
3672 return ;
3673 }
3674 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1_1__0__Impl"
3675
3676
3677 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1_1__1"
3678 // InternalProblem.g:1128:1: rule__ClassDeclaration__Group_3_0_1_1_1__1 : rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl ;
3679 public final void rule__ClassDeclaration__Group_3_0_1_1_1__1() throws RecognitionException {
3680
3681 int stackSize = keepStackSize();
3682
3683 try {
3684 // InternalProblem.g:1132:1: ( rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl )
3685 // InternalProblem.g:1133:2: rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl
3686 {
3687 pushFollow(FOLLOW_2);
3688 rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl();
3689
3690 state._fsp--;
3691
3692
3693 }
3694
3695 }
3696 catch (RecognitionException re) {
3697 reportError(re);
3698 recover(input,re);
3699 }
3700 finally {
3701
3702 restoreStackSize(stackSize);
3703
3704 }
3705 return ;
3706 }
3707 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1_1__1"
3708
3709
3710 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl"
3711 // InternalProblem.g:1139:1: rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl : ( ( rule__ClassDeclaration__Group_3_0_1_1_1_1__0 )* ) ;
3712 public final void rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl() throws RecognitionException {
3713
3714 int stackSize = keepStackSize();
3715
3716 try {
3717 // InternalProblem.g:1143:1: ( ( ( rule__ClassDeclaration__Group_3_0_1_1_1_1__0 )* ) )
3718 // InternalProblem.g:1144:1: ( ( rule__ClassDeclaration__Group_3_0_1_1_1_1__0 )* )
3719 {
3720 // InternalProblem.g:1144:1: ( ( rule__ClassDeclaration__Group_3_0_1_1_1_1__0 )* )
3721 // InternalProblem.g:1145:2: ( rule__ClassDeclaration__Group_3_0_1_1_1_1__0 )*
3722 {
3723 before(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1_1());
3724 // InternalProblem.g:1146:2: ( rule__ClassDeclaration__Group_3_0_1_1_1_1__0 )*
3725 loop18:
3726 do {
3727 int alt18=2;
3728 int LA18_0 = input.LA(1);
3729
3730 if ( (LA18_0==25) ) {
3731 alt18=1;
3732 }
3733
3734
3735 switch (alt18) {
3736 case 1 :
3737 // InternalProblem.g:1146:3: rule__ClassDeclaration__Group_3_0_1_1_1_1__0
3738 {
3739 pushFollow(FOLLOW_7);
3740 rule__ClassDeclaration__Group_3_0_1_1_1_1__0();
3741
3742 state._fsp--;
3743
3744
3745 }
3746 break;
3747
3748 default :
3749 break loop18;
3750 }
3751 } while (true);
3752
3753 after(grammarAccess.getClassDeclarationAccess().getGroup_3_0_1_1_1_1());
3754
3755 }
3756
3757
3758 }
3759
3760 }
3761 catch (RecognitionException re) {
3762 reportError(re);
3763 recover(input,re);
3764 }
3765 finally {
3766
3767 restoreStackSize(stackSize);
3768
3769 }
3770 return ;
3771 }
3772 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1_1__1__Impl"
3773
3774
3775 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1_1_1__0"
3776 // InternalProblem.g:1155:1: rule__ClassDeclaration__Group_3_0_1_1_1_1__0 : rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl rule__ClassDeclaration__Group_3_0_1_1_1_1__1 ;
3777 public final void rule__ClassDeclaration__Group_3_0_1_1_1_1__0() throws RecognitionException {
3778
3779 int stackSize = keepStackSize();
3780
3781 try {
3782 // InternalProblem.g:1159:1: ( rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl rule__ClassDeclaration__Group_3_0_1_1_1_1__1 )
3783 // InternalProblem.g:1160:2: rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl rule__ClassDeclaration__Group_3_0_1_1_1_1__1
3784 {
3785 pushFollow(FOLLOW_5);
3786 rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl();
3787
3788 state._fsp--;
3789
3790 pushFollow(FOLLOW_2);
3791 rule__ClassDeclaration__Group_3_0_1_1_1_1__1();
3792
3793 state._fsp--;
3794
3795
3796 }
3797
3798 }
3799 catch (RecognitionException re) {
3800 reportError(re);
3801 recover(input,re);
3802 }
3803 finally {
3804
3805 restoreStackSize(stackSize);
3806
3807 }
3808 return ;
3809 }
3810 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1_1_1__0"
3811
3812
3813 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl"
3814 // InternalProblem.g:1167:1: rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl : ( ',' ) ;
3815 public final void rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl() throws RecognitionException {
3816
3817 int stackSize = keepStackSize();
3818
3819 try {
3820 // InternalProblem.g:1171:1: ( ( ',' ) )
3821 // InternalProblem.g:1172:1: ( ',' )
3822 {
3823 // InternalProblem.g:1172:1: ( ',' )
3824 // InternalProblem.g:1173:2: ','
3825 {
3826 before(grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_0_1_1_1_1_0());
3827 match(input,25,FOLLOW_2);
3828 after(grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_0_1_1_1_1_0());
3829
3830 }
3831
3832
3833 }
3834
3835 }
3836 catch (RecognitionException re) {
3837 reportError(re);
3838 recover(input,re);
3839 }
3840 finally {
3841
3842 restoreStackSize(stackSize);
3843
3844 }
3845 return ;
3846 }
3847 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1_1_1__0__Impl"
3848
3849
3850 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1_1_1__1"
3851 // InternalProblem.g:1182:1: rule__ClassDeclaration__Group_3_0_1_1_1_1__1 : rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl ;
3852 public final void rule__ClassDeclaration__Group_3_0_1_1_1_1__1() throws RecognitionException {
3853
3854 int stackSize = keepStackSize();
3855
3856 try {
3857 // InternalProblem.g:1186:1: ( rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl )
3858 // InternalProblem.g:1187:2: rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl
3859 {
3860 pushFollow(FOLLOW_2);
3861 rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl();
3862
3863 state._fsp--;
3864
3865
3866 }
3867
3868 }
3869 catch (RecognitionException re) {
3870 reportError(re);
3871 recover(input,re);
3872 }
3873 finally {
3874
3875 restoreStackSize(stackSize);
3876
3877 }
3878 return ;
3879 }
3880 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1_1_1__1"
3881
3882
3883 // $ANTLR start "rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl"
3884 // InternalProblem.g:1193:1: rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl : ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1 ) ) ;
3885 public final void rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl() throws RecognitionException {
3886
3887 int stackSize = keepStackSize();
3888
3889 try {
3890 // InternalProblem.g:1197:1: ( ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1 ) ) )
3891 // InternalProblem.g:1198:1: ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1 ) )
3892 {
3893 // InternalProblem.g:1198:1: ( ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1 ) )
3894 // InternalProblem.g:1199:2: ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1 )
3895 {
3896 before(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_1_1());
3897 // InternalProblem.g:1200:2: ( rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1 )
3898 // InternalProblem.g:1200:3: rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1
3899 {
3900 pushFollow(FOLLOW_2);
3901 rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1();
3902
3903 state._fsp--;
3904
3905
3906 }
3907
3908 after(grammarAccess.getClassDeclarationAccess().getSuperTypesAssignment_3_0_1_1_1_1_1());
3909
3910 }
3911
3912
3913 }
3914
3915 }
3916 catch (RecognitionException re) {
3917 reportError(re);
3918 recover(input,re);
3919 }
3920 finally {
3921
3922 restoreStackSize(stackSize);
3923
3924 }
3925 return ;
3926 }
3927 // $ANTLR end "rule__ClassDeclaration__Group_3_0_1_1_1_1__1__Impl"
3928
3929
3930 // $ANTLR start "rule__ClassDeclaration__Group_4__0"
3931 // InternalProblem.g:1209:1: rule__ClassDeclaration__Group_4__0 : rule__ClassDeclaration__Group_4__0__Impl rule__ClassDeclaration__Group_4__1 ;
3932 public final void rule__ClassDeclaration__Group_4__0() throws RecognitionException {
3933
3934 int stackSize = keepStackSize();
3935
3936 try {
3937 // InternalProblem.g:1213:1: ( rule__ClassDeclaration__Group_4__0__Impl rule__ClassDeclaration__Group_4__1 )
3938 // InternalProblem.g:1214:2: rule__ClassDeclaration__Group_4__0__Impl rule__ClassDeclaration__Group_4__1
3939 {
3940 pushFollow(FOLLOW_11);
3941 rule__ClassDeclaration__Group_4__0__Impl();
3942
3943 state._fsp--;
3944
3945 pushFollow(FOLLOW_2);
3946 rule__ClassDeclaration__Group_4__1();
3947
3948 state._fsp--;
3949
3950
3951 }
3952
3953 }
3954 catch (RecognitionException re) {
3955 reportError(re);
3956 recover(input,re);
3957 }
3958 finally {
3959
3960 restoreStackSize(stackSize);
3961
3962 }
3963 return ;
3964 }
3965 // $ANTLR end "rule__ClassDeclaration__Group_4__0"
3966
3967
3968 // $ANTLR start "rule__ClassDeclaration__Group_4__0__Impl"
3969 // InternalProblem.g:1221:1: rule__ClassDeclaration__Group_4__0__Impl : ( ',' ) ;
3970 public final void rule__ClassDeclaration__Group_4__0__Impl() throws RecognitionException {
3971
3972 int stackSize = keepStackSize();
3973
3974 try {
3975 // InternalProblem.g:1225:1: ( ( ',' ) )
3976 // InternalProblem.g:1226:1: ( ',' )
3977 {
3978 // InternalProblem.g:1226:1: ( ',' )
3979 // InternalProblem.g:1227:2: ','
3980 {
3981 before(grammarAccess.getClassDeclarationAccess().getCommaKeyword_4_0());
3982 match(input,25,FOLLOW_2);
3983 after(grammarAccess.getClassDeclarationAccess().getCommaKeyword_4_0());
3984
3985 }
3986
3987
3988 }
3989
3990 }
3991 catch (RecognitionException re) {
3992 reportError(re);
3993 recover(input,re);
3994 }
3995 finally {
3996
3997 restoreStackSize(stackSize);
3998
3999 }
4000 return ;
4001 }
4002 // $ANTLR end "rule__ClassDeclaration__Group_4__0__Impl"
4003
4004
4005 // $ANTLR start "rule__ClassDeclaration__Group_4__1"
4006 // InternalProblem.g:1236:1: rule__ClassDeclaration__Group_4__1 : rule__ClassDeclaration__Group_4__1__Impl ;
4007 public final void rule__ClassDeclaration__Group_4__1() throws RecognitionException {
4008
4009 int stackSize = keepStackSize();
4010
4011 try {
4012 // InternalProblem.g:1240:1: ( rule__ClassDeclaration__Group_4__1__Impl )
4013 // InternalProblem.g:1241:2: rule__ClassDeclaration__Group_4__1__Impl
4014 {
4015 pushFollow(FOLLOW_2);
4016 rule__ClassDeclaration__Group_4__1__Impl();
4017
4018 state._fsp--;
4019
4020
4021 }
4022
4023 }
4024 catch (RecognitionException re) {
4025 reportError(re);
4026 recover(input,re);
4027 }
4028 finally {
4029
4030 restoreStackSize(stackSize);
4031
4032 }
4033 return ;
4034 }
4035 // $ANTLR end "rule__ClassDeclaration__Group_4__1"
4036
4037
4038 // $ANTLR start "rule__ClassDeclaration__Group_4__1__Impl"
4039 // InternalProblem.g:1247:1: rule__ClassDeclaration__Group_4__1__Impl : ( ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1 ) ) ;
4040 public final void rule__ClassDeclaration__Group_4__1__Impl() throws RecognitionException {
4041
4042 int stackSize = keepStackSize();
4043
4044 try {
4045 // InternalProblem.g:1251:1: ( ( ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1 ) ) )
4046 // InternalProblem.g:1252:1: ( ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1 ) )
4047 {
4048 // InternalProblem.g:1252:1: ( ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1 ) )
4049 // InternalProblem.g:1253:2: ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1 )
4050 {
4051 before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_4_1());
4052 // InternalProblem.g:1254:2: ( rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1 )
4053 // InternalProblem.g:1254:3: rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1
4054 {
4055 pushFollow(FOLLOW_2);
4056 rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1();
4057
4058 state._fsp--;
4059
4060
4061 }
4062
4063 after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsAssignment_4_1());
4064
4065 }
4066
4067
4068 }
4069
4070 }
4071 catch (RecognitionException re) {
4072 reportError(re);
4073 recover(input,re);
4074 }
4075 finally {
4076
4077 restoreStackSize(stackSize);
4078
4079 }
4080 return ;
4081 }
4082 // $ANTLR end "rule__ClassDeclaration__Group_4__1__Impl"
4083
4084
4085 // $ANTLR start "rule__ReferenceDeclaration__Group__0"
4086 // InternalProblem.g:1263:1: rule__ReferenceDeclaration__Group__0 : rule__ReferenceDeclaration__Group__0__Impl rule__ReferenceDeclaration__Group__1 ;
4087 public final void rule__ReferenceDeclaration__Group__0() throws RecognitionException {
4088
4089 int stackSize = keepStackSize();
4090
4091 try {
4092 // InternalProblem.g:1267:1: ( rule__ReferenceDeclaration__Group__0__Impl rule__ReferenceDeclaration__Group__1 )
4093 // InternalProblem.g:1268:2: rule__ReferenceDeclaration__Group__0__Impl rule__ReferenceDeclaration__Group__1
4094 {
4095 pushFollow(FOLLOW_5);
4096 rule__ReferenceDeclaration__Group__0__Impl();
4097
4098 state._fsp--;
4099
4100 pushFollow(FOLLOW_2);
4101 rule__ReferenceDeclaration__Group__1();
4102
4103 state._fsp--;
4104
4105
4106 }
4107
4108 }
4109 catch (RecognitionException re) {
4110 reportError(re);
4111 recover(input,re);
4112 }
4113 finally {
4114
4115 restoreStackSize(stackSize);
4116
4117 }
4118 return ;
4119 }
4120 // $ANTLR end "rule__ReferenceDeclaration__Group__0"
4121
4122
4123 // $ANTLR start "rule__ReferenceDeclaration__Group__0__Impl"
4124 // InternalProblem.g:1275:1: rule__ReferenceDeclaration__Group__0__Impl : ( ( rule__ReferenceDeclaration__Alternatives_0 ) ) ;
4125 public final void rule__ReferenceDeclaration__Group__0__Impl() throws RecognitionException {
4126
4127 int stackSize = keepStackSize();
4128
4129 try {
4130 // InternalProblem.g:1279:1: ( ( ( rule__ReferenceDeclaration__Alternatives_0 ) ) )
4131 // InternalProblem.g:1280:1: ( ( rule__ReferenceDeclaration__Alternatives_0 ) )
4132 {
4133 // InternalProblem.g:1280:1: ( ( rule__ReferenceDeclaration__Alternatives_0 ) )
4134 // InternalProblem.g:1281:2: ( rule__ReferenceDeclaration__Alternatives_0 )
4135 {
4136 before(grammarAccess.getReferenceDeclarationAccess().getAlternatives_0());
4137 // InternalProblem.g:1282:2: ( rule__ReferenceDeclaration__Alternatives_0 )
4138 // InternalProblem.g:1282:3: rule__ReferenceDeclaration__Alternatives_0
4139 {
4140 pushFollow(FOLLOW_2);
4141 rule__ReferenceDeclaration__Alternatives_0();
4142
4143 state._fsp--;
4144
4145
4146 }
4147
4148 after(grammarAccess.getReferenceDeclarationAccess().getAlternatives_0());
4149
4150 }
4151
4152
4153 }
4154
4155 }
4156 catch (RecognitionException re) {
4157 reportError(re);
4158 recover(input,re);
4159 }
4160 finally {
4161
4162 restoreStackSize(stackSize);
4163
4164 }
4165 return ;
4166 }
4167 // $ANTLR end "rule__ReferenceDeclaration__Group__0__Impl"
4168
4169
4170 // $ANTLR start "rule__ReferenceDeclaration__Group__1"
4171 // InternalProblem.g:1290:1: rule__ReferenceDeclaration__Group__1 : rule__ReferenceDeclaration__Group__1__Impl rule__ReferenceDeclaration__Group__2 ;
4172 public final void rule__ReferenceDeclaration__Group__1() throws RecognitionException {
4173
4174 int stackSize = keepStackSize();
4175
4176 try {
4177 // InternalProblem.g:1294:1: ( rule__ReferenceDeclaration__Group__1__Impl rule__ReferenceDeclaration__Group__2 )
4178 // InternalProblem.g:1295:2: rule__ReferenceDeclaration__Group__1__Impl rule__ReferenceDeclaration__Group__2
4179 {
4180 pushFollow(FOLLOW_12);
4181 rule__ReferenceDeclaration__Group__1__Impl();
4182
4183 state._fsp--;
4184
4185 pushFollow(FOLLOW_2);
4186 rule__ReferenceDeclaration__Group__2();
4187
4188 state._fsp--;
4189
4190
4191 }
4192
4193 }
4194 catch (RecognitionException re) {
4195 reportError(re);
4196 recover(input,re);
4197 }
4198 finally {
4199
4200 restoreStackSize(stackSize);
4201
4202 }
4203 return ;
4204 }
4205 // $ANTLR end "rule__ReferenceDeclaration__Group__1"
4206
4207
4208 // $ANTLR start "rule__ReferenceDeclaration__Group__1__Impl"
4209 // InternalProblem.g:1302:1: rule__ReferenceDeclaration__Group__1__Impl : ( ( rule__ReferenceDeclaration__ReferenceTypeAssignment_1 ) ) ;
4210 public final void rule__ReferenceDeclaration__Group__1__Impl() throws RecognitionException {
4211
4212 int stackSize = keepStackSize();
4213
4214 try {
4215 // InternalProblem.g:1306:1: ( ( ( rule__ReferenceDeclaration__ReferenceTypeAssignment_1 ) ) )
4216 // InternalProblem.g:1307:1: ( ( rule__ReferenceDeclaration__ReferenceTypeAssignment_1 ) )
4217 {
4218 // InternalProblem.g:1307:1: ( ( rule__ReferenceDeclaration__ReferenceTypeAssignment_1 ) )
4219 // InternalProblem.g:1308:2: ( rule__ReferenceDeclaration__ReferenceTypeAssignment_1 )
4220 {
4221 before(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeAssignment_1());
4222 // InternalProblem.g:1309:2: ( rule__ReferenceDeclaration__ReferenceTypeAssignment_1 )
4223 // InternalProblem.g:1309:3: rule__ReferenceDeclaration__ReferenceTypeAssignment_1
4224 {
4225 pushFollow(FOLLOW_2);
4226 rule__ReferenceDeclaration__ReferenceTypeAssignment_1();
4227
4228 state._fsp--;
4229
4230
4231 }
4232
4233 after(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeAssignment_1());
4234
4235 }
4236
4237
4238 }
4239
4240 }
4241 catch (RecognitionException re) {
4242 reportError(re);
4243 recover(input,re);
4244 }
4245 finally {
4246
4247 restoreStackSize(stackSize);
4248
4249 }
4250 return ;
4251 }
4252 // $ANTLR end "rule__ReferenceDeclaration__Group__1__Impl"
4253
4254
4255 // $ANTLR start "rule__ReferenceDeclaration__Group__2"
4256 // InternalProblem.g:1317:1: rule__ReferenceDeclaration__Group__2 : rule__ReferenceDeclaration__Group__2__Impl rule__ReferenceDeclaration__Group__3 ;
4257 public final void rule__ReferenceDeclaration__Group__2() throws RecognitionException {
4258
4259 int stackSize = keepStackSize();
4260
4261 try {
4262 // InternalProblem.g:1321:1: ( rule__ReferenceDeclaration__Group__2__Impl rule__ReferenceDeclaration__Group__3 )
4263 // InternalProblem.g:1322:2: rule__ReferenceDeclaration__Group__2__Impl rule__ReferenceDeclaration__Group__3
4264 {
4265 pushFollow(FOLLOW_13);
4266 rule__ReferenceDeclaration__Group__2__Impl();
4267
4268 state._fsp--;
4269
4270 pushFollow(FOLLOW_2);
4271 rule__ReferenceDeclaration__Group__3();
4272
4273 state._fsp--;
4274
4275
4276 }
4277
4278 }
4279 catch (RecognitionException re) {
4280 reportError(re);
4281 recover(input,re);
4282 }
4283 finally {
4284
4285 restoreStackSize(stackSize);
4286
4287 }
4288 return ;
4289 }
4290 // $ANTLR end "rule__ReferenceDeclaration__Group__2"
4291
4292
4293 // $ANTLR start "rule__ReferenceDeclaration__Group__2__Impl"
4294 // InternalProblem.g:1329:1: rule__ReferenceDeclaration__Group__2__Impl : ( '[' ) ;
4295 public final void rule__ReferenceDeclaration__Group__2__Impl() throws RecognitionException {
4296
4297 int stackSize = keepStackSize();
4298
4299 try {
4300 // InternalProblem.g:1333:1: ( ( '[' ) )
4301 // InternalProblem.g:1334:1: ( '[' )
4302 {
4303 // InternalProblem.g:1334:1: ( '[' )
4304 // InternalProblem.g:1335:2: '['
4305 {
4306 before(grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2());
4307 match(input,23,FOLLOW_2);
4308 after(grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2());
4309
4310 }
4311
4312
4313 }
4314
4315 }
4316 catch (RecognitionException re) {
4317 reportError(re);
4318 recover(input,re);
4319 }
4320 finally {
4321
4322 restoreStackSize(stackSize);
4323
4324 }
4325 return ;
4326 }
4327 // $ANTLR end "rule__ReferenceDeclaration__Group__2__Impl"
4328
4329
4330 // $ANTLR start "rule__ReferenceDeclaration__Group__3"
4331 // InternalProblem.g:1344:1: rule__ReferenceDeclaration__Group__3 : rule__ReferenceDeclaration__Group__3__Impl rule__ReferenceDeclaration__Group__4 ;
4332 public final void rule__ReferenceDeclaration__Group__3() throws RecognitionException {
4333
4334 int stackSize = keepStackSize();
4335
4336 try {
4337 // InternalProblem.g:1348:1: ( rule__ReferenceDeclaration__Group__3__Impl rule__ReferenceDeclaration__Group__4 )
4338 // InternalProblem.g:1349:2: rule__ReferenceDeclaration__Group__3__Impl rule__ReferenceDeclaration__Group__4
4339 {
4340 pushFollow(FOLLOW_14);
4341 rule__ReferenceDeclaration__Group__3__Impl();
4342
4343 state._fsp--;
4344
4345 pushFollow(FOLLOW_2);
4346 rule__ReferenceDeclaration__Group__4();
4347
4348 state._fsp--;
4349
4350
4351 }
4352
4353 }
4354 catch (RecognitionException re) {
4355 reportError(re);
4356 recover(input,re);
4357 }
4358 finally {
4359
4360 restoreStackSize(stackSize);
4361
4362 }
4363 return ;
4364 }
4365 // $ANTLR end "rule__ReferenceDeclaration__Group__3"
4366
4367
4368 // $ANTLR start "rule__ReferenceDeclaration__Group__3__Impl"
4369 // InternalProblem.g:1356:1: rule__ReferenceDeclaration__Group__3__Impl : ( ( rule__ReferenceDeclaration__MultiplicityAssignment_3 ) ) ;
4370 public final void rule__ReferenceDeclaration__Group__3__Impl() throws RecognitionException {
4371
4372 int stackSize = keepStackSize();
4373
4374 try {
4375 // InternalProblem.g:1360:1: ( ( ( rule__ReferenceDeclaration__MultiplicityAssignment_3 ) ) )
4376 // InternalProblem.g:1361:1: ( ( rule__ReferenceDeclaration__MultiplicityAssignment_3 ) )
4377 {
4378 // InternalProblem.g:1361:1: ( ( rule__ReferenceDeclaration__MultiplicityAssignment_3 ) )
4379 // InternalProblem.g:1362:2: ( rule__ReferenceDeclaration__MultiplicityAssignment_3 )
4380 {
4381 before(grammarAccess.getReferenceDeclarationAccess().getMultiplicityAssignment_3());
4382 // InternalProblem.g:1363:2: ( rule__ReferenceDeclaration__MultiplicityAssignment_3 )
4383 // InternalProblem.g:1363:3: rule__ReferenceDeclaration__MultiplicityAssignment_3
4384 {
4385 pushFollow(FOLLOW_2);
4386 rule__ReferenceDeclaration__MultiplicityAssignment_3();
4387
4388 state._fsp--;
4389
4390
4391 }
4392
4393 after(grammarAccess.getReferenceDeclarationAccess().getMultiplicityAssignment_3());
4394
4395 }
4396
4397
4398 }
4399
4400 }
4401 catch (RecognitionException re) {
4402 reportError(re);
4403 recover(input,re);
4404 }
4405 finally {
4406
4407 restoreStackSize(stackSize);
4408
4409 }
4410 return ;
4411 }
4412 // $ANTLR end "rule__ReferenceDeclaration__Group__3__Impl"
4413
4414
4415 // $ANTLR start "rule__ReferenceDeclaration__Group__4"
4416 // InternalProblem.g:1371:1: rule__ReferenceDeclaration__Group__4 : rule__ReferenceDeclaration__Group__4__Impl rule__ReferenceDeclaration__Group__5 ;
4417 public final void rule__ReferenceDeclaration__Group__4() throws RecognitionException {
4418
4419 int stackSize = keepStackSize();
4420
4421 try {
4422 // InternalProblem.g:1375:1: ( rule__ReferenceDeclaration__Group__4__Impl rule__ReferenceDeclaration__Group__5 )
4423 // InternalProblem.g:1376:2: rule__ReferenceDeclaration__Group__4__Impl rule__ReferenceDeclaration__Group__5
4424 {
4425 pushFollow(FOLLOW_5);
4426 rule__ReferenceDeclaration__Group__4__Impl();
4427
4428 state._fsp--;
4429
4430 pushFollow(FOLLOW_2);
4431 rule__ReferenceDeclaration__Group__5();
4432
4433 state._fsp--;
4434
4435
4436 }
4437
4438 }
4439 catch (RecognitionException re) {
4440 reportError(re);
4441 recover(input,re);
4442 }
4443 finally {
4444
4445 restoreStackSize(stackSize);
4446
4447 }
4448 return ;
4449 }
4450 // $ANTLR end "rule__ReferenceDeclaration__Group__4"
4451
4452
4453 // $ANTLR start "rule__ReferenceDeclaration__Group__4__Impl"
4454 // InternalProblem.g:1383:1: rule__ReferenceDeclaration__Group__4__Impl : ( ']' ) ;
4455 public final void rule__ReferenceDeclaration__Group__4__Impl() throws RecognitionException {
4456
4457 int stackSize = keepStackSize();
4458
4459 try {
4460 // InternalProblem.g:1387:1: ( ( ']' ) )
4461 // InternalProblem.g:1388:1: ( ']' )
4462 {
4463 // InternalProblem.g:1388:1: ( ']' )
4464 // InternalProblem.g:1389:2: ']'
4465 {
4466 before(grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_4());
4467 match(input,24,FOLLOW_2);
4468 after(grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_4());
4469
4470 }
4471
4472
4473 }
4474
4475 }
4476 catch (RecognitionException re) {
4477 reportError(re);
4478 recover(input,re);
4479 }
4480 finally {
4481
4482 restoreStackSize(stackSize);
4483
4484 }
4485 return ;
4486 }
4487 // $ANTLR end "rule__ReferenceDeclaration__Group__4__Impl"
4488
4489
4490 // $ANTLR start "rule__ReferenceDeclaration__Group__5"
4491 // InternalProblem.g:1398:1: rule__ReferenceDeclaration__Group__5 : rule__ReferenceDeclaration__Group__5__Impl rule__ReferenceDeclaration__Group__6 ;
4492 public final void rule__ReferenceDeclaration__Group__5() throws RecognitionException {
4493
4494 int stackSize = keepStackSize();
4495
4496 try {
4497 // InternalProblem.g:1402:1: ( rule__ReferenceDeclaration__Group__5__Impl rule__ReferenceDeclaration__Group__6 )
4498 // InternalProblem.g:1403:2: rule__ReferenceDeclaration__Group__5__Impl rule__ReferenceDeclaration__Group__6
4499 {
4500 pushFollow(FOLLOW_15);
4501 rule__ReferenceDeclaration__Group__5__Impl();
4502
4503 state._fsp--;
4504
4505 pushFollow(FOLLOW_2);
4506 rule__ReferenceDeclaration__Group__6();
4507
4508 state._fsp--;
4509
4510
4511 }
4512
4513 }
4514 catch (RecognitionException re) {
4515 reportError(re);
4516 recover(input,re);
4517 }
4518 finally {
4519
4520 restoreStackSize(stackSize);
4521
4522 }
4523 return ;
4524 }
4525 // $ANTLR end "rule__ReferenceDeclaration__Group__5"
4526
4527
4528 // $ANTLR start "rule__ReferenceDeclaration__Group__5__Impl"
4529 // InternalProblem.g:1410:1: rule__ReferenceDeclaration__Group__5__Impl : ( ( rule__ReferenceDeclaration__NameAssignment_5 ) ) ;
4530 public final void rule__ReferenceDeclaration__Group__5__Impl() throws RecognitionException {
4531
4532 int stackSize = keepStackSize();
4533
4534 try {
4535 // InternalProblem.g:1414:1: ( ( ( rule__ReferenceDeclaration__NameAssignment_5 ) ) )
4536 // InternalProblem.g:1415:1: ( ( rule__ReferenceDeclaration__NameAssignment_5 ) )
4537 {
4538 // InternalProblem.g:1415:1: ( ( rule__ReferenceDeclaration__NameAssignment_5 ) )
4539 // InternalProblem.g:1416:2: ( rule__ReferenceDeclaration__NameAssignment_5 )
4540 {
4541 before(grammarAccess.getReferenceDeclarationAccess().getNameAssignment_5());
4542 // InternalProblem.g:1417:2: ( rule__ReferenceDeclaration__NameAssignment_5 )
4543 // InternalProblem.g:1417:3: rule__ReferenceDeclaration__NameAssignment_5
4544 {
4545 pushFollow(FOLLOW_2);
4546 rule__ReferenceDeclaration__NameAssignment_5();
4547
4548 state._fsp--;
4549
4550
4551 }
4552
4553 after(grammarAccess.getReferenceDeclarationAccess().getNameAssignment_5());
4554
4555 }
4556
4557
4558 }
4559
4560 }
4561 catch (RecognitionException re) {
4562 reportError(re);
4563 recover(input,re);
4564 }
4565 finally {
4566
4567 restoreStackSize(stackSize);
4568
4569 }
4570 return ;
4571 }
4572 // $ANTLR end "rule__ReferenceDeclaration__Group__5__Impl"
4573
4574
4575 // $ANTLR start "rule__ReferenceDeclaration__Group__6"
4576 // InternalProblem.g:1425:1: rule__ReferenceDeclaration__Group__6 : rule__ReferenceDeclaration__Group__6__Impl ;
4577 public final void rule__ReferenceDeclaration__Group__6() throws RecognitionException {
4578
4579 int stackSize = keepStackSize();
4580
4581 try {
4582 // InternalProblem.g:1429:1: ( rule__ReferenceDeclaration__Group__6__Impl )
4583 // InternalProblem.g:1430:2: rule__ReferenceDeclaration__Group__6__Impl
4584 {
4585 pushFollow(FOLLOW_2);
4586 rule__ReferenceDeclaration__Group__6__Impl();
4587
4588 state._fsp--;
4589
4590
4591 }
4592
4593 }
4594 catch (RecognitionException re) {
4595 reportError(re);
4596 recover(input,re);
4597 }
4598 finally {
4599
4600 restoreStackSize(stackSize);
4601
4602 }
4603 return ;
4604 }
4605 // $ANTLR end "rule__ReferenceDeclaration__Group__6"
4606
4607
4608 // $ANTLR start "rule__ReferenceDeclaration__Group__6__Impl"
4609 // InternalProblem.g:1436:1: rule__ReferenceDeclaration__Group__6__Impl : ( ( rule__ReferenceDeclaration__Group_6__0 )? ) ;
4610 public final void rule__ReferenceDeclaration__Group__6__Impl() throws RecognitionException {
4611
4612 int stackSize = keepStackSize();
4613
4614 try {
4615 // InternalProblem.g:1440:1: ( ( ( rule__ReferenceDeclaration__Group_6__0 )? ) )
4616 // InternalProblem.g:1441:1: ( ( rule__ReferenceDeclaration__Group_6__0 )? )
4617 {
4618 // InternalProblem.g:1441:1: ( ( rule__ReferenceDeclaration__Group_6__0 )? )
4619 // InternalProblem.g:1442:2: ( rule__ReferenceDeclaration__Group_6__0 )?
4620 {
4621 before(grammarAccess.getReferenceDeclarationAccess().getGroup_6());
4622 // InternalProblem.g:1443:2: ( rule__ReferenceDeclaration__Group_6__0 )?
4623 int alt19=2;
4624 int LA19_0 = input.LA(1);
4625
4626 if ( (LA19_0==26) ) {
4627 alt19=1;
4628 }
4629 switch (alt19) {
4630 case 1 :
4631 // InternalProblem.g:1443:3: rule__ReferenceDeclaration__Group_6__0
4632 {
4633 pushFollow(FOLLOW_2);
4634 rule__ReferenceDeclaration__Group_6__0();
4635
4636 state._fsp--;
4637
4638
4639 }
4640 break;
4641
4642 }
4643
4644 after(grammarAccess.getReferenceDeclarationAccess().getGroup_6());
4645
4646 }
4647
4648
4649 }
4650
4651 }
4652 catch (RecognitionException re) {
4653 reportError(re);
4654 recover(input,re);
4655 }
4656 finally {
4657
4658 restoreStackSize(stackSize);
4659
4660 }
4661 return ;
4662 }
4663 // $ANTLR end "rule__ReferenceDeclaration__Group__6__Impl"
4664
4665
4666 // $ANTLR start "rule__ReferenceDeclaration__Group_6__0"
4667 // InternalProblem.g:1452:1: rule__ReferenceDeclaration__Group_6__0 : rule__ReferenceDeclaration__Group_6__0__Impl rule__ReferenceDeclaration__Group_6__1 ;
4668 public final void rule__ReferenceDeclaration__Group_6__0() throws RecognitionException {
4669
4670 int stackSize = keepStackSize();
4671
4672 try {
4673 // InternalProblem.g:1456:1: ( rule__ReferenceDeclaration__Group_6__0__Impl rule__ReferenceDeclaration__Group_6__1 )
4674 // InternalProblem.g:1457:2: rule__ReferenceDeclaration__Group_6__0__Impl rule__ReferenceDeclaration__Group_6__1
4675 {
4676 pushFollow(FOLLOW_5);
4677 rule__ReferenceDeclaration__Group_6__0__Impl();
4678
4679 state._fsp--;
4680
4681 pushFollow(FOLLOW_2);
4682 rule__ReferenceDeclaration__Group_6__1();
4683
4684 state._fsp--;
4685
4686
4687 }
4688
4689 }
4690 catch (RecognitionException re) {
4691 reportError(re);
4692 recover(input,re);
4693 }
4694 finally {
4695
4696 restoreStackSize(stackSize);
4697
4698 }
4699 return ;
4700 }
4701 // $ANTLR end "rule__ReferenceDeclaration__Group_6__0"
4702
4703
4704 // $ANTLR start "rule__ReferenceDeclaration__Group_6__0__Impl"
4705 // InternalProblem.g:1464:1: rule__ReferenceDeclaration__Group_6__0__Impl : ( 'opposite' ) ;
4706 public final void rule__ReferenceDeclaration__Group_6__0__Impl() throws RecognitionException {
4707
4708 int stackSize = keepStackSize();
4709
4710 try {
4711 // InternalProblem.g:1468:1: ( ( 'opposite' ) )
4712 // InternalProblem.g:1469:1: ( 'opposite' )
4713 {
4714 // InternalProblem.g:1469:1: ( 'opposite' )
4715 // InternalProblem.g:1470:2: 'opposite'
4716 {
4717 before(grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_6_0());
4718 match(input,26,FOLLOW_2);
4719 after(grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_6_0());
4720
4721 }
4722
4723
4724 }
4725
4726 }
4727 catch (RecognitionException re) {
4728 reportError(re);
4729 recover(input,re);
4730 }
4731 finally {
4732
4733 restoreStackSize(stackSize);
4734
4735 }
4736 return ;
4737 }
4738 // $ANTLR end "rule__ReferenceDeclaration__Group_6__0__Impl"
4739
4740
4741 // $ANTLR start "rule__ReferenceDeclaration__Group_6__1"
4742 // InternalProblem.g:1479:1: rule__ReferenceDeclaration__Group_6__1 : rule__ReferenceDeclaration__Group_6__1__Impl ;
4743 public final void rule__ReferenceDeclaration__Group_6__1() throws RecognitionException {
4744
4745 int stackSize = keepStackSize();
4746
4747 try {
4748 // InternalProblem.g:1483:1: ( rule__ReferenceDeclaration__Group_6__1__Impl )
4749 // InternalProblem.g:1484:2: rule__ReferenceDeclaration__Group_6__1__Impl
4750 {
4751 pushFollow(FOLLOW_2);
4752 rule__ReferenceDeclaration__Group_6__1__Impl();
4753
4754 state._fsp--;
4755
4756
4757 }
4758
4759 }
4760 catch (RecognitionException re) {
4761 reportError(re);
4762 recover(input,re);
4763 }
4764 finally {
4765
4766 restoreStackSize(stackSize);
4767
4768 }
4769 return ;
4770 }
4771 // $ANTLR end "rule__ReferenceDeclaration__Group_6__1"
4772
4773
4774 // $ANTLR start "rule__ReferenceDeclaration__Group_6__1__Impl"
4775 // InternalProblem.g:1490:1: rule__ReferenceDeclaration__Group_6__1__Impl : ( ( rule__ReferenceDeclaration__OppositeAssignment_6_1 ) ) ;
4776 public final void rule__ReferenceDeclaration__Group_6__1__Impl() throws RecognitionException {
4777
4778 int stackSize = keepStackSize();
4779
4780 try {
4781 // InternalProblem.g:1494:1: ( ( ( rule__ReferenceDeclaration__OppositeAssignment_6_1 ) ) )
4782 // InternalProblem.g:1495:1: ( ( rule__ReferenceDeclaration__OppositeAssignment_6_1 ) )
4783 {
4784 // InternalProblem.g:1495:1: ( ( rule__ReferenceDeclaration__OppositeAssignment_6_1 ) )
4785 // InternalProblem.g:1496:2: ( rule__ReferenceDeclaration__OppositeAssignment_6_1 )
4786 {
4787 before(grammarAccess.getReferenceDeclarationAccess().getOppositeAssignment_6_1());
4788 // InternalProblem.g:1497:2: ( rule__ReferenceDeclaration__OppositeAssignment_6_1 )
4789 // InternalProblem.g:1497:3: rule__ReferenceDeclaration__OppositeAssignment_6_1
4790 {
4791 pushFollow(FOLLOW_2);
4792 rule__ReferenceDeclaration__OppositeAssignment_6_1();
4793
4794 state._fsp--;
4795
4796
4797 }
4798
4799 after(grammarAccess.getReferenceDeclarationAccess().getOppositeAssignment_6_1());
4800
4801 }
4802
4803
4804 }
4805
4806 }
4807 catch (RecognitionException re) {
4808 reportError(re);
4809 recover(input,re);
4810 }
4811 finally {
4812
4813 restoreStackSize(stackSize);
4814
4815 }
4816 return ;
4817 }
4818 // $ANTLR end "rule__ReferenceDeclaration__Group_6__1__Impl"
4819
4820
4821 // $ANTLR start "rule__PredicateDefinition__Group__0"
4822 // InternalProblem.g:1506:1: rule__PredicateDefinition__Group__0 : rule__PredicateDefinition__Group__0__Impl rule__PredicateDefinition__Group__1 ;
4823 public final void rule__PredicateDefinition__Group__0() throws RecognitionException {
4824
4825 int stackSize = keepStackSize();
4826
4827 try {
4828 // InternalProblem.g:1510:1: ( rule__PredicateDefinition__Group__0__Impl rule__PredicateDefinition__Group__1 )
4829 // InternalProblem.g:1511:2: rule__PredicateDefinition__Group__0__Impl rule__PredicateDefinition__Group__1
4830 {
4831 pushFollow(FOLLOW_5);
4832 rule__PredicateDefinition__Group__0__Impl();
4833
4834 state._fsp--;
4835
4836 pushFollow(FOLLOW_2);
4837 rule__PredicateDefinition__Group__1();
4838
4839 state._fsp--;
4840
4841
4842 }
4843
4844 }
4845 catch (RecognitionException re) {
4846 reportError(re);
4847 recover(input,re);
4848 }
4849 finally {
4850
4851 restoreStackSize(stackSize);
4852
4853 }
4854 return ;
4855 }
4856 // $ANTLR end "rule__PredicateDefinition__Group__0"
4857
4858
4859 // $ANTLR start "rule__PredicateDefinition__Group__0__Impl"
4860 // InternalProblem.g:1518:1: rule__PredicateDefinition__Group__0__Impl : ( ( rule__PredicateDefinition__Alternatives_0 ) ) ;
4861 public final void rule__PredicateDefinition__Group__0__Impl() throws RecognitionException {
4862
4863 int stackSize = keepStackSize();
4864
4865 try {
4866 // InternalProblem.g:1522:1: ( ( ( rule__PredicateDefinition__Alternatives_0 ) ) )
4867 // InternalProblem.g:1523:1: ( ( rule__PredicateDefinition__Alternatives_0 ) )
4868 {
4869 // InternalProblem.g:1523:1: ( ( rule__PredicateDefinition__Alternatives_0 ) )
4870 // InternalProblem.g:1524:2: ( rule__PredicateDefinition__Alternatives_0 )
4871 {
4872 before(grammarAccess.getPredicateDefinitionAccess().getAlternatives_0());
4873 // InternalProblem.g:1525:2: ( rule__PredicateDefinition__Alternatives_0 )
4874 // InternalProblem.g:1525:3: rule__PredicateDefinition__Alternatives_0
4875 {
4876 pushFollow(FOLLOW_2);
4877 rule__PredicateDefinition__Alternatives_0();
4878
4879 state._fsp--;
4880
4881
4882 }
4883
4884 after(grammarAccess.getPredicateDefinitionAccess().getAlternatives_0());
4885
4886 }
4887
4888
4889 }
4890
4891 }
4892 catch (RecognitionException re) {
4893 reportError(re);
4894 recover(input,re);
4895 }
4896 finally {
4897
4898 restoreStackSize(stackSize);
4899
4900 }
4901 return ;
4902 }
4903 // $ANTLR end "rule__PredicateDefinition__Group__0__Impl"
4904
4905
4906 // $ANTLR start "rule__PredicateDefinition__Group__1"
4907 // InternalProblem.g:1533:1: rule__PredicateDefinition__Group__1 : rule__PredicateDefinition__Group__1__Impl rule__PredicateDefinition__Group__2 ;
4908 public final void rule__PredicateDefinition__Group__1() throws RecognitionException {
4909
4910 int stackSize = keepStackSize();
4911
4912 try {
4913 // InternalProblem.g:1537:1: ( rule__PredicateDefinition__Group__1__Impl rule__PredicateDefinition__Group__2 )
4914 // InternalProblem.g:1538:2: rule__PredicateDefinition__Group__1__Impl rule__PredicateDefinition__Group__2
4915 {
4916 pushFollow(FOLLOW_16);
4917 rule__PredicateDefinition__Group__1__Impl();
4918
4919 state._fsp--;
4920
4921 pushFollow(FOLLOW_2);
4922 rule__PredicateDefinition__Group__2();
4923
4924 state._fsp--;
4925
4926
4927 }
4928
4929 }
4930 catch (RecognitionException re) {
4931 reportError(re);
4932 recover(input,re);
4933 }
4934 finally {
4935
4936 restoreStackSize(stackSize);
4937
4938 }
4939 return ;
4940 }
4941 // $ANTLR end "rule__PredicateDefinition__Group__1"
4942
4943
4944 // $ANTLR start "rule__PredicateDefinition__Group__1__Impl"
4945 // InternalProblem.g:1545:1: rule__PredicateDefinition__Group__1__Impl : ( ( rule__PredicateDefinition__NameAssignment_1 ) ) ;
4946 public final void rule__PredicateDefinition__Group__1__Impl() throws RecognitionException {
4947
4948 int stackSize = keepStackSize();
4949
4950 try {
4951 // InternalProblem.g:1549:1: ( ( ( rule__PredicateDefinition__NameAssignment_1 ) ) )
4952 // InternalProblem.g:1550:1: ( ( rule__PredicateDefinition__NameAssignment_1 ) )
4953 {
4954 // InternalProblem.g:1550:1: ( ( rule__PredicateDefinition__NameAssignment_1 ) )
4955 // InternalProblem.g:1551:2: ( rule__PredicateDefinition__NameAssignment_1 )
4956 {
4957 before(grammarAccess.getPredicateDefinitionAccess().getNameAssignment_1());
4958 // InternalProblem.g:1552:2: ( rule__PredicateDefinition__NameAssignment_1 )
4959 // InternalProblem.g:1552:3: rule__PredicateDefinition__NameAssignment_1
4960 {
4961 pushFollow(FOLLOW_2);
4962 rule__PredicateDefinition__NameAssignment_1();
4963
4964 state._fsp--;
4965
4966
4967 }
4968
4969 after(grammarAccess.getPredicateDefinitionAccess().getNameAssignment_1());
4970
4971 }
4972
4973
4974 }
4975
4976 }
4977 catch (RecognitionException re) {
4978 reportError(re);
4979 recover(input,re);
4980 }
4981 finally {
4982
4983 restoreStackSize(stackSize);
4984
4985 }
4986 return ;
4987 }
4988 // $ANTLR end "rule__PredicateDefinition__Group__1__Impl"
4989
4990
4991 // $ANTLR start "rule__PredicateDefinition__Group__2"
4992 // InternalProblem.g:1560:1: rule__PredicateDefinition__Group__2 : rule__PredicateDefinition__Group__2__Impl rule__PredicateDefinition__Group__3 ;
4993 public final void rule__PredicateDefinition__Group__2() throws RecognitionException {
4994
4995 int stackSize = keepStackSize();
4996
4997 try {
4998 // InternalProblem.g:1564:1: ( rule__PredicateDefinition__Group__2__Impl rule__PredicateDefinition__Group__3 )
4999 // InternalProblem.g:1565:2: rule__PredicateDefinition__Group__2__Impl rule__PredicateDefinition__Group__3
5000 {
5001 pushFollow(FOLLOW_17);
5002 rule__PredicateDefinition__Group__2__Impl();
5003
5004 state._fsp--;
5005
5006 pushFollow(FOLLOW_2);
5007 rule__PredicateDefinition__Group__3();
5008
5009 state._fsp--;
5010
5011
5012 }
5013
5014 }
5015 catch (RecognitionException re) {
5016 reportError(re);
5017 recover(input,re);
5018 }
5019 finally {
5020
5021 restoreStackSize(stackSize);
5022
5023 }
5024 return ;
5025 }
5026 // $ANTLR end "rule__PredicateDefinition__Group__2"
5027
5028
5029 // $ANTLR start "rule__PredicateDefinition__Group__2__Impl"
5030 // InternalProblem.g:1572:1: rule__PredicateDefinition__Group__2__Impl : ( '(' ) ;
5031 public final void rule__PredicateDefinition__Group__2__Impl() throws RecognitionException {
5032
5033 int stackSize = keepStackSize();
5034
5035 try {
5036 // InternalProblem.g:1576:1: ( ( '(' ) )
5037 // InternalProblem.g:1577:1: ( '(' )
5038 {
5039 // InternalProblem.g:1577:1: ( '(' )
5040 // InternalProblem.g:1578:2: '('
5041 {
5042 before(grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
5043 match(input,27,FOLLOW_2);
5044 after(grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
5045
5046 }
5047
5048
5049 }
5050
5051 }
5052 catch (RecognitionException re) {
5053 reportError(re);
5054 recover(input,re);
5055 }
5056 finally {
5057
5058 restoreStackSize(stackSize);
5059
5060 }
5061 return ;
5062 }
5063 // $ANTLR end "rule__PredicateDefinition__Group__2__Impl"
5064
5065
5066 // $ANTLR start "rule__PredicateDefinition__Group__3"
5067 // InternalProblem.g:1587:1: rule__PredicateDefinition__Group__3 : rule__PredicateDefinition__Group__3__Impl rule__PredicateDefinition__Group__4 ;
5068 public final void rule__PredicateDefinition__Group__3() throws RecognitionException {
5069
5070 int stackSize = keepStackSize();
5071
5072 try {
5073 // InternalProblem.g:1591:1: ( rule__PredicateDefinition__Group__3__Impl rule__PredicateDefinition__Group__4 )
5074 // InternalProblem.g:1592:2: rule__PredicateDefinition__Group__3__Impl rule__PredicateDefinition__Group__4
5075 {
5076 pushFollow(FOLLOW_17);
5077 rule__PredicateDefinition__Group__3__Impl();
5078
5079 state._fsp--;
5080
5081 pushFollow(FOLLOW_2);
5082 rule__PredicateDefinition__Group__4();
5083
5084 state._fsp--;
5085
5086
5087 }
5088
5089 }
5090 catch (RecognitionException re) {
5091 reportError(re);
5092 recover(input,re);
5093 }
5094 finally {
5095
5096 restoreStackSize(stackSize);
5097
5098 }
5099 return ;
5100 }
5101 // $ANTLR end "rule__PredicateDefinition__Group__3"
5102
5103
5104 // $ANTLR start "rule__PredicateDefinition__Group__3__Impl"
5105 // InternalProblem.g:1599:1: rule__PredicateDefinition__Group__3__Impl : ( ( rule__PredicateDefinition__Group_3__0 )? ) ;
5106 public final void rule__PredicateDefinition__Group__3__Impl() throws RecognitionException {
5107
5108 int stackSize = keepStackSize();
5109
5110 try {
5111 // InternalProblem.g:1603:1: ( ( ( rule__PredicateDefinition__Group_3__0 )? ) )
5112 // InternalProblem.g:1604:1: ( ( rule__PredicateDefinition__Group_3__0 )? )
5113 {
5114 // InternalProblem.g:1604:1: ( ( rule__PredicateDefinition__Group_3__0 )? )
5115 // InternalProblem.g:1605:2: ( rule__PredicateDefinition__Group_3__0 )?
5116 {
5117 before(grammarAccess.getPredicateDefinitionAccess().getGroup_3());
5118 // InternalProblem.g:1606:2: ( rule__PredicateDefinition__Group_3__0 )?
5119 int alt20=2;
5120 int LA20_0 = input.LA(1);
5121
5122 if ( (LA20_0==RULE_ID) ) {
5123 alt20=1;
5124 }
5125 switch (alt20) {
5126 case 1 :
5127 // InternalProblem.g:1606:3: rule__PredicateDefinition__Group_3__0
5128 {
5129 pushFollow(FOLLOW_2);
5130 rule__PredicateDefinition__Group_3__0();
5131
5132 state._fsp--;
5133
5134
5135 }
5136 break;
5137
5138 }
5139
5140 after(grammarAccess.getPredicateDefinitionAccess().getGroup_3());
5141
5142 }
5143
5144
5145 }
5146
5147 }
5148 catch (RecognitionException re) {
5149 reportError(re);
5150 recover(input,re);
5151 }
5152 finally {
5153
5154 restoreStackSize(stackSize);
5155
5156 }
5157 return ;
5158 }
5159 // $ANTLR end "rule__PredicateDefinition__Group__3__Impl"
5160
5161
5162 // $ANTLR start "rule__PredicateDefinition__Group__4"
5163 // InternalProblem.g:1614:1: rule__PredicateDefinition__Group__4 : rule__PredicateDefinition__Group__4__Impl rule__PredicateDefinition__Group__5 ;
5164 public final void rule__PredicateDefinition__Group__4() throws RecognitionException {
5165
5166 int stackSize = keepStackSize();
5167
5168 try {
5169 // InternalProblem.g:1618:1: ( rule__PredicateDefinition__Group__4__Impl rule__PredicateDefinition__Group__5 )
5170 // InternalProblem.g:1619:2: rule__PredicateDefinition__Group__4__Impl rule__PredicateDefinition__Group__5
5171 {
5172 pushFollow(FOLLOW_18);
5173 rule__PredicateDefinition__Group__4__Impl();
5174
5175 state._fsp--;
5176
5177 pushFollow(FOLLOW_2);
5178 rule__PredicateDefinition__Group__5();
5179
5180 state._fsp--;
5181
5182
5183 }
5184
5185 }
5186 catch (RecognitionException re) {
5187 reportError(re);
5188 recover(input,re);
5189 }
5190 finally {
5191
5192 restoreStackSize(stackSize);
5193
5194 }
5195 return ;
5196 }
5197 // $ANTLR end "rule__PredicateDefinition__Group__4"
5198
5199
5200 // $ANTLR start "rule__PredicateDefinition__Group__4__Impl"
5201 // InternalProblem.g:1626:1: rule__PredicateDefinition__Group__4__Impl : ( ')' ) ;
5202 public final void rule__PredicateDefinition__Group__4__Impl() throws RecognitionException {
5203
5204 int stackSize = keepStackSize();
5205
5206 try {
5207 // InternalProblem.g:1630:1: ( ( ')' ) )
5208 // InternalProblem.g:1631:1: ( ')' )
5209 {
5210 // InternalProblem.g:1631:1: ( ')' )
5211 // InternalProblem.g:1632:2: ')'
5212 {
5213 before(grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
5214 match(input,28,FOLLOW_2);
5215 after(grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
5216
5217 }
5218
5219
5220 }
5221
5222 }
5223 catch (RecognitionException re) {
5224 reportError(re);
5225 recover(input,re);
5226 }
5227 finally {
5228
5229 restoreStackSize(stackSize);
5230
5231 }
5232 return ;
5233 }
5234 // $ANTLR end "rule__PredicateDefinition__Group__4__Impl"
5235
5236
5237 // $ANTLR start "rule__PredicateDefinition__Group__5"
5238 // InternalProblem.g:1641:1: rule__PredicateDefinition__Group__5 : rule__PredicateDefinition__Group__5__Impl rule__PredicateDefinition__Group__6 ;
5239 public final void rule__PredicateDefinition__Group__5() throws RecognitionException {
5240
5241 int stackSize = keepStackSize();
5242
5243 try {
5244 // InternalProblem.g:1645:1: ( rule__PredicateDefinition__Group__5__Impl rule__PredicateDefinition__Group__6 )
5245 // InternalProblem.g:1646:2: rule__PredicateDefinition__Group__5__Impl rule__PredicateDefinition__Group__6
5246 {
5247 pushFollow(FOLLOW_18);
5248 rule__PredicateDefinition__Group__5__Impl();
5249
5250 state._fsp--;
5251
5252 pushFollow(FOLLOW_2);
5253 rule__PredicateDefinition__Group__6();
5254
5255 state._fsp--;
5256
5257
5258 }
5259
5260 }
5261 catch (RecognitionException re) {
5262 reportError(re);
5263 recover(input,re);
5264 }
5265 finally {
5266
5267 restoreStackSize(stackSize);
5268
5269 }
5270 return ;
5271 }
5272 // $ANTLR end "rule__PredicateDefinition__Group__5"
5273
5274
5275 // $ANTLR start "rule__PredicateDefinition__Group__5__Impl"
5276 // InternalProblem.g:1653:1: rule__PredicateDefinition__Group__5__Impl : ( ( rule__PredicateDefinition__Group_5__0 )? ) ;
5277 public final void rule__PredicateDefinition__Group__5__Impl() throws RecognitionException {
5278
5279 int stackSize = keepStackSize();
5280
5281 try {
5282 // InternalProblem.g:1657:1: ( ( ( rule__PredicateDefinition__Group_5__0 )? ) )
5283 // InternalProblem.g:1658:1: ( ( rule__PredicateDefinition__Group_5__0 )? )
5284 {
5285 // InternalProblem.g:1658:1: ( ( rule__PredicateDefinition__Group_5__0 )? )
5286 // InternalProblem.g:1659:2: ( rule__PredicateDefinition__Group_5__0 )?
5287 {
5288 before(grammarAccess.getPredicateDefinitionAccess().getGroup_5());
5289 // InternalProblem.g:1660:2: ( rule__PredicateDefinition__Group_5__0 )?
5290 int alt21=2;
5291 int LA21_0 = input.LA(1);
5292
5293 if ( (LA21_0==29) ) {
5294 alt21=1;
5295 }
5296 switch (alt21) {
5297 case 1 :
5298 // InternalProblem.g:1660:3: rule__PredicateDefinition__Group_5__0
5299 {
5300 pushFollow(FOLLOW_2);
5301 rule__PredicateDefinition__Group_5__0();
5302
5303 state._fsp--;
5304
5305
5306 }
5307 break;
5308
5309 }
5310
5311 after(grammarAccess.getPredicateDefinitionAccess().getGroup_5());
5312
5313 }
5314
5315
5316 }
5317
5318 }
5319 catch (RecognitionException re) {
5320 reportError(re);
5321 recover(input,re);
5322 }
5323 finally {
5324
5325 restoreStackSize(stackSize);
5326
5327 }
5328 return ;
5329 }
5330 // $ANTLR end "rule__PredicateDefinition__Group__5__Impl"
5331
5332
5333 // $ANTLR start "rule__PredicateDefinition__Group__6"
5334 // InternalProblem.g:1668:1: rule__PredicateDefinition__Group__6 : rule__PredicateDefinition__Group__6__Impl ;
5335 public final void rule__PredicateDefinition__Group__6() throws RecognitionException {
5336
5337 int stackSize = keepStackSize();
5338
5339 try {
5340 // InternalProblem.g:1672:1: ( rule__PredicateDefinition__Group__6__Impl )
5341 // InternalProblem.g:1673:2: rule__PredicateDefinition__Group__6__Impl
5342 {
5343 pushFollow(FOLLOW_2);
5344 rule__PredicateDefinition__Group__6__Impl();
5345
5346 state._fsp--;
5347
5348
5349 }
5350
5351 }
5352 catch (RecognitionException re) {
5353 reportError(re);
5354 recover(input,re);
5355 }
5356 finally {
5357
5358 restoreStackSize(stackSize);
5359
5360 }
5361 return ;
5362 }
5363 // $ANTLR end "rule__PredicateDefinition__Group__6"
5364
5365
5366 // $ANTLR start "rule__PredicateDefinition__Group__6__Impl"
5367 // InternalProblem.g:1679:1: rule__PredicateDefinition__Group__6__Impl : ( '.' ) ;
5368 public final void rule__PredicateDefinition__Group__6__Impl() throws RecognitionException {
5369
5370 int stackSize = keepStackSize();
5371
5372 try {
5373 // InternalProblem.g:1683:1: ( ( '.' ) )
5374 // InternalProblem.g:1684:1: ( '.' )
5375 {
5376 // InternalProblem.g:1684:1: ( '.' )
5377 // InternalProblem.g:1685:2: '.'
5378 {
5379 before(grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
5380 match(input,21,FOLLOW_2);
5381 after(grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
5382
5383 }
5384
5385
5386 }
5387
5388 }
5389 catch (RecognitionException re) {
5390 reportError(re);
5391 recover(input,re);
5392 }
5393 finally {
5394
5395 restoreStackSize(stackSize);
5396
5397 }
5398 return ;
5399 }
5400 // $ANTLR end "rule__PredicateDefinition__Group__6__Impl"
5401
5402
5403 // $ANTLR start "rule__PredicateDefinition__Group_0_0__0"
5404 // InternalProblem.g:1695:1: rule__PredicateDefinition__Group_0_0__0 : rule__PredicateDefinition__Group_0_0__0__Impl rule__PredicateDefinition__Group_0_0__1 ;
5405 public final void rule__PredicateDefinition__Group_0_0__0() throws RecognitionException {
5406
5407 int stackSize = keepStackSize();
5408
5409 try {
5410 // InternalProblem.g:1699:1: ( rule__PredicateDefinition__Group_0_0__0__Impl rule__PredicateDefinition__Group_0_0__1 )
5411 // InternalProblem.g:1700:2: rule__PredicateDefinition__Group_0_0__0__Impl rule__PredicateDefinition__Group_0_0__1
5412 {
5413 pushFollow(FOLLOW_19);
5414 rule__PredicateDefinition__Group_0_0__0__Impl();
5415
5416 state._fsp--;
5417
5418 pushFollow(FOLLOW_2);
5419 rule__PredicateDefinition__Group_0_0__1();
5420
5421 state._fsp--;
5422
5423
5424 }
5425
5426 }
5427 catch (RecognitionException re) {
5428 reportError(re);
5429 recover(input,re);
5430 }
5431 finally {
5432
5433 restoreStackSize(stackSize);
5434
5435 }
5436 return ;
5437 }
5438 // $ANTLR end "rule__PredicateDefinition__Group_0_0__0"
5439
5440
5441 // $ANTLR start "rule__PredicateDefinition__Group_0_0__0__Impl"
5442 // InternalProblem.g:1707:1: rule__PredicateDefinition__Group_0_0__0__Impl : ( ( rule__PredicateDefinition__ErrorAssignment_0_0_0 ) ) ;
5443 public final void rule__PredicateDefinition__Group_0_0__0__Impl() throws RecognitionException {
5444
5445 int stackSize = keepStackSize();
5446
5447 try {
5448 // InternalProblem.g:1711:1: ( ( ( rule__PredicateDefinition__ErrorAssignment_0_0_0 ) ) )
5449 // InternalProblem.g:1712:1: ( ( rule__PredicateDefinition__ErrorAssignment_0_0_0 ) )
5450 {
5451 // InternalProblem.g:1712:1: ( ( rule__PredicateDefinition__ErrorAssignment_0_0_0 ) )
5452 // InternalProblem.g:1713:2: ( rule__PredicateDefinition__ErrorAssignment_0_0_0 )
5453 {
5454 before(grammarAccess.getPredicateDefinitionAccess().getErrorAssignment_0_0_0());
5455 // InternalProblem.g:1714:2: ( rule__PredicateDefinition__ErrorAssignment_0_0_0 )
5456 // InternalProblem.g:1714:3: rule__PredicateDefinition__ErrorAssignment_0_0_0
5457 {
5458 pushFollow(FOLLOW_2);
5459 rule__PredicateDefinition__ErrorAssignment_0_0_0();
5460
5461 state._fsp--;
5462
5463
5464 }
5465
5466 after(grammarAccess.getPredicateDefinitionAccess().getErrorAssignment_0_0_0());
5467
5468 }
5469
5470
5471 }
5472
5473 }
5474 catch (RecognitionException re) {
5475 reportError(re);
5476 recover(input,re);
5477 }
5478 finally {
5479
5480 restoreStackSize(stackSize);
5481
5482 }
5483 return ;
5484 }
5485 // $ANTLR end "rule__PredicateDefinition__Group_0_0__0__Impl"
5486
5487
5488 // $ANTLR start "rule__PredicateDefinition__Group_0_0__1"
5489 // InternalProblem.g:1722:1: rule__PredicateDefinition__Group_0_0__1 : rule__PredicateDefinition__Group_0_0__1__Impl ;
5490 public final void rule__PredicateDefinition__Group_0_0__1() throws RecognitionException {
5491
5492 int stackSize = keepStackSize();
5493
5494 try {
5495 // InternalProblem.g:1726:1: ( rule__PredicateDefinition__Group_0_0__1__Impl )
5496 // InternalProblem.g:1727:2: rule__PredicateDefinition__Group_0_0__1__Impl
5497 {
5498 pushFollow(FOLLOW_2);
5499 rule__PredicateDefinition__Group_0_0__1__Impl();
5500
5501 state._fsp--;
5502
5503
5504 }
5505
5506 }
5507 catch (RecognitionException re) {
5508 reportError(re);
5509 recover(input,re);
5510 }
5511 finally {
5512
5513 restoreStackSize(stackSize);
5514
5515 }
5516 return ;
5517 }
5518 // $ANTLR end "rule__PredicateDefinition__Group_0_0__1"
5519
5520
5521 // $ANTLR start "rule__PredicateDefinition__Group_0_0__1__Impl"
5522 // InternalProblem.g:1733:1: rule__PredicateDefinition__Group_0_0__1__Impl : ( ( 'pred' )? ) ;
5523 public final void rule__PredicateDefinition__Group_0_0__1__Impl() throws RecognitionException {
5524
5525 int stackSize = keepStackSize();
5526
5527 try {
5528 // InternalProblem.g:1737:1: ( ( ( 'pred' )? ) )
5529 // InternalProblem.g:1738:1: ( ( 'pred' )? )
5530 {
5531 // InternalProblem.g:1738:1: ( ( 'pred' )? )
5532 // InternalProblem.g:1739:2: ( 'pred' )?
5533 {
5534 before(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
5535 // InternalProblem.g:1740:2: ( 'pred' )?
5536 int alt22=2;
5537 int LA22_0 = input.LA(1);
5538
5539 if ( (LA22_0==12) ) {
5540 alt22=1;
5541 }
5542 switch (alt22) {
5543 case 1 :
5544 // InternalProblem.g:1740:3: 'pred'
5545 {
5546 match(input,12,FOLLOW_2);
5547
5548 }
5549 break;
5550
5551 }
5552
5553 after(grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
5554
5555 }
5556
5557
5558 }
5559
5560 }
5561 catch (RecognitionException re) {
5562 reportError(re);
5563 recover(input,re);
5564 }
5565 finally {
5566
5567 restoreStackSize(stackSize);
5568
5569 }
5570 return ;
5571 }
5572 // $ANTLR end "rule__PredicateDefinition__Group_0_0__1__Impl"
5573
5574
5575 // $ANTLR start "rule__PredicateDefinition__Group_3__0"
5576 // InternalProblem.g:1749:1: rule__PredicateDefinition__Group_3__0 : rule__PredicateDefinition__Group_3__0__Impl rule__PredicateDefinition__Group_3__1 ;
5577 public final void rule__PredicateDefinition__Group_3__0() throws RecognitionException {
5578
5579 int stackSize = keepStackSize();
5580
5581 try {
5582 // InternalProblem.g:1753:1: ( rule__PredicateDefinition__Group_3__0__Impl rule__PredicateDefinition__Group_3__1 )
5583 // InternalProblem.g:1754:2: rule__PredicateDefinition__Group_3__0__Impl rule__PredicateDefinition__Group_3__1
5584 {
5585 pushFollow(FOLLOW_10);
5586 rule__PredicateDefinition__Group_3__0__Impl();
5587
5588 state._fsp--;
5589
5590 pushFollow(FOLLOW_2);
5591 rule__PredicateDefinition__Group_3__1();
5592
5593 state._fsp--;
5594
5595
5596 }
5597
5598 }
5599 catch (RecognitionException re) {
5600 reportError(re);
5601 recover(input,re);
5602 }
5603 finally {
5604
5605 restoreStackSize(stackSize);
5606
5607 }
5608 return ;
5609 }
5610 // $ANTLR end "rule__PredicateDefinition__Group_3__0"
5611
5612
5613 // $ANTLR start "rule__PredicateDefinition__Group_3__0__Impl"
5614 // InternalProblem.g:1761:1: rule__PredicateDefinition__Group_3__0__Impl : ( ( rule__PredicateDefinition__ParametersAssignment_3_0 ) ) ;
5615 public final void rule__PredicateDefinition__Group_3__0__Impl() throws RecognitionException {
5616
5617 int stackSize = keepStackSize();
5618
5619 try {
5620 // InternalProblem.g:1765:1: ( ( ( rule__PredicateDefinition__ParametersAssignment_3_0 ) ) )
5621 // InternalProblem.g:1766:1: ( ( rule__PredicateDefinition__ParametersAssignment_3_0 ) )
5622 {
5623 // InternalProblem.g:1766:1: ( ( rule__PredicateDefinition__ParametersAssignment_3_0 ) )
5624 // InternalProblem.g:1767:2: ( rule__PredicateDefinition__ParametersAssignment_3_0 )
5625 {
5626 before(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_0());
5627 // InternalProblem.g:1768:2: ( rule__PredicateDefinition__ParametersAssignment_3_0 )
5628 // InternalProblem.g:1768:3: rule__PredicateDefinition__ParametersAssignment_3_0
5629 {
5630 pushFollow(FOLLOW_2);
5631 rule__PredicateDefinition__ParametersAssignment_3_0();
5632
5633 state._fsp--;
5634
5635
5636 }
5637
5638 after(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_0());
5639
5640 }
5641
5642
5643 }
5644
5645 }
5646 catch (RecognitionException re) {
5647 reportError(re);
5648 recover(input,re);
5649 }
5650 finally {
5651
5652 restoreStackSize(stackSize);
5653
5654 }
5655 return ;
5656 }
5657 // $ANTLR end "rule__PredicateDefinition__Group_3__0__Impl"
5658
5659
5660 // $ANTLR start "rule__PredicateDefinition__Group_3__1"
5661 // InternalProblem.g:1776:1: rule__PredicateDefinition__Group_3__1 : rule__PredicateDefinition__Group_3__1__Impl ;
5662 public final void rule__PredicateDefinition__Group_3__1() throws RecognitionException {
5663
5664 int stackSize = keepStackSize();
5665
5666 try {
5667 // InternalProblem.g:1780:1: ( rule__PredicateDefinition__Group_3__1__Impl )
5668 // InternalProblem.g:1781:2: rule__PredicateDefinition__Group_3__1__Impl
5669 {
5670 pushFollow(FOLLOW_2);
5671 rule__PredicateDefinition__Group_3__1__Impl();
5672
5673 state._fsp--;
5674
5675
5676 }
5677
5678 }
5679 catch (RecognitionException re) {
5680 reportError(re);
5681 recover(input,re);
5682 }
5683 finally {
5684
5685 restoreStackSize(stackSize);
5686
5687 }
5688 return ;
5689 }
5690 // $ANTLR end "rule__PredicateDefinition__Group_3__1"
5691
5692
5693 // $ANTLR start "rule__PredicateDefinition__Group_3__1__Impl"
5694 // InternalProblem.g:1787:1: rule__PredicateDefinition__Group_3__1__Impl : ( ( rule__PredicateDefinition__Group_3_1__0 )* ) ;
5695 public final void rule__PredicateDefinition__Group_3__1__Impl() throws RecognitionException {
5696
5697 int stackSize = keepStackSize();
5698
5699 try {
5700 // InternalProblem.g:1791:1: ( ( ( rule__PredicateDefinition__Group_3_1__0 )* ) )
5701 // InternalProblem.g:1792:1: ( ( rule__PredicateDefinition__Group_3_1__0 )* )
5702 {
5703 // InternalProblem.g:1792:1: ( ( rule__PredicateDefinition__Group_3_1__0 )* )
5704 // InternalProblem.g:1793:2: ( rule__PredicateDefinition__Group_3_1__0 )*
5705 {
5706 before(grammarAccess.getPredicateDefinitionAccess().getGroup_3_1());
5707 // InternalProblem.g:1794:2: ( rule__PredicateDefinition__Group_3_1__0 )*
5708 loop23:
5709 do {
5710 int alt23=2;
5711 int LA23_0 = input.LA(1);
5712
5713 if ( (LA23_0==25) ) {
5714 alt23=1;
5715 }
5716
5717
5718 switch (alt23) {
5719 case 1 :
5720 // InternalProblem.g:1794:3: rule__PredicateDefinition__Group_3_1__0
5721 {
5722 pushFollow(FOLLOW_7);
5723 rule__PredicateDefinition__Group_3_1__0();
5724
5725 state._fsp--;
5726
5727
5728 }
5729 break;
5730
5731 default :
5732 break loop23;
5733 }
5734 } while (true);
5735
5736 after(grammarAccess.getPredicateDefinitionAccess().getGroup_3_1());
5737
5738 }
5739
5740
5741 }
5742
5743 }
5744 catch (RecognitionException re) {
5745 reportError(re);
5746 recover(input,re);
5747 }
5748 finally {
5749
5750 restoreStackSize(stackSize);
5751
5752 }
5753 return ;
5754 }
5755 // $ANTLR end "rule__PredicateDefinition__Group_3__1__Impl"
5756
5757
5758 // $ANTLR start "rule__PredicateDefinition__Group_3_1__0"
5759 // InternalProblem.g:1803:1: rule__PredicateDefinition__Group_3_1__0 : rule__PredicateDefinition__Group_3_1__0__Impl rule__PredicateDefinition__Group_3_1__1 ;
5760 public final void rule__PredicateDefinition__Group_3_1__0() throws RecognitionException {
5761
5762 int stackSize = keepStackSize();
5763
5764 try {
5765 // InternalProblem.g:1807:1: ( rule__PredicateDefinition__Group_3_1__0__Impl rule__PredicateDefinition__Group_3_1__1 )
5766 // InternalProblem.g:1808:2: rule__PredicateDefinition__Group_3_1__0__Impl rule__PredicateDefinition__Group_3_1__1
5767 {
5768 pushFollow(FOLLOW_5);
5769 rule__PredicateDefinition__Group_3_1__0__Impl();
5770
5771 state._fsp--;
5772
5773 pushFollow(FOLLOW_2);
5774 rule__PredicateDefinition__Group_3_1__1();
5775
5776 state._fsp--;
5777
5778
5779 }
5780
5781 }
5782 catch (RecognitionException re) {
5783 reportError(re);
5784 recover(input,re);
5785 }
5786 finally {
5787
5788 restoreStackSize(stackSize);
5789
5790 }
5791 return ;
5792 }
5793 // $ANTLR end "rule__PredicateDefinition__Group_3_1__0"
5794
5795
5796 // $ANTLR start "rule__PredicateDefinition__Group_3_1__0__Impl"
5797 // InternalProblem.g:1815:1: rule__PredicateDefinition__Group_3_1__0__Impl : ( ',' ) ;
5798 public final void rule__PredicateDefinition__Group_3_1__0__Impl() throws RecognitionException {
5799
5800 int stackSize = keepStackSize();
5801
5802 try {
5803 // InternalProblem.g:1819:1: ( ( ',' ) )
5804 // InternalProblem.g:1820:1: ( ',' )
5805 {
5806 // InternalProblem.g:1820:1: ( ',' )
5807 // InternalProblem.g:1821:2: ','
5808 {
5809 before(grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
5810 match(input,25,FOLLOW_2);
5811 after(grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
5812
5813 }
5814
5815
5816 }
5817
5818 }
5819 catch (RecognitionException re) {
5820 reportError(re);
5821 recover(input,re);
5822 }
5823 finally {
5824
5825 restoreStackSize(stackSize);
5826
5827 }
5828 return ;
5829 }
5830 // $ANTLR end "rule__PredicateDefinition__Group_3_1__0__Impl"
5831
5832
5833 // $ANTLR start "rule__PredicateDefinition__Group_3_1__1"
5834 // InternalProblem.g:1830:1: rule__PredicateDefinition__Group_3_1__1 : rule__PredicateDefinition__Group_3_1__1__Impl ;
5835 public final void rule__PredicateDefinition__Group_3_1__1() throws RecognitionException {
5836
5837 int stackSize = keepStackSize();
5838
5839 try {
5840 // InternalProblem.g:1834:1: ( rule__PredicateDefinition__Group_3_1__1__Impl )
5841 // InternalProblem.g:1835:2: rule__PredicateDefinition__Group_3_1__1__Impl
5842 {
5843 pushFollow(FOLLOW_2);
5844 rule__PredicateDefinition__Group_3_1__1__Impl();
5845
5846 state._fsp--;
5847
5848
5849 }
5850
5851 }
5852 catch (RecognitionException re) {
5853 reportError(re);
5854 recover(input,re);
5855 }
5856 finally {
5857
5858 restoreStackSize(stackSize);
5859
5860 }
5861 return ;
5862 }
5863 // $ANTLR end "rule__PredicateDefinition__Group_3_1__1"
5864
5865
5866 // $ANTLR start "rule__PredicateDefinition__Group_3_1__1__Impl"
5867 // InternalProblem.g:1841:1: rule__PredicateDefinition__Group_3_1__1__Impl : ( ( rule__PredicateDefinition__ParametersAssignment_3_1_1 ) ) ;
5868 public final void rule__PredicateDefinition__Group_3_1__1__Impl() throws RecognitionException {
5869
5870 int stackSize = keepStackSize();
5871
5872 try {
5873 // InternalProblem.g:1845:1: ( ( ( rule__PredicateDefinition__ParametersAssignment_3_1_1 ) ) )
5874 // InternalProblem.g:1846:1: ( ( rule__PredicateDefinition__ParametersAssignment_3_1_1 ) )
5875 {
5876 // InternalProblem.g:1846:1: ( ( rule__PredicateDefinition__ParametersAssignment_3_1_1 ) )
5877 // InternalProblem.g:1847:2: ( rule__PredicateDefinition__ParametersAssignment_3_1_1 )
5878 {
5879 before(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_1_1());
5880 // InternalProblem.g:1848:2: ( rule__PredicateDefinition__ParametersAssignment_3_1_1 )
5881 // InternalProblem.g:1848:3: rule__PredicateDefinition__ParametersAssignment_3_1_1
5882 {
5883 pushFollow(FOLLOW_2);
5884 rule__PredicateDefinition__ParametersAssignment_3_1_1();
5885
5886 state._fsp--;
5887
5888
5889 }
5890
5891 after(grammarAccess.getPredicateDefinitionAccess().getParametersAssignment_3_1_1());
5892
5893 }
5894
5895
5896 }
5897
5898 }
5899 catch (RecognitionException re) {
5900 reportError(re);
5901 recover(input,re);
5902 }
5903 finally {
5904
5905 restoreStackSize(stackSize);
5906
5907 }
5908 return ;
5909 }
5910 // $ANTLR end "rule__PredicateDefinition__Group_3_1__1__Impl"
5911
5912
5913 // $ANTLR start "rule__PredicateDefinition__Group_5__0"
5914 // InternalProblem.g:1857:1: rule__PredicateDefinition__Group_5__0 : rule__PredicateDefinition__Group_5__0__Impl rule__PredicateDefinition__Group_5__1 ;
5915 public final void rule__PredicateDefinition__Group_5__0() throws RecognitionException {
5916
5917 int stackSize = keepStackSize();
5918
5919 try {
5920 // InternalProblem.g:1861:1: ( rule__PredicateDefinition__Group_5__0__Impl rule__PredicateDefinition__Group_5__1 )
5921 // InternalProblem.g:1862:2: rule__PredicateDefinition__Group_5__0__Impl rule__PredicateDefinition__Group_5__1
5922 {
5923 pushFollow(FOLLOW_20);
5924 rule__PredicateDefinition__Group_5__0__Impl();
5925
5926 state._fsp--;
5927
5928 pushFollow(FOLLOW_2);
5929 rule__PredicateDefinition__Group_5__1();
5930
5931 state._fsp--;
5932
5933
5934 }
5935
5936 }
5937 catch (RecognitionException re) {
5938 reportError(re);
5939 recover(input,re);
5940 }
5941 finally {
5942
5943 restoreStackSize(stackSize);
5944
5945 }
5946 return ;
5947 }
5948 // $ANTLR end "rule__PredicateDefinition__Group_5__0"
5949
5950
5951 // $ANTLR start "rule__PredicateDefinition__Group_5__0__Impl"
5952 // InternalProblem.g:1869:1: rule__PredicateDefinition__Group_5__0__Impl : ( ':=' ) ;
5953 public final void rule__PredicateDefinition__Group_5__0__Impl() throws RecognitionException {
5954
5955 int stackSize = keepStackSize();
5956
5957 try {
5958 // InternalProblem.g:1873:1: ( ( ':=' ) )
5959 // InternalProblem.g:1874:1: ( ':=' )
5960 {
5961 // InternalProblem.g:1874:1: ( ':=' )
5962 // InternalProblem.g:1875:2: ':='
5963 {
5964 before(grammarAccess.getPredicateDefinitionAccess().getColonEqualsSignKeyword_5_0());
5965 match(input,29,FOLLOW_2);
5966 after(grammarAccess.getPredicateDefinitionAccess().getColonEqualsSignKeyword_5_0());
5967
5968 }
5969
5970
5971 }
5972
5973 }
5974 catch (RecognitionException re) {
5975 reportError(re);
5976 recover(input,re);
5977 }
5978 finally {
5979
5980 restoreStackSize(stackSize);
5981
5982 }
5983 return ;
5984 }
5985 // $ANTLR end "rule__PredicateDefinition__Group_5__0__Impl"
5986
5987
5988 // $ANTLR start "rule__PredicateDefinition__Group_5__1"
5989 // InternalProblem.g:1884:1: rule__PredicateDefinition__Group_5__1 : rule__PredicateDefinition__Group_5__1__Impl rule__PredicateDefinition__Group_5__2 ;
5990 public final void rule__PredicateDefinition__Group_5__1() throws RecognitionException {
5991
5992 int stackSize = keepStackSize();
5993
5994 try {
5995 // InternalProblem.g:1888:1: ( rule__PredicateDefinition__Group_5__1__Impl rule__PredicateDefinition__Group_5__2 )
5996 // InternalProblem.g:1889:2: rule__PredicateDefinition__Group_5__1__Impl rule__PredicateDefinition__Group_5__2
5997 {
5998 pushFollow(FOLLOW_21);
5999 rule__PredicateDefinition__Group_5__1__Impl();
6000
6001 state._fsp--;
6002
6003 pushFollow(FOLLOW_2);
6004 rule__PredicateDefinition__Group_5__2();
6005
6006 state._fsp--;
6007
6008
6009 }
6010
6011 }
6012 catch (RecognitionException re) {
6013 reportError(re);
6014 recover(input,re);
6015 }
6016 finally {
6017
6018 restoreStackSize(stackSize);
6019
6020 }
6021 return ;
6022 }
6023 // $ANTLR end "rule__PredicateDefinition__Group_5__1"
6024
6025
6026 // $ANTLR start "rule__PredicateDefinition__Group_5__1__Impl"
6027 // InternalProblem.g:1896:1: rule__PredicateDefinition__Group_5__1__Impl : ( ( rule__PredicateDefinition__BodiesAssignment_5_1 ) ) ;
6028 public final void rule__PredicateDefinition__Group_5__1__Impl() throws RecognitionException {
6029
6030 int stackSize = keepStackSize();
6031
6032 try {
6033 // InternalProblem.g:1900:1: ( ( ( rule__PredicateDefinition__BodiesAssignment_5_1 ) ) )
6034 // InternalProblem.g:1901:1: ( ( rule__PredicateDefinition__BodiesAssignment_5_1 ) )
6035 {
6036 // InternalProblem.g:1901:1: ( ( rule__PredicateDefinition__BodiesAssignment_5_1 ) )
6037 // InternalProblem.g:1902:2: ( rule__PredicateDefinition__BodiesAssignment_5_1 )
6038 {
6039 before(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_1());
6040 // InternalProblem.g:1903:2: ( rule__PredicateDefinition__BodiesAssignment_5_1 )
6041 // InternalProblem.g:1903:3: rule__PredicateDefinition__BodiesAssignment_5_1
6042 {
6043 pushFollow(FOLLOW_2);
6044 rule__PredicateDefinition__BodiesAssignment_5_1();
6045
6046 state._fsp--;
6047
6048
6049 }
6050
6051 after(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_1());
6052
6053 }
6054
6055
6056 }
6057
6058 }
6059 catch (RecognitionException re) {
6060 reportError(re);
6061 recover(input,re);
6062 }
6063 finally {
6064
6065 restoreStackSize(stackSize);
6066
6067 }
6068 return ;
6069 }
6070 // $ANTLR end "rule__PredicateDefinition__Group_5__1__Impl"
6071
6072
6073 // $ANTLR start "rule__PredicateDefinition__Group_5__2"
6074 // InternalProblem.g:1911:1: rule__PredicateDefinition__Group_5__2 : rule__PredicateDefinition__Group_5__2__Impl ;
6075 public final void rule__PredicateDefinition__Group_5__2() throws RecognitionException {
6076
6077 int stackSize = keepStackSize();
6078
6079 try {
6080 // InternalProblem.g:1915:1: ( rule__PredicateDefinition__Group_5__2__Impl )
6081 // InternalProblem.g:1916:2: rule__PredicateDefinition__Group_5__2__Impl
6082 {
6083 pushFollow(FOLLOW_2);
6084 rule__PredicateDefinition__Group_5__2__Impl();
6085
6086 state._fsp--;
6087
6088
6089 }
6090
6091 }
6092 catch (RecognitionException re) {
6093 reportError(re);
6094 recover(input,re);
6095 }
6096 finally {
6097
6098 restoreStackSize(stackSize);
6099
6100 }
6101 return ;
6102 }
6103 // $ANTLR end "rule__PredicateDefinition__Group_5__2"
6104
6105
6106 // $ANTLR start "rule__PredicateDefinition__Group_5__2__Impl"
6107 // InternalProblem.g:1922:1: rule__PredicateDefinition__Group_5__2__Impl : ( ( rule__PredicateDefinition__Group_5_2__0 )* ) ;
6108 public final void rule__PredicateDefinition__Group_5__2__Impl() throws RecognitionException {
6109
6110 int stackSize = keepStackSize();
6111
6112 try {
6113 // InternalProblem.g:1926:1: ( ( ( rule__PredicateDefinition__Group_5_2__0 )* ) )
6114 // InternalProblem.g:1927:1: ( ( rule__PredicateDefinition__Group_5_2__0 )* )
6115 {
6116 // InternalProblem.g:1927:1: ( ( rule__PredicateDefinition__Group_5_2__0 )* )
6117 // InternalProblem.g:1928:2: ( rule__PredicateDefinition__Group_5_2__0 )*
6118 {
6119 before(grammarAccess.getPredicateDefinitionAccess().getGroup_5_2());
6120 // InternalProblem.g:1929:2: ( rule__PredicateDefinition__Group_5_2__0 )*
6121 loop24:
6122 do {
6123 int alt24=2;
6124 int LA24_0 = input.LA(1);
6125
6126 if ( (LA24_0==30) ) {
6127 alt24=1;
6128 }
6129
6130
6131 switch (alt24) {
6132 case 1 :
6133 // InternalProblem.g:1929:3: rule__PredicateDefinition__Group_5_2__0
6134 {
6135 pushFollow(FOLLOW_22);
6136 rule__PredicateDefinition__Group_5_2__0();
6137
6138 state._fsp--;
6139
6140
6141 }
6142 break;
6143
6144 default :
6145 break loop24;
6146 }
6147 } while (true);
6148
6149 after(grammarAccess.getPredicateDefinitionAccess().getGroup_5_2());
6150
6151 }
6152
6153
6154 }
6155
6156 }
6157 catch (RecognitionException re) {
6158 reportError(re);
6159 recover(input,re);
6160 }
6161 finally {
6162
6163 restoreStackSize(stackSize);
6164
6165 }
6166 return ;
6167 }
6168 // $ANTLR end "rule__PredicateDefinition__Group_5__2__Impl"
6169
6170
6171 // $ANTLR start "rule__PredicateDefinition__Group_5_2__0"
6172 // InternalProblem.g:1938:1: rule__PredicateDefinition__Group_5_2__0 : rule__PredicateDefinition__Group_5_2__0__Impl rule__PredicateDefinition__Group_5_2__1 ;
6173 public final void rule__PredicateDefinition__Group_5_2__0() throws RecognitionException {
6174
6175 int stackSize = keepStackSize();
6176
6177 try {
6178 // InternalProblem.g:1942:1: ( rule__PredicateDefinition__Group_5_2__0__Impl rule__PredicateDefinition__Group_5_2__1 )
6179 // InternalProblem.g:1943:2: rule__PredicateDefinition__Group_5_2__0__Impl rule__PredicateDefinition__Group_5_2__1
6180 {
6181 pushFollow(FOLLOW_20);
6182 rule__PredicateDefinition__Group_5_2__0__Impl();
6183
6184 state._fsp--;
6185
6186 pushFollow(FOLLOW_2);
6187 rule__PredicateDefinition__Group_5_2__1();
6188
6189 state._fsp--;
6190
6191
6192 }
6193
6194 }
6195 catch (RecognitionException re) {
6196 reportError(re);
6197 recover(input,re);
6198 }
6199 finally {
6200
6201 restoreStackSize(stackSize);
6202
6203 }
6204 return ;
6205 }
6206 // $ANTLR end "rule__PredicateDefinition__Group_5_2__0"
6207
6208
6209 // $ANTLR start "rule__PredicateDefinition__Group_5_2__0__Impl"
6210 // InternalProblem.g:1950:1: rule__PredicateDefinition__Group_5_2__0__Impl : ( ';' ) ;
6211 public final void rule__PredicateDefinition__Group_5_2__0__Impl() throws RecognitionException {
6212
6213 int stackSize = keepStackSize();
6214
6215 try {
6216 // InternalProblem.g:1954:1: ( ( ';' ) )
6217 // InternalProblem.g:1955:1: ( ';' )
6218 {
6219 // InternalProblem.g:1955:1: ( ';' )
6220 // InternalProblem.g:1956:2: ';'
6221 {
6222 before(grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
6223 match(input,30,FOLLOW_2);
6224 after(grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
6225
6226 }
6227
6228
6229 }
6230
6231 }
6232 catch (RecognitionException re) {
6233 reportError(re);
6234 recover(input,re);
6235 }
6236 finally {
6237
6238 restoreStackSize(stackSize);
6239
6240 }
6241 return ;
6242 }
6243 // $ANTLR end "rule__PredicateDefinition__Group_5_2__0__Impl"
6244
6245
6246 // $ANTLR start "rule__PredicateDefinition__Group_5_2__1"
6247 // InternalProblem.g:1965:1: rule__PredicateDefinition__Group_5_2__1 : rule__PredicateDefinition__Group_5_2__1__Impl ;
6248 public final void rule__PredicateDefinition__Group_5_2__1() throws RecognitionException {
6249
6250 int stackSize = keepStackSize();
6251
6252 try {
6253 // InternalProblem.g:1969:1: ( rule__PredicateDefinition__Group_5_2__1__Impl )
6254 // InternalProblem.g:1970:2: rule__PredicateDefinition__Group_5_2__1__Impl
6255 {
6256 pushFollow(FOLLOW_2);
6257 rule__PredicateDefinition__Group_5_2__1__Impl();
6258
6259 state._fsp--;
6260
6261
6262 }
6263
6264 }
6265 catch (RecognitionException re) {
6266 reportError(re);
6267 recover(input,re);
6268 }
6269 finally {
6270
6271 restoreStackSize(stackSize);
6272
6273 }
6274 return ;
6275 }
6276 // $ANTLR end "rule__PredicateDefinition__Group_5_2__1"
6277
6278
6279 // $ANTLR start "rule__PredicateDefinition__Group_5_2__1__Impl"
6280 // InternalProblem.g:1976:1: rule__PredicateDefinition__Group_5_2__1__Impl : ( ( rule__PredicateDefinition__BodiesAssignment_5_2_1 ) ) ;
6281 public final void rule__PredicateDefinition__Group_5_2__1__Impl() throws RecognitionException {
6282
6283 int stackSize = keepStackSize();
6284
6285 try {
6286 // InternalProblem.g:1980:1: ( ( ( rule__PredicateDefinition__BodiesAssignment_5_2_1 ) ) )
6287 // InternalProblem.g:1981:1: ( ( rule__PredicateDefinition__BodiesAssignment_5_2_1 ) )
6288 {
6289 // InternalProblem.g:1981:1: ( ( rule__PredicateDefinition__BodiesAssignment_5_2_1 ) )
6290 // InternalProblem.g:1982:2: ( rule__PredicateDefinition__BodiesAssignment_5_2_1 )
6291 {
6292 before(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_2_1());
6293 // InternalProblem.g:1983:2: ( rule__PredicateDefinition__BodiesAssignment_5_2_1 )
6294 // InternalProblem.g:1983:3: rule__PredicateDefinition__BodiesAssignment_5_2_1
6295 {
6296 pushFollow(FOLLOW_2);
6297 rule__PredicateDefinition__BodiesAssignment_5_2_1();
6298
6299 state._fsp--;
6300
6301
6302 }
6303
6304 after(grammarAccess.getPredicateDefinitionAccess().getBodiesAssignment_5_2_1());
6305
6306 }
6307
6308
6309 }
6310
6311 }
6312 catch (RecognitionException re) {
6313 reportError(re);
6314 recover(input,re);
6315 }
6316 finally {
6317
6318 restoreStackSize(stackSize);
6319
6320 }
6321 return ;
6322 }
6323 // $ANTLR end "rule__PredicateDefinition__Group_5_2__1__Impl"
6324
6325
6326 // $ANTLR start "rule__Parameter__Group__0"
6327 // InternalProblem.g:1992:1: rule__Parameter__Group__0 : rule__Parameter__Group__0__Impl rule__Parameter__Group__1 ;
6328 public final void rule__Parameter__Group__0() throws RecognitionException {
6329
6330 int stackSize = keepStackSize();
6331
6332 try {
6333 // InternalProblem.g:1996:1: ( rule__Parameter__Group__0__Impl rule__Parameter__Group__1 )
6334 // InternalProblem.g:1997:2: rule__Parameter__Group__0__Impl rule__Parameter__Group__1
6335 {
6336 pushFollow(FOLLOW_5);
6337 rule__Parameter__Group__0__Impl();
6338
6339 state._fsp--;
6340
6341 pushFollow(FOLLOW_2);
6342 rule__Parameter__Group__1();
6343
6344 state._fsp--;
6345
6346
6347 }
6348
6349 }
6350 catch (RecognitionException re) {
6351 reportError(re);
6352 recover(input,re);
6353 }
6354 finally {
6355
6356 restoreStackSize(stackSize);
6357
6358 }
6359 return ;
6360 }
6361 // $ANTLR end "rule__Parameter__Group__0"
6362
6363
6364 // $ANTLR start "rule__Parameter__Group__0__Impl"
6365 // InternalProblem.g:2004:1: rule__Parameter__Group__0__Impl : ( ( rule__Parameter__ParameterTypeAssignment_0 ) ) ;
6366 public final void rule__Parameter__Group__0__Impl() throws RecognitionException {
6367
6368 int stackSize = keepStackSize();
6369
6370 try {
6371 // InternalProblem.g:2008:1: ( ( ( rule__Parameter__ParameterTypeAssignment_0 ) ) )
6372 // InternalProblem.g:2009:1: ( ( rule__Parameter__ParameterTypeAssignment_0 ) )
6373 {
6374 // InternalProblem.g:2009:1: ( ( rule__Parameter__ParameterTypeAssignment_0 ) )
6375 // InternalProblem.g:2010:2: ( rule__Parameter__ParameterTypeAssignment_0 )
6376 {
6377 before(grammarAccess.getParameterAccess().getParameterTypeAssignment_0());
6378 // InternalProblem.g:2011:2: ( rule__Parameter__ParameterTypeAssignment_0 )
6379 // InternalProblem.g:2011:3: rule__Parameter__ParameterTypeAssignment_0
6380 {
6381 pushFollow(FOLLOW_2);
6382 rule__Parameter__ParameterTypeAssignment_0();
6383
6384 state._fsp--;
6385
6386
6387 }
6388
6389 after(grammarAccess.getParameterAccess().getParameterTypeAssignment_0());
6390
6391 }
6392
6393
6394 }
6395
6396 }
6397 catch (RecognitionException re) {
6398 reportError(re);
6399 recover(input,re);
6400 }
6401 finally {
6402
6403 restoreStackSize(stackSize);
6404
6405 }
6406 return ;
6407 }
6408 // $ANTLR end "rule__Parameter__Group__0__Impl"
6409
6410
6411 // $ANTLR start "rule__Parameter__Group__1"
6412 // InternalProblem.g:2019:1: rule__Parameter__Group__1 : rule__Parameter__Group__1__Impl ;
6413 public final void rule__Parameter__Group__1() throws RecognitionException {
6414
6415 int stackSize = keepStackSize();
6416
6417 try {
6418 // InternalProblem.g:2023:1: ( rule__Parameter__Group__1__Impl )
6419 // InternalProblem.g:2024:2: rule__Parameter__Group__1__Impl
6420 {
6421 pushFollow(FOLLOW_2);
6422 rule__Parameter__Group__1__Impl();
6423
6424 state._fsp--;
6425
6426
6427 }
6428
6429 }
6430 catch (RecognitionException re) {
6431 reportError(re);
6432 recover(input,re);
6433 }
6434 finally {
6435
6436 restoreStackSize(stackSize);
6437
6438 }
6439 return ;
6440 }
6441 // $ANTLR end "rule__Parameter__Group__1"
6442
6443
6444 // $ANTLR start "rule__Parameter__Group__1__Impl"
6445 // InternalProblem.g:2030:1: rule__Parameter__Group__1__Impl : ( ( rule__Parameter__NameAssignment_1 ) ) ;
6446 public final void rule__Parameter__Group__1__Impl() throws RecognitionException {
6447
6448 int stackSize = keepStackSize();
6449
6450 try {
6451 // InternalProblem.g:2034:1: ( ( ( rule__Parameter__NameAssignment_1 ) ) )
6452 // InternalProblem.g:2035:1: ( ( rule__Parameter__NameAssignment_1 ) )
6453 {
6454 // InternalProblem.g:2035:1: ( ( rule__Parameter__NameAssignment_1 ) )
6455 // InternalProblem.g:2036:2: ( rule__Parameter__NameAssignment_1 )
6456 {
6457 before(grammarAccess.getParameterAccess().getNameAssignment_1());
6458 // InternalProblem.g:2037:2: ( rule__Parameter__NameAssignment_1 )
6459 // InternalProblem.g:2037:3: rule__Parameter__NameAssignment_1
6460 {
6461 pushFollow(FOLLOW_2);
6462 rule__Parameter__NameAssignment_1();
6463
6464 state._fsp--;
6465
6466
6467 }
6468
6469 after(grammarAccess.getParameterAccess().getNameAssignment_1());
6470
6471 }
6472
6473
6474 }
6475
6476 }
6477 catch (RecognitionException re) {
6478 reportError(re);
6479 recover(input,re);
6480 }
6481 finally {
6482
6483 restoreStackSize(stackSize);
6484
6485 }
6486 return ;
6487 }
6488 // $ANTLR end "rule__Parameter__Group__1__Impl"
6489
6490
6491 // $ANTLR start "rule__Conjunction__Group__0"
6492 // InternalProblem.g:2046:1: rule__Conjunction__Group__0 : rule__Conjunction__Group__0__Impl rule__Conjunction__Group__1 ;
6493 public final void rule__Conjunction__Group__0() throws RecognitionException {
6494
6495 int stackSize = keepStackSize();
6496
6497 try {
6498 // InternalProblem.g:2050:1: ( rule__Conjunction__Group__0__Impl rule__Conjunction__Group__1 )
6499 // InternalProblem.g:2051:2: rule__Conjunction__Group__0__Impl rule__Conjunction__Group__1
6500 {
6501 pushFollow(FOLLOW_10);
6502 rule__Conjunction__Group__0__Impl();
6503
6504 state._fsp--;
6505
6506 pushFollow(FOLLOW_2);
6507 rule__Conjunction__Group__1();
6508
6509 state._fsp--;
6510
6511
6512 }
6513
6514 }
6515 catch (RecognitionException re) {
6516 reportError(re);
6517 recover(input,re);
6518 }
6519 finally {
6520
6521 restoreStackSize(stackSize);
6522
6523 }
6524 return ;
6525 }
6526 // $ANTLR end "rule__Conjunction__Group__0"
6527
6528
6529 // $ANTLR start "rule__Conjunction__Group__0__Impl"
6530 // InternalProblem.g:2058:1: rule__Conjunction__Group__0__Impl : ( ( rule__Conjunction__LiteralsAssignment_0 ) ) ;
6531 public final void rule__Conjunction__Group__0__Impl() throws RecognitionException {
6532
6533 int stackSize = keepStackSize();
6534
6535 try {
6536 // InternalProblem.g:2062:1: ( ( ( rule__Conjunction__LiteralsAssignment_0 ) ) )
6537 // InternalProblem.g:2063:1: ( ( rule__Conjunction__LiteralsAssignment_0 ) )
6538 {
6539 // InternalProblem.g:2063:1: ( ( rule__Conjunction__LiteralsAssignment_0 ) )
6540 // InternalProblem.g:2064:2: ( rule__Conjunction__LiteralsAssignment_0 )
6541 {
6542 before(grammarAccess.getConjunctionAccess().getLiteralsAssignment_0());
6543 // InternalProblem.g:2065:2: ( rule__Conjunction__LiteralsAssignment_0 )
6544 // InternalProblem.g:2065:3: rule__Conjunction__LiteralsAssignment_0
6545 {
6546 pushFollow(FOLLOW_2);
6547 rule__Conjunction__LiteralsAssignment_0();
6548
6549 state._fsp--;
6550
6551
6552 }
6553
6554 after(grammarAccess.getConjunctionAccess().getLiteralsAssignment_0());
6555
6556 }
6557
6558
6559 }
6560
6561 }
6562 catch (RecognitionException re) {
6563 reportError(re);
6564 recover(input,re);
6565 }
6566 finally {
6567
6568 restoreStackSize(stackSize);
6569
6570 }
6571 return ;
6572 }
6573 // $ANTLR end "rule__Conjunction__Group__0__Impl"
6574
6575
6576 // $ANTLR start "rule__Conjunction__Group__1"
6577 // InternalProblem.g:2073:1: rule__Conjunction__Group__1 : rule__Conjunction__Group__1__Impl ;
6578 public final void rule__Conjunction__Group__1() throws RecognitionException {
6579
6580 int stackSize = keepStackSize();
6581
6582 try {
6583 // InternalProblem.g:2077:1: ( rule__Conjunction__Group__1__Impl )
6584 // InternalProblem.g:2078:2: rule__Conjunction__Group__1__Impl
6585 {
6586 pushFollow(FOLLOW_2);
6587 rule__Conjunction__Group__1__Impl();
6588
6589 state._fsp--;
6590
6591
6592 }
6593
6594 }
6595 catch (RecognitionException re) {
6596 reportError(re);
6597 recover(input,re);
6598 }
6599 finally {
6600
6601 restoreStackSize(stackSize);
6602
6603 }
6604 return ;
6605 }
6606 // $ANTLR end "rule__Conjunction__Group__1"
6607
6608
6609 // $ANTLR start "rule__Conjunction__Group__1__Impl"
6610 // InternalProblem.g:2084:1: rule__Conjunction__Group__1__Impl : ( ( rule__Conjunction__Group_1__0 )* ) ;
6611 public final void rule__Conjunction__Group__1__Impl() throws RecognitionException {
6612
6613 int stackSize = keepStackSize();
6614
6615 try {
6616 // InternalProblem.g:2088:1: ( ( ( rule__Conjunction__Group_1__0 )* ) )
6617 // InternalProblem.g:2089:1: ( ( rule__Conjunction__Group_1__0 )* )
6618 {
6619 // InternalProblem.g:2089:1: ( ( rule__Conjunction__Group_1__0 )* )
6620 // InternalProblem.g:2090:2: ( rule__Conjunction__Group_1__0 )*
6621 {
6622 before(grammarAccess.getConjunctionAccess().getGroup_1());
6623 // InternalProblem.g:2091:2: ( rule__Conjunction__Group_1__0 )*
6624 loop25:
6625 do {
6626 int alt25=2;
6627 int LA25_0 = input.LA(1);
6628
6629 if ( (LA25_0==25) ) {
6630 alt25=1;
6631 }
6632
6633
6634 switch (alt25) {
6635 case 1 :
6636 // InternalProblem.g:2091:3: rule__Conjunction__Group_1__0
6637 {
6638 pushFollow(FOLLOW_7);
6639 rule__Conjunction__Group_1__0();
6640
6641 state._fsp--;
6642
6643
6644 }
6645 break;
6646
6647 default :
6648 break loop25;
6649 }
6650 } while (true);
6651
6652 after(grammarAccess.getConjunctionAccess().getGroup_1());
6653
6654 }
6655
6656
6657 }
6658
6659 }
6660 catch (RecognitionException re) {
6661 reportError(re);
6662 recover(input,re);
6663 }
6664 finally {
6665
6666 restoreStackSize(stackSize);
6667
6668 }
6669 return ;
6670 }
6671 // $ANTLR end "rule__Conjunction__Group__1__Impl"
6672
6673
6674 // $ANTLR start "rule__Conjunction__Group_1__0"
6675 // InternalProblem.g:2100:1: rule__Conjunction__Group_1__0 : rule__Conjunction__Group_1__0__Impl rule__Conjunction__Group_1__1 ;
6676 public final void rule__Conjunction__Group_1__0() throws RecognitionException {
6677
6678 int stackSize = keepStackSize();
6679
6680 try {
6681 // InternalProblem.g:2104:1: ( rule__Conjunction__Group_1__0__Impl rule__Conjunction__Group_1__1 )
6682 // InternalProblem.g:2105:2: rule__Conjunction__Group_1__0__Impl rule__Conjunction__Group_1__1
6683 {
6684 pushFollow(FOLLOW_20);
6685 rule__Conjunction__Group_1__0__Impl();
6686
6687 state._fsp--;
6688
6689 pushFollow(FOLLOW_2);
6690 rule__Conjunction__Group_1__1();
6691
6692 state._fsp--;
6693
6694
6695 }
6696
6697 }
6698 catch (RecognitionException re) {
6699 reportError(re);
6700 recover(input,re);
6701 }
6702 finally {
6703
6704 restoreStackSize(stackSize);
6705
6706 }
6707 return ;
6708 }
6709 // $ANTLR end "rule__Conjunction__Group_1__0"
6710
6711
6712 // $ANTLR start "rule__Conjunction__Group_1__0__Impl"
6713 // InternalProblem.g:2112:1: rule__Conjunction__Group_1__0__Impl : ( ',' ) ;
6714 public final void rule__Conjunction__Group_1__0__Impl() throws RecognitionException {
6715
6716 int stackSize = keepStackSize();
6717
6718 try {
6719 // InternalProblem.g:2116:1: ( ( ',' ) )
6720 // InternalProblem.g:2117:1: ( ',' )
6721 {
6722 // InternalProblem.g:2117:1: ( ',' )
6723 // InternalProblem.g:2118:2: ','
6724 {
6725 before(grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
6726 match(input,25,FOLLOW_2);
6727 after(grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
6728
6729 }
6730
6731
6732 }
6733
6734 }
6735 catch (RecognitionException re) {
6736 reportError(re);
6737 recover(input,re);
6738 }
6739 finally {
6740
6741 restoreStackSize(stackSize);
6742
6743 }
6744 return ;
6745 }
6746 // $ANTLR end "rule__Conjunction__Group_1__0__Impl"
6747
6748
6749 // $ANTLR start "rule__Conjunction__Group_1__1"
6750 // InternalProblem.g:2127:1: rule__Conjunction__Group_1__1 : rule__Conjunction__Group_1__1__Impl ;
6751 public final void rule__Conjunction__Group_1__1() throws RecognitionException {
6752
6753 int stackSize = keepStackSize();
6754
6755 try {
6756 // InternalProblem.g:2131:1: ( rule__Conjunction__Group_1__1__Impl )
6757 // InternalProblem.g:2132:2: rule__Conjunction__Group_1__1__Impl
6758 {
6759 pushFollow(FOLLOW_2);
6760 rule__Conjunction__Group_1__1__Impl();
6761
6762 state._fsp--;
6763
6764
6765 }
6766
6767 }
6768 catch (RecognitionException re) {
6769 reportError(re);
6770 recover(input,re);
6771 }
6772 finally {
6773
6774 restoreStackSize(stackSize);
6775
6776 }
6777 return ;
6778 }
6779 // $ANTLR end "rule__Conjunction__Group_1__1"
6780
6781
6782 // $ANTLR start "rule__Conjunction__Group_1__1__Impl"
6783 // InternalProblem.g:2138:1: rule__Conjunction__Group_1__1__Impl : ( ( rule__Conjunction__LiteralsAssignment_1_1 ) ) ;
6784 public final void rule__Conjunction__Group_1__1__Impl() throws RecognitionException {
6785
6786 int stackSize = keepStackSize();
6787
6788 try {
6789 // InternalProblem.g:2142:1: ( ( ( rule__Conjunction__LiteralsAssignment_1_1 ) ) )
6790 // InternalProblem.g:2143:1: ( ( rule__Conjunction__LiteralsAssignment_1_1 ) )
6791 {
6792 // InternalProblem.g:2143:1: ( ( rule__Conjunction__LiteralsAssignment_1_1 ) )
6793 // InternalProblem.g:2144:2: ( rule__Conjunction__LiteralsAssignment_1_1 )
6794 {
6795 before(grammarAccess.getConjunctionAccess().getLiteralsAssignment_1_1());
6796 // InternalProblem.g:2145:2: ( rule__Conjunction__LiteralsAssignment_1_1 )
6797 // InternalProblem.g:2145:3: rule__Conjunction__LiteralsAssignment_1_1
6798 {
6799 pushFollow(FOLLOW_2);
6800 rule__Conjunction__LiteralsAssignment_1_1();
6801
6802 state._fsp--;
6803
6804
6805 }
6806
6807 after(grammarAccess.getConjunctionAccess().getLiteralsAssignment_1_1());
6808
6809 }
6810
6811
6812 }
6813
6814 }
6815 catch (RecognitionException re) {
6816 reportError(re);
6817 recover(input,re);
6818 }
6819 finally {
6820
6821 restoreStackSize(stackSize);
6822
6823 }
6824 return ;
6825 }
6826 // $ANTLR end "rule__Conjunction__Group_1__1__Impl"
6827
6828
6829 // $ANTLR start "rule__NegativeLiteral__Group__0"
6830 // InternalProblem.g:2154:1: rule__NegativeLiteral__Group__0 : rule__NegativeLiteral__Group__0__Impl rule__NegativeLiteral__Group__1 ;
6831 public final void rule__NegativeLiteral__Group__0() throws RecognitionException {
6832
6833 int stackSize = keepStackSize();
6834
6835 try {
6836 // InternalProblem.g:2158:1: ( rule__NegativeLiteral__Group__0__Impl rule__NegativeLiteral__Group__1 )
6837 // InternalProblem.g:2159:2: rule__NegativeLiteral__Group__0__Impl rule__NegativeLiteral__Group__1
6838 {
6839 pushFollow(FOLLOW_5);
6840 rule__NegativeLiteral__Group__0__Impl();
6841
6842 state._fsp--;
6843
6844 pushFollow(FOLLOW_2);
6845 rule__NegativeLiteral__Group__1();
6846
6847 state._fsp--;
6848
6849
6850 }
6851
6852 }
6853 catch (RecognitionException re) {
6854 reportError(re);
6855 recover(input,re);
6856 }
6857 finally {
6858
6859 restoreStackSize(stackSize);
6860
6861 }
6862 return ;
6863 }
6864 // $ANTLR end "rule__NegativeLiteral__Group__0"
6865
6866
6867 // $ANTLR start "rule__NegativeLiteral__Group__0__Impl"
6868 // InternalProblem.g:2166:1: rule__NegativeLiteral__Group__0__Impl : ( '!' ) ;
6869 public final void rule__NegativeLiteral__Group__0__Impl() throws RecognitionException {
6870
6871 int stackSize = keepStackSize();
6872
6873 try {
6874 // InternalProblem.g:2170:1: ( ( '!' ) )
6875 // InternalProblem.g:2171:1: ( '!' )
6876 {
6877 // InternalProblem.g:2171:1: ( '!' )
6878 // InternalProblem.g:2172:2: '!'
6879 {
6880 before(grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
6881 match(input,18,FOLLOW_2);
6882 after(grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
6883
6884 }
6885
6886
6887 }
6888
6889 }
6890 catch (RecognitionException re) {
6891 reportError(re);
6892 recover(input,re);
6893 }
6894 finally {
6895
6896 restoreStackSize(stackSize);
6897
6898 }
6899 return ;
6900 }
6901 // $ANTLR end "rule__NegativeLiteral__Group__0__Impl"
6902
6903
6904 // $ANTLR start "rule__NegativeLiteral__Group__1"
6905 // InternalProblem.g:2181:1: rule__NegativeLiteral__Group__1 : rule__NegativeLiteral__Group__1__Impl ;
6906 public final void rule__NegativeLiteral__Group__1() throws RecognitionException {
6907
6908 int stackSize = keepStackSize();
6909
6910 try {
6911 // InternalProblem.g:2185:1: ( rule__NegativeLiteral__Group__1__Impl )
6912 // InternalProblem.g:2186:2: rule__NegativeLiteral__Group__1__Impl
6913 {
6914 pushFollow(FOLLOW_2);
6915 rule__NegativeLiteral__Group__1__Impl();
6916
6917 state._fsp--;
6918
6919
6920 }
6921
6922 }
6923 catch (RecognitionException re) {
6924 reportError(re);
6925 recover(input,re);
6926 }
6927 finally {
6928
6929 restoreStackSize(stackSize);
6930
6931 }
6932 return ;
6933 }
6934 // $ANTLR end "rule__NegativeLiteral__Group__1"
6935
6936
6937 // $ANTLR start "rule__NegativeLiteral__Group__1__Impl"
6938 // InternalProblem.g:2192:1: rule__NegativeLiteral__Group__1__Impl : ( ( rule__NegativeLiteral__AtomAssignment_1 ) ) ;
6939 public final void rule__NegativeLiteral__Group__1__Impl() throws RecognitionException {
6940
6941 int stackSize = keepStackSize();
6942
6943 try {
6944 // InternalProblem.g:2196:1: ( ( ( rule__NegativeLiteral__AtomAssignment_1 ) ) )
6945 // InternalProblem.g:2197:1: ( ( rule__NegativeLiteral__AtomAssignment_1 ) )
6946 {
6947 // InternalProblem.g:2197:1: ( ( rule__NegativeLiteral__AtomAssignment_1 ) )
6948 // InternalProblem.g:2198:2: ( rule__NegativeLiteral__AtomAssignment_1 )
6949 {
6950 before(grammarAccess.getNegativeLiteralAccess().getAtomAssignment_1());
6951 // InternalProblem.g:2199:2: ( rule__NegativeLiteral__AtomAssignment_1 )
6952 // InternalProblem.g:2199:3: rule__NegativeLiteral__AtomAssignment_1
6953 {
6954 pushFollow(FOLLOW_2);
6955 rule__NegativeLiteral__AtomAssignment_1();
6956
6957 state._fsp--;
6958
6959
6960 }
6961
6962 after(grammarAccess.getNegativeLiteralAccess().getAtomAssignment_1());
6963
6964 }
6965
6966
6967 }
6968
6969 }
6970 catch (RecognitionException re) {
6971 reportError(re);
6972 recover(input,re);
6973 }
6974 finally {
6975
6976 restoreStackSize(stackSize);
6977
6978 }
6979 return ;
6980 }
6981 // $ANTLR end "rule__NegativeLiteral__Group__1__Impl"
6982
6983
6984 // $ANTLR start "rule__Atom__Group__0"
6985 // InternalProblem.g:2208:1: rule__Atom__Group__0 : rule__Atom__Group__0__Impl rule__Atom__Group__1 ;
6986 public final void rule__Atom__Group__0() throws RecognitionException {
6987
6988 int stackSize = keepStackSize();
6989
6990 try {
6991 // InternalProblem.g:2212:1: ( rule__Atom__Group__0__Impl rule__Atom__Group__1 )
6992 // InternalProblem.g:2213:2: rule__Atom__Group__0__Impl rule__Atom__Group__1
6993 {
6994 pushFollow(FOLLOW_23);
6995 rule__Atom__Group__0__Impl();
6996
6997 state._fsp--;
6998
6999 pushFollow(FOLLOW_2);
7000 rule__Atom__Group__1();
7001
7002 state._fsp--;
7003
7004
7005 }
7006
7007 }
7008 catch (RecognitionException re) {
7009 reportError(re);
7010 recover(input,re);
7011 }
7012 finally {
7013
7014 restoreStackSize(stackSize);
7015
7016 }
7017 return ;
7018 }
7019 // $ANTLR end "rule__Atom__Group__0"
7020
7021
7022 // $ANTLR start "rule__Atom__Group__0__Impl"
7023 // InternalProblem.g:2220:1: rule__Atom__Group__0__Impl : ( ( rule__Atom__RelationAssignment_0 ) ) ;
7024 public final void rule__Atom__Group__0__Impl() throws RecognitionException {
7025
7026 int stackSize = keepStackSize();
7027
7028 try {
7029 // InternalProblem.g:2224:1: ( ( ( rule__Atom__RelationAssignment_0 ) ) )
7030 // InternalProblem.g:2225:1: ( ( rule__Atom__RelationAssignment_0 ) )
7031 {
7032 // InternalProblem.g:2225:1: ( ( rule__Atom__RelationAssignment_0 ) )
7033 // InternalProblem.g:2226:2: ( rule__Atom__RelationAssignment_0 )
7034 {
7035 before(grammarAccess.getAtomAccess().getRelationAssignment_0());
7036 // InternalProblem.g:2227:2: ( rule__Atom__RelationAssignment_0 )
7037 // InternalProblem.g:2227:3: rule__Atom__RelationAssignment_0
7038 {
7039 pushFollow(FOLLOW_2);
7040 rule__Atom__RelationAssignment_0();
7041
7042 state._fsp--;
7043
7044
7045 }
7046
7047 after(grammarAccess.getAtomAccess().getRelationAssignment_0());
7048
7049 }
7050
7051
7052 }
7053
7054 }
7055 catch (RecognitionException re) {
7056 reportError(re);
7057 recover(input,re);
7058 }
7059 finally {
7060
7061 restoreStackSize(stackSize);
7062
7063 }
7064 return ;
7065 }
7066 // $ANTLR end "rule__Atom__Group__0__Impl"
7067
7068
7069 // $ANTLR start "rule__Atom__Group__1"
7070 // InternalProblem.g:2235:1: rule__Atom__Group__1 : rule__Atom__Group__1__Impl rule__Atom__Group__2 ;
7071 public final void rule__Atom__Group__1() throws RecognitionException {
7072
7073 int stackSize = keepStackSize();
7074
7075 try {
7076 // InternalProblem.g:2239:1: ( rule__Atom__Group__1__Impl rule__Atom__Group__2 )
7077 // InternalProblem.g:2240:2: rule__Atom__Group__1__Impl rule__Atom__Group__2
7078 {
7079 pushFollow(FOLLOW_23);
7080 rule__Atom__Group__1__Impl();
7081
7082 state._fsp--;
7083
7084 pushFollow(FOLLOW_2);
7085 rule__Atom__Group__2();
7086
7087 state._fsp--;
7088
7089
7090 }
7091
7092 }
7093 catch (RecognitionException re) {
7094 reportError(re);
7095 recover(input,re);
7096 }
7097 finally {
7098
7099 restoreStackSize(stackSize);
7100
7101 }
7102 return ;
7103 }
7104 // $ANTLR end "rule__Atom__Group__1"
7105
7106
7107 // $ANTLR start "rule__Atom__Group__1__Impl"
7108 // InternalProblem.g:2247:1: rule__Atom__Group__1__Impl : ( ( rule__Atom__TransitiveClosureAssignment_1 )? ) ;
7109 public final void rule__Atom__Group__1__Impl() throws RecognitionException {
7110
7111 int stackSize = keepStackSize();
7112
7113 try {
7114 // InternalProblem.g:2251:1: ( ( ( rule__Atom__TransitiveClosureAssignment_1 )? ) )
7115 // InternalProblem.g:2252:1: ( ( rule__Atom__TransitiveClosureAssignment_1 )? )
7116 {
7117 // InternalProblem.g:2252:1: ( ( rule__Atom__TransitiveClosureAssignment_1 )? )
7118 // InternalProblem.g:2253:2: ( rule__Atom__TransitiveClosureAssignment_1 )?
7119 {
7120 before(grammarAccess.getAtomAccess().getTransitiveClosureAssignment_1());
7121 // InternalProblem.g:2254:2: ( rule__Atom__TransitiveClosureAssignment_1 )?
7122 int alt26=2;
7123 int LA26_0 = input.LA(1);
7124
7125 if ( (LA26_0==38) ) {
7126 alt26=1;
7127 }
7128 switch (alt26) {
7129 case 1 :
7130 // InternalProblem.g:2254:3: rule__Atom__TransitiveClosureAssignment_1
7131 {
7132 pushFollow(FOLLOW_2);
7133 rule__Atom__TransitiveClosureAssignment_1();
7134
7135 state._fsp--;
7136
7137
7138 }
7139 break;
7140
7141 }
7142
7143 after(grammarAccess.getAtomAccess().getTransitiveClosureAssignment_1());
7144
7145 }
7146
7147
7148 }
7149
7150 }
7151 catch (RecognitionException re) {
7152 reportError(re);
7153 recover(input,re);
7154 }
7155 finally {
7156
7157 restoreStackSize(stackSize);
7158
7159 }
7160 return ;
7161 }
7162 // $ANTLR end "rule__Atom__Group__1__Impl"
7163
7164
7165 // $ANTLR start "rule__Atom__Group__2"
7166 // InternalProblem.g:2262:1: rule__Atom__Group__2 : rule__Atom__Group__2__Impl rule__Atom__Group__3 ;
7167 public final void rule__Atom__Group__2() throws RecognitionException {
7168
7169 int stackSize = keepStackSize();
7170
7171 try {
7172 // InternalProblem.g:2266:1: ( rule__Atom__Group__2__Impl rule__Atom__Group__3 )
7173 // InternalProblem.g:2267:2: rule__Atom__Group__2__Impl rule__Atom__Group__3
7174 {
7175 pushFollow(FOLLOW_17);
7176 rule__Atom__Group__2__Impl();
7177
7178 state._fsp--;
7179
7180 pushFollow(FOLLOW_2);
7181 rule__Atom__Group__3();
7182
7183 state._fsp--;
7184
7185
7186 }
7187
7188 }
7189 catch (RecognitionException re) {
7190 reportError(re);
7191 recover(input,re);
7192 }
7193 finally {
7194
7195 restoreStackSize(stackSize);
7196
7197 }
7198 return ;
7199 }
7200 // $ANTLR end "rule__Atom__Group__2"
7201
7202
7203 // $ANTLR start "rule__Atom__Group__2__Impl"
7204 // InternalProblem.g:2274:1: rule__Atom__Group__2__Impl : ( '(' ) ;
7205 public final void rule__Atom__Group__2__Impl() throws RecognitionException {
7206
7207 int stackSize = keepStackSize();
7208
7209 try {
7210 // InternalProblem.g:2278:1: ( ( '(' ) )
7211 // InternalProblem.g:2279:1: ( '(' )
7212 {
7213 // InternalProblem.g:2279:1: ( '(' )
7214 // InternalProblem.g:2280:2: '('
7215 {
7216 before(grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
7217 match(input,27,FOLLOW_2);
7218 after(grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
7219
7220 }
7221
7222
7223 }
7224
7225 }
7226 catch (RecognitionException re) {
7227 reportError(re);
7228 recover(input,re);
7229 }
7230 finally {
7231
7232 restoreStackSize(stackSize);
7233
7234 }
7235 return ;
7236 }
7237 // $ANTLR end "rule__Atom__Group__2__Impl"
7238
7239
7240 // $ANTLR start "rule__Atom__Group__3"
7241 // InternalProblem.g:2289:1: rule__Atom__Group__3 : rule__Atom__Group__3__Impl rule__Atom__Group__4 ;
7242 public final void rule__Atom__Group__3() throws RecognitionException {
7243
7244 int stackSize = keepStackSize();
7245
7246 try {
7247 // InternalProblem.g:2293:1: ( rule__Atom__Group__3__Impl rule__Atom__Group__4 )
7248 // InternalProblem.g:2294:2: rule__Atom__Group__3__Impl rule__Atom__Group__4
7249 {
7250 pushFollow(FOLLOW_17);
7251 rule__Atom__Group__3__Impl();
7252
7253 state._fsp--;
7254
7255 pushFollow(FOLLOW_2);
7256 rule__Atom__Group__4();
7257
7258 state._fsp--;
7259
7260
7261 }
7262
7263 }
7264 catch (RecognitionException re) {
7265 reportError(re);
7266 recover(input,re);
7267 }
7268 finally {
7269
7270 restoreStackSize(stackSize);
7271
7272 }
7273 return ;
7274 }
7275 // $ANTLR end "rule__Atom__Group__3"
7276
7277
7278 // $ANTLR start "rule__Atom__Group__3__Impl"
7279 // InternalProblem.g:2301:1: rule__Atom__Group__3__Impl : ( ( rule__Atom__Group_3__0 )? ) ;
7280 public final void rule__Atom__Group__3__Impl() throws RecognitionException {
7281
7282 int stackSize = keepStackSize();
7283
7284 try {
7285 // InternalProblem.g:2305:1: ( ( ( rule__Atom__Group_3__0 )? ) )
7286 // InternalProblem.g:2306:1: ( ( rule__Atom__Group_3__0 )? )
7287 {
7288 // InternalProblem.g:2306:1: ( ( rule__Atom__Group_3__0 )? )
7289 // InternalProblem.g:2307:2: ( rule__Atom__Group_3__0 )?
7290 {
7291 before(grammarAccess.getAtomAccess().getGroup_3());
7292 // InternalProblem.g:2308:2: ( rule__Atom__Group_3__0 )?
7293 int alt27=2;
7294 int LA27_0 = input.LA(1);
7295
7296 if ( (LA27_0==RULE_ID) ) {
7297 alt27=1;
7298 }
7299 switch (alt27) {
7300 case 1 :
7301 // InternalProblem.g:2308:3: rule__Atom__Group_3__0
7302 {
7303 pushFollow(FOLLOW_2);
7304 rule__Atom__Group_3__0();
7305
7306 state._fsp--;
7307
7308
7309 }
7310 break;
7311
7312 }
7313
7314 after(grammarAccess.getAtomAccess().getGroup_3());
7315
7316 }
7317
7318
7319 }
7320
7321 }
7322 catch (RecognitionException re) {
7323 reportError(re);
7324 recover(input,re);
7325 }
7326 finally {
7327
7328 restoreStackSize(stackSize);
7329
7330 }
7331 return ;
7332 }
7333 // $ANTLR end "rule__Atom__Group__3__Impl"
7334
7335
7336 // $ANTLR start "rule__Atom__Group__4"
7337 // InternalProblem.g:2316:1: rule__Atom__Group__4 : rule__Atom__Group__4__Impl ;
7338 public final void rule__Atom__Group__4() throws RecognitionException {
7339
7340 int stackSize = keepStackSize();
7341
7342 try {
7343 // InternalProblem.g:2320:1: ( rule__Atom__Group__4__Impl )
7344 // InternalProblem.g:2321:2: rule__Atom__Group__4__Impl
7345 {
7346 pushFollow(FOLLOW_2);
7347 rule__Atom__Group__4__Impl();
7348
7349 state._fsp--;
7350
7351
7352 }
7353
7354 }
7355 catch (RecognitionException re) {
7356 reportError(re);
7357 recover(input,re);
7358 }
7359 finally {
7360
7361 restoreStackSize(stackSize);
7362
7363 }
7364 return ;
7365 }
7366 // $ANTLR end "rule__Atom__Group__4"
7367
7368
7369 // $ANTLR start "rule__Atom__Group__4__Impl"
7370 // InternalProblem.g:2327:1: rule__Atom__Group__4__Impl : ( ')' ) ;
7371 public final void rule__Atom__Group__4__Impl() throws RecognitionException {
7372
7373 int stackSize = keepStackSize();
7374
7375 try {
7376 // InternalProblem.g:2331:1: ( ( ')' ) )
7377 // InternalProblem.g:2332:1: ( ')' )
7378 {
7379 // InternalProblem.g:2332:1: ( ')' )
7380 // InternalProblem.g:2333:2: ')'
7381 {
7382 before(grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
7383 match(input,28,FOLLOW_2);
7384 after(grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
7385
7386 }
7387
7388
7389 }
7390
7391 }
7392 catch (RecognitionException re) {
7393 reportError(re);
7394 recover(input,re);
7395 }
7396 finally {
7397
7398 restoreStackSize(stackSize);
7399
7400 }
7401 return ;
7402 }
7403 // $ANTLR end "rule__Atom__Group__4__Impl"
7404
7405
7406 // $ANTLR start "rule__Atom__Group_3__0"
7407 // InternalProblem.g:2343:1: rule__Atom__Group_3__0 : rule__Atom__Group_3__0__Impl rule__Atom__Group_3__1 ;
7408 public final void rule__Atom__Group_3__0() throws RecognitionException {
7409
7410 int stackSize = keepStackSize();
7411
7412 try {
7413 // InternalProblem.g:2347:1: ( rule__Atom__Group_3__0__Impl rule__Atom__Group_3__1 )
7414 // InternalProblem.g:2348:2: rule__Atom__Group_3__0__Impl rule__Atom__Group_3__1
7415 {
7416 pushFollow(FOLLOW_10);
7417 rule__Atom__Group_3__0__Impl();
7418
7419 state._fsp--;
7420
7421 pushFollow(FOLLOW_2);
7422 rule__Atom__Group_3__1();
7423
7424 state._fsp--;
7425
7426
7427 }
7428
7429 }
7430 catch (RecognitionException re) {
7431 reportError(re);
7432 recover(input,re);
7433 }
7434 finally {
7435
7436 restoreStackSize(stackSize);
7437
7438 }
7439 return ;
7440 }
7441 // $ANTLR end "rule__Atom__Group_3__0"
7442
7443
7444 // $ANTLR start "rule__Atom__Group_3__0__Impl"
7445 // InternalProblem.g:2355:1: rule__Atom__Group_3__0__Impl : ( ( rule__Atom__ArgumentsAssignment_3_0 ) ) ;
7446 public final void rule__Atom__Group_3__0__Impl() throws RecognitionException {
7447
7448 int stackSize = keepStackSize();
7449
7450 try {
7451 // InternalProblem.g:2359:1: ( ( ( rule__Atom__ArgumentsAssignment_3_0 ) ) )
7452 // InternalProblem.g:2360:1: ( ( rule__Atom__ArgumentsAssignment_3_0 ) )
7453 {
7454 // InternalProblem.g:2360:1: ( ( rule__Atom__ArgumentsAssignment_3_0 ) )
7455 // InternalProblem.g:2361:2: ( rule__Atom__ArgumentsAssignment_3_0 )
7456 {
7457 before(grammarAccess.getAtomAccess().getArgumentsAssignment_3_0());
7458 // InternalProblem.g:2362:2: ( rule__Atom__ArgumentsAssignment_3_0 )
7459 // InternalProblem.g:2362:3: rule__Atom__ArgumentsAssignment_3_0
7460 {
7461 pushFollow(FOLLOW_2);
7462 rule__Atom__ArgumentsAssignment_3_0();
7463
7464 state._fsp--;
7465
7466
7467 }
7468
7469 after(grammarAccess.getAtomAccess().getArgumentsAssignment_3_0());
7470
7471 }
7472
7473
7474 }
7475
7476 }
7477 catch (RecognitionException re) {
7478 reportError(re);
7479 recover(input,re);
7480 }
7481 finally {
7482
7483 restoreStackSize(stackSize);
7484
7485 }
7486 return ;
7487 }
7488 // $ANTLR end "rule__Atom__Group_3__0__Impl"
7489
7490
7491 // $ANTLR start "rule__Atom__Group_3__1"
7492 // InternalProblem.g:2370:1: rule__Atom__Group_3__1 : rule__Atom__Group_3__1__Impl ;
7493 public final void rule__Atom__Group_3__1() throws RecognitionException {
7494
7495 int stackSize = keepStackSize();
7496
7497 try {
7498 // InternalProblem.g:2374:1: ( rule__Atom__Group_3__1__Impl )
7499 // InternalProblem.g:2375:2: rule__Atom__Group_3__1__Impl
7500 {
7501 pushFollow(FOLLOW_2);
7502 rule__Atom__Group_3__1__Impl();
7503
7504 state._fsp--;
7505
7506
7507 }
7508
7509 }
7510 catch (RecognitionException re) {
7511 reportError(re);
7512 recover(input,re);
7513 }
7514 finally {
7515
7516 restoreStackSize(stackSize);
7517
7518 }
7519 return ;
7520 }
7521 // $ANTLR end "rule__Atom__Group_3__1"
7522
7523
7524 // $ANTLR start "rule__Atom__Group_3__1__Impl"
7525 // InternalProblem.g:2381:1: rule__Atom__Group_3__1__Impl : ( ( rule__Atom__Group_3_1__0 )* ) ;
7526 public final void rule__Atom__Group_3__1__Impl() throws RecognitionException {
7527
7528 int stackSize = keepStackSize();
7529
7530 try {
7531 // InternalProblem.g:2385:1: ( ( ( rule__Atom__Group_3_1__0 )* ) )
7532 // InternalProblem.g:2386:1: ( ( rule__Atom__Group_3_1__0 )* )
7533 {
7534 // InternalProblem.g:2386:1: ( ( rule__Atom__Group_3_1__0 )* )
7535 // InternalProblem.g:2387:2: ( rule__Atom__Group_3_1__0 )*
7536 {
7537 before(grammarAccess.getAtomAccess().getGroup_3_1());
7538 // InternalProblem.g:2388:2: ( rule__Atom__Group_3_1__0 )*
7539 loop28:
7540 do {
7541 int alt28=2;
7542 int LA28_0 = input.LA(1);
7543
7544 if ( (LA28_0==25) ) {
7545 alt28=1;
7546 }
7547
7548
7549 switch (alt28) {
7550 case 1 :
7551 // InternalProblem.g:2388:3: rule__Atom__Group_3_1__0
7552 {
7553 pushFollow(FOLLOW_7);
7554 rule__Atom__Group_3_1__0();
7555
7556 state._fsp--;
7557
7558
7559 }
7560 break;
7561
7562 default :
7563 break loop28;
7564 }
7565 } while (true);
7566
7567 after(grammarAccess.getAtomAccess().getGroup_3_1());
7568
7569 }
7570
7571
7572 }
7573
7574 }
7575 catch (RecognitionException re) {
7576 reportError(re);
7577 recover(input,re);
7578 }
7579 finally {
7580
7581 restoreStackSize(stackSize);
7582
7583 }
7584 return ;
7585 }
7586 // $ANTLR end "rule__Atom__Group_3__1__Impl"
7587
7588
7589 // $ANTLR start "rule__Atom__Group_3_1__0"
7590 // InternalProblem.g:2397:1: rule__Atom__Group_3_1__0 : rule__Atom__Group_3_1__0__Impl rule__Atom__Group_3_1__1 ;
7591 public final void rule__Atom__Group_3_1__0() throws RecognitionException {
7592
7593 int stackSize = keepStackSize();
7594
7595 try {
7596 // InternalProblem.g:2401:1: ( rule__Atom__Group_3_1__0__Impl rule__Atom__Group_3_1__1 )
7597 // InternalProblem.g:2402:2: rule__Atom__Group_3_1__0__Impl rule__Atom__Group_3_1__1
7598 {
7599 pushFollow(FOLLOW_5);
7600 rule__Atom__Group_3_1__0__Impl();
7601
7602 state._fsp--;
7603
7604 pushFollow(FOLLOW_2);
7605 rule__Atom__Group_3_1__1();
7606
7607 state._fsp--;
7608
7609
7610 }
7611
7612 }
7613 catch (RecognitionException re) {
7614 reportError(re);
7615 recover(input,re);
7616 }
7617 finally {
7618
7619 restoreStackSize(stackSize);
7620
7621 }
7622 return ;
7623 }
7624 // $ANTLR end "rule__Atom__Group_3_1__0"
7625
7626
7627 // $ANTLR start "rule__Atom__Group_3_1__0__Impl"
7628 // InternalProblem.g:2409:1: rule__Atom__Group_3_1__0__Impl : ( ',' ) ;
7629 public final void rule__Atom__Group_3_1__0__Impl() throws RecognitionException {
7630
7631 int stackSize = keepStackSize();
7632
7633 try {
7634 // InternalProblem.g:2413:1: ( ( ',' ) )
7635 // InternalProblem.g:2414:1: ( ',' )
7636 {
7637 // InternalProblem.g:2414:1: ( ',' )
7638 // InternalProblem.g:2415:2: ','
7639 {
7640 before(grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
7641 match(input,25,FOLLOW_2);
7642 after(grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
7643
7644 }
7645
7646
7647 }
7648
7649 }
7650 catch (RecognitionException re) {
7651 reportError(re);
7652 recover(input,re);
7653 }
7654 finally {
7655
7656 restoreStackSize(stackSize);
7657
7658 }
7659 return ;
7660 }
7661 // $ANTLR end "rule__Atom__Group_3_1__0__Impl"
7662
7663
7664 // $ANTLR start "rule__Atom__Group_3_1__1"
7665 // InternalProblem.g:2424:1: rule__Atom__Group_3_1__1 : rule__Atom__Group_3_1__1__Impl ;
7666 public final void rule__Atom__Group_3_1__1() throws RecognitionException {
7667
7668 int stackSize = keepStackSize();
7669
7670 try {
7671 // InternalProblem.g:2428:1: ( rule__Atom__Group_3_1__1__Impl )
7672 // InternalProblem.g:2429:2: rule__Atom__Group_3_1__1__Impl
7673 {
7674 pushFollow(FOLLOW_2);
7675 rule__Atom__Group_3_1__1__Impl();
7676
7677 state._fsp--;
7678
7679
7680 }
7681
7682 }
7683 catch (RecognitionException re) {
7684 reportError(re);
7685 recover(input,re);
7686 }
7687 finally {
7688
7689 restoreStackSize(stackSize);
7690
7691 }
7692 return ;
7693 }
7694 // $ANTLR end "rule__Atom__Group_3_1__1"
7695
7696
7697 // $ANTLR start "rule__Atom__Group_3_1__1__Impl"
7698 // InternalProblem.g:2435:1: rule__Atom__Group_3_1__1__Impl : ( ( rule__Atom__ArgumentsAssignment_3_1_1 ) ) ;
7699 public final void rule__Atom__Group_3_1__1__Impl() throws RecognitionException {
7700
7701 int stackSize = keepStackSize();
7702
7703 try {
7704 // InternalProblem.g:2439:1: ( ( ( rule__Atom__ArgumentsAssignment_3_1_1 ) ) )
7705 // InternalProblem.g:2440:1: ( ( rule__Atom__ArgumentsAssignment_3_1_1 ) )
7706 {
7707 // InternalProblem.g:2440:1: ( ( rule__Atom__ArgumentsAssignment_3_1_1 ) )
7708 // InternalProblem.g:2441:2: ( rule__Atom__ArgumentsAssignment_3_1_1 )
7709 {
7710 before(grammarAccess.getAtomAccess().getArgumentsAssignment_3_1_1());
7711 // InternalProblem.g:2442:2: ( rule__Atom__ArgumentsAssignment_3_1_1 )
7712 // InternalProblem.g:2442:3: rule__Atom__ArgumentsAssignment_3_1_1
7713 {
7714 pushFollow(FOLLOW_2);
7715 rule__Atom__ArgumentsAssignment_3_1_1();
7716
7717 state._fsp--;
7718
7719
7720 }
7721
7722 after(grammarAccess.getAtomAccess().getArgumentsAssignment_3_1_1());
7723
7724 }
7725
7726
7727 }
7728
7729 }
7730 catch (RecognitionException re) {
7731 reportError(re);
7732 recover(input,re);
7733 }
7734 finally {
7735
7736 restoreStackSize(stackSize);
7737
7738 }
7739 return ;
7740 }
7741 // $ANTLR end "rule__Atom__Group_3_1__1__Impl"
7742
7743
7744 // $ANTLR start "rule__Assertion__Group__0"
7745 // InternalProblem.g:2451:1: rule__Assertion__Group__0 : rule__Assertion__Group__0__Impl rule__Assertion__Group__1 ;
7746 public final void rule__Assertion__Group__0() throws RecognitionException {
7747
7748 int stackSize = keepStackSize();
7749
7750 try {
7751 // InternalProblem.g:2455:1: ( rule__Assertion__Group__0__Impl rule__Assertion__Group__1 )
7752 // InternalProblem.g:2456:2: rule__Assertion__Group__0__Impl rule__Assertion__Group__1
7753 {
7754 pushFollow(FOLLOW_24);
7755 rule__Assertion__Group__0__Impl();
7756
7757 state._fsp--;
7758
7759 pushFollow(FOLLOW_2);
7760 rule__Assertion__Group__1();
7761
7762 state._fsp--;
7763
7764
7765 }
7766
7767 }
7768 catch (RecognitionException re) {
7769 reportError(re);
7770 recover(input,re);
7771 }
7772 finally {
7773
7774 restoreStackSize(stackSize);
7775
7776 }
7777 return ;
7778 }
7779 // $ANTLR end "rule__Assertion__Group__0"
7780
7781
7782 // $ANTLR start "rule__Assertion__Group__0__Impl"
7783 // InternalProblem.g:2463:1: rule__Assertion__Group__0__Impl : ( ( rule__Assertion__Alternatives_0 ) ) ;
7784 public final void rule__Assertion__Group__0__Impl() throws RecognitionException {
7785
7786 int stackSize = keepStackSize();
7787
7788 try {
7789 // InternalProblem.g:2467:1: ( ( ( rule__Assertion__Alternatives_0 ) ) )
7790 // InternalProblem.g:2468:1: ( ( rule__Assertion__Alternatives_0 ) )
7791 {
7792 // InternalProblem.g:2468:1: ( ( rule__Assertion__Alternatives_0 ) )
7793 // InternalProblem.g:2469:2: ( rule__Assertion__Alternatives_0 )
7794 {
7795 before(grammarAccess.getAssertionAccess().getAlternatives_0());
7796 // InternalProblem.g:2470:2: ( rule__Assertion__Alternatives_0 )
7797 // InternalProblem.g:2470:3: rule__Assertion__Alternatives_0
7798 {
7799 pushFollow(FOLLOW_2);
7800 rule__Assertion__Alternatives_0();
7801
7802 state._fsp--;
7803
7804
7805 }
7806
7807 after(grammarAccess.getAssertionAccess().getAlternatives_0());
7808
7809 }
7810
7811
7812 }
7813
7814 }
7815 catch (RecognitionException re) {
7816 reportError(re);
7817 recover(input,re);
7818 }
7819 finally {
7820
7821 restoreStackSize(stackSize);
7822
7823 }
7824 return ;
7825 }
7826 // $ANTLR end "rule__Assertion__Group__0__Impl"
7827
7828
7829 // $ANTLR start "rule__Assertion__Group__1"
7830 // InternalProblem.g:2478:1: rule__Assertion__Group__1 : rule__Assertion__Group__1__Impl ;
7831 public final void rule__Assertion__Group__1() throws RecognitionException {
7832
7833 int stackSize = keepStackSize();
7834
7835 try {
7836 // InternalProblem.g:2482:1: ( rule__Assertion__Group__1__Impl )
7837 // InternalProblem.g:2483:2: rule__Assertion__Group__1__Impl
7838 {
7839 pushFollow(FOLLOW_2);
7840 rule__Assertion__Group__1__Impl();
7841
7842 state._fsp--;
7843
7844
7845 }
7846
7847 }
7848 catch (RecognitionException re) {
7849 reportError(re);
7850 recover(input,re);
7851 }
7852 finally {
7853
7854 restoreStackSize(stackSize);
7855
7856 }
7857 return ;
7858 }
7859 // $ANTLR end "rule__Assertion__Group__1"
7860
7861
7862 // $ANTLR start "rule__Assertion__Group__1__Impl"
7863 // InternalProblem.g:2489:1: rule__Assertion__Group__1__Impl : ( '.' ) ;
7864 public final void rule__Assertion__Group__1__Impl() throws RecognitionException {
7865
7866 int stackSize = keepStackSize();
7867
7868 try {
7869 // InternalProblem.g:2493:1: ( ( '.' ) )
7870 // InternalProblem.g:2494:1: ( '.' )
7871 {
7872 // InternalProblem.g:2494:1: ( '.' )
7873 // InternalProblem.g:2495:2: '.'
7874 {
7875 before(grammarAccess.getAssertionAccess().getFullStopKeyword_1());
7876 match(input,21,FOLLOW_2);
7877 after(grammarAccess.getAssertionAccess().getFullStopKeyword_1());
7878
7879 }
7880
7881
7882 }
7883
7884 }
7885 catch (RecognitionException re) {
7886 reportError(re);
7887 recover(input,re);
7888 }
7889 finally {
7890
7891 restoreStackSize(stackSize);
7892
7893 }
7894 return ;
7895 }
7896 // $ANTLR end "rule__Assertion__Group__1__Impl"
7897
7898
7899 // $ANTLR start "rule__Assertion__Group_0_0__0"
7900 // InternalProblem.g:2505:1: rule__Assertion__Group_0_0__0 : rule__Assertion__Group_0_0__0__Impl rule__Assertion__Group_0_0__1 ;
7901 public final void rule__Assertion__Group_0_0__0() throws RecognitionException {
7902
7903 int stackSize = keepStackSize();
7904
7905 try {
7906 // InternalProblem.g:2509:1: ( rule__Assertion__Group_0_0__0__Impl rule__Assertion__Group_0_0__1 )
7907 // InternalProblem.g:2510:2: rule__Assertion__Group_0_0__0__Impl rule__Assertion__Group_0_0__1
7908 {
7909 pushFollow(FOLLOW_16);
7910 rule__Assertion__Group_0_0__0__Impl();
7911
7912 state._fsp--;
7913
7914 pushFollow(FOLLOW_2);
7915 rule__Assertion__Group_0_0__1();
7916
7917 state._fsp--;
7918
7919
7920 }
7921
7922 }
7923 catch (RecognitionException re) {
7924 reportError(re);
7925 recover(input,re);
7926 }
7927 finally {
7928
7929 restoreStackSize(stackSize);
7930
7931 }
7932 return ;
7933 }
7934 // $ANTLR end "rule__Assertion__Group_0_0__0"
7935
7936
7937 // $ANTLR start "rule__Assertion__Group_0_0__0__Impl"
7938 // InternalProblem.g:2517:1: rule__Assertion__Group_0_0__0__Impl : ( ( rule__Assertion__RelationAssignment_0_0_0 ) ) ;
7939 public final void rule__Assertion__Group_0_0__0__Impl() throws RecognitionException {
7940
7941 int stackSize = keepStackSize();
7942
7943 try {
7944 // InternalProblem.g:2521:1: ( ( ( rule__Assertion__RelationAssignment_0_0_0 ) ) )
7945 // InternalProblem.g:2522:1: ( ( rule__Assertion__RelationAssignment_0_0_0 ) )
7946 {
7947 // InternalProblem.g:2522:1: ( ( rule__Assertion__RelationAssignment_0_0_0 ) )
7948 // InternalProblem.g:2523:2: ( rule__Assertion__RelationAssignment_0_0_0 )
7949 {
7950 before(grammarAccess.getAssertionAccess().getRelationAssignment_0_0_0());
7951 // InternalProblem.g:2524:2: ( rule__Assertion__RelationAssignment_0_0_0 )
7952 // InternalProblem.g:2524:3: rule__Assertion__RelationAssignment_0_0_0
7953 {
7954 pushFollow(FOLLOW_2);
7955 rule__Assertion__RelationAssignment_0_0_0();
7956
7957 state._fsp--;
7958
7959
7960 }
7961
7962 after(grammarAccess.getAssertionAccess().getRelationAssignment_0_0_0());
7963
7964 }
7965
7966
7967 }
7968
7969 }
7970 catch (RecognitionException re) {
7971 reportError(re);
7972 recover(input,re);
7973 }
7974 finally {
7975
7976 restoreStackSize(stackSize);
7977
7978 }
7979 return ;
7980 }
7981 // $ANTLR end "rule__Assertion__Group_0_0__0__Impl"
7982
7983
7984 // $ANTLR start "rule__Assertion__Group_0_0__1"
7985 // InternalProblem.g:2532:1: rule__Assertion__Group_0_0__1 : rule__Assertion__Group_0_0__1__Impl rule__Assertion__Group_0_0__2 ;
7986 public final void rule__Assertion__Group_0_0__1() throws RecognitionException {
7987
7988 int stackSize = keepStackSize();
7989
7990 try {
7991 // InternalProblem.g:2536:1: ( rule__Assertion__Group_0_0__1__Impl rule__Assertion__Group_0_0__2 )
7992 // InternalProblem.g:2537:2: rule__Assertion__Group_0_0__1__Impl rule__Assertion__Group_0_0__2
7993 {
7994 pushFollow(FOLLOW_17);
7995 rule__Assertion__Group_0_0__1__Impl();
7996
7997 state._fsp--;
7998
7999 pushFollow(FOLLOW_2);
8000 rule__Assertion__Group_0_0__2();
8001
8002 state._fsp--;
8003
8004
8005 }
8006
8007 }
8008 catch (RecognitionException re) {
8009 reportError(re);
8010 recover(input,re);
8011 }
8012 finally {
8013
8014 restoreStackSize(stackSize);
8015
8016 }
8017 return ;
8018 }
8019 // $ANTLR end "rule__Assertion__Group_0_0__1"
8020
8021
8022 // $ANTLR start "rule__Assertion__Group_0_0__1__Impl"
8023 // InternalProblem.g:2544:1: rule__Assertion__Group_0_0__1__Impl : ( '(' ) ;
8024 public final void rule__Assertion__Group_0_0__1__Impl() throws RecognitionException {
8025
8026 int stackSize = keepStackSize();
8027
8028 try {
8029 // InternalProblem.g:2548:1: ( ( '(' ) )
8030 // InternalProblem.g:2549:1: ( '(' )
8031 {
8032 // InternalProblem.g:2549:1: ( '(' )
8033 // InternalProblem.g:2550:2: '('
8034 {
8035 before(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
8036 match(input,27,FOLLOW_2);
8037 after(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
8038
8039 }
8040
8041
8042 }
8043
8044 }
8045 catch (RecognitionException re) {
8046 reportError(re);
8047 recover(input,re);
8048 }
8049 finally {
8050
8051 restoreStackSize(stackSize);
8052
8053 }
8054 return ;
8055 }
8056 // $ANTLR end "rule__Assertion__Group_0_0__1__Impl"
8057
8058
8059 // $ANTLR start "rule__Assertion__Group_0_0__2"
8060 // InternalProblem.g:2559:1: rule__Assertion__Group_0_0__2 : rule__Assertion__Group_0_0__2__Impl rule__Assertion__Group_0_0__3 ;
8061 public final void rule__Assertion__Group_0_0__2() throws RecognitionException {
8062
8063 int stackSize = keepStackSize();
8064
8065 try {
8066 // InternalProblem.g:2563:1: ( rule__Assertion__Group_0_0__2__Impl rule__Assertion__Group_0_0__3 )
8067 // InternalProblem.g:2564:2: rule__Assertion__Group_0_0__2__Impl rule__Assertion__Group_0_0__3
8068 {
8069 pushFollow(FOLLOW_17);
8070 rule__Assertion__Group_0_0__2__Impl();
8071
8072 state._fsp--;
8073
8074 pushFollow(FOLLOW_2);
8075 rule__Assertion__Group_0_0__3();
8076
8077 state._fsp--;
8078
8079
8080 }
8081
8082 }
8083 catch (RecognitionException re) {
8084 reportError(re);
8085 recover(input,re);
8086 }
8087 finally {
8088
8089 restoreStackSize(stackSize);
8090
8091 }
8092 return ;
8093 }
8094 // $ANTLR end "rule__Assertion__Group_0_0__2"
8095
8096
8097 // $ANTLR start "rule__Assertion__Group_0_0__2__Impl"
8098 // InternalProblem.g:2571:1: rule__Assertion__Group_0_0__2__Impl : ( ( rule__Assertion__Group_0_0_2__0 )? ) ;
8099 public final void rule__Assertion__Group_0_0__2__Impl() throws RecognitionException {
8100
8101 int stackSize = keepStackSize();
8102
8103 try {
8104 // InternalProblem.g:2575:1: ( ( ( rule__Assertion__Group_0_0_2__0 )? ) )
8105 // InternalProblem.g:2576:1: ( ( rule__Assertion__Group_0_0_2__0 )? )
8106 {
8107 // InternalProblem.g:2576:1: ( ( rule__Assertion__Group_0_0_2__0 )? )
8108 // InternalProblem.g:2577:2: ( rule__Assertion__Group_0_0_2__0 )?
8109 {
8110 before(grammarAccess.getAssertionAccess().getGroup_0_0_2());
8111 // InternalProblem.g:2578:2: ( rule__Assertion__Group_0_0_2__0 )?
8112 int alt29=2;
8113 int LA29_0 = input.LA(1);
8114
8115 if ( (LA29_0==RULE_ID) ) {
8116 alt29=1;
8117 }
8118 switch (alt29) {
8119 case 1 :
8120 // InternalProblem.g:2578:3: rule__Assertion__Group_0_0_2__0
8121 {
8122 pushFollow(FOLLOW_2);
8123 rule__Assertion__Group_0_0_2__0();
8124
8125 state._fsp--;
8126
8127
8128 }
8129 break;
8130
8131 }
8132
8133 after(grammarAccess.getAssertionAccess().getGroup_0_0_2());
8134
8135 }
8136
8137
8138 }
8139
8140 }
8141 catch (RecognitionException re) {
8142 reportError(re);
8143 recover(input,re);
8144 }
8145 finally {
8146
8147 restoreStackSize(stackSize);
8148
8149 }
8150 return ;
8151 }
8152 // $ANTLR end "rule__Assertion__Group_0_0__2__Impl"
8153
8154
8155 // $ANTLR start "rule__Assertion__Group_0_0__3"
8156 // InternalProblem.g:2586:1: rule__Assertion__Group_0_0__3 : rule__Assertion__Group_0_0__3__Impl rule__Assertion__Group_0_0__4 ;
8157 public final void rule__Assertion__Group_0_0__3() throws RecognitionException {
8158
8159 int stackSize = keepStackSize();
8160
8161 try {
8162 // InternalProblem.g:2590:1: ( rule__Assertion__Group_0_0__3__Impl rule__Assertion__Group_0_0__4 )
8163 // InternalProblem.g:2591:2: rule__Assertion__Group_0_0__3__Impl rule__Assertion__Group_0_0__4
8164 {
8165 pushFollow(FOLLOW_25);
8166 rule__Assertion__Group_0_0__3__Impl();
8167
8168 state._fsp--;
8169
8170 pushFollow(FOLLOW_2);
8171 rule__Assertion__Group_0_0__4();
8172
8173 state._fsp--;
8174
8175
8176 }
8177
8178 }
8179 catch (RecognitionException re) {
8180 reportError(re);
8181 recover(input,re);
8182 }
8183 finally {
8184
8185 restoreStackSize(stackSize);
8186
8187 }
8188 return ;
8189 }
8190 // $ANTLR end "rule__Assertion__Group_0_0__3"
8191
8192
8193 // $ANTLR start "rule__Assertion__Group_0_0__3__Impl"
8194 // InternalProblem.g:2598:1: rule__Assertion__Group_0_0__3__Impl : ( ')' ) ;
8195 public final void rule__Assertion__Group_0_0__3__Impl() throws RecognitionException {
8196
8197 int stackSize = keepStackSize();
8198
8199 try {
8200 // InternalProblem.g:2602:1: ( ( ')' ) )
8201 // InternalProblem.g:2603:1: ( ')' )
8202 {
8203 // InternalProblem.g:2603:1: ( ')' )
8204 // InternalProblem.g:2604:2: ')'
8205 {
8206 before(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
8207 match(input,28,FOLLOW_2);
8208 after(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
8209
8210 }
8211
8212
8213 }
8214
8215 }
8216 catch (RecognitionException re) {
8217 reportError(re);
8218 recover(input,re);
8219 }
8220 finally {
8221
8222 restoreStackSize(stackSize);
8223
8224 }
8225 return ;
8226 }
8227 // $ANTLR end "rule__Assertion__Group_0_0__3__Impl"
8228
8229
8230 // $ANTLR start "rule__Assertion__Group_0_0__4"
8231 // InternalProblem.g:2613:1: rule__Assertion__Group_0_0__4 : rule__Assertion__Group_0_0__4__Impl rule__Assertion__Group_0_0__5 ;
8232 public final void rule__Assertion__Group_0_0__4() throws RecognitionException {
8233
8234 int stackSize = keepStackSize();
8235
8236 try {
8237 // InternalProblem.g:2617:1: ( rule__Assertion__Group_0_0__4__Impl rule__Assertion__Group_0_0__5 )
8238 // InternalProblem.g:2618:2: rule__Assertion__Group_0_0__4__Impl rule__Assertion__Group_0_0__5
8239 {
8240 pushFollow(FOLLOW_26);
8241 rule__Assertion__Group_0_0__4__Impl();
8242
8243 state._fsp--;
8244
8245 pushFollow(FOLLOW_2);
8246 rule__Assertion__Group_0_0__5();
8247
8248 state._fsp--;
8249
8250
8251 }
8252
8253 }
8254 catch (RecognitionException re) {
8255 reportError(re);
8256 recover(input,re);
8257 }
8258 finally {
8259
8260 restoreStackSize(stackSize);
8261
8262 }
8263 return ;
8264 }
8265 // $ANTLR end "rule__Assertion__Group_0_0__4"
8266
8267
8268 // $ANTLR start "rule__Assertion__Group_0_0__4__Impl"
8269 // InternalProblem.g:2625:1: rule__Assertion__Group_0_0__4__Impl : ( ':' ) ;
8270 public final void rule__Assertion__Group_0_0__4__Impl() throws RecognitionException {
8271
8272 int stackSize = keepStackSize();
8273
8274 try {
8275 // InternalProblem.g:2629:1: ( ( ':' ) )
8276 // InternalProblem.g:2630:1: ( ':' )
8277 {
8278 // InternalProblem.g:2630:1: ( ':' )
8279 // InternalProblem.g:2631:2: ':'
8280 {
8281 before(grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
8282 match(input,31,FOLLOW_2);
8283 after(grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
8284
8285 }
8286
8287
8288 }
8289
8290 }
8291 catch (RecognitionException re) {
8292 reportError(re);
8293 recover(input,re);
8294 }
8295 finally {
8296
8297 restoreStackSize(stackSize);
8298
8299 }
8300 return ;
8301 }
8302 // $ANTLR end "rule__Assertion__Group_0_0__4__Impl"
8303
8304
8305 // $ANTLR start "rule__Assertion__Group_0_0__5"
8306 // InternalProblem.g:2640:1: rule__Assertion__Group_0_0__5 : rule__Assertion__Group_0_0__5__Impl ;
8307 public final void rule__Assertion__Group_0_0__5() throws RecognitionException {
8308
8309 int stackSize = keepStackSize();
8310
8311 try {
8312 // InternalProblem.g:2644:1: ( rule__Assertion__Group_0_0__5__Impl )
8313 // InternalProblem.g:2645:2: rule__Assertion__Group_0_0__5__Impl
8314 {
8315 pushFollow(FOLLOW_2);
8316 rule__Assertion__Group_0_0__5__Impl();
8317
8318 state._fsp--;
8319
8320
8321 }
8322
8323 }
8324 catch (RecognitionException re) {
8325 reportError(re);
8326 recover(input,re);
8327 }
8328 finally {
8329
8330 restoreStackSize(stackSize);
8331
8332 }
8333 return ;
8334 }
8335 // $ANTLR end "rule__Assertion__Group_0_0__5"
8336
8337
8338 // $ANTLR start "rule__Assertion__Group_0_0__5__Impl"
8339 // InternalProblem.g:2651:1: rule__Assertion__Group_0_0__5__Impl : ( ( rule__Assertion__ValueAssignment_0_0_5 ) ) ;
8340 public final void rule__Assertion__Group_0_0__5__Impl() throws RecognitionException {
8341
8342 int stackSize = keepStackSize();
8343
8344 try {
8345 // InternalProblem.g:2655:1: ( ( ( rule__Assertion__ValueAssignment_0_0_5 ) ) )
8346 // InternalProblem.g:2656:1: ( ( rule__Assertion__ValueAssignment_0_0_5 ) )
8347 {
8348 // InternalProblem.g:2656:1: ( ( rule__Assertion__ValueAssignment_0_0_5 ) )
8349 // InternalProblem.g:2657:2: ( rule__Assertion__ValueAssignment_0_0_5 )
8350 {
8351 before(grammarAccess.getAssertionAccess().getValueAssignment_0_0_5());
8352 // InternalProblem.g:2658:2: ( rule__Assertion__ValueAssignment_0_0_5 )
8353 // InternalProblem.g:2658:3: rule__Assertion__ValueAssignment_0_0_5
8354 {
8355 pushFollow(FOLLOW_2);
8356 rule__Assertion__ValueAssignment_0_0_5();
8357
8358 state._fsp--;
8359
8360
8361 }
8362
8363 after(grammarAccess.getAssertionAccess().getValueAssignment_0_0_5());
8364
8365 }
8366
8367
8368 }
8369
8370 }
8371 catch (RecognitionException re) {
8372 reportError(re);
8373 recover(input,re);
8374 }
8375 finally {
8376
8377 restoreStackSize(stackSize);
8378
8379 }
8380 return ;
8381 }
8382 // $ANTLR end "rule__Assertion__Group_0_0__5__Impl"
8383
8384
8385 // $ANTLR start "rule__Assertion__Group_0_0_2__0"
8386 // InternalProblem.g:2667:1: rule__Assertion__Group_0_0_2__0 : rule__Assertion__Group_0_0_2__0__Impl rule__Assertion__Group_0_0_2__1 ;
8387 public final void rule__Assertion__Group_0_0_2__0() throws RecognitionException {
8388
8389 int stackSize = keepStackSize();
8390
8391 try {
8392 // InternalProblem.g:2671:1: ( rule__Assertion__Group_0_0_2__0__Impl rule__Assertion__Group_0_0_2__1 )
8393 // InternalProblem.g:2672:2: rule__Assertion__Group_0_0_2__0__Impl rule__Assertion__Group_0_0_2__1
8394 {
8395 pushFollow(FOLLOW_10);
8396 rule__Assertion__Group_0_0_2__0__Impl();
8397
8398 state._fsp--;
8399
8400 pushFollow(FOLLOW_2);
8401 rule__Assertion__Group_0_0_2__1();
8402
8403 state._fsp--;
8404
8405
8406 }
8407
8408 }
8409 catch (RecognitionException re) {
8410 reportError(re);
8411 recover(input,re);
8412 }
8413 finally {
8414
8415 restoreStackSize(stackSize);
8416
8417 }
8418 return ;
8419 }
8420 // $ANTLR end "rule__Assertion__Group_0_0_2__0"
8421
8422
8423 // $ANTLR start "rule__Assertion__Group_0_0_2__0__Impl"
8424 // InternalProblem.g:2679:1: rule__Assertion__Group_0_0_2__0__Impl : ( ( rule__Assertion__ArgumentsAssignment_0_0_2_0 ) ) ;
8425 public final void rule__Assertion__Group_0_0_2__0__Impl() throws RecognitionException {
8426
8427 int stackSize = keepStackSize();
8428
8429 try {
8430 // InternalProblem.g:2683:1: ( ( ( rule__Assertion__ArgumentsAssignment_0_0_2_0 ) ) )
8431 // InternalProblem.g:2684:1: ( ( rule__Assertion__ArgumentsAssignment_0_0_2_0 ) )
8432 {
8433 // InternalProblem.g:2684:1: ( ( rule__Assertion__ArgumentsAssignment_0_0_2_0 ) )
8434 // InternalProblem.g:2685:2: ( rule__Assertion__ArgumentsAssignment_0_0_2_0 )
8435 {
8436 before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_0());
8437 // InternalProblem.g:2686:2: ( rule__Assertion__ArgumentsAssignment_0_0_2_0 )
8438 // InternalProblem.g:2686:3: rule__Assertion__ArgumentsAssignment_0_0_2_0
8439 {
8440 pushFollow(FOLLOW_2);
8441 rule__Assertion__ArgumentsAssignment_0_0_2_0();
8442
8443 state._fsp--;
8444
8445
8446 }
8447
8448 after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_0());
8449
8450 }
8451
8452
8453 }
8454
8455 }
8456 catch (RecognitionException re) {
8457 reportError(re);
8458 recover(input,re);
8459 }
8460 finally {
8461
8462 restoreStackSize(stackSize);
8463
8464 }
8465 return ;
8466 }
8467 // $ANTLR end "rule__Assertion__Group_0_0_2__0__Impl"
8468
8469
8470 // $ANTLR start "rule__Assertion__Group_0_0_2__1"
8471 // InternalProblem.g:2694:1: rule__Assertion__Group_0_0_2__1 : rule__Assertion__Group_0_0_2__1__Impl ;
8472 public final void rule__Assertion__Group_0_0_2__1() throws RecognitionException {
8473
8474 int stackSize = keepStackSize();
8475
8476 try {
8477 // InternalProblem.g:2698:1: ( rule__Assertion__Group_0_0_2__1__Impl )
8478 // InternalProblem.g:2699:2: rule__Assertion__Group_0_0_2__1__Impl
8479 {
8480 pushFollow(FOLLOW_2);
8481 rule__Assertion__Group_0_0_2__1__Impl();
8482
8483 state._fsp--;
8484
8485
8486 }
8487
8488 }
8489 catch (RecognitionException re) {
8490 reportError(re);
8491 recover(input,re);
8492 }
8493 finally {
8494
8495 restoreStackSize(stackSize);
8496
8497 }
8498 return ;
8499 }
8500 // $ANTLR end "rule__Assertion__Group_0_0_2__1"
8501
8502
8503 // $ANTLR start "rule__Assertion__Group_0_0_2__1__Impl"
8504 // InternalProblem.g:2705:1: rule__Assertion__Group_0_0_2__1__Impl : ( ( rule__Assertion__Group_0_0_2_1__0 )* ) ;
8505 public final void rule__Assertion__Group_0_0_2__1__Impl() throws RecognitionException {
8506
8507 int stackSize = keepStackSize();
8508
8509 try {
8510 // InternalProblem.g:2709:1: ( ( ( rule__Assertion__Group_0_0_2_1__0 )* ) )
8511 // InternalProblem.g:2710:1: ( ( rule__Assertion__Group_0_0_2_1__0 )* )
8512 {
8513 // InternalProblem.g:2710:1: ( ( rule__Assertion__Group_0_0_2_1__0 )* )
8514 // InternalProblem.g:2711:2: ( rule__Assertion__Group_0_0_2_1__0 )*
8515 {
8516 before(grammarAccess.getAssertionAccess().getGroup_0_0_2_1());
8517 // InternalProblem.g:2712:2: ( rule__Assertion__Group_0_0_2_1__0 )*
8518 loop30:
8519 do {
8520 int alt30=2;
8521 int LA30_0 = input.LA(1);
8522
8523 if ( (LA30_0==25) ) {
8524 alt30=1;
8525 }
8526
8527
8528 switch (alt30) {
8529 case 1 :
8530 // InternalProblem.g:2712:3: rule__Assertion__Group_0_0_2_1__0
8531 {
8532 pushFollow(FOLLOW_7);
8533 rule__Assertion__Group_0_0_2_1__0();
8534
8535 state._fsp--;
8536
8537
8538 }
8539 break;
8540
8541 default :
8542 break loop30;
8543 }
8544 } while (true);
8545
8546 after(grammarAccess.getAssertionAccess().getGroup_0_0_2_1());
8547
8548 }
8549
8550
8551 }
8552
8553 }
8554 catch (RecognitionException re) {
8555 reportError(re);
8556 recover(input,re);
8557 }
8558 finally {
8559
8560 restoreStackSize(stackSize);
8561
8562 }
8563 return ;
8564 }
8565 // $ANTLR end "rule__Assertion__Group_0_0_2__1__Impl"
8566
8567
8568 // $ANTLR start "rule__Assertion__Group_0_0_2_1__0"
8569 // InternalProblem.g:2721:1: rule__Assertion__Group_0_0_2_1__0 : rule__Assertion__Group_0_0_2_1__0__Impl rule__Assertion__Group_0_0_2_1__1 ;
8570 public final void rule__Assertion__Group_0_0_2_1__0() throws RecognitionException {
8571
8572 int stackSize = keepStackSize();
8573
8574 try {
8575 // InternalProblem.g:2725:1: ( rule__Assertion__Group_0_0_2_1__0__Impl rule__Assertion__Group_0_0_2_1__1 )
8576 // InternalProblem.g:2726:2: rule__Assertion__Group_0_0_2_1__0__Impl rule__Assertion__Group_0_0_2_1__1
8577 {
8578 pushFollow(FOLLOW_5);
8579 rule__Assertion__Group_0_0_2_1__0__Impl();
8580
8581 state._fsp--;
8582
8583 pushFollow(FOLLOW_2);
8584 rule__Assertion__Group_0_0_2_1__1();
8585
8586 state._fsp--;
8587
8588
8589 }
8590
8591 }
8592 catch (RecognitionException re) {
8593 reportError(re);
8594 recover(input,re);
8595 }
8596 finally {
8597
8598 restoreStackSize(stackSize);
8599
8600 }
8601 return ;
8602 }
8603 // $ANTLR end "rule__Assertion__Group_0_0_2_1__0"
8604
8605
8606 // $ANTLR start "rule__Assertion__Group_0_0_2_1__0__Impl"
8607 // InternalProblem.g:2733:1: rule__Assertion__Group_0_0_2_1__0__Impl : ( ',' ) ;
8608 public final void rule__Assertion__Group_0_0_2_1__0__Impl() throws RecognitionException {
8609
8610 int stackSize = keepStackSize();
8611
8612 try {
8613 // InternalProblem.g:2737:1: ( ( ',' ) )
8614 // InternalProblem.g:2738:1: ( ',' )
8615 {
8616 // InternalProblem.g:2738:1: ( ',' )
8617 // InternalProblem.g:2739:2: ','
8618 {
8619 before(grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
8620 match(input,25,FOLLOW_2);
8621 after(grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
8622
8623 }
8624
8625
8626 }
8627
8628 }
8629 catch (RecognitionException re) {
8630 reportError(re);
8631 recover(input,re);
8632 }
8633 finally {
8634
8635 restoreStackSize(stackSize);
8636
8637 }
8638 return ;
8639 }
8640 // $ANTLR end "rule__Assertion__Group_0_0_2_1__0__Impl"
8641
8642
8643 // $ANTLR start "rule__Assertion__Group_0_0_2_1__1"
8644 // InternalProblem.g:2748:1: rule__Assertion__Group_0_0_2_1__1 : rule__Assertion__Group_0_0_2_1__1__Impl ;
8645 public final void rule__Assertion__Group_0_0_2_1__1() throws RecognitionException {
8646
8647 int stackSize = keepStackSize();
8648
8649 try {
8650 // InternalProblem.g:2752:1: ( rule__Assertion__Group_0_0_2_1__1__Impl )
8651 // InternalProblem.g:2753:2: rule__Assertion__Group_0_0_2_1__1__Impl
8652 {
8653 pushFollow(FOLLOW_2);
8654 rule__Assertion__Group_0_0_2_1__1__Impl();
8655
8656 state._fsp--;
8657
8658
8659 }
8660
8661 }
8662 catch (RecognitionException re) {
8663 reportError(re);
8664 recover(input,re);
8665 }
8666 finally {
8667
8668 restoreStackSize(stackSize);
8669
8670 }
8671 return ;
8672 }
8673 // $ANTLR end "rule__Assertion__Group_0_0_2_1__1"
8674
8675
8676 // $ANTLR start "rule__Assertion__Group_0_0_2_1__1__Impl"
8677 // InternalProblem.g:2759:1: rule__Assertion__Group_0_0_2_1__1__Impl : ( ( rule__Assertion__ArgumentsAssignment_0_0_2_1_1 ) ) ;
8678 public final void rule__Assertion__Group_0_0_2_1__1__Impl() throws RecognitionException {
8679
8680 int stackSize = keepStackSize();
8681
8682 try {
8683 // InternalProblem.g:2763:1: ( ( ( rule__Assertion__ArgumentsAssignment_0_0_2_1_1 ) ) )
8684 // InternalProblem.g:2764:1: ( ( rule__Assertion__ArgumentsAssignment_0_0_2_1_1 ) )
8685 {
8686 // InternalProblem.g:2764:1: ( ( rule__Assertion__ArgumentsAssignment_0_0_2_1_1 ) )
8687 // InternalProblem.g:2765:2: ( rule__Assertion__ArgumentsAssignment_0_0_2_1_1 )
8688 {
8689 before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_1_1());
8690 // InternalProblem.g:2766:2: ( rule__Assertion__ArgumentsAssignment_0_0_2_1_1 )
8691 // InternalProblem.g:2766:3: rule__Assertion__ArgumentsAssignment_0_0_2_1_1
8692 {
8693 pushFollow(FOLLOW_2);
8694 rule__Assertion__ArgumentsAssignment_0_0_2_1_1();
8695
8696 state._fsp--;
8697
8698
8699 }
8700
8701 after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_0_2_1_1());
8702
8703 }
8704
8705
8706 }
8707
8708 }
8709 catch (RecognitionException re) {
8710 reportError(re);
8711 recover(input,re);
8712 }
8713 finally {
8714
8715 restoreStackSize(stackSize);
8716
8717 }
8718 return ;
8719 }
8720 // $ANTLR end "rule__Assertion__Group_0_0_2_1__1__Impl"
8721
8722
8723 // $ANTLR start "rule__Assertion__Group_0_1__0"
8724 // InternalProblem.g:2775:1: rule__Assertion__Group_0_1__0 : rule__Assertion__Group_0_1__0__Impl rule__Assertion__Group_0_1__1 ;
8725 public final void rule__Assertion__Group_0_1__0() throws RecognitionException {
8726
8727 int stackSize = keepStackSize();
8728
8729 try {
8730 // InternalProblem.g:2779:1: ( rule__Assertion__Group_0_1__0__Impl rule__Assertion__Group_0_1__1 )
8731 // InternalProblem.g:2780:2: rule__Assertion__Group_0_1__0__Impl rule__Assertion__Group_0_1__1
8732 {
8733 pushFollow(FOLLOW_27);
8734 rule__Assertion__Group_0_1__0__Impl();
8735
8736 state._fsp--;
8737
8738 pushFollow(FOLLOW_2);
8739 rule__Assertion__Group_0_1__1();
8740
8741 state._fsp--;
8742
8743
8744 }
8745
8746 }
8747 catch (RecognitionException re) {
8748 reportError(re);
8749 recover(input,re);
8750 }
8751 finally {
8752
8753 restoreStackSize(stackSize);
8754
8755 }
8756 return ;
8757 }
8758 // $ANTLR end "rule__Assertion__Group_0_1__0"
8759
8760
8761 // $ANTLR start "rule__Assertion__Group_0_1__0__Impl"
8762 // InternalProblem.g:2787:1: rule__Assertion__Group_0_1__0__Impl : ( ( rule__Assertion__ValueAssignment_0_1_0 )? ) ;
8763 public final void rule__Assertion__Group_0_1__0__Impl() throws RecognitionException {
8764
8765 int stackSize = keepStackSize();
8766
8767 try {
8768 // InternalProblem.g:2791:1: ( ( ( rule__Assertion__ValueAssignment_0_1_0 )? ) )
8769 // InternalProblem.g:2792:1: ( ( rule__Assertion__ValueAssignment_0_1_0 )? )
8770 {
8771 // InternalProblem.g:2792:1: ( ( rule__Assertion__ValueAssignment_0_1_0 )? )
8772 // InternalProblem.g:2793:2: ( rule__Assertion__ValueAssignment_0_1_0 )?
8773 {
8774 before(grammarAccess.getAssertionAccess().getValueAssignment_0_1_0());
8775 // InternalProblem.g:2794:2: ( rule__Assertion__ValueAssignment_0_1_0 )?
8776 int alt31=2;
8777 int LA31_0 = input.LA(1);
8778
8779 if ( ((LA31_0>=18 && LA31_0<=19)) ) {
8780 alt31=1;
8781 }
8782 switch (alt31) {
8783 case 1 :
8784 // InternalProblem.g:2794:3: rule__Assertion__ValueAssignment_0_1_0
8785 {
8786 pushFollow(FOLLOW_2);
8787 rule__Assertion__ValueAssignment_0_1_0();
8788
8789 state._fsp--;
8790
8791
8792 }
8793 break;
8794
8795 }
8796
8797 after(grammarAccess.getAssertionAccess().getValueAssignment_0_1_0());
8798
8799 }
8800
8801
8802 }
8803
8804 }
8805 catch (RecognitionException re) {
8806 reportError(re);
8807 recover(input,re);
8808 }
8809 finally {
8810
8811 restoreStackSize(stackSize);
8812
8813 }
8814 return ;
8815 }
8816 // $ANTLR end "rule__Assertion__Group_0_1__0__Impl"
8817
8818
8819 // $ANTLR start "rule__Assertion__Group_0_1__1"
8820 // InternalProblem.g:2802:1: rule__Assertion__Group_0_1__1 : rule__Assertion__Group_0_1__1__Impl rule__Assertion__Group_0_1__2 ;
8821 public final void rule__Assertion__Group_0_1__1() throws RecognitionException {
8822
8823 int stackSize = keepStackSize();
8824
8825 try {
8826 // InternalProblem.g:2806:1: ( rule__Assertion__Group_0_1__1__Impl rule__Assertion__Group_0_1__2 )
8827 // InternalProblem.g:2807:2: rule__Assertion__Group_0_1__1__Impl rule__Assertion__Group_0_1__2
8828 {
8829 pushFollow(FOLLOW_16);
8830 rule__Assertion__Group_0_1__1__Impl();
8831
8832 state._fsp--;
8833
8834 pushFollow(FOLLOW_2);
8835 rule__Assertion__Group_0_1__2();
8836
8837 state._fsp--;
8838
8839
8840 }
8841
8842 }
8843 catch (RecognitionException re) {
8844 reportError(re);
8845 recover(input,re);
8846 }
8847 finally {
8848
8849 restoreStackSize(stackSize);
8850
8851 }
8852 return ;
8853 }
8854 // $ANTLR end "rule__Assertion__Group_0_1__1"
8855
8856
8857 // $ANTLR start "rule__Assertion__Group_0_1__1__Impl"
8858 // InternalProblem.g:2814:1: rule__Assertion__Group_0_1__1__Impl : ( ( rule__Assertion__RelationAssignment_0_1_1 ) ) ;
8859 public final void rule__Assertion__Group_0_1__1__Impl() throws RecognitionException {
8860
8861 int stackSize = keepStackSize();
8862
8863 try {
8864 // InternalProblem.g:2818:1: ( ( ( rule__Assertion__RelationAssignment_0_1_1 ) ) )
8865 // InternalProblem.g:2819:1: ( ( rule__Assertion__RelationAssignment_0_1_1 ) )
8866 {
8867 // InternalProblem.g:2819:1: ( ( rule__Assertion__RelationAssignment_0_1_1 ) )
8868 // InternalProblem.g:2820:2: ( rule__Assertion__RelationAssignment_0_1_1 )
8869 {
8870 before(grammarAccess.getAssertionAccess().getRelationAssignment_0_1_1());
8871 // InternalProblem.g:2821:2: ( rule__Assertion__RelationAssignment_0_1_1 )
8872 // InternalProblem.g:2821:3: rule__Assertion__RelationAssignment_0_1_1
8873 {
8874 pushFollow(FOLLOW_2);
8875 rule__Assertion__RelationAssignment_0_1_1();
8876
8877 state._fsp--;
8878
8879
8880 }
8881
8882 after(grammarAccess.getAssertionAccess().getRelationAssignment_0_1_1());
8883
8884 }
8885
8886
8887 }
8888
8889 }
8890 catch (RecognitionException re) {
8891 reportError(re);
8892 recover(input,re);
8893 }
8894 finally {
8895
8896 restoreStackSize(stackSize);
8897
8898 }
8899 return ;
8900 }
8901 // $ANTLR end "rule__Assertion__Group_0_1__1__Impl"
8902
8903
8904 // $ANTLR start "rule__Assertion__Group_0_1__2"
8905 // InternalProblem.g:2829:1: rule__Assertion__Group_0_1__2 : rule__Assertion__Group_0_1__2__Impl rule__Assertion__Group_0_1__3 ;
8906 public final void rule__Assertion__Group_0_1__2() throws RecognitionException {
8907
8908 int stackSize = keepStackSize();
8909
8910 try {
8911 // InternalProblem.g:2833:1: ( rule__Assertion__Group_0_1__2__Impl rule__Assertion__Group_0_1__3 )
8912 // InternalProblem.g:2834:2: rule__Assertion__Group_0_1__2__Impl rule__Assertion__Group_0_1__3
8913 {
8914 pushFollow(FOLLOW_17);
8915 rule__Assertion__Group_0_1__2__Impl();
8916
8917 state._fsp--;
8918
8919 pushFollow(FOLLOW_2);
8920 rule__Assertion__Group_0_1__3();
8921
8922 state._fsp--;
8923
8924
8925 }
8926
8927 }
8928 catch (RecognitionException re) {
8929 reportError(re);
8930 recover(input,re);
8931 }
8932 finally {
8933
8934 restoreStackSize(stackSize);
8935
8936 }
8937 return ;
8938 }
8939 // $ANTLR end "rule__Assertion__Group_0_1__2"
8940
8941
8942 // $ANTLR start "rule__Assertion__Group_0_1__2__Impl"
8943 // InternalProblem.g:2841:1: rule__Assertion__Group_0_1__2__Impl : ( '(' ) ;
8944 public final void rule__Assertion__Group_0_1__2__Impl() throws RecognitionException {
8945
8946 int stackSize = keepStackSize();
8947
8948 try {
8949 // InternalProblem.g:2845:1: ( ( '(' ) )
8950 // InternalProblem.g:2846:1: ( '(' )
8951 {
8952 // InternalProblem.g:2846:1: ( '(' )
8953 // InternalProblem.g:2847:2: '('
8954 {
8955 before(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
8956 match(input,27,FOLLOW_2);
8957 after(grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
8958
8959 }
8960
8961
8962 }
8963
8964 }
8965 catch (RecognitionException re) {
8966 reportError(re);
8967 recover(input,re);
8968 }
8969 finally {
8970
8971 restoreStackSize(stackSize);
8972
8973 }
8974 return ;
8975 }
8976 // $ANTLR end "rule__Assertion__Group_0_1__2__Impl"
8977
8978
8979 // $ANTLR start "rule__Assertion__Group_0_1__3"
8980 // InternalProblem.g:2856:1: rule__Assertion__Group_0_1__3 : rule__Assertion__Group_0_1__3__Impl rule__Assertion__Group_0_1__4 ;
8981 public final void rule__Assertion__Group_0_1__3() throws RecognitionException {
8982
8983 int stackSize = keepStackSize();
8984
8985 try {
8986 // InternalProblem.g:2860:1: ( rule__Assertion__Group_0_1__3__Impl rule__Assertion__Group_0_1__4 )
8987 // InternalProblem.g:2861:2: rule__Assertion__Group_0_1__3__Impl rule__Assertion__Group_0_1__4
8988 {
8989 pushFollow(FOLLOW_17);
8990 rule__Assertion__Group_0_1__3__Impl();
8991
8992 state._fsp--;
8993
8994 pushFollow(FOLLOW_2);
8995 rule__Assertion__Group_0_1__4();
8996
8997 state._fsp--;
8998
8999
9000 }
9001
9002 }
9003 catch (RecognitionException re) {
9004 reportError(re);
9005 recover(input,re);
9006 }
9007 finally {
9008
9009 restoreStackSize(stackSize);
9010
9011 }
9012 return ;
9013 }
9014 // $ANTLR end "rule__Assertion__Group_0_1__3"
9015
9016
9017 // $ANTLR start "rule__Assertion__Group_0_1__3__Impl"
9018 // InternalProblem.g:2868:1: rule__Assertion__Group_0_1__3__Impl : ( ( rule__Assertion__Group_0_1_3__0 )? ) ;
9019 public final void rule__Assertion__Group_0_1__3__Impl() throws RecognitionException {
9020
9021 int stackSize = keepStackSize();
9022
9023 try {
9024 // InternalProblem.g:2872:1: ( ( ( rule__Assertion__Group_0_1_3__0 )? ) )
9025 // InternalProblem.g:2873:1: ( ( rule__Assertion__Group_0_1_3__0 )? )
9026 {
9027 // InternalProblem.g:2873:1: ( ( rule__Assertion__Group_0_1_3__0 )? )
9028 // InternalProblem.g:2874:2: ( rule__Assertion__Group_0_1_3__0 )?
9029 {
9030 before(grammarAccess.getAssertionAccess().getGroup_0_1_3());
9031 // InternalProblem.g:2875:2: ( rule__Assertion__Group_0_1_3__0 )?
9032 int alt32=2;
9033 int LA32_0 = input.LA(1);
9034
9035 if ( (LA32_0==RULE_ID) ) {
9036 alt32=1;
9037 }
9038 switch (alt32) {
9039 case 1 :
9040 // InternalProblem.g:2875:3: rule__Assertion__Group_0_1_3__0
9041 {
9042 pushFollow(FOLLOW_2);
9043 rule__Assertion__Group_0_1_3__0();
9044
9045 state._fsp--;
9046
9047
9048 }
9049 break;
9050
9051 }
9052
9053 after(grammarAccess.getAssertionAccess().getGroup_0_1_3());
9054
9055 }
9056
9057
9058 }
9059
9060 }
9061 catch (RecognitionException re) {
9062 reportError(re);
9063 recover(input,re);
9064 }
9065 finally {
9066
9067 restoreStackSize(stackSize);
9068
9069 }
9070 return ;
9071 }
9072 // $ANTLR end "rule__Assertion__Group_0_1__3__Impl"
9073
9074
9075 // $ANTLR start "rule__Assertion__Group_0_1__4"
9076 // InternalProblem.g:2883:1: rule__Assertion__Group_0_1__4 : rule__Assertion__Group_0_1__4__Impl ;
9077 public final void rule__Assertion__Group_0_1__4() throws RecognitionException {
9078
9079 int stackSize = keepStackSize();
9080
9081 try {
9082 // InternalProblem.g:2887:1: ( rule__Assertion__Group_0_1__4__Impl )
9083 // InternalProblem.g:2888:2: rule__Assertion__Group_0_1__4__Impl
9084 {
9085 pushFollow(FOLLOW_2);
9086 rule__Assertion__Group_0_1__4__Impl();
9087
9088 state._fsp--;
9089
9090
9091 }
9092
9093 }
9094 catch (RecognitionException re) {
9095 reportError(re);
9096 recover(input,re);
9097 }
9098 finally {
9099
9100 restoreStackSize(stackSize);
9101
9102 }
9103 return ;
9104 }
9105 // $ANTLR end "rule__Assertion__Group_0_1__4"
9106
9107
9108 // $ANTLR start "rule__Assertion__Group_0_1__4__Impl"
9109 // InternalProblem.g:2894:1: rule__Assertion__Group_0_1__4__Impl : ( ')' ) ;
9110 public final void rule__Assertion__Group_0_1__4__Impl() throws RecognitionException {
9111
9112 int stackSize = keepStackSize();
9113
9114 try {
9115 // InternalProblem.g:2898:1: ( ( ')' ) )
9116 // InternalProblem.g:2899:1: ( ')' )
9117 {
9118 // InternalProblem.g:2899:1: ( ')' )
9119 // InternalProblem.g:2900:2: ')'
9120 {
9121 before(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
9122 match(input,28,FOLLOW_2);
9123 after(grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
9124
9125 }
9126
9127
9128 }
9129
9130 }
9131 catch (RecognitionException re) {
9132 reportError(re);
9133 recover(input,re);
9134 }
9135 finally {
9136
9137 restoreStackSize(stackSize);
9138
9139 }
9140 return ;
9141 }
9142 // $ANTLR end "rule__Assertion__Group_0_1__4__Impl"
9143
9144
9145 // $ANTLR start "rule__Assertion__Group_0_1_3__0"
9146 // InternalProblem.g:2910:1: rule__Assertion__Group_0_1_3__0 : rule__Assertion__Group_0_1_3__0__Impl rule__Assertion__Group_0_1_3__1 ;
9147 public final void rule__Assertion__Group_0_1_3__0() throws RecognitionException {
9148
9149 int stackSize = keepStackSize();
9150
9151 try {
9152 // InternalProblem.g:2914:1: ( rule__Assertion__Group_0_1_3__0__Impl rule__Assertion__Group_0_1_3__1 )
9153 // InternalProblem.g:2915:2: rule__Assertion__Group_0_1_3__0__Impl rule__Assertion__Group_0_1_3__1
9154 {
9155 pushFollow(FOLLOW_10);
9156 rule__Assertion__Group_0_1_3__0__Impl();
9157
9158 state._fsp--;
9159
9160 pushFollow(FOLLOW_2);
9161 rule__Assertion__Group_0_1_3__1();
9162
9163 state._fsp--;
9164
9165
9166 }
9167
9168 }
9169 catch (RecognitionException re) {
9170 reportError(re);
9171 recover(input,re);
9172 }
9173 finally {
9174
9175 restoreStackSize(stackSize);
9176
9177 }
9178 return ;
9179 }
9180 // $ANTLR end "rule__Assertion__Group_0_1_3__0"
9181
9182
9183 // $ANTLR start "rule__Assertion__Group_0_1_3__0__Impl"
9184 // InternalProblem.g:2922:1: rule__Assertion__Group_0_1_3__0__Impl : ( ( rule__Assertion__ArgumentsAssignment_0_1_3_0 ) ) ;
9185 public final void rule__Assertion__Group_0_1_3__0__Impl() throws RecognitionException {
9186
9187 int stackSize = keepStackSize();
9188
9189 try {
9190 // InternalProblem.g:2926:1: ( ( ( rule__Assertion__ArgumentsAssignment_0_1_3_0 ) ) )
9191 // InternalProblem.g:2927:1: ( ( rule__Assertion__ArgumentsAssignment_0_1_3_0 ) )
9192 {
9193 // InternalProblem.g:2927:1: ( ( rule__Assertion__ArgumentsAssignment_0_1_3_0 ) )
9194 // InternalProblem.g:2928:2: ( rule__Assertion__ArgumentsAssignment_0_1_3_0 )
9195 {
9196 before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_0());
9197 // InternalProblem.g:2929:2: ( rule__Assertion__ArgumentsAssignment_0_1_3_0 )
9198 // InternalProblem.g:2929:3: rule__Assertion__ArgumentsAssignment_0_1_3_0
9199 {
9200 pushFollow(FOLLOW_2);
9201 rule__Assertion__ArgumentsAssignment_0_1_3_0();
9202
9203 state._fsp--;
9204
9205
9206 }
9207
9208 after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_0());
9209
9210 }
9211
9212
9213 }
9214
9215 }
9216 catch (RecognitionException re) {
9217 reportError(re);
9218 recover(input,re);
9219 }
9220 finally {
9221
9222 restoreStackSize(stackSize);
9223
9224 }
9225 return ;
9226 }
9227 // $ANTLR end "rule__Assertion__Group_0_1_3__0__Impl"
9228
9229
9230 // $ANTLR start "rule__Assertion__Group_0_1_3__1"
9231 // InternalProblem.g:2937:1: rule__Assertion__Group_0_1_3__1 : rule__Assertion__Group_0_1_3__1__Impl ;
9232 public final void rule__Assertion__Group_0_1_3__1() throws RecognitionException {
9233
9234 int stackSize = keepStackSize();
9235
9236 try {
9237 // InternalProblem.g:2941:1: ( rule__Assertion__Group_0_1_3__1__Impl )
9238 // InternalProblem.g:2942:2: rule__Assertion__Group_0_1_3__1__Impl
9239 {
9240 pushFollow(FOLLOW_2);
9241 rule__Assertion__Group_0_1_3__1__Impl();
9242
9243 state._fsp--;
9244
9245
9246 }
9247
9248 }
9249 catch (RecognitionException re) {
9250 reportError(re);
9251 recover(input,re);
9252 }
9253 finally {
9254
9255 restoreStackSize(stackSize);
9256
9257 }
9258 return ;
9259 }
9260 // $ANTLR end "rule__Assertion__Group_0_1_3__1"
9261
9262
9263 // $ANTLR start "rule__Assertion__Group_0_1_3__1__Impl"
9264 // InternalProblem.g:2948:1: rule__Assertion__Group_0_1_3__1__Impl : ( ( rule__Assertion__Group_0_1_3_1__0 )* ) ;
9265 public final void rule__Assertion__Group_0_1_3__1__Impl() throws RecognitionException {
9266
9267 int stackSize = keepStackSize();
9268
9269 try {
9270 // InternalProblem.g:2952:1: ( ( ( rule__Assertion__Group_0_1_3_1__0 )* ) )
9271 // InternalProblem.g:2953:1: ( ( rule__Assertion__Group_0_1_3_1__0 )* )
9272 {
9273 // InternalProblem.g:2953:1: ( ( rule__Assertion__Group_0_1_3_1__0 )* )
9274 // InternalProblem.g:2954:2: ( rule__Assertion__Group_0_1_3_1__0 )*
9275 {
9276 before(grammarAccess.getAssertionAccess().getGroup_0_1_3_1());
9277 // InternalProblem.g:2955:2: ( rule__Assertion__Group_0_1_3_1__0 )*
9278 loop33:
9279 do {
9280 int alt33=2;
9281 int LA33_0 = input.LA(1);
9282
9283 if ( (LA33_0==25) ) {
9284 alt33=1;
9285 }
9286
9287
9288 switch (alt33) {
9289 case 1 :
9290 // InternalProblem.g:2955:3: rule__Assertion__Group_0_1_3_1__0
9291 {
9292 pushFollow(FOLLOW_7);
9293 rule__Assertion__Group_0_1_3_1__0();
9294
9295 state._fsp--;
9296
9297
9298 }
9299 break;
9300
9301 default :
9302 break loop33;
9303 }
9304 } while (true);
9305
9306 after(grammarAccess.getAssertionAccess().getGroup_0_1_3_1());
9307
9308 }
9309
9310
9311 }
9312
9313 }
9314 catch (RecognitionException re) {
9315 reportError(re);
9316 recover(input,re);
9317 }
9318 finally {
9319
9320 restoreStackSize(stackSize);
9321
9322 }
9323 return ;
9324 }
9325 // $ANTLR end "rule__Assertion__Group_0_1_3__1__Impl"
9326
9327
9328 // $ANTLR start "rule__Assertion__Group_0_1_3_1__0"
9329 // InternalProblem.g:2964:1: rule__Assertion__Group_0_1_3_1__0 : rule__Assertion__Group_0_1_3_1__0__Impl rule__Assertion__Group_0_1_3_1__1 ;
9330 public final void rule__Assertion__Group_0_1_3_1__0() throws RecognitionException {
9331
9332 int stackSize = keepStackSize();
9333
9334 try {
9335 // InternalProblem.g:2968:1: ( rule__Assertion__Group_0_1_3_1__0__Impl rule__Assertion__Group_0_1_3_1__1 )
9336 // InternalProblem.g:2969:2: rule__Assertion__Group_0_1_3_1__0__Impl rule__Assertion__Group_0_1_3_1__1
9337 {
9338 pushFollow(FOLLOW_5);
9339 rule__Assertion__Group_0_1_3_1__0__Impl();
9340
9341 state._fsp--;
9342
9343 pushFollow(FOLLOW_2);
9344 rule__Assertion__Group_0_1_3_1__1();
9345
9346 state._fsp--;
9347
9348
9349 }
9350
9351 }
9352 catch (RecognitionException re) {
9353 reportError(re);
9354 recover(input,re);
9355 }
9356 finally {
9357
9358 restoreStackSize(stackSize);
9359
9360 }
9361 return ;
9362 }
9363 // $ANTLR end "rule__Assertion__Group_0_1_3_1__0"
9364
9365
9366 // $ANTLR start "rule__Assertion__Group_0_1_3_1__0__Impl"
9367 // InternalProblem.g:2976:1: rule__Assertion__Group_0_1_3_1__0__Impl : ( ',' ) ;
9368 public final void rule__Assertion__Group_0_1_3_1__0__Impl() throws RecognitionException {
9369
9370 int stackSize = keepStackSize();
9371
9372 try {
9373 // InternalProblem.g:2980:1: ( ( ',' ) )
9374 // InternalProblem.g:2981:1: ( ',' )
9375 {
9376 // InternalProblem.g:2981:1: ( ',' )
9377 // InternalProblem.g:2982:2: ','
9378 {
9379 before(grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
9380 match(input,25,FOLLOW_2);
9381 after(grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
9382
9383 }
9384
9385
9386 }
9387
9388 }
9389 catch (RecognitionException re) {
9390 reportError(re);
9391 recover(input,re);
9392 }
9393 finally {
9394
9395 restoreStackSize(stackSize);
9396
9397 }
9398 return ;
9399 }
9400 // $ANTLR end "rule__Assertion__Group_0_1_3_1__0__Impl"
9401
9402
9403 // $ANTLR start "rule__Assertion__Group_0_1_3_1__1"
9404 // InternalProblem.g:2991:1: rule__Assertion__Group_0_1_3_1__1 : rule__Assertion__Group_0_1_3_1__1__Impl ;
9405 public final void rule__Assertion__Group_0_1_3_1__1() throws RecognitionException {
9406
9407 int stackSize = keepStackSize();
9408
9409 try {
9410 // InternalProblem.g:2995:1: ( rule__Assertion__Group_0_1_3_1__1__Impl )
9411 // InternalProblem.g:2996:2: rule__Assertion__Group_0_1_3_1__1__Impl
9412 {
9413 pushFollow(FOLLOW_2);
9414 rule__Assertion__Group_0_1_3_1__1__Impl();
9415
9416 state._fsp--;
9417
9418
9419 }
9420
9421 }
9422 catch (RecognitionException re) {
9423 reportError(re);
9424 recover(input,re);
9425 }
9426 finally {
9427
9428 restoreStackSize(stackSize);
9429
9430 }
9431 return ;
9432 }
9433 // $ANTLR end "rule__Assertion__Group_0_1_3_1__1"
9434
9435
9436 // $ANTLR start "rule__Assertion__Group_0_1_3_1__1__Impl"
9437 // InternalProblem.g:3002:1: rule__Assertion__Group_0_1_3_1__1__Impl : ( ( rule__Assertion__ArgumentsAssignment_0_1_3_1_1 ) ) ;
9438 public final void rule__Assertion__Group_0_1_3_1__1__Impl() throws RecognitionException {
9439
9440 int stackSize = keepStackSize();
9441
9442 try {
9443 // InternalProblem.g:3006:1: ( ( ( rule__Assertion__ArgumentsAssignment_0_1_3_1_1 ) ) )
9444 // InternalProblem.g:3007:1: ( ( rule__Assertion__ArgumentsAssignment_0_1_3_1_1 ) )
9445 {
9446 // InternalProblem.g:3007:1: ( ( rule__Assertion__ArgumentsAssignment_0_1_3_1_1 ) )
9447 // InternalProblem.g:3008:2: ( rule__Assertion__ArgumentsAssignment_0_1_3_1_1 )
9448 {
9449 before(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_1_1());
9450 // InternalProblem.g:3009:2: ( rule__Assertion__ArgumentsAssignment_0_1_3_1_1 )
9451 // InternalProblem.g:3009:3: rule__Assertion__ArgumentsAssignment_0_1_3_1_1
9452 {
9453 pushFollow(FOLLOW_2);
9454 rule__Assertion__ArgumentsAssignment_0_1_3_1_1();
9455
9456 state._fsp--;
9457
9458
9459 }
9460
9461 after(grammarAccess.getAssertionAccess().getArgumentsAssignment_0_1_3_1_1());
9462
9463 }
9464
9465
9466 }
9467
9468 }
9469 catch (RecognitionException re) {
9470 reportError(re);
9471 recover(input,re);
9472 }
9473 finally {
9474
9475 restoreStackSize(stackSize);
9476
9477 }
9478 return ;
9479 }
9480 // $ANTLR end "rule__Assertion__Group_0_1_3_1__1__Impl"
9481
9482
9483 // $ANTLR start "rule__ScopeDeclaration__Group__0"
9484 // InternalProblem.g:3018:1: rule__ScopeDeclaration__Group__0 : rule__ScopeDeclaration__Group__0__Impl rule__ScopeDeclaration__Group__1 ;
9485 public final void rule__ScopeDeclaration__Group__0() throws RecognitionException {
9486
9487 int stackSize = keepStackSize();
9488
9489 try {
9490 // InternalProblem.g:3022:1: ( rule__ScopeDeclaration__Group__0__Impl rule__ScopeDeclaration__Group__1 )
9491 // InternalProblem.g:3023:2: rule__ScopeDeclaration__Group__0__Impl rule__ScopeDeclaration__Group__1
9492 {
9493 pushFollow(FOLLOW_5);
9494 rule__ScopeDeclaration__Group__0__Impl();
9495
9496 state._fsp--;
9497
9498 pushFollow(FOLLOW_2);
9499 rule__ScopeDeclaration__Group__1();
9500
9501 state._fsp--;
9502
9503
9504 }
9505
9506 }
9507 catch (RecognitionException re) {
9508 reportError(re);
9509 recover(input,re);
9510 }
9511 finally {
9512
9513 restoreStackSize(stackSize);
9514
9515 }
9516 return ;
9517 }
9518 // $ANTLR end "rule__ScopeDeclaration__Group__0"
9519
9520
9521 // $ANTLR start "rule__ScopeDeclaration__Group__0__Impl"
9522 // InternalProblem.g:3030:1: rule__ScopeDeclaration__Group__0__Impl : ( 'scope' ) ;
9523 public final void rule__ScopeDeclaration__Group__0__Impl() throws RecognitionException {
9524
9525 int stackSize = keepStackSize();
9526
9527 try {
9528 // InternalProblem.g:3034:1: ( ( 'scope' ) )
9529 // InternalProblem.g:3035:1: ( 'scope' )
9530 {
9531 // InternalProblem.g:3035:1: ( 'scope' )
9532 // InternalProblem.g:3036:2: 'scope'
9533 {
9534 before(grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
9535 match(input,32,FOLLOW_2);
9536 after(grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
9537
9538 }
9539
9540
9541 }
9542
9543 }
9544 catch (RecognitionException re) {
9545 reportError(re);
9546 recover(input,re);
9547 }
9548 finally {
9549
9550 restoreStackSize(stackSize);
9551
9552 }
9553 return ;
9554 }
9555 // $ANTLR end "rule__ScopeDeclaration__Group__0__Impl"
9556
9557
9558 // $ANTLR start "rule__ScopeDeclaration__Group__1"
9559 // InternalProblem.g:3045:1: rule__ScopeDeclaration__Group__1 : rule__ScopeDeclaration__Group__1__Impl rule__ScopeDeclaration__Group__2 ;
9560 public final void rule__ScopeDeclaration__Group__1() throws RecognitionException {
9561
9562 int stackSize = keepStackSize();
9563
9564 try {
9565 // InternalProblem.g:3049:1: ( rule__ScopeDeclaration__Group__1__Impl rule__ScopeDeclaration__Group__2 )
9566 // InternalProblem.g:3050:2: rule__ScopeDeclaration__Group__1__Impl rule__ScopeDeclaration__Group__2
9567 {
9568 pushFollow(FOLLOW_28);
9569 rule__ScopeDeclaration__Group__1__Impl();
9570
9571 state._fsp--;
9572
9573 pushFollow(FOLLOW_2);
9574 rule__ScopeDeclaration__Group__2();
9575
9576 state._fsp--;
9577
9578
9579 }
9580
9581 }
9582 catch (RecognitionException re) {
9583 reportError(re);
9584 recover(input,re);
9585 }
9586 finally {
9587
9588 restoreStackSize(stackSize);
9589
9590 }
9591 return ;
9592 }
9593 // $ANTLR end "rule__ScopeDeclaration__Group__1"
9594
9595
9596 // $ANTLR start "rule__ScopeDeclaration__Group__1__Impl"
9597 // InternalProblem.g:3057:1: rule__ScopeDeclaration__Group__1__Impl : ( ( rule__ScopeDeclaration__TypeScopesAssignment_1 ) ) ;
9598 public final void rule__ScopeDeclaration__Group__1__Impl() throws RecognitionException {
9599
9600 int stackSize = keepStackSize();
9601
9602 try {
9603 // InternalProblem.g:3061:1: ( ( ( rule__ScopeDeclaration__TypeScopesAssignment_1 ) ) )
9604 // InternalProblem.g:3062:1: ( ( rule__ScopeDeclaration__TypeScopesAssignment_1 ) )
9605 {
9606 // InternalProblem.g:3062:1: ( ( rule__ScopeDeclaration__TypeScopesAssignment_1 ) )
9607 // InternalProblem.g:3063:2: ( rule__ScopeDeclaration__TypeScopesAssignment_1 )
9608 {
9609 before(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_1());
9610 // InternalProblem.g:3064:2: ( rule__ScopeDeclaration__TypeScopesAssignment_1 )
9611 // InternalProblem.g:3064:3: rule__ScopeDeclaration__TypeScopesAssignment_1
9612 {
9613 pushFollow(FOLLOW_2);
9614 rule__ScopeDeclaration__TypeScopesAssignment_1();
9615
9616 state._fsp--;
9617
9618
9619 }
9620
9621 after(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_1());
9622
9623 }
9624
9625
9626 }
9627
9628 }
9629 catch (RecognitionException re) {
9630 reportError(re);
9631 recover(input,re);
9632 }
9633 finally {
9634
9635 restoreStackSize(stackSize);
9636
9637 }
9638 return ;
9639 }
9640 // $ANTLR end "rule__ScopeDeclaration__Group__1__Impl"
9641
9642
9643 // $ANTLR start "rule__ScopeDeclaration__Group__2"
9644 // InternalProblem.g:3072:1: rule__ScopeDeclaration__Group__2 : rule__ScopeDeclaration__Group__2__Impl rule__ScopeDeclaration__Group__3 ;
9645 public final void rule__ScopeDeclaration__Group__2() throws RecognitionException {
9646
9647 int stackSize = keepStackSize();
9648
9649 try {
9650 // InternalProblem.g:3076:1: ( rule__ScopeDeclaration__Group__2__Impl rule__ScopeDeclaration__Group__3 )
9651 // InternalProblem.g:3077:2: rule__ScopeDeclaration__Group__2__Impl rule__ScopeDeclaration__Group__3
9652 {
9653 pushFollow(FOLLOW_28);
9654 rule__ScopeDeclaration__Group__2__Impl();
9655
9656 state._fsp--;
9657
9658 pushFollow(FOLLOW_2);
9659 rule__ScopeDeclaration__Group__3();
9660
9661 state._fsp--;
9662
9663
9664 }
9665
9666 }
9667 catch (RecognitionException re) {
9668 reportError(re);
9669 recover(input,re);
9670 }
9671 finally {
9672
9673 restoreStackSize(stackSize);
9674
9675 }
9676 return ;
9677 }
9678 // $ANTLR end "rule__ScopeDeclaration__Group__2"
9679
9680
9681 // $ANTLR start "rule__ScopeDeclaration__Group__2__Impl"
9682 // InternalProblem.g:3084:1: rule__ScopeDeclaration__Group__2__Impl : ( ( rule__ScopeDeclaration__Group_2__0 )* ) ;
9683 public final void rule__ScopeDeclaration__Group__2__Impl() throws RecognitionException {
9684
9685 int stackSize = keepStackSize();
9686
9687 try {
9688 // InternalProblem.g:3088:1: ( ( ( rule__ScopeDeclaration__Group_2__0 )* ) )
9689 // InternalProblem.g:3089:1: ( ( rule__ScopeDeclaration__Group_2__0 )* )
9690 {
9691 // InternalProblem.g:3089:1: ( ( rule__ScopeDeclaration__Group_2__0 )* )
9692 // InternalProblem.g:3090:2: ( rule__ScopeDeclaration__Group_2__0 )*
9693 {
9694 before(grammarAccess.getScopeDeclarationAccess().getGroup_2());
9695 // InternalProblem.g:3091:2: ( rule__ScopeDeclaration__Group_2__0 )*
9696 loop34:
9697 do {
9698 int alt34=2;
9699 int LA34_0 = input.LA(1);
9700
9701 if ( (LA34_0==25) ) {
9702 alt34=1;
9703 }
9704
9705
9706 switch (alt34) {
9707 case 1 :
9708 // InternalProblem.g:3091:3: rule__ScopeDeclaration__Group_2__0
9709 {
9710 pushFollow(FOLLOW_7);
9711 rule__ScopeDeclaration__Group_2__0();
9712
9713 state._fsp--;
9714
9715
9716 }
9717 break;
9718
9719 default :
9720 break loop34;
9721 }
9722 } while (true);
9723
9724 after(grammarAccess.getScopeDeclarationAccess().getGroup_2());
9725
9726 }
9727
9728
9729 }
9730
9731 }
9732 catch (RecognitionException re) {
9733 reportError(re);
9734 recover(input,re);
9735 }
9736 finally {
9737
9738 restoreStackSize(stackSize);
9739
9740 }
9741 return ;
9742 }
9743 // $ANTLR end "rule__ScopeDeclaration__Group__2__Impl"
9744
9745
9746 // $ANTLR start "rule__ScopeDeclaration__Group__3"
9747 // InternalProblem.g:3099:1: rule__ScopeDeclaration__Group__3 : rule__ScopeDeclaration__Group__3__Impl ;
9748 public final void rule__ScopeDeclaration__Group__3() throws RecognitionException {
9749
9750 int stackSize = keepStackSize();
9751
9752 try {
9753 // InternalProblem.g:3103:1: ( rule__ScopeDeclaration__Group__3__Impl )
9754 // InternalProblem.g:3104:2: rule__ScopeDeclaration__Group__3__Impl
9755 {
9756 pushFollow(FOLLOW_2);
9757 rule__ScopeDeclaration__Group__3__Impl();
9758
9759 state._fsp--;
9760
9761
9762 }
9763
9764 }
9765 catch (RecognitionException re) {
9766 reportError(re);
9767 recover(input,re);
9768 }
9769 finally {
9770
9771 restoreStackSize(stackSize);
9772
9773 }
9774 return ;
9775 }
9776 // $ANTLR end "rule__ScopeDeclaration__Group__3"
9777
9778
9779 // $ANTLR start "rule__ScopeDeclaration__Group__3__Impl"
9780 // InternalProblem.g:3110:1: rule__ScopeDeclaration__Group__3__Impl : ( '.' ) ;
9781 public final void rule__ScopeDeclaration__Group__3__Impl() throws RecognitionException {
9782
9783 int stackSize = keepStackSize();
9784
9785 try {
9786 // InternalProblem.g:3114:1: ( ( '.' ) )
9787 // InternalProblem.g:3115:1: ( '.' )
9788 {
9789 // InternalProblem.g:3115:1: ( '.' )
9790 // InternalProblem.g:3116:2: '.'
9791 {
9792 before(grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
9793 match(input,21,FOLLOW_2);
9794 after(grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
9795
9796 }
9797
9798
9799 }
9800
9801 }
9802 catch (RecognitionException re) {
9803 reportError(re);
9804 recover(input,re);
9805 }
9806 finally {
9807
9808 restoreStackSize(stackSize);
9809
9810 }
9811 return ;
9812 }
9813 // $ANTLR end "rule__ScopeDeclaration__Group__3__Impl"
9814
9815
9816 // $ANTLR start "rule__ScopeDeclaration__Group_2__0"
9817 // InternalProblem.g:3126:1: rule__ScopeDeclaration__Group_2__0 : rule__ScopeDeclaration__Group_2__0__Impl rule__ScopeDeclaration__Group_2__1 ;
9818 public final void rule__ScopeDeclaration__Group_2__0() throws RecognitionException {
9819
9820 int stackSize = keepStackSize();
9821
9822 try {
9823 // InternalProblem.g:3130:1: ( rule__ScopeDeclaration__Group_2__0__Impl rule__ScopeDeclaration__Group_2__1 )
9824 // InternalProblem.g:3131:2: rule__ScopeDeclaration__Group_2__0__Impl rule__ScopeDeclaration__Group_2__1
9825 {
9826 pushFollow(FOLLOW_5);
9827 rule__ScopeDeclaration__Group_2__0__Impl();
9828
9829 state._fsp--;
9830
9831 pushFollow(FOLLOW_2);
9832 rule__ScopeDeclaration__Group_2__1();
9833
9834 state._fsp--;
9835
9836
9837 }
9838
9839 }
9840 catch (RecognitionException re) {
9841 reportError(re);
9842 recover(input,re);
9843 }
9844 finally {
9845
9846 restoreStackSize(stackSize);
9847
9848 }
9849 return ;
9850 }
9851 // $ANTLR end "rule__ScopeDeclaration__Group_2__0"
9852
9853
9854 // $ANTLR start "rule__ScopeDeclaration__Group_2__0__Impl"
9855 // InternalProblem.g:3138:1: rule__ScopeDeclaration__Group_2__0__Impl : ( ',' ) ;
9856 public final void rule__ScopeDeclaration__Group_2__0__Impl() throws RecognitionException {
9857
9858 int stackSize = keepStackSize();
9859
9860 try {
9861 // InternalProblem.g:3142:1: ( ( ',' ) )
9862 // InternalProblem.g:3143:1: ( ',' )
9863 {
9864 // InternalProblem.g:3143:1: ( ',' )
9865 // InternalProblem.g:3144:2: ','
9866 {
9867 before(grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
9868 match(input,25,FOLLOW_2);
9869 after(grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
9870
9871 }
9872
9873
9874 }
9875
9876 }
9877 catch (RecognitionException re) {
9878 reportError(re);
9879 recover(input,re);
9880 }
9881 finally {
9882
9883 restoreStackSize(stackSize);
9884
9885 }
9886 return ;
9887 }
9888 // $ANTLR end "rule__ScopeDeclaration__Group_2__0__Impl"
9889
9890
9891 // $ANTLR start "rule__ScopeDeclaration__Group_2__1"
9892 // InternalProblem.g:3153:1: rule__ScopeDeclaration__Group_2__1 : rule__ScopeDeclaration__Group_2__1__Impl ;
9893 public final void rule__ScopeDeclaration__Group_2__1() throws RecognitionException {
9894
9895 int stackSize = keepStackSize();
9896
9897 try {
9898 // InternalProblem.g:3157:1: ( rule__ScopeDeclaration__Group_2__1__Impl )
9899 // InternalProblem.g:3158:2: rule__ScopeDeclaration__Group_2__1__Impl
9900 {
9901 pushFollow(FOLLOW_2);
9902 rule__ScopeDeclaration__Group_2__1__Impl();
9903
9904 state._fsp--;
9905
9906
9907 }
9908
9909 }
9910 catch (RecognitionException re) {
9911 reportError(re);
9912 recover(input,re);
9913 }
9914 finally {
9915
9916 restoreStackSize(stackSize);
9917
9918 }
9919 return ;
9920 }
9921 // $ANTLR end "rule__ScopeDeclaration__Group_2__1"
9922
9923
9924 // $ANTLR start "rule__ScopeDeclaration__Group_2__1__Impl"
9925 // InternalProblem.g:3164:1: rule__ScopeDeclaration__Group_2__1__Impl : ( ( rule__ScopeDeclaration__TypeScopesAssignment_2_1 ) ) ;
9926 public final void rule__ScopeDeclaration__Group_2__1__Impl() throws RecognitionException {
9927
9928 int stackSize = keepStackSize();
9929
9930 try {
9931 // InternalProblem.g:3168:1: ( ( ( rule__ScopeDeclaration__TypeScopesAssignment_2_1 ) ) )
9932 // InternalProblem.g:3169:1: ( ( rule__ScopeDeclaration__TypeScopesAssignment_2_1 ) )
9933 {
9934 // InternalProblem.g:3169:1: ( ( rule__ScopeDeclaration__TypeScopesAssignment_2_1 ) )
9935 // InternalProblem.g:3170:2: ( rule__ScopeDeclaration__TypeScopesAssignment_2_1 )
9936 {
9937 before(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_2_1());
9938 // InternalProblem.g:3171:2: ( rule__ScopeDeclaration__TypeScopesAssignment_2_1 )
9939 // InternalProblem.g:3171:3: rule__ScopeDeclaration__TypeScopesAssignment_2_1
9940 {
9941 pushFollow(FOLLOW_2);
9942 rule__ScopeDeclaration__TypeScopesAssignment_2_1();
9943
9944 state._fsp--;
9945
9946
9947 }
9948
9949 after(grammarAccess.getScopeDeclarationAccess().getTypeScopesAssignment_2_1());
9950
9951 }
9952
9953
9954 }
9955
9956 }
9957 catch (RecognitionException re) {
9958 reportError(re);
9959 recover(input,re);
9960 }
9961 finally {
9962
9963 restoreStackSize(stackSize);
9964
9965 }
9966 return ;
9967 }
9968 // $ANTLR end "rule__ScopeDeclaration__Group_2__1__Impl"
9969
9970
9971 // $ANTLR start "rule__TypeScope__Group__0"
9972 // InternalProblem.g:3180:1: rule__TypeScope__Group__0 : rule__TypeScope__Group__0__Impl rule__TypeScope__Group__1 ;
9973 public final void rule__TypeScope__Group__0() throws RecognitionException {
9974
9975 int stackSize = keepStackSize();
9976
9977 try {
9978 // InternalProblem.g:3184:1: ( rule__TypeScope__Group__0__Impl rule__TypeScope__Group__1 )
9979 // InternalProblem.g:3185:2: rule__TypeScope__Group__0__Impl rule__TypeScope__Group__1
9980 {
9981 pushFollow(FOLLOW_29);
9982 rule__TypeScope__Group__0__Impl();
9983
9984 state._fsp--;
9985
9986 pushFollow(FOLLOW_2);
9987 rule__TypeScope__Group__1();
9988
9989 state._fsp--;
9990
9991
9992 }
9993
9994 }
9995 catch (RecognitionException re) {
9996 reportError(re);
9997 recover(input,re);
9998 }
9999 finally {
10000
10001 restoreStackSize(stackSize);
10002
10003 }
10004 return ;
10005 }
10006 // $ANTLR end "rule__TypeScope__Group__0"
10007
10008
10009 // $ANTLR start "rule__TypeScope__Group__0__Impl"
10010 // InternalProblem.g:3192:1: rule__TypeScope__Group__0__Impl : ( ( rule__TypeScope__TargetTypeAssignment_0 ) ) ;
10011 public final void rule__TypeScope__Group__0__Impl() throws RecognitionException {
10012
10013 int stackSize = keepStackSize();
10014
10015 try {
10016 // InternalProblem.g:3196:1: ( ( ( rule__TypeScope__TargetTypeAssignment_0 ) ) )
10017 // InternalProblem.g:3197:1: ( ( rule__TypeScope__TargetTypeAssignment_0 ) )
10018 {
10019 // InternalProblem.g:3197:1: ( ( rule__TypeScope__TargetTypeAssignment_0 ) )
10020 // InternalProblem.g:3198:2: ( rule__TypeScope__TargetTypeAssignment_0 )
10021 {
10022 before(grammarAccess.getTypeScopeAccess().getTargetTypeAssignment_0());
10023 // InternalProblem.g:3199:2: ( rule__TypeScope__TargetTypeAssignment_0 )
10024 // InternalProblem.g:3199:3: rule__TypeScope__TargetTypeAssignment_0
10025 {
10026 pushFollow(FOLLOW_2);
10027 rule__TypeScope__TargetTypeAssignment_0();
10028
10029 state._fsp--;
10030
10031
10032 }
10033
10034 after(grammarAccess.getTypeScopeAccess().getTargetTypeAssignment_0());
10035
10036 }
10037
10038
10039 }
10040
10041 }
10042 catch (RecognitionException re) {
10043 reportError(re);
10044 recover(input,re);
10045 }
10046 finally {
10047
10048 restoreStackSize(stackSize);
10049
10050 }
10051 return ;
10052 }
10053 // $ANTLR end "rule__TypeScope__Group__0__Impl"
10054
10055
10056 // $ANTLR start "rule__TypeScope__Group__1"
10057 // InternalProblem.g:3207:1: rule__TypeScope__Group__1 : rule__TypeScope__Group__1__Impl rule__TypeScope__Group__2 ;
10058 public final void rule__TypeScope__Group__1() throws RecognitionException {
10059
10060 int stackSize = keepStackSize();
10061
10062 try {
10063 // InternalProblem.g:3211:1: ( rule__TypeScope__Group__1__Impl rule__TypeScope__Group__2 )
10064 // InternalProblem.g:3212:2: rule__TypeScope__Group__1__Impl rule__TypeScope__Group__2
10065 {
10066 pushFollow(FOLLOW_13);
10067 rule__TypeScope__Group__1__Impl();
10068
10069 state._fsp--;
10070
10071 pushFollow(FOLLOW_2);
10072 rule__TypeScope__Group__2();
10073
10074 state._fsp--;
10075
10076
10077 }
10078
10079 }
10080 catch (RecognitionException re) {
10081 reportError(re);
10082 recover(input,re);
10083 }
10084 finally {
10085
10086 restoreStackSize(stackSize);
10087
10088 }
10089 return ;
10090 }
10091 // $ANTLR end "rule__TypeScope__Group__1"
10092
10093
10094 // $ANTLR start "rule__TypeScope__Group__1__Impl"
10095 // InternalProblem.g:3219:1: rule__TypeScope__Group__1__Impl : ( ( rule__TypeScope__Alternatives_1 ) ) ;
10096 public final void rule__TypeScope__Group__1__Impl() throws RecognitionException {
10097
10098 int stackSize = keepStackSize();
10099
10100 try {
10101 // InternalProblem.g:3223:1: ( ( ( rule__TypeScope__Alternatives_1 ) ) )
10102 // InternalProblem.g:3224:1: ( ( rule__TypeScope__Alternatives_1 ) )
10103 {
10104 // InternalProblem.g:3224:1: ( ( rule__TypeScope__Alternatives_1 ) )
10105 // InternalProblem.g:3225:2: ( rule__TypeScope__Alternatives_1 )
10106 {
10107 before(grammarAccess.getTypeScopeAccess().getAlternatives_1());
10108 // InternalProblem.g:3226:2: ( rule__TypeScope__Alternatives_1 )
10109 // InternalProblem.g:3226:3: rule__TypeScope__Alternatives_1
10110 {
10111 pushFollow(FOLLOW_2);
10112 rule__TypeScope__Alternatives_1();
10113
10114 state._fsp--;
10115
10116
10117 }
10118
10119 after(grammarAccess.getTypeScopeAccess().getAlternatives_1());
10120
10121 }
10122
10123
10124 }
10125
10126 }
10127 catch (RecognitionException re) {
10128 reportError(re);
10129 recover(input,re);
10130 }
10131 finally {
10132
10133 restoreStackSize(stackSize);
10134
10135 }
10136 return ;
10137 }
10138 // $ANTLR end "rule__TypeScope__Group__1__Impl"
10139
10140
10141 // $ANTLR start "rule__TypeScope__Group__2"
10142 // InternalProblem.g:3234:1: rule__TypeScope__Group__2 : rule__TypeScope__Group__2__Impl ;
10143 public final void rule__TypeScope__Group__2() throws RecognitionException {
10144
10145 int stackSize = keepStackSize();
10146
10147 try {
10148 // InternalProblem.g:3238:1: ( rule__TypeScope__Group__2__Impl )
10149 // InternalProblem.g:3239:2: rule__TypeScope__Group__2__Impl
10150 {
10151 pushFollow(FOLLOW_2);
10152 rule__TypeScope__Group__2__Impl();
10153
10154 state._fsp--;
10155
10156
10157 }
10158
10159 }
10160 catch (RecognitionException re) {
10161 reportError(re);
10162 recover(input,re);
10163 }
10164 finally {
10165
10166 restoreStackSize(stackSize);
10167
10168 }
10169 return ;
10170 }
10171 // $ANTLR end "rule__TypeScope__Group__2"
10172
10173
10174 // $ANTLR start "rule__TypeScope__Group__2__Impl"
10175 // InternalProblem.g:3245:1: rule__TypeScope__Group__2__Impl : ( ( rule__TypeScope__MultiplicityAssignment_2 ) ) ;
10176 public final void rule__TypeScope__Group__2__Impl() throws RecognitionException {
10177
10178 int stackSize = keepStackSize();
10179
10180 try {
10181 // InternalProblem.g:3249:1: ( ( ( rule__TypeScope__MultiplicityAssignment_2 ) ) )
10182 // InternalProblem.g:3250:1: ( ( rule__TypeScope__MultiplicityAssignment_2 ) )
10183 {
10184 // InternalProblem.g:3250:1: ( ( rule__TypeScope__MultiplicityAssignment_2 ) )
10185 // InternalProblem.g:3251:2: ( rule__TypeScope__MultiplicityAssignment_2 )
10186 {
10187 before(grammarAccess.getTypeScopeAccess().getMultiplicityAssignment_2());
10188 // InternalProblem.g:3252:2: ( rule__TypeScope__MultiplicityAssignment_2 )
10189 // InternalProblem.g:3252:3: rule__TypeScope__MultiplicityAssignment_2
10190 {
10191 pushFollow(FOLLOW_2);
10192 rule__TypeScope__MultiplicityAssignment_2();
10193
10194 state._fsp--;
10195
10196
10197 }
10198
10199 after(grammarAccess.getTypeScopeAccess().getMultiplicityAssignment_2());
10200
10201 }
10202
10203
10204 }
10205
10206 }
10207 catch (RecognitionException re) {
10208 reportError(re);
10209 recover(input,re);
10210 }
10211 finally {
10212
10213 restoreStackSize(stackSize);
10214
10215 }
10216 return ;
10217 }
10218 // $ANTLR end "rule__TypeScope__Group__2__Impl"
10219
10220
10221 // $ANTLR start "rule__RangeMultiplicity__Group__0"
10222 // InternalProblem.g:3261:1: rule__RangeMultiplicity__Group__0 : rule__RangeMultiplicity__Group__0__Impl rule__RangeMultiplicity__Group__1 ;
10223 public final void rule__RangeMultiplicity__Group__0() throws RecognitionException {
10224
10225 int stackSize = keepStackSize();
10226
10227 try {
10228 // InternalProblem.g:3265:1: ( rule__RangeMultiplicity__Group__0__Impl rule__RangeMultiplicity__Group__1 )
10229 // InternalProblem.g:3266:2: rule__RangeMultiplicity__Group__0__Impl rule__RangeMultiplicity__Group__1
10230 {
10231 pushFollow(FOLLOW_30);
10232 rule__RangeMultiplicity__Group__0__Impl();
10233
10234 state._fsp--;
10235
10236 pushFollow(FOLLOW_2);
10237 rule__RangeMultiplicity__Group__1();
10238
10239 state._fsp--;
10240
10241
10242 }
10243
10244 }
10245 catch (RecognitionException re) {
10246 reportError(re);
10247 recover(input,re);
10248 }
10249 finally {
10250
10251 restoreStackSize(stackSize);
10252
10253 }
10254 return ;
10255 }
10256 // $ANTLR end "rule__RangeMultiplicity__Group__0"
10257
10258
10259 // $ANTLR start "rule__RangeMultiplicity__Group__0__Impl"
10260 // InternalProblem.g:3273:1: rule__RangeMultiplicity__Group__0__Impl : ( ( rule__RangeMultiplicity__LowerBoundAssignment_0 ) ) ;
10261 public final void rule__RangeMultiplicity__Group__0__Impl() throws RecognitionException {
10262
10263 int stackSize = keepStackSize();
10264
10265 try {
10266 // InternalProblem.g:3277:1: ( ( ( rule__RangeMultiplicity__LowerBoundAssignment_0 ) ) )
10267 // InternalProblem.g:3278:1: ( ( rule__RangeMultiplicity__LowerBoundAssignment_0 ) )
10268 {
10269 // InternalProblem.g:3278:1: ( ( rule__RangeMultiplicity__LowerBoundAssignment_0 ) )
10270 // InternalProblem.g:3279:2: ( rule__RangeMultiplicity__LowerBoundAssignment_0 )
10271 {
10272 before(grammarAccess.getRangeMultiplicityAccess().getLowerBoundAssignment_0());
10273 // InternalProblem.g:3280:2: ( rule__RangeMultiplicity__LowerBoundAssignment_0 )
10274 // InternalProblem.g:3280:3: rule__RangeMultiplicity__LowerBoundAssignment_0
10275 {
10276 pushFollow(FOLLOW_2);
10277 rule__RangeMultiplicity__LowerBoundAssignment_0();
10278
10279 state._fsp--;
10280
10281
10282 }
10283
10284 after(grammarAccess.getRangeMultiplicityAccess().getLowerBoundAssignment_0());
10285
10286 }
10287
10288
10289 }
10290
10291 }
10292 catch (RecognitionException re) {
10293 reportError(re);
10294 recover(input,re);
10295 }
10296 finally {
10297
10298 restoreStackSize(stackSize);
10299
10300 }
10301 return ;
10302 }
10303 // $ANTLR end "rule__RangeMultiplicity__Group__0__Impl"
10304
10305
10306 // $ANTLR start "rule__RangeMultiplicity__Group__1"
10307 // InternalProblem.g:3288:1: rule__RangeMultiplicity__Group__1 : rule__RangeMultiplicity__Group__1__Impl rule__RangeMultiplicity__Group__2 ;
10308 public final void rule__RangeMultiplicity__Group__1() throws RecognitionException {
10309
10310 int stackSize = keepStackSize();
10311
10312 try {
10313 // InternalProblem.g:3292:1: ( rule__RangeMultiplicity__Group__1__Impl rule__RangeMultiplicity__Group__2 )
10314 // InternalProblem.g:3293:2: rule__RangeMultiplicity__Group__1__Impl rule__RangeMultiplicity__Group__2
10315 {
10316 pushFollow(FOLLOW_31);
10317 rule__RangeMultiplicity__Group__1__Impl();
10318
10319 state._fsp--;
10320
10321 pushFollow(FOLLOW_2);
10322 rule__RangeMultiplicity__Group__2();
10323
10324 state._fsp--;
10325
10326
10327 }
10328
10329 }
10330 catch (RecognitionException re) {
10331 reportError(re);
10332 recover(input,re);
10333 }
10334 finally {
10335
10336 restoreStackSize(stackSize);
10337
10338 }
10339 return ;
10340 }
10341 // $ANTLR end "rule__RangeMultiplicity__Group__1"
10342
10343
10344 // $ANTLR start "rule__RangeMultiplicity__Group__1__Impl"
10345 // InternalProblem.g:3300:1: rule__RangeMultiplicity__Group__1__Impl : ( '..' ) ;
10346 public final void rule__RangeMultiplicity__Group__1__Impl() throws RecognitionException {
10347
10348 int stackSize = keepStackSize();
10349
10350 try {
10351 // InternalProblem.g:3304:1: ( ( '..' ) )
10352 // InternalProblem.g:3305:1: ( '..' )
10353 {
10354 // InternalProblem.g:3305:1: ( '..' )
10355 // InternalProblem.g:3306:2: '..'
10356 {
10357 before(grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
10358 match(input,33,FOLLOW_2);
10359 after(grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
10360
10361 }
10362
10363
10364 }
10365
10366 }
10367 catch (RecognitionException re) {
10368 reportError(re);
10369 recover(input,re);
10370 }
10371 finally {
10372
10373 restoreStackSize(stackSize);
10374
10375 }
10376 return ;
10377 }
10378 // $ANTLR end "rule__RangeMultiplicity__Group__1__Impl"
10379
10380
10381 // $ANTLR start "rule__RangeMultiplicity__Group__2"
10382 // InternalProblem.g:3315:1: rule__RangeMultiplicity__Group__2 : rule__RangeMultiplicity__Group__2__Impl ;
10383 public final void rule__RangeMultiplicity__Group__2() throws RecognitionException {
10384
10385 int stackSize = keepStackSize();
10386
10387 try {
10388 // InternalProblem.g:3319:1: ( rule__RangeMultiplicity__Group__2__Impl )
10389 // InternalProblem.g:3320:2: rule__RangeMultiplicity__Group__2__Impl
10390 {
10391 pushFollow(FOLLOW_2);
10392 rule__RangeMultiplicity__Group__2__Impl();
10393
10394 state._fsp--;
10395
10396
10397 }
10398
10399 }
10400 catch (RecognitionException re) {
10401 reportError(re);
10402 recover(input,re);
10403 }
10404 finally {
10405
10406 restoreStackSize(stackSize);
10407
10408 }
10409 return ;
10410 }
10411 // $ANTLR end "rule__RangeMultiplicity__Group__2"
10412
10413
10414 // $ANTLR start "rule__RangeMultiplicity__Group__2__Impl"
10415 // InternalProblem.g:3326:1: rule__RangeMultiplicity__Group__2__Impl : ( ( rule__RangeMultiplicity__UpperBoundAssignment_2 ) ) ;
10416 public final void rule__RangeMultiplicity__Group__2__Impl() throws RecognitionException {
10417
10418 int stackSize = keepStackSize();
10419
10420 try {
10421 // InternalProblem.g:3330:1: ( ( ( rule__RangeMultiplicity__UpperBoundAssignment_2 ) ) )
10422 // InternalProblem.g:3331:1: ( ( rule__RangeMultiplicity__UpperBoundAssignment_2 ) )
10423 {
10424 // InternalProblem.g:3331:1: ( ( rule__RangeMultiplicity__UpperBoundAssignment_2 ) )
10425 // InternalProblem.g:3332:2: ( rule__RangeMultiplicity__UpperBoundAssignment_2 )
10426 {
10427 before(grammarAccess.getRangeMultiplicityAccess().getUpperBoundAssignment_2());
10428 // InternalProblem.g:3333:2: ( rule__RangeMultiplicity__UpperBoundAssignment_2 )
10429 // InternalProblem.g:3333:3: rule__RangeMultiplicity__UpperBoundAssignment_2
10430 {
10431 pushFollow(FOLLOW_2);
10432 rule__RangeMultiplicity__UpperBoundAssignment_2();
10433
10434 state._fsp--;
10435
10436
10437 }
10438
10439 after(grammarAccess.getRangeMultiplicityAccess().getUpperBoundAssignment_2());
10440
10441 }
10442
10443
10444 }
10445
10446 }
10447 catch (RecognitionException re) {
10448 reportError(re);
10449 recover(input,re);
10450 }
10451 finally {
10452
10453 restoreStackSize(stackSize);
10454
10455 }
10456 return ;
10457 }
10458 // $ANTLR end "rule__RangeMultiplicity__Group__2__Impl"
10459
10460
10461 // $ANTLR start "rule__QualifiedName__Group__0"
10462 // InternalProblem.g:3342:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
10463 public final void rule__QualifiedName__Group__0() throws RecognitionException {
10464
10465 int stackSize = keepStackSize();
10466
10467 try {
10468 // InternalProblem.g:3346:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
10469 // InternalProblem.g:3347:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
10470 {
10471 pushFollow(FOLLOW_32);
10472 rule__QualifiedName__Group__0__Impl();
10473
10474 state._fsp--;
10475
10476 pushFollow(FOLLOW_2);
10477 rule__QualifiedName__Group__1();
10478
10479 state._fsp--;
10480
10481
10482 }
10483
10484 }
10485 catch (RecognitionException re) {
10486 reportError(re);
10487 recover(input,re);
10488 }
10489 finally {
10490
10491 restoreStackSize(stackSize);
10492
10493 }
10494 return ;
10495 }
10496 // $ANTLR end "rule__QualifiedName__Group__0"
10497
10498
10499 // $ANTLR start "rule__QualifiedName__Group__0__Impl"
10500 // InternalProblem.g:3354:1: rule__QualifiedName__Group__0__Impl : ( RULE_ID ) ;
10501 public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
10502
10503 int stackSize = keepStackSize();
10504
10505 try {
10506 // InternalProblem.g:3358:1: ( ( RULE_ID ) )
10507 // InternalProblem.g:3359:1: ( RULE_ID )
10508 {
10509 // InternalProblem.g:3359:1: ( RULE_ID )
10510 // InternalProblem.g:3360:2: RULE_ID
10511 {
10512 before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0());
10513 match(input,RULE_ID,FOLLOW_2);
10514 after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0());
10515
10516 }
10517
10518
10519 }
10520
10521 }
10522 catch (RecognitionException re) {
10523 reportError(re);
10524 recover(input,re);
10525 }
10526 finally {
10527
10528 restoreStackSize(stackSize);
10529
10530 }
10531 return ;
10532 }
10533 // $ANTLR end "rule__QualifiedName__Group__0__Impl"
10534
10535
10536 // $ANTLR start "rule__QualifiedName__Group__1"
10537 // InternalProblem.g:3369:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
10538 public final void rule__QualifiedName__Group__1() throws RecognitionException {
10539
10540 int stackSize = keepStackSize();
10541
10542 try {
10543 // InternalProblem.g:3373:1: ( rule__QualifiedName__Group__1__Impl )
10544 // InternalProblem.g:3374:2: rule__QualifiedName__Group__1__Impl
10545 {
10546 pushFollow(FOLLOW_2);
10547 rule__QualifiedName__Group__1__Impl();
10548
10549 state._fsp--;
10550
10551
10552 }
10553
10554 }
10555 catch (RecognitionException re) {
10556 reportError(re);
10557 recover(input,re);
10558 }
10559 finally {
10560
10561 restoreStackSize(stackSize);
10562
10563 }
10564 return ;
10565 }
10566 // $ANTLR end "rule__QualifiedName__Group__1"
10567
10568
10569 // $ANTLR start "rule__QualifiedName__Group__1__Impl"
10570 // InternalProblem.g:3380:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
10571 public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {
10572
10573 int stackSize = keepStackSize();
10574
10575 try {
10576 // InternalProblem.g:3384:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
10577 // InternalProblem.g:3385:1: ( ( rule__QualifiedName__Group_1__0 )* )
10578 {
10579 // InternalProblem.g:3385:1: ( ( rule__QualifiedName__Group_1__0 )* )
10580 // InternalProblem.g:3386:2: ( rule__QualifiedName__Group_1__0 )*
10581 {
10582 before(grammarAccess.getQualifiedNameAccess().getGroup_1());
10583 // InternalProblem.g:3387:2: ( rule__QualifiedName__Group_1__0 )*
10584 loop35:
10585 do {
10586 int alt35=2;
10587 int LA35_0 = input.LA(1);
10588
10589 if ( (LA35_0==34) ) {
10590 alt35=1;
10591 }
10592
10593
10594 switch (alt35) {
10595 case 1 :
10596 // InternalProblem.g:3387:3: rule__QualifiedName__Group_1__0
10597 {
10598 pushFollow(FOLLOW_33);
10599 rule__QualifiedName__Group_1__0();
10600
10601 state._fsp--;
10602
10603
10604 }
10605 break;
10606
10607 default :
10608 break loop35;
10609 }
10610 } while (true);
10611
10612 after(grammarAccess.getQualifiedNameAccess().getGroup_1());
10613
10614 }
10615
10616
10617 }
10618
10619 }
10620 catch (RecognitionException re) {
10621 reportError(re);
10622 recover(input,re);
10623 }
10624 finally {
10625
10626 restoreStackSize(stackSize);
10627
10628 }
10629 return ;
10630 }
10631 // $ANTLR end "rule__QualifiedName__Group__1__Impl"
10632
10633
10634 // $ANTLR start "rule__QualifiedName__Group_1__0"
10635 // InternalProblem.g:3396:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
10636 public final void rule__QualifiedName__Group_1__0() throws RecognitionException {
10637
10638 int stackSize = keepStackSize();
10639
10640 try {
10641 // InternalProblem.g:3400:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
10642 // InternalProblem.g:3401:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
10643 {
10644 pushFollow(FOLLOW_5);
10645 rule__QualifiedName__Group_1__0__Impl();
10646
10647 state._fsp--;
10648
10649 pushFollow(FOLLOW_2);
10650 rule__QualifiedName__Group_1__1();
10651
10652 state._fsp--;
10653
10654
10655 }
10656
10657 }
10658 catch (RecognitionException re) {
10659 reportError(re);
10660 recover(input,re);
10661 }
10662 finally {
10663
10664 restoreStackSize(stackSize);
10665
10666 }
10667 return ;
10668 }
10669 // $ANTLR end "rule__QualifiedName__Group_1__0"
10670
10671
10672 // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
10673 // InternalProblem.g:3408:1: rule__QualifiedName__Group_1__0__Impl : ( '::' ) ;
10674 public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
10675
10676 int stackSize = keepStackSize();
10677
10678 try {
10679 // InternalProblem.g:3412:1: ( ( '::' ) )
10680 // InternalProblem.g:3413:1: ( '::' )
10681 {
10682 // InternalProblem.g:3413:1: ( '::' )
10683 // InternalProblem.g:3414:2: '::'
10684 {
10685 before(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0());
10686 match(input,34,FOLLOW_2);
10687 after(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0());
10688
10689 }
10690
10691
10692 }
10693
10694 }
10695 catch (RecognitionException re) {
10696 reportError(re);
10697 recover(input,re);
10698 }
10699 finally {
10700
10701 restoreStackSize(stackSize);
10702
10703 }
10704 return ;
10705 }
10706 // $ANTLR end "rule__QualifiedName__Group_1__0__Impl"
10707
10708
10709 // $ANTLR start "rule__QualifiedName__Group_1__1"
10710 // InternalProblem.g:3423:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
10711 public final void rule__QualifiedName__Group_1__1() throws RecognitionException {
10712
10713 int stackSize = keepStackSize();
10714
10715 try {
10716 // InternalProblem.g:3427:1: ( rule__QualifiedName__Group_1__1__Impl )
10717 // InternalProblem.g:3428:2: rule__QualifiedName__Group_1__1__Impl
10718 {
10719 pushFollow(FOLLOW_2);
10720 rule__QualifiedName__Group_1__1__Impl();
10721
10722 state._fsp--;
10723
10724
10725 }
10726
10727 }
10728 catch (RecognitionException re) {
10729 reportError(re);
10730 recover(input,re);
10731 }
10732 finally {
10733
10734 restoreStackSize(stackSize);
10735
10736 }
10737 return ;
10738 }
10739 // $ANTLR end "rule__QualifiedName__Group_1__1"
10740
10741
10742 // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
10743 // InternalProblem.g:3434:1: rule__QualifiedName__Group_1__1__Impl : ( RULE_ID ) ;
10744 public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
10745
10746 int stackSize = keepStackSize();
10747
10748 try {
10749 // InternalProblem.g:3438:1: ( ( RULE_ID ) )
10750 // InternalProblem.g:3439:1: ( RULE_ID )
10751 {
10752 // InternalProblem.g:3439:1: ( RULE_ID )
10753 // InternalProblem.g:3440:2: RULE_ID
10754 {
10755 before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1());
10756 match(input,RULE_ID,FOLLOW_2);
10757 after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1());
10758
10759 }
10760
10761
10762 }
10763
10764 }
10765 catch (RecognitionException re) {
10766 reportError(re);
10767 recover(input,re);
10768 }
10769 finally {
10770
10771 restoreStackSize(stackSize);
10772
10773 }
10774 return ;
10775 }
10776 // $ANTLR end "rule__QualifiedName__Group_1__1__Impl"
10777
10778
10779 // $ANTLR start "rule__Problem__StatementsAssignment"
10780 // InternalProblem.g:3450:1: rule__Problem__StatementsAssignment : ( ruleStatement ) ;
10781 public final void rule__Problem__StatementsAssignment() throws RecognitionException {
10782
10783 int stackSize = keepStackSize();
10784
10785 try {
10786 // InternalProblem.g:3454:1: ( ( ruleStatement ) )
10787 // InternalProblem.g:3455:2: ( ruleStatement )
10788 {
10789 // InternalProblem.g:3455:2: ( ruleStatement )
10790 // InternalProblem.g:3456:3: ruleStatement
10791 {
10792 before(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0());
10793 pushFollow(FOLLOW_2);
10794 ruleStatement();
10795
10796 state._fsp--;
10797
10798 after(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0());
10799
10800 }
10801
10802
10803 }
10804
10805 }
10806 catch (RecognitionException re) {
10807 reportError(re);
10808 recover(input,re);
10809 }
10810 finally {
10811
10812 restoreStackSize(stackSize);
10813
10814 }
10815 return ;
10816 }
10817 // $ANTLR end "rule__Problem__StatementsAssignment"
10818
10819
10820 // $ANTLR start "rule__ClassDeclaration__AbstractAssignment_0"
10821 // InternalProblem.g:3465:1: rule__ClassDeclaration__AbstractAssignment_0 : ( ( 'abstract' ) ) ;
10822 public final void rule__ClassDeclaration__AbstractAssignment_0() throws RecognitionException {
10823
10824 int stackSize = keepStackSize();
10825
10826 try {
10827 // InternalProblem.g:3469:1: ( ( ( 'abstract' ) ) )
10828 // InternalProblem.g:3470:2: ( ( 'abstract' ) )
10829 {
10830 // InternalProblem.g:3470:2: ( ( 'abstract' ) )
10831 // InternalProblem.g:3471:3: ( 'abstract' )
10832 {
10833 before(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
10834 // InternalProblem.g:3472:3: ( 'abstract' )
10835 // InternalProblem.g:3473:4: 'abstract'
10836 {
10837 before(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
10838 match(input,35,FOLLOW_2);
10839 after(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
10840
10841 }
10842
10843 after(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
10844
10845 }
10846
10847
10848 }
10849
10850 }
10851 catch (RecognitionException re) {
10852 reportError(re);
10853 recover(input,re);
10854 }
10855 finally {
10856
10857 restoreStackSize(stackSize);
10858
10859 }
10860 return ;
10861 }
10862 // $ANTLR end "rule__ClassDeclaration__AbstractAssignment_0"
10863
10864
10865 // $ANTLR start "rule__ClassDeclaration__NameAssignment_2"
10866 // InternalProblem.g:3484:1: rule__ClassDeclaration__NameAssignment_2 : ( RULE_ID ) ;
10867 public final void rule__ClassDeclaration__NameAssignment_2() throws RecognitionException {
10868
10869 int stackSize = keepStackSize();
10870
10871 try {
10872 // InternalProblem.g:3488:1: ( ( RULE_ID ) )
10873 // InternalProblem.g:3489:2: ( RULE_ID )
10874 {
10875 // InternalProblem.g:3489:2: ( RULE_ID )
10876 // InternalProblem.g:3490:3: RULE_ID
10877 {
10878 before(grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0());
10879 match(input,RULE_ID,FOLLOW_2);
10880 after(grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0());
10881
10882 }
10883
10884
10885 }
10886
10887 }
10888 catch (RecognitionException re) {
10889 reportError(re);
10890 recover(input,re);
10891 }
10892 finally {
10893
10894 restoreStackSize(stackSize);
10895
10896 }
10897 return ;
10898 }
10899 // $ANTLR end "rule__ClassDeclaration__NameAssignment_2"
10900
10901
10902 // $ANTLR start "rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0"
10903 // InternalProblem.g:3499:1: rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0 : ( ( RULE_ID ) ) ;
10904 public final void rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0() throws RecognitionException {
10905
10906 int stackSize = keepStackSize();
10907
10908 try {
10909 // InternalProblem.g:3503:1: ( ( ( RULE_ID ) ) )
10910 // InternalProblem.g:3504:2: ( ( RULE_ID ) )
10911 {
10912 // InternalProblem.g:3504:2: ( ( RULE_ID ) )
10913 // InternalProblem.g:3505:3: ( RULE_ID )
10914 {
10915 before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_0_0());
10916 // InternalProblem.g:3506:3: ( RULE_ID )
10917 // InternalProblem.g:3507:4: RULE_ID
10918 {
10919 before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_0_0_1());
10920 match(input,RULE_ID,FOLLOW_2);
10921 after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_0_0_1());
10922
10923 }
10924
10925 after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_0_0());
10926
10927 }
10928
10929
10930 }
10931
10932 }
10933 catch (RecognitionException re) {
10934 reportError(re);
10935 recover(input,re);
10936 }
10937 finally {
10938
10939 restoreStackSize(stackSize);
10940
10941 }
10942 return ;
10943 }
10944 // $ANTLR end "rule__ClassDeclaration__SuperTypesAssignment_3_0_1_0"
10945
10946
10947 // $ANTLR start "rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0"
10948 // InternalProblem.g:3518:1: rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0 : ( ( RULE_ID ) ) ;
10949 public final void rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0() throws RecognitionException {
10950
10951 int stackSize = keepStackSize();
10952
10953 try {
10954 // InternalProblem.g:3522:1: ( ( ( RULE_ID ) ) )
10955 // InternalProblem.g:3523:2: ( ( RULE_ID ) )
10956 {
10957 // InternalProblem.g:3523:2: ( ( RULE_ID ) )
10958 // InternalProblem.g:3524:3: ( RULE_ID )
10959 {
10960 before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0());
10961 // InternalProblem.g:3525:3: ( RULE_ID )
10962 // InternalProblem.g:3526:4: RULE_ID
10963 {
10964 before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_0_0_1());
10965 match(input,RULE_ID,FOLLOW_2);
10966 after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_0_0_1());
10967
10968 }
10969
10970 after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0());
10971
10972 }
10973
10974
10975 }
10976
10977 }
10978 catch (RecognitionException re) {
10979 reportError(re);
10980 recover(input,re);
10981 }
10982 finally {
10983
10984 restoreStackSize(stackSize);
10985
10986 }
10987 return ;
10988 }
10989 // $ANTLR end "rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_0"
10990
10991
10992 // $ANTLR start "rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1"
10993 // InternalProblem.g:3537:1: rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1 : ( ( RULE_ID ) ) ;
10994 public final void rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1() throws RecognitionException {
10995
10996 int stackSize = keepStackSize();
10997
10998 try {
10999 // InternalProblem.g:3541:1: ( ( ( RULE_ID ) ) )
11000 // InternalProblem.g:3542:2: ( ( RULE_ID ) )
11001 {
11002 // InternalProblem.g:3542:2: ( ( RULE_ID ) )
11003 // InternalProblem.g:3543:3: ( RULE_ID )
11004 {
11005 before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0());
11006 // InternalProblem.g:3544:3: ( RULE_ID )
11007 // InternalProblem.g:3545:4: RULE_ID
11008 {
11009 before(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_1_1_0_1());
11010 match(input,RULE_ID,FOLLOW_2);
11011 after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_1_1_0_1());
11012
11013 }
11014
11015 after(grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0());
11016
11017 }
11018
11019
11020 }
11021
11022 }
11023 catch (RecognitionException re) {
11024 reportError(re);
11025 recover(input,re);
11026 }
11027 finally {
11028
11029 restoreStackSize(stackSize);
11030
11031 }
11032 return ;
11033 }
11034 // $ANTLR end "rule__ClassDeclaration__SuperTypesAssignment_3_0_1_1_1_1_1"
11035
11036
11037 // $ANTLR start "rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1"
11038 // InternalProblem.g:3556:1: rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1 : ( ruleReferenceDeclaration ) ;
11039 public final void rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1() throws RecognitionException {
11040
11041 int stackSize = keepStackSize();
11042
11043 try {
11044 // InternalProblem.g:3560:1: ( ( ruleReferenceDeclaration ) )
11045 // InternalProblem.g:3561:2: ( ruleReferenceDeclaration )
11046 {
11047 // InternalProblem.g:3561:2: ( ruleReferenceDeclaration )
11048 // InternalProblem.g:3562:3: ruleReferenceDeclaration
11049 {
11050 before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0());
11051 pushFollow(FOLLOW_2);
11052 ruleReferenceDeclaration();
11053
11054 state._fsp--;
11055
11056 after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0());
11057
11058 }
11059
11060
11061 }
11062
11063 }
11064 catch (RecognitionException re) {
11065 reportError(re);
11066 recover(input,re);
11067 }
11068 finally {
11069
11070 restoreStackSize(stackSize);
11071
11072 }
11073 return ;
11074 }
11075 // $ANTLR end "rule__ClassDeclaration__ReferenceDeclarationsAssignment_3_1"
11076
11077
11078 // $ANTLR start "rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1"
11079 // InternalProblem.g:3571:1: rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1 : ( ruleReferenceDeclaration ) ;
11080 public final void rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1() throws RecognitionException {
11081
11082 int stackSize = keepStackSize();
11083
11084 try {
11085 // InternalProblem.g:3575:1: ( ( ruleReferenceDeclaration ) )
11086 // InternalProblem.g:3576:2: ( ruleReferenceDeclaration )
11087 {
11088 // InternalProblem.g:3576:2: ( ruleReferenceDeclaration )
11089 // InternalProblem.g:3577:3: ruleReferenceDeclaration
11090 {
11091 before(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0());
11092 pushFollow(FOLLOW_2);
11093 ruleReferenceDeclaration();
11094
11095 state._fsp--;
11096
11097 after(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0());
11098
11099 }
11100
11101
11102 }
11103
11104 }
11105 catch (RecognitionException re) {
11106 reportError(re);
11107 recover(input,re);
11108 }
11109 finally {
11110
11111 restoreStackSize(stackSize);
11112
11113 }
11114 return ;
11115 }
11116 // $ANTLR end "rule__ClassDeclaration__ReferenceDeclarationsAssignment_4_1"
11117
11118
11119 // $ANTLR start "rule__ReferenceDeclaration__ContainmentAssignment_0_0"
11120 // InternalProblem.g:3586:1: rule__ReferenceDeclaration__ContainmentAssignment_0_0 : ( ( 'contains' ) ) ;
11121 public final void rule__ReferenceDeclaration__ContainmentAssignment_0_0() throws RecognitionException {
11122
11123 int stackSize = keepStackSize();
11124
11125 try {
11126 // InternalProblem.g:3590:1: ( ( ( 'contains' ) ) )
11127 // InternalProblem.g:3591:2: ( ( 'contains' ) )
11128 {
11129 // InternalProblem.g:3591:2: ( ( 'contains' ) )
11130 // InternalProblem.g:3592:3: ( 'contains' )
11131 {
11132 before(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
11133 // InternalProblem.g:3593:3: ( 'contains' )
11134 // InternalProblem.g:3594:4: 'contains'
11135 {
11136 before(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
11137 match(input,36,FOLLOW_2);
11138 after(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
11139
11140 }
11141
11142 after(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
11143
11144 }
11145
11146
11147 }
11148
11149 }
11150 catch (RecognitionException re) {
11151 reportError(re);
11152 recover(input,re);
11153 }
11154 finally {
11155
11156 restoreStackSize(stackSize);
11157
11158 }
11159 return ;
11160 }
11161 // $ANTLR end "rule__ReferenceDeclaration__ContainmentAssignment_0_0"
11162
11163
11164 // $ANTLR start "rule__ReferenceDeclaration__ReferenceTypeAssignment_1"
11165 // InternalProblem.g:3605:1: rule__ReferenceDeclaration__ReferenceTypeAssignment_1 : ( ( RULE_ID ) ) ;
11166 public final void rule__ReferenceDeclaration__ReferenceTypeAssignment_1() throws RecognitionException {
11167
11168 int stackSize = keepStackSize();
11169
11170 try {
11171 // InternalProblem.g:3609:1: ( ( ( RULE_ID ) ) )
11172 // InternalProblem.g:3610:2: ( ( RULE_ID ) )
11173 {
11174 // InternalProblem.g:3610:2: ( ( RULE_ID ) )
11175 // InternalProblem.g:3611:3: ( RULE_ID )
11176 {
11177 before(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationCrossReference_1_0());
11178 // InternalProblem.g:3612:3: ( RULE_ID )
11179 // InternalProblem.g:3613:4: RULE_ID
11180 {
11181 before(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationIDTerminalRuleCall_1_0_1());
11182 match(input,RULE_ID,FOLLOW_2);
11183 after(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationIDTerminalRuleCall_1_0_1());
11184
11185 }
11186
11187 after(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationCrossReference_1_0());
11188
11189 }
11190
11191
11192 }
11193
11194 }
11195 catch (RecognitionException re) {
11196 reportError(re);
11197 recover(input,re);
11198 }
11199 finally {
11200
11201 restoreStackSize(stackSize);
11202
11203 }
11204 return ;
11205 }
11206 // $ANTLR end "rule__ReferenceDeclaration__ReferenceTypeAssignment_1"
11207
11208
11209 // $ANTLR start "rule__ReferenceDeclaration__MultiplicityAssignment_3"
11210 // InternalProblem.g:3624:1: rule__ReferenceDeclaration__MultiplicityAssignment_3 : ( ruleMultiplicity ) ;
11211 public final void rule__ReferenceDeclaration__MultiplicityAssignment_3() throws RecognitionException {
11212
11213 int stackSize = keepStackSize();
11214
11215 try {
11216 // InternalProblem.g:3628:1: ( ( ruleMultiplicity ) )
11217 // InternalProblem.g:3629:2: ( ruleMultiplicity )
11218 {
11219 // InternalProblem.g:3629:2: ( ruleMultiplicity )
11220 // InternalProblem.g:3630:3: ruleMultiplicity
11221 {
11222 before(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_3_0());
11223 pushFollow(FOLLOW_2);
11224 ruleMultiplicity();
11225
11226 state._fsp--;
11227
11228 after(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_3_0());
11229
11230 }
11231
11232
11233 }
11234
11235 }
11236 catch (RecognitionException re) {
11237 reportError(re);
11238 recover(input,re);
11239 }
11240 finally {
11241
11242 restoreStackSize(stackSize);
11243
11244 }
11245 return ;
11246 }
11247 // $ANTLR end "rule__ReferenceDeclaration__MultiplicityAssignment_3"
11248
11249
11250 // $ANTLR start "rule__ReferenceDeclaration__NameAssignment_5"
11251 // InternalProblem.g:3639:1: rule__ReferenceDeclaration__NameAssignment_5 : ( RULE_ID ) ;
11252 public final void rule__ReferenceDeclaration__NameAssignment_5() throws RecognitionException {
11253
11254 int stackSize = keepStackSize();
11255
11256 try {
11257 // InternalProblem.g:3643:1: ( ( RULE_ID ) )
11258 // InternalProblem.g:3644:2: ( RULE_ID )
11259 {
11260 // InternalProblem.g:3644:2: ( RULE_ID )
11261 // InternalProblem.g:3645:3: RULE_ID
11262 {
11263 before(grammarAccess.getReferenceDeclarationAccess().getNameIDTerminalRuleCall_5_0());
11264 match(input,RULE_ID,FOLLOW_2);
11265 after(grammarAccess.getReferenceDeclarationAccess().getNameIDTerminalRuleCall_5_0());
11266
11267 }
11268
11269
11270 }
11271
11272 }
11273 catch (RecognitionException re) {
11274 reportError(re);
11275 recover(input,re);
11276 }
11277 finally {
11278
11279 restoreStackSize(stackSize);
11280
11281 }
11282 return ;
11283 }
11284 // $ANTLR end "rule__ReferenceDeclaration__NameAssignment_5"
11285
11286
11287 // $ANTLR start "rule__ReferenceDeclaration__OppositeAssignment_6_1"
11288 // InternalProblem.g:3654:1: rule__ReferenceDeclaration__OppositeAssignment_6_1 : ( ( ruleQualifiedName ) ) ;
11289 public final void rule__ReferenceDeclaration__OppositeAssignment_6_1() throws RecognitionException {
11290
11291 int stackSize = keepStackSize();
11292
11293 try {
11294 // InternalProblem.g:3658:1: ( ( ( ruleQualifiedName ) ) )
11295 // InternalProblem.g:3659:2: ( ( ruleQualifiedName ) )
11296 {
11297 // InternalProblem.g:3659:2: ( ( ruleQualifiedName ) )
11298 // InternalProblem.g:3660:3: ( ruleQualifiedName )
11299 {
11300 before(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_6_1_0());
11301 // InternalProblem.g:3661:3: ( ruleQualifiedName )
11302 // InternalProblem.g:3662:4: ruleQualifiedName
11303 {
11304 before(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationQualifiedNameParserRuleCall_6_1_0_1());
11305 pushFollow(FOLLOW_2);
11306 ruleQualifiedName();
11307
11308 state._fsp--;
11309
11310 after(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationQualifiedNameParserRuleCall_6_1_0_1());
11311
11312 }
11313
11314 after(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_6_1_0());
11315
11316 }
11317
11318
11319 }
11320
11321 }
11322 catch (RecognitionException re) {
11323 reportError(re);
11324 recover(input,re);
11325 }
11326 finally {
11327
11328 restoreStackSize(stackSize);
11329
11330 }
11331 return ;
11332 }
11333 // $ANTLR end "rule__ReferenceDeclaration__OppositeAssignment_6_1"
11334
11335
11336 // $ANTLR start "rule__PredicateDefinition__ErrorAssignment_0_0_0"
11337 // InternalProblem.g:3673:1: rule__PredicateDefinition__ErrorAssignment_0_0_0 : ( ( 'error' ) ) ;
11338 public final void rule__PredicateDefinition__ErrorAssignment_0_0_0() throws RecognitionException {
11339
11340 int stackSize = keepStackSize();
11341
11342 try {
11343 // InternalProblem.g:3677:1: ( ( ( 'error' ) ) )
11344 // InternalProblem.g:3678:2: ( ( 'error' ) )
11345 {
11346 // InternalProblem.g:3678:2: ( ( 'error' ) )
11347 // InternalProblem.g:3679:3: ( 'error' )
11348 {
11349 before(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
11350 // InternalProblem.g:3680:3: ( 'error' )
11351 // InternalProblem.g:3681:4: 'error'
11352 {
11353 before(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
11354 match(input,37,FOLLOW_2);
11355 after(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
11356
11357 }
11358
11359 after(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
11360
11361 }
11362
11363
11364 }
11365
11366 }
11367 catch (RecognitionException re) {
11368 reportError(re);
11369 recover(input,re);
11370 }
11371 finally {
11372
11373 restoreStackSize(stackSize);
11374
11375 }
11376 return ;
11377 }
11378 // $ANTLR end "rule__PredicateDefinition__ErrorAssignment_0_0_0"
11379
11380
11381 // $ANTLR start "rule__PredicateDefinition__NameAssignment_1"
11382 // InternalProblem.g:3692:1: rule__PredicateDefinition__NameAssignment_1 : ( RULE_ID ) ;
11383 public final void rule__PredicateDefinition__NameAssignment_1() throws RecognitionException {
11384
11385 int stackSize = keepStackSize();
11386
11387 try {
11388 // InternalProblem.g:3696:1: ( ( RULE_ID ) )
11389 // InternalProblem.g:3697:2: ( RULE_ID )
11390 {
11391 // InternalProblem.g:3697:2: ( RULE_ID )
11392 // InternalProblem.g:3698:3: RULE_ID
11393 {
11394 before(grammarAccess.getPredicateDefinitionAccess().getNameIDTerminalRuleCall_1_0());
11395 match(input,RULE_ID,FOLLOW_2);
11396 after(grammarAccess.getPredicateDefinitionAccess().getNameIDTerminalRuleCall_1_0());
11397
11398 }
11399
11400
11401 }
11402
11403 }
11404 catch (RecognitionException re) {
11405 reportError(re);
11406 recover(input,re);
11407 }
11408 finally {
11409
11410 restoreStackSize(stackSize);
11411
11412 }
11413 return ;
11414 }
11415 // $ANTLR end "rule__PredicateDefinition__NameAssignment_1"
11416
11417
11418 // $ANTLR start "rule__PredicateDefinition__ParametersAssignment_3_0"
11419 // InternalProblem.g:3707:1: rule__PredicateDefinition__ParametersAssignment_3_0 : ( ruleParameter ) ;
11420 public final void rule__PredicateDefinition__ParametersAssignment_3_0() throws RecognitionException {
11421
11422 int stackSize = keepStackSize();
11423
11424 try {
11425 // InternalProblem.g:3711:1: ( ( ruleParameter ) )
11426 // InternalProblem.g:3712:2: ( ruleParameter )
11427 {
11428 // InternalProblem.g:3712:2: ( ruleParameter )
11429 // InternalProblem.g:3713:3: ruleParameter
11430 {
11431 before(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
11432 pushFollow(FOLLOW_2);
11433 ruleParameter();
11434
11435 state._fsp--;
11436
11437 after(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
11438
11439 }
11440
11441
11442 }
11443
11444 }
11445 catch (RecognitionException re) {
11446 reportError(re);
11447 recover(input,re);
11448 }
11449 finally {
11450
11451 restoreStackSize(stackSize);
11452
11453 }
11454 return ;
11455 }
11456 // $ANTLR end "rule__PredicateDefinition__ParametersAssignment_3_0"
11457
11458
11459 // $ANTLR start "rule__PredicateDefinition__ParametersAssignment_3_1_1"
11460 // InternalProblem.g:3722:1: rule__PredicateDefinition__ParametersAssignment_3_1_1 : ( ruleParameter ) ;
11461 public final void rule__PredicateDefinition__ParametersAssignment_3_1_1() throws RecognitionException {
11462
11463 int stackSize = keepStackSize();
11464
11465 try {
11466 // InternalProblem.g:3726:1: ( ( ruleParameter ) )
11467 // InternalProblem.g:3727:2: ( ruleParameter )
11468 {
11469 // InternalProblem.g:3727:2: ( ruleParameter )
11470 // InternalProblem.g:3728:3: ruleParameter
11471 {
11472 before(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
11473 pushFollow(FOLLOW_2);
11474 ruleParameter();
11475
11476 state._fsp--;
11477
11478 after(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
11479
11480 }
11481
11482
11483 }
11484
11485 }
11486 catch (RecognitionException re) {
11487 reportError(re);
11488 recover(input,re);
11489 }
11490 finally {
11491
11492 restoreStackSize(stackSize);
11493
11494 }
11495 return ;
11496 }
11497 // $ANTLR end "rule__PredicateDefinition__ParametersAssignment_3_1_1"
11498
11499
11500 // $ANTLR start "rule__PredicateDefinition__BodiesAssignment_5_1"
11501 // InternalProblem.g:3737:1: rule__PredicateDefinition__BodiesAssignment_5_1 : ( ruleConjunction ) ;
11502 public final void rule__PredicateDefinition__BodiesAssignment_5_1() throws RecognitionException {
11503
11504 int stackSize = keepStackSize();
11505
11506 try {
11507 // InternalProblem.g:3741:1: ( ( ruleConjunction ) )
11508 // InternalProblem.g:3742:2: ( ruleConjunction )
11509 {
11510 // InternalProblem.g:3742:2: ( ruleConjunction )
11511 // InternalProblem.g:3743:3: ruleConjunction
11512 {
11513 before(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
11514 pushFollow(FOLLOW_2);
11515 ruleConjunction();
11516
11517 state._fsp--;
11518
11519 after(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
11520
11521 }
11522
11523
11524 }
11525
11526 }
11527 catch (RecognitionException re) {
11528 reportError(re);
11529 recover(input,re);
11530 }
11531 finally {
11532
11533 restoreStackSize(stackSize);
11534
11535 }
11536 return ;
11537 }
11538 // $ANTLR end "rule__PredicateDefinition__BodiesAssignment_5_1"
11539
11540
11541 // $ANTLR start "rule__PredicateDefinition__BodiesAssignment_5_2_1"
11542 // InternalProblem.g:3752:1: rule__PredicateDefinition__BodiesAssignment_5_2_1 : ( ruleConjunction ) ;
11543 public final void rule__PredicateDefinition__BodiesAssignment_5_2_1() throws RecognitionException {
11544
11545 int stackSize = keepStackSize();
11546
11547 try {
11548 // InternalProblem.g:3756:1: ( ( ruleConjunction ) )
11549 // InternalProblem.g:3757:2: ( ruleConjunction )
11550 {
11551 // InternalProblem.g:3757:2: ( ruleConjunction )
11552 // InternalProblem.g:3758:3: ruleConjunction
11553 {
11554 before(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
11555 pushFollow(FOLLOW_2);
11556 ruleConjunction();
11557
11558 state._fsp--;
11559
11560 after(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
11561
11562 }
11563
11564
11565 }
11566
11567 }
11568 catch (RecognitionException re) {
11569 reportError(re);
11570 recover(input,re);
11571 }
11572 finally {
11573
11574 restoreStackSize(stackSize);
11575
11576 }
11577 return ;
11578 }
11579 // $ANTLR end "rule__PredicateDefinition__BodiesAssignment_5_2_1"
11580
11581
11582 // $ANTLR start "rule__Parameter__ParameterTypeAssignment_0"
11583 // InternalProblem.g:3767:1: rule__Parameter__ParameterTypeAssignment_0 : ( ( RULE_ID ) ) ;
11584 public final void rule__Parameter__ParameterTypeAssignment_0() throws RecognitionException {
11585
11586 int stackSize = keepStackSize();
11587
11588 try {
11589 // InternalProblem.g:3771:1: ( ( ( RULE_ID ) ) )
11590 // InternalProblem.g:3772:2: ( ( RULE_ID ) )
11591 {
11592 // InternalProblem.g:3772:2: ( ( RULE_ID ) )
11593 // InternalProblem.g:3773:3: ( RULE_ID )
11594 {
11595 before(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationCrossReference_0_0());
11596 // InternalProblem.g:3774:3: ( RULE_ID )
11597 // InternalProblem.g:3775:4: RULE_ID
11598 {
11599 before(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1());
11600 match(input,RULE_ID,FOLLOW_2);
11601 after(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1());
11602
11603 }
11604
11605 after(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationCrossReference_0_0());
11606
11607 }
11608
11609
11610 }
11611
11612 }
11613 catch (RecognitionException re) {
11614 reportError(re);
11615 recover(input,re);
11616 }
11617 finally {
11618
11619 restoreStackSize(stackSize);
11620
11621 }
11622 return ;
11623 }
11624 // $ANTLR end "rule__Parameter__ParameterTypeAssignment_0"
11625
11626
11627 // $ANTLR start "rule__Parameter__NameAssignment_1"
11628 // InternalProblem.g:3786:1: rule__Parameter__NameAssignment_1 : ( RULE_ID ) ;
11629 public final void rule__Parameter__NameAssignment_1() throws RecognitionException {
11630
11631 int stackSize = keepStackSize();
11632
11633 try {
11634 // InternalProblem.g:3790:1: ( ( RULE_ID ) )
11635 // InternalProblem.g:3791:2: ( RULE_ID )
11636 {
11637 // InternalProblem.g:3791:2: ( RULE_ID )
11638 // InternalProblem.g:3792:3: RULE_ID
11639 {
11640 before(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0());
11641 match(input,RULE_ID,FOLLOW_2);
11642 after(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0());
11643
11644 }
11645
11646
11647 }
11648
11649 }
11650 catch (RecognitionException re) {
11651 reportError(re);
11652 recover(input,re);
11653 }
11654 finally {
11655
11656 restoreStackSize(stackSize);
11657
11658 }
11659 return ;
11660 }
11661 // $ANTLR end "rule__Parameter__NameAssignment_1"
11662
11663
11664 // $ANTLR start "rule__Conjunction__LiteralsAssignment_0"
11665 // InternalProblem.g:3801:1: rule__Conjunction__LiteralsAssignment_0 : ( ruleLiteral ) ;
11666 public final void rule__Conjunction__LiteralsAssignment_0() throws RecognitionException {
11667
11668 int stackSize = keepStackSize();
11669
11670 try {
11671 // InternalProblem.g:3805:1: ( ( ruleLiteral ) )
11672 // InternalProblem.g:3806:2: ( ruleLiteral )
11673 {
11674 // InternalProblem.g:3806:2: ( ruleLiteral )
11675 // InternalProblem.g:3807:3: ruleLiteral
11676 {
11677 before(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
11678 pushFollow(FOLLOW_2);
11679 ruleLiteral();
11680
11681 state._fsp--;
11682
11683 after(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
11684
11685 }
11686
11687
11688 }
11689
11690 }
11691 catch (RecognitionException re) {
11692 reportError(re);
11693 recover(input,re);
11694 }
11695 finally {
11696
11697 restoreStackSize(stackSize);
11698
11699 }
11700 return ;
11701 }
11702 // $ANTLR end "rule__Conjunction__LiteralsAssignment_0"
11703
11704
11705 // $ANTLR start "rule__Conjunction__LiteralsAssignment_1_1"
11706 // InternalProblem.g:3816:1: rule__Conjunction__LiteralsAssignment_1_1 : ( ruleLiteral ) ;
11707 public final void rule__Conjunction__LiteralsAssignment_1_1() throws RecognitionException {
11708
11709 int stackSize = keepStackSize();
11710
11711 try {
11712 // InternalProblem.g:3820:1: ( ( ruleLiteral ) )
11713 // InternalProblem.g:3821:2: ( ruleLiteral )
11714 {
11715 // InternalProblem.g:3821:2: ( ruleLiteral )
11716 // InternalProblem.g:3822:3: ruleLiteral
11717 {
11718 before(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
11719 pushFollow(FOLLOW_2);
11720 ruleLiteral();
11721
11722 state._fsp--;
11723
11724 after(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
11725
11726 }
11727
11728
11729 }
11730
11731 }
11732 catch (RecognitionException re) {
11733 reportError(re);
11734 recover(input,re);
11735 }
11736 finally {
11737
11738 restoreStackSize(stackSize);
11739
11740 }
11741 return ;
11742 }
11743 // $ANTLR end "rule__Conjunction__LiteralsAssignment_1_1"
11744
11745
11746 // $ANTLR start "rule__NegativeLiteral__AtomAssignment_1"
11747 // InternalProblem.g:3831:1: rule__NegativeLiteral__AtomAssignment_1 : ( ruleAtom ) ;
11748 public final void rule__NegativeLiteral__AtomAssignment_1() throws RecognitionException {
11749
11750 int stackSize = keepStackSize();
11751
11752 try {
11753 // InternalProblem.g:3835:1: ( ( ruleAtom ) )
11754 // InternalProblem.g:3836:2: ( ruleAtom )
11755 {
11756 // InternalProblem.g:3836:2: ( ruleAtom )
11757 // InternalProblem.g:3837:3: ruleAtom
11758 {
11759 before(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
11760 pushFollow(FOLLOW_2);
11761 ruleAtom();
11762
11763 state._fsp--;
11764
11765 after(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
11766
11767 }
11768
11769
11770 }
11771
11772 }
11773 catch (RecognitionException re) {
11774 reportError(re);
11775 recover(input,re);
11776 }
11777 finally {
11778
11779 restoreStackSize(stackSize);
11780
11781 }
11782 return ;
11783 }
11784 // $ANTLR end "rule__NegativeLiteral__AtomAssignment_1"
11785
11786
11787 // $ANTLR start "rule__Atom__RelationAssignment_0"
11788 // InternalProblem.g:3846:1: rule__Atom__RelationAssignment_0 : ( ( ruleQualifiedName ) ) ;
11789 public final void rule__Atom__RelationAssignment_0() throws RecognitionException {
11790
11791 int stackSize = keepStackSize();
11792
11793 try {
11794 // InternalProblem.g:3850:1: ( ( ( ruleQualifiedName ) ) )
11795 // InternalProblem.g:3851:2: ( ( ruleQualifiedName ) )
11796 {
11797 // InternalProblem.g:3851:2: ( ( ruleQualifiedName ) )
11798 // InternalProblem.g:3852:3: ( ruleQualifiedName )
11799 {
11800 before(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
11801 // InternalProblem.g:3853:3: ( ruleQualifiedName )
11802 // InternalProblem.g:3854:4: ruleQualifiedName
11803 {
11804 before(grammarAccess.getAtomAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_1());
11805 pushFollow(FOLLOW_2);
11806 ruleQualifiedName();
11807
11808 state._fsp--;
11809
11810 after(grammarAccess.getAtomAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_1());
11811
11812 }
11813
11814 after(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
11815
11816 }
11817
11818
11819 }
11820
11821 }
11822 catch (RecognitionException re) {
11823 reportError(re);
11824 recover(input,re);
11825 }
11826 finally {
11827
11828 restoreStackSize(stackSize);
11829
11830 }
11831 return ;
11832 }
11833 // $ANTLR end "rule__Atom__RelationAssignment_0"
11834
11835
11836 // $ANTLR start "rule__Atom__TransitiveClosureAssignment_1"
11837 // InternalProblem.g:3865:1: rule__Atom__TransitiveClosureAssignment_1 : ( ( '+' ) ) ;
11838 public final void rule__Atom__TransitiveClosureAssignment_1() throws RecognitionException {
11839
11840 int stackSize = keepStackSize();
11841
11842 try {
11843 // InternalProblem.g:3869:1: ( ( ( '+' ) ) )
11844 // InternalProblem.g:3870:2: ( ( '+' ) )
11845 {
11846 // InternalProblem.g:3870:2: ( ( '+' ) )
11847 // InternalProblem.g:3871:3: ( '+' )
11848 {
11849 before(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
11850 // InternalProblem.g:3872:3: ( '+' )
11851 // InternalProblem.g:3873:4: '+'
11852 {
11853 before(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
11854 match(input,38,FOLLOW_2);
11855 after(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
11856
11857 }
11858
11859 after(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
11860
11861 }
11862
11863
11864 }
11865
11866 }
11867 catch (RecognitionException re) {
11868 reportError(re);
11869 recover(input,re);
11870 }
11871 finally {
11872
11873 restoreStackSize(stackSize);
11874
11875 }
11876 return ;
11877 }
11878 // $ANTLR end "rule__Atom__TransitiveClosureAssignment_1"
11879
11880
11881 // $ANTLR start "rule__Atom__ArgumentsAssignment_3_0"
11882 // InternalProblem.g:3884:1: rule__Atom__ArgumentsAssignment_3_0 : ( ( RULE_ID ) ) ;
11883 public final void rule__Atom__ArgumentsAssignment_3_0() throws RecognitionException {
11884
11885 int stackSize = keepStackSize();
11886
11887 try {
11888 // InternalProblem.g:3888:1: ( ( ( RULE_ID ) ) )
11889 // InternalProblem.g:3889:2: ( ( RULE_ID ) )
11890 {
11891 // InternalProblem.g:3889:2: ( ( RULE_ID ) )
11892 // InternalProblem.g:3890:3: ( RULE_ID )
11893 {
11894 before(grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_0_0());
11895 // InternalProblem.g:3891:3: ( RULE_ID )
11896 // InternalProblem.g:3892:4: RULE_ID
11897 {
11898 before(grammarAccess.getAtomAccess().getArgumentsVariableIDTerminalRuleCall_3_0_0_1());
11899 match(input,RULE_ID,FOLLOW_2);
11900 after(grammarAccess.getAtomAccess().getArgumentsVariableIDTerminalRuleCall_3_0_0_1());
11901
11902 }
11903
11904 after(grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_0_0());
11905
11906 }
11907
11908
11909 }
11910
11911 }
11912 catch (RecognitionException re) {
11913 reportError(re);
11914 recover(input,re);
11915 }
11916 finally {
11917
11918 restoreStackSize(stackSize);
11919
11920 }
11921 return ;
11922 }
11923 // $ANTLR end "rule__Atom__ArgumentsAssignment_3_0"
11924
11925
11926 // $ANTLR start "rule__Atom__ArgumentsAssignment_3_1_1"
11927 // InternalProblem.g:3903:1: rule__Atom__ArgumentsAssignment_3_1_1 : ( ( RULE_ID ) ) ;
11928 public final void rule__Atom__ArgumentsAssignment_3_1_1() throws RecognitionException {
11929
11930 int stackSize = keepStackSize();
11931
11932 try {
11933 // InternalProblem.g:3907:1: ( ( ( RULE_ID ) ) )
11934 // InternalProblem.g:3908:2: ( ( RULE_ID ) )
11935 {
11936 // InternalProblem.g:3908:2: ( ( RULE_ID ) )
11937 // InternalProblem.g:3909:3: ( RULE_ID )
11938 {
11939 before(grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_1_1_0());
11940 // InternalProblem.g:3910:3: ( RULE_ID )
11941 // InternalProblem.g:3911:4: RULE_ID
11942 {
11943 before(grammarAccess.getAtomAccess().getArgumentsVariableIDTerminalRuleCall_3_1_1_0_1());
11944 match(input,RULE_ID,FOLLOW_2);
11945 after(grammarAccess.getAtomAccess().getArgumentsVariableIDTerminalRuleCall_3_1_1_0_1());
11946
11947 }
11948
11949 after(grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_1_1_0());
11950
11951 }
11952
11953
11954 }
11955
11956 }
11957 catch (RecognitionException re) {
11958 reportError(re);
11959 recover(input,re);
11960 }
11961 finally {
11962
11963 restoreStackSize(stackSize);
11964
11965 }
11966 return ;
11967 }
11968 // $ANTLR end "rule__Atom__ArgumentsAssignment_3_1_1"
11969
11970
11971 // $ANTLR start "rule__Assertion__RelationAssignment_0_0_0"
11972 // InternalProblem.g:3922:1: rule__Assertion__RelationAssignment_0_0_0 : ( ( ruleQualifiedName ) ) ;
11973 public final void rule__Assertion__RelationAssignment_0_0_0() throws RecognitionException {
11974
11975 int stackSize = keepStackSize();
11976
11977 try {
11978 // InternalProblem.g:3926:1: ( ( ( ruleQualifiedName ) ) )
11979 // InternalProblem.g:3927:2: ( ( ruleQualifiedName ) )
11980 {
11981 // InternalProblem.g:3927:2: ( ( ruleQualifiedName ) )
11982 // InternalProblem.g:3928:3: ( ruleQualifiedName )
11983 {
11984 before(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
11985 // InternalProblem.g:3929:3: ( ruleQualifiedName )
11986 // InternalProblem.g:3930:4: ruleQualifiedName
11987 {
11988 before(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1());
11989 pushFollow(FOLLOW_2);
11990 ruleQualifiedName();
11991
11992 state._fsp--;
11993
11994 after(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1());
11995
11996 }
11997
11998 after(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
11999
12000 }
12001
12002
12003 }
12004
12005 }
12006 catch (RecognitionException re) {
12007 reportError(re);
12008 recover(input,re);
12009 }
12010 finally {
12011
12012 restoreStackSize(stackSize);
12013
12014 }
12015 return ;
12016 }
12017 // $ANTLR end "rule__Assertion__RelationAssignment_0_0_0"
12018
12019
12020 // $ANTLR start "rule__Assertion__ArgumentsAssignment_0_0_2_0"
12021 // InternalProblem.g:3941:1: rule__Assertion__ArgumentsAssignment_0_0_2_0 : ( ( ruleQualifiedName ) ) ;
12022 public final void rule__Assertion__ArgumentsAssignment_0_0_2_0() throws RecognitionException {
12023
12024 int stackSize = keepStackSize();
12025
12026 try {
12027 // InternalProblem.g:3945:1: ( ( ( ruleQualifiedName ) ) )
12028 // InternalProblem.g:3946:2: ( ( ruleQualifiedName ) )
12029 {
12030 // InternalProblem.g:3946:2: ( ( ruleQualifiedName ) )
12031 // InternalProblem.g:3947:3: ( ruleQualifiedName )
12032 {
12033 before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
12034 // InternalProblem.g:3948:3: ( ruleQualifiedName )
12035 // InternalProblem.g:3949:4: ruleQualifiedName
12036 {
12037 before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1());
12038 pushFollow(FOLLOW_2);
12039 ruleQualifiedName();
12040
12041 state._fsp--;
12042
12043 after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1());
12044
12045 }
12046
12047 after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
12048
12049 }
12050
12051
12052 }
12053
12054 }
12055 catch (RecognitionException re) {
12056 reportError(re);
12057 recover(input,re);
12058 }
12059 finally {
12060
12061 restoreStackSize(stackSize);
12062
12063 }
12064 return ;
12065 }
12066 // $ANTLR end "rule__Assertion__ArgumentsAssignment_0_0_2_0"
12067
12068
12069 // $ANTLR start "rule__Assertion__ArgumentsAssignment_0_0_2_1_1"
12070 // InternalProblem.g:3960:1: rule__Assertion__ArgumentsAssignment_0_0_2_1_1 : ( ( ruleQualifiedName ) ) ;
12071 public final void rule__Assertion__ArgumentsAssignment_0_0_2_1_1() throws RecognitionException {
12072
12073 int stackSize = keepStackSize();
12074
12075 try {
12076 // InternalProblem.g:3964:1: ( ( ( ruleQualifiedName ) ) )
12077 // InternalProblem.g:3965:2: ( ( ruleQualifiedName ) )
12078 {
12079 // InternalProblem.g:3965:2: ( ( ruleQualifiedName ) )
12080 // InternalProblem.g:3966:3: ( ruleQualifiedName )
12081 {
12082 before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
12083 // InternalProblem.g:3967:3: ( ruleQualifiedName )
12084 // InternalProblem.g:3968:4: ruleQualifiedName
12085 {
12086 before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1());
12087 pushFollow(FOLLOW_2);
12088 ruleQualifiedName();
12089
12090 state._fsp--;
12091
12092 after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1());
12093
12094 }
12095
12096 after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
12097
12098 }
12099
12100
12101 }
12102
12103 }
12104 catch (RecognitionException re) {
12105 reportError(re);
12106 recover(input,re);
12107 }
12108 finally {
12109
12110 restoreStackSize(stackSize);
12111
12112 }
12113 return ;
12114 }
12115 // $ANTLR end "rule__Assertion__ArgumentsAssignment_0_0_2_1_1"
12116
12117
12118 // $ANTLR start "rule__Assertion__ValueAssignment_0_0_5"
12119 // InternalProblem.g:3979:1: rule__Assertion__ValueAssignment_0_0_5 : ( ruleLogicValue ) ;
12120 public final void rule__Assertion__ValueAssignment_0_0_5() throws RecognitionException {
12121
12122 int stackSize = keepStackSize();
12123
12124 try {
12125 // InternalProblem.g:3983:1: ( ( ruleLogicValue ) )
12126 // InternalProblem.g:3984:2: ( ruleLogicValue )
12127 {
12128 // InternalProblem.g:3984:2: ( ruleLogicValue )
12129 // InternalProblem.g:3985:3: ruleLogicValue
12130 {
12131 before(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
12132 pushFollow(FOLLOW_2);
12133 ruleLogicValue();
12134
12135 state._fsp--;
12136
12137 after(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
12138
12139 }
12140
12141
12142 }
12143
12144 }
12145 catch (RecognitionException re) {
12146 reportError(re);
12147 recover(input,re);
12148 }
12149 finally {
12150
12151 restoreStackSize(stackSize);
12152
12153 }
12154 return ;
12155 }
12156 // $ANTLR end "rule__Assertion__ValueAssignment_0_0_5"
12157
12158
12159 // $ANTLR start "rule__Assertion__ValueAssignment_0_1_0"
12160 // InternalProblem.g:3994:1: rule__Assertion__ValueAssignment_0_1_0 : ( ruleShortLogicValue ) ;
12161 public final void rule__Assertion__ValueAssignment_0_1_0() throws RecognitionException {
12162
12163 int stackSize = keepStackSize();
12164
12165 try {
12166 // InternalProblem.g:3998:1: ( ( ruleShortLogicValue ) )
12167 // InternalProblem.g:3999:2: ( ruleShortLogicValue )
12168 {
12169 // InternalProblem.g:3999:2: ( ruleShortLogicValue )
12170 // InternalProblem.g:4000:3: ruleShortLogicValue
12171 {
12172 before(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
12173 pushFollow(FOLLOW_2);
12174 ruleShortLogicValue();
12175
12176 state._fsp--;
12177
12178 after(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
12179
12180 }
12181
12182
12183 }
12184
12185 }
12186 catch (RecognitionException re) {
12187 reportError(re);
12188 recover(input,re);
12189 }
12190 finally {
12191
12192 restoreStackSize(stackSize);
12193
12194 }
12195 return ;
12196 }
12197 // $ANTLR end "rule__Assertion__ValueAssignment_0_1_0"
12198
12199
12200 // $ANTLR start "rule__Assertion__RelationAssignment_0_1_1"
12201 // InternalProblem.g:4009:1: rule__Assertion__RelationAssignment_0_1_1 : ( ( ruleQualifiedName ) ) ;
12202 public final void rule__Assertion__RelationAssignment_0_1_1() throws RecognitionException {
12203
12204 int stackSize = keepStackSize();
12205
12206 try {
12207 // InternalProblem.g:4013:1: ( ( ( ruleQualifiedName ) ) )
12208 // InternalProblem.g:4014:2: ( ( ruleQualifiedName ) )
12209 {
12210 // InternalProblem.g:4014:2: ( ( ruleQualifiedName ) )
12211 // InternalProblem.g:4015:3: ( ruleQualifiedName )
12212 {
12213 before(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
12214 // InternalProblem.g:4016:3: ( ruleQualifiedName )
12215 // InternalProblem.g:4017:4: ruleQualifiedName
12216 {
12217 before(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1());
12218 pushFollow(FOLLOW_2);
12219 ruleQualifiedName();
12220
12221 state._fsp--;
12222
12223 after(grammarAccess.getAssertionAccess().getRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1());
12224
12225 }
12226
12227 after(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
12228
12229 }
12230
12231
12232 }
12233
12234 }
12235 catch (RecognitionException re) {
12236 reportError(re);
12237 recover(input,re);
12238 }
12239 finally {
12240
12241 restoreStackSize(stackSize);
12242
12243 }
12244 return ;
12245 }
12246 // $ANTLR end "rule__Assertion__RelationAssignment_0_1_1"
12247
12248
12249 // $ANTLR start "rule__Assertion__ArgumentsAssignment_0_1_3_0"
12250 // InternalProblem.g:4028:1: rule__Assertion__ArgumentsAssignment_0_1_3_0 : ( ( ruleQualifiedName ) ) ;
12251 public final void rule__Assertion__ArgumentsAssignment_0_1_3_0() throws RecognitionException {
12252
12253 int stackSize = keepStackSize();
12254
12255 try {
12256 // InternalProblem.g:4032:1: ( ( ( ruleQualifiedName ) ) )
12257 // InternalProblem.g:4033:2: ( ( ruleQualifiedName ) )
12258 {
12259 // InternalProblem.g:4033:2: ( ( ruleQualifiedName ) )
12260 // InternalProblem.g:4034:3: ( ruleQualifiedName )
12261 {
12262 before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
12263 // InternalProblem.g:4035:3: ( ruleQualifiedName )
12264 // InternalProblem.g:4036:4: ruleQualifiedName
12265 {
12266 before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1());
12267 pushFollow(FOLLOW_2);
12268 ruleQualifiedName();
12269
12270 state._fsp--;
12271
12272 after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1());
12273
12274 }
12275
12276 after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
12277
12278 }
12279
12280
12281 }
12282
12283 }
12284 catch (RecognitionException re) {
12285 reportError(re);
12286 recover(input,re);
12287 }
12288 finally {
12289
12290 restoreStackSize(stackSize);
12291
12292 }
12293 return ;
12294 }
12295 // $ANTLR end "rule__Assertion__ArgumentsAssignment_0_1_3_0"
12296
12297
12298 // $ANTLR start "rule__Assertion__ArgumentsAssignment_0_1_3_1_1"
12299 // InternalProblem.g:4047:1: rule__Assertion__ArgumentsAssignment_0_1_3_1_1 : ( ( ruleQualifiedName ) ) ;
12300 public final void rule__Assertion__ArgumentsAssignment_0_1_3_1_1() throws RecognitionException {
12301
12302 int stackSize = keepStackSize();
12303
12304 try {
12305 // InternalProblem.g:4051:1: ( ( ( ruleQualifiedName ) ) )
12306 // InternalProblem.g:4052:2: ( ( ruleQualifiedName ) )
12307 {
12308 // InternalProblem.g:4052:2: ( ( ruleQualifiedName ) )
12309 // InternalProblem.g:4053:3: ( ruleQualifiedName )
12310 {
12311 before(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
12312 // InternalProblem.g:4054:3: ( ruleQualifiedName )
12313 // InternalProblem.g:4055:4: ruleQualifiedName
12314 {
12315 before(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1());
12316 pushFollow(FOLLOW_2);
12317 ruleQualifiedName();
12318
12319 state._fsp--;
12320
12321 after(grammarAccess.getAssertionAccess().getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1());
12322
12323 }
12324
12325 after(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
12326
12327 }
12328
12329
12330 }
12331
12332 }
12333 catch (RecognitionException re) {
12334 reportError(re);
12335 recover(input,re);
12336 }
12337 finally {
12338
12339 restoreStackSize(stackSize);
12340
12341 }
12342 return ;
12343 }
12344 // $ANTLR end "rule__Assertion__ArgumentsAssignment_0_1_3_1_1"
12345
12346
12347 // $ANTLR start "rule__ScopeDeclaration__TypeScopesAssignment_1"
12348 // InternalProblem.g:4066:1: rule__ScopeDeclaration__TypeScopesAssignment_1 : ( ruleTypeScope ) ;
12349 public final void rule__ScopeDeclaration__TypeScopesAssignment_1() throws RecognitionException {
12350
12351 int stackSize = keepStackSize();
12352
12353 try {
12354 // InternalProblem.g:4070:1: ( ( ruleTypeScope ) )
12355 // InternalProblem.g:4071:2: ( ruleTypeScope )
12356 {
12357 // InternalProblem.g:4071:2: ( ruleTypeScope )
12358 // InternalProblem.g:4072:3: ruleTypeScope
12359 {
12360 before(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
12361 pushFollow(FOLLOW_2);
12362 ruleTypeScope();
12363
12364 state._fsp--;
12365
12366 after(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
12367
12368 }
12369
12370
12371 }
12372
12373 }
12374 catch (RecognitionException re) {
12375 reportError(re);
12376 recover(input,re);
12377 }
12378 finally {
12379
12380 restoreStackSize(stackSize);
12381
12382 }
12383 return ;
12384 }
12385 // $ANTLR end "rule__ScopeDeclaration__TypeScopesAssignment_1"
12386
12387
12388 // $ANTLR start "rule__ScopeDeclaration__TypeScopesAssignment_2_1"
12389 // InternalProblem.g:4081:1: rule__ScopeDeclaration__TypeScopesAssignment_2_1 : ( ruleTypeScope ) ;
12390 public final void rule__ScopeDeclaration__TypeScopesAssignment_2_1() throws RecognitionException {
12391
12392 int stackSize = keepStackSize();
12393
12394 try {
12395 // InternalProblem.g:4085:1: ( ( ruleTypeScope ) )
12396 // InternalProblem.g:4086:2: ( ruleTypeScope )
12397 {
12398 // InternalProblem.g:4086:2: ( ruleTypeScope )
12399 // InternalProblem.g:4087:3: ruleTypeScope
12400 {
12401 before(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
12402 pushFollow(FOLLOW_2);
12403 ruleTypeScope();
12404
12405 state._fsp--;
12406
12407 after(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
12408
12409 }
12410
12411
12412 }
12413
12414 }
12415 catch (RecognitionException re) {
12416 reportError(re);
12417 recover(input,re);
12418 }
12419 finally {
12420
12421 restoreStackSize(stackSize);
12422
12423 }
12424 return ;
12425 }
12426 // $ANTLR end "rule__ScopeDeclaration__TypeScopesAssignment_2_1"
12427
12428
12429 // $ANTLR start "rule__TypeScope__TargetTypeAssignment_0"
12430 // InternalProblem.g:4096:1: rule__TypeScope__TargetTypeAssignment_0 : ( ( RULE_ID ) ) ;
12431 public final void rule__TypeScope__TargetTypeAssignment_0() throws RecognitionException {
12432
12433 int stackSize = keepStackSize();
12434
12435 try {
12436 // InternalProblem.g:4100:1: ( ( ( RULE_ID ) ) )
12437 // InternalProblem.g:4101:2: ( ( RULE_ID ) )
12438 {
12439 // InternalProblem.g:4101:2: ( ( RULE_ID ) )
12440 // InternalProblem.g:4102:3: ( RULE_ID )
12441 {
12442 before(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
12443 // InternalProblem.g:4103:3: ( RULE_ID )
12444 // InternalProblem.g:4104:4: RULE_ID
12445 {
12446 before(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1());
12447 match(input,RULE_ID,FOLLOW_2);
12448 after(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1());
12449
12450 }
12451
12452 after(grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
12453
12454 }
12455
12456
12457 }
12458
12459 }
12460 catch (RecognitionException re) {
12461 reportError(re);
12462 recover(input,re);
12463 }
12464 finally {
12465
12466 restoreStackSize(stackSize);
12467
12468 }
12469 return ;
12470 }
12471 // $ANTLR end "rule__TypeScope__TargetTypeAssignment_0"
12472
12473
12474 // $ANTLR start "rule__TypeScope__IncrementAssignment_1_0"
12475 // InternalProblem.g:4115:1: rule__TypeScope__IncrementAssignment_1_0 : ( ( '+=' ) ) ;
12476 public final void rule__TypeScope__IncrementAssignment_1_0() throws RecognitionException {
12477
12478 int stackSize = keepStackSize();
12479
12480 try {
12481 // InternalProblem.g:4119:1: ( ( ( '+=' ) ) )
12482 // InternalProblem.g:4120:2: ( ( '+=' ) )
12483 {
12484 // InternalProblem.g:4120:2: ( ( '+=' ) )
12485 // InternalProblem.g:4121:3: ( '+=' )
12486 {
12487 before(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
12488 // InternalProblem.g:4122:3: ( '+=' )
12489 // InternalProblem.g:4123:4: '+='
12490 {
12491 before(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
12492 match(input,39,FOLLOW_2);
12493 after(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
12494
12495 }
12496
12497 after(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
12498
12499 }
12500
12501
12502 }
12503
12504 }
12505 catch (RecognitionException re) {
12506 reportError(re);
12507 recover(input,re);
12508 }
12509 finally {
12510
12511 restoreStackSize(stackSize);
12512
12513 }
12514 return ;
12515 }
12516 // $ANTLR end "rule__TypeScope__IncrementAssignment_1_0"
12517
12518
12519 // $ANTLR start "rule__TypeScope__MultiplicityAssignment_2"
12520 // InternalProblem.g:4134:1: rule__TypeScope__MultiplicityAssignment_2 : ( ruleMultiplicity ) ;
12521 public final void rule__TypeScope__MultiplicityAssignment_2() throws RecognitionException {
12522
12523 int stackSize = keepStackSize();
12524
12525 try {
12526 // InternalProblem.g:4138:1: ( ( ruleMultiplicity ) )
12527 // InternalProblem.g:4139:2: ( ruleMultiplicity )
12528 {
12529 // InternalProblem.g:4139:2: ( ruleMultiplicity )
12530 // InternalProblem.g:4140:3: ruleMultiplicity
12531 {
12532 before(grammarAccess.getTypeScopeAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
12533 pushFollow(FOLLOW_2);
12534 ruleMultiplicity();
12535
12536 state._fsp--;
12537
12538 after(grammarAccess.getTypeScopeAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
12539
12540 }
12541
12542
12543 }
12544
12545 }
12546 catch (RecognitionException re) {
12547 reportError(re);
12548 recover(input,re);
12549 }
12550 finally {
12551
12552 restoreStackSize(stackSize);
12553
12554 }
12555 return ;
12556 }
12557 // $ANTLR end "rule__TypeScope__MultiplicityAssignment_2"
12558
12559
12560 // $ANTLR start "rule__RangeMultiplicity__LowerBoundAssignment_0"
12561 // InternalProblem.g:4149:1: rule__RangeMultiplicity__LowerBoundAssignment_0 : ( RULE_INT ) ;
12562 public final void rule__RangeMultiplicity__LowerBoundAssignment_0() throws RecognitionException {
12563
12564 int stackSize = keepStackSize();
12565
12566 try {
12567 // InternalProblem.g:4153:1: ( ( RULE_INT ) )
12568 // InternalProblem.g:4154:2: ( RULE_INT )
12569 {
12570 // InternalProblem.g:4154:2: ( RULE_INT )
12571 // InternalProblem.g:4155:3: RULE_INT
12572 {
12573 before(grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
12574 match(input,RULE_INT,FOLLOW_2);
12575 after(grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
12576
12577 }
12578
12579
12580 }
12581
12582 }
12583 catch (RecognitionException re) {
12584 reportError(re);
12585 recover(input,re);
12586 }
12587 finally {
12588
12589 restoreStackSize(stackSize);
12590
12591 }
12592 return ;
12593 }
12594 // $ANTLR end "rule__RangeMultiplicity__LowerBoundAssignment_0"
12595
12596
12597 // $ANTLR start "rule__RangeMultiplicity__UpperBoundAssignment_2"
12598 // InternalProblem.g:4164:1: rule__RangeMultiplicity__UpperBoundAssignment_2 : ( ruleUpperBound ) ;
12599 public final void rule__RangeMultiplicity__UpperBoundAssignment_2() throws RecognitionException {
12600
12601 int stackSize = keepStackSize();
12602
12603 try {
12604 // InternalProblem.g:4168:1: ( ( ruleUpperBound ) )
12605 // InternalProblem.g:4169:2: ( ruleUpperBound )
12606 {
12607 // InternalProblem.g:4169:2: ( ruleUpperBound )
12608 // InternalProblem.g:4170:3: ruleUpperBound
12609 {
12610 before(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
12611 pushFollow(FOLLOW_2);
12612 ruleUpperBound();
12613
12614 state._fsp--;
12615
12616 after(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
12617
12618 }
12619
12620
12621 }
12622
12623 }
12624 catch (RecognitionException re) {
12625 reportError(re);
12626 recover(input,re);
12627 }
12628 finally {
12629
12630 restoreStackSize(stackSize);
12631
12632 }
12633 return ;
12634 }
12635 // $ANTLR end "rule__RangeMultiplicity__UpperBoundAssignment_2"
12636
12637
12638 // $ANTLR start "rule__ExactMultiplicity__ExactValueAssignment"
12639 // InternalProblem.g:4179:1: rule__ExactMultiplicity__ExactValueAssignment : ( RULE_INT ) ;
12640 public final void rule__ExactMultiplicity__ExactValueAssignment() throws RecognitionException {
12641
12642 int stackSize = keepStackSize();
12643
12644 try {
12645 // InternalProblem.g:4183:1: ( ( RULE_INT ) )
12646 // InternalProblem.g:4184:2: ( RULE_INT )
12647 {
12648 // InternalProblem.g:4184:2: ( RULE_INT )
12649 // InternalProblem.g:4185:3: RULE_INT
12650 {
12651 before(grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
12652 match(input,RULE_INT,FOLLOW_2);
12653 after(grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
12654
12655 }
12656
12657
12658 }
12659
12660 }
12661 catch (RecognitionException re) {
12662 reportError(re);
12663 recover(input,re);
12664 }
12665 finally {
12666
12667 restoreStackSize(stackSize);
12668
12669 }
12670 return ;
12671 }
12672 // $ANTLR end "rule__ExactMultiplicity__ExactValueAssignment"
12673
12674 // Delegated rules
12675
12676
12677 protected DFA8 dfa8 = new DFA8(this);
12678 static final String dfa_1s = "\17\uffff";
12679 static final String dfa_2s = "\1\5\1\33\1\uffff\2\5\1\33\1\31\1\25\2\5\1\uffff\2\31\1\5\1\31";
12680 static final String dfa_3s = "\1\23\1\42\1\uffff\1\5\1\34\2\42\1\37\2\5\1\uffff\2\42\1\5\1\42";
12681 static final String dfa_4s = "\2\uffff\1\2\7\uffff\1\1\4\uffff";
12682 static final String dfa_5s = "\17\uffff}>";
12683 static final String[] dfa_6s = {
12684 "\1\1\14\uffff\2\2",
12685 "\1\4\6\uffff\1\3",
12686 "",
12687 "\1\5",
12688 "\1\6\26\uffff\1\7",
12689 "\1\4\6\uffff\1\3",
12690 "\1\11\2\uffff\1\7\5\uffff\1\10",
12691 "\1\2\11\uffff\1\12",
12692 "\1\13",
12693 "\1\14",
12694 "",
12695 "\1\11\2\uffff\1\7\5\uffff\1\10",
12696 "\1\11\2\uffff\1\7\5\uffff\1\15",
12697 "\1\16",
12698 "\1\11\2\uffff\1\7\5\uffff\1\15"
12699 };
12700
12701 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
12702 static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
12703 static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
12704 static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
12705 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
12706 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
12707
12708 class DFA8 extends DFA {
12709
12710 public DFA8(BaseRecognizer recognizer) {
12711 this.recognizer = recognizer;
12712 this.decisionNumber = 8;
12713 this.eot = dfa_1;
12714 this.eof = dfa_1;
12715 this.min = dfa_2;
12716 this.max = dfa_3;
12717 this.accept = dfa_4;
12718 this.special = dfa_5;
12719 this.transition = dfa_6;
12720 }
12721 public String getDescription() {
12722 return "672:1: rule__Assertion__Alternatives_0 : ( ( ( rule__Assertion__Group_0_0__0 ) ) | ( ( rule__Assertion__Group_0_1__0 ) ) );";
12723 }
12724 }
12725
12726
12727 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
12728 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
12729 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x00000029001C1022L});
12730 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000800100000L});
12731 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000020L});
12732 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000001002600800L});
12733 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000002000002L});
12734 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000800020L});
12735 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000001000020L});
12736 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000002000000L});
12737 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000001000400800L});
12738 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000800000L});
12739 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000010L});
12740 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000001000000L});
12741 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000004000000L});
12742 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000008000000L});
12743 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000010000020L});
12744 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000020200000L});
12745 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000001000L});
12746 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000040020L});
12747 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000040000000L});
12748 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000040000002L});
12749 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000004008000000L});
12750 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000200000L});
12751 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000080000000L});
12752 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000038000L});
12753 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x00000000000C0020L});
12754 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000002200000L});
12755 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000008000002000L});
12756 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000200000000L});
12757 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000004010L});
12758 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000400000000L});
12759 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000400000002L});
12760
12761} \ No newline at end of file
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.classpath b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.classpath
new file mode 100644
index 00000000..7d85f131
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.classpath
@@ -0,0 +1,18 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" output="bin/main" path="src/main/emf-gen">
4 <attributes>
5 <attribute name="gradle_scope" value="main"/>
6 <attribute name="gradle_used_by_scope" value="main,test"/>
7 </attributes>
8 </classpathentry>
9 <classpathentry kind="src" output="bin/main" path="src/main/resources">
10 <attributes>
11 <attribute name="gradle_scope" value="main"/>
12 <attribute name="gradle_used_by_scope" value="main,test"/>
13 </attributes>
14 </classpathentry>
15 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
16 <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
17 <classpathentry kind="output" path="bin/default"/>
18</classpath>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.gitignore b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.gitignore
new file mode 100644
index 00000000..4a95481e
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.gitignore
@@ -0,0 +1,2 @@
1/bin/
2/build/
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.project b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.project
new file mode 100644
index 00000000..45632ed8
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.project
@@ -0,0 +1,41 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>org.eclipse.viatra.solver.language.model</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.jdt.core.javabuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 <buildCommand>
24 <name>org.eclipse.pde.ManifestBuilder</name>
25 <arguments>
26 </arguments>
27 </buildCommand>
28 <buildCommand>
29 <name>org.eclipse.pde.SchemaBuilder</name>
30 <arguments>
31 </arguments>
32 </buildCommand>
33 </buildSpec>
34 <natures>
35 <nature>org.eclipse.sirius.nature.modelingproject</nature>
36 <nature>org.eclipse.jdt.core.javanature</nature>
37 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
38 <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
39 <nature>org.eclipse.pde.PluginNature</nature>
40 </natures>
41</projectDescription>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/META-INF/MANIFEST.MF b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..e1ec0cd4
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2
3Bundle-Name: %pluginName
4Bundle-SymbolicName: org.eclipse.viatra.solver.language.model;singleton:=true
5Automatic-Module-Name: org.eclipse.viatra.solver.language.model
6Bundle-Version: 0.1.0.qualifier
7Bundle-ClassPath: .
8Bundle-Vendor: %providerName
9Bundle-Localization: plugin
10Bundle-RequiredExecutionEnvironment: JavaSE-11
11Export-Package: org.eclipse.viatra.solver.language.model.problem,
12 org.eclipse.viatra.solver.language.model.problem.impl,
13 org.eclipse.viatra.solver.language.model.problem.util
14Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
15 org.eclipse.core.runtime
16Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.gradle b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.gradle
new file mode 100644
index 00000000..2f9e3257
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.gradle
@@ -0,0 +1,9 @@
1dependencies {
2 compile 'org.eclipse.emf:org.eclipse.emf.ecore'
3}
4
5sourceSets {
6 main {
7 java.srcDirs += ['src/main/emf-gen']
8 }
9}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.properties b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.properties
new file mode 100644
index 00000000..97e1d1b5
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.properties
@@ -0,0 +1,10 @@
1#
2
3bin.includes = .,\
4 src/main/resources/model/,\
5 META-INF/,\
6 plugin.xml,\
7 plugin.properties
8jars.compile.order = .
9source.. = src/main/emf-gen/,\
10 src/main/resources/
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.properties b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.properties
new file mode 100644
index 00000000..9050bf16
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.properties
@@ -0,0 +1,4 @@
1#
2
3pluginName = org.eclipse.viatra.solver.language.model
4providerName = www.example.org
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.xml b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.xml
new file mode 100644
index 00000000..af07e296
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.xml
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<?eclipse version="3.0"?>
3
4<!--
5-->
6
7<plugin>
8
9 <extension point="org.eclipse.emf.ecore.generated_package">
10 <!-- @generated problem -->
11 <package
12 uri="http://www.eclipse.org/viatra/solver/language/model/Problem"
13 class="org.eclipse.viatra.solver.language.model.problem.ProblemPackage"
14 genModel="src/main/resources/model/problem.genmodel"/>
15 </extension>
16
17</plugin>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/problem.aird b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/problem.aird
new file mode 100644
index 00000000..7a8e3134
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/problem.aird
@@ -0,0 +1,1756 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
3 <viewpoint:DAnalysis uid="_CqOewKA4EeuqkpDnuik1sg" selectedViews="_CsAAYKA4EeuqkpDnuik1sg" version="14.3.1.202003261200">
4 <semanticResources>src/main/resources/model/problem.ecore</semanticResources>
5 <semanticResources>src/main/resources/model/problem.genmodel</semanticResources>
6 <ownedViews xmi:type="viewpoint:DView" uid="_CsAAYKA4EeuqkpDnuik1sg">
7 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
8 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_CsYa4KA4EeuqkpDnuik1sg" name="problem" repPath="#_CsUwgKA4EeuqkpDnuik1sg" changeId="9f99ef6f-bc34-43eb-b9d0-926a0eee892e">
9 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
10 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/>
11 </ownedRepresentationDescriptors>
12 </ownedViews>
13 </viewpoint:DAnalysis>
14 <diagram:DSemanticDiagram uid="_CsUwgKA4EeuqkpDnuik1sg">
15 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_CsZB8KA4EeuqkpDnuik1sg" source="GMF_DIAGRAMS">
16 <data xmi:type="notation:Diagram" xmi:id="_CsZB8aA4EeuqkpDnuik1sg" type="Sirius" element="_CsUwgKA4EeuqkpDnuik1sg" measurementUnit="Pixel">
17 <children xmi:type="notation:Node" xmi:id="_D1D6MKA4EeuqkpDnuik1sg" type="2003" element="_D05iIKA4EeuqkpDnuik1sg">
18 <children xmi:type="notation:Node" xmi:id="_D1EhQKA4EeuqkpDnuik1sg" type="5007"/>
19 <children xmi:type="notation:Node" xmi:id="_D1FIUKA4EeuqkpDnuik1sg" type="7004">
20 <styles xmi:type="notation:SortingStyle" xmi:id="_D1FIUaA4EeuqkpDnuik1sg"/>
21 <styles xmi:type="notation:FilteringStyle" xmi:id="_D1FIUqA4EeuqkpDnuik1sg"/>
22 </children>
23 <styles xmi:type="notation:ShapeStyle" xmi:id="_D1D6MaA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
24 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D1D6MqA4EeuqkpDnuik1sg" x="624" y="24" width="120" height="100"/>
25 </children>
26 <children xmi:type="notation:Node" xmi:id="_EfWNUKA4EeuqkpDnuik1sg" type="2003" element="_EfNqcKA4EeuqkpDnuik1sg">
27 <children xmi:type="notation:Node" xmi:id="_EfXbcKA4EeuqkpDnuik1sg" type="5007"/>
28 <children xmi:type="notation:Node" xmi:id="_EfXbcaA4EeuqkpDnuik1sg" type="7004">
29 <styles xmi:type="notation:SortingStyle" xmi:id="_EfXbcqA4EeuqkpDnuik1sg"/>
30 <styles xmi:type="notation:FilteringStyle" xmi:id="_EfXbc6A4EeuqkpDnuik1sg"/>
31 </children>
32 <styles xmi:type="notation:ShapeStyle" xmi:id="_EfWNUaA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
33 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EfWNUqA4EeuqkpDnuik1sg" x="444" y="372" width="120" height="100"/>
34 </children>
35 <children xmi:type="notation:Node" xmi:id="_JT0o8KA4EeuqkpDnuik1sg" type="2003" element="_JTstIKA4EeuqkpDnuik1sg">
36 <children xmi:type="notation:Node" xmi:id="_JT1QAKA4EeuqkpDnuik1sg" type="5007"/>
37 <children xmi:type="notation:Node" xmi:id="_JT13EKA4EeuqkpDnuik1sg" type="7004">
38 <children xmi:type="notation:Node" xmi:id="_SrcfoKA4EeuqkpDnuik1sg" type="3010" element="_SrSuoKA4EeuqkpDnuik1sg">
39 <styles xmi:type="notation:FontStyle" xmi:id="_SrcfoaA4EeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
40 <layoutConstraint xmi:type="notation:Location" xmi:id="_SrcfoqA4EeuqkpDnuik1sg"/>
41 </children>
42 <styles xmi:type="notation:SortingStyle" xmi:id="_JT13EaA4EeuqkpDnuik1sg"/>
43 <styles xmi:type="notation:FilteringStyle" xmi:id="_JT13EqA4EeuqkpDnuik1sg"/>
44 </children>
45 <styles xmi:type="notation:ShapeStyle" xmi:id="_JT0o8aA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
46 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JT0o8qA4EeuqkpDnuik1sg" x="492" y="564" width="120" height="100"/>
47 </children>
48 <children xmi:type="notation:Node" xmi:id="_c-HCQKA4EeuqkpDnuik1sg" type="2003" element="_c-A7oKA4EeuqkpDnuik1sg">
49 <children xmi:type="notation:Node" xmi:id="_c-HCQ6A4EeuqkpDnuik1sg" type="5007"/>
50 <children xmi:type="notation:Node" xmi:id="_c-HCRKA4EeuqkpDnuik1sg" type="7004">
51 <children xmi:type="notation:Node" xmi:id="_HjIR8KA5EeuqkpDnuik1sg" type="3010" element="_HjDZcKA5EeuqkpDnuik1sg">
52 <styles xmi:type="notation:FontStyle" xmi:id="_HjIR8aA5EeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
53 <layoutConstraint xmi:type="notation:Location" xmi:id="_HjIR8qA5EeuqkpDnuik1sg"/>
54 </children>
55 <styles xmi:type="notation:SortingStyle" xmi:id="_c-HCRaA4EeuqkpDnuik1sg"/>
56 <styles xmi:type="notation:FilteringStyle" xmi:id="_c-HCRqA4EeuqkpDnuik1sg"/>
57 </children>
58 <styles xmi:type="notation:ShapeStyle" xmi:id="_c-HCQaA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
59 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-HCQqA4EeuqkpDnuik1sg" x="408" y="804" width="147" height="100"/>
60 </children>
61 <children xmi:type="notation:Node" xmi:id="_RzZA0KA5EeuqkpDnuik1sg" type="2003" element="_RzK-YKA5EeuqkpDnuik1sg">
62 <children xmi:type="notation:Node" xmi:id="_RzZn4KA5EeuqkpDnuik1sg" type="5007"/>
63 <children xmi:type="notation:Node" xmi:id="_RzZn4aA5EeuqkpDnuik1sg" type="7004">
64 <children xmi:type="notation:Node" xmi:id="_S-2uYKA5EeuqkpDnuik1sg" type="3010" element="_S-lBkKA5EeuqkpDnuik1sg">
65 <styles xmi:type="notation:FontStyle" xmi:id="_S-2uYaA5EeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
66 <layoutConstraint xmi:type="notation:Location" xmi:id="_S-2uYqA5EeuqkpDnuik1sg"/>
67 </children>
68 <styles xmi:type="notation:SortingStyle" xmi:id="_RzZn4qA5EeuqkpDnuik1sg"/>
69 <styles xmi:type="notation:FilteringStyle" xmi:id="_RzZn46A5EeuqkpDnuik1sg"/>
70 </children>
71 <styles xmi:type="notation:ShapeStyle" xmi:id="_RzZA0aA5EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
72 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RzZA0qA5EeuqkpDnuik1sg" x="444" y="180" width="120" height="100"/>
73 </children>
74 <children xmi:type="notation:Node" xmi:id="_fit3kKA5EeuqkpDnuik1sg" type="2003" element="_fihqUKA5EeuqkpDnuik1sg">
75 <children xmi:type="notation:Node" xmi:id="_fit3k6A5EeuqkpDnuik1sg" type="5007"/>
76 <children xmi:type="notation:Node" xmi:id="_fit3lKA5EeuqkpDnuik1sg" type="7004">
77 <children xmi:type="notation:Node" xmi:id="_sv1ZIKA5EeuqkpDnuik1sg" type="3010" element="_svs2QKA5EeuqkpDnuik1sg">
78 <styles xmi:type="notation:FontStyle" xmi:id="_sv1ZIaA5EeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
79 <layoutConstraint xmi:type="notation:Location" xmi:id="_sv1ZIqA5EeuqkpDnuik1sg"/>
80 </children>
81 <styles xmi:type="notation:SortingStyle" xmi:id="_fit3laA5EeuqkpDnuik1sg"/>
82 <styles xmi:type="notation:FilteringStyle" xmi:id="_fit3lqA5EeuqkpDnuik1sg"/>
83 </children>
84 <styles xmi:type="notation:ShapeStyle" xmi:id="_fit3kaA5EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
85 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fit3kqA5EeuqkpDnuik1sg" x="1056" y="564" width="120" height="100"/>
86 </children>
87 <children xmi:type="notation:Node" xmi:id="_QKLK0KA6EeuqkpDnuik1sg" type="2003" element="_QKD2EKA6EeuqkpDnuik1sg">
88 <children xmi:type="notation:Node" xmi:id="_QKLK06A6EeuqkpDnuik1sg" type="5007"/>
89 <children xmi:type="notation:Node" xmi:id="_QKLK1KA6EeuqkpDnuik1sg" type="7004">
90 <styles xmi:type="notation:SortingStyle" xmi:id="_QKLK1aA6EeuqkpDnuik1sg"/>
91 <styles xmi:type="notation:FilteringStyle" xmi:id="_QKLK1qA6EeuqkpDnuik1sg"/>
92 </children>
93 <styles xmi:type="notation:ShapeStyle" xmi:id="_QKLK0aA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
94 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QKLK0qA6EeuqkpDnuik1sg" x="888" y="804" width="120" height="100"/>
95 </children>
96 <children xmi:type="notation:Node" xmi:id="_jP6FkKA6EeuqkpDnuik1sg" type="2003" element="_jPpm4KA6EeuqkpDnuik1sg">
97 <children xmi:type="notation:Node" xmi:id="_jP6soKA6EeuqkpDnuik1sg" type="5007"/>
98 <children xmi:type="notation:Node" xmi:id="_jP6soaA6EeuqkpDnuik1sg" type="7004">
99 <styles xmi:type="notation:SortingStyle" xmi:id="_jP6soqA6EeuqkpDnuik1sg"/>
100 <styles xmi:type="notation:FilteringStyle" xmi:id="_jP6so6A6EeuqkpDnuik1sg"/>
101 </children>
102 <styles xmi:type="notation:ShapeStyle" xmi:id="_jP6FkaA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
103 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jP6FkqA6EeuqkpDnuik1sg" x="876" y="564" width="120" height="100"/>
104 </children>
105 <children xmi:type="notation:Node" xmi:id="_sdPX0KA6EeuqkpDnuik1sg" type="2003" element="_sc_gMKA6EeuqkpDnuik1sg">
106 <children xmi:type="notation:Node" xmi:id="_sdP-4KA6EeuqkpDnuik1sg" type="5007"/>
107 <children xmi:type="notation:Node" xmi:id="_sdP-4aA6EeuqkpDnuik1sg" type="7004">
108 <styles xmi:type="notation:SortingStyle" xmi:id="_sdP-4qA6EeuqkpDnuik1sg"/>
109 <styles xmi:type="notation:FilteringStyle" xmi:id="_sdP-46A6EeuqkpDnuik1sg"/>
110 </children>
111 <styles xmi:type="notation:ShapeStyle" xmi:id="_sdPX0aA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
112 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sdPX0qA6EeuqkpDnuik1sg" x="1056" y="804" width="120" height="100"/>
113 </children>
114 <children xmi:type="notation:Node" xmi:id="_4k5GIKA6EeuqkpDnuik1sg" type="2003" element="_4k00sKA6EeuqkpDnuik1sg">
115 <children xmi:type="notation:Node" xmi:id="_4k5GI6A6EeuqkpDnuik1sg" type="5007"/>
116 <children xmi:type="notation:Node" xmi:id="_4k5GJKA6EeuqkpDnuik1sg" type="7004">
117 <styles xmi:type="notation:SortingStyle" xmi:id="_4k5GJaA6EeuqkpDnuik1sg"/>
118 <styles xmi:type="notation:FilteringStyle" xmi:id="_4k5GJqA6EeuqkpDnuik1sg"/>
119 </children>
120 <styles xmi:type="notation:ShapeStyle" xmi:id="_4k5GIaA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
121 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4k5GIqA6EeuqkpDnuik1sg" x="1056" y="972" width="120" height="100"/>
122 </children>
123 <children xmi:type="notation:Node" xmi:id="_6KEUMKA6EeuqkpDnuik1sg" type="2003" element="_6J_bsKA6EeuqkpDnuik1sg">
124 <children xmi:type="notation:Node" xmi:id="_6KEUM6A6EeuqkpDnuik1sg" type="5007"/>
125 <children xmi:type="notation:Node" xmi:id="_6KEUNKA6EeuqkpDnuik1sg" type="7004">
126 <children xmi:type="notation:Node" xmi:id="_UAq-cKA-EeuqkpDnuik1sg" type="3010" element="_UAle4KA-EeuqkpDnuik1sg">
127 <styles xmi:type="notation:FontStyle" xmi:id="_UAq-caA-EeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
128 <layoutConstraint xmi:type="notation:Location" xmi:id="_UAq-cqA-EeuqkpDnuik1sg"/>
129 </children>
130 <styles xmi:type="notation:SortingStyle" xmi:id="_6KEUNaA6EeuqkpDnuik1sg"/>
131 <styles xmi:type="notation:FilteringStyle" xmi:id="_6KEUNqA6EeuqkpDnuik1sg"/>
132 </children>
133 <styles xmi:type="notation:ShapeStyle" xmi:id="_6KEUMaA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
134 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6KEUMqA6EeuqkpDnuik1sg" x="984" y="1128" width="120" height="100"/>
135 </children>
136 <children xmi:type="notation:Node" xmi:id="_-O-UEKA6EeuqkpDnuik1sg" type="2003" element="_-O6CoKA6EeuqkpDnuik1sg">
137 <children xmi:type="notation:Node" xmi:id="_-O-7IKA6EeuqkpDnuik1sg" type="5007"/>
138 <children xmi:type="notation:Node" xmi:id="_-O-7IaA6EeuqkpDnuik1sg" type="7004">
139 <styles xmi:type="notation:SortingStyle" xmi:id="_-O-7IqA6EeuqkpDnuik1sg"/>
140 <styles xmi:type="notation:FilteringStyle" xmi:id="_-O-7I6A6EeuqkpDnuik1sg"/>
141 </children>
142 <styles xmi:type="notation:ShapeStyle" xmi:id="_-O-UEaA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
143 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-O-UEqA6EeuqkpDnuik1sg" x="1284" y="804" width="120" height="100"/>
144 </children>
145 <children xmi:type="notation:Node" xmi:id="_V6pfMKA7EeuqkpDnuik1sg" type="2003" element="_V6YZcKA7EeuqkpDnuik1sg">
146 <children xmi:type="notation:Node" xmi:id="_V6qGQKA7EeuqkpDnuik1sg" type="5007"/>
147 <children xmi:type="notation:Node" xmi:id="_V6qGQaA7EeuqkpDnuik1sg" type="7004">
148 <styles xmi:type="notation:SortingStyle" xmi:id="_V6qGQqA7EeuqkpDnuik1sg"/>
149 <styles xmi:type="notation:FilteringStyle" xmi:id="_V6qGQ6A7EeuqkpDnuik1sg"/>
150 </children>
151 <styles xmi:type="notation:ShapeStyle" xmi:id="_V6pfMaA7EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
152 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V6pfMqA7EeuqkpDnuik1sg" x="1188" y="1128" width="120" height="100"/>
153 </children>
154 <children xmi:type="notation:Node" xmi:id="_rRhWIKA7EeuqkpDnuik1sg" type="2003" element="_rRcdoKA7EeuqkpDnuik1sg">
155 <children xmi:type="notation:Node" xmi:id="_rRh9MKA7EeuqkpDnuik1sg" type="5007"/>
156 <children xmi:type="notation:Node" xmi:id="_rRh9MaA7EeuqkpDnuik1sg" type="7004">
157 <styles xmi:type="notation:SortingStyle" xmi:id="_rRh9MqA7EeuqkpDnuik1sg"/>
158 <styles xmi:type="notation:FilteringStyle" xmi:id="_rRh9M6A7EeuqkpDnuik1sg"/>
159 </children>
160 <styles xmi:type="notation:ShapeStyle" xmi:id="_rRhWIaA7EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
161 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rRhWIqA7EeuqkpDnuik1sg" x="1270" y="564" width="147" height="100"/>
162 </children>
163 <children xmi:type="notation:Node" xmi:id="_p9wywKA8EeuqkpDnuik1sg" type="2003" element="_p9d30KA8EeuqkpDnuik1sg">
164 <children xmi:type="notation:Node" xmi:id="_p9xZ0KA8EeuqkpDnuik1sg" type="5007"/>
165 <children xmi:type="notation:Node" xmi:id="_p9xZ0aA8EeuqkpDnuik1sg" type="7004">
166 <children xmi:type="notation:Node" xmi:id="_NAri8KA9EeuqkpDnuik1sg" type="3010" element="_NAnRgKA9EeuqkpDnuik1sg">
167 <styles xmi:type="notation:FontStyle" xmi:id="_NAri8aA9EeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
168 <layoutConstraint xmi:type="notation:Location" xmi:id="_NAri8qA9EeuqkpDnuik1sg"/>
169 </children>
170 <styles xmi:type="notation:SortingStyle" xmi:id="_p9xZ0qA8EeuqkpDnuik1sg"/>
171 <styles xmi:type="notation:FilteringStyle" xmi:id="_p9xZ06A8EeuqkpDnuik1sg"/>
172 </children>
173 <styles xmi:type="notation:ShapeStyle" xmi:id="_p9wywaA8EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
174 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p9wywqA8EeuqkpDnuik1sg" x="1284" y="372" width="120" height="100"/>
175 </children>
176 <children xmi:type="notation:Node" xmi:id="_xsq_MKA8EeuqkpDnuik1sg" type="2003" element="_xsYrUKA8EeuqkpDnuik1sg">
177 <children xmi:type="notation:Node" xmi:id="_xsrmQKA8EeuqkpDnuik1sg" type="5007"/>
178 <children xmi:type="notation:Node" xmi:id="_xsrmQaA8EeuqkpDnuik1sg" type="7004">
179 <styles xmi:type="notation:SortingStyle" xmi:id="_xsrmQqA8EeuqkpDnuik1sg"/>
180 <styles xmi:type="notation:FilteringStyle" xmi:id="_xsrmQ6A8EeuqkpDnuik1sg"/>
181 </children>
182 <styles xmi:type="notation:ShapeStyle" xmi:id="_xsq_MaA8EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
183 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xsq_MqA8EeuqkpDnuik1sg" x="1512" y="372" width="120" height="100"/>
184 </children>
185 <children xmi:type="notation:Node" xmi:id="_BMfjMKA9EeuqkpDnuik1sg" type="2003" element="_BMXnYKA9EeuqkpDnuik1sg">
186 <children xmi:type="notation:Node" xmi:id="_BMfjM6A9EeuqkpDnuik1sg" type="5007"/>
187 <children xmi:type="notation:Node" xmi:id="_BMfjNKA9EeuqkpDnuik1sg" type="7004">
188 <children xmi:type="notation:Node" xmi:id="_B6eDgKA9EeuqkpDnuik1sg" type="3010" element="_B6IFQKA9EeuqkpDnuik1sg">
189 <styles xmi:type="notation:FontStyle" xmi:id="_B6eDgaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
190 <layoutConstraint xmi:type="notation:Location" xmi:id="_B6eDgqA9EeuqkpDnuik1sg"/>
191 </children>
192 <children xmi:type="notation:Node" xmi:id="_D8xScKA9EeuqkpDnuik1sg" type="3010" element="_D8ciUKA9EeuqkpDnuik1sg">
193 <styles xmi:type="notation:FontStyle" xmi:id="_D8xScaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
194 <layoutConstraint xmi:type="notation:Location" xmi:id="_D8xScqA9EeuqkpDnuik1sg"/>
195 </children>
196 <children xmi:type="notation:Node" xmi:id="_JW_fcKA9EeuqkpDnuik1sg" type="3010" element="_JWqvUKA9EeuqkpDnuik1sg">
197 <styles xmi:type="notation:FontStyle" xmi:id="_JW_fcaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
198 <layoutConstraint xmi:type="notation:Location" xmi:id="_JW_fcqA9EeuqkpDnuik1sg"/>
199 </children>
200 <styles xmi:type="notation:SortingStyle" xmi:id="_BMfjNaA9EeuqkpDnuik1sg"/>
201 <styles xmi:type="notation:FilteringStyle" xmi:id="_BMfjNqA9EeuqkpDnuik1sg"/>
202 </children>
203 <styles xmi:type="notation:ShapeStyle" xmi:id="_BMfjMaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
204 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BMfjMqA9EeuqkpDnuik1sg" x="1512" y="564" width="120" height="100"/>
205 </children>
206 <children xmi:type="notation:Node" xmi:id="_QUDYMKA9EeuqkpDnuik1sg" type="2003" element="_QTzgkKA9EeuqkpDnuik1sg">
207 <children xmi:type="notation:Node" xmi:id="_QUDYM6A9EeuqkpDnuik1sg" type="5007"/>
208 <children xmi:type="notation:Node" xmi:id="_QUDYNKA9EeuqkpDnuik1sg" type="7004">
209 <styles xmi:type="notation:SortingStyle" xmi:id="_QUDYNaA9EeuqkpDnuik1sg"/>
210 <styles xmi:type="notation:FilteringStyle" xmi:id="_QUDYNqA9EeuqkpDnuik1sg"/>
211 </children>
212 <styles xmi:type="notation:ShapeStyle" xmi:id="_QUDYMaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
213 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QUDYMqA9EeuqkpDnuik1sg" x="156" y="372" width="120" height="100"/>
214 </children>
215 <children xmi:type="notation:Node" xmi:id="_e73WIKA9EeuqkpDnuik1sg" type="2003" element="_e7ydoKA9EeuqkpDnuik1sg">
216 <children xmi:type="notation:Node" xmi:id="_e73WI6A9EeuqkpDnuik1sg" type="5007"/>
217 <children xmi:type="notation:Node" xmi:id="_e73WJKA9EeuqkpDnuik1sg" type="7004">
218 <styles xmi:type="notation:SortingStyle" xmi:id="_e73WJaA9EeuqkpDnuik1sg"/>
219 <styles xmi:type="notation:FilteringStyle" xmi:id="_e73WJqA9EeuqkpDnuik1sg"/>
220 </children>
221 <styles xmi:type="notation:ShapeStyle" xmi:id="_e73WIaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
222 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e73WIqA9EeuqkpDnuik1sg" x="624" y="180" width="120" height="100"/>
223 </children>
224 <children xmi:type="notation:Node" xmi:id="_zaq8oKA9EeuqkpDnuik1sg" type="2003" element="_zac6MKA9EeuqkpDnuik1sg">
225 <children xmi:type="notation:Node" xmi:id="_zarjsKA9EeuqkpDnuik1sg" type="5007"/>
226 <children xmi:type="notation:Node" xmi:id="_zarjsaA9EeuqkpDnuik1sg" type="7004">
227 <children xmi:type="notation:Node" xmi:id="_BtMnEKA-EeuqkpDnuik1sg" type="3010" element="_BtHHgKA-EeuqkpDnuik1sg">
228 <styles xmi:type="notation:FontStyle" xmi:id="_BtMnEaA-EeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
229 <layoutConstraint xmi:type="notation:Location" xmi:id="_BtMnEqA-EeuqkpDnuik1sg"/>
230 </children>
231 <styles xmi:type="notation:SortingStyle" xmi:id="_zarjsqA9EeuqkpDnuik1sg"/>
232 <styles xmi:type="notation:FilteringStyle" xmi:id="_zarjs6A9EeuqkpDnuik1sg"/>
233 </children>
234 <styles xmi:type="notation:ShapeStyle" xmi:id="_zaq8oaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
235 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zaq8oqA9EeuqkpDnuik1sg" x="156" y="564" width="120" height="99"/>
236 </children>
237 <children xmi:type="notation:Node" xmi:id="_Ren3cKBJEeuqkpDnuik1sg" type="2003" element="_ReiX4KBJEeuqkpDnuik1sg">
238 <children xmi:type="notation:Node" xmi:id="_Ren3c6BJEeuqkpDnuik1sg" type="5007"/>
239 <children xmi:type="notation:Node" xmi:id="_Ren3dKBJEeuqkpDnuik1sg" type="7004">
240 <styles xmi:type="notation:SortingStyle" xmi:id="_Ren3daBJEeuqkpDnuik1sg"/>
241 <styles xmi:type="notation:FilteringStyle" xmi:id="_Ren3dqBJEeuqkpDnuik1sg"/>
242 </children>
243 <styles xmi:type="notation:ShapeStyle" xmi:id="_Ren3caBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
244 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ren3cqBJEeuqkpDnuik1sg" x="156" y="804" width="120" height="100"/>
245 </children>
246 <children xmi:type="notation:Node" xmi:id="_Tx6IsKBJEeuqkpDnuik1sg" type="2003" element="_Tx0CEKBJEeuqkpDnuik1sg">
247 <children xmi:type="notation:Node" xmi:id="_Tx6Is6BJEeuqkpDnuik1sg" type="5007"/>
248 <children xmi:type="notation:Node" xmi:id="_Tx6ItKBJEeuqkpDnuik1sg" type="7004">
249 <children xmi:type="notation:Node" xmi:id="_icxaoKBJEeuqkpDnuik1sg" type="3010" element="_iccDcKBJEeuqkpDnuik1sg">
250 <styles xmi:type="notation:FontStyle" xmi:id="_icxaoaBJEeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
251 <layoutConstraint xmi:type="notation:Location" xmi:id="_icxaoqBJEeuqkpDnuik1sg"/>
252 </children>
253 <children xmi:type="notation:Node" xmi:id="_kKwmcKBJEeuqkpDnuik1sg" type="3010" element="_kKaoMKBJEeuqkpDnuik1sg">
254 <styles xmi:type="notation:FontStyle" xmi:id="_kKwmcaBJEeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
255 <layoutConstraint xmi:type="notation:Location" xmi:id="_kKwmcqBJEeuqkpDnuik1sg"/>
256 </children>
257 <styles xmi:type="notation:SortingStyle" xmi:id="_Tx6ItaBJEeuqkpDnuik1sg"/>
258 <styles xmi:type="notation:FilteringStyle" xmi:id="_Tx6ItqBJEeuqkpDnuik1sg"/>
259 </children>
260 <styles xmi:type="notation:ShapeStyle" xmi:id="_Tx6IsaBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
261 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tx6IsqBJEeuqkpDnuik1sg" x="48" y="972" width="120" height="100"/>
262 </children>
263 <children xmi:type="notation:Node" xmi:id="_aPNjUKBJEeuqkpDnuik1sg" type="2003" element="_aPIDwKBJEeuqkpDnuik1sg">
264 <children xmi:type="notation:Node" xmi:id="_aPOKYKBJEeuqkpDnuik1sg" type="5007"/>
265 <children xmi:type="notation:Node" xmi:id="_aPOKYaBJEeuqkpDnuik1sg" type="7004">
266 <children xmi:type="notation:Node" xmi:id="_lhdToKBJEeuqkpDnuik1sg" type="3010" element="_lhXNAKBJEeuqkpDnuik1sg">
267 <styles xmi:type="notation:FontStyle" xmi:id="_lhdToaBJEeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
268 <layoutConstraint xmi:type="notation:Location" xmi:id="_lhdToqBJEeuqkpDnuik1sg"/>
269 </children>
270 <styles xmi:type="notation:SortingStyle" xmi:id="_aPOKYqBJEeuqkpDnuik1sg"/>
271 <styles xmi:type="notation:FilteringStyle" xmi:id="_aPOKY6BJEeuqkpDnuik1sg"/>
272 </children>
273 <styles xmi:type="notation:ShapeStyle" xmi:id="_aPNjUaBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
274 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aPNjUqBJEeuqkpDnuik1sg" x="228" y="972" width="120" height="100"/>
275 </children>
276 <styles xmi:type="notation:DiagramStyle" xmi:id="_CsZB8qA4EeuqkpDnuik1sg"/>
277 <edges xmi:type="notation:Edge" xmi:id="_ODhSQKA4EeuqkpDnuik1sg" type="4001" element="_ODPlcKA4EeuqkpDnuik1sg" source="_JT0o8KA4EeuqkpDnuik1sg" target="_EfWNUKA4EeuqkpDnuik1sg">
278 <children xmi:type="notation:Node" xmi:id="_ODhSRKA4EeuqkpDnuik1sg" type="6001">
279 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ODhSRaA4EeuqkpDnuik1sg" x="-36" y="-6"/>
280 </children>
281 <children xmi:type="notation:Node" xmi:id="_ODh5UKA4EeuqkpDnuik1sg" type="6002">
282 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ODh5UaA4EeuqkpDnuik1sg" y="10"/>
283 </children>
284 <children xmi:type="notation:Node" xmi:id="_ODh5UqA4EeuqkpDnuik1sg" type="6003">
285 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ODh5U6A4EeuqkpDnuik1sg" x="22" y="4"/>
286 </children>
287 <styles xmi:type="notation:ConnectorStyle" xmi:id="_ODhSQaA4EeuqkpDnuik1sg" routing="Tree"/>
288 <styles xmi:type="notation:FontStyle" xmi:id="_ODhSQqA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
289 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ODhSQ6A4EeuqkpDnuik1sg" points="[0, 0, 48, 143]$[0, -24, 48, 119]$[-47, -24, 1, 119]$[-47, -94, 1, 49]"/>
290 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ODh5VKA4EeuqkpDnuik1sg" id="(0.5,0.0)"/>
291 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ODh5VaA4EeuqkpDnuik1sg" id="(0.5,0.5)"/>
292 </edges>
293 <edges xmi:type="notation:Edge" xmi:id="_VtWKYKA4EeuqkpDnuik1sg" type="4001" element="_VtPctqA4EeuqkpDnuik1sg" source="_JT0o8KA4EeuqkpDnuik1sg" target="_JT0o8KA4EeuqkpDnuik1sg">
294 <children xmi:type="notation:Node" xmi:id="_VtWKZKA4EeuqkpDnuik1sg" type="6001">
295 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VtWKZaA4EeuqkpDnuik1sg" x="-31" y="-17"/>
296 </children>
297 <children xmi:type="notation:Node" xmi:id="_VtWKZqA4EeuqkpDnuik1sg" type="6002">
298 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VtWKZ6A4EeuqkpDnuik1sg" x="-5" y="-108"/>
299 </children>
300 <children xmi:type="notation:Node" xmi:id="_VtWKaKA4EeuqkpDnuik1sg" type="6003">
301 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VtWKaaA4EeuqkpDnuik1sg" x="-88" y="-14"/>
302 </children>
303 <styles xmi:type="notation:ConnectorStyle" xmi:id="_VtWKYaA4EeuqkpDnuik1sg" routing="Rectilinear"/>
304 <styles xmi:type="notation:FontStyle" xmi:id="_VtWKYqA4EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
305 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VtWKY6A4EeuqkpDnuik1sg" points="[24, 0, 37, 98]$[24, 58, 37, 156]$[132, 58, 145, 156]$[132, -26, 145, 72]$[94, -26, 107, 72]"/>
306 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VtX_kKA4EeuqkpDnuik1sg" id="(0.2033898305084746,1.0)"/>
307 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VtX_kaA4EeuqkpDnuik1sg" id="(0.09322033898305085,0.0)"/>
308 </edges>
309 <edges xmi:type="notation:Edge" xmi:id="_gR35EKA4EeuqkpDnuik1sg" type="4001" element="_gRoBcKA4EeuqkpDnuik1sg" source="_c-HCQKA4EeuqkpDnuik1sg" target="_EfWNUKA4EeuqkpDnuik1sg">
310 <children xmi:type="notation:Node" xmi:id="_gR4gIKA4EeuqkpDnuik1sg" type="6001">
311 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gR4gIaA4EeuqkpDnuik1sg" y="-10"/>
312 </children>
313 <children xmi:type="notation:Node" xmi:id="_gR4gIqA4EeuqkpDnuik1sg" type="6002">
314 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gR4gI6A4EeuqkpDnuik1sg" y="10"/>
315 </children>
316 <children xmi:type="notation:Node" xmi:id="_gR4gJKA4EeuqkpDnuik1sg" type="6003">
317 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gR4gJaA4EeuqkpDnuik1sg" y="10"/>
318 </children>
319 <styles xmi:type="notation:ConnectorStyle" xmi:id="_gR35EaA4EeuqkpDnuik1sg" routing="Tree"/>
320 <styles xmi:type="notation:FontStyle" xmi:id="_gR35EqA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
321 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gR35E6A4EeuqkpDnuik1sg" points="[0, 0, -36, 334]$[36, -334, 0, 0]"/>
322 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gR5HMKA4EeuqkpDnuik1sg" id="(0.3310344827586207,0.0)"/>
323 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gR5HMaA4EeuqkpDnuik1sg" id="(0.5,0.5)"/>
324 </edges>
325 <edges xmi:type="notation:Edge" xmi:id="_jlBE0KA4EeuqkpDnuik1sg" type="4001" element="_jk6-PKA4EeuqkpDnuik1sg" source="_JT0o8KA4EeuqkpDnuik1sg" target="_c-HCQKA4EeuqkpDnuik1sg">
326 <children xmi:type="notation:Node" xmi:id="_jlBE1KA4EeuqkpDnuik1sg" type="6001">
327 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jlBE1aA4EeuqkpDnuik1sg" x="-76" y="-14"/>
328 </children>
329 <children xmi:type="notation:Node" xmi:id="_jlBE1qA4EeuqkpDnuik1sg" type="6002">
330 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jlBE16A4EeuqkpDnuik1sg" x="4" y="10"/>
331 </children>
332 <children xmi:type="notation:Node" xmi:id="_jlBE2KA4EeuqkpDnuik1sg" type="6003">
333 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jlBE2aA4EeuqkpDnuik1sg" x="-4" y="10"/>
334 </children>
335 <styles xmi:type="notation:ConnectorStyle" xmi:id="_jlBE0aA4EeuqkpDnuik1sg" routing="Rectilinear"/>
336 <styles xmi:type="notation:FontStyle" xmi:id="_jlBE0qA4EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
337 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jlBE06A4EeuqkpDnuik1sg" points="[-24, 0, 35, -142]$[-24, 58, 35, -84]$[-59, 58, 0, -84]$[-59, 142, 0, 0]"/>
338 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jlBr4KA4EeuqkpDnuik1sg" id="(0.4067796610169492,1.0)"/>
339 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jlBr4aA4EeuqkpDnuik1sg" id="(0.503448275862069,0.0)"/>
340 </edges>
341 <edges xmi:type="notation:Edge" xmi:id="_ufaV0KA4EeuqkpDnuik1sg" type="4001" element="_ufJ3IKA4EeuqkpDnuik1sg" source="_c-HCQKA4EeuqkpDnuik1sg" target="_JT0o8KA4EeuqkpDnuik1sg">
342 <children xmi:type="notation:Node" xmi:id="_ufa84KA4EeuqkpDnuik1sg" type="6001">
343 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ufa84aA4EeuqkpDnuik1sg" x="-60" y="-58"/>
344 </children>
345 <children xmi:type="notation:Node" xmi:id="_ufa84qA4EeuqkpDnuik1sg" type="6002">
346 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ufa846A4EeuqkpDnuik1sg" x="18" y="10"/>
347 </children>
348 <children xmi:type="notation:Node" xmi:id="_ufa85KA4EeuqkpDnuik1sg" type="6003">
349 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ufa85aA4EeuqkpDnuik1sg" x="12" y="-10"/>
350 </children>
351 <styles xmi:type="notation:ConnectorStyle" xmi:id="_ufaV0aA4EeuqkpDnuik1sg" routing="Rectilinear"/>
352 <styles xmi:type="notation:FontStyle" xmi:id="_ufaV0qA4EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
353 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ufaV06A4EeuqkpDnuik1sg" points="[37, 36, -35, 178]$[156, 36, 84, 178]$[156, -180, 84, -38]$[94, -180, 22, -38]"/>
354 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ufa85qA4EeuqkpDnuik1sg" id="(0.7448275862068966,0.0)"/>
355 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ufa856A4EeuqkpDnuik1sg" id="(0.8135593220338984,1.0)"/>
356 </edges>
357 <edges xmi:type="notation:Edge" xmi:id="_0V8EUKA4EeuqkpDnuik1sg" type="4001" element="_0V3L1qA4EeuqkpDnuik1sg" source="_c-HCQKA4EeuqkpDnuik1sg" target="_c-HCQKA4EeuqkpDnuik1sg">
358 <children xmi:type="notation:Node" xmi:id="_0V8rYKA4EeuqkpDnuik1sg" type="6001">
359 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0V8rYaA4EeuqkpDnuik1sg" x="30" y="11"/>
360 </children>
361 <children xmi:type="notation:Node" xmi:id="_0V8rYqA4EeuqkpDnuik1sg" type="6002">
362 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0V8rY6A4EeuqkpDnuik1sg" x="-8" y="2"/>
363 </children>
364 <children xmi:type="notation:Node" xmi:id="_0V8rZKA4EeuqkpDnuik1sg" type="6003">
365 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0V8rZaA4EeuqkpDnuik1sg" x="9" y="3"/>
366 </children>
367 <styles xmi:type="notation:ConnectorStyle" xmi:id="_0V8EUaA4EeuqkpDnuik1sg" routing="Rectilinear"/>
368 <styles xmi:type="notation:FontStyle" xmi:id="_0V8EUqA4EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
369 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0V8EU6A4EeuqkpDnuik1sg" points="[0, 60, 145, 60]$[40, 60, 185, 60]$[40, 126, 185, 126]$[-73, 126, 72, 126]$[-73, 86, 72, 86]"/>
370 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0V8rZqA4EeuqkpDnuik1sg" id="(1.0,0.12244897959183673)"/>
371 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0V8rZ6A4EeuqkpDnuik1sg" id="(0.0,0.12244897959183673)"/>
372 </edges>
373 <edges xmi:type="notation:Edge" xmi:id="_XWh5QKA5EeuqkpDnuik1sg" type="4001" element="_XWbypqA5EeuqkpDnuik1sg" source="_EfWNUKA4EeuqkpDnuik1sg" target="_RzZA0KA5EeuqkpDnuik1sg">
374 <children xmi:type="notation:Node" xmi:id="_XWh5RKA5EeuqkpDnuik1sg" type="6001">
375 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XWh5RaA5EeuqkpDnuik1sg" x="-4" y="-10"/>
376 </children>
377 <children xmi:type="notation:Node" xmi:id="_XWh5RqA5EeuqkpDnuik1sg" type="6002">
378 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XWh5R6A5EeuqkpDnuik1sg" y="10"/>
379 </children>
380 <children xmi:type="notation:Node" xmi:id="_XWh5SKA5EeuqkpDnuik1sg" type="6003">
381 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XWh5SaA5EeuqkpDnuik1sg" y="10"/>
382 </children>
383 <styles xmi:type="notation:ConnectorStyle" xmi:id="_XWh5QaA5EeuqkpDnuik1sg" routing="Tree"/>
384 <styles xmi:type="notation:FontStyle" xmi:id="_XWh5QqA5EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
385 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XWh5Q6A5EeuqkpDnuik1sg" points="[0, 0, -11, 95]$[0, -24, -11, 71]$[12, -24, 1, 71]$[12, -46, 1, 49]"/>
386 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XWigUKA5EeuqkpDnuik1sg" id="(0.2288135593220339,0.030612244897959183)"/>
387 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XWigUaA5EeuqkpDnuik1sg" id="(0.5,0.5)"/>
388 </edges>
389 <edges xmi:type="notation:Edge" xmi:id="_rUvUIKA5EeuqkpDnuik1sg" type="4001" element="_rUgDkKA5EeuqkpDnuik1sg" source="_fit3kKA5EeuqkpDnuik1sg" target="_EfWNUKA4EeuqkpDnuik1sg">
390 <children xmi:type="notation:Node" xmi:id="_rUvUJKA5EeuqkpDnuik1sg" type="6001">
391 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rUvUJaA5EeuqkpDnuik1sg" y="-10"/>
392 </children>
393 <children xmi:type="notation:Node" xmi:id="_rUvUJqA5EeuqkpDnuik1sg" type="6002">
394 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rUvUJ6A5EeuqkpDnuik1sg" y="10"/>
395 </children>
396 <children xmi:type="notation:Node" xmi:id="_rUvUKKA5EeuqkpDnuik1sg" type="6003">
397 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rUvUKaA5EeuqkpDnuik1sg" y="10"/>
398 </children>
399 <styles xmi:type="notation:ConnectorStyle" xmi:id="_rUvUIaA5EeuqkpDnuik1sg" routing="Tree"/>
400 <styles xmi:type="notation:FontStyle" xmi:id="_rUvUIqA5EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
401 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rUvUI6A5EeuqkpDnuik1sg" points="[0, 0, 278, 180]$[-278, -180, 0, 0]"/>
402 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rUv7MKA5EeuqkpDnuik1sg" id="(0.3050847457627119,0.0)"/>
403 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rUv7MaA5EeuqkpDnuik1sg" id="(0.5,0.5)"/>
404 </edges>
405 <edges xmi:type="notation:Edge" xmi:id="_UzI6AKA6EeuqkpDnuik1sg" type="4001" element="_Uy4bWaA6EeuqkpDnuik1sg" source="_fit3kKA5EeuqkpDnuik1sg" target="_QKLK0KA6EeuqkpDnuik1sg">
406 <children xmi:type="notation:Node" xmi:id="_UzI6BKA6EeuqkpDnuik1sg" type="6001">
407 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UzI6BaA6EeuqkpDnuik1sg" x="35" y="17"/>
408 </children>
409 <children xmi:type="notation:Node" xmi:id="_UzI6BqA6EeuqkpDnuik1sg" type="6002">
410 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UzI6B6A6EeuqkpDnuik1sg" x="-26" y="10"/>
411 </children>
412 <children xmi:type="notation:Node" xmi:id="_UzI6CKA6EeuqkpDnuik1sg" type="6003">
413 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UzI6CaA6EeuqkpDnuik1sg" x="16" y="-4"/>
414 </children>
415 <styles xmi:type="notation:ConnectorStyle" xmi:id="_UzI6AaA6EeuqkpDnuik1sg" routing="Rectilinear"/>
416 <styles xmi:type="notation:FontStyle" xmi:id="_UzI6AqA6EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
417 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UzI6A6A6EeuqkpDnuik1sg" points="[0, 0, 153, -142]$[0, 106, 153, -36]$[-132, 106, 21, -36]$[-132, 142, 21, 0]"/>
418 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UzJhEKA6EeuqkpDnuik1sg" id="(0.3050847457627119,1.0)"/>
419 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UzJhEaA6EeuqkpDnuik1sg" id="(0.4322033898305085,0.0)"/>
420 </edges>
421 <edges xmi:type="notation:Edge" xmi:id="_Z7WJ8KA6EeuqkpDnuik1sg" type="4001" element="_Z7FrQKA6EeuqkpDnuik1sg" source="_QKLK0KA6EeuqkpDnuik1sg" target="_JT0o8KA4EeuqkpDnuik1sg">
422 <children xmi:type="notation:Node" xmi:id="_Z7WJ9KA6EeuqkpDnuik1sg" type="6001">
423 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7WJ9aA6EeuqkpDnuik1sg" x="-49" y="125"/>
424 </children>
425 <children xmi:type="notation:Node" xmi:id="_Z7WJ9qA6EeuqkpDnuik1sg" type="6002">
426 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7WJ96A6EeuqkpDnuik1sg" x="104" y="113"/>
427 </children>
428 <children xmi:type="notation:Node" xmi:id="_Z7WJ-KA6EeuqkpDnuik1sg" type="6003">
429 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7WJ-aA6EeuqkpDnuik1sg" x="14" y="10"/>
430 </children>
431 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Z7WJ8aA6EeuqkpDnuik1sg" routing="Rectilinear"/>
432 <styles xmi:type="notation:FontStyle" xmi:id="_Z7WJ8qA6EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
433 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z7WJ86A6EeuqkpDnuik1sg" points="[-75, 50, 278, 266]$[-267, 50, 86, 266]$[-267, -192, 86, 24]$[-353, -192, 0, 24]"/>
434 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z7WxAKA6EeuqkpDnuik1sg" id="(0.635593220338983,0.0)"/>
435 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z7WxAaA6EeuqkpDnuik1sg" id="(1.0,0.24489795918367346)"/>
436 </edges>
437 <edges xmi:type="notation:Edge" xmi:id="_l7e7AKA6EeuqkpDnuik1sg" type="4001" element="_l7apoqA6EeuqkpDnuik1sg" source="_jP6FkKA6EeuqkpDnuik1sg" target="_RzZA0KA5EeuqkpDnuik1sg">
438 <children xmi:type="notation:Node" xmi:id="_l7e7BKA6EeuqkpDnuik1sg" type="6001">
439 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l7e7BaA6EeuqkpDnuik1sg" x="131" y="-10"/>
440 </children>
441 <children xmi:type="notation:Node" xmi:id="_l7e7BqA6EeuqkpDnuik1sg" type="6002">
442 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l7e7B6A6EeuqkpDnuik1sg" x="145" y="-21"/>
443 </children>
444 <children xmi:type="notation:Node" xmi:id="_l7e7CKA6EeuqkpDnuik1sg" type="6003">
445 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l7e7CaA6EeuqkpDnuik1sg" x="26" y="27"/>
446 </children>
447 <styles xmi:type="notation:ConnectorStyle" xmi:id="_l7e7AaA6EeuqkpDnuik1sg" routing="Tree"/>
448 <styles xmi:type="notation:FontStyle" xmi:id="_l7e7AqA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
449 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l7e7A6A6EeuqkpDnuik1sg" points="[0, 0, 337, 335]$[0, -228, 337, 107]$[-336, -228, 1, 107]$[-336, -286, 1, 49]"/>
450 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l7e7CqA6EeuqkpDnuik1sg" id="(0.711864406779661,0.0)"/>
451 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l7e7C6A6EeuqkpDnuik1sg" id="(0.5,0.5)"/>
452 </edges>
453 <edges xmi:type="notation:Edge" xmi:id="_onzXUKA6EeuqkpDnuik1sg" type="4001" element="_oni4rKA6EeuqkpDnuik1sg" source="_QKLK0KA6EeuqkpDnuik1sg" target="_jP6FkKA6EeuqkpDnuik1sg">
454 <children xmi:type="notation:Node" xmi:id="_onz-YKA6EeuqkpDnuik1sg" type="6001">
455 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_onz-YaA6EeuqkpDnuik1sg" x="-21" y="23"/>
456 </children>
457 <children xmi:type="notation:Node" xmi:id="_on0lcKA6EeuqkpDnuik1sg" type="6002">
458 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_on0lcaA6EeuqkpDnuik1sg" y="10"/>
459 </children>
460 <children xmi:type="notation:Node" xmi:id="_on0lcqA6EeuqkpDnuik1sg" type="6003">
461 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_on0lc6A6EeuqkpDnuik1sg" x="-55" y="-7"/>
462 </children>
463 <styles xmi:type="notation:ConnectorStyle" xmi:id="_onzXUaA6EeuqkpDnuik1sg" routing="Tree"/>
464 <styles xmi:type="notation:FontStyle" xmi:id="_onzXUqA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
465 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_onzXU6A6EeuqkpDnuik1sg" points="[0, 0, -23, 191]$[0, -72, -23, 119]$[24, -72, 1, 119]$[24, -142, 1, 49]"/>
466 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_on1MgKA6EeuqkpDnuik1sg" id="(0.2033898305084746,0.0)"/>
467 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_on1MgaA6EeuqkpDnuik1sg" id="(0.5,0.5)"/>
468 </edges>
469 <edges xmi:type="notation:Edge" xmi:id="_vDzxcKA6EeuqkpDnuik1sg" type="4001" element="_vDscvKA6EeuqkpDnuik1sg" source="_fit3kKA5EeuqkpDnuik1sg" target="_sdPX0KA6EeuqkpDnuik1sg">
470 <children xmi:type="notation:Node" xmi:id="_vD0YgKA6EeuqkpDnuik1sg" type="6001">
471 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vD0YgaA6EeuqkpDnuik1sg" x="-54" y="-39"/>
472 </children>
473 <children xmi:type="notation:Node" xmi:id="_vD0YgqA6EeuqkpDnuik1sg" type="6002">
474 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vD0Yg6A6EeuqkpDnuik1sg" x="26" y="-10"/>
475 </children>
476 <children xmi:type="notation:Node" xmi:id="_vD0YhKA6EeuqkpDnuik1sg" type="6003">
477 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vD0YhaA6EeuqkpDnuik1sg" x="-1" y="-10"/>
478 </children>
479 <styles xmi:type="notation:ConnectorStyle" xmi:id="_vDzxcaA6EeuqkpDnuik1sg" routing="Rectilinear"/>
480 <styles xmi:type="notation:FontStyle" xmi:id="_vDzxcqA6EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
481 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vDzxc6A6EeuqkpDnuik1sg" points="[-18, 0, 18, -142]$[-18, 142, 18, 0]"/>
482 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vD0YhqA6EeuqkpDnuik1sg" id="(0.6440677966101694,1.0)"/>
483 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vD0Yh6A6EeuqkpDnuik1sg" id="(0.3389830508474576,0.0)"/>
484 </edges>
485 <edges xmi:type="notation:Edge" xmi:id="_BWCysKA7EeuqkpDnuik1sg" type="4001" element="_BVyUAKA7EeuqkpDnuik1sg" source="_-O-UEKA6EeuqkpDnuik1sg" target="_jP6FkKA6EeuqkpDnuik1sg">
486 <children xmi:type="notation:Node" xmi:id="_BWCytKA7EeuqkpDnuik1sg" type="6001">
487 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BWCytaA7EeuqkpDnuik1sg" x="-107" y="-10"/>
488 </children>
489 <children xmi:type="notation:Node" xmi:id="_BWCytqA7EeuqkpDnuik1sg" type="6002">
490 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BWCyt6A7EeuqkpDnuik1sg" x="-46" y="10"/>
491 </children>
492 <children xmi:type="notation:Node" xmi:id="_BWCyuKA7EeuqkpDnuik1sg" type="6003">
493 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BWCyuaA7EeuqkpDnuik1sg" x="-56" y="10"/>
494 </children>
495 <styles xmi:type="notation:ConnectorStyle" xmi:id="_BWCysaA7EeuqkpDnuik1sg" routing="Tree"/>
496 <styles xmi:type="notation:FontStyle" xmi:id="_BWCysqA7EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
497 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BWCys6A7EeuqkpDnuik1sg" points="[0, 0, 385, 191]$[0, -84, 385, 107]$[-384, -84, 1, 107]$[-384, -142, 1, 49]"/>
498 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BWDZwKA7EeuqkpDnuik1sg" id="(0.3050847457627119,0.0)"/>
499 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BWDZwaA7EeuqkpDnuik1sg" id="(0.5,0.5)"/>
500 </edges>
501 <edges xmi:type="notation:Edge" xmi:id="_SyzkgKA7EeuqkpDnuik1sg" type="4001" element="_SykT9qA7EeuqkpDnuik1sg" source="_sdPX0KA6EeuqkpDnuik1sg" target="_4k5GIKA6EeuqkpDnuik1sg">
502 <children xmi:type="notation:Node" xmi:id="_SyzkhKA7EeuqkpDnuik1sg" type="6001">
503 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SyzkhaA7EeuqkpDnuik1sg" x="6" y="-45"/>
504 </children>
505 <children xmi:type="notation:Node" xmi:id="_SyzkhqA7EeuqkpDnuik1sg" type="6002">
506 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Syzkh6A7EeuqkpDnuik1sg" x="52" y="10"/>
507 </children>
508 <children xmi:type="notation:Node" xmi:id="_SyzkiKA7EeuqkpDnuik1sg" type="6003">
509 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SyzkiaA7EeuqkpDnuik1sg" x="4"/>
510 </children>
511 <styles xmi:type="notation:ConnectorStyle" xmi:id="_SyzkgaA7EeuqkpDnuik1sg" routing="Rectilinear"/>
512 <styles xmi:type="notation:FontStyle" xmi:id="_SyzkgqA7EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
513 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Syzkg6A7EeuqkpDnuik1sg" points="[-14, 0, 10, -70]$[-14, 70, 10, 0]"/>
514 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sy0LkKA7EeuqkpDnuik1sg" id="(0.6101694915254238,1.0)"/>
515 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sy0LkaA7EeuqkpDnuik1sg" id="(0.4067796610169492,0.0)"/>
516 </edges>
517 <edges xmi:type="notation:Edge" xmi:id="_vWH0AKA7EeuqkpDnuik1sg" type="4001" element="_vWBGaKA7EeuqkpDnuik1sg" source="_sdPX0KA6EeuqkpDnuik1sg" target="_rRhWIKA7EeuqkpDnuik1sg">
518 <children xmi:type="notation:Node" xmi:id="_vWH0BKA7EeuqkpDnuik1sg" type="6001">
519 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vWH0BaA7EeuqkpDnuik1sg" x="-105" y="-4"/>
520 </children>
521 <children xmi:type="notation:Node" xmi:id="_vWH0BqA7EeuqkpDnuik1sg" type="6002">
522 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vWH0B6A7EeuqkpDnuik1sg" y="10"/>
523 </children>
524 <children xmi:type="notation:Node" xmi:id="_vWH0CKA7EeuqkpDnuik1sg" type="6003">
525 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vWH0CaA7EeuqkpDnuik1sg" x="-59" y="-55"/>
526 </children>
527 <styles xmi:type="notation:ConnectorStyle" xmi:id="_vWH0AaA7EeuqkpDnuik1sg" routing="Tree"/>
528 <styles xmi:type="notation:FontStyle" xmi:id="_vWH0AqA7EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
529 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vWH0A6A7EeuqkpDnuik1sg" points="[0, 0, -190, 191]$[0, -48, -190, 143]$[156, -48, -34, 143]$[156, -142, -34, 49]"/>
530 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vWIbEKA7EeuqkpDnuik1sg" id="(0.8135593220338984,0.0)"/>
531 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vWIbEaA7EeuqkpDnuik1sg" id="(0.5,0.5)"/>
532 </edges>
533 <edges xmi:type="notation:Edge" xmi:id="_yCqSwKA7EeuqkpDnuik1sg" type="4001" element="_yCjlHKA7EeuqkpDnuik1sg" source="_V6pfMKA7EeuqkpDnuik1sg" target="_rRhWIKA7EeuqkpDnuik1sg">
534 <children xmi:type="notation:Node" xmi:id="_yCqSxKA7EeuqkpDnuik1sg" type="6001">
535 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yCqSxaA7EeuqkpDnuik1sg" x="122" y="-10"/>
536 </children>
537 <children xmi:type="notation:Node" xmi:id="_yCqSxqA7EeuqkpDnuik1sg" type="6002">
538 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yCqSx6A7EeuqkpDnuik1sg" x="37" y="10"/>
539 </children>
540 <children xmi:type="notation:Node" xmi:id="_yCqSyKA7EeuqkpDnuik1sg" type="6003">
541 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yCqSyaA7EeuqkpDnuik1sg" x="13" y="10"/>
542 </children>
543 <styles xmi:type="notation:ConnectorStyle" xmi:id="_yCqSwaA7EeuqkpDnuik1sg" routing="Tree"/>
544 <styles xmi:type="notation:FontStyle" xmi:id="_yCqSwqA7EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
545 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yCqSw6A7EeuqkpDnuik1sg" points="[0, -3, -86, 515]$[0, -375, -86, 143]$[40, -375, -46, 143]$[40, -469, -46, 49]"/>
546 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yCqSyqA7EeuqkpDnuik1sg" id="(0.576271186440678,0.030612244897959183)"/>
547 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yCqSy6A7EeuqkpDnuik1sg" id="(0.5,0.5)"/>
548 </edges>
549 <edges xmi:type="notation:Edge" xmi:id="_0U2-4KA7EeuqkpDnuik1sg" type="4001" element="_0UtN5qA7EeuqkpDnuik1sg" source="_rRhWIKA7EeuqkpDnuik1sg" target="_-O-UEKA6EeuqkpDnuik1sg">
550 <children xmi:type="notation:Node" xmi:id="_0U3l8KA7EeuqkpDnuik1sg" type="6001">
551 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0U3l8aA7EeuqkpDnuik1sg" x="-18" y="-65"/>
552 </children>
553 <children xmi:type="notation:Node" xmi:id="_0U3l8qA7EeuqkpDnuik1sg" type="6002">
554 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0U3l86A7EeuqkpDnuik1sg" y="10"/>
555 </children>
556 <children xmi:type="notation:Node" xmi:id="_0U3l9KA7EeuqkpDnuik1sg" type="6003">
557 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0U3l9aA7EeuqkpDnuik1sg" y="10"/>
558 </children>
559 <styles xmi:type="notation:ConnectorStyle" xmi:id="_0U2-4aA7EeuqkpDnuik1sg" routing="Rectilinear"/>
560 <styles xmi:type="notation:FontStyle" xmi:id="_0U2-4qA7EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
561 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0U2-46A7EeuqkpDnuik1sg" points="[-15, 0, -15, -142]$[-15, 142, -15, 0]"/>
562 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0U3l9qA7EeuqkpDnuik1sg" id="(0.696551724137931,1.0)"/>
563 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0U3l96A7EeuqkpDnuik1sg" id="(0.7372881355932204,0.0)"/>
564 </edges>
565 <edges xmi:type="notation:Edge" xmi:id="_9Oi8YKA7EeuqkpDnuik1sg" type="4001" element="_9OddBqA7EeuqkpDnuik1sg" source="_V6pfMKA7EeuqkpDnuik1sg" target="_4k5GIKA6EeuqkpDnuik1sg">
566 <children xmi:type="notation:Node" xmi:id="_9Oi8ZKA7EeuqkpDnuik1sg" type="6001">
567 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Oi8ZaA7EeuqkpDnuik1sg" x="-16" y="-10"/>
568 </children>
569 <children xmi:type="notation:Node" xmi:id="_9Oi8ZqA7EeuqkpDnuik1sg" type="6002">
570 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Oi8Z6A7EeuqkpDnuik1sg" y="10"/>
571 </children>
572 <children xmi:type="notation:Node" xmi:id="_9Oi8aKA7EeuqkpDnuik1sg" type="6003">
573 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Oi8aaA7EeuqkpDnuik1sg" x="16" y="6"/>
574 </children>
575 <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Oi8YaA7EeuqkpDnuik1sg" routing="Tree"/>
576 <styles xmi:type="notation:FontStyle" xmi:id="_9Oi8YqA7EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
577 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Oi8Y6A7EeuqkpDnuik1sg" points="[0, -4, 97, 107]$[0, -28, 97, 83]$[-96, -28, 1, 83]$[-96, -62, 1, 49]"/>
578 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Oi8aqA7EeuqkpDnuik1sg" id="(0.3305084745762712,0.04081632653061224)"/>
579 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Oi8a6A7EeuqkpDnuik1sg" id="(0.5,0.5)"/>
580 </edges>
581 <edges xmi:type="notation:Edge" xmi:id="_D9xNcKA8EeuqkpDnuik1sg" type="4001" element="_D9lnQKA8EeuqkpDnuik1sg" source="_6KEUMKA6EeuqkpDnuik1sg" target="_4k5GIKA6EeuqkpDnuik1sg">
582 <children xmi:type="notation:Node" xmi:id="_D9x0gKA8EeuqkpDnuik1sg" type="6001">
583 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9x0gaA8EeuqkpDnuik1sg" y="-10"/>
584 </children>
585 <children xmi:type="notation:Node" xmi:id="_D9x0gqA8EeuqkpDnuik1sg" type="6002">
586 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9x0g6A8EeuqkpDnuik1sg" y="10"/>
587 </children>
588 <children xmi:type="notation:Node" xmi:id="_D9x0hKA8EeuqkpDnuik1sg" type="6003">
589 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9x0haA8EeuqkpDnuik1sg" y="10"/>
590 </children>
591 <styles xmi:type="notation:ConnectorStyle" xmi:id="_D9xNcaA8EeuqkpDnuik1sg" routing="Tree"/>
592 <styles xmi:type="notation:FontStyle" xmi:id="_D9xNcqA8EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
593 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D9xNc6A8EeuqkpDnuik1sg" points="[0, 0, -72, 58]$[72, -58, 0, 0]"/>
594 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9x0hqA8EeuqkpDnuik1sg" id="(0.3050847457627119,0.0)"/>
595 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9x0h6A8EeuqkpDnuik1sg" id="(0.4067796610169492,0.0)"/>
596 </edges>
597 <edges xmi:type="notation:Edge" xmi:id="_Vj1sQKA8EeuqkpDnuik1sg" type="4001" element="_VjwMzqA8EeuqkpDnuik1sg" source="_6KEUMKA6EeuqkpDnuik1sg" target="_EfWNUKA4EeuqkpDnuik1sg">
598 <children xmi:type="notation:Node" xmi:id="_Vj1sRKA8EeuqkpDnuik1sg" type="6001">
599 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1sRaA8EeuqkpDnuik1sg" x="-103" y="500"/>
600 </children>
601 <children xmi:type="notation:Node" xmi:id="_Vj1sRqA8EeuqkpDnuik1sg" type="6002">
602 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1sR6A8EeuqkpDnuik1sg" x="105" y="-10"/>
603 </children>
604 <children xmi:type="notation:Node" xmi:id="_Vj1sSKA8EeuqkpDnuik1sg" type="6003">
605 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1sSaA8EeuqkpDnuik1sg" x="-55" y="10"/>
606 </children>
607 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Vj1sQaA8EeuqkpDnuik1sg" routing="Rectilinear"/>
608 <styles xmi:type="notation:FontStyle" xmi:id="_Vj1sQqA8EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
609 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Vj1sQ6A8EeuqkpDnuik1sg" points="[-48, 72, 481, 730]$[-648, 72, -119, 730]$[-648, -708, -119, -50]$[-588, -708, -59, -50]"/>
610 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vj1sSqA8EeuqkpDnuik1sg" id="(0.4067796610169492,0.0)"/>
611 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vj1sS6A8EeuqkpDnuik1sg" id="(0.5,1.0)"/>
612 </edges>
613 <edges xmi:type="notation:Edge" xmi:id="_ktTlwKA8EeuqkpDnuik1sg" type="4001" element="_ktEVOaA8EeuqkpDnuik1sg" source="_6KEUMKA6EeuqkpDnuik1sg" target="_jP6FkKA6EeuqkpDnuik1sg">
614 <children xmi:type="notation:Node" xmi:id="_ktUM0KA8EeuqkpDnuik1sg" type="6001">
615 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktUM0aA8EeuqkpDnuik1sg" x="-205" y="202"/>
616 </children>
617 <children xmi:type="notation:Node" xmi:id="_ktUM0qA8EeuqkpDnuik1sg" type="6002">
618 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktUM06A8EeuqkpDnuik1sg" x="100" y="122"/>
619 </children>
620 <children xmi:type="notation:Node" xmi:id="_ktUM1KA8EeuqkpDnuik1sg" type="6003">
621 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktUM1aA8EeuqkpDnuik1sg" x="9" y="137"/>
622 </children>
623 <styles xmi:type="notation:ConnectorStyle" xmi:id="_ktTlwaA8EeuqkpDnuik1sg" routing="Rectilinear"/>
624 <styles xmi:type="notation:FontStyle" xmi:id="_ktTlwqA8EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
625 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ktTlw6A8EeuqkpDnuik1sg" points="[-12, 36, 96, 502]$[-264, 36, -156, 502]$[-264, -516, -156, -50]$[-120, -516, -12, -50]"/>
626 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ktUM1qA8EeuqkpDnuik1sg" id="(0.1016949152542373,0.0)"/>
627 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ktUM16A8EeuqkpDnuik1sg" id="(0.1016949152542373,1.0)"/>
628 </edges>
629 <edges xmi:type="notation:Edge" xmi:id="_w-zMkKA8EeuqkpDnuik1sg" type="4001" element="_w-iG36A8EeuqkpDnuik1sg" source="_p9wywKA8EeuqkpDnuik1sg" target="_EfWNUKA4EeuqkpDnuik1sg">
630 <children xmi:type="notation:Node" xmi:id="_w-zMlKA8EeuqkpDnuik1sg" type="6001">
631 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w-zMlaA8EeuqkpDnuik1sg" x="174" y="-10"/>
632 </children>
633 <children xmi:type="notation:Node" xmi:id="_w-zzoKA8EeuqkpDnuik1sg" type="6002">
634 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w-zzoaA8EeuqkpDnuik1sg" x="296" y="10"/>
635 </children>
636 <children xmi:type="notation:Node" xmi:id="_w-zzoqA8EeuqkpDnuik1sg" type="6003">
637 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w-zzo6A8EeuqkpDnuik1sg" x="52" y="10"/>
638 </children>
639 <styles xmi:type="notation:ConnectorStyle" xmi:id="_w-zMkaA8EeuqkpDnuik1sg" routing="Rectilinear"/>
640 <styles xmi:type="notation:FontStyle" xmi:id="_w-zMkqA8EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
641 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w-zMk6A8EeuqkpDnuik1sg" points="[0, 0, 722, 0]$[-722, 0, 0, 0]"/>
642 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w-zzpKA8EeuqkpDnuik1sg" id="(0.0,0.5)"/>
643 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w-zzpaA8EeuqkpDnuik1sg" id="(1.0,0.5)"/>
644 </edges>
645 <edges xmi:type="notation:Edge" xmi:id="_2VC4gKA8EeuqkpDnuik1sg" type="4001" element="_2U4ggqA8EeuqkpDnuik1sg" source="_xsq_MKA8EeuqkpDnuik1sg" target="_RzZA0KA5EeuqkpDnuik1sg">
646 <children xmi:type="notation:Node" xmi:id="_2VC4hKA8EeuqkpDnuik1sg" type="6001">
647 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2VC4haA8EeuqkpDnuik1sg" x="-172" y="-10"/>
648 </children>
649 <children xmi:type="notation:Node" xmi:id="_2VC4hqA8EeuqkpDnuik1sg" type="6002">
650 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2VC4h6A8EeuqkpDnuik1sg" x="-110" y="-20"/>
651 </children>
652 <children xmi:type="notation:Node" xmi:id="_2VC4iKA8EeuqkpDnuik1sg" type="6003">
653 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2VC4iaA8EeuqkpDnuik1sg" x="-63" y="99"/>
654 </children>
655 <styles xmi:type="notation:ConnectorStyle" xmi:id="_2VC4gaA8EeuqkpDnuik1sg" routing="Tree"/>
656 <styles xmi:type="notation:FontStyle" xmi:id="_2VC4gqA8EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
657 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2VC4g6A8EeuqkpDnuik1sg" points="[0, -6, 1048, 143]$[0, -78, 1048, 71]$[-1047, -78, 1, 71]$[-1047, -100, 1, 49]"/>
658 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2VC4iqA8EeuqkpDnuik1sg" id="(0.3305084745762712,0.061224489795918366)"/>
659 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2VC4i6A8EeuqkpDnuik1sg" id="(0.5,0.5)"/>
660 </edges>
661 <edges xmi:type="notation:Edge" xmi:id="_4eaYwKA8EeuqkpDnuik1sg" type="4001" element="_4eU5TqA8EeuqkpDnuik1sg" source="_D1D6MKA4EeuqkpDnuik1sg" target="_xsq_MKA8EeuqkpDnuik1sg">
662 <children xmi:type="notation:Node" xmi:id="_4ea_06A8EeuqkpDnuik1sg" type="6001">
663 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ea_1KA8EeuqkpDnuik1sg" x="-410" y="-17"/>
664 </children>
665 <children xmi:type="notation:Node" xmi:id="_4ea_1aA8EeuqkpDnuik1sg" type="6002">
666 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ea_1qA8EeuqkpDnuik1sg" x="-19" y="10"/>
667 </children>
668 <children xmi:type="notation:Node" xmi:id="_4ea_16A8EeuqkpDnuik1sg" type="6003">
669 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ea_2KA8EeuqkpDnuik1sg" x="-37" y="522"/>
670 </children>
671 <styles xmi:type="notation:ConnectorStyle" xmi:id="_4ea_0KA8EeuqkpDnuik1sg" routing="Rectilinear"/>
672 <styles xmi:type="notation:FontStyle" xmi:id="_4ea_0aA8EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
673 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4ea_0qA8EeuqkpDnuik1sg" points="[-34, 50, -804, -274]$[-34, 84, -804, -240]$[840, 84, 70, -240]$[840, 300, 70, -24]"/>
674 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4ea_2aA8EeuqkpDnuik1sg" id="(1.0,0.4897959183673469)"/>
675 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4ea_2qA8EeuqkpDnuik1sg" id="(0.0,0.24489795918367346)"/>
676 </edges>
677 <edges xmi:type="notation:Edge" xmi:id="_79_eAKA8EeuqkpDnuik1sg" type="4001" element="_79nqlqA8EeuqkpDnuik1sg" source="_p9wywKA8EeuqkpDnuik1sg" target="_xsq_MKA8EeuqkpDnuik1sg">
678 <children xmi:type="notation:Node" xmi:id="_79_eBKA8EeuqkpDnuik1sg" type="6001">
679 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_79_eBaA8EeuqkpDnuik1sg" x="1" y="-18"/>
680 </children>
681 <children xmi:type="notation:Node" xmi:id="_79_eBqA8EeuqkpDnuik1sg" type="6002">
682 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_79_eB6A8EeuqkpDnuik1sg" x="-3" y="10"/>
683 </children>
684 <children xmi:type="notation:Node" xmi:id="_79_eCKA8EeuqkpDnuik1sg" type="6003">
685 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_79_eCaA8EeuqkpDnuik1sg" x="-19" y="10"/>
686 </children>
687 <styles xmi:type="notation:ConnectorStyle" xmi:id="_79_eAaA8EeuqkpDnuik1sg" routing="Rectilinear"/>
688 <styles xmi:type="notation:FontStyle" xmi:id="_79_eAqA8EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
689 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_79_eA6A8EeuqkpDnuik1sg" points="[0, 0, -110, 0]$[110, 0, 0, 0]"/>
690 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_79_eCqA8EeuqkpDnuik1sg" id="(1.0,0.5)"/>
691 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_79_eC6A8EeuqkpDnuik1sg" id="(0.0,0.5)"/>
692 </edges>
693 <edges xmi:type="notation:Edge" xmi:id="_hU_wsKA9EeuqkpDnuik1sg" type="4001" element="_hU64ZqA9EeuqkpDnuik1sg" source="_D1D6MKA4EeuqkpDnuik1sg" target="_e73WIKA9EeuqkpDnuik1sg">
694 <children xmi:type="notation:Node" xmi:id="_hU_wtKA9EeuqkpDnuik1sg" type="6001">
695 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hU_wtaA9EeuqkpDnuik1sg" x="-12" y="64"/>
696 </children>
697 <children xmi:type="notation:Node" xmi:id="_hU_wtqA9EeuqkpDnuik1sg" type="6002">
698 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hU_wt6A9EeuqkpDnuik1sg" x="10"/>
699 </children>
700 <children xmi:type="notation:Node" xmi:id="_hU_wuKA9EeuqkpDnuik1sg" type="6003">
701 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hU_wuaA9EeuqkpDnuik1sg" x="-10" y="9"/>
702 </children>
703 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hU_wsaA9EeuqkpDnuik1sg" routing="Rectilinear"/>
704 <styles xmi:type="notation:FontStyle" xmi:id="_hU_wsqA9EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
705 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hU_ws6A9EeuqkpDnuik1sg" points="[0, 0, 0, -58]$[0, 58, 0, 0]"/>
706 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hU_wuqA9EeuqkpDnuik1sg" id="(0.5,1.0)"/>
707 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hU_wu6A9EeuqkpDnuik1sg" id="(0.5,0.0)"/>
708 </edges>
709 <edges xmi:type="notation:Edge" xmi:id="_mQXegKA9EeuqkpDnuik1sg" type="4001" element="_mQFKsqA9EeuqkpDnuik1sg" source="_p9wywKA8EeuqkpDnuik1sg" target="_e73WIKA9EeuqkpDnuik1sg">
710 <children xmi:type="notation:Node" xmi:id="_mQYFkKA9EeuqkpDnuik1sg" type="6001">
711 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mQYFkaA9EeuqkpDnuik1sg" x="-32" y="-10"/>
712 </children>
713 <children xmi:type="notation:Node" xmi:id="_mQYFkqA9EeuqkpDnuik1sg" type="6002">
714 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mQYFk6A9EeuqkpDnuik1sg" x="-32" y="10"/>
715 </children>
716 <children xmi:type="notation:Node" xmi:id="_mQYFlKA9EeuqkpDnuik1sg" type="6003">
717 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mQYFlaA9EeuqkpDnuik1sg" x="-32" y="10"/>
718 </children>
719 <styles xmi:type="notation:ConnectorStyle" xmi:id="_mQXegaA9EeuqkpDnuik1sg" routing="Tree"/>
720 <styles xmi:type="notation:FontStyle" xmi:id="_mQXegqA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
721 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mQXeg6A9EeuqkpDnuik1sg" points="[0, 0, 673, 143]$[0, -48, 673, 95]$[-672, -48, 1, 95]$[-672, -94, 1, 49]"/>
722 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mQYFlqA9EeuqkpDnuik1sg" id="(0.6101694915254238,0.0)"/>
723 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mQYFl6A9EeuqkpDnuik1sg" id="(0.5,0.5)"/>
724 </edges>
725 <edges xmi:type="notation:Edge" xmi:id="_m0CMQKA9EeuqkpDnuik1sg" type="4001" element="_mzziwKA9EeuqkpDnuik1sg" source="_fit3kKA5EeuqkpDnuik1sg" target="_e73WIKA9EeuqkpDnuik1sg">
726 <children xmi:type="notation:Node" xmi:id="_m0CzUKA9EeuqkpDnuik1sg" type="6001">
727 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m0CzUaA9EeuqkpDnuik1sg" x="12" y="-10"/>
728 </children>
729 <children xmi:type="notation:Node" xmi:id="_m0CzUqA9EeuqkpDnuik1sg" type="6002">
730 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m0CzU6A9EeuqkpDnuik1sg" y="10"/>
731 </children>
732 <children xmi:type="notation:Node" xmi:id="_m0CzVKA9EeuqkpDnuik1sg" type="6003">
733 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m0CzVaA9EeuqkpDnuik1sg" x="12" y="10"/>
734 </children>
735 <styles xmi:type="notation:ConnectorStyle" xmi:id="_m0CMQaA9EeuqkpDnuik1sg" routing="Tree"/>
736 <styles xmi:type="notation:FontStyle" xmi:id="_m0CMQqA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
737 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_m0CMQ6A9EeuqkpDnuik1sg" points="[0, -1, 310, 384]$[0, -265, 310, 120]$[-309, -265, 1, 120]$[-309, -287, 1, 98]"/>
738 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m0CzVqA9EeuqkpDnuik1sg" id="(0.4830508474576271,0.01020408163265306)"/>
739 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m0CzV6A9EeuqkpDnuik1sg" id="(0.5,0.0)"/>
740 </edges>
741 <edges xmi:type="notation:Edge" xmi:id="_pldLAKA9EeuqkpDnuik1sg" type="4001" element="_plK3JqA9EeuqkpDnuik1sg" source="_JT0o8KA4EeuqkpDnuik1sg" target="_e73WIKA9EeuqkpDnuik1sg">
742 <children xmi:type="notation:Node" xmi:id="_pldLBKA9EeuqkpDnuik1sg" type="6001">
743 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pldLBaA9EeuqkpDnuik1sg" y="-10"/>
744 </children>
745 <children xmi:type="notation:Node" xmi:id="_pldLBqA9EeuqkpDnuik1sg" type="6002">
746 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pldLB6A9EeuqkpDnuik1sg" y="10"/>
747 </children>
748 <children xmi:type="notation:Node" xmi:id="_pldyEKA9EeuqkpDnuik1sg" type="6003">
749 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pldyEaA9EeuqkpDnuik1sg" y="10"/>
750 </children>
751 <styles xmi:type="notation:ConnectorStyle" xmi:id="_pldLAaA9EeuqkpDnuik1sg" routing="Tree"/>
752 <styles xmi:type="notation:FontStyle" xmi:id="_pldLAqA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
753 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pldLA6A9EeuqkpDnuik1sg" points="[0, 0, -84, 286]$[84, -286, 0, 0]"/>
754 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pldyEqA9EeuqkpDnuik1sg" id="(0.8389830508474576,0.02040816326530612)"/>
755 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pldyE6A9EeuqkpDnuik1sg" id="(0.5,0.0)"/>
756 </edges>
757 <edges xmi:type="notation:Edge" xmi:id="_vd7aQKA9EeuqkpDnuik1sg" type="4001" element="_vdptgqA9EeuqkpDnuik1sg" source="_QUDYMKA9EeuqkpDnuik1sg" target="_e73WIKA9EeuqkpDnuik1sg">
758 <children xmi:type="notation:Node" xmi:id="_vd8BUKA9EeuqkpDnuik1sg" type="6001">
759 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vd8BUaA9EeuqkpDnuik1sg" x="-28" y="-10"/>
760 </children>
761 <children xmi:type="notation:Node" xmi:id="_vd8BUqA9EeuqkpDnuik1sg" type="6002">
762 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vd8BU6A9EeuqkpDnuik1sg" x="-28" y="6"/>
763 </children>
764 <children xmi:type="notation:Node" xmi:id="_vd8BVKA9EeuqkpDnuik1sg" type="6003">
765 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vd8BVaA9EeuqkpDnuik1sg" x="-28" y="10"/>
766 </children>
767 <styles xmi:type="notation:ConnectorStyle" xmi:id="_vd7aQaA9EeuqkpDnuik1sg" routing="Tree"/>
768 <styles xmi:type="notation:FontStyle" xmi:id="_vd7aQqA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
769 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vd7aQ6A9EeuqkpDnuik1sg" points="[0, -3, -476, 192]$[0, -51, -476, 144]$[477, -51, 1, 144]$[477, -97, 1, 98]"/>
770 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vd8BVqA9EeuqkpDnuik1sg" id="(0.4322033898305085,0.030612244897959183)"/>
771 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vd8BV6A9EeuqkpDnuik1sg" id="(0.5,0.0)"/>
772 </edges>
773 <edges xmi:type="notation:Edge" xmi:id="_2ko-QKA9EeuqkpDnuik1sg" type="4001" element="_2kWqbKA9EeuqkpDnuik1sg" source="_zaq8oKA9EeuqkpDnuik1sg" target="_JT0o8KA4EeuqkpDnuik1sg">
774 <children xmi:type="notation:Node" xmi:id="_2ko-RKA9EeuqkpDnuik1sg" type="6001">
775 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ko-RaA9EeuqkpDnuik1sg" x="-53" y="-17"/>
776 </children>
777 <children xmi:type="notation:Node" xmi:id="_2ko-RqA9EeuqkpDnuik1sg" type="6002">
778 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ko-R6A9EeuqkpDnuik1sg" x="21" y="10"/>
779 </children>
780 <children xmi:type="notation:Node" xmi:id="_2ko-SKA9EeuqkpDnuik1sg" type="6003">
781 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ko-SaA9EeuqkpDnuik1sg" x="3" y="10"/>
782 </children>
783 <styles xmi:type="notation:ConnectorStyle" xmi:id="_2ko-QaA9EeuqkpDnuik1sg" routing="Rectilinear"/>
784 <styles xmi:type="notation:FontStyle" xmi:id="_2ko-QqA9EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
785 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2ko-Q6A9EeuqkpDnuik1sg" points="[0, 36, -218, 36]$[218, 36, 0, 36]"/>
786 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2ko-SqA9EeuqkpDnuik1sg" id="(1.0,0.24742268041237114)"/>
787 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2ko-S6A9EeuqkpDnuik1sg" id="(0.0,0.24489795918367346)"/>
788 </edges>
789 <edges xmi:type="notation:Edge" xmi:id="_F27ckKA-EeuqkpDnuik1sg" type="4001" element="_F2vPU6A-EeuqkpDnuik1sg" source="_QUDYMKA9EeuqkpDnuik1sg" target="_zaq8oKA9EeuqkpDnuik1sg">
790 <children xmi:type="notation:Node" xmi:id="_F28DoKA-EeuqkpDnuik1sg" type="6001">
791 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F28DoaA-EeuqkpDnuik1sg" x="-6" y="-56"/>
792 </children>
793 <children xmi:type="notation:Node" xmi:id="_F28DoqA-EeuqkpDnuik1sg" type="6002">
794 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F28Do6A-EeuqkpDnuik1sg" x="-2" y="10"/>
795 </children>
796 <children xmi:type="notation:Node" xmi:id="_F28DpKA-EeuqkpDnuik1sg" type="6003">
797 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F28DpaA-EeuqkpDnuik1sg" x="-10" y="10"/>
798 </children>
799 <styles xmi:type="notation:ConnectorStyle" xmi:id="_F27ckaA-EeuqkpDnuik1sg" routing="Rectilinear"/>
800 <styles xmi:type="notation:FontStyle" xmi:id="_F27ckqA-EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
801 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F27ck6A-EeuqkpDnuik1sg" points="[0, 0, 0, -94]$[0, 94, 0, 0]"/>
802 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F28DpqA-EeuqkpDnuik1sg" id="(0.5,1.0)"/>
803 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F28Dp6A-EeuqkpDnuik1sg" id="(0.5,0.0)"/>
804 </edges>
805 <edges xmi:type="notation:Edge" xmi:id="_UJRHgKBDEeuqkpDnuik1sg" type="4001" element="_UJJy0qBDEeuqkpDnuik1sg" source="_V6pfMKA7EeuqkpDnuik1sg" target="_6KEUMKA6EeuqkpDnuik1sg">
806 <children xmi:type="notation:Node" xmi:id="_UJRukKBDEeuqkpDnuik1sg" type="6001">
807 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UJRukaBDEeuqkpDnuik1sg" y="10"/>
808 </children>
809 <children xmi:type="notation:Node" xmi:id="_UJRukqBDEeuqkpDnuik1sg" type="6002">
810 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UJRuk6BDEeuqkpDnuik1sg" x="6" y="10"/>
811 </children>
812 <children xmi:type="notation:Node" xmi:id="_UJRulKBDEeuqkpDnuik1sg" type="6003">
813 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UJRulaBDEeuqkpDnuik1sg" x="-6" y="10"/>
814 </children>
815 <styles xmi:type="notation:ConnectorStyle" xmi:id="_UJRHgaBDEeuqkpDnuik1sg" routing="Rectilinear"/>
816 <styles xmi:type="notation:FontStyle" xmi:id="_UJRHgqBDEeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
817 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UJRHg6BDEeuqkpDnuik1sg" points="[0, -1, 86, 36]$[-86, -1, 0, 36]"/>
818 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UJRulqBDEeuqkpDnuik1sg" id="(0.0,0.5)"/>
819 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UJRul6BDEeuqkpDnuik1sg" id="(1.0,0.12244897959183673)"/>
820 </edges>
821 <edges xmi:type="notation:Edge" xmi:id="_c_hu0KBJEeuqkpDnuik1sg" type="4001" element="_c_boQqBJEeuqkpDnuik1sg" source="_Tx6IsKBJEeuqkpDnuik1sg" target="_Ren3cKBJEeuqkpDnuik1sg">
822 <children xmi:type="notation:Node" xmi:id="_c_hu1KBJEeuqkpDnuik1sg" type="6001">
823 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c_hu1aBJEeuqkpDnuik1sg" x="-16" y="-10"/>
824 </children>
825 <children xmi:type="notation:Node" xmi:id="_c_hu1qBJEeuqkpDnuik1sg" type="6002">
826 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c_hu16BJEeuqkpDnuik1sg" y="10"/>
827 </children>
828 <children xmi:type="notation:Node" xmi:id="_c_hu2KBJEeuqkpDnuik1sg" type="6003">
829 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c_hu2aBJEeuqkpDnuik1sg" x="-17" y="-9"/>
830 </children>
831 <styles xmi:type="notation:ConnectorStyle" xmi:id="_c_hu0aBJEeuqkpDnuik1sg" routing="Tree"/>
832 <styles xmi:type="notation:FontStyle" xmi:id="_c_hu0qBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
833 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c_hu06BJEeuqkpDnuik1sg" points="[0, 0, -108, 119]$[0, -36, -108, 83]$[109, -36, 1, 83]$[109, -70, 1, 49]"/>
834 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c_hu2qBJEeuqkpDnuik1sg" id="(0.5,0.0)"/>
835 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c_hu26BJEeuqkpDnuik1sg" id="(0.5,0.5)"/>
836 </edges>
837 <edges xmi:type="notation:Edge" xmi:id="_doLqQKBJEeuqkpDnuik1sg" type="4001" element="_dn26MqBJEeuqkpDnuik1sg" source="_aPNjUKBJEeuqkpDnuik1sg" target="_Ren3cKBJEeuqkpDnuik1sg">
838 <children xmi:type="notation:Node" xmi:id="_doLqRKBJEeuqkpDnuik1sg" type="6001">
839 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_doLqRaBJEeuqkpDnuik1sg" y="-10"/>
840 </children>
841 <children xmi:type="notation:Node" xmi:id="_doLqRqBJEeuqkpDnuik1sg" type="6002">
842 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_doLqR6BJEeuqkpDnuik1sg" y="10"/>
843 </children>
844 <children xmi:type="notation:Node" xmi:id="_doLqSKBJEeuqkpDnuik1sg" type="6003">
845 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_doLqSaBJEeuqkpDnuik1sg" y="10"/>
846 </children>
847 <styles xmi:type="notation:ConnectorStyle" xmi:id="_doLqQaBJEeuqkpDnuik1sg" routing="Tree"/>
848 <styles xmi:type="notation:FontStyle" xmi:id="_doLqQqBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
849 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_doLqQ6BJEeuqkpDnuik1sg" points="[0, 0, 108, 70]$[-108, -70, 0, 0]"/>
850 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_doLqSqBJEeuqkpDnuik1sg" id="(0.711864406779661,0.0)"/>
851 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_doLqS6BJEeuqkpDnuik1sg" id="(0.5,0.5)"/>
852 </edges>
853 <edges xmi:type="notation:Edge" xmi:id="_n5uykKBJEeuqkpDnuik1sg" type="4001" element="_n5fiHqBJEeuqkpDnuik1sg" source="_zaq8oKA9EeuqkpDnuik1sg" target="_Ren3cKBJEeuqkpDnuik1sg">
854 <children xmi:type="notation:Node" xmi:id="_n5uylKBJEeuqkpDnuik1sg" type="6001">
855 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5uylaBJEeuqkpDnuik1sg" x="-5" y="-55"/>
856 </children>
857 <children xmi:type="notation:Node" xmi:id="_n5uylqBJEeuqkpDnuik1sg" type="6002">
858 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5uyl6BJEeuqkpDnuik1sg" y="10"/>
859 </children>
860 <children xmi:type="notation:Node" xmi:id="_n5uymKBJEeuqkpDnuik1sg" type="6003">
861 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5uymaBJEeuqkpDnuik1sg" y="10"/>
862 </children>
863 <styles xmi:type="notation:ConnectorStyle" xmi:id="_n5uykaBJEeuqkpDnuik1sg" routing="Rectilinear"/>
864 <styles xmi:type="notation:FontStyle" xmi:id="_n5uykqBJEeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
865 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_n5uyk6BJEeuqkpDnuik1sg" points="[0, 0, 0, -143]$[0, 143, 0, 0]"/>
866 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n5uymqBJEeuqkpDnuik1sg" id="(0.4067796610169492,1.0)"/>
867 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n5uym6BJEeuqkpDnuik1sg" id="(0.4067796610169492,0.0)"/>
868 </edges>
869 <edges xmi:type="notation:Edge" xmi:id="_p1cRUKBJEeuqkpDnuik1sg" type="4001" element="_p1JWcqBJEeuqkpDnuik1sg" source="_c-HCQKA4EeuqkpDnuik1sg" target="_Ren3cKBJEeuqkpDnuik1sg">
870 <children xmi:type="notation:Node" xmi:id="_p1c4YKBJEeuqkpDnuik1sg" type="6001">
871 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p1c4YaBJEeuqkpDnuik1sg" x="10" y="-21"/>
872 </children>
873 <children xmi:type="notation:Node" xmi:id="_p1c4YqBJEeuqkpDnuik1sg" type="6002">
874 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p1c4Y6BJEeuqkpDnuik1sg" y="10"/>
875 </children>
876 <children xmi:type="notation:Node" xmi:id="_p1c4ZKBJEeuqkpDnuik1sg" type="6003">
877 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p1c4ZaBJEeuqkpDnuik1sg" y="10"/>
878 </children>
879 <styles xmi:type="notation:ConnectorStyle" xmi:id="_p1cRUaBJEeuqkpDnuik1sg" routing="Rectilinear"/>
880 <styles xmi:type="notation:FontStyle" xmi:id="_p1cRUqBJEeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
881 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_p1cRU6BJEeuqkpDnuik1sg" points="[0, -10, 134, -10]$[-134, -10, 0, -10]"/>
882 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p1c4ZqBJEeuqkpDnuik1sg" id="(0.0,0.5918367346938775)"/>
883 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p1c4Z6BJEeuqkpDnuik1sg" id="(1.0,0.5918367346938775)"/>
884 </edges>
885 </data>
886 </ownedAnnotationEntries>
887 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_Csiy8KA4EeuqkpDnuik1sg" source="DANNOTATION_CUSTOMIZATION_KEY">
888 <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_Csiy8aA4EeuqkpDnuik1sg">
889 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan">
890 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
891 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_L-JhMaA4EeuqkpDnuik1sg" showIcon="false" labelExpression="service:render">
892 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
893 </centerLabelStyleDescription>
894 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_L-JhMqA4EeuqkpDnuik1sg" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
895 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
896 </endLabelStyleDescription>
897 </computedStyleDescriptions>
898 </data>
899 </ownedAnnotationEntries>
900 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_D05iIKA4EeuqkpDnuik1sg" name="Problem" tooltipText="" outgoingEdges="_4eU5TqA8EeuqkpDnuik1sg _hU64ZqA9EeuqkpDnuik1sg" width="12" height="10">
901 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Problem"/>
902 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Problem"/>
903 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
904 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
905 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
906 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_D06wQKA4EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
907 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
908 </ownedStyle>
909 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
910 </ownedDiagramElements>
911 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_EfNqcKA4EeuqkpDnuik1sg" name="Relation" tooltipText="" outgoingEdges="_XWbypqA5EeuqkpDnuik1sg" incomingEdges="_ODPlcKA4EeuqkpDnuik1sg _gRoBcKA4EeuqkpDnuik1sg _rUgDkKA5EeuqkpDnuik1sg _VjwMzqA8EeuqkpDnuik1sg _w-iG36A8EeuqkpDnuik1sg" width="12" height="10">
912 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
913 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
914 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
915 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
916 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
917 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Hjy1waA4EeuqkpDnuik1sg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
918 <labelFormat>italic</labelFormat>
919 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
920 </ownedStyle>
921 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
922 </ownedDiagramElements>
923 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_JTstIKA4EeuqkpDnuik1sg" name="ClassDeclaration" tooltipText="" outgoingEdges="_ODPlcKA4EeuqkpDnuik1sg _VtPctqA4EeuqkpDnuik1sg _jk6-PKA4EeuqkpDnuik1sg _plK3JqA9EeuqkpDnuik1sg" incomingEdges="_VtPctqA4EeuqkpDnuik1sg _ufJ3IKA4EeuqkpDnuik1sg _Z7FrQKA6EeuqkpDnuik1sg _2kWqbKA9EeuqkpDnuik1sg" width="12" height="10">
924 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/>
925 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/>
926 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
927 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
928 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
929 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_T_dFNaA4EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
930 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
931 </ownedStyle>
932 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
933 <ownedElements xmi:type="diagram:DNodeListElement" uid="_SrSuoKA4EeuqkpDnuik1sg" name="abstract : EBoolean = false" tooltipText="">
934 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ClassDeclaration/abstract"/>
935 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ClassDeclaration/abstract"/>
936 <ownedStyle xmi:type="diagram:BundledImage" uid="_T_eTUaA4EeuqkpDnuik1sg" labelAlignment="LEFT">
937 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
938 </ownedStyle>
939 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
940 </ownedElements>
941 </ownedDiagramElements>
942 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ODPlcKA4EeuqkpDnuik1sg" sourceNode="_JTstIKA4EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg">
943 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/>
944 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/>
945 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_T_fhcKA4EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
946 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
947 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_T_fhcaA4EeuqkpDnuik1sg" showIcon="false">
948 <labelFormat>italic</labelFormat>
949 </beginLabelStyle>
950 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_T_fhcqA4EeuqkpDnuik1sg" showIcon="false"/>
951 </ownedStyle>
952 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
953 </ownedDiagramElements>
954 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_VtPctqA4EeuqkpDnuik1sg" name="[0..*] superTypes" sourceNode="_JTstIKA4EeuqkpDnuik1sg" targetNode="_JTstIKA4EeuqkpDnuik1sg">
955 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/superTypes"/>
956 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/superTypes"/>
957 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_VtQDwKA4EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
958 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
959 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_VtQDwqA4EeuqkpDnuik1sg" showIcon="false">
960 <customFeatures>labelSize</customFeatures>
961 </centerLabelStyle>
962 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_VtQDwaA4EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
963 <customFeatures>labelSize</customFeatures>
964 </endLabelStyle>
965 </ownedStyle>
966 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
967 </ownedDiagramElements>
968 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_c-A7oKA4EeuqkpDnuik1sg" name="ReferenceDeclaration" tooltipText="" outgoingEdges="_gRoBcKA4EeuqkpDnuik1sg _ufJ3IKA4EeuqkpDnuik1sg _0V3L1qA4EeuqkpDnuik1sg _p1JWcqBJEeuqkpDnuik1sg" incomingEdges="_jk6-PKA4EeuqkpDnuik1sg _0V3L1qA4EeuqkpDnuik1sg" width="12" height="10">
969 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
970 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
971 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
972 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
973 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
974 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IMjpcqA5EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
975 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
976 </ownedStyle>
977 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
978 <ownedElements xmi:type="diagram:DNodeListElement" uid="_HjDZcKA5EeuqkpDnuik1sg" name="containment : EBoolean = false" tooltipText="">
979 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/containment"/>
980 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/containment"/>
981 <ownedStyle xmi:type="diagram:BundledImage" uid="_IMmswaA5EeuqkpDnuik1sg" labelAlignment="LEFT">
982 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
983 </ownedStyle>
984 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
985 </ownedElements>
986 </ownedDiagramElements>
987 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_gRoBcKA4EeuqkpDnuik1sg" sourceNode="_c-A7oKA4EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg">
988 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
989 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
990 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_IMsMUKA5EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
991 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
992 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_IMsMUaA5EeuqkpDnuik1sg" showIcon="false">
993 <labelFormat>italic</labelFormat>
994 </beginLabelStyle>
995 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_IMsMUqA5EeuqkpDnuik1sg" showIcon="false"/>
996 </ownedStyle>
997 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
998 </ownedDiagramElements>
999 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_jk6-PKA4EeuqkpDnuik1sg" name="[0..*] referenceDeclarations" sourceNode="_JTstIKA4EeuqkpDnuik1sg" targetNode="_c-A7oKA4EeuqkpDnuik1sg">
1000 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/referenceDeclarations"/>
1001 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/referenceDeclarations"/>
1002 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_jk7lQKA4EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1003 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_jk7lQqA4EeuqkpDnuik1sg" showIcon="false">
1004 <customFeatures>labelSize</customFeatures>
1005 </centerLabelStyle>
1006 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_jk7lQaA4EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1007 <customFeatures>labelSize</customFeatures>
1008 </endLabelStyle>
1009 </ownedStyle>
1010 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1011 </ownedDiagramElements>
1012 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ufJ3IKA4EeuqkpDnuik1sg" name="[0..1] referenceType" sourceNode="_c-A7oKA4EeuqkpDnuik1sg" targetNode="_JTstIKA4EeuqkpDnuik1sg">
1013 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/referenceType"/>
1014 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/referenceType"/>
1015 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ufLFQKA4EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
1016 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
1017 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ufLFQqA4EeuqkpDnuik1sg" showIcon="false">
1018 <customFeatures>labelSize</customFeatures>
1019 </centerLabelStyle>
1020 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ufLFQaA4EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1021 <customFeatures>labelSize</customFeatures>
1022 </endLabelStyle>
1023 </ownedStyle>
1024 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1025 </ownedDiagramElements>
1026 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_0V3L1qA4EeuqkpDnuik1sg" name="[0..1] opposite" sourceNode="_c-A7oKA4EeuqkpDnuik1sg" targetNode="_c-A7oKA4EeuqkpDnuik1sg">
1027 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/opposite"/>
1028 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/opposite"/>
1029 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_0V3y4KA4EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
1030 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
1031 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_0V3y4qA4EeuqkpDnuik1sg" showIcon="false">
1032 <customFeatures>labelSize</customFeatures>
1033 </centerLabelStyle>
1034 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_0V3y4aA4EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1035 <customFeatures>labelSize</customFeatures>
1036 </endLabelStyle>
1037 </ownedStyle>
1038 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1039 </ownedDiagramElements>
1040 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_RzK-YKA5EeuqkpDnuik1sg" name="NamedElement" tooltipText="" incomingEdges="_XWbypqA5EeuqkpDnuik1sg _l7apoqA6EeuqkpDnuik1sg _2U4ggqA8EeuqkpDnuik1sg" width="12" height="10">
1041 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NamedElement"/>
1042 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NamedElement"/>
1043 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1044 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1045 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1046 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_TYmrIaA5EeuqkpDnuik1sg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
1047 <labelFormat>italic</labelFormat>
1048 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
1049 </ownedStyle>
1050 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1051 <ownedElements xmi:type="diagram:DNodeListElement" uid="_S-lBkKA5EeuqkpDnuik1sg" name="name : EString" tooltipText="">
1052 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//NamedElement/name"/>
1053 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//NamedElement/name"/>
1054 <ownedStyle xmi:type="diagram:BundledImage" uid="_TYqVgaA5EeuqkpDnuik1sg" labelAlignment="LEFT">
1055 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1056 </ownedStyle>
1057 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1058 </ownedElements>
1059 </ownedDiagramElements>
1060 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_XWbypqA5EeuqkpDnuik1sg" sourceNode="_EfNqcKA4EeuqkpDnuik1sg" targetNode="_RzK-YKA5EeuqkpDnuik1sg">
1061 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
1062 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
1063 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XWbyp6A5EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1064 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1065 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_XWbyqKA5EeuqkpDnuik1sg" showIcon="false">
1066 <labelFormat>italic</labelFormat>
1067 </beginLabelStyle>
1068 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_XWbyqaA5EeuqkpDnuik1sg" showIcon="false"/>
1069 </ownedStyle>
1070 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1071 </ownedDiagramElements>
1072 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_fihqUKA5EeuqkpDnuik1sg" name="PredicateDefinition" tooltipText="" outgoingEdges="_rUgDkKA5EeuqkpDnuik1sg _Uy4bWaA6EeuqkpDnuik1sg _vDscvKA6EeuqkpDnuik1sg _mzziwKA9EeuqkpDnuik1sg" width="12" height="10">
1073 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
1074 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
1075 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1076 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1077 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1078 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_tWGu8aA5EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1079 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1080 </ownedStyle>
1081 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1082 <ownedElements xmi:type="diagram:DNodeListElement" uid="_svs2QKA5EeuqkpDnuik1sg" name="error : EBoolean = false" tooltipText="">
1083 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//PredicateDefinition/error"/>
1084 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//PredicateDefinition/error"/>
1085 <ownedStyle xmi:type="diagram:BundledImage" uid="_tWLAYaA5EeuqkpDnuik1sg" labelAlignment="LEFT">
1086 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1087 </ownedStyle>
1088 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1089 </ownedElements>
1090 </ownedDiagramElements>
1091 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_rUgDkKA5EeuqkpDnuik1sg" sourceNode="_fihqUKA5EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg">
1092 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
1093 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
1094 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_tWRuFqA5EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1095 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1096 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_tWRuF6A5EeuqkpDnuik1sg" showIcon="false">
1097 <labelFormat>italic</labelFormat>
1098 </beginLabelStyle>
1099 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_tWRuGKA5EeuqkpDnuik1sg" showIcon="false"/>
1100 </ownedStyle>
1101 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1102 </ownedDiagramElements>
1103 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_QKD2EKA6EeuqkpDnuik1sg" name="Parameter" tooltipText="" outgoingEdges="_Z7FrQKA6EeuqkpDnuik1sg _oni4rKA6EeuqkpDnuik1sg" incomingEdges="_Uy4bWaA6EeuqkpDnuik1sg" width="12" height="10">
1104 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Parameter"/>
1105 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Parameter"/>
1106 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1107 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1108 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1109 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_QKD2EaA6EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1110 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1111 </ownedStyle>
1112 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1113 </ownedDiagramElements>
1114 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Uy4bWaA6EeuqkpDnuik1sg" name="[0..*] parameters" sourceNode="_fihqUKA5EeuqkpDnuik1sg" targetNode="_QKD2EKA6EeuqkpDnuik1sg">
1115 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//PredicateDefinition/parameters"/>
1116 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//PredicateDefinition/parameters"/>
1117 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Uy5pcKA6EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1118 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Uy5pcqA6EeuqkpDnuik1sg" showIcon="false">
1119 <customFeatures>labelSize</customFeatures>
1120 </centerLabelStyle>
1121 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Uy5pcaA6EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1122 <customFeatures>labelSize</customFeatures>
1123 </endLabelStyle>
1124 </ownedStyle>
1125 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1126 </ownedDiagramElements>
1127 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Z7FrQKA6EeuqkpDnuik1sg" name="[0..1] parameterType" sourceNode="_QKD2EKA6EeuqkpDnuik1sg" targetNode="_JTstIKA4EeuqkpDnuik1sg">
1128 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Parameter/parameterType"/>
1129 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Parameter/parameterType"/>
1130 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Z7GSUKA6EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
1131 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
1132 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Z7GSUqA6EeuqkpDnuik1sg" showIcon="false">
1133 <customFeatures>labelSize</customFeatures>
1134 </centerLabelStyle>
1135 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Z7GSUaA6EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1136 <customFeatures>labelSize</customFeatures>
1137 </endLabelStyle>
1138 </ownedStyle>
1139 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1140 </ownedDiagramElements>
1141 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_jPpm4KA6EeuqkpDnuik1sg" name="Variable" tooltipText="" outgoingEdges="_l7apoqA6EeuqkpDnuik1sg" incomingEdges="_oni4rKA6EeuqkpDnuik1sg _BVyUAKA7EeuqkpDnuik1sg _ktEVOaA8EeuqkpDnuik1sg" width="12" height="10">
1142 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Variable"/>
1143 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Variable"/>
1144 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1145 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1146 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1147 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_n6Wbd6A6EeuqkpDnuik1sg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
1148 <labelFormat>italic</labelFormat>
1149 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
1150 </ownedStyle>
1151 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1152 </ownedDiagramElements>
1153 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_l7apoqA6EeuqkpDnuik1sg" sourceNode="_jPpm4KA6EeuqkpDnuik1sg" targetNode="_RzK-YKA5EeuqkpDnuik1sg">
1154 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Variable"/>
1155 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Variable"/>
1156 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_l7apo6A6EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1157 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1158 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_l7appKA6EeuqkpDnuik1sg" showIcon="false">
1159 <labelFormat>italic</labelFormat>
1160 </beginLabelStyle>
1161 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_l7appaA6EeuqkpDnuik1sg" showIcon="false"/>
1162 </ownedStyle>
1163 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1164 </ownedDiagramElements>
1165 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_oni4rKA6EeuqkpDnuik1sg" sourceNode="_QKD2EKA6EeuqkpDnuik1sg" targetNode="_jPpm4KA6EeuqkpDnuik1sg">
1166 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Parameter"/>
1167 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Parameter"/>
1168 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_onjfsKA6EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1169 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1170 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_onjfsaA6EeuqkpDnuik1sg" showIcon="false">
1171 <labelFormat>italic</labelFormat>
1172 </beginLabelStyle>
1173 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_onjfsqA6EeuqkpDnuik1sg" showIcon="false"/>
1174 </ownedStyle>
1175 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1176 </ownedDiagramElements>
1177 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_sc_gMKA6EeuqkpDnuik1sg" name="Conjunction" tooltipText="" outgoingEdges="_SykT9qA7EeuqkpDnuik1sg _vWBGaKA7EeuqkpDnuik1sg" incomingEdges="_vDscvKA6EeuqkpDnuik1sg" width="12" height="10">
1178 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Conjunction"/>
1179 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Conjunction"/>
1180 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1181 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1182 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1183 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_sdAHQKA6EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1184 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1185 </ownedStyle>
1186 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1187 </ownedDiagramElements>
1188 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_vDscvKA6EeuqkpDnuik1sg" name="[0..*] bodies" sourceNode="_fihqUKA5EeuqkpDnuik1sg" targetNode="_sc_gMKA6EeuqkpDnuik1sg">
1189 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//PredicateDefinition/bodies"/>
1190 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//PredicateDefinition/bodies"/>
1191 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_vDtDwKA6EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1192 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_vDtDwqA6EeuqkpDnuik1sg" showIcon="false">
1193 <customFeatures>labelSize</customFeatures>
1194 </centerLabelStyle>
1195 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_vDtDwaA6EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1196 <customFeatures>labelSize</customFeatures>
1197 </endLabelStyle>
1198 </ownedStyle>
1199 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1200 </ownedDiagramElements>
1201 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_4k00sKA6EeuqkpDnuik1sg" name="Literal" tooltipText="" incomingEdges="_SykT9qA7EeuqkpDnuik1sg _9OddBqA7EeuqkpDnuik1sg _D9lnQKA8EeuqkpDnuik1sg" width="12" height="10">
1202 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Literal"/>
1203 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Literal"/>
1204 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1205 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1206 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1207 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_W9SoAqA7EeuqkpDnuik1sg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
1208 <labelFormat>italic</labelFormat>
1209 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
1210 </ownedStyle>
1211 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1212 </ownedDiagramElements>
1213 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_6J_bsKA6EeuqkpDnuik1sg" name="Atom" tooltipText="" outgoingEdges="_D9lnQKA8EeuqkpDnuik1sg _VjwMzqA8EeuqkpDnuik1sg _ktEVOaA8EeuqkpDnuik1sg" incomingEdges="_UJJy0qBDEeuqkpDnuik1sg" width="12" height="10">
1214 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Atom"/>
1215 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Atom"/>
1216 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1217 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1218 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1219 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Uy6TtqA-EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1220 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1221 </ownedStyle>
1222 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1223 <ownedElements xmi:type="diagram:DNodeListElement" uid="_UAle4KA-EeuqkpDnuik1sg" name="transitiveClosure : EBoolean = false" tooltipText="">
1224 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Atom/transitiveClosure"/>
1225 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Atom/transitiveClosure"/>
1226 <ownedStyle xmi:type="diagram:BundledImage" uid="_Uy9XAaA-EeuqkpDnuik1sg" labelAlignment="LEFT">
1227 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1228 </ownedStyle>
1229 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1230 </ownedElements>
1231 </ownedDiagramElements>
1232 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_-O6CoKA6EeuqkpDnuik1sg" name="ImplicitVariable" tooltipText="" outgoingEdges="_BVyUAKA7EeuqkpDnuik1sg" incomingEdges="_0UtN5qA7EeuqkpDnuik1sg" width="12" height="10">
1233 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ImplicitVariable"/>
1234 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ImplicitVariable"/>
1235 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1236 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1237 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1238 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_-O6CoaA6EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1239 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1240 </ownedStyle>
1241 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1242 </ownedDiagramElements>
1243 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_BVyUAKA7EeuqkpDnuik1sg" sourceNode="_-O6CoKA6EeuqkpDnuik1sg" targetNode="_jPpm4KA6EeuqkpDnuik1sg">
1244 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ImplicitVariable"/>
1245 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ImplicitVariable"/>
1246 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_BVyUAaA7EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1247 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1248 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_BVyUAqA7EeuqkpDnuik1sg" showIcon="false">
1249 <labelFormat>italic</labelFormat>
1250 </beginLabelStyle>
1251 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_BVyUA6A7EeuqkpDnuik1sg" showIcon="false"/>
1252 </ownedStyle>
1253 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1254 </ownedDiagramElements>
1255 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_SykT9qA7EeuqkpDnuik1sg" name="[0..*] literals" sourceNode="_sc_gMKA6EeuqkpDnuik1sg" targetNode="_4k00sKA6EeuqkpDnuik1sg">
1256 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Conjunction/literals"/>
1257 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Conjunction/literals"/>
1258 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Syk7AKA7EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1259 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Syk7AqA7EeuqkpDnuik1sg" showIcon="false">
1260 <customFeatures>labelSize</customFeatures>
1261 </centerLabelStyle>
1262 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Syk7AaA7EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1263 <customFeatures>labelSize</customFeatures>
1264 </endLabelStyle>
1265 </ownedStyle>
1266 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1267 </ownedDiagramElements>
1268 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_V6YZcKA7EeuqkpDnuik1sg" name="NegativeLiteral" tooltipText="" outgoingEdges="_yCjlHKA7EeuqkpDnuik1sg _9OddBqA7EeuqkpDnuik1sg _UJJy0qBDEeuqkpDnuik1sg" width="12" height="10">
1269 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NegativeLiteral"/>
1270 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NegativeLiteral"/>
1271 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1272 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1273 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1274 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_V6ZAgKA7EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1275 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1276 </ownedStyle>
1277 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1278 </ownedDiagramElements>
1279 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_rRcdoKA7EeuqkpDnuik1sg" name="ExistentialQuantifier" tooltipText="" outgoingEdges="_0UtN5qA7EeuqkpDnuik1sg" incomingEdges="_vWBGaKA7EeuqkpDnuik1sg _yCjlHKA7EeuqkpDnuik1sg" width="12" height="10">
1280 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExistentialQuantifier"/>
1281 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExistentialQuantifier"/>
1282 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1283 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1284 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1285 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_-1RCnqA7EeuqkpDnuik1sg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_interface.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
1286 <labelFormat>italic</labelFormat>
1287 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.0/@style"/>
1288 </ownedStyle>
1289 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1290 </ownedDiagramElements>
1291 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_vWBGaKA7EeuqkpDnuik1sg" sourceNode="_sc_gMKA6EeuqkpDnuik1sg" targetNode="_rRcdoKA7EeuqkpDnuik1sg">
1292 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Conjunction"/>
1293 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Conjunction"/>
1294 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_-1Te06A7EeuqkpDnuik1sg" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
1295 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
1296 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_-1Te1KA7EeuqkpDnuik1sg" showIcon="false">
1297 <labelFormat>italic</labelFormat>
1298 </beginLabelStyle>
1299 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_-1Te1aA7EeuqkpDnuik1sg" showIcon="false"/>
1300 </ownedStyle>
1301 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1302 </ownedDiagramElements>
1303 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_yCjlHKA7EeuqkpDnuik1sg" sourceNode="_V6YZcKA7EeuqkpDnuik1sg" targetNode="_rRcdoKA7EeuqkpDnuik1sg">
1304 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NegativeLiteral"/>
1305 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NegativeLiteral"/>
1306 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_-1Te36A7EeuqkpDnuik1sg" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
1307 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
1308 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_-1Te4KA7EeuqkpDnuik1sg" showIcon="false">
1309 <labelFormat>italic</labelFormat>
1310 </beginLabelStyle>
1311 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_-1Te4aA7EeuqkpDnuik1sg" showIcon="false"/>
1312 </ownedStyle>
1313 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1314 </ownedDiagramElements>
1315 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_0UtN5qA7EeuqkpDnuik1sg" name="[0..*] implicitVariables" sourceNode="_rRcdoKA7EeuqkpDnuik1sg" targetNode="_-O6CoKA6EeuqkpDnuik1sg">
1316 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ExistentialQuantifier/implicitVariables"/>
1317 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ExistentialQuantifier/implicitVariables"/>
1318 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_0UucAKA7EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1319 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_0UucAqA7EeuqkpDnuik1sg" showIcon="false">
1320 <customFeatures>labelSize</customFeatures>
1321 </centerLabelStyle>
1322 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_0UucAaA7EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1323 <customFeatures>labelSize</customFeatures>
1324 </endLabelStyle>
1325 </ownedStyle>
1326 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1327 </ownedDiagramElements>
1328 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9OddBqA7EeuqkpDnuik1sg" sourceNode="_V6YZcKA7EeuqkpDnuik1sg" targetNode="_4k00sKA6EeuqkpDnuik1sg">
1329 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NegativeLiteral"/>
1330 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NegativeLiteral"/>
1331 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9OeD4KA7EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1332 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1333 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9OeD4aA7EeuqkpDnuik1sg" showIcon="false">
1334 <labelFormat>italic</labelFormat>
1335 </beginLabelStyle>
1336 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_9OeD4qA7EeuqkpDnuik1sg" showIcon="false"/>
1337 </ownedStyle>
1338 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1339 </ownedDiagramElements>
1340 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_D9lnQKA8EeuqkpDnuik1sg" sourceNode="_6J_bsKA6EeuqkpDnuik1sg" targetNode="_4k00sKA6EeuqkpDnuik1sg">
1341 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Atom"/>
1342 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Atom"/>
1343 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_UzDduKA-EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1344 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1345 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_UzDduaA-EeuqkpDnuik1sg" showIcon="false">
1346 <labelFormat>italic</labelFormat>
1347 </beginLabelStyle>
1348 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_UzDduqA-EeuqkpDnuik1sg" showIcon="false"/>
1349 </ownedStyle>
1350 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1351 </ownedDiagramElements>
1352 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_VjwMzqA8EeuqkpDnuik1sg" name="[0..1] relation" sourceNode="_6J_bsKA6EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg">
1353 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Atom/relation"/>
1354 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Atom/relation"/>
1355 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_VjwMz6A8EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
1356 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
1357 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_VjwM0aA8EeuqkpDnuik1sg" showIcon="false">
1358 <customFeatures>labelSize</customFeatures>
1359 </centerLabelStyle>
1360 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_VjwM0KA8EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1361 <customFeatures>labelSize</customFeatures>
1362 </endLabelStyle>
1363 </ownedStyle>
1364 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1365 </ownedDiagramElements>
1366 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ktEVOaA8EeuqkpDnuik1sg" name="[0..*] arguments" sourceNode="_6J_bsKA6EeuqkpDnuik1sg" targetNode="_jPpm4KA6EeuqkpDnuik1sg">
1367 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Atom/arguments"/>
1368 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Atom/arguments"/>
1369 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ktE8QKA8EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
1370 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
1371 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ktE8QqA8EeuqkpDnuik1sg" showIcon="false">
1372 <customFeatures>labelSize</customFeatures>
1373 </centerLabelStyle>
1374 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ktE8QaA8EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1375 <customFeatures>labelSize</customFeatures>
1376 </endLabelStyle>
1377 </ownedStyle>
1378 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1379 </ownedDiagramElements>
1380 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_p9d30KA8EeuqkpDnuik1sg" name="Assertion" tooltipText="" outgoingEdges="_w-iG36A8EeuqkpDnuik1sg _79nqlqA8EeuqkpDnuik1sg _mQFKsqA9EeuqkpDnuik1sg" width="12" height="10">
1381 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/>
1382 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/>
1383 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1384 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1385 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1386 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_NgedbaA9EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1387 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1388 </ownedStyle>
1389 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1390 <ownedElements xmi:type="diagram:DNodeListElement" uid="_NAnRgKA9EeuqkpDnuik1sg" name="value : LogicValue = TRUE" tooltipText="">
1391 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Assertion/value"/>
1392 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Assertion/value"/>
1393 <ownedStyle xmi:type="diagram:BundledImage" uid="_NgfEZ6A9EeuqkpDnuik1sg" labelAlignment="LEFT">
1394 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1395 </ownedStyle>
1396 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1397 </ownedElements>
1398 </ownedDiagramElements>
1399 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_w-iG36A8EeuqkpDnuik1sg" name="[0..1] relation" sourceNode="_p9d30KA8EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg">
1400 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/relation"/>
1401 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/relation"/>
1402 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_w-it4KA8EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
1403 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
1404 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_w-it4qA8EeuqkpDnuik1sg" showIcon="false">
1405 <customFeatures>labelSize</customFeatures>
1406 </centerLabelStyle>
1407 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_w-it4aA8EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1408 <customFeatures>labelSize</customFeatures>
1409 </endLabelStyle>
1410 </ownedStyle>
1411 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1412 </ownedDiagramElements>
1413 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_xsYrUKA8EeuqkpDnuik1sg" name="Node" tooltipText="" outgoingEdges="_2U4ggqA8EeuqkpDnuik1sg" incomingEdges="_4eU5TqA8EeuqkpDnuik1sg _79nqlqA8EeuqkpDnuik1sg" width="12" height="10">
1414 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Node"/>
1415 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Node"/>
1416 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1417 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1418 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1419 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_McYjKaA9EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1420 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1421 </ownedStyle>
1422 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1423 </ownedDiagramElements>
1424 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_2U4ggqA8EeuqkpDnuik1sg" sourceNode="_xsYrUKA8EeuqkpDnuik1sg" targetNode="_RzK-YKA5EeuqkpDnuik1sg">
1425 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Node"/>
1426 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Node"/>
1427 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Mca_kqA9EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1428 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1429 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_Mca_k6A9EeuqkpDnuik1sg" showIcon="false">
1430 <labelFormat>italic</labelFormat>
1431 </beginLabelStyle>
1432 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Mca_lKA9EeuqkpDnuik1sg" showIcon="false"/>
1433 </ownedStyle>
1434 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1435 </ownedDiagramElements>
1436 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_4eU5TqA8EeuqkpDnuik1sg" name="[0..*] nodes" sourceNode="_D05iIKA4EeuqkpDnuik1sg" targetNode="_xsYrUKA8EeuqkpDnuik1sg">
1437 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Problem/nodes"/>
1438 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Problem/nodes"/>
1439 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_4eU5T6A8EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1440 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_4eU5UaA8EeuqkpDnuik1sg" showIcon="false">
1441 <customFeatures>labelSize</customFeatures>
1442 </centerLabelStyle>
1443 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_4eU5UKA8EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1444 <customFeatures>labelSize</customFeatures>
1445 </endLabelStyle>
1446 </ownedStyle>
1447 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1448 </ownedDiagramElements>
1449 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_79nqlqA8EeuqkpDnuik1sg" name="[0..*] arguments" sourceNode="_p9d30KA8EeuqkpDnuik1sg" targetNode="_xsYrUKA8EeuqkpDnuik1sg">
1450 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/arguments"/>
1451 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/arguments"/>
1452 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_79oRoKA8EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
1453 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
1454 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_79oRoqA8EeuqkpDnuik1sg" showIcon="false">
1455 <customFeatures>labelSize</customFeatures>
1456 </centerLabelStyle>
1457 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_79oRoaA8EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1458 <customFeatures>labelSize</customFeatures>
1459 </endLabelStyle>
1460 </ownedStyle>
1461 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1462 </ownedDiagramElements>
1463 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_BMXnYKA9EeuqkpDnuik1sg" name="LogicValue" tooltipText="" width="12" height="10">
1464 <target xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/>
1465 <semanticElements xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/>
1466 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1467 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1468 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1469 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_BMXnYaA9EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
1470 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
1471 </ownedStyle>
1472 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
1473 <ownedElements xmi:type="diagram:DNodeListElement" uid="_B6IFQKA9EeuqkpDnuik1sg" name="TRUE" tooltipText="">
1474 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/>
1475 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/>
1476 <ownedStyle xmi:type="diagram:BundledImage" uid="_B6IsUKA9EeuqkpDnuik1sg" labelAlignment="LEFT">
1477 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
1478 </ownedStyle>
1479 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
1480 </ownedElements>
1481 <ownedElements xmi:type="diagram:DNodeListElement" uid="_D8ciUKA9EeuqkpDnuik1sg" name="FALSE" tooltipText="">
1482 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/>
1483 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/>
1484 <ownedStyle xmi:type="diagram:BundledImage" uid="_D8dJYKA9EeuqkpDnuik1sg" labelAlignment="LEFT">
1485 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
1486 </ownedStyle>
1487 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
1488 </ownedElements>
1489 <ownedElements xmi:type="diagram:DNodeListElement" uid="_JWqvUKA9EeuqkpDnuik1sg" name="UNKNOWN" tooltipText="">
1490 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/>
1491 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/>
1492 <ownedStyle xmi:type="diagram:BundledImage" uid="_JWrWYKA9EeuqkpDnuik1sg" labelAlignment="LEFT">
1493 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
1494 </ownedStyle>
1495 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
1496 </ownedElements>
1497 </ownedDiagramElements>
1498 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_QTzgkKA9EeuqkpDnuik1sg" name="ScopeDeclaration" tooltipText="" outgoingEdges="_vdptgqA9EeuqkpDnuik1sg _F2vPU6A-EeuqkpDnuik1sg" width="12" height="10">
1499 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ScopeDeclaration"/>
1500 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ScopeDeclaration"/>
1501 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1502 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1503 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1504 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_QT0HoKA9EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1505 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1506 </ownedStyle>
1507 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1508 </ownedDiagramElements>
1509 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_e7ydoKA9EeuqkpDnuik1sg" name="Statement" tooltipText="" incomingEdges="_hU64ZqA9EeuqkpDnuik1sg _mQFKsqA9EeuqkpDnuik1sg _mzziwKA9EeuqkpDnuik1sg _plK3JqA9EeuqkpDnuik1sg _vdptgqA9EeuqkpDnuik1sg" width="12" height="10">
1510 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Statement"/>
1511 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Statement"/>
1512 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1513 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1514 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1515 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_k_IgQ6A9EeuqkpDnuik1sg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_interface.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
1516 <labelFormat>italic</labelFormat>
1517 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.0/@style"/>
1518 </ownedStyle>
1519 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1520 </ownedDiagramElements>
1521 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_hU64ZqA9EeuqkpDnuik1sg" name="[0..*] statements" sourceNode="_D05iIKA4EeuqkpDnuik1sg" targetNode="_e7ydoKA9EeuqkpDnuik1sg">
1522 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Problem/statements"/>
1523 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Problem/statements"/>
1524 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_hU7fQKA9EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1525 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_hU7fQqA9EeuqkpDnuik1sg" showIcon="false">
1526 <customFeatures>labelSize</customFeatures>
1527 </centerLabelStyle>
1528 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_hU7fQaA9EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1529 <customFeatures>labelSize</customFeatures>
1530 </endLabelStyle>
1531 </ownedStyle>
1532 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1533 </ownedDiagramElements>
1534 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_mQFKsqA9EeuqkpDnuik1sg" sourceNode="_p9d30KA8EeuqkpDnuik1sg" targetNode="_e7ydoKA9EeuqkpDnuik1sg">
1535 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/>
1536 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/>
1537 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_mQFxsKA9EeuqkpDnuik1sg" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
1538 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
1539 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_mQFxsaA9EeuqkpDnuik1sg" showIcon="false">
1540 <labelFormat>italic</labelFormat>
1541 </beginLabelStyle>
1542 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_mQFxsqA9EeuqkpDnuik1sg" showIcon="false"/>
1543 </ownedStyle>
1544 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1545 </ownedDiagramElements>
1546 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_mzziwKA9EeuqkpDnuik1sg" sourceNode="_fihqUKA5EeuqkpDnuik1sg" targetNode="_e7ydoKA9EeuqkpDnuik1sg">
1547 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
1548 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
1549 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_mzziwaA9EeuqkpDnuik1sg" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
1550 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
1551 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_mzziwqA9EeuqkpDnuik1sg" showIcon="false">
1552 <labelFormat>italic</labelFormat>
1553 </beginLabelStyle>
1554 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_mzziw6A9EeuqkpDnuik1sg" showIcon="false"/>
1555 </ownedStyle>
1556 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1557 </ownedDiagramElements>
1558 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_plK3JqA9EeuqkpDnuik1sg" sourceNode="_JTstIKA4EeuqkpDnuik1sg" targetNode="_e7ydoKA9EeuqkpDnuik1sg">
1559 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/>
1560 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/>
1561 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_plK3J6A9EeuqkpDnuik1sg" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
1562 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
1563 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_plK3KKA9EeuqkpDnuik1sg" showIcon="false">
1564 <labelFormat>italic</labelFormat>
1565 </beginLabelStyle>
1566 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_plK3KaA9EeuqkpDnuik1sg" showIcon="false"/>
1567 </ownedStyle>
1568 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1569 </ownedDiagramElements>
1570 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_vdptgqA9EeuqkpDnuik1sg" sourceNode="_QTzgkKA9EeuqkpDnuik1sg" targetNode="_e7ydoKA9EeuqkpDnuik1sg">
1571 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ScopeDeclaration"/>
1572 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ScopeDeclaration"/>
1573 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_vdqUgKA9EeuqkpDnuik1sg" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
1574 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
1575 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_vdqUgaA9EeuqkpDnuik1sg" showIcon="false">
1576 <labelFormat>italic</labelFormat>
1577 </beginLabelStyle>
1578 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_vdqUgqA9EeuqkpDnuik1sg" showIcon="false"/>
1579 </ownedStyle>
1580 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1581 </ownedDiagramElements>
1582 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_zac6MKA9EeuqkpDnuik1sg" name="TypeScope" tooltipText="" outgoingEdges="_2kWqbKA9EeuqkpDnuik1sg _n5fiHqBJEeuqkpDnuik1sg" incomingEdges="_F2vPU6A-EeuqkpDnuik1sg" width="12" height="10">
1583 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//TypeScope"/>
1584 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//TypeScope"/>
1585 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1586 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1587 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1588 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_DlBrZqA-EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1589 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1590 </ownedStyle>
1591 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1592 <ownedElements xmi:type="diagram:DNodeListElement" uid="_BtHHgKA-EeuqkpDnuik1sg" name="increment : EBoolean = false" tooltipText="">
1593 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//TypeScope/increment"/>
1594 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//TypeScope/increment"/>
1595 <ownedStyle xmi:type="diagram:BundledImage" uid="_DlEusaA-EeuqkpDnuik1sg" labelAlignment="LEFT">
1596 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1597 </ownedStyle>
1598 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1599 </ownedElements>
1600 </ownedDiagramElements>
1601 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_2kWqbKA9EeuqkpDnuik1sg" name="[0..1] targetType" sourceNode="_zac6MKA9EeuqkpDnuik1sg" targetNode="_JTstIKA4EeuqkpDnuik1sg">
1602 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//TypeScope/targetType"/>
1603 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//TypeScope/targetType"/>
1604 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_2kXRcKA9EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
1605 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
1606 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_2kXRcqA9EeuqkpDnuik1sg" showIcon="false">
1607 <customFeatures>labelSize</customFeatures>
1608 </centerLabelStyle>
1609 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_2kXRcaA9EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1610 <customFeatures>labelSize</customFeatures>
1611 </endLabelStyle>
1612 </ownedStyle>
1613 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1614 </ownedDiagramElements>
1615 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_F2vPU6A-EeuqkpDnuik1sg" name="[0..*] typeScopes" sourceNode="_QTzgkKA9EeuqkpDnuik1sg" targetNode="_zac6MKA9EeuqkpDnuik1sg">
1616 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ScopeDeclaration/typeScopes"/>
1617 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ScopeDeclaration/typeScopes"/>
1618 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_F2v2YKA-EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1619 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_F2v2YqA-EeuqkpDnuik1sg" showIcon="false">
1620 <customFeatures>labelSize</customFeatures>
1621 </centerLabelStyle>
1622 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_F2v2YaA-EeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1623 <customFeatures>labelSize</customFeatures>
1624 </endLabelStyle>
1625 </ownedStyle>
1626 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1627 </ownedDiagramElements>
1628 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_UJJy0qBDEeuqkpDnuik1sg" name="[0..1] atom" sourceNode="_V6YZcKA7EeuqkpDnuik1sg" targetNode="_6J_bsKA6EeuqkpDnuik1sg">
1629 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NegativeLiteral/atom"/>
1630 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NegativeLiteral/atom"/>
1631 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_UJKZ0KBDEeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1632 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_UJKZ0qBDEeuqkpDnuik1sg" showIcon="false">
1633 <customFeatures>labelSize</customFeatures>
1634 </centerLabelStyle>
1635 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_UJKZ0aBDEeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1636 <customFeatures>labelSize</customFeatures>
1637 </endLabelStyle>
1638 </ownedStyle>
1639 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1640 </ownedDiagramElements>
1641 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ReiX4KBJEeuqkpDnuik1sg" name="Multiplicity" tooltipText="" incomingEdges="_c_boQqBJEeuqkpDnuik1sg _dn26MqBJEeuqkpDnuik1sg _n5fiHqBJEeuqkpDnuik1sg _p1JWcqBJEeuqkpDnuik1sg" width="12" height="10">
1642 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Multiplicity"/>
1643 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Multiplicity"/>
1644 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1645 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1646 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1647 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_eULNnKBJEeuqkpDnuik1sg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
1648 <labelFormat>italic</labelFormat>
1649 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
1650 </ownedStyle>
1651 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1652 </ownedDiagramElements>
1653 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Tx0CEKBJEeuqkpDnuik1sg" name="RangeMultiplicity" tooltipText="" outgoingEdges="_c_boQqBJEeuqkpDnuik1sg" width="12" height="10">
1654 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//RangeMultiplicity"/>
1655 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//RangeMultiplicity"/>
1656 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1657 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1658 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1659 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_kxDKYaBJEeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1660 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1661 </ownedStyle>
1662 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1663 <ownedElements xmi:type="diagram:DNodeListElement" uid="_iccDcKBJEeuqkpDnuik1sg" name="lowerBound : EInt = 0" tooltipText="">
1664 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//RangeMultiplicity/lowerBound"/>
1665 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//RangeMultiplicity/lowerBound"/>
1666 <ownedStyle xmi:type="diagram:BundledImage" uid="_jDn_QaBJEeuqkpDnuik1sg" labelAlignment="LEFT">
1667 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1668 </ownedStyle>
1669 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1670 </ownedElements>
1671 <ownedElements xmi:type="diagram:DNodeListElement" uid="_kKaoMKBJEeuqkpDnuik1sg" name="upperBound : EInt = -1" tooltipText="">
1672 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//RangeMultiplicity/upperBound"/>
1673 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//RangeMultiplicity/upperBound"/>
1674 <ownedStyle xmi:type="diagram:BundledImage" uid="_kxFmoqBJEeuqkpDnuik1sg" labelAlignment="LEFT">
1675 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1676 </ownedStyle>
1677 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1678 </ownedElements>
1679 </ownedDiagramElements>
1680 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_aPIDwKBJEeuqkpDnuik1sg" name="ExactMultiplicity" tooltipText="" outgoingEdges="_dn26MqBJEeuqkpDnuik1sg" width="12" height="10">
1681 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExactMultiplicity"/>
1682 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExactMultiplicity"/>
1683 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1684 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1685 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1686 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_nIZcRaBJEeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1687 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1688 </ownedStyle>
1689 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1690 <ownedElements xmi:type="diagram:DNodeListElement" uid="_lhXNAKBJEeuqkpDnuik1sg" name="exactValue : EInt = 1" tooltipText="">
1691 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ExactMultiplicity/exactValue"/>
1692 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ExactMultiplicity/exactValue"/>
1693 <ownedStyle xmi:type="diagram:BundledImage" uid="_nIsXNaBJEeuqkpDnuik1sg" labelAlignment="LEFT">
1694 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1695 </ownedStyle>
1696 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1697 </ownedElements>
1698 </ownedDiagramElements>
1699 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_c_boQqBJEeuqkpDnuik1sg" sourceNode="_Tx0CEKBJEeuqkpDnuik1sg" targetNode="_ReiX4KBJEeuqkpDnuik1sg">
1700 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//RangeMultiplicity"/>
1701 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//RangeMultiplicity"/>
1702 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_kxLGYKBJEeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1703 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1704 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_kxLGYaBJEeuqkpDnuik1sg" showIcon="false">
1705 <labelFormat>italic</labelFormat>
1706 </beginLabelStyle>
1707 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_kxLGYqBJEeuqkpDnuik1sg" showIcon="false"/>
1708 </ownedStyle>
1709 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1710 </ownedDiagramElements>
1711 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_dn26MqBJEeuqkpDnuik1sg" sourceNode="_aPIDwKBJEeuqkpDnuik1sg" targetNode="_ReiX4KBJEeuqkpDnuik1sg">
1712 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExactMultiplicity"/>
1713 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExactMultiplicity"/>
1714 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_nIwopqBJEeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree">
1715 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1716 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_nIwop6BJEeuqkpDnuik1sg" showIcon="false">
1717 <labelFormat>italic</labelFormat>
1718 </beginLabelStyle>
1719 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_nIwoqKBJEeuqkpDnuik1sg" showIcon="false"/>
1720 </ownedStyle>
1721 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1722 </ownedDiagramElements>
1723 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_n5fiHqBJEeuqkpDnuik1sg" name="[0..1] multiplicity" sourceNode="_zac6MKA9EeuqkpDnuik1sg" targetNode="_ReiX4KBJEeuqkpDnuik1sg">
1724 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//TypeScope/multiplicity"/>
1725 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//TypeScope/multiplicity"/>
1726 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_n5gJEKBJEeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1727 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_n5gJEqBJEeuqkpDnuik1sg" showIcon="false">
1728 <customFeatures>labelSize</customFeatures>
1729 </centerLabelStyle>
1730 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_n5gJEaBJEeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1731 <customFeatures>labelSize</customFeatures>
1732 </endLabelStyle>
1733 </ownedStyle>
1734 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1735 </ownedDiagramElements>
1736 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_p1JWcqBJEeuqkpDnuik1sg" name="[0..1] multiplicity" sourceNode="_c-A7oKA4EeuqkpDnuik1sg" targetNode="_ReiX4KBJEeuqkpDnuik1sg">
1737 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/multiplicity"/>
1738 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/multiplicity"/>
1739 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_p1J9cKBJEeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1740 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_p1J9cqBJEeuqkpDnuik1sg" showIcon="false">
1741 <customFeatures>labelSize</customFeatures>
1742 </centerLabelStyle>
1743 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_p1J9caBJEeuqkpDnuik1sg" showIcon="false" labelColor="39,76,114">
1744 <customFeatures>labelSize</customFeatures>
1745 </endLabelStyle>
1746 </ownedStyle>
1747 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
1748 </ownedDiagramElements>
1749 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
1750 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_CsWlsKA4EeuqkpDnuik1sg"/>
1751 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
1752 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
1753 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
1754 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/>
1755 </diagram:DSemanticDiagram>
1756</xmi:XMI>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java
new file mode 100644
index 00000000..758212fb
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java
@@ -0,0 +1,85 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Assertion</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getRelation <em>Relation</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments <em>Arguments</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getValue <em>Value</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertion()
22 * @model
23 * @generated
24 */
25public interface Assertion extends Statement {
26 /**
27 * Returns the value of the '<em><b>Relation</b></em>' reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Relation</em>' reference.
31 * @see #setRelation(Relation)
32 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertion_Relation()
33 * @model
34 * @generated
35 */
36 Relation getRelation();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getRelation <em>Relation</em>}' reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Relation</em>' reference.
43 * @see #getRelation()
44 * @generated
45 */
46 void setRelation(Relation value);
47
48 /**
49 * Returns the value of the '<em><b>Arguments</b></em>' reference list.
50 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Node}.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>Arguments</em>' reference list.
54 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertion_Arguments()
55 * @model
56 * @generated
57 */
58 EList<Node> getArguments();
59
60 /**
61 * Returns the value of the '<em><b>Value</b></em>' attribute.
62 * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.model.problem.LogicValue}.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @return the value of the '<em>Value</em>' attribute.
66 * @see org.eclipse.viatra.solver.language.model.problem.LogicValue
67 * @see #setValue(LogicValue)
68 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertion_Value()
69 * @model
70 * @generated
71 */
72 LogicValue getValue();
73
74 /**
75 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getValue <em>Value</em>}' attribute.
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @param value the new value of the '<em>Value</em>' attribute.
79 * @see org.eclipse.viatra.solver.language.model.problem.LogicValue
80 * @see #getValue()
81 * @generated
82 */
83 void setValue(LogicValue value);
84
85} // Assertion
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java
new file mode 100644
index 00000000..bee08d8d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java
@@ -0,0 +1,82 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Atom</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Atom#getRelation <em>Relation</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Atom#getArguments <em>Arguments</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Atom#isTransitiveClosure <em>Transitive Closure</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom()
22 * @model
23 * @generated
24 */
25public interface Atom extends Literal {
26 /**
27 * Returns the value of the '<em><b>Relation</b></em>' reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Relation</em>' reference.
31 * @see #setRelation(Relation)
32 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom_Relation()
33 * @model
34 * @generated
35 */
36 Relation getRelation();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Atom#getRelation <em>Relation</em>}' reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Relation</em>' reference.
43 * @see #getRelation()
44 * @generated
45 */
46 void setRelation(Relation value);
47
48 /**
49 * Returns the value of the '<em><b>Arguments</b></em>' reference list.
50 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Variable}.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>Arguments</em>' reference list.
54 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom_Arguments()
55 * @model
56 * @generated
57 */
58 EList<Variable> getArguments();
59
60 /**
61 * Returns the value of the '<em><b>Transitive Closure</b></em>' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return the value of the '<em>Transitive Closure</em>' attribute.
65 * @see #setTransitiveClosure(boolean)
66 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom_TransitiveClosure()
67 * @model
68 * @generated
69 */
70 boolean isTransitiveClosure();
71
72 /**
73 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Atom#isTransitiveClosure <em>Transitive Closure</em>}' attribute.
74 * <!-- begin-user-doc -->
75 * <!-- end-user-doc -->
76 * @param value the new value of the '<em>Transitive Closure</em>' attribute.
77 * @see #isTransitiveClosure()
78 * @generated
79 */
80 void setTransitiveClosure(boolean value);
81
82} // Atom
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java
new file mode 100644
index 00000000..7212d006
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java
@@ -0,0 +1,72 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Class Declaration</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#isAbstract <em>Abstract</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getSuperTypes <em>Super Types</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getReferenceDeclarations <em>Reference Declarations</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration()
22 * @model
23 * @generated
24 */
25public interface ClassDeclaration extends Relation, Statement {
26 /**
27 * Returns the value of the '<em><b>Abstract</b></em>' attribute.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Abstract</em>' attribute.
31 * @see #setAbstract(boolean)
32 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration_Abstract()
33 * @model
34 * @generated
35 */
36 boolean isAbstract();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#isAbstract <em>Abstract</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Abstract</em>' attribute.
43 * @see #isAbstract()
44 * @generated
45 */
46 void setAbstract(boolean value);
47
48 /**
49 * Returns the value of the '<em><b>Super Types</b></em>' reference list.
50 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration}.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>Super Types</em>' reference list.
54 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration_SuperTypes()
55 * @model
56 * @generated
57 */
58 EList<ClassDeclaration> getSuperTypes();
59
60 /**
61 * Returns the value of the '<em><b>Reference Declarations</b></em>' containment reference list.
62 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration}.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @return the value of the '<em>Reference Declarations</em>' containment reference list.
66 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration_ReferenceDeclarations()
67 * @model containment="true"
68 * @generated
69 */
70 EList<ReferenceDeclaration> getReferenceDeclarations();
71
72} // ClassDeclaration
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java
new file mode 100644
index 00000000..df8e0cef
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java
@@ -0,0 +1,36 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Conjunction</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Conjunction#getLiterals <em>Literals</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConjunction()
20 * @model
21 * @generated
22 */
23public interface Conjunction extends ExistentialQuantifier {
24 /**
25 * Returns the value of the '<em><b>Literals</b></em>' containment reference list.
26 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Literal}.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Literals</em>' containment reference list.
30 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConjunction_Literals()
31 * @model containment="true"
32 * @generated
33 */
34 EList<Literal> getLiterals();
35
36} // Conjunction
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java
new file mode 100644
index 00000000..413c2ad1
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java
@@ -0,0 +1,45 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Exact Multiplicity</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 * <p>
11 * The following features are supported:
12 * </p>
13 * <ul>
14 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity#getExactValue <em>Exact Value</em>}</li>
15 * </ul>
16 *
17 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getExactMultiplicity()
18 * @model
19 * @generated
20 */
21public interface ExactMultiplicity extends Multiplicity {
22 /**
23 * Returns the value of the '<em><b>Exact Value</b></em>' attribute.
24 * The default value is <code>"1"</code>.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @return the value of the '<em>Exact Value</em>' attribute.
28 * @see #setExactValue(int)
29 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getExactMultiplicity_ExactValue()
30 * @model default="1"
31 * @generated
32 */
33 int getExactValue();
34
35 /**
36 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity#getExactValue <em>Exact Value</em>}' attribute.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @param value the new value of the '<em>Exact Value</em>' attribute.
40 * @see #getExactValue()
41 * @generated
42 */
43 void setExactValue(int value);
44
45} // ExactMultiplicity
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java
new file mode 100644
index 00000000..1a1d5f8a
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java
@@ -0,0 +1,38 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Existential Quantifier</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier#getImplicitVariables <em>Implicit Variables</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getExistentialQuantifier()
22 * @model interface="true" abstract="true"
23 * @generated
24 */
25public interface ExistentialQuantifier extends EObject {
26 /**
27 * Returns the value of the '<em><b>Implicit Variables</b></em>' containment reference list.
28 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.ImplicitVariable}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Implicit Variables</em>' containment reference list.
32 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getExistentialQuantifier_ImplicitVariables()
33 * @model containment="true"
34 * @generated
35 */
36 EList<ImplicitVariable> getImplicitVariables();
37
38} // ExistentialQuantifier
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java
new file mode 100644
index 00000000..6d1793c6
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java
@@ -0,0 +1,16 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Implicit Variable</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getImplicitVariable()
12 * @model
13 * @generated
14 */
15public interface ImplicitVariable extends Variable {
16} // ImplicitVariable
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java
new file mode 100644
index 00000000..acccf79b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java
@@ -0,0 +1,18 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Literal</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getLiteral()
14 * @model abstract="true"
15 * @generated
16 */
17public interface Literal extends EObject {
18} // Literal
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java
new file mode 100644
index 00000000..2efbd25a
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java
@@ -0,0 +1,227 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import java.util.Arrays;
6import java.util.Collections;
7import java.util.List;
8
9import org.eclipse.emf.common.util.Enumerator;
10
11/**
12 * <!-- begin-user-doc -->
13 * A representation of the literals of the enumeration '<em><b>Logic Value</b></em>',
14 * and utility methods for working with them.
15 * <!-- end-user-doc -->
16 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getLogicValue()
17 * @model
18 * @generated
19 */
20public enum LogicValue implements Enumerator {
21 /**
22 * The '<em><b>TRUE</b></em>' literal object.
23 * <!-- begin-user-doc -->
24 * <!-- end-user-doc -->
25 * @see #TRUE_VALUE
26 * @generated
27 * @ordered
28 */
29 TRUE(0, "TRUE", "TRUE"),
30
31 /**
32 * The '<em><b>FALSE</b></em>' literal object.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @see #FALSE_VALUE
36 * @generated
37 * @ordered
38 */
39 FALSE(1, "FALSE", "FALSE"),
40
41 /**
42 * The '<em><b>UNKNOWN</b></em>' literal object.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #UNKNOWN_VALUE
46 * @generated
47 * @ordered
48 */
49 UNKNOWN(2, "UNKNOWN", "UNKNOWN");
50
51 /**
52 * The '<em><b>TRUE</b></em>' literal value.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #TRUE
56 * @model
57 * @generated
58 * @ordered
59 */
60 public static final int TRUE_VALUE = 0;
61
62 /**
63 * The '<em><b>FALSE</b></em>' literal value.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @see #FALSE
67 * @model
68 * @generated
69 * @ordered
70 */
71 public static final int FALSE_VALUE = 1;
72
73 /**
74 * The '<em><b>UNKNOWN</b></em>' literal value.
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @see #UNKNOWN
78 * @model
79 * @generated
80 * @ordered
81 */
82 public static final int UNKNOWN_VALUE = 2;
83
84 /**
85 * An array of all the '<em><b>Logic Value</b></em>' enumerators.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 private static final LogicValue[] VALUES_ARRAY = new LogicValue[] { TRUE, FALSE, UNKNOWN, };
91
92 /**
93 * A public read-only list of all the '<em><b>Logic Value</b></em>' enumerators.
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 public static final List<LogicValue> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
99
100 /**
101 * Returns the '<em><b>Logic Value</b></em>' literal with the specified literal value.
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @param literal the literal.
105 * @return the matching enumerator or <code>null</code>.
106 * @generated
107 */
108 public static LogicValue get(String literal) {
109 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
110 LogicValue result = VALUES_ARRAY[i];
111 if (result.toString().equals(literal)) {
112 return result;
113 }
114 }
115 return null;
116 }
117
118 /**
119 * Returns the '<em><b>Logic Value</b></em>' literal with the specified name.
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @param name the name.
123 * @return the matching enumerator or <code>null</code>.
124 * @generated
125 */
126 public static LogicValue getByName(String name) {
127 for (int i = 0; i < VALUES_ARRAY.length; ++i) {
128 LogicValue result = VALUES_ARRAY[i];
129 if (result.getName().equals(name)) {
130 return result;
131 }
132 }
133 return null;
134 }
135
136 /**
137 * Returns the '<em><b>Logic Value</b></em>' literal with the specified integer value.
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @param value the integer value.
141 * @return the matching enumerator or <code>null</code>.
142 * @generated
143 */
144 public static LogicValue get(int value) {
145 switch (value) {
146 case TRUE_VALUE:
147 return TRUE;
148 case FALSE_VALUE:
149 return FALSE;
150 case UNKNOWN_VALUE:
151 return UNKNOWN;
152 }
153 return null;
154 }
155
156 /**
157 * <!-- begin-user-doc -->
158 * <!-- end-user-doc -->
159 * @generated
160 */
161 private final int value;
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 private final String name;
169
170 /**
171 * <!-- begin-user-doc -->
172 * <!-- end-user-doc -->
173 * @generated
174 */
175 private final String literal;
176
177 /**
178 * Only this class can construct instances.
179 * <!-- begin-user-doc -->
180 * <!-- end-user-doc -->
181 * @generated
182 */
183 private LogicValue(int value, String name, String literal) {
184 this.value = value;
185 this.name = name;
186 this.literal = literal;
187 }
188
189 /**
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 */
194 public int getValue() {
195 return value;
196 }
197
198 /**
199 * <!-- begin-user-doc -->
200 * <!-- end-user-doc -->
201 * @generated
202 */
203 public String getName() {
204 return name;
205 }
206
207 /**
208 * <!-- begin-user-doc -->
209 * <!-- end-user-doc -->
210 * @generated
211 */
212 public String getLiteral() {
213 return literal;
214 }
215
216 /**
217 * Returns the literal value of the enumerator, which is its string representation.
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 */
222 @Override
223 public String toString() {
224 return literal;
225 }
226
227} //LogicValue
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java
new file mode 100644
index 00000000..d3d573fa
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java
@@ -0,0 +1,18 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Multiplicity</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getMultiplicity()
14 * @model abstract="true"
15 * @generated
16 */
17public interface Multiplicity extends EObject {
18} // Multiplicity
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java
new file mode 100644
index 00000000..3302b041
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java
@@ -0,0 +1,46 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Named Element</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.model.problem.NamedElement#getName <em>Name</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNamedElement()
20 * @model abstract="true"
21 * @generated
22 */
23public interface NamedElement extends EObject {
24 /**
25 * Returns the value of the '<em><b>Name</b></em>' attribute.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return the value of the '<em>Name</em>' attribute.
29 * @see #setName(String)
30 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNamedElement_Name()
31 * @model
32 * @generated
33 */
34 String getName();
35
36 /**
37 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NamedElement#getName <em>Name</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @param value the new value of the '<em>Name</em>' attribute.
41 * @see #getName()
42 * @generated
43 */
44 void setName(String value);
45
46} // NamedElement
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java
new file mode 100644
index 00000000..ac3aa2b9
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java
@@ -0,0 +1,44 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Negative Literal</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 * <p>
11 * The following features are supported:
12 * </p>
13 * <ul>
14 * <li>{@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral#getAtom <em>Atom</em>}</li>
15 * </ul>
16 *
17 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNegativeLiteral()
18 * @model
19 * @generated
20 */
21public interface NegativeLiteral extends ExistentialQuantifier, Literal {
22 /**
23 * Returns the value of the '<em><b>Atom</b></em>' containment reference.
24 * <!-- begin-user-doc -->
25 * <!-- end-user-doc -->
26 * @return the value of the '<em>Atom</em>' containment reference.
27 * @see #setAtom(Atom)
28 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNegativeLiteral_Atom()
29 * @model containment="true"
30 * @generated
31 */
32 Atom getAtom();
33
34 /**
35 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral#getAtom <em>Atom</em>}' containment reference.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @param value the new value of the '<em>Atom</em>' containment reference.
39 * @see #getAtom()
40 * @generated
41 */
42 void setAtom(Atom value);
43
44} // NegativeLiteral
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java
new file mode 100644
index 00000000..e6547083
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java
@@ -0,0 +1,16 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Node</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNode()
12 * @model
13 * @generated
14 */
15public interface Node extends NamedElement {
16} // Node
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java
new file mode 100644
index 00000000..5ed8ac3c
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java
@@ -0,0 +1,44 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Parameter</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 * <p>
11 * The following features are supported:
12 * </p>
13 * <ul>
14 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Parameter#getParameterType <em>Parameter Type</em>}</li>
15 * </ul>
16 *
17 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getParameter()
18 * @model
19 * @generated
20 */
21public interface Parameter extends Variable {
22 /**
23 * Returns the value of the '<em><b>Parameter Type</b></em>' reference.
24 * <!-- begin-user-doc -->
25 * <!-- end-user-doc -->
26 * @return the value of the '<em>Parameter Type</em>' reference.
27 * @see #setParameterType(ClassDeclaration)
28 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getParameter_ParameterType()
29 * @model
30 * @generated
31 */
32 ClassDeclaration getParameterType();
33
34 /**
35 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Parameter#getParameterType <em>Parameter Type</em>}' reference.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @param value the new value of the '<em>Parameter Type</em>' reference.
39 * @see #getParameterType()
40 * @generated
41 */
42 void setParameterType(ClassDeclaration value);
43
44} // Parameter
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java
new file mode 100644
index 00000000..175d5fff
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java
@@ -0,0 +1,72 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Predicate Definition</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#isError <em>Error</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getParameters <em>Parameters</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getBodies <em>Bodies</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getPredicateDefinition()
22 * @model
23 * @generated
24 */
25public interface PredicateDefinition extends Relation, Statement {
26 /**
27 * Returns the value of the '<em><b>Error</b></em>' attribute.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Error</em>' attribute.
31 * @see #setError(boolean)
32 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getPredicateDefinition_Error()
33 * @model
34 * @generated
35 */
36 boolean isError();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#isError <em>Error</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Error</em>' attribute.
43 * @see #isError()
44 * @generated
45 */
46 void setError(boolean value);
47
48 /**
49 * Returns the value of the '<em><b>Parameters</b></em>' containment reference list.
50 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Parameter}.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @return the value of the '<em>Parameters</em>' containment reference list.
54 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getPredicateDefinition_Parameters()
55 * @model containment="true"
56 * @generated
57 */
58 EList<Parameter> getParameters();
59
60 /**
61 * Returns the value of the '<em><b>Bodies</b></em>' containment reference list.
62 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Conjunction}.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @return the value of the '<em>Bodies</em>' containment reference list.
66 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getPredicateDefinition_Bodies()
67 * @model containment="true"
68 * @generated
69 */
70 EList<Conjunction> getBodies();
71
72} // PredicateDefinition
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java
new file mode 100644
index 00000000..3342767d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java
@@ -0,0 +1,51 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Problem</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Problem#getNodes <em>Nodes</em>}</li>
19 * <li>{@link org.eclipse.viatra.solver.language.model.problem.Problem#getStatements <em>Statements</em>}</li>
20 * </ul>
21 *
22 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getProblem()
23 * @model
24 * @generated
25 */
26public interface Problem extends EObject {
27 /**
28 * Returns the value of the '<em><b>Nodes</b></em>' containment reference list.
29 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Node}.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @return the value of the '<em>Nodes</em>' containment reference list.
33 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getProblem_Nodes()
34 * @model containment="true"
35 * @generated
36 */
37 EList<Node> getNodes();
38
39 /**
40 * Returns the value of the '<em><b>Statements</b></em>' containment reference list.
41 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Statement}.
42 * <!-- begin-user-doc -->
43 * <!-- end-user-doc -->
44 * @return the value of the '<em>Statements</em>' containment reference list.
45 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getProblem_Statements()
46 * @model containment="true"
47 * @generated
48 */
49 EList<Statement> getStatements();
50
51} // Problem
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
new file mode 100644
index 00000000..301f7cce
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
@@ -0,0 +1,168 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage
13 * @generated
14 */
15public interface ProblemFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 ProblemFactory eINSTANCE = org.eclipse.viatra.solver.language.model.problem.impl.ProblemFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Problem</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Problem</em>'.
29 * @generated
30 */
31 Problem createProblem();
32
33 /**
34 * Returns a new object of class '<em>Class Declaration</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Class Declaration</em>'.
38 * @generated
39 */
40 ClassDeclaration createClassDeclaration();
41
42 /**
43 * Returns a new object of class '<em>Reference Declaration</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>Reference Declaration</em>'.
47 * @generated
48 */
49 ReferenceDeclaration createReferenceDeclaration();
50
51 /**
52 * Returns a new object of class '<em>Predicate Definition</em>'.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return a new object of class '<em>Predicate Definition</em>'.
56 * @generated
57 */
58 PredicateDefinition createPredicateDefinition();
59
60 /**
61 * Returns a new object of class '<em>Parameter</em>'.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return a new object of class '<em>Parameter</em>'.
65 * @generated
66 */
67 Parameter createParameter();
68
69 /**
70 * Returns a new object of class '<em>Conjunction</em>'.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return a new object of class '<em>Conjunction</em>'.
74 * @generated
75 */
76 Conjunction createConjunction();
77
78 /**
79 * Returns a new object of class '<em>Atom</em>'.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @return a new object of class '<em>Atom</em>'.
83 * @generated
84 */
85 Atom createAtom();
86
87 /**
88 * Returns a new object of class '<em>Implicit Variable</em>'.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @return a new object of class '<em>Implicit Variable</em>'.
92 * @generated
93 */
94 ImplicitVariable createImplicitVariable();
95
96 /**
97 * Returns a new object of class '<em>Negative Literal</em>'.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @return a new object of class '<em>Negative Literal</em>'.
101 * @generated
102 */
103 NegativeLiteral createNegativeLiteral();
104
105 /**
106 * Returns a new object of class '<em>Assertion</em>'.
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @return a new object of class '<em>Assertion</em>'.
110 * @generated
111 */
112 Assertion createAssertion();
113
114 /**
115 * Returns a new object of class '<em>Node</em>'.
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @return a new object of class '<em>Node</em>'.
119 * @generated
120 */
121 Node createNode();
122
123 /**
124 * Returns a new object of class '<em>Scope Declaration</em>'.
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @return a new object of class '<em>Scope Declaration</em>'.
128 * @generated
129 */
130 ScopeDeclaration createScopeDeclaration();
131
132 /**
133 * Returns a new object of class '<em>Type Scope</em>'.
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @return a new object of class '<em>Type Scope</em>'.
137 * @generated
138 */
139 TypeScope createTypeScope();
140
141 /**
142 * Returns a new object of class '<em>Range Multiplicity</em>'.
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @return a new object of class '<em>Range Multiplicity</em>'.
146 * @generated
147 */
148 RangeMultiplicity createRangeMultiplicity();
149
150 /**
151 * Returns a new object of class '<em>Exact Multiplicity</em>'.
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @return a new object of class '<em>Exact Multiplicity</em>'.
155 * @generated
156 */
157 ExactMultiplicity createExactMultiplicity();
158
159 /**
160 * Returns the package supported by this factory.
161 * <!-- begin-user-doc -->
162 * <!-- end-user-doc -->
163 * @return the package supported by this factory.
164 * @generated
165 */
166 ProblemPackage getProblemPackage();
167
168} //ProblemFactory
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
new file mode 100644
index 00000000..59906b1f
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
@@ -0,0 +1,2101 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference;
10
11/**
12 * <!-- begin-user-doc -->
13 * The <b>Package</b> for the model.
14 * It contains accessors for the meta objects to represent
15 * <ul>
16 * <li>each class,</li>
17 * <li>each feature of each class,</li>
18 * <li>each operation of each class,</li>
19 * <li>each enum,</li>
20 * <li>and each data type</li>
21 * </ul>
22 * <!-- end-user-doc -->
23 * @see org.eclipse.viatra.solver.language.model.problem.ProblemFactory
24 * @model kind="package"
25 * @generated
26 */
27public interface ProblemPackage extends EPackage {
28 /**
29 * The package name.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 String eNAME = "problem";
35
36 /**
37 * The package namespace URI.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @generated
41 */
42 String eNS_URI = "http://www.eclipse.org/viatra/solver/language/model/Problem";
43
44 /**
45 * The package namespace name.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @generated
49 */
50 String eNS_PREFIX = "problem";
51
52 /**
53 * The singleton instance of the package.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @generated
57 */
58 ProblemPackage eINSTANCE = org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl.init();
59
60 /**
61 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl <em>Problem</em>}' class.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl
65 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getProblem()
66 * @generated
67 */
68 int PROBLEM = 0;
69
70 /**
71 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @generated
75 * @ordered
76 */
77 int PROBLEM__NODES = 0;
78
79 /**
80 * The feature id for the '<em><b>Statements</b></em>' containment reference list.
81 * <!-- begin-user-doc -->
82 * <!-- end-user-doc -->
83 * @generated
84 * @ordered
85 */
86 int PROBLEM__STATEMENTS = 1;
87
88 /**
89 * The number of structural features of the '<em>Problem</em>' class.
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 * @ordered
94 */
95 int PROBLEM_FEATURE_COUNT = 2;
96
97 /**
98 * The number of operations of the '<em>Problem</em>' class.
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 * @ordered
103 */
104 int PROBLEM_OPERATION_COUNT = 0;
105
106 /**
107 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl <em>Named Element</em>}' class.
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @see org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl
111 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNamedElement()
112 * @generated
113 */
114 int NAMED_ELEMENT = 4;
115
116 /**
117 * The feature id for the '<em><b>Name</b></em>' attribute.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 * @ordered
122 */
123 int NAMED_ELEMENT__NAME = 0;
124
125 /**
126 * The number of structural features of the '<em>Named Element</em>' class.
127 * <!-- begin-user-doc -->
128 * <!-- end-user-doc -->
129 * @generated
130 * @ordered
131 */
132 int NAMED_ELEMENT_FEATURE_COUNT = 1;
133
134 /**
135 * The number of operations of the '<em>Named Element</em>' class.
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 * @ordered
140 */
141 int NAMED_ELEMENT_OPERATION_COUNT = 0;
142
143 /**
144 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RelationImpl <em>Relation</em>}' class.
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @see org.eclipse.viatra.solver.language.model.problem.impl.RelationImpl
148 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRelation()
149 * @generated
150 */
151 int RELATION = 1;
152
153 /**
154 * The feature id for the '<em><b>Name</b></em>' attribute.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @generated
158 * @ordered
159 */
160 int RELATION__NAME = NAMED_ELEMENT__NAME;
161
162 /**
163 * The number of structural features of the '<em>Relation</em>' class.
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 * @ordered
168 */
169 int RELATION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;
170
171 /**
172 * The number of operations of the '<em>Relation</em>' class.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 * @ordered
177 */
178 int RELATION_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
179
180 /**
181 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl <em>Class Declaration</em>}' class.
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @see org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl
185 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getClassDeclaration()
186 * @generated
187 */
188 int CLASS_DECLARATION = 2;
189
190 /**
191 * The feature id for the '<em><b>Name</b></em>' attribute.
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 * @ordered
196 */
197 int CLASS_DECLARATION__NAME = RELATION__NAME;
198
199 /**
200 * The feature id for the '<em><b>Abstract</b></em>' attribute.
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 * @ordered
205 */
206 int CLASS_DECLARATION__ABSTRACT = RELATION_FEATURE_COUNT + 0;
207
208 /**
209 * The feature id for the '<em><b>Super Types</b></em>' reference list.
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 * @ordered
214 */
215 int CLASS_DECLARATION__SUPER_TYPES = RELATION_FEATURE_COUNT + 1;
216
217 /**
218 * The feature id for the '<em><b>Reference Declarations</b></em>' containment reference list.
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 * @ordered
223 */
224 int CLASS_DECLARATION__REFERENCE_DECLARATIONS = RELATION_FEATURE_COUNT + 2;
225
226 /**
227 * The number of structural features of the '<em>Class Declaration</em>' class.
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 * @ordered
232 */
233 int CLASS_DECLARATION_FEATURE_COUNT = RELATION_FEATURE_COUNT + 3;
234
235 /**
236 * The number of operations of the '<em>Class Declaration</em>' class.
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @generated
240 * @ordered
241 */
242 int CLASS_DECLARATION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0;
243
244 /**
245 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl <em>Reference Declaration</em>}' class.
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @see org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl
249 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getReferenceDeclaration()
250 * @generated
251 */
252 int REFERENCE_DECLARATION = 3;
253
254 /**
255 * The feature id for the '<em><b>Name</b></em>' attribute.
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 * @ordered
260 */
261 int REFERENCE_DECLARATION__NAME = RELATION__NAME;
262
263 /**
264 * The feature id for the '<em><b>Reference Type</b></em>' reference.
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @generated
268 * @ordered
269 */
270 int REFERENCE_DECLARATION__REFERENCE_TYPE = RELATION_FEATURE_COUNT + 0;
271
272 /**
273 * The feature id for the '<em><b>Opposite</b></em>' reference.
274 * <!-- begin-user-doc -->
275 * <!-- end-user-doc -->
276 * @generated
277 * @ordered
278 */
279 int REFERENCE_DECLARATION__OPPOSITE = RELATION_FEATURE_COUNT + 1;
280
281 /**
282 * The feature id for the '<em><b>Containment</b></em>' attribute.
283 * <!-- begin-user-doc -->
284 * <!-- end-user-doc -->
285 * @generated
286 * @ordered
287 */
288 int REFERENCE_DECLARATION__CONTAINMENT = RELATION_FEATURE_COUNT + 2;
289
290 /**
291 * The feature id for the '<em><b>Multiplicity</b></em>' containment reference.
292 * <!-- begin-user-doc -->
293 * <!-- end-user-doc -->
294 * @generated
295 * @ordered
296 */
297 int REFERENCE_DECLARATION__MULTIPLICITY = RELATION_FEATURE_COUNT + 3;
298
299 /**
300 * The number of structural features of the '<em>Reference Declaration</em>' class.
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 * @ordered
305 */
306 int REFERENCE_DECLARATION_FEATURE_COUNT = RELATION_FEATURE_COUNT + 4;
307
308 /**
309 * The number of operations of the '<em>Reference Declaration</em>' class.
310 * <!-- begin-user-doc -->
311 * <!-- end-user-doc -->
312 * @generated
313 * @ordered
314 */
315 int REFERENCE_DECLARATION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0;
316
317 /**
318 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl <em>Predicate Definition</em>}' class.
319 * <!-- begin-user-doc -->
320 * <!-- end-user-doc -->
321 * @see org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl
322 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getPredicateDefinition()
323 * @generated
324 */
325 int PREDICATE_DEFINITION = 5;
326
327 /**
328 * The feature id for the '<em><b>Name</b></em>' attribute.
329 * <!-- begin-user-doc -->
330 * <!-- end-user-doc -->
331 * @generated
332 * @ordered
333 */
334 int PREDICATE_DEFINITION__NAME = RELATION__NAME;
335
336 /**
337 * The feature id for the '<em><b>Error</b></em>' attribute.
338 * <!-- begin-user-doc -->
339 * <!-- end-user-doc -->
340 * @generated
341 * @ordered
342 */
343 int PREDICATE_DEFINITION__ERROR = RELATION_FEATURE_COUNT + 0;
344
345 /**
346 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
347 * <!-- begin-user-doc -->
348 * <!-- end-user-doc -->
349 * @generated
350 * @ordered
351 */
352 int PREDICATE_DEFINITION__PARAMETERS = RELATION_FEATURE_COUNT + 1;
353
354 /**
355 * The feature id for the '<em><b>Bodies</b></em>' containment reference list.
356 * <!-- begin-user-doc -->
357 * <!-- end-user-doc -->
358 * @generated
359 * @ordered
360 */
361 int PREDICATE_DEFINITION__BODIES = RELATION_FEATURE_COUNT + 2;
362
363 /**
364 * The number of structural features of the '<em>Predicate Definition</em>' class.
365 * <!-- begin-user-doc -->
366 * <!-- end-user-doc -->
367 * @generated
368 * @ordered
369 */
370 int PREDICATE_DEFINITION_FEATURE_COUNT = RELATION_FEATURE_COUNT + 3;
371
372 /**
373 * The number of operations of the '<em>Predicate Definition</em>' class.
374 * <!-- begin-user-doc -->
375 * <!-- end-user-doc -->
376 * @generated
377 * @ordered
378 */
379 int PREDICATE_DEFINITION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0;
380
381 /**
382 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableImpl <em>Variable</em>}' class.
383 * <!-- begin-user-doc -->
384 * <!-- end-user-doc -->
385 * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableImpl
386 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariable()
387 * @generated
388 */
389 int VARIABLE = 7;
390
391 /**
392 * The feature id for the '<em><b>Name</b></em>' attribute.
393 * <!-- begin-user-doc -->
394 * <!-- end-user-doc -->
395 * @generated
396 * @ordered
397 */
398 int VARIABLE__NAME = NAMED_ELEMENT__NAME;
399
400 /**
401 * The number of structural features of the '<em>Variable</em>' class.
402 * <!-- begin-user-doc -->
403 * <!-- end-user-doc -->
404 * @generated
405 * @ordered
406 */
407 int VARIABLE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;
408
409 /**
410 * The number of operations of the '<em>Variable</em>' class.
411 * <!-- begin-user-doc -->
412 * <!-- end-user-doc -->
413 * @generated
414 * @ordered
415 */
416 int VARIABLE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
417
418 /**
419 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl <em>Parameter</em>}' class.
420 * <!-- begin-user-doc -->
421 * <!-- end-user-doc -->
422 * @see org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl
423 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getParameter()
424 * @generated
425 */
426 int PARAMETER = 6;
427
428 /**
429 * The feature id for the '<em><b>Name</b></em>' attribute.
430 * <!-- begin-user-doc -->
431 * <!-- end-user-doc -->
432 * @generated
433 * @ordered
434 */
435 int PARAMETER__NAME = VARIABLE__NAME;
436
437 /**
438 * The feature id for the '<em><b>Parameter Type</b></em>' reference.
439 * <!-- begin-user-doc -->
440 * <!-- end-user-doc -->
441 * @generated
442 * @ordered
443 */
444 int PARAMETER__PARAMETER_TYPE = VARIABLE_FEATURE_COUNT + 0;
445
446 /**
447 * The number of structural features of the '<em>Parameter</em>' class.
448 * <!-- begin-user-doc -->
449 * <!-- end-user-doc -->
450 * @generated
451 * @ordered
452 */
453 int PARAMETER_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 1;
454
455 /**
456 * The number of operations of the '<em>Parameter</em>' class.
457 * <!-- begin-user-doc -->
458 * <!-- end-user-doc -->
459 * @generated
460 * @ordered
461 */
462 int PARAMETER_OPERATION_COUNT = VARIABLE_OPERATION_COUNT + 0;
463
464 /**
465 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier <em>Existential Quantifier</em>}' class.
466 * <!-- begin-user-doc -->
467 * <!-- end-user-doc -->
468 * @see org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier
469 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getExistentialQuantifier()
470 * @generated
471 */
472 int EXISTENTIAL_QUANTIFIER = 13;
473
474 /**
475 * The feature id for the '<em><b>Implicit Variables</b></em>' containment reference list.
476 * <!-- begin-user-doc -->
477 * <!-- end-user-doc -->
478 * @generated
479 * @ordered
480 */
481 int EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES = 0;
482
483 /**
484 * The number of structural features of the '<em>Existential Quantifier</em>' class.
485 * <!-- begin-user-doc -->
486 * <!-- end-user-doc -->
487 * @generated
488 * @ordered
489 */
490 int EXISTENTIAL_QUANTIFIER_FEATURE_COUNT = 1;
491
492 /**
493 * The number of operations of the '<em>Existential Quantifier</em>' class.
494 * <!-- begin-user-doc -->
495 * <!-- end-user-doc -->
496 * @generated
497 * @ordered
498 */
499 int EXISTENTIAL_QUANTIFIER_OPERATION_COUNT = 0;
500
501 /**
502 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl <em>Conjunction</em>}' class.
503 * <!-- begin-user-doc -->
504 * <!-- end-user-doc -->
505 * @see org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl
506 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConjunction()
507 * @generated
508 */
509 int CONJUNCTION = 8;
510
511 /**
512 * The feature id for the '<em><b>Implicit Variables</b></em>' containment reference list.
513 * <!-- begin-user-doc -->
514 * <!-- end-user-doc -->
515 * @generated
516 * @ordered
517 */
518 int CONJUNCTION__IMPLICIT_VARIABLES = EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES;
519
520 /**
521 * The feature id for the '<em><b>Literals</b></em>' containment reference list.
522 * <!-- begin-user-doc -->
523 * <!-- end-user-doc -->
524 * @generated
525 * @ordered
526 */
527 int CONJUNCTION__LITERALS = EXISTENTIAL_QUANTIFIER_FEATURE_COUNT + 0;
528
529 /**
530 * The number of structural features of the '<em>Conjunction</em>' class.
531 * <!-- begin-user-doc -->
532 * <!-- end-user-doc -->
533 * @generated
534 * @ordered
535 */
536 int CONJUNCTION_FEATURE_COUNT = EXISTENTIAL_QUANTIFIER_FEATURE_COUNT + 1;
537
538 /**
539 * The number of operations of the '<em>Conjunction</em>' class.
540 * <!-- begin-user-doc -->
541 * <!-- end-user-doc -->
542 * @generated
543 * @ordered
544 */
545 int CONJUNCTION_OPERATION_COUNT = EXISTENTIAL_QUANTIFIER_OPERATION_COUNT + 0;
546
547 /**
548 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.LiteralImpl <em>Literal</em>}' class.
549 * <!-- begin-user-doc -->
550 * <!-- end-user-doc -->
551 * @see org.eclipse.viatra.solver.language.model.problem.impl.LiteralImpl
552 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLiteral()
553 * @generated
554 */
555 int LITERAL = 9;
556
557 /**
558 * The number of structural features of the '<em>Literal</em>' class.
559 * <!-- begin-user-doc -->
560 * <!-- end-user-doc -->
561 * @generated
562 * @ordered
563 */
564 int LITERAL_FEATURE_COUNT = 0;
565
566 /**
567 * The number of operations of the '<em>Literal</em>' class.
568 * <!-- begin-user-doc -->
569 * <!-- end-user-doc -->
570 * @generated
571 * @ordered
572 */
573 int LITERAL_OPERATION_COUNT = 0;
574
575 /**
576 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl <em>Atom</em>}' class.
577 * <!-- begin-user-doc -->
578 * <!-- end-user-doc -->
579 * @see org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl
580 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAtom()
581 * @generated
582 */
583 int ATOM = 10;
584
585 /**
586 * The feature id for the '<em><b>Relation</b></em>' reference.
587 * <!-- begin-user-doc -->
588 * <!-- end-user-doc -->
589 * @generated
590 * @ordered
591 */
592 int ATOM__RELATION = LITERAL_FEATURE_COUNT + 0;
593
594 /**
595 * The feature id for the '<em><b>Arguments</b></em>' reference list.
596 * <!-- begin-user-doc -->
597 * <!-- end-user-doc -->
598 * @generated
599 * @ordered
600 */
601 int ATOM__ARGUMENTS = LITERAL_FEATURE_COUNT + 1;
602
603 /**
604 * The feature id for the '<em><b>Transitive Closure</b></em>' attribute.
605 * <!-- begin-user-doc -->
606 * <!-- end-user-doc -->
607 * @generated
608 * @ordered
609 */
610 int ATOM__TRANSITIVE_CLOSURE = LITERAL_FEATURE_COUNT + 2;
611
612 /**
613 * The number of structural features of the '<em>Atom</em>' class.
614 * <!-- begin-user-doc -->
615 * <!-- end-user-doc -->
616 * @generated
617 * @ordered
618 */
619 int ATOM_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 3;
620
621 /**
622 * The number of operations of the '<em>Atom</em>' class.
623 * <!-- begin-user-doc -->
624 * <!-- end-user-doc -->
625 * @generated
626 * @ordered
627 */
628 int ATOM_OPERATION_COUNT = LITERAL_OPERATION_COUNT + 0;
629
630 /**
631 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ImplicitVariableImpl <em>Implicit Variable</em>}' class.
632 * <!-- begin-user-doc -->
633 * <!-- end-user-doc -->
634 * @see org.eclipse.viatra.solver.language.model.problem.impl.ImplicitVariableImpl
635 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getImplicitVariable()
636 * @generated
637 */
638 int IMPLICIT_VARIABLE = 11;
639
640 /**
641 * The feature id for the '<em><b>Name</b></em>' attribute.
642 * <!-- begin-user-doc -->
643 * <!-- end-user-doc -->
644 * @generated
645 * @ordered
646 */
647 int IMPLICIT_VARIABLE__NAME = VARIABLE__NAME;
648
649 /**
650 * The number of structural features of the '<em>Implicit Variable</em>' class.
651 * <!-- begin-user-doc -->
652 * <!-- end-user-doc -->
653 * @generated
654 * @ordered
655 */
656 int IMPLICIT_VARIABLE_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 0;
657
658 /**
659 * The number of operations of the '<em>Implicit Variable</em>' class.
660 * <!-- begin-user-doc -->
661 * <!-- end-user-doc -->
662 * @generated
663 * @ordered
664 */
665 int IMPLICIT_VARIABLE_OPERATION_COUNT = VARIABLE_OPERATION_COUNT + 0;
666
667 /**
668 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl <em>Negative Literal</em>}' class.
669 * <!-- begin-user-doc -->
670 * <!-- end-user-doc -->
671 * @see org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl
672 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNegativeLiteral()
673 * @generated
674 */
675 int NEGATIVE_LITERAL = 12;
676
677 /**
678 * The feature id for the '<em><b>Implicit Variables</b></em>' containment reference list.
679 * <!-- begin-user-doc -->
680 * <!-- end-user-doc -->
681 * @generated
682 * @ordered
683 */
684 int NEGATIVE_LITERAL__IMPLICIT_VARIABLES = EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES;
685
686 /**
687 * The feature id for the '<em><b>Atom</b></em>' containment reference.
688 * <!-- begin-user-doc -->
689 * <!-- end-user-doc -->
690 * @generated
691 * @ordered
692 */
693 int NEGATIVE_LITERAL__ATOM = EXISTENTIAL_QUANTIFIER_FEATURE_COUNT + 0;
694
695 /**
696 * The number of structural features of the '<em>Negative Literal</em>' class.
697 * <!-- begin-user-doc -->
698 * <!-- end-user-doc -->
699 * @generated
700 * @ordered
701 */
702 int NEGATIVE_LITERAL_FEATURE_COUNT = EXISTENTIAL_QUANTIFIER_FEATURE_COUNT + 1;
703
704 /**
705 * The number of operations of the '<em>Negative Literal</em>' class.
706 * <!-- begin-user-doc -->
707 * <!-- end-user-doc -->
708 * @generated
709 * @ordered
710 */
711 int NEGATIVE_LITERAL_OPERATION_COUNT = EXISTENTIAL_QUANTIFIER_OPERATION_COUNT + 0;
712
713 /**
714 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.Statement <em>Statement</em>}' class.
715 * <!-- begin-user-doc -->
716 * <!-- end-user-doc -->
717 * @see org.eclipse.viatra.solver.language.model.problem.Statement
718 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getStatement()
719 * @generated
720 */
721 int STATEMENT = 17;
722
723 /**
724 * The number of structural features of the '<em>Statement</em>' class.
725 * <!-- begin-user-doc -->
726 * <!-- end-user-doc -->
727 * @generated
728 * @ordered
729 */
730 int STATEMENT_FEATURE_COUNT = 0;
731
732 /**
733 * The number of operations of the '<em>Statement</em>' class.
734 * <!-- begin-user-doc -->
735 * <!-- end-user-doc -->
736 * @generated
737 * @ordered
738 */
739 int STATEMENT_OPERATION_COUNT = 0;
740
741 /**
742 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl <em>Assertion</em>}' class.
743 * <!-- begin-user-doc -->
744 * <!-- end-user-doc -->
745 * @see org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl
746 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAssertion()
747 * @generated
748 */
749 int ASSERTION = 14;
750
751 /**
752 * The feature id for the '<em><b>Relation</b></em>' reference.
753 * <!-- begin-user-doc -->
754 * <!-- end-user-doc -->
755 * @generated
756 * @ordered
757 */
758 int ASSERTION__RELATION = STATEMENT_FEATURE_COUNT + 0;
759
760 /**
761 * The feature id for the '<em><b>Arguments</b></em>' reference list.
762 * <!-- begin-user-doc -->
763 * <!-- end-user-doc -->
764 * @generated
765 * @ordered
766 */
767 int ASSERTION__ARGUMENTS = STATEMENT_FEATURE_COUNT + 1;
768
769 /**
770 * The feature id for the '<em><b>Value</b></em>' attribute.
771 * <!-- begin-user-doc -->
772 * <!-- end-user-doc -->
773 * @generated
774 * @ordered
775 */
776 int ASSERTION__VALUE = STATEMENT_FEATURE_COUNT + 2;
777
778 /**
779 * The number of structural features of the '<em>Assertion</em>' class.
780 * <!-- begin-user-doc -->
781 * <!-- end-user-doc -->
782 * @generated
783 * @ordered
784 */
785 int ASSERTION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3;
786
787 /**
788 * The number of operations of the '<em>Assertion</em>' class.
789 * <!-- begin-user-doc -->
790 * <!-- end-user-doc -->
791 * @generated
792 * @ordered
793 */
794 int ASSERTION_OPERATION_COUNT = STATEMENT_OPERATION_COUNT + 0;
795
796 /**
797 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeImpl <em>Node</em>}' class.
798 * <!-- begin-user-doc -->
799 * <!-- end-user-doc -->
800 * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeImpl
801 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNode()
802 * @generated
803 */
804 int NODE = 15;
805
806 /**
807 * The feature id for the '<em><b>Name</b></em>' attribute.
808 * <!-- begin-user-doc -->
809 * <!-- end-user-doc -->
810 * @generated
811 * @ordered
812 */
813 int NODE__NAME = NAMED_ELEMENT__NAME;
814
815 /**
816 * The number of structural features of the '<em>Node</em>' class.
817 * <!-- begin-user-doc -->
818 * <!-- end-user-doc -->
819 * @generated
820 * @ordered
821 */
822 int NODE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;
823
824 /**
825 * The number of operations of the '<em>Node</em>' class.
826 * <!-- begin-user-doc -->
827 * <!-- end-user-doc -->
828 * @generated
829 * @ordered
830 */
831 int NODE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
832
833 /**
834 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl <em>Scope Declaration</em>}' class.
835 * <!-- begin-user-doc -->
836 * <!-- end-user-doc -->
837 * @see org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl
838 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getScopeDeclaration()
839 * @generated
840 */
841 int SCOPE_DECLARATION = 16;
842
843 /**
844 * The feature id for the '<em><b>Type Scopes</b></em>' containment reference list.
845 * <!-- begin-user-doc -->
846 * <!-- end-user-doc -->
847 * @generated
848 * @ordered
849 */
850 int SCOPE_DECLARATION__TYPE_SCOPES = STATEMENT_FEATURE_COUNT + 0;
851
852 /**
853 * The number of structural features of the '<em>Scope Declaration</em>' class.
854 * <!-- begin-user-doc -->
855 * <!-- end-user-doc -->
856 * @generated
857 * @ordered
858 */
859 int SCOPE_DECLARATION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1;
860
861 /**
862 * The number of operations of the '<em>Scope Declaration</em>' class.
863 * <!-- begin-user-doc -->
864 * <!-- end-user-doc -->
865 * @generated
866 * @ordered
867 */
868 int SCOPE_DECLARATION_OPERATION_COUNT = STATEMENT_OPERATION_COUNT + 0;
869
870 /**
871 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl <em>Type Scope</em>}' class.
872 * <!-- begin-user-doc -->
873 * <!-- end-user-doc -->
874 * @see org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl
875 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getTypeScope()
876 * @generated
877 */
878 int TYPE_SCOPE = 18;
879
880 /**
881 * The feature id for the '<em><b>Target Type</b></em>' reference.
882 * <!-- begin-user-doc -->
883 * <!-- end-user-doc -->
884 * @generated
885 * @ordered
886 */
887 int TYPE_SCOPE__TARGET_TYPE = 0;
888
889 /**
890 * The feature id for the '<em><b>Increment</b></em>' attribute.
891 * <!-- begin-user-doc -->
892 * <!-- end-user-doc -->
893 * @generated
894 * @ordered
895 */
896 int TYPE_SCOPE__INCREMENT = 1;
897
898 /**
899 * The feature id for the '<em><b>Multiplicity</b></em>' containment reference.
900 * <!-- begin-user-doc -->
901 * <!-- end-user-doc -->
902 * @generated
903 * @ordered
904 */
905 int TYPE_SCOPE__MULTIPLICITY = 2;
906
907 /**
908 * The number of structural features of the '<em>Type Scope</em>' class.
909 * <!-- begin-user-doc -->
910 * <!-- end-user-doc -->
911 * @generated
912 * @ordered
913 */
914 int TYPE_SCOPE_FEATURE_COUNT = 3;
915
916 /**
917 * The number of operations of the '<em>Type Scope</em>' class.
918 * <!-- begin-user-doc -->
919 * <!-- end-user-doc -->
920 * @generated
921 * @ordered
922 */
923 int TYPE_SCOPE_OPERATION_COUNT = 0;
924
925 /**
926 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.MultiplicityImpl <em>Multiplicity</em>}' class.
927 * <!-- begin-user-doc -->
928 * <!-- end-user-doc -->
929 * @see org.eclipse.viatra.solver.language.model.problem.impl.MultiplicityImpl
930 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getMultiplicity()
931 * @generated
932 */
933 int MULTIPLICITY = 19;
934
935 /**
936 * The number of structural features of the '<em>Multiplicity</em>' class.
937 * <!-- begin-user-doc -->
938 * <!-- end-user-doc -->
939 * @generated
940 * @ordered
941 */
942 int MULTIPLICITY_FEATURE_COUNT = 0;
943
944 /**
945 * The number of operations of the '<em>Multiplicity</em>' class.
946 * <!-- begin-user-doc -->
947 * <!-- end-user-doc -->
948 * @generated
949 * @ordered
950 */
951 int MULTIPLICITY_OPERATION_COUNT = 0;
952
953 /**
954 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl <em>Range Multiplicity</em>}' class.
955 * <!-- begin-user-doc -->
956 * <!-- end-user-doc -->
957 * @see org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl
958 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRangeMultiplicity()
959 * @generated
960 */
961 int RANGE_MULTIPLICITY = 20;
962
963 /**
964 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
965 * <!-- begin-user-doc -->
966 * <!-- end-user-doc -->
967 * @generated
968 * @ordered
969 */
970 int RANGE_MULTIPLICITY__LOWER_BOUND = MULTIPLICITY_FEATURE_COUNT + 0;
971
972 /**
973 * The feature id for the '<em><b>Upper Bound</b></em>' attribute.
974 * <!-- begin-user-doc -->
975 * <!-- end-user-doc -->
976 * @generated
977 * @ordered
978 */
979 int RANGE_MULTIPLICITY__UPPER_BOUND = MULTIPLICITY_FEATURE_COUNT + 1;
980
981 /**
982 * The number of structural features of the '<em>Range Multiplicity</em>' class.
983 * <!-- begin-user-doc -->
984 * <!-- end-user-doc -->
985 * @generated
986 * @ordered
987 */
988 int RANGE_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 2;
989
990 /**
991 * The number of operations of the '<em>Range Multiplicity</em>' class.
992 * <!-- begin-user-doc -->
993 * <!-- end-user-doc -->
994 * @generated
995 * @ordered
996 */
997 int RANGE_MULTIPLICITY_OPERATION_COUNT = MULTIPLICITY_OPERATION_COUNT + 0;
998
999 /**
1000 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl <em>Exact Multiplicity</em>}' class.
1001 * <!-- begin-user-doc -->
1002 * <!-- end-user-doc -->
1003 * @see org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl
1004 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getExactMultiplicity()
1005 * @generated
1006 */
1007 int EXACT_MULTIPLICITY = 21;
1008
1009 /**
1010 * The feature id for the '<em><b>Exact Value</b></em>' attribute.
1011 * <!-- begin-user-doc -->
1012 * <!-- end-user-doc -->
1013 * @generated
1014 * @ordered
1015 */
1016 int EXACT_MULTIPLICITY__EXACT_VALUE = MULTIPLICITY_FEATURE_COUNT + 0;
1017
1018 /**
1019 * The number of structural features of the '<em>Exact Multiplicity</em>' class.
1020 * <!-- begin-user-doc -->
1021 * <!-- end-user-doc -->
1022 * @generated
1023 * @ordered
1024 */
1025 int EXACT_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 1;
1026
1027 /**
1028 * The number of operations of the '<em>Exact Multiplicity</em>' class.
1029 * <!-- begin-user-doc -->
1030 * <!-- end-user-doc -->
1031 * @generated
1032 * @ordered
1033 */
1034 int EXACT_MULTIPLICITY_OPERATION_COUNT = MULTIPLICITY_OPERATION_COUNT + 0;
1035
1036 /**
1037 * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue <em>Logic Value</em>}' enum.
1038 * <!-- begin-user-doc -->
1039 * <!-- end-user-doc -->
1040 * @see org.eclipse.viatra.solver.language.model.problem.LogicValue
1041 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLogicValue()
1042 * @generated
1043 */
1044 int LOGIC_VALUE = 22;
1045
1046 /**
1047 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Problem <em>Problem</em>}'.
1048 * <!-- begin-user-doc -->
1049 * <!-- end-user-doc -->
1050 * @return the meta object for class '<em>Problem</em>'.
1051 * @see org.eclipse.viatra.solver.language.model.problem.Problem
1052 * @generated
1053 */
1054 EClass getProblem();
1055
1056 /**
1057 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.Problem#getNodes <em>Nodes</em>}'.
1058 * <!-- begin-user-doc -->
1059 * <!-- end-user-doc -->
1060 * @return the meta object for the containment reference list '<em>Nodes</em>'.
1061 * @see org.eclipse.viatra.solver.language.model.problem.Problem#getNodes()
1062 * @see #getProblem()
1063 * @generated
1064 */
1065 EReference getProblem_Nodes();
1066
1067 /**
1068 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.Problem#getStatements <em>Statements</em>}'.
1069 * <!-- begin-user-doc -->
1070 * <!-- end-user-doc -->
1071 * @return the meta object for the containment reference list '<em>Statements</em>'.
1072 * @see org.eclipse.viatra.solver.language.model.problem.Problem#getStatements()
1073 * @see #getProblem()
1074 * @generated
1075 */
1076 EReference getProblem_Statements();
1077
1078 /**
1079 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Relation <em>Relation</em>}'.
1080 * <!-- begin-user-doc -->
1081 * <!-- end-user-doc -->
1082 * @return the meta object for class '<em>Relation</em>'.
1083 * @see org.eclipse.viatra.solver.language.model.problem.Relation
1084 * @generated
1085 */
1086 EClass getRelation();
1087
1088 /**
1089 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration <em>Class Declaration</em>}'.
1090 * <!-- begin-user-doc -->
1091 * <!-- end-user-doc -->
1092 * @return the meta object for class '<em>Class Declaration</em>'.
1093 * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration
1094 * @generated
1095 */
1096 EClass getClassDeclaration();
1097
1098 /**
1099 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#isAbstract <em>Abstract</em>}'.
1100 * <!-- begin-user-doc -->
1101 * <!-- end-user-doc -->
1102 * @return the meta object for the attribute '<em>Abstract</em>'.
1103 * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#isAbstract()
1104 * @see #getClassDeclaration()
1105 * @generated
1106 */
1107 EAttribute getClassDeclaration_Abstract();
1108
1109 /**
1110 * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getSuperTypes <em>Super Types</em>}'.
1111 * <!-- begin-user-doc -->
1112 * <!-- end-user-doc -->
1113 * @return the meta object for the reference list '<em>Super Types</em>'.
1114 * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getSuperTypes()
1115 * @see #getClassDeclaration()
1116 * @generated
1117 */
1118 EReference getClassDeclaration_SuperTypes();
1119
1120 /**
1121 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getReferenceDeclarations <em>Reference Declarations</em>}'.
1122 * <!-- begin-user-doc -->
1123 * <!-- end-user-doc -->
1124 * @return the meta object for the containment reference list '<em>Reference Declarations</em>'.
1125 * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getReferenceDeclarations()
1126 * @see #getClassDeclaration()
1127 * @generated
1128 */
1129 EReference getClassDeclaration_ReferenceDeclarations();
1130
1131 /**
1132 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration <em>Reference Declaration</em>}'.
1133 * <!-- begin-user-doc -->
1134 * <!-- end-user-doc -->
1135 * @return the meta object for class '<em>Reference Declaration</em>'.
1136 * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration
1137 * @generated
1138 */
1139 EClass getReferenceDeclaration();
1140
1141 /**
1142 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getReferenceType <em>Reference Type</em>}'.
1143 * <!-- begin-user-doc -->
1144 * <!-- end-user-doc -->
1145 * @return the meta object for the reference '<em>Reference Type</em>'.
1146 * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getReferenceType()
1147 * @see #getReferenceDeclaration()
1148 * @generated
1149 */
1150 EReference getReferenceDeclaration_ReferenceType();
1151
1152 /**
1153 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getOpposite <em>Opposite</em>}'.
1154 * <!-- begin-user-doc -->
1155 * <!-- end-user-doc -->
1156 * @return the meta object for the reference '<em>Opposite</em>'.
1157 * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getOpposite()
1158 * @see #getReferenceDeclaration()
1159 * @generated
1160 */
1161 EReference getReferenceDeclaration_Opposite();
1162
1163 /**
1164 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#isContainment <em>Containment</em>}'.
1165 * <!-- begin-user-doc -->
1166 * <!-- end-user-doc -->
1167 * @return the meta object for the attribute '<em>Containment</em>'.
1168 * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#isContainment()
1169 * @see #getReferenceDeclaration()
1170 * @generated
1171 */
1172 EAttribute getReferenceDeclaration_Containment();
1173
1174 /**
1175 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getMultiplicity <em>Multiplicity</em>}'.
1176 * <!-- begin-user-doc -->
1177 * <!-- end-user-doc -->
1178 * @return the meta object for the containment reference '<em>Multiplicity</em>'.
1179 * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getMultiplicity()
1180 * @see #getReferenceDeclaration()
1181 * @generated
1182 */
1183 EReference getReferenceDeclaration_Multiplicity();
1184
1185 /**
1186 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.NamedElement <em>Named Element</em>}'.
1187 * <!-- begin-user-doc -->
1188 * <!-- end-user-doc -->
1189 * @return the meta object for class '<em>Named Element</em>'.
1190 * @see org.eclipse.viatra.solver.language.model.problem.NamedElement
1191 * @generated
1192 */
1193 EClass getNamedElement();
1194
1195 /**
1196 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.NamedElement#getName <em>Name</em>}'.
1197 * <!-- begin-user-doc -->
1198 * <!-- end-user-doc -->
1199 * @return the meta object for the attribute '<em>Name</em>'.
1200 * @see org.eclipse.viatra.solver.language.model.problem.NamedElement#getName()
1201 * @see #getNamedElement()
1202 * @generated
1203 */
1204 EAttribute getNamedElement_Name();
1205
1206 /**
1207 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition <em>Predicate Definition</em>}'.
1208 * <!-- begin-user-doc -->
1209 * <!-- end-user-doc -->
1210 * @return the meta object for class '<em>Predicate Definition</em>'.
1211 * @see org.eclipse.viatra.solver.language.model.problem.PredicateDefinition
1212 * @generated
1213 */
1214 EClass getPredicateDefinition();
1215
1216 /**
1217 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#isError <em>Error</em>}'.
1218 * <!-- begin-user-doc -->
1219 * <!-- end-user-doc -->
1220 * @return the meta object for the attribute '<em>Error</em>'.
1221 * @see org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#isError()
1222 * @see #getPredicateDefinition()
1223 * @generated
1224 */
1225 EAttribute getPredicateDefinition_Error();
1226
1227 /**
1228 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getParameters <em>Parameters</em>}'.
1229 * <!-- begin-user-doc -->
1230 * <!-- end-user-doc -->
1231 * @return the meta object for the containment reference list '<em>Parameters</em>'.
1232 * @see org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getParameters()
1233 * @see #getPredicateDefinition()
1234 * @generated
1235 */
1236 EReference getPredicateDefinition_Parameters();
1237
1238 /**
1239 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getBodies <em>Bodies</em>}'.
1240 * <!-- begin-user-doc -->
1241 * <!-- end-user-doc -->
1242 * @return the meta object for the containment reference list '<em>Bodies</em>'.
1243 * @see org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getBodies()
1244 * @see #getPredicateDefinition()
1245 * @generated
1246 */
1247 EReference getPredicateDefinition_Bodies();
1248
1249 /**
1250 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Parameter <em>Parameter</em>}'.
1251 * <!-- begin-user-doc -->
1252 * <!-- end-user-doc -->
1253 * @return the meta object for class '<em>Parameter</em>'.
1254 * @see org.eclipse.viatra.solver.language.model.problem.Parameter
1255 * @generated
1256 */
1257 EClass getParameter();
1258
1259 /**
1260 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Parameter#getParameterType <em>Parameter Type</em>}'.
1261 * <!-- begin-user-doc -->
1262 * <!-- end-user-doc -->
1263 * @return the meta object for the reference '<em>Parameter Type</em>'.
1264 * @see org.eclipse.viatra.solver.language.model.problem.Parameter#getParameterType()
1265 * @see #getParameter()
1266 * @generated
1267 */
1268 EReference getParameter_ParameterType();
1269
1270 /**
1271 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Variable <em>Variable</em>}'.
1272 * <!-- begin-user-doc -->
1273 * <!-- end-user-doc -->
1274 * @return the meta object for class '<em>Variable</em>'.
1275 * @see org.eclipse.viatra.solver.language.model.problem.Variable
1276 * @generated
1277 */
1278 EClass getVariable();
1279
1280 /**
1281 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Conjunction <em>Conjunction</em>}'.
1282 * <!-- begin-user-doc -->
1283 * <!-- end-user-doc -->
1284 * @return the meta object for class '<em>Conjunction</em>'.
1285 * @see org.eclipse.viatra.solver.language.model.problem.Conjunction
1286 * @generated
1287 */
1288 EClass getConjunction();
1289
1290 /**
1291 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.Conjunction#getLiterals <em>Literals</em>}'.
1292 * <!-- begin-user-doc -->
1293 * <!-- end-user-doc -->
1294 * @return the meta object for the containment reference list '<em>Literals</em>'.
1295 * @see org.eclipse.viatra.solver.language.model.problem.Conjunction#getLiterals()
1296 * @see #getConjunction()
1297 * @generated
1298 */
1299 EReference getConjunction_Literals();
1300
1301 /**
1302 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Literal <em>Literal</em>}'.
1303 * <!-- begin-user-doc -->
1304 * <!-- end-user-doc -->
1305 * @return the meta object for class '<em>Literal</em>'.
1306 * @see org.eclipse.viatra.solver.language.model.problem.Literal
1307 * @generated
1308 */
1309 EClass getLiteral();
1310
1311 /**
1312 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Atom <em>Atom</em>}'.
1313 * <!-- begin-user-doc -->
1314 * <!-- end-user-doc -->
1315 * @return the meta object for class '<em>Atom</em>'.
1316 * @see org.eclipse.viatra.solver.language.model.problem.Atom
1317 * @generated
1318 */
1319 EClass getAtom();
1320
1321 /**
1322 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Atom#getRelation <em>Relation</em>}'.
1323 * <!-- begin-user-doc -->
1324 * <!-- end-user-doc -->
1325 * @return the meta object for the reference '<em>Relation</em>'.
1326 * @see org.eclipse.viatra.solver.language.model.problem.Atom#getRelation()
1327 * @see #getAtom()
1328 * @generated
1329 */
1330 EReference getAtom_Relation();
1331
1332 /**
1333 * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.model.problem.Atom#getArguments <em>Arguments</em>}'.
1334 * <!-- begin-user-doc -->
1335 * <!-- end-user-doc -->
1336 * @return the meta object for the reference list '<em>Arguments</em>'.
1337 * @see org.eclipse.viatra.solver.language.model.problem.Atom#getArguments()
1338 * @see #getAtom()
1339 * @generated
1340 */
1341 EReference getAtom_Arguments();
1342
1343 /**
1344 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.Atom#isTransitiveClosure <em>Transitive Closure</em>}'.
1345 * <!-- begin-user-doc -->
1346 * <!-- end-user-doc -->
1347 * @return the meta object for the attribute '<em>Transitive Closure</em>'.
1348 * @see org.eclipse.viatra.solver.language.model.problem.Atom#isTransitiveClosure()
1349 * @see #getAtom()
1350 * @generated
1351 */
1352 EAttribute getAtom_TransitiveClosure();
1353
1354 /**
1355 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ImplicitVariable <em>Implicit Variable</em>}'.
1356 * <!-- begin-user-doc -->
1357 * <!-- end-user-doc -->
1358 * @return the meta object for class '<em>Implicit Variable</em>'.
1359 * @see org.eclipse.viatra.solver.language.model.problem.ImplicitVariable
1360 * @generated
1361 */
1362 EClass getImplicitVariable();
1363
1364 /**
1365 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral <em>Negative Literal</em>}'.
1366 * <!-- begin-user-doc -->
1367 * <!-- end-user-doc -->
1368 * @return the meta object for class '<em>Negative Literal</em>'.
1369 * @see org.eclipse.viatra.solver.language.model.problem.NegativeLiteral
1370 * @generated
1371 */
1372 EClass getNegativeLiteral();
1373
1374 /**
1375 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral#getAtom <em>Atom</em>}'.
1376 * <!-- begin-user-doc -->
1377 * <!-- end-user-doc -->
1378 * @return the meta object for the containment reference '<em>Atom</em>'.
1379 * @see org.eclipse.viatra.solver.language.model.problem.NegativeLiteral#getAtom()
1380 * @see #getNegativeLiteral()
1381 * @generated
1382 */
1383 EReference getNegativeLiteral_Atom();
1384
1385 /**
1386 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier <em>Existential Quantifier</em>}'.
1387 * <!-- begin-user-doc -->
1388 * <!-- end-user-doc -->
1389 * @return the meta object for class '<em>Existential Quantifier</em>'.
1390 * @see org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier
1391 * @generated
1392 */
1393 EClass getExistentialQuantifier();
1394
1395 /**
1396 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier#getImplicitVariables <em>Implicit Variables</em>}'.
1397 * <!-- begin-user-doc -->
1398 * <!-- end-user-doc -->
1399 * @return the meta object for the containment reference list '<em>Implicit Variables</em>'.
1400 * @see org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier#getImplicitVariables()
1401 * @see #getExistentialQuantifier()
1402 * @generated
1403 */
1404 EReference getExistentialQuantifier_ImplicitVariables();
1405
1406 /**
1407 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Assertion <em>Assertion</em>}'.
1408 * <!-- begin-user-doc -->
1409 * <!-- end-user-doc -->
1410 * @return the meta object for class '<em>Assertion</em>'.
1411 * @see org.eclipse.viatra.solver.language.model.problem.Assertion
1412 * @generated
1413 */
1414 EClass getAssertion();
1415
1416 /**
1417 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getRelation <em>Relation</em>}'.
1418 * <!-- begin-user-doc -->
1419 * <!-- end-user-doc -->
1420 * @return the meta object for the reference '<em>Relation</em>'.
1421 * @see org.eclipse.viatra.solver.language.model.problem.Assertion#getRelation()
1422 * @see #getAssertion()
1423 * @generated
1424 */
1425 EReference getAssertion_Relation();
1426
1427 /**
1428 * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments <em>Arguments</em>}'.
1429 * <!-- begin-user-doc -->
1430 * <!-- end-user-doc -->
1431 * @return the meta object for the reference list '<em>Arguments</em>'.
1432 * @see org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments()
1433 * @see #getAssertion()
1434 * @generated
1435 */
1436 EReference getAssertion_Arguments();
1437
1438 /**
1439 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getValue <em>Value</em>}'.
1440 * <!-- begin-user-doc -->
1441 * <!-- end-user-doc -->
1442 * @return the meta object for the attribute '<em>Value</em>'.
1443 * @see org.eclipse.viatra.solver.language.model.problem.Assertion#getValue()
1444 * @see #getAssertion()
1445 * @generated
1446 */
1447 EAttribute getAssertion_Value();
1448
1449 /**
1450 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Node <em>Node</em>}'.
1451 * <!-- begin-user-doc -->
1452 * <!-- end-user-doc -->
1453 * @return the meta object for class '<em>Node</em>'.
1454 * @see org.eclipse.viatra.solver.language.model.problem.Node
1455 * @generated
1456 */
1457 EClass getNode();
1458
1459 /**
1460 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration <em>Scope Declaration</em>}'.
1461 * <!-- begin-user-doc -->
1462 * <!-- end-user-doc -->
1463 * @return the meta object for class '<em>Scope Declaration</em>'.
1464 * @see org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration
1465 * @generated
1466 */
1467 EClass getScopeDeclaration();
1468
1469 /**
1470 * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration#getTypeScopes <em>Type Scopes</em>}'.
1471 * <!-- begin-user-doc -->
1472 * <!-- end-user-doc -->
1473 * @return the meta object for the containment reference list '<em>Type Scopes</em>'.
1474 * @see org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration#getTypeScopes()
1475 * @see #getScopeDeclaration()
1476 * @generated
1477 */
1478 EReference getScopeDeclaration_TypeScopes();
1479
1480 /**
1481 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Statement <em>Statement</em>}'.
1482 * <!-- begin-user-doc -->
1483 * <!-- end-user-doc -->
1484 * @return the meta object for class '<em>Statement</em>'.
1485 * @see org.eclipse.viatra.solver.language.model.problem.Statement
1486 * @generated
1487 */
1488 EClass getStatement();
1489
1490 /**
1491 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope <em>Type Scope</em>}'.
1492 * <!-- begin-user-doc -->
1493 * <!-- end-user-doc -->
1494 * @return the meta object for class '<em>Type Scope</em>'.
1495 * @see org.eclipse.viatra.solver.language.model.problem.TypeScope
1496 * @generated
1497 */
1498 EClass getTypeScope();
1499
1500 /**
1501 * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getTargetType <em>Target Type</em>}'.
1502 * <!-- begin-user-doc -->
1503 * <!-- end-user-doc -->
1504 * @return the meta object for the reference '<em>Target Type</em>'.
1505 * @see org.eclipse.viatra.solver.language.model.problem.TypeScope#getTargetType()
1506 * @see #getTypeScope()
1507 * @generated
1508 */
1509 EReference getTypeScope_TargetType();
1510
1511 /**
1512 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#isIncrement <em>Increment</em>}'.
1513 * <!-- begin-user-doc -->
1514 * <!-- end-user-doc -->
1515 * @return the meta object for the attribute '<em>Increment</em>'.
1516 * @see org.eclipse.viatra.solver.language.model.problem.TypeScope#isIncrement()
1517 * @see #getTypeScope()
1518 * @generated
1519 */
1520 EAttribute getTypeScope_Increment();
1521
1522 /**
1523 * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getMultiplicity <em>Multiplicity</em>}'.
1524 * <!-- begin-user-doc -->
1525 * <!-- end-user-doc -->
1526 * @return the meta object for the containment reference '<em>Multiplicity</em>'.
1527 * @see org.eclipse.viatra.solver.language.model.problem.TypeScope#getMultiplicity()
1528 * @see #getTypeScope()
1529 * @generated
1530 */
1531 EReference getTypeScope_Multiplicity();
1532
1533 /**
1534 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Multiplicity <em>Multiplicity</em>}'.
1535 * <!-- begin-user-doc -->
1536 * <!-- end-user-doc -->
1537 * @return the meta object for class '<em>Multiplicity</em>'.
1538 * @see org.eclipse.viatra.solver.language.model.problem.Multiplicity
1539 * @generated
1540 */
1541 EClass getMultiplicity();
1542
1543 /**
1544 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity <em>Range Multiplicity</em>}'.
1545 * <!-- begin-user-doc -->
1546 * <!-- end-user-doc -->
1547 * @return the meta object for class '<em>Range Multiplicity</em>'.
1548 * @see org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity
1549 * @generated
1550 */
1551 EClass getRangeMultiplicity();
1552
1553 /**
1554 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getLowerBound <em>Lower Bound</em>}'.
1555 * <!-- begin-user-doc -->
1556 * <!-- end-user-doc -->
1557 * @return the meta object for the attribute '<em>Lower Bound</em>'.
1558 * @see org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getLowerBound()
1559 * @see #getRangeMultiplicity()
1560 * @generated
1561 */
1562 EAttribute getRangeMultiplicity_LowerBound();
1563
1564 /**
1565 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getUpperBound <em>Upper Bound</em>}'.
1566 * <!-- begin-user-doc -->
1567 * <!-- end-user-doc -->
1568 * @return the meta object for the attribute '<em>Upper Bound</em>'.
1569 * @see org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getUpperBound()
1570 * @see #getRangeMultiplicity()
1571 * @generated
1572 */
1573 EAttribute getRangeMultiplicity_UpperBound();
1574
1575 /**
1576 * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity <em>Exact Multiplicity</em>}'.
1577 * <!-- begin-user-doc -->
1578 * <!-- end-user-doc -->
1579 * @return the meta object for class '<em>Exact Multiplicity</em>'.
1580 * @see org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity
1581 * @generated
1582 */
1583 EClass getExactMultiplicity();
1584
1585 /**
1586 * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity#getExactValue <em>Exact Value</em>}'.
1587 * <!-- begin-user-doc -->
1588 * <!-- end-user-doc -->
1589 * @return the meta object for the attribute '<em>Exact Value</em>'.
1590 * @see org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity#getExactValue()
1591 * @see #getExactMultiplicity()
1592 * @generated
1593 */
1594 EAttribute getExactMultiplicity_ExactValue();
1595
1596 /**
1597 * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue <em>Logic Value</em>}'.
1598 * <!-- begin-user-doc -->
1599 * <!-- end-user-doc -->
1600 * @return the meta object for enum '<em>Logic Value</em>'.
1601 * @see org.eclipse.viatra.solver.language.model.problem.LogicValue
1602 * @generated
1603 */
1604 EEnum getLogicValue();
1605
1606 /**
1607 * Returns the factory that creates the instances of the model.
1608 * <!-- begin-user-doc -->
1609 * <!-- end-user-doc -->
1610 * @return the factory that creates the instances of the model.
1611 * @generated
1612 */
1613 ProblemFactory getProblemFactory();
1614
1615 /**
1616 * <!-- begin-user-doc -->
1617 * Defines literals for the meta objects that represent
1618 * <ul>
1619 * <li>each class,</li>
1620 * <li>each feature of each class,</li>
1621 * <li>each operation of each class,</li>
1622 * <li>each enum,</li>
1623 * <li>and each data type</li>
1624 * </ul>
1625 * <!-- end-user-doc -->
1626 * @generated
1627 */
1628 interface Literals {
1629 /**
1630 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl <em>Problem</em>}' class.
1631 * <!-- begin-user-doc -->
1632 * <!-- end-user-doc -->
1633 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl
1634 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getProblem()
1635 * @generated
1636 */
1637 EClass PROBLEM = eINSTANCE.getProblem();
1638
1639 /**
1640 * The meta object literal for the '<em><b>Nodes</b></em>' containment reference list feature.
1641 * <!-- begin-user-doc -->
1642 * <!-- end-user-doc -->
1643 * @generated
1644 */
1645 EReference PROBLEM__NODES = eINSTANCE.getProblem_Nodes();
1646
1647 /**
1648 * The meta object literal for the '<em><b>Statements</b></em>' containment reference list feature.
1649 * <!-- begin-user-doc -->
1650 * <!-- end-user-doc -->
1651 * @generated
1652 */
1653 EReference PROBLEM__STATEMENTS = eINSTANCE.getProblem_Statements();
1654
1655 /**
1656 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RelationImpl <em>Relation</em>}' class.
1657 * <!-- begin-user-doc -->
1658 * <!-- end-user-doc -->
1659 * @see org.eclipse.viatra.solver.language.model.problem.impl.RelationImpl
1660 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRelation()
1661 * @generated
1662 */
1663 EClass RELATION = eINSTANCE.getRelation();
1664
1665 /**
1666 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl <em>Class Declaration</em>}' class.
1667 * <!-- begin-user-doc -->
1668 * <!-- end-user-doc -->
1669 * @see org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl
1670 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getClassDeclaration()
1671 * @generated
1672 */
1673 EClass CLASS_DECLARATION = eINSTANCE.getClassDeclaration();
1674
1675 /**
1676 * The meta object literal for the '<em><b>Abstract</b></em>' attribute feature.
1677 * <!-- begin-user-doc -->
1678 * <!-- end-user-doc -->
1679 * @generated
1680 */
1681 EAttribute CLASS_DECLARATION__ABSTRACT = eINSTANCE.getClassDeclaration_Abstract();
1682
1683 /**
1684 * The meta object literal for the '<em><b>Super Types</b></em>' reference list feature.
1685 * <!-- begin-user-doc -->
1686 * <!-- end-user-doc -->
1687 * @generated
1688 */
1689 EReference CLASS_DECLARATION__SUPER_TYPES = eINSTANCE.getClassDeclaration_SuperTypes();
1690
1691 /**
1692 * The meta object literal for the '<em><b>Reference Declarations</b></em>' containment reference list feature.
1693 * <!-- begin-user-doc -->
1694 * <!-- end-user-doc -->
1695 * @generated
1696 */
1697 EReference CLASS_DECLARATION__REFERENCE_DECLARATIONS = eINSTANCE.getClassDeclaration_ReferenceDeclarations();
1698
1699 /**
1700 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl <em>Reference Declaration</em>}' class.
1701 * <!-- begin-user-doc -->
1702 * <!-- end-user-doc -->
1703 * @see org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl
1704 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getReferenceDeclaration()
1705 * @generated
1706 */
1707 EClass REFERENCE_DECLARATION = eINSTANCE.getReferenceDeclaration();
1708
1709 /**
1710 * The meta object literal for the '<em><b>Reference Type</b></em>' reference feature.
1711 * <!-- begin-user-doc -->
1712 * <!-- end-user-doc -->
1713 * @generated
1714 */
1715 EReference REFERENCE_DECLARATION__REFERENCE_TYPE = eINSTANCE.getReferenceDeclaration_ReferenceType();
1716
1717 /**
1718 * The meta object literal for the '<em><b>Opposite</b></em>' reference feature.
1719 * <!-- begin-user-doc -->
1720 * <!-- end-user-doc -->
1721 * @generated
1722 */
1723 EReference REFERENCE_DECLARATION__OPPOSITE = eINSTANCE.getReferenceDeclaration_Opposite();
1724
1725 /**
1726 * The meta object literal for the '<em><b>Containment</b></em>' attribute feature.
1727 * <!-- begin-user-doc -->
1728 * <!-- end-user-doc -->
1729 * @generated
1730 */
1731 EAttribute REFERENCE_DECLARATION__CONTAINMENT = eINSTANCE.getReferenceDeclaration_Containment();
1732
1733 /**
1734 * The meta object literal for the '<em><b>Multiplicity</b></em>' containment reference feature.
1735 * <!-- begin-user-doc -->
1736 * <!-- end-user-doc -->
1737 * @generated
1738 */
1739 EReference REFERENCE_DECLARATION__MULTIPLICITY = eINSTANCE.getReferenceDeclaration_Multiplicity();
1740
1741 /**
1742 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl <em>Named Element</em>}' class.
1743 * <!-- begin-user-doc -->
1744 * <!-- end-user-doc -->
1745 * @see org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl
1746 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNamedElement()
1747 * @generated
1748 */
1749 EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();
1750
1751 /**
1752 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
1753 * <!-- begin-user-doc -->
1754 * <!-- end-user-doc -->
1755 * @generated
1756 */
1757 EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();
1758
1759 /**
1760 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl <em>Predicate Definition</em>}' class.
1761 * <!-- begin-user-doc -->
1762 * <!-- end-user-doc -->
1763 * @see org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl
1764 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getPredicateDefinition()
1765 * @generated
1766 */
1767 EClass PREDICATE_DEFINITION = eINSTANCE.getPredicateDefinition();
1768
1769 /**
1770 * The meta object literal for the '<em><b>Error</b></em>' attribute feature.
1771 * <!-- begin-user-doc -->
1772 * <!-- end-user-doc -->
1773 * @generated
1774 */
1775 EAttribute PREDICATE_DEFINITION__ERROR = eINSTANCE.getPredicateDefinition_Error();
1776
1777 /**
1778 * The meta object literal for the '<em><b>Parameters</b></em>' containment reference list feature.
1779 * <!-- begin-user-doc -->
1780 * <!-- end-user-doc -->
1781 * @generated
1782 */
1783 EReference PREDICATE_DEFINITION__PARAMETERS = eINSTANCE.getPredicateDefinition_Parameters();
1784
1785 /**
1786 * The meta object literal for the '<em><b>Bodies</b></em>' containment reference list feature.
1787 * <!-- begin-user-doc -->
1788 * <!-- end-user-doc -->
1789 * @generated
1790 */
1791 EReference PREDICATE_DEFINITION__BODIES = eINSTANCE.getPredicateDefinition_Bodies();
1792
1793 /**
1794 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl <em>Parameter</em>}' class.
1795 * <!-- begin-user-doc -->
1796 * <!-- end-user-doc -->
1797 * @see org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl
1798 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getParameter()
1799 * @generated
1800 */
1801 EClass PARAMETER = eINSTANCE.getParameter();
1802
1803 /**
1804 * The meta object literal for the '<em><b>Parameter Type</b></em>' reference feature.
1805 * <!-- begin-user-doc -->
1806 * <!-- end-user-doc -->
1807 * @generated
1808 */
1809 EReference PARAMETER__PARAMETER_TYPE = eINSTANCE.getParameter_ParameterType();
1810
1811 /**
1812 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableImpl <em>Variable</em>}' class.
1813 * <!-- begin-user-doc -->
1814 * <!-- end-user-doc -->
1815 * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableImpl
1816 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariable()
1817 * @generated
1818 */
1819 EClass VARIABLE = eINSTANCE.getVariable();
1820
1821 /**
1822 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl <em>Conjunction</em>}' class.
1823 * <!-- begin-user-doc -->
1824 * <!-- end-user-doc -->
1825 * @see org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl
1826 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConjunction()
1827 * @generated
1828 */
1829 EClass CONJUNCTION = eINSTANCE.getConjunction();
1830
1831 /**
1832 * The meta object literal for the '<em><b>Literals</b></em>' containment reference list feature.
1833 * <!-- begin-user-doc -->
1834 * <!-- end-user-doc -->
1835 * @generated
1836 */
1837 EReference CONJUNCTION__LITERALS = eINSTANCE.getConjunction_Literals();
1838
1839 /**
1840 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.LiteralImpl <em>Literal</em>}' class.
1841 * <!-- begin-user-doc -->
1842 * <!-- end-user-doc -->
1843 * @see org.eclipse.viatra.solver.language.model.problem.impl.LiteralImpl
1844 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLiteral()
1845 * @generated
1846 */
1847 EClass LITERAL = eINSTANCE.getLiteral();
1848
1849 /**
1850 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl <em>Atom</em>}' class.
1851 * <!-- begin-user-doc -->
1852 * <!-- end-user-doc -->
1853 * @see org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl
1854 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAtom()
1855 * @generated
1856 */
1857 EClass ATOM = eINSTANCE.getAtom();
1858
1859 /**
1860 * The meta object literal for the '<em><b>Relation</b></em>' reference feature.
1861 * <!-- begin-user-doc -->
1862 * <!-- end-user-doc -->
1863 * @generated
1864 */
1865 EReference ATOM__RELATION = eINSTANCE.getAtom_Relation();
1866
1867 /**
1868 * The meta object literal for the '<em><b>Arguments</b></em>' reference list feature.
1869 * <!-- begin-user-doc -->
1870 * <!-- end-user-doc -->
1871 * @generated
1872 */
1873 EReference ATOM__ARGUMENTS = eINSTANCE.getAtom_Arguments();
1874
1875 /**
1876 * The meta object literal for the '<em><b>Transitive Closure</b></em>' attribute feature.
1877 * <!-- begin-user-doc -->
1878 * <!-- end-user-doc -->
1879 * @generated
1880 */
1881 EAttribute ATOM__TRANSITIVE_CLOSURE = eINSTANCE.getAtom_TransitiveClosure();
1882
1883 /**
1884 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ImplicitVariableImpl <em>Implicit Variable</em>}' class.
1885 * <!-- begin-user-doc -->
1886 * <!-- end-user-doc -->
1887 * @see org.eclipse.viatra.solver.language.model.problem.impl.ImplicitVariableImpl
1888 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getImplicitVariable()
1889 * @generated
1890 */
1891 EClass IMPLICIT_VARIABLE = eINSTANCE.getImplicitVariable();
1892
1893 /**
1894 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl <em>Negative Literal</em>}' class.
1895 * <!-- begin-user-doc -->
1896 * <!-- end-user-doc -->
1897 * @see org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl
1898 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNegativeLiteral()
1899 * @generated
1900 */
1901 EClass NEGATIVE_LITERAL = eINSTANCE.getNegativeLiteral();
1902
1903 /**
1904 * The meta object literal for the '<em><b>Atom</b></em>' containment reference feature.
1905 * <!-- begin-user-doc -->
1906 * <!-- end-user-doc -->
1907 * @generated
1908 */
1909 EReference NEGATIVE_LITERAL__ATOM = eINSTANCE.getNegativeLiteral_Atom();
1910
1911 /**
1912 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier <em>Existential Quantifier</em>}' class.
1913 * <!-- begin-user-doc -->
1914 * <!-- end-user-doc -->
1915 * @see org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier
1916 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getExistentialQuantifier()
1917 * @generated
1918 */
1919 EClass EXISTENTIAL_QUANTIFIER = eINSTANCE.getExistentialQuantifier();
1920
1921 /**
1922 * The meta object literal for the '<em><b>Implicit Variables</b></em>' containment reference list feature.
1923 * <!-- begin-user-doc -->
1924 * <!-- end-user-doc -->
1925 * @generated
1926 */
1927 EReference EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES = eINSTANCE.getExistentialQuantifier_ImplicitVariables();
1928
1929 /**
1930 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl <em>Assertion</em>}' class.
1931 * <!-- begin-user-doc -->
1932 * <!-- end-user-doc -->
1933 * @see org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl
1934 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAssertion()
1935 * @generated
1936 */
1937 EClass ASSERTION = eINSTANCE.getAssertion();
1938
1939 /**
1940 * The meta object literal for the '<em><b>Relation</b></em>' reference feature.
1941 * <!-- begin-user-doc -->
1942 * <!-- end-user-doc -->
1943 * @generated
1944 */
1945 EReference ASSERTION__RELATION = eINSTANCE.getAssertion_Relation();
1946
1947 /**
1948 * The meta object literal for the '<em><b>Arguments</b></em>' reference list feature.
1949 * <!-- begin-user-doc -->
1950 * <!-- end-user-doc -->
1951 * @generated
1952 */
1953 EReference ASSERTION__ARGUMENTS = eINSTANCE.getAssertion_Arguments();
1954
1955 /**
1956 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
1957 * <!-- begin-user-doc -->
1958 * <!-- end-user-doc -->
1959 * @generated
1960 */
1961 EAttribute ASSERTION__VALUE = eINSTANCE.getAssertion_Value();
1962
1963 /**
1964 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeImpl <em>Node</em>}' class.
1965 * <!-- begin-user-doc -->
1966 * <!-- end-user-doc -->
1967 * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeImpl
1968 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNode()
1969 * @generated
1970 */
1971 EClass NODE = eINSTANCE.getNode();
1972
1973 /**
1974 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl <em>Scope Declaration</em>}' class.
1975 * <!-- begin-user-doc -->
1976 * <!-- end-user-doc -->
1977 * @see org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl
1978 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getScopeDeclaration()
1979 * @generated
1980 */
1981 EClass SCOPE_DECLARATION = eINSTANCE.getScopeDeclaration();
1982
1983 /**
1984 * The meta object literal for the '<em><b>Type Scopes</b></em>' containment reference list feature.
1985 * <!-- begin-user-doc -->
1986 * <!-- end-user-doc -->
1987 * @generated
1988 */
1989 EReference SCOPE_DECLARATION__TYPE_SCOPES = eINSTANCE.getScopeDeclaration_TypeScopes();
1990
1991 /**
1992 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.Statement <em>Statement</em>}' class.
1993 * <!-- begin-user-doc -->
1994 * <!-- end-user-doc -->
1995 * @see org.eclipse.viatra.solver.language.model.problem.Statement
1996 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getStatement()
1997 * @generated
1998 */
1999 EClass STATEMENT = eINSTANCE.getStatement();
2000
2001 /**
2002 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl <em>Type Scope</em>}' class.
2003 * <!-- begin-user-doc -->
2004 * <!-- end-user-doc -->
2005 * @see org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl
2006 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getTypeScope()
2007 * @generated
2008 */
2009 EClass TYPE_SCOPE = eINSTANCE.getTypeScope();
2010
2011 /**
2012 * The meta object literal for the '<em><b>Target Type</b></em>' reference feature.
2013 * <!-- begin-user-doc -->
2014 * <!-- end-user-doc -->
2015 * @generated
2016 */
2017 EReference TYPE_SCOPE__TARGET_TYPE = eINSTANCE.getTypeScope_TargetType();
2018
2019 /**
2020 * The meta object literal for the '<em><b>Increment</b></em>' attribute feature.
2021 * <!-- begin-user-doc -->
2022 * <!-- end-user-doc -->
2023 * @generated
2024 */
2025 EAttribute TYPE_SCOPE__INCREMENT = eINSTANCE.getTypeScope_Increment();
2026
2027 /**
2028 * The meta object literal for the '<em><b>Multiplicity</b></em>' containment reference feature.
2029 * <!-- begin-user-doc -->
2030 * <!-- end-user-doc -->
2031 * @generated
2032 */
2033 EReference TYPE_SCOPE__MULTIPLICITY = eINSTANCE.getTypeScope_Multiplicity();
2034
2035 /**
2036 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.MultiplicityImpl <em>Multiplicity</em>}' class.
2037 * <!-- begin-user-doc -->
2038 * <!-- end-user-doc -->
2039 * @see org.eclipse.viatra.solver.language.model.problem.impl.MultiplicityImpl
2040 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getMultiplicity()
2041 * @generated
2042 */
2043 EClass MULTIPLICITY = eINSTANCE.getMultiplicity();
2044
2045 /**
2046 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl <em>Range Multiplicity</em>}' class.
2047 * <!-- begin-user-doc -->
2048 * <!-- end-user-doc -->
2049 * @see org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl
2050 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRangeMultiplicity()
2051 * @generated
2052 */
2053 EClass RANGE_MULTIPLICITY = eINSTANCE.getRangeMultiplicity();
2054
2055 /**
2056 * The meta object literal for the '<em><b>Lower Bound</b></em>' attribute feature.
2057 * <!-- begin-user-doc -->
2058 * <!-- end-user-doc -->
2059 * @generated
2060 */
2061 EAttribute RANGE_MULTIPLICITY__LOWER_BOUND = eINSTANCE.getRangeMultiplicity_LowerBound();
2062
2063 /**
2064 * The meta object literal for the '<em><b>Upper Bound</b></em>' attribute feature.
2065 * <!-- begin-user-doc -->
2066 * <!-- end-user-doc -->
2067 * @generated
2068 */
2069 EAttribute RANGE_MULTIPLICITY__UPPER_BOUND = eINSTANCE.getRangeMultiplicity_UpperBound();
2070
2071 /**
2072 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl <em>Exact Multiplicity</em>}' class.
2073 * <!-- begin-user-doc -->
2074 * <!-- end-user-doc -->
2075 * @see org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl
2076 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getExactMultiplicity()
2077 * @generated
2078 */
2079 EClass EXACT_MULTIPLICITY = eINSTANCE.getExactMultiplicity();
2080
2081 /**
2082 * The meta object literal for the '<em><b>Exact Value</b></em>' attribute feature.
2083 * <!-- begin-user-doc -->
2084 * <!-- end-user-doc -->
2085 * @generated
2086 */
2087 EAttribute EXACT_MULTIPLICITY__EXACT_VALUE = eINSTANCE.getExactMultiplicity_ExactValue();
2088
2089 /**
2090 * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue <em>Logic Value</em>}' enum.
2091 * <!-- begin-user-doc -->
2092 * <!-- end-user-doc -->
2093 * @see org.eclipse.viatra.solver.language.model.problem.LogicValue
2094 * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLogicValue()
2095 * @generated
2096 */
2097 EEnum LOGIC_VALUE = eINSTANCE.getLogicValue();
2098
2099 }
2100
2101} //ProblemPackage
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java
new file mode 100644
index 00000000..65bcc440
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java
@@ -0,0 +1,69 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Range Multiplicity</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 * <p>
11 * The following features are supported:
12 * </p>
13 * <ul>
14 * <li>{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getLowerBound <em>Lower Bound</em>}</li>
15 * <li>{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getUpperBound <em>Upper Bound</em>}</li>
16 * </ul>
17 *
18 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRangeMultiplicity()
19 * @model
20 * @generated
21 */
22public interface RangeMultiplicity extends Multiplicity {
23 /**
24 * Returns the value of the '<em><b>Lower Bound</b></em>' attribute.
25 * The default value is <code>"0"</code>.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return the value of the '<em>Lower Bound</em>' attribute.
29 * @see #setLowerBound(int)
30 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRangeMultiplicity_LowerBound()
31 * @model default="0"
32 * @generated
33 */
34 int getLowerBound();
35
36 /**
37 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getLowerBound <em>Lower Bound</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @param value the new value of the '<em>Lower Bound</em>' attribute.
41 * @see #getLowerBound()
42 * @generated
43 */
44 void setLowerBound(int value);
45
46 /**
47 * Returns the value of the '<em><b>Upper Bound</b></em>' attribute.
48 * The default value is <code>"-1"</code>.
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @return the value of the '<em>Upper Bound</em>' attribute.
52 * @see #setUpperBound(int)
53 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRangeMultiplicity_UpperBound()
54 * @model default="-1"
55 * @generated
56 */
57 int getUpperBound();
58
59 /**
60 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getUpperBound <em>Upper Bound</em>}' attribute.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @param value the new value of the '<em>Upper Bound</em>' attribute.
64 * @see #getUpperBound()
65 * @generated
66 */
67 void setUpperBound(int value);
68
69} // RangeMultiplicity
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java
new file mode 100644
index 00000000..f07ee7d1
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java
@@ -0,0 +1,113 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Reference Declaration</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 * <p>
11 * The following features are supported:
12 * </p>
13 * <ul>
14 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getReferenceType <em>Reference Type</em>}</li>
15 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getOpposite <em>Opposite</em>}</li>
16 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#isContainment <em>Containment</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getMultiplicity <em>Multiplicity</em>}</li>
18 * </ul>
19 *
20 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration()
21 * @model
22 * @generated
23 */
24public interface ReferenceDeclaration extends Relation {
25 /**
26 * Returns the value of the '<em><b>Reference Type</b></em>' reference.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Reference Type</em>' reference.
30 * @see #setReferenceType(ClassDeclaration)
31 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration_ReferenceType()
32 * @model
33 * @generated
34 */
35 ClassDeclaration getReferenceType();
36
37 /**
38 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getReferenceType <em>Reference Type</em>}' reference.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @param value the new value of the '<em>Reference Type</em>' reference.
42 * @see #getReferenceType()
43 * @generated
44 */
45 void setReferenceType(ClassDeclaration value);
46
47 /**
48 * Returns the value of the '<em><b>Opposite</b></em>' reference.
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @return the value of the '<em>Opposite</em>' reference.
52 * @see #setOpposite(ReferenceDeclaration)
53 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration_Opposite()
54 * @model
55 * @generated
56 */
57 ReferenceDeclaration getOpposite();
58
59 /**
60 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getOpposite <em>Opposite</em>}' reference.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @param value the new value of the '<em>Opposite</em>' reference.
64 * @see #getOpposite()
65 * @generated
66 */
67 void setOpposite(ReferenceDeclaration value);
68
69 /**
70 * Returns the value of the '<em><b>Containment</b></em>' attribute.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @return the value of the '<em>Containment</em>' attribute.
74 * @see #setContainment(boolean)
75 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration_Containment()
76 * @model
77 * @generated
78 */
79 boolean isContainment();
80
81 /**
82 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#isContainment <em>Containment</em>}' attribute.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @param value the new value of the '<em>Containment</em>' attribute.
86 * @see #isContainment()
87 * @generated
88 */
89 void setContainment(boolean value);
90
91 /**
92 * Returns the value of the '<em><b>Multiplicity</b></em>' containment reference.
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @return the value of the '<em>Multiplicity</em>' containment reference.
96 * @see #setMultiplicity(Multiplicity)
97 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration_Multiplicity()
98 * @model containment="true"
99 * @generated
100 */
101 Multiplicity getMultiplicity();
102
103 /**
104 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getMultiplicity <em>Multiplicity</em>}' containment reference.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @param value the new value of the '<em>Multiplicity</em>' containment reference.
108 * @see #getMultiplicity()
109 * @generated
110 */
111 void setMultiplicity(Multiplicity value);
112
113} // ReferenceDeclaration
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java
new file mode 100644
index 00000000..2754e9d0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java
@@ -0,0 +1,16 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Relation</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRelation()
12 * @model abstract="true"
13 * @generated
14 */
15public interface Relation extends NamedElement {
16} // Relation
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java
new file mode 100644
index 00000000..f728589d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java
@@ -0,0 +1,36 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.common.util.EList;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Scope Declaration</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration#getTypeScopes <em>Type Scopes</em>}</li>
17 * </ul>
18 *
19 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getScopeDeclaration()
20 * @model
21 * @generated
22 */
23public interface ScopeDeclaration extends Statement {
24 /**
25 * Returns the value of the '<em><b>Type Scopes</b></em>' containment reference list.
26 * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.TypeScope}.
27 * <!-- begin-user-doc -->
28 * <!-- end-user-doc -->
29 * @return the value of the '<em>Type Scopes</em>' containment reference list.
30 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getScopeDeclaration_TypeScopes()
31 * @model containment="true"
32 * @generated
33 */
34 EList<TypeScope> getTypeScopes();
35
36} // ScopeDeclaration
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java
new file mode 100644
index 00000000..90303639
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java
@@ -0,0 +1,18 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Statement</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 *
13 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getStatement()
14 * @model interface="true" abstract="true"
15 * @generated
16 */
17public interface Statement extends EObject {
18} // Statement
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java
new file mode 100644
index 00000000..76a95dd5
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java
@@ -0,0 +1,92 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5import org.eclipse.emf.ecore.EObject;
6
7/**
8 * <!-- begin-user-doc -->
9 * A representation of the model object '<em><b>Type Scope</b></em>'.
10 * <!-- end-user-doc -->
11 *
12 * <p>
13 * The following features are supported:
14 * </p>
15 * <ul>
16 * <li>{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getTargetType <em>Target Type</em>}</li>
17 * <li>{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#isIncrement <em>Increment</em>}</li>
18 * <li>{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getMultiplicity <em>Multiplicity</em>}</li>
19 * </ul>
20 *
21 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getTypeScope()
22 * @model
23 * @generated
24 */
25public interface TypeScope extends EObject {
26 /**
27 * Returns the value of the '<em><b>Target Type</b></em>' reference.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @return the value of the '<em>Target Type</em>' reference.
31 * @see #setTargetType(ClassDeclaration)
32 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getTypeScope_TargetType()
33 * @model
34 * @generated
35 */
36 ClassDeclaration getTargetType();
37
38 /**
39 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getTargetType <em>Target Type</em>}' reference.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @param value the new value of the '<em>Target Type</em>' reference.
43 * @see #getTargetType()
44 * @generated
45 */
46 void setTargetType(ClassDeclaration value);
47
48 /**
49 * Returns the value of the '<em><b>Increment</b></em>' attribute.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @return the value of the '<em>Increment</em>' attribute.
53 * @see #setIncrement(boolean)
54 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getTypeScope_Increment()
55 * @model
56 * @generated
57 */
58 boolean isIncrement();
59
60 /**
61 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#isIncrement <em>Increment</em>}' attribute.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @param value the new value of the '<em>Increment</em>' attribute.
65 * @see #isIncrement()
66 * @generated
67 */
68 void setIncrement(boolean value);
69
70 /**
71 * Returns the value of the '<em><b>Multiplicity</b></em>' containment reference.
72 * <!-- begin-user-doc -->
73 * <!-- end-user-doc -->
74 * @return the value of the '<em>Multiplicity</em>' containment reference.
75 * @see #setMultiplicity(Multiplicity)
76 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getTypeScope_Multiplicity()
77 * @model containment="true"
78 * @generated
79 */
80 Multiplicity getMultiplicity();
81
82 /**
83 * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getMultiplicity <em>Multiplicity</em>}' containment reference.
84 * <!-- begin-user-doc -->
85 * <!-- end-user-doc -->
86 * @param value the new value of the '<em>Multiplicity</em>' containment reference.
87 * @see #getMultiplicity()
88 * @generated
89 */
90 void setMultiplicity(Multiplicity value);
91
92} // TypeScope
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java
new file mode 100644
index 00000000..26637a35
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java
@@ -0,0 +1,16 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem;
4
5/**
6 * <!-- begin-user-doc -->
7 * A representation of the model object '<em><b>Variable</b></em>'.
8 * <!-- end-user-doc -->
9 *
10 *
11 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getVariable()
12 * @model abstract="true"
13 * @generated
14 */
15public interface Variable extends NamedElement {
16} // Variable
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java
new file mode 100644
index 00000000..5856a276
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java
@@ -0,0 +1,272 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
16
17import org.eclipse.emf.ecore.util.EObjectResolvingEList;
18
19import org.eclipse.viatra.solver.language.model.problem.Assertion;
20import org.eclipse.viatra.solver.language.model.problem.LogicValue;
21import org.eclipse.viatra.solver.language.model.problem.Node;
22import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
23import org.eclipse.viatra.solver.language.model.problem.Relation;
24
25/**
26 * <!-- begin-user-doc -->
27 * An implementation of the model object '<em><b>Assertion</b></em>'.
28 * <!-- end-user-doc -->
29 * <p>
30 * The following features are implemented:
31 * </p>
32 * <ul>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getRelation <em>Relation</em>}</li>
34 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getArguments <em>Arguments</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getValue <em>Value</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class AssertionImpl extends MinimalEObjectImpl.Container implements Assertion {
41 /**
42 * The cached value of the '{@link #getRelation() <em>Relation</em>}' reference.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getRelation()
46 * @generated
47 * @ordered
48 */
49 protected Relation relation;
50
51 /**
52 * The cached value of the '{@link #getArguments() <em>Arguments</em>}' reference list.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getArguments()
56 * @generated
57 * @ordered
58 */
59 protected EList<Node> arguments;
60
61 /**
62 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getValue()
66 * @generated
67 * @ordered
68 */
69 protected static final LogicValue VALUE_EDEFAULT = LogicValue.TRUE;
70
71 /**
72 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getValue()
76 * @generated
77 * @ordered
78 */
79 protected LogicValue value = VALUE_EDEFAULT;
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 protected AssertionImpl() {
87 super();
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 protected EClass eStaticClass() {
97 return ProblemPackage.Literals.ASSERTION;
98 }
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 public Relation getRelation() {
106 if (relation != null && relation.eIsProxy()) {
107 InternalEObject oldRelation = (InternalEObject) relation;
108 relation = (Relation) eResolveProxy(oldRelation);
109 if (relation != oldRelation) {
110 if (eNotificationRequired())
111 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ASSERTION__RELATION,
112 oldRelation, relation));
113 }
114 }
115 return relation;
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 public Relation basicGetRelation() {
124 return relation;
125 }
126
127 /**
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 public void setRelation(Relation newRelation) {
133 Relation oldRelation = relation;
134 relation = newRelation;
135 if (eNotificationRequired())
136 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ASSERTION__RELATION, oldRelation,
137 relation));
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 public EList<Node> getArguments() {
146 if (arguments == null) {
147 arguments = new EObjectResolvingEList<Node>(Node.class, this, ProblemPackage.ASSERTION__ARGUMENTS);
148 }
149 return arguments;
150 }
151
152 /**
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 */
157 public LogicValue getValue() {
158 return value;
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 public void setValue(LogicValue newValue) {
167 LogicValue oldValue = value;
168 value = newValue == null ? VALUE_EDEFAULT : newValue;
169 if (eNotificationRequired())
170 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ASSERTION__VALUE, oldValue, value));
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public Object eGet(int featureID, boolean resolve, boolean coreType) {
180 switch (featureID) {
181 case ProblemPackage.ASSERTION__RELATION:
182 if (resolve)
183 return getRelation();
184 return basicGetRelation();
185 case ProblemPackage.ASSERTION__ARGUMENTS:
186 return getArguments();
187 case ProblemPackage.ASSERTION__VALUE:
188 return getValue();
189 }
190 return super.eGet(featureID, resolve, coreType);
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 @SuppressWarnings("unchecked")
199 @Override
200 public void eSet(int featureID, Object newValue) {
201 switch (featureID) {
202 case ProblemPackage.ASSERTION__RELATION:
203 setRelation((Relation) newValue);
204 return;
205 case ProblemPackage.ASSERTION__ARGUMENTS:
206 getArguments().clear();
207 getArguments().addAll((Collection<? extends Node>) newValue);
208 return;
209 case ProblemPackage.ASSERTION__VALUE:
210 setValue((LogicValue) newValue);
211 return;
212 }
213 super.eSet(featureID, newValue);
214 }
215
216 /**
217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc -->
219 * @generated
220 */
221 @Override
222 public void eUnset(int featureID) {
223 switch (featureID) {
224 case ProblemPackage.ASSERTION__RELATION:
225 setRelation((Relation) null);
226 return;
227 case ProblemPackage.ASSERTION__ARGUMENTS:
228 getArguments().clear();
229 return;
230 case ProblemPackage.ASSERTION__VALUE:
231 setValue(VALUE_EDEFAULT);
232 return;
233 }
234 super.eUnset(featureID);
235 }
236
237 /**
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 */
242 @Override
243 public boolean eIsSet(int featureID) {
244 switch (featureID) {
245 case ProblemPackage.ASSERTION__RELATION:
246 return relation != null;
247 case ProblemPackage.ASSERTION__ARGUMENTS:
248 return arguments != null && !arguments.isEmpty();
249 case ProblemPackage.ASSERTION__VALUE:
250 return value != VALUE_EDEFAULT;
251 }
252 return super.eIsSet(featureID);
253 }
254
255 /**
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 */
260 @Override
261 public String toString() {
262 if (eIsProxy())
263 return super.toString();
264
265 StringBuilder result = new StringBuilder(super.toString());
266 result.append(" (value: ");
267 result.append(value);
268 result.append(')');
269 return result.toString();
270 }
271
272} //AssertionImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java
new file mode 100644
index 00000000..4571db14
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java
@@ -0,0 +1,271 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15
16import org.eclipse.emf.ecore.util.EObjectResolvingEList;
17
18import org.eclipse.viatra.solver.language.model.problem.Atom;
19import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
20import org.eclipse.viatra.solver.language.model.problem.Relation;
21import org.eclipse.viatra.solver.language.model.problem.Variable;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Atom</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#getRelation <em>Relation</em>}</li>
32 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#getArguments <em>Arguments</em>}</li>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#isTransitiveClosure <em>Transitive Closure</em>}</li>
34 * </ul>
35 *
36 * @generated
37 */
38public class AtomImpl extends LiteralImpl implements Atom {
39 /**
40 * The cached value of the '{@link #getRelation() <em>Relation</em>}' reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getRelation()
44 * @generated
45 * @ordered
46 */
47 protected Relation relation;
48
49 /**
50 * The cached value of the '{@link #getArguments() <em>Arguments</em>}' reference list.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #getArguments()
54 * @generated
55 * @ordered
56 */
57 protected EList<Variable> arguments;
58
59 /**
60 * The default value of the '{@link #isTransitiveClosure() <em>Transitive Closure</em>}' attribute.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see #isTransitiveClosure()
64 * @generated
65 * @ordered
66 */
67 protected static final boolean TRANSITIVE_CLOSURE_EDEFAULT = false;
68
69 /**
70 * The cached value of the '{@link #isTransitiveClosure() <em>Transitive Closure</em>}' attribute.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @see #isTransitiveClosure()
74 * @generated
75 * @ordered
76 */
77 protected boolean transitiveClosure = TRANSITIVE_CLOSURE_EDEFAULT;
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 protected AtomImpl() {
85 super();
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 @Override
94 protected EClass eStaticClass() {
95 return ProblemPackage.Literals.ATOM;
96 }
97
98 /**
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 public Relation getRelation() {
104 if (relation != null && relation.eIsProxy()) {
105 InternalEObject oldRelation = (InternalEObject) relation;
106 relation = (Relation) eResolveProxy(oldRelation);
107 if (relation != oldRelation) {
108 if (eNotificationRequired())
109 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ATOM__RELATION,
110 oldRelation, relation));
111 }
112 }
113 return relation;
114 }
115
116 /**
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 */
121 public Relation basicGetRelation() {
122 return relation;
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 public void setRelation(Relation newRelation) {
131 Relation oldRelation = relation;
132 relation = newRelation;
133 if (eNotificationRequired())
134 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ATOM__RELATION, oldRelation,
135 relation));
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 public EList<Variable> getArguments() {
144 if (arguments == null) {
145 arguments = new EObjectResolvingEList<Variable>(Variable.class, this, ProblemPackage.ATOM__ARGUMENTS);
146 }
147 return arguments;
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 public boolean isTransitiveClosure() {
156 return transitiveClosure;
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 public void setTransitiveClosure(boolean newTransitiveClosure) {
165 boolean oldTransitiveClosure = transitiveClosure;
166 transitiveClosure = newTransitiveClosure;
167 if (eNotificationRequired())
168 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ATOM__TRANSITIVE_CLOSURE,
169 oldTransitiveClosure, transitiveClosure));
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
178 public Object eGet(int featureID, boolean resolve, boolean coreType) {
179 switch (featureID) {
180 case ProblemPackage.ATOM__RELATION:
181 if (resolve)
182 return getRelation();
183 return basicGetRelation();
184 case ProblemPackage.ATOM__ARGUMENTS:
185 return getArguments();
186 case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
187 return isTransitiveClosure();
188 }
189 return super.eGet(featureID, resolve, coreType);
190 }
191
192 /**
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @generated
196 */
197 @SuppressWarnings("unchecked")
198 @Override
199 public void eSet(int featureID, Object newValue) {
200 switch (featureID) {
201 case ProblemPackage.ATOM__RELATION:
202 setRelation((Relation) newValue);
203 return;
204 case ProblemPackage.ATOM__ARGUMENTS:
205 getArguments().clear();
206 getArguments().addAll((Collection<? extends Variable>) newValue);
207 return;
208 case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
209 setTransitiveClosure((Boolean) newValue);
210 return;
211 }
212 super.eSet(featureID, newValue);
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 @Override
221 public void eUnset(int featureID) {
222 switch (featureID) {
223 case ProblemPackage.ATOM__RELATION:
224 setRelation((Relation) null);
225 return;
226 case ProblemPackage.ATOM__ARGUMENTS:
227 getArguments().clear();
228 return;
229 case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
230 setTransitiveClosure(TRANSITIVE_CLOSURE_EDEFAULT);
231 return;
232 }
233 super.eUnset(featureID);
234 }
235
236 /**
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @generated
240 */
241 @Override
242 public boolean eIsSet(int featureID) {
243 switch (featureID) {
244 case ProblemPackage.ATOM__RELATION:
245 return relation != null;
246 case ProblemPackage.ATOM__ARGUMENTS:
247 return arguments != null && !arguments.isEmpty();
248 case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
249 return transitiveClosure != TRANSITIVE_CLOSURE_EDEFAULT;
250 }
251 return super.eIsSet(featureID);
252 }
253
254 /**
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @generated
258 */
259 @Override
260 public String toString() {
261 if (eIsProxy())
262 return super.toString();
263
264 StringBuilder result = new StringBuilder(super.toString());
265 result.append(" (transitiveClosure: ");
266 result.append(transitiveClosure);
267 result.append(')');
268 return result.toString();
269 }
270
271} //AtomImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java
new file mode 100644
index 00000000..e1d07071
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java
@@ -0,0 +1,260 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16
17import org.eclipse.emf.ecore.util.EObjectContainmentEList;
18import org.eclipse.emf.ecore.util.EObjectResolvingEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
22import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
23import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
24
25/**
26 * <!-- begin-user-doc -->
27 * An implementation of the model object '<em><b>Class Declaration</b></em>'.
28 * <!-- end-user-doc -->
29 * <p>
30 * The following features are implemented:
31 * </p>
32 * <ul>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#isAbstract <em>Abstract</em>}</li>
34 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#getSuperTypes <em>Super Types</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#getReferenceDeclarations <em>Reference Declarations</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class ClassDeclarationImpl extends RelationImpl implements ClassDeclaration {
41 /**
42 * The default value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #isAbstract()
46 * @generated
47 * @ordered
48 */
49 protected static final boolean ABSTRACT_EDEFAULT = false;
50
51 /**
52 * The cached value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #isAbstract()
56 * @generated
57 * @ordered
58 */
59 protected boolean abstract_ = ABSTRACT_EDEFAULT;
60
61 /**
62 * The cached value of the '{@link #getSuperTypes() <em>Super Types</em>}' reference list.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getSuperTypes()
66 * @generated
67 * @ordered
68 */
69 protected EList<ClassDeclaration> superTypes;
70
71 /**
72 * The cached value of the '{@link #getReferenceDeclarations() <em>Reference Declarations</em>}' containment reference list.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getReferenceDeclarations()
76 * @generated
77 * @ordered
78 */
79 protected EList<ReferenceDeclaration> referenceDeclarations;
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 protected ClassDeclarationImpl() {
87 super();
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 protected EClass eStaticClass() {
97 return ProblemPackage.Literals.CLASS_DECLARATION;
98 }
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 public boolean isAbstract() {
106 return abstract_;
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 public void setAbstract(boolean newAbstract) {
115 boolean oldAbstract = abstract_;
116 abstract_ = newAbstract;
117 if (eNotificationRequired())
118 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.CLASS_DECLARATION__ABSTRACT,
119 oldAbstract, abstract_));
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public EList<ClassDeclaration> getSuperTypes() {
128 if (superTypes == null) {
129 superTypes = new EObjectResolvingEList<ClassDeclaration>(ClassDeclaration.class, this,
130 ProblemPackage.CLASS_DECLARATION__SUPER_TYPES);
131 }
132 return superTypes;
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 public EList<ReferenceDeclaration> getReferenceDeclarations() {
141 if (referenceDeclarations == null) {
142 referenceDeclarations = new EObjectContainmentEList<ReferenceDeclaration>(ReferenceDeclaration.class, this,
143 ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS);
144 }
145 return referenceDeclarations;
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
155 switch (featureID) {
156 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
157 return ((InternalEList<?>) getReferenceDeclarations()).basicRemove(otherEnd, msgs);
158 }
159 return super.eInverseRemove(otherEnd, featureID, msgs);
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 @Override
168 public Object eGet(int featureID, boolean resolve, boolean coreType) {
169 switch (featureID) {
170 case ProblemPackage.CLASS_DECLARATION__ABSTRACT:
171 return isAbstract();
172 case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES:
173 return getSuperTypes();
174 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
175 return getReferenceDeclarations();
176 }
177 return super.eGet(featureID, resolve, coreType);
178 }
179
180 /**
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 @SuppressWarnings("unchecked")
186 @Override
187 public void eSet(int featureID, Object newValue) {
188 switch (featureID) {
189 case ProblemPackage.CLASS_DECLARATION__ABSTRACT:
190 setAbstract((Boolean) newValue);
191 return;
192 case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES:
193 getSuperTypes().clear();
194 getSuperTypes().addAll((Collection<? extends ClassDeclaration>) newValue);
195 return;
196 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
197 getReferenceDeclarations().clear();
198 getReferenceDeclarations().addAll((Collection<? extends ReferenceDeclaration>) newValue);
199 return;
200 }
201 super.eSet(featureID, newValue);
202 }
203
204 /**
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @generated
208 */
209 @Override
210 public void eUnset(int featureID) {
211 switch (featureID) {
212 case ProblemPackage.CLASS_DECLARATION__ABSTRACT:
213 setAbstract(ABSTRACT_EDEFAULT);
214 return;
215 case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES:
216 getSuperTypes().clear();
217 return;
218 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
219 getReferenceDeclarations().clear();
220 return;
221 }
222 super.eUnset(featureID);
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 @Override
231 public boolean eIsSet(int featureID) {
232 switch (featureID) {
233 case ProblemPackage.CLASS_DECLARATION__ABSTRACT:
234 return abstract_ != ABSTRACT_EDEFAULT;
235 case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES:
236 return superTypes != null && !superTypes.isEmpty();
237 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
238 return referenceDeclarations != null && !referenceDeclarations.isEmpty();
239 }
240 return super.eIsSet(featureID);
241 }
242
243 /**
244 * <!-- begin-user-doc -->
245 * <!-- end-user-doc -->
246 * @generated
247 */
248 @Override
249 public String toString() {
250 if (eIsProxy())
251 return super.toString();
252
253 StringBuilder result = new StringBuilder(super.toString());
254 result.append(" (abstract: ");
255 result.append(abstract_);
256 result.append(')');
257 return result.toString();
258 }
259
260} //ClassDeclarationImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java
new file mode 100644
index 00000000..3bdf887f
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java
@@ -0,0 +1,189 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
15
16import org.eclipse.emf.ecore.util.EObjectContainmentEList;
17import org.eclipse.emf.ecore.util.InternalEList;
18
19import org.eclipse.viatra.solver.language.model.problem.Conjunction;
20import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
21import org.eclipse.viatra.solver.language.model.problem.Literal;
22import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
23
24/**
25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Conjunction</b></em>'.
27 * <!-- end-user-doc -->
28 * <p>
29 * The following features are implemented:
30 * </p>
31 * <ul>
32 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl#getImplicitVariables <em>Implicit Variables</em>}</li>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl#getLiterals <em>Literals</em>}</li>
34 * </ul>
35 *
36 * @generated
37 */
38public class ConjunctionImpl extends MinimalEObjectImpl.Container implements Conjunction {
39 /**
40 * The cached value of the '{@link #getImplicitVariables() <em>Implicit Variables</em>}' containment reference list.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getImplicitVariables()
44 * @generated
45 * @ordered
46 */
47 protected EList<ImplicitVariable> implicitVariables;
48 /**
49 * The cached value of the '{@link #getLiterals() <em>Literals</em>}' containment reference list.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @see #getLiterals()
53 * @generated
54 * @ordered
55 */
56 protected EList<Literal> literals;
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 protected ConjunctionImpl() {
64 super();
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 protected EClass eStaticClass() {
74 return ProblemPackage.Literals.CONJUNCTION;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public EList<ImplicitVariable> getImplicitVariables() {
83 if (implicitVariables == null) {
84 implicitVariables = new EObjectContainmentEList<ImplicitVariable>(ImplicitVariable.class, this,
85 ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES);
86 }
87 return implicitVariables;
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 public EList<Literal> getLiterals() {
96 if (literals == null) {
97 literals = new EObjectContainmentEList<Literal>(Literal.class, this, ProblemPackage.CONJUNCTION__LITERALS);
98 }
99 return literals;
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 @Override
108 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
109 switch (featureID) {
110 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
111 return ((InternalEList<?>) getImplicitVariables()).basicRemove(otherEnd, msgs);
112 case ProblemPackage.CONJUNCTION__LITERALS:
113 return ((InternalEList<?>) getLiterals()).basicRemove(otherEnd, msgs);
114 }
115 return super.eInverseRemove(otherEnd, featureID, msgs);
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public Object eGet(int featureID, boolean resolve, boolean coreType) {
125 switch (featureID) {
126 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
127 return getImplicitVariables();
128 case ProblemPackage.CONJUNCTION__LITERALS:
129 return getLiterals();
130 }
131 return super.eGet(featureID, resolve, coreType);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @SuppressWarnings("unchecked")
140 @Override
141 public void eSet(int featureID, Object newValue) {
142 switch (featureID) {
143 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
144 getImplicitVariables().clear();
145 getImplicitVariables().addAll((Collection<? extends ImplicitVariable>) newValue);
146 return;
147 case ProblemPackage.CONJUNCTION__LITERALS:
148 getLiterals().clear();
149 getLiterals().addAll((Collection<? extends Literal>) newValue);
150 return;
151 }
152 super.eSet(featureID, newValue);
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 @Override
161 public void eUnset(int featureID) {
162 switch (featureID) {
163 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
164 getImplicitVariables().clear();
165 return;
166 case ProblemPackage.CONJUNCTION__LITERALS:
167 getLiterals().clear();
168 return;
169 }
170 super.eUnset(featureID);
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public boolean eIsSet(int featureID) {
180 switch (featureID) {
181 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
182 return implicitVariables != null && !implicitVariables.isEmpty();
183 case ProblemPackage.CONJUNCTION__LITERALS:
184 return literals != null && !literals.isEmpty();
185 }
186 return super.eIsSet(featureID);
187 }
188
189} //ConjunctionImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java
new file mode 100644
index 00000000..b3896ac2
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10
11import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity;
12import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Exact Multiplicity</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl#getExactValue <em>Exact Value</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class ExactMultiplicityImpl extends MultiplicityImpl implements ExactMultiplicity {
28 /**
29 * The default value of the '{@link #getExactValue() <em>Exact Value</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #getExactValue()
33 * @generated
34 * @ordered
35 */
36 protected static final int EXACT_VALUE_EDEFAULT = 1;
37
38 /**
39 * The cached value of the '{@link #getExactValue() <em>Exact Value</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #getExactValue()
43 * @generated
44 * @ordered
45 */
46 protected int exactValue = EXACT_VALUE_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected ExactMultiplicityImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return ProblemPackage.Literals.EXACT_MULTIPLICITY;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 public int getExactValue() {
73 return exactValue;
74 }
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 public void setExactValue(int newExactValue) {
82 int oldExactValue = exactValue;
83 exactValue = newExactValue;
84 if (eNotificationRequired())
85 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE,
86 oldExactValue, exactValue));
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public Object eGet(int featureID, boolean resolve, boolean coreType) {
96 switch (featureID) {
97 case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE:
98 return getExactValue();
99 }
100 return super.eGet(featureID, resolve, coreType);
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void eSet(int featureID, Object newValue) {
110 switch (featureID) {
111 case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE:
112 setExactValue((Integer) newValue);
113 return;
114 }
115 super.eSet(featureID, newValue);
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public void eUnset(int featureID) {
125 switch (featureID) {
126 case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE:
127 setExactValue(EXACT_VALUE_EDEFAULT);
128 return;
129 }
130 super.eUnset(featureID);
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 @Override
139 public boolean eIsSet(int featureID) {
140 switch (featureID) {
141 case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE:
142 return exactValue != EXACT_VALUE_EDEFAULT;
143 }
144 return super.eIsSet(featureID);
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public String toString() {
154 if (eIsProxy())
155 return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (exactValue: ");
159 result.append(exactValue);
160 result.append(')');
161 return result.toString();
162 }
163
164} //ExactMultiplicityImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java
new file mode 100644
index 00000000..03a31a16
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
8import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Implicit Variable</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class ImplicitVariableImpl extends VariableImpl implements ImplicitVariable {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected ImplicitVariableImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return ProblemPackage.Literals.IMPLICIT_VARIABLE;
35 }
36
37} //ImplicitVariableImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java
new file mode 100644
index 00000000..c48bdb0b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java
@@ -0,0 +1,39 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
8
9import org.eclipse.viatra.solver.language.model.problem.Literal;
10import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
11
12/**
13 * <!-- begin-user-doc -->
14 * An implementation of the model object '<em><b>Literal</b></em>'.
15 * <!-- end-user-doc -->
16 *
17 * @generated
18 */
19public abstract class LiteralImpl extends MinimalEObjectImpl.Container implements Literal {
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected LiteralImpl() {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass() {
36 return ProblemPackage.Literals.LITERAL;
37 }
38
39} //LiteralImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java
new file mode 100644
index 00000000..8d769eb0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java
@@ -0,0 +1,39 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
8
9import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
10import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
11
12/**
13 * <!-- begin-user-doc -->
14 * An implementation of the model object '<em><b>Multiplicity</b></em>'.
15 * <!-- end-user-doc -->
16 *
17 * @generated
18 */
19public abstract class MultiplicityImpl extends MinimalEObjectImpl.Container implements Multiplicity {
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected MultiplicityImpl() {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass() {
36 return ProblemPackage.Literals.MULTIPLICITY;
37 }
38
39} //MultiplicityImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java
new file mode 100644
index 00000000..b414013b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
11
12import org.eclipse.viatra.solver.language.model.problem.NamedElement;
13import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Named Element</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl#getName <em>Name</em>}</li>
24 * </ul>
25 *
26 * @generated
27 */
28public abstract class NamedElementImpl extends MinimalEObjectImpl.Container implements NamedElement {
29 /**
30 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @see #getName()
34 * @generated
35 * @ordered
36 */
37 protected static final String NAME_EDEFAULT = null;
38
39 /**
40 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getName()
44 * @generated
45 * @ordered
46 */
47 protected String name = NAME_EDEFAULT;
48
49 /**
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @generated
53 */
54 protected NamedElementImpl() {
55 super();
56 }
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 @Override
64 protected EClass eStaticClass() {
65 return ProblemPackage.Literals.NAMED_ELEMENT;
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 public String getName() {
74 return name;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public void setName(String newName) {
83 String oldName = name;
84 name = newName;
85 if (eNotificationRequired())
86 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NAMED_ELEMENT__NAME, oldName, name));
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public Object eGet(int featureID, boolean resolve, boolean coreType) {
96 switch (featureID) {
97 case ProblemPackage.NAMED_ELEMENT__NAME:
98 return getName();
99 }
100 return super.eGet(featureID, resolve, coreType);
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void eSet(int featureID, Object newValue) {
110 switch (featureID) {
111 case ProblemPackage.NAMED_ELEMENT__NAME:
112 setName((String) newValue);
113 return;
114 }
115 super.eSet(featureID, newValue);
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public void eUnset(int featureID) {
125 switch (featureID) {
126 case ProblemPackage.NAMED_ELEMENT__NAME:
127 setName(NAME_EDEFAULT);
128 return;
129 }
130 super.eUnset(featureID);
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 @Override
139 public boolean eIsSet(int featureID) {
140 switch (featureID) {
141 case ProblemPackage.NAMED_ELEMENT__NAME:
142 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
143 }
144 return super.eIsSet(featureID);
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public String toString() {
154 if (eIsProxy())
155 return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (name: ");
159 result.append(name);
160 result.append(')');
161 return result.toString();
162 }
163
164} //NamedElementImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java
new file mode 100644
index 00000000..5295406b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java
@@ -0,0 +1,228 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import org.eclipse.viatra.solver.language.model.problem.Atom;
22import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
23import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
24import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Negative Literal</b></em>'.
29 * <!-- end-user-doc -->
30 * <p>
31 * The following features are implemented:
32 * </p>
33 * <ul>
34 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl#getImplicitVariables <em>Implicit Variables</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl#getAtom <em>Atom</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class NegativeLiteralImpl extends MinimalEObjectImpl.Container implements NegativeLiteral {
41 /**
42 * The cached value of the '{@link #getImplicitVariables() <em>Implicit Variables</em>}' containment reference list.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getImplicitVariables()
46 * @generated
47 * @ordered
48 */
49 protected EList<ImplicitVariable> implicitVariables;
50 /**
51 * The cached value of the '{@link #getAtom() <em>Atom</em>}' containment reference.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #getAtom()
55 * @generated
56 * @ordered
57 */
58 protected Atom atom;
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 protected NegativeLiteralImpl() {
66 super();
67 }
68
69 /**
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @generated
73 */
74 @Override
75 protected EClass eStaticClass() {
76 return ProblemPackage.Literals.NEGATIVE_LITERAL;
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 public EList<ImplicitVariable> getImplicitVariables() {
85 if (implicitVariables == null) {
86 implicitVariables = new EObjectContainmentEList<ImplicitVariable>(ImplicitVariable.class, this,
87 ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES);
88 }
89 return implicitVariables;
90 }
91
92 /**
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @generated
96 */
97 public Atom getAtom() {
98 return atom;
99 }
100
101 /**
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @generated
105 */
106 public NotificationChain basicSetAtom(Atom newAtom, NotificationChain msgs) {
107 Atom oldAtom = atom;
108 atom = newAtom;
109 if (eNotificationRequired()) {
110 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
111 ProblemPackage.NEGATIVE_LITERAL__ATOM, oldAtom, newAtom);
112 if (msgs == null)
113 msgs = notification;
114 else
115 msgs.add(notification);
116 }
117 return msgs;
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 public void setAtom(Atom newAtom) {
126 if (newAtom != atom) {
127 NotificationChain msgs = null;
128 if (atom != null)
129 msgs = ((InternalEObject) atom).eInverseRemove(this,
130 EOPPOSITE_FEATURE_BASE - ProblemPackage.NEGATIVE_LITERAL__ATOM, null, msgs);
131 if (newAtom != null)
132 msgs = ((InternalEObject) newAtom).eInverseAdd(this,
133 EOPPOSITE_FEATURE_BASE - ProblemPackage.NEGATIVE_LITERAL__ATOM, null, msgs);
134 msgs = basicSetAtom(newAtom, msgs);
135 if (msgs != null)
136 msgs.dispatch();
137 } else if (eNotificationRequired())
138 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NEGATIVE_LITERAL__ATOM, newAtom,
139 newAtom));
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
149 switch (featureID) {
150 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
151 return ((InternalEList<?>) getImplicitVariables()).basicRemove(otherEnd, msgs);
152 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
153 return basicSetAtom(null, msgs);
154 }
155 return super.eInverseRemove(otherEnd, featureID, msgs);
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 @Override
164 public Object eGet(int featureID, boolean resolve, boolean coreType) {
165 switch (featureID) {
166 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
167 return getImplicitVariables();
168 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
169 return getAtom();
170 }
171 return super.eGet(featureID, resolve, coreType);
172 }
173
174 /**
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @generated
178 */
179 @SuppressWarnings("unchecked")
180 @Override
181 public void eSet(int featureID, Object newValue) {
182 switch (featureID) {
183 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
184 getImplicitVariables().clear();
185 getImplicitVariables().addAll((Collection<? extends ImplicitVariable>) newValue);
186 return;
187 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
188 setAtom((Atom) newValue);
189 return;
190 }
191 super.eSet(featureID, newValue);
192 }
193
194 /**
195 * <!-- begin-user-doc -->
196 * <!-- end-user-doc -->
197 * @generated
198 */
199 @Override
200 public void eUnset(int featureID) {
201 switch (featureID) {
202 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
203 getImplicitVariables().clear();
204 return;
205 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
206 setAtom((Atom) null);
207 return;
208 }
209 super.eUnset(featureID);
210 }
211
212 /**
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @generated
216 */
217 @Override
218 public boolean eIsSet(int featureID) {
219 switch (featureID) {
220 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
221 return implicitVariables != null && !implicitVariables.isEmpty();
222 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
223 return atom != null;
224 }
225 return super.eIsSet(featureID);
226 }
227
228} //NegativeLiteralImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java
new file mode 100644
index 00000000..23b85a9c
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.viatra.solver.language.model.problem.Node;
8import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Node</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class NodeImpl extends NamedElementImpl implements Node {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected NodeImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return ProblemPackage.Literals.NODE;
35 }
36
37} //NodeImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java
new file mode 100644
index 00000000..cfbf25b0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java
@@ -0,0 +1,159 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.InternalEObject;
9
10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11
12import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
13import org.eclipse.viatra.solver.language.model.problem.Parameter;
14import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model object '<em><b>Parameter</b></em>'.
19 * <!-- end-user-doc -->
20 * <p>
21 * The following features are implemented:
22 * </p>
23 * <ul>
24 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl#getParameterType <em>Parameter Type</em>}</li>
25 * </ul>
26 *
27 * @generated
28 */
29public class ParameterImpl extends VariableImpl implements Parameter {
30 /**
31 * The cached value of the '{@link #getParameterType() <em>Parameter Type</em>}' reference.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @see #getParameterType()
35 * @generated
36 * @ordered
37 */
38 protected ClassDeclaration parameterType;
39
40 /**
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @generated
44 */
45 protected ParameterImpl() {
46 super();
47 }
48
49 /**
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @generated
53 */
54 @Override
55 protected EClass eStaticClass() {
56 return ProblemPackage.Literals.PARAMETER;
57 }
58
59 /**
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @generated
63 */
64 public ClassDeclaration getParameterType() {
65 if (parameterType != null && parameterType.eIsProxy()) {
66 InternalEObject oldParameterType = (InternalEObject) parameterType;
67 parameterType = (ClassDeclaration) eResolveProxy(oldParameterType);
68 if (parameterType != oldParameterType) {
69 if (eNotificationRequired())
70 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.PARAMETER__PARAMETER_TYPE,
71 oldParameterType, parameterType));
72 }
73 }
74 return parameterType;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public ClassDeclaration basicGetParameterType() {
83 return parameterType;
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 public void setParameterType(ClassDeclaration newParameterType) {
92 ClassDeclaration oldParameterType = parameterType;
93 parameterType = newParameterType;
94 if (eNotificationRequired())
95 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.PARAMETER__PARAMETER_TYPE,
96 oldParameterType, parameterType));
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public Object eGet(int featureID, boolean resolve, boolean coreType) {
106 switch (featureID) {
107 case ProblemPackage.PARAMETER__PARAMETER_TYPE:
108 if (resolve)
109 return getParameterType();
110 return basicGetParameterType();
111 }
112 return super.eGet(featureID, resolve, coreType);
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 @Override
121 public void eSet(int featureID, Object newValue) {
122 switch (featureID) {
123 case ProblemPackage.PARAMETER__PARAMETER_TYPE:
124 setParameterType((ClassDeclaration) newValue);
125 return;
126 }
127 super.eSet(featureID, newValue);
128 }
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 @Override
136 public void eUnset(int featureID) {
137 switch (featureID) {
138 case ProblemPackage.PARAMETER__PARAMETER_TYPE:
139 setParameterType((ClassDeclaration) null);
140 return;
141 }
142 super.eUnset(featureID);
143 }
144
145 /**
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 */
150 @Override
151 public boolean eIsSet(int featureID) {
152 switch (featureID) {
153 case ProblemPackage.PARAMETER__PARAMETER_TYPE:
154 return parameterType != null;
155 }
156 return super.eIsSet(featureID);
157 }
158
159} //ParameterImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java
new file mode 100644
index 00000000..968b6de1
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java
@@ -0,0 +1,262 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16
17import org.eclipse.emf.ecore.util.EObjectContainmentEList;
18import org.eclipse.emf.ecore.util.InternalEList;
19
20import org.eclipse.viatra.solver.language.model.problem.Conjunction;
21import org.eclipse.viatra.solver.language.model.problem.Parameter;
22import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
23import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
24
25/**
26 * <!-- begin-user-doc -->
27 * An implementation of the model object '<em><b>Predicate Definition</b></em>'.
28 * <!-- end-user-doc -->
29 * <p>
30 * The following features are implemented:
31 * </p>
32 * <ul>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl#isError <em>Error</em>}</li>
34 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl#getParameters <em>Parameters</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl#getBodies <em>Bodies</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class PredicateDefinitionImpl extends RelationImpl implements PredicateDefinition {
41 /**
42 * The default value of the '{@link #isError() <em>Error</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #isError()
46 * @generated
47 * @ordered
48 */
49 protected static final boolean ERROR_EDEFAULT = false;
50
51 /**
52 * The cached value of the '{@link #isError() <em>Error</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #isError()
56 * @generated
57 * @ordered
58 */
59 protected boolean error = ERROR_EDEFAULT;
60
61 /**
62 * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getParameters()
66 * @generated
67 * @ordered
68 */
69 protected EList<Parameter> parameters;
70
71 /**
72 * The cached value of the '{@link #getBodies() <em>Bodies</em>}' containment reference list.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getBodies()
76 * @generated
77 * @ordered
78 */
79 protected EList<Conjunction> bodies;
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 protected PredicateDefinitionImpl() {
87 super();
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 protected EClass eStaticClass() {
97 return ProblemPackage.Literals.PREDICATE_DEFINITION;
98 }
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 public boolean isError() {
106 return error;
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 public void setError(boolean newError) {
115 boolean oldError = error;
116 error = newError;
117 if (eNotificationRequired())
118 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.PREDICATE_DEFINITION__ERROR, oldError,
119 error));
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public EList<Parameter> getParameters() {
128 if (parameters == null) {
129 parameters = new EObjectContainmentEList<Parameter>(Parameter.class, this,
130 ProblemPackage.PREDICATE_DEFINITION__PARAMETERS);
131 }
132 return parameters;
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 public EList<Conjunction> getBodies() {
141 if (bodies == null) {
142 bodies = new EObjectContainmentEList<Conjunction>(Conjunction.class, this,
143 ProblemPackage.PREDICATE_DEFINITION__BODIES);
144 }
145 return bodies;
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
155 switch (featureID) {
156 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
157 return ((InternalEList<?>) getParameters()).basicRemove(otherEnd, msgs);
158 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
159 return ((InternalEList<?>) getBodies()).basicRemove(otherEnd, msgs);
160 }
161 return super.eInverseRemove(otherEnd, featureID, msgs);
162 }
163
164 /**
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 @Override
170 public Object eGet(int featureID, boolean resolve, boolean coreType) {
171 switch (featureID) {
172 case ProblemPackage.PREDICATE_DEFINITION__ERROR:
173 return isError();
174 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
175 return getParameters();
176 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
177 return getBodies();
178 }
179 return super.eGet(featureID, resolve, coreType);
180 }
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 @SuppressWarnings("unchecked")
188 @Override
189 public void eSet(int featureID, Object newValue) {
190 switch (featureID) {
191 case ProblemPackage.PREDICATE_DEFINITION__ERROR:
192 setError((Boolean) newValue);
193 return;
194 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
195 getParameters().clear();
196 getParameters().addAll((Collection<? extends Parameter>) newValue);
197 return;
198 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
199 getBodies().clear();
200 getBodies().addAll((Collection<? extends Conjunction>) newValue);
201 return;
202 }
203 super.eSet(featureID, newValue);
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 @Override
212 public void eUnset(int featureID) {
213 switch (featureID) {
214 case ProblemPackage.PREDICATE_DEFINITION__ERROR:
215 setError(ERROR_EDEFAULT);
216 return;
217 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
218 getParameters().clear();
219 return;
220 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
221 getBodies().clear();
222 return;
223 }
224 super.eUnset(featureID);
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 @Override
233 public boolean eIsSet(int featureID) {
234 switch (featureID) {
235 case ProblemPackage.PREDICATE_DEFINITION__ERROR:
236 return error != ERROR_EDEFAULT;
237 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
238 return parameters != null && !parameters.isEmpty();
239 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
240 return bodies != null && !bodies.isEmpty();
241 }
242 return super.eIsSet(featureID);
243 }
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 @Override
251 public String toString() {
252 if (eIsProxy())
253 return super.toString();
254
255 StringBuilder result = new StringBuilder(super.toString());
256 result.append(" (error: ");
257 result.append(error);
258 result.append(')');
259 return result.toString();
260 }
261
262} //PredicateDefinitionImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java
new file mode 100644
index 00000000..563f8b05
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java
@@ -0,0 +1,317 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6import org.eclipse.emf.ecore.EDataType;
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage;
9
10import org.eclipse.emf.ecore.impl.EFactoryImpl;
11
12import org.eclipse.emf.ecore.plugin.EcorePlugin;
13
14import org.eclipse.viatra.solver.language.model.problem.*;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model <b>Factory</b>.
19 * <!-- end-user-doc -->
20 * @generated
21 */
22public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory {
23 /**
24 * Creates the default factory implementation.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 public static ProblemFactory init() {
30 try {
31 ProblemFactory theProblemFactory = (ProblemFactory) EPackage.Registry.INSTANCE
32 .getEFactory(ProblemPackage.eNS_URI);
33 if (theProblemFactory != null) {
34 return theProblemFactory;
35 }
36 } catch (Exception exception) {
37 EcorePlugin.INSTANCE.log(exception);
38 }
39 return new ProblemFactoryImpl();
40 }
41
42 /**
43 * Creates an instance of the factory.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @generated
47 */
48 public ProblemFactoryImpl() {
49 super();
50 }
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 @Override
58 public EObject create(EClass eClass) {
59 switch (eClass.getClassifierID()) {
60 case ProblemPackage.PROBLEM:
61 return createProblem();
62 case ProblemPackage.CLASS_DECLARATION:
63 return createClassDeclaration();
64 case ProblemPackage.REFERENCE_DECLARATION:
65 return createReferenceDeclaration();
66 case ProblemPackage.PREDICATE_DEFINITION:
67 return createPredicateDefinition();
68 case ProblemPackage.PARAMETER:
69 return createParameter();
70 case ProblemPackage.CONJUNCTION:
71 return createConjunction();
72 case ProblemPackage.ATOM:
73 return createAtom();
74 case ProblemPackage.IMPLICIT_VARIABLE:
75 return createImplicitVariable();
76 case ProblemPackage.NEGATIVE_LITERAL:
77 return createNegativeLiteral();
78 case ProblemPackage.ASSERTION:
79 return createAssertion();
80 case ProblemPackage.NODE:
81 return createNode();
82 case ProblemPackage.SCOPE_DECLARATION:
83 return createScopeDeclaration();
84 case ProblemPackage.TYPE_SCOPE:
85 return createTypeScope();
86 case ProblemPackage.RANGE_MULTIPLICITY:
87 return createRangeMultiplicity();
88 case ProblemPackage.EXACT_MULTIPLICITY:
89 return createExactMultiplicity();
90 default:
91 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
92 }
93 }
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 @Override
101 public Object createFromString(EDataType eDataType, String initialValue) {
102 switch (eDataType.getClassifierID()) {
103 case ProblemPackage.LOGIC_VALUE:
104 return createLogicValueFromString(eDataType, initialValue);
105 default:
106 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
107 }
108 }
109
110 /**
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 @Override
116 public String convertToString(EDataType eDataType, Object instanceValue) {
117 switch (eDataType.getClassifierID()) {
118 case ProblemPackage.LOGIC_VALUE:
119 return convertLogicValueToString(eDataType, instanceValue);
120 default:
121 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
122 }
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 public Problem createProblem() {
131 ProblemImpl problem = new ProblemImpl();
132 return problem;
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 public ClassDeclaration createClassDeclaration() {
141 ClassDeclarationImpl classDeclaration = new ClassDeclarationImpl();
142 return classDeclaration;
143 }
144
145 /**
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 */
150 public ReferenceDeclaration createReferenceDeclaration() {
151 ReferenceDeclarationImpl referenceDeclaration = new ReferenceDeclarationImpl();
152 return referenceDeclaration;
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 public PredicateDefinition createPredicateDefinition() {
161 PredicateDefinitionImpl predicateDefinition = new PredicateDefinitionImpl();
162 return predicateDefinition;
163 }
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 public Parameter createParameter() {
171 ParameterImpl parameter = new ParameterImpl();
172 return parameter;
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 public Conjunction createConjunction() {
181 ConjunctionImpl conjunction = new ConjunctionImpl();
182 return conjunction;
183 }
184
185 /**
186 * <!-- begin-user-doc -->
187 * <!-- end-user-doc -->
188 * @generated
189 */
190 public Atom createAtom() {
191 AtomImpl atom = new AtomImpl();
192 return atom;
193 }
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 public ImplicitVariable createImplicitVariable() {
201 ImplicitVariableImpl implicitVariable = new ImplicitVariableImpl();
202 return implicitVariable;
203 }
204
205 /**
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @generated
209 */
210 public NegativeLiteral createNegativeLiteral() {
211 NegativeLiteralImpl negativeLiteral = new NegativeLiteralImpl();
212 return negativeLiteral;
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 public Assertion createAssertion() {
221 AssertionImpl assertion = new AssertionImpl();
222 return assertion;
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 public Node createNode() {
231 NodeImpl node = new NodeImpl();
232 return node;
233 }
234
235 /**
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @generated
239 */
240 public ScopeDeclaration createScopeDeclaration() {
241 ScopeDeclarationImpl scopeDeclaration = new ScopeDeclarationImpl();
242 return scopeDeclaration;
243 }
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 public TypeScope createTypeScope() {
251 TypeScopeImpl typeScope = new TypeScopeImpl();
252 return typeScope;
253 }
254
255 /**
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 */
260 public RangeMultiplicity createRangeMultiplicity() {
261 RangeMultiplicityImpl rangeMultiplicity = new RangeMultiplicityImpl();
262 return rangeMultiplicity;
263 }
264
265 /**
266 * <!-- begin-user-doc -->
267 * <!-- end-user-doc -->
268 * @generated
269 */
270 public ExactMultiplicity createExactMultiplicity() {
271 ExactMultiplicityImpl exactMultiplicity = new ExactMultiplicityImpl();
272 return exactMultiplicity;
273 }
274
275 /**
276 * <!-- begin-user-doc -->
277 * <!-- end-user-doc -->
278 * @generated
279 */
280 public LogicValue createLogicValueFromString(EDataType eDataType, String initialValue) {
281 LogicValue result = LogicValue.get(initialValue);
282 if (result == null)
283 throw new IllegalArgumentException(
284 "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
285 return result;
286 }
287
288 /**
289 * <!-- begin-user-doc -->
290 * <!-- end-user-doc -->
291 * @generated
292 */
293 public String convertLogicValueToString(EDataType eDataType, Object instanceValue) {
294 return instanceValue == null ? null : instanceValue.toString();
295 }
296
297 /**
298 * <!-- begin-user-doc -->
299 * <!-- end-user-doc -->
300 * @generated
301 */
302 public ProblemPackage getProblemPackage() {
303 return (ProblemPackage) getEPackage();
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @deprecated
310 * @generated
311 */
312 @Deprecated
313 public static ProblemPackage getPackage() {
314 return ProblemPackage.eINSTANCE;
315 }
316
317} //ProblemFactoryImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java
new file mode 100644
index 00000000..32bba265
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java
@@ -0,0 +1,189 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
15
16import org.eclipse.emf.ecore.util.EObjectContainmentEList;
17import org.eclipse.emf.ecore.util.InternalEList;
18
19import org.eclipse.viatra.solver.language.model.problem.Node;
20import org.eclipse.viatra.solver.language.model.problem.Problem;
21import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
22import org.eclipse.viatra.solver.language.model.problem.Statement;
23
24/**
25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Problem</b></em>'.
27 * <!-- end-user-doc -->
28 * <p>
29 * The following features are implemented:
30 * </p>
31 * <ul>
32 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl#getNodes <em>Nodes</em>}</li>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl#getStatements <em>Statements</em>}</li>
34 * </ul>
35 *
36 * @generated
37 */
38public class ProblemImpl extends MinimalEObjectImpl.Container implements Problem {
39 /**
40 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' containment reference list.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getNodes()
44 * @generated
45 * @ordered
46 */
47 protected EList<Node> nodes;
48 /**
49 * The cached value of the '{@link #getStatements() <em>Statements</em>}' containment reference list.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @see #getStatements()
53 * @generated
54 * @ordered
55 */
56 protected EList<Statement> statements;
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 protected ProblemImpl() {
64 super();
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 protected EClass eStaticClass() {
74 return ProblemPackage.Literals.PROBLEM;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public EList<Node> getNodes() {
83 if (nodes == null) {
84 nodes = new EObjectContainmentEList<Node>(Node.class, this, ProblemPackage.PROBLEM__NODES);
85 }
86 return nodes;
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 public EList<Statement> getStatements() {
95 if (statements == null) {
96 statements = new EObjectContainmentEList<Statement>(Statement.class, this,
97 ProblemPackage.PROBLEM__STATEMENTS);
98 }
99 return statements;
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 @Override
108 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
109 switch (featureID) {
110 case ProblemPackage.PROBLEM__NODES:
111 return ((InternalEList<?>) getNodes()).basicRemove(otherEnd, msgs);
112 case ProblemPackage.PROBLEM__STATEMENTS:
113 return ((InternalEList<?>) getStatements()).basicRemove(otherEnd, msgs);
114 }
115 return super.eInverseRemove(otherEnd, featureID, msgs);
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public Object eGet(int featureID, boolean resolve, boolean coreType) {
125 switch (featureID) {
126 case ProblemPackage.PROBLEM__NODES:
127 return getNodes();
128 case ProblemPackage.PROBLEM__STATEMENTS:
129 return getStatements();
130 }
131 return super.eGet(featureID, resolve, coreType);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @SuppressWarnings("unchecked")
140 @Override
141 public void eSet(int featureID, Object newValue) {
142 switch (featureID) {
143 case ProblemPackage.PROBLEM__NODES:
144 getNodes().clear();
145 getNodes().addAll((Collection<? extends Node>) newValue);
146 return;
147 case ProblemPackage.PROBLEM__STATEMENTS:
148 getStatements().clear();
149 getStatements().addAll((Collection<? extends Statement>) newValue);
150 return;
151 }
152 super.eSet(featureID, newValue);
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 @Override
161 public void eUnset(int featureID) {
162 switch (featureID) {
163 case ProblemPackage.PROBLEM__NODES:
164 getNodes().clear();
165 return;
166 case ProblemPackage.PROBLEM__STATEMENTS:
167 getStatements().clear();
168 return;
169 }
170 super.eUnset(featureID);
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public boolean eIsSet(int featureID) {
180 switch (featureID) {
181 case ProblemPackage.PROBLEM__NODES:
182 return nodes != null && !nodes.isEmpty();
183 case ProblemPackage.PROBLEM__STATEMENTS:
184 return statements != null && !statements.isEmpty();
185 }
186 return super.eIsSet(featureID);
187 }
188
189} //ProblemImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java
new file mode 100644
index 00000000..de0aa595
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java
@@ -0,0 +1,1061 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference;
10
11import org.eclipse.emf.ecore.impl.EPackageImpl;
12
13import org.eclipse.viatra.solver.language.model.problem.Assertion;
14import org.eclipse.viatra.solver.language.model.problem.Atom;
15import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
16import org.eclipse.viatra.solver.language.model.problem.Conjunction;
17import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity;
18import org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier;
19import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
20import org.eclipse.viatra.solver.language.model.problem.Literal;
21import org.eclipse.viatra.solver.language.model.problem.LogicValue;
22import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
23import org.eclipse.viatra.solver.language.model.problem.NamedElement;
24import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
25import org.eclipse.viatra.solver.language.model.problem.Node;
26import org.eclipse.viatra.solver.language.model.problem.Parameter;
27import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
28import org.eclipse.viatra.solver.language.model.problem.Problem;
29import org.eclipse.viatra.solver.language.model.problem.ProblemFactory;
30import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
31import org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity;
32import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
33import org.eclipse.viatra.solver.language.model.problem.Relation;
34import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration;
35import org.eclipse.viatra.solver.language.model.problem.Statement;
36import org.eclipse.viatra.solver.language.model.problem.TypeScope;
37import org.eclipse.viatra.solver.language.model.problem.Variable;
38
39/**
40 * <!-- begin-user-doc -->
41 * An implementation of the model <b>Package</b>.
42 * <!-- end-user-doc -->
43 * @generated
44 */
45public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
46 /**
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @generated
50 */
51 private EClass problemEClass = null;
52
53 /**
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @generated
57 */
58 private EClass relationEClass = null;
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 private EClass classDeclarationEClass = null;
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 private EClass referenceDeclarationEClass = null;
73
74 /**
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @generated
78 */
79 private EClass namedElementEClass = null;
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 private EClass predicateDefinitionEClass = null;
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 private EClass parameterEClass = null;
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 private EClass variableEClass = null;
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 private EClass conjunctionEClass = null;
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 private EClass literalEClass = null;
115
116 /**
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 */
121 private EClass atomEClass = null;
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 private EClass implicitVariableEClass = null;
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 private EClass negativeLiteralEClass = null;
136
137 /**
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @generated
141 */
142 private EClass existentialQuantifierEClass = null;
143
144 /**
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 */
149 private EClass assertionEClass = null;
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 private EClass nodeEClass = null;
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 private EClass scopeDeclarationEClass = null;
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 private EClass statementEClass = null;
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 private EClass typeScopeEClass = null;
178
179 /**
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @generated
183 */
184 private EClass multiplicityEClass = null;
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 private EClass rangeMultiplicityEClass = null;
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 private EClass exactMultiplicityEClass = null;
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 private EEnum logicValueEEnum = null;
206
207 /**
208 * Creates an instance of the model <b>Package</b>, registered with
209 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
210 * package URI value.
211 * <p>Note: the correct way to create the package is via the static
212 * factory method {@link #init init()}, which also performs
213 * initialization of the package, or returns the registered package,
214 * if one already exists.
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @see org.eclipse.emf.ecore.EPackage.Registry
218 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#eNS_URI
219 * @see #init()
220 * @generated
221 */
222 private ProblemPackageImpl() {
223 super(eNS_URI, ProblemFactory.eINSTANCE);
224 }
225
226 /**
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @generated
230 */
231 private static boolean isInited = false;
232
233 /**
234 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
235 *
236 * <p>This method is used to initialize {@link ProblemPackage#eINSTANCE} when that field is accessed.
237 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @see #eNS_URI
241 * @see #createPackageContents()
242 * @see #initializePackageContents()
243 * @generated
244 */
245 public static ProblemPackage init() {
246 if (isInited)
247 return (ProblemPackage) EPackage.Registry.INSTANCE.getEPackage(ProblemPackage.eNS_URI);
248
249 // Obtain or create and register package
250 Object registeredProblemPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
251 ProblemPackageImpl theProblemPackage = registeredProblemPackage instanceof ProblemPackageImpl
252 ? (ProblemPackageImpl) registeredProblemPackage
253 : new ProblemPackageImpl();
254
255 isInited = true;
256
257 // Create package meta-data objects
258 theProblemPackage.createPackageContents();
259
260 // Initialize created meta-data
261 theProblemPackage.initializePackageContents();
262
263 // Mark meta-data to indicate it can't be changed
264 theProblemPackage.freeze();
265
266 // Update the registry and return the package
267 EPackage.Registry.INSTANCE.put(ProblemPackage.eNS_URI, theProblemPackage);
268 return theProblemPackage;
269 }
270
271 /**
272 * <!-- begin-user-doc -->
273 * <!-- end-user-doc -->
274 * @generated
275 */
276 public EClass getProblem() {
277 return problemEClass;
278 }
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 public EReference getProblem_Nodes() {
286 return (EReference) problemEClass.getEStructuralFeatures().get(0);
287 }
288
289 /**
290 * <!-- begin-user-doc -->
291 * <!-- end-user-doc -->
292 * @generated
293 */
294 public EReference getProblem_Statements() {
295 return (EReference) problemEClass.getEStructuralFeatures().get(1);
296 }
297
298 /**
299 * <!-- begin-user-doc -->
300 * <!-- end-user-doc -->
301 * @generated
302 */
303 public EClass getRelation() {
304 return relationEClass;
305 }
306
307 /**
308 * <!-- begin-user-doc -->
309 * <!-- end-user-doc -->
310 * @generated
311 */
312 public EClass getClassDeclaration() {
313 return classDeclarationEClass;
314 }
315
316 /**
317 * <!-- begin-user-doc -->
318 * <!-- end-user-doc -->
319 * @generated
320 */
321 public EAttribute getClassDeclaration_Abstract() {
322 return (EAttribute) classDeclarationEClass.getEStructuralFeatures().get(0);
323 }
324
325 /**
326 * <!-- begin-user-doc -->
327 * <!-- end-user-doc -->
328 * @generated
329 */
330 public EReference getClassDeclaration_SuperTypes() {
331 return (EReference) classDeclarationEClass.getEStructuralFeatures().get(1);
332 }
333
334 /**
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @generated
338 */
339 public EReference getClassDeclaration_ReferenceDeclarations() {
340 return (EReference) classDeclarationEClass.getEStructuralFeatures().get(2);
341 }
342
343 /**
344 * <!-- begin-user-doc -->
345 * <!-- end-user-doc -->
346 * @generated
347 */
348 public EClass getReferenceDeclaration() {
349 return referenceDeclarationEClass;
350 }
351
352 /**
353 * <!-- begin-user-doc -->
354 * <!-- end-user-doc -->
355 * @generated
356 */
357 public EReference getReferenceDeclaration_ReferenceType() {
358 return (EReference) referenceDeclarationEClass.getEStructuralFeatures().get(0);
359 }
360
361 /**
362 * <!-- begin-user-doc -->
363 * <!-- end-user-doc -->
364 * @generated
365 */
366 public EReference getReferenceDeclaration_Opposite() {
367 return (EReference) referenceDeclarationEClass.getEStructuralFeatures().get(1);
368 }
369
370 /**
371 * <!-- begin-user-doc -->
372 * <!-- end-user-doc -->
373 * @generated
374 */
375 public EAttribute getReferenceDeclaration_Containment() {
376 return (EAttribute) referenceDeclarationEClass.getEStructuralFeatures().get(2);
377 }
378
379 /**
380 * <!-- begin-user-doc -->
381 * <!-- end-user-doc -->
382 * @generated
383 */
384 public EReference getReferenceDeclaration_Multiplicity() {
385 return (EReference) referenceDeclarationEClass.getEStructuralFeatures().get(3);
386 }
387
388 /**
389 * <!-- begin-user-doc -->
390 * <!-- end-user-doc -->
391 * @generated
392 */
393 public EClass getNamedElement() {
394 return namedElementEClass;
395 }
396
397 /**
398 * <!-- begin-user-doc -->
399 * <!-- end-user-doc -->
400 * @generated
401 */
402 public EAttribute getNamedElement_Name() {
403 return (EAttribute) namedElementEClass.getEStructuralFeatures().get(0);
404 }
405
406 /**
407 * <!-- begin-user-doc -->
408 * <!-- end-user-doc -->
409 * @generated
410 */
411 public EClass getPredicateDefinition() {
412 return predicateDefinitionEClass;
413 }
414
415 /**
416 * <!-- begin-user-doc -->
417 * <!-- end-user-doc -->
418 * @generated
419 */
420 public EAttribute getPredicateDefinition_Error() {
421 return (EAttribute) predicateDefinitionEClass.getEStructuralFeatures().get(0);
422 }
423
424 /**
425 * <!-- begin-user-doc -->
426 * <!-- end-user-doc -->
427 * @generated
428 */
429 public EReference getPredicateDefinition_Parameters() {
430 return (EReference) predicateDefinitionEClass.getEStructuralFeatures().get(1);
431 }
432
433 /**
434 * <!-- begin-user-doc -->
435 * <!-- end-user-doc -->
436 * @generated
437 */
438 public EReference getPredicateDefinition_Bodies() {
439 return (EReference) predicateDefinitionEClass.getEStructuralFeatures().get(2);
440 }
441
442 /**
443 * <!-- begin-user-doc -->
444 * <!-- end-user-doc -->
445 * @generated
446 */
447 public EClass getParameter() {
448 return parameterEClass;
449 }
450
451 /**
452 * <!-- begin-user-doc -->
453 * <!-- end-user-doc -->
454 * @generated
455 */
456 public EReference getParameter_ParameterType() {
457 return (EReference) parameterEClass.getEStructuralFeatures().get(0);
458 }
459
460 /**
461 * <!-- begin-user-doc -->
462 * <!-- end-user-doc -->
463 * @generated
464 */
465 public EClass getVariable() {
466 return variableEClass;
467 }
468
469 /**
470 * <!-- begin-user-doc -->
471 * <!-- end-user-doc -->
472 * @generated
473 */
474 public EClass getConjunction() {
475 return conjunctionEClass;
476 }
477
478 /**
479 * <!-- begin-user-doc -->
480 * <!-- end-user-doc -->
481 * @generated
482 */
483 public EReference getConjunction_Literals() {
484 return (EReference) conjunctionEClass.getEStructuralFeatures().get(0);
485 }
486
487 /**
488 * <!-- begin-user-doc -->
489 * <!-- end-user-doc -->
490 * @generated
491 */
492 public EClass getLiteral() {
493 return literalEClass;
494 }
495
496 /**
497 * <!-- begin-user-doc -->
498 * <!-- end-user-doc -->
499 * @generated
500 */
501 public EClass getAtom() {
502 return atomEClass;
503 }
504
505 /**
506 * <!-- begin-user-doc -->
507 * <!-- end-user-doc -->
508 * @generated
509 */
510 public EReference getAtom_Relation() {
511 return (EReference) atomEClass.getEStructuralFeatures().get(0);
512 }
513
514 /**
515 * <!-- begin-user-doc -->
516 * <!-- end-user-doc -->
517 * @generated
518 */
519 public EReference getAtom_Arguments() {
520 return (EReference) atomEClass.getEStructuralFeatures().get(1);
521 }
522
523 /**
524 * <!-- begin-user-doc -->
525 * <!-- end-user-doc -->
526 * @generated
527 */
528 public EAttribute getAtom_TransitiveClosure() {
529 return (EAttribute) atomEClass.getEStructuralFeatures().get(2);
530 }
531
532 /**
533 * <!-- begin-user-doc -->
534 * <!-- end-user-doc -->
535 * @generated
536 */
537 public EClass getImplicitVariable() {
538 return implicitVariableEClass;
539 }
540
541 /**
542 * <!-- begin-user-doc -->
543 * <!-- end-user-doc -->
544 * @generated
545 */
546 public EClass getNegativeLiteral() {
547 return negativeLiteralEClass;
548 }
549
550 /**
551 * <!-- begin-user-doc -->
552 * <!-- end-user-doc -->
553 * @generated
554 */
555 public EReference getNegativeLiteral_Atom() {
556 return (EReference) negativeLiteralEClass.getEStructuralFeatures().get(0);
557 }
558
559 /**
560 * <!-- begin-user-doc -->
561 * <!-- end-user-doc -->
562 * @generated
563 */
564 public EClass getExistentialQuantifier() {
565 return existentialQuantifierEClass;
566 }
567
568 /**
569 * <!-- begin-user-doc -->
570 * <!-- end-user-doc -->
571 * @generated
572 */
573 public EReference getExistentialQuantifier_ImplicitVariables() {
574 return (EReference) existentialQuantifierEClass.getEStructuralFeatures().get(0);
575 }
576
577 /**
578 * <!-- begin-user-doc -->
579 * <!-- end-user-doc -->
580 * @generated
581 */
582 public EClass getAssertion() {
583 return assertionEClass;
584 }
585
586 /**
587 * <!-- begin-user-doc -->
588 * <!-- end-user-doc -->
589 * @generated
590 */
591 public EReference getAssertion_Relation() {
592 return (EReference) assertionEClass.getEStructuralFeatures().get(0);
593 }
594
595 /**
596 * <!-- begin-user-doc -->
597 * <!-- end-user-doc -->
598 * @generated
599 */
600 public EReference getAssertion_Arguments() {
601 return (EReference) assertionEClass.getEStructuralFeatures().get(1);
602 }
603
604 /**
605 * <!-- begin-user-doc -->
606 * <!-- end-user-doc -->
607 * @generated
608 */
609 public EAttribute getAssertion_Value() {
610 return (EAttribute) assertionEClass.getEStructuralFeatures().get(2);
611 }
612
613 /**
614 * <!-- begin-user-doc -->
615 * <!-- end-user-doc -->
616 * @generated
617 */
618 public EClass getNode() {
619 return nodeEClass;
620 }
621
622 /**
623 * <!-- begin-user-doc -->
624 * <!-- end-user-doc -->
625 * @generated
626 */
627 public EClass getScopeDeclaration() {
628 return scopeDeclarationEClass;
629 }
630
631 /**
632 * <!-- begin-user-doc -->
633 * <!-- end-user-doc -->
634 * @generated
635 */
636 public EReference getScopeDeclaration_TypeScopes() {
637 return (EReference) scopeDeclarationEClass.getEStructuralFeatures().get(0);
638 }
639
640 /**
641 * <!-- begin-user-doc -->
642 * <!-- end-user-doc -->
643 * @generated
644 */
645 public EClass getStatement() {
646 return statementEClass;
647 }
648
649 /**
650 * <!-- begin-user-doc -->
651 * <!-- end-user-doc -->
652 * @generated
653 */
654 public EClass getTypeScope() {
655 return typeScopeEClass;
656 }
657
658 /**
659 * <!-- begin-user-doc -->
660 * <!-- end-user-doc -->
661 * @generated
662 */
663 public EReference getTypeScope_TargetType() {
664 return (EReference) typeScopeEClass.getEStructuralFeatures().get(0);
665 }
666
667 /**
668 * <!-- begin-user-doc -->
669 * <!-- end-user-doc -->
670 * @generated
671 */
672 public EAttribute getTypeScope_Increment() {
673 return (EAttribute) typeScopeEClass.getEStructuralFeatures().get(1);
674 }
675
676 /**
677 * <!-- begin-user-doc -->
678 * <!-- end-user-doc -->
679 * @generated
680 */
681 public EReference getTypeScope_Multiplicity() {
682 return (EReference) typeScopeEClass.getEStructuralFeatures().get(2);
683 }
684
685 /**
686 * <!-- begin-user-doc -->
687 * <!-- end-user-doc -->
688 * @generated
689 */
690 public EClass getMultiplicity() {
691 return multiplicityEClass;
692 }
693
694 /**
695 * <!-- begin-user-doc -->
696 * <!-- end-user-doc -->
697 * @generated
698 */
699 public EClass getRangeMultiplicity() {
700 return rangeMultiplicityEClass;
701 }
702
703 /**
704 * <!-- begin-user-doc -->
705 * <!-- end-user-doc -->
706 * @generated
707 */
708 public EAttribute getRangeMultiplicity_LowerBound() {
709 return (EAttribute) rangeMultiplicityEClass.getEStructuralFeatures().get(0);
710 }
711
712 /**
713 * <!-- begin-user-doc -->
714 * <!-- end-user-doc -->
715 * @generated
716 */
717 public EAttribute getRangeMultiplicity_UpperBound() {
718 return (EAttribute) rangeMultiplicityEClass.getEStructuralFeatures().get(1);
719 }
720
721 /**
722 * <!-- begin-user-doc -->
723 * <!-- end-user-doc -->
724 * @generated
725 */
726 public EClass getExactMultiplicity() {
727 return exactMultiplicityEClass;
728 }
729
730 /**
731 * <!-- begin-user-doc -->
732 * <!-- end-user-doc -->
733 * @generated
734 */
735 public EAttribute getExactMultiplicity_ExactValue() {
736 return (EAttribute) exactMultiplicityEClass.getEStructuralFeatures().get(0);
737 }
738
739 /**
740 * <!-- begin-user-doc -->
741 * <!-- end-user-doc -->
742 * @generated
743 */
744 public EEnum getLogicValue() {
745 return logicValueEEnum;
746 }
747
748 /**
749 * <!-- begin-user-doc -->
750 * <!-- end-user-doc -->
751 * @generated
752 */
753 public ProblemFactory getProblemFactory() {
754 return (ProblemFactory) getEFactoryInstance();
755 }
756
757 /**
758 * <!-- begin-user-doc -->
759 * <!-- end-user-doc -->
760 * @generated
761 */
762 private boolean isCreated = false;
763
764 /**
765 * Creates the meta-model objects for the package. This method is
766 * guarded to have no affect on any invocation but its first.
767 * <!-- begin-user-doc -->
768 * <!-- end-user-doc -->
769 * @generated
770 */
771 public void createPackageContents() {
772 if (isCreated)
773 return;
774 isCreated = true;
775
776 // Create classes and their features
777 problemEClass = createEClass(PROBLEM);
778 createEReference(problemEClass, PROBLEM__NODES);
779 createEReference(problemEClass, PROBLEM__STATEMENTS);
780
781 relationEClass = createEClass(RELATION);
782
783 classDeclarationEClass = createEClass(CLASS_DECLARATION);
784 createEAttribute(classDeclarationEClass, CLASS_DECLARATION__ABSTRACT);
785 createEReference(classDeclarationEClass, CLASS_DECLARATION__SUPER_TYPES);
786 createEReference(classDeclarationEClass, CLASS_DECLARATION__REFERENCE_DECLARATIONS);
787
788 referenceDeclarationEClass = createEClass(REFERENCE_DECLARATION);
789 createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__REFERENCE_TYPE);
790 createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__OPPOSITE);
791 createEAttribute(referenceDeclarationEClass, REFERENCE_DECLARATION__CONTAINMENT);
792 createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__MULTIPLICITY);
793
794 namedElementEClass = createEClass(NAMED_ELEMENT);
795 createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
796
797 predicateDefinitionEClass = createEClass(PREDICATE_DEFINITION);
798 createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__ERROR);
799 createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__PARAMETERS);
800 createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__BODIES);
801
802 parameterEClass = createEClass(PARAMETER);
803 createEReference(parameterEClass, PARAMETER__PARAMETER_TYPE);
804
805 variableEClass = createEClass(VARIABLE);
806
807 conjunctionEClass = createEClass(CONJUNCTION);
808 createEReference(conjunctionEClass, CONJUNCTION__LITERALS);
809
810 literalEClass = createEClass(LITERAL);
811
812 atomEClass = createEClass(ATOM);
813 createEReference(atomEClass, ATOM__RELATION);
814 createEReference(atomEClass, ATOM__ARGUMENTS);
815 createEAttribute(atomEClass, ATOM__TRANSITIVE_CLOSURE);
816
817 implicitVariableEClass = createEClass(IMPLICIT_VARIABLE);
818
819 negativeLiteralEClass = createEClass(NEGATIVE_LITERAL);
820 createEReference(negativeLiteralEClass, NEGATIVE_LITERAL__ATOM);
821
822 existentialQuantifierEClass = createEClass(EXISTENTIAL_QUANTIFIER);
823 createEReference(existentialQuantifierEClass, EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES);
824
825 assertionEClass = createEClass(ASSERTION);
826 createEReference(assertionEClass, ASSERTION__RELATION);
827 createEReference(assertionEClass, ASSERTION__ARGUMENTS);
828 createEAttribute(assertionEClass, ASSERTION__VALUE);
829
830 nodeEClass = createEClass(NODE);
831
832 scopeDeclarationEClass = createEClass(SCOPE_DECLARATION);
833 createEReference(scopeDeclarationEClass, SCOPE_DECLARATION__TYPE_SCOPES);
834
835 statementEClass = createEClass(STATEMENT);
836
837 typeScopeEClass = createEClass(TYPE_SCOPE);
838 createEReference(typeScopeEClass, TYPE_SCOPE__TARGET_TYPE);
839 createEAttribute(typeScopeEClass, TYPE_SCOPE__INCREMENT);
840 createEReference(typeScopeEClass, TYPE_SCOPE__MULTIPLICITY);
841
842 multiplicityEClass = createEClass(MULTIPLICITY);
843
844 rangeMultiplicityEClass = createEClass(RANGE_MULTIPLICITY);
845 createEAttribute(rangeMultiplicityEClass, RANGE_MULTIPLICITY__LOWER_BOUND);
846 createEAttribute(rangeMultiplicityEClass, RANGE_MULTIPLICITY__UPPER_BOUND);
847
848 exactMultiplicityEClass = createEClass(EXACT_MULTIPLICITY);
849 createEAttribute(exactMultiplicityEClass, EXACT_MULTIPLICITY__EXACT_VALUE);
850
851 // Create enums
852 logicValueEEnum = createEEnum(LOGIC_VALUE);
853 }
854
855 /**
856 * <!-- begin-user-doc -->
857 * <!-- end-user-doc -->
858 * @generated
859 */
860 private boolean isInitialized = false;
861
862 /**
863 * Complete the initialization of the package and its meta-model. This
864 * method is guarded to have no affect on any invocation but its first.
865 * <!-- begin-user-doc -->
866 * <!-- end-user-doc -->
867 * @generated
868 */
869 public void initializePackageContents() {
870 if (isInitialized)
871 return;
872 isInitialized = true;
873
874 // Initialize package
875 setName(eNAME);
876 setNsPrefix(eNS_PREFIX);
877 setNsURI(eNS_URI);
878
879 // Create type parameters
880
881 // Set bounds for type parameters
882
883 // Add supertypes to classes
884 relationEClass.getESuperTypes().add(this.getNamedElement());
885 classDeclarationEClass.getESuperTypes().add(this.getRelation());
886 classDeclarationEClass.getESuperTypes().add(this.getStatement());
887 referenceDeclarationEClass.getESuperTypes().add(this.getRelation());
888 predicateDefinitionEClass.getESuperTypes().add(this.getRelation());
889 predicateDefinitionEClass.getESuperTypes().add(this.getStatement());
890 parameterEClass.getESuperTypes().add(this.getVariable());
891 variableEClass.getESuperTypes().add(this.getNamedElement());
892 conjunctionEClass.getESuperTypes().add(this.getExistentialQuantifier());
893 atomEClass.getESuperTypes().add(this.getLiteral());
894 implicitVariableEClass.getESuperTypes().add(this.getVariable());
895 negativeLiteralEClass.getESuperTypes().add(this.getExistentialQuantifier());
896 negativeLiteralEClass.getESuperTypes().add(this.getLiteral());
897 assertionEClass.getESuperTypes().add(this.getStatement());
898 nodeEClass.getESuperTypes().add(this.getNamedElement());
899 scopeDeclarationEClass.getESuperTypes().add(this.getStatement());
900 rangeMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
901 exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
902
903 // Initialize classes, features, and operations; add parameters
904 initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
905 initEReference(getProblem_Nodes(), this.getNode(), null, "nodes", null, 0, -1, Problem.class, !IS_TRANSIENT,
906 !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
907 IS_ORDERED);
908 initEReference(getProblem_Statements(), this.getStatement(), null, "statements", null, 0, -1, Problem.class,
909 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
910 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
911
912 initEClass(relationEClass, Relation.class, "Relation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
913
914 initEClass(classDeclarationEClass, ClassDeclaration.class, "ClassDeclaration", !IS_ABSTRACT, !IS_INTERFACE,
915 IS_GENERATED_INSTANCE_CLASS);
916 initEAttribute(getClassDeclaration_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1,
917 ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
918 !IS_DERIVED, IS_ORDERED);
919 initEReference(getClassDeclaration_SuperTypes(), this.getClassDeclaration(), null, "superTypes", null, 0, -1,
920 ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
921 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
922 initEReference(getClassDeclaration_ReferenceDeclarations(), this.getReferenceDeclaration(), null,
923 "referenceDeclarations", null, 0, -1, ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE,
924 IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
925
926 initEClass(referenceDeclarationEClass, ReferenceDeclaration.class, "ReferenceDeclaration", !IS_ABSTRACT,
927 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
928 initEReference(getReferenceDeclaration_ReferenceType(), this.getClassDeclaration(), null, "referenceType", null,
929 0, 1, ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
930 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
931 initEReference(getReferenceDeclaration_Opposite(), this.getReferenceDeclaration(), null, "opposite", null, 0, 1,
932 ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
933 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
934 initEAttribute(getReferenceDeclaration_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1,
935 ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
936 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
937 initEReference(getReferenceDeclaration_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1,
938 ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
939 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
940
941 initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, !IS_INTERFACE,
942 IS_GENERATED_INSTANCE_CLASS);
943 initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class,
944 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
945
946 initEClass(predicateDefinitionEClass, PredicateDefinition.class, "PredicateDefinition", !IS_ABSTRACT,
947 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
948 initEAttribute(getPredicateDefinition_Error(), ecorePackage.getEBoolean(), "error", null, 0, 1,
949 PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
950 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
951 initEReference(getPredicateDefinition_Parameters(), this.getParameter(), null, "parameters", null, 0, -1,
952 PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
953 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
954 initEReference(getPredicateDefinition_Bodies(), this.getConjunction(), null, "bodies", null, 0, -1,
955 PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
956 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
957
958 initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE,
959 IS_GENERATED_INSTANCE_CLASS);
960 initEReference(getParameter_ParameterType(), this.getClassDeclaration(), null, "parameterType", null, 0, 1,
961 Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
962 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
963
964 initEClass(variableEClass, Variable.class, "Variable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
965
966 initEClass(conjunctionEClass, Conjunction.class, "Conjunction", !IS_ABSTRACT, !IS_INTERFACE,
967 IS_GENERATED_INSTANCE_CLASS);
968 initEReference(getConjunction_Literals(), this.getLiteral(), null, "literals", null, 0, -1, Conjunction.class,
969 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
970 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
971
972 initEClass(literalEClass, Literal.class, "Literal", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
973
974 initEClass(atomEClass, Atom.class, "Atom", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
975 initEReference(getAtom_Relation(), this.getRelation(), null, "relation", null, 0, 1, Atom.class, !IS_TRANSIENT,
976 !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
977 IS_ORDERED);
978 initEReference(getAtom_Arguments(), this.getVariable(), null, "arguments", null, 0, -1, Atom.class,
979 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
980 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
981 initEAttribute(getAtom_TransitiveClosure(), ecorePackage.getEBoolean(), "transitiveClosure", null, 0, 1,
982 Atom.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
983 IS_ORDERED);
984
985 initEClass(implicitVariableEClass, ImplicitVariable.class, "ImplicitVariable", !IS_ABSTRACT, !IS_INTERFACE,
986 IS_GENERATED_INSTANCE_CLASS);
987
988 initEClass(negativeLiteralEClass, NegativeLiteral.class, "NegativeLiteral", !IS_ABSTRACT, !IS_INTERFACE,
989 IS_GENERATED_INSTANCE_CLASS);
990 initEReference(getNegativeLiteral_Atom(), this.getAtom(), null, "atom", null, 0, 1, NegativeLiteral.class,
991 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
992 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
993
994 initEClass(existentialQuantifierEClass, ExistentialQuantifier.class, "ExistentialQuantifier", IS_ABSTRACT,
995 IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
996 initEReference(getExistentialQuantifier_ImplicitVariables(), this.getImplicitVariable(), null,
997 "implicitVariables", null, 0, -1, ExistentialQuantifier.class, !IS_TRANSIENT, !IS_VOLATILE,
998 IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
999
1000 initEClass(assertionEClass, Assertion.class, "Assertion", !IS_ABSTRACT, !IS_INTERFACE,
1001 IS_GENERATED_INSTANCE_CLASS);
1002 initEReference(getAssertion_Relation(), this.getRelation(), null, "relation", null, 0, 1, Assertion.class,
1003 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
1004 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1005 initEReference(getAssertion_Arguments(), this.getNode(), null, "arguments", null, 0, -1, Assertion.class,
1006 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
1007 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1008 initEAttribute(getAssertion_Value(), this.getLogicValue(), "value", null, 0, 1, Assertion.class, !IS_TRANSIENT,
1009 !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1010
1011 initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1012
1013 initEClass(scopeDeclarationEClass, ScopeDeclaration.class, "ScopeDeclaration", !IS_ABSTRACT, !IS_INTERFACE,
1014 IS_GENERATED_INSTANCE_CLASS);
1015 initEReference(getScopeDeclaration_TypeScopes(), this.getTypeScope(), null, "typeScopes", null, 0, -1,
1016 ScopeDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
1017 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1018
1019 initEClass(statementEClass, Statement.class, "Statement", IS_ABSTRACT, IS_INTERFACE,
1020 IS_GENERATED_INSTANCE_CLASS);
1021
1022 initEClass(typeScopeEClass, TypeScope.class, "TypeScope", !IS_ABSTRACT, !IS_INTERFACE,
1023 IS_GENERATED_INSTANCE_CLASS);
1024 initEReference(getTypeScope_TargetType(), this.getClassDeclaration(), null, "targetType", null, 0, 1,
1025 TypeScope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
1026 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1027 initEAttribute(getTypeScope_Increment(), ecorePackage.getEBoolean(), "increment", null, 0, 1, TypeScope.class,
1028 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1029 initEReference(getTypeScope_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1,
1030 TypeScope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
1031 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1032
1033 initEClass(multiplicityEClass, Multiplicity.class, "Multiplicity", IS_ABSTRACT, !IS_INTERFACE,
1034 IS_GENERATED_INSTANCE_CLASS);
1035
1036 initEClass(rangeMultiplicityEClass, RangeMultiplicity.class, "RangeMultiplicity", !IS_ABSTRACT, !IS_INTERFACE,
1037 IS_GENERATED_INSTANCE_CLASS);
1038 initEAttribute(getRangeMultiplicity_LowerBound(), ecorePackage.getEInt(), "lowerBound", "0", 0, 1,
1039 RangeMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
1040 !IS_DERIVED, IS_ORDERED);
1041 initEAttribute(getRangeMultiplicity_UpperBound(), ecorePackage.getEInt(), "upperBound", "-1", 0, 1,
1042 RangeMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
1043 !IS_DERIVED, IS_ORDERED);
1044
1045 initEClass(exactMultiplicityEClass, ExactMultiplicity.class, "ExactMultiplicity", !IS_ABSTRACT, !IS_INTERFACE,
1046 IS_GENERATED_INSTANCE_CLASS);
1047 initEAttribute(getExactMultiplicity_ExactValue(), ecorePackage.getEInt(), "exactValue", "1", 0, 1,
1048 ExactMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
1049 !IS_DERIVED, IS_ORDERED);
1050
1051 // Initialize enums and add enum literals
1052 initEEnum(logicValueEEnum, LogicValue.class, "LogicValue");
1053 addEEnumLiteral(logicValueEEnum, LogicValue.TRUE);
1054 addEEnumLiteral(logicValueEEnum, LogicValue.FALSE);
1055 addEEnumLiteral(logicValueEEnum, LogicValue.UNKNOWN);
1056
1057 // Create resource
1058 createResource(eNS_URI);
1059 }
1060
1061} //ProblemPackageImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java
new file mode 100644
index 00000000..1122b5be
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java
@@ -0,0 +1,219 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10
11import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
12import org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Range Multiplicity</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl#getLowerBound <em>Lower Bound</em>}</li>
23 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl#getUpperBound <em>Upper Bound</em>}</li>
24 * </ul>
25 *
26 * @generated
27 */
28public class RangeMultiplicityImpl extends MultiplicityImpl implements RangeMultiplicity {
29 /**
30 * The default value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @see #getLowerBound()
34 * @generated
35 * @ordered
36 */
37 protected static final int LOWER_BOUND_EDEFAULT = 0;
38
39 /**
40 * The cached value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getLowerBound()
44 * @generated
45 * @ordered
46 */
47 protected int lowerBound = LOWER_BOUND_EDEFAULT;
48
49 /**
50 * The default value of the '{@link #getUpperBound() <em>Upper Bound</em>}' attribute.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #getUpperBound()
54 * @generated
55 * @ordered
56 */
57 protected static final int UPPER_BOUND_EDEFAULT = -1;
58
59 /**
60 * The cached value of the '{@link #getUpperBound() <em>Upper Bound</em>}' attribute.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see #getUpperBound()
64 * @generated
65 * @ordered
66 */
67 protected int upperBound = UPPER_BOUND_EDEFAULT;
68
69 /**
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @generated
73 */
74 protected RangeMultiplicityImpl() {
75 super();
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 @Override
84 protected EClass eStaticClass() {
85 return ProblemPackage.Literals.RANGE_MULTIPLICITY;
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 public int getLowerBound() {
94 return lowerBound;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 public void setLowerBound(int newLowerBound) {
103 int oldLowerBound = lowerBound;
104 lowerBound = newLowerBound;
105 if (eNotificationRequired())
106 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND,
107 oldLowerBound, lowerBound));
108 }
109
110 /**
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 public int getUpperBound() {
116 return upperBound;
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 public void setUpperBound(int newUpperBound) {
125 int oldUpperBound = upperBound;
126 upperBound = newUpperBound;
127 if (eNotificationRequired())
128 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND,
129 oldUpperBound, upperBound));
130 }
131
132 /**
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @generated
136 */
137 @Override
138 public Object eGet(int featureID, boolean resolve, boolean coreType) {
139 switch (featureID) {
140 case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND:
141 return getLowerBound();
142 case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND:
143 return getUpperBound();
144 }
145 return super.eGet(featureID, resolve, coreType);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public void eSet(int featureID, Object newValue) {
155 switch (featureID) {
156 case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND:
157 setLowerBound((Integer) newValue);
158 return;
159 case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND:
160 setUpperBound((Integer) newValue);
161 return;
162 }
163 super.eSet(featureID, newValue);
164 }
165
166 /**
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @generated
170 */
171 @Override
172 public void eUnset(int featureID) {
173 switch (featureID) {
174 case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND:
175 setLowerBound(LOWER_BOUND_EDEFAULT);
176 return;
177 case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND:
178 setUpperBound(UPPER_BOUND_EDEFAULT);
179 return;
180 }
181 super.eUnset(featureID);
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 @Override
190 public boolean eIsSet(int featureID) {
191 switch (featureID) {
192 case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND:
193 return lowerBound != LOWER_BOUND_EDEFAULT;
194 case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND:
195 return upperBound != UPPER_BOUND_EDEFAULT;
196 }
197 return super.eIsSet(featureID);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public String toString() {
207 if (eIsProxy())
208 return super.toString();
209
210 StringBuilder result = new StringBuilder(super.toString());
211 result.append(" (lowerBound: ");
212 result.append(lowerBound);
213 result.append(", upperBound: ");
214 result.append(upperBound);
215 result.append(')');
216 return result.toString();
217 }
218
219} //RangeMultiplicityImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java
new file mode 100644
index 00000000..424db23d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java
@@ -0,0 +1,379 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6import org.eclipse.emf.common.notify.NotificationChain;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.InternalEObject;
10
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
12
13import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
14import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
15import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
16import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
17
18/**
19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>Reference Declaration</b></em>'.
21 * <!-- end-user-doc -->
22 * <p>
23 * The following features are implemented:
24 * </p>
25 * <ul>
26 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#getReferenceType <em>Reference Type</em>}</li>
27 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#getOpposite <em>Opposite</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#isContainment <em>Containment</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#getMultiplicity <em>Multiplicity</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class ReferenceDeclarationImpl extends RelationImpl implements ReferenceDeclaration {
35 /**
36 * The cached value of the '{@link #getReferenceType() <em>Reference Type</em>}' reference.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getReferenceType()
40 * @generated
41 * @ordered
42 */
43 protected ClassDeclaration referenceType;
44
45 /**
46 * The cached value of the '{@link #getOpposite() <em>Opposite</em>}' reference.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getOpposite()
50 * @generated
51 * @ordered
52 */
53 protected ReferenceDeclaration opposite;
54
55 /**
56 * The default value of the '{@link #isContainment() <em>Containment</em>}' attribute.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #isContainment()
60 * @generated
61 * @ordered
62 */
63 protected static final boolean CONTAINMENT_EDEFAULT = false;
64
65 /**
66 * The cached value of the '{@link #isContainment() <em>Containment</em>}' attribute.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @see #isContainment()
70 * @generated
71 * @ordered
72 */
73 protected boolean containment = CONTAINMENT_EDEFAULT;
74
75 /**
76 * The cached value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' containment reference.
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @see #getMultiplicity()
80 * @generated
81 * @ordered
82 */
83 protected Multiplicity multiplicity;
84
85 /**
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 protected ReferenceDeclarationImpl() {
91 super();
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 @Override
100 protected EClass eStaticClass() {
101 return ProblemPackage.Literals.REFERENCE_DECLARATION;
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 public ClassDeclaration getReferenceType() {
110 if (referenceType != null && referenceType.eIsProxy()) {
111 InternalEObject oldReferenceType = (InternalEObject) referenceType;
112 referenceType = (ClassDeclaration) eResolveProxy(oldReferenceType);
113 if (referenceType != oldReferenceType) {
114 if (eNotificationRequired())
115 eNotify(new ENotificationImpl(this, Notification.RESOLVE,
116 ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE, oldReferenceType, referenceType));
117 }
118 }
119 return referenceType;
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public ClassDeclaration basicGetReferenceType() {
128 return referenceType;
129 }
130
131 /**
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @generated
135 */
136 public void setReferenceType(ClassDeclaration newReferenceType) {
137 ClassDeclaration oldReferenceType = referenceType;
138 referenceType = newReferenceType;
139 if (eNotificationRequired())
140 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE,
141 oldReferenceType, referenceType));
142 }
143
144 /**
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 */
149 public ReferenceDeclaration getOpposite() {
150 if (opposite != null && opposite.eIsProxy()) {
151 InternalEObject oldOpposite = (InternalEObject) opposite;
152 opposite = (ReferenceDeclaration) eResolveProxy(oldOpposite);
153 if (opposite != oldOpposite) {
154 if (eNotificationRequired())
155 eNotify(new ENotificationImpl(this, Notification.RESOLVE,
156 ProblemPackage.REFERENCE_DECLARATION__OPPOSITE, oldOpposite, opposite));
157 }
158 }
159 return opposite;
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 public ReferenceDeclaration basicGetOpposite() {
168 return opposite;
169 }
170
171 /**
172 * <!-- begin-user-doc -->
173 * <!-- end-user-doc -->
174 * @generated
175 */
176 public void setOpposite(ReferenceDeclaration newOpposite) {
177 ReferenceDeclaration oldOpposite = opposite;
178 opposite = newOpposite;
179 if (eNotificationRequired())
180 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__OPPOSITE,
181 oldOpposite, opposite));
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 public boolean isContainment() {
190 return containment;
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 public void setContainment(boolean newContainment) {
199 boolean oldContainment = containment;
200 containment = newContainment;
201 if (eNotificationRequired())
202 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT,
203 oldContainment, containment));
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 public Multiplicity getMultiplicity() {
212 return multiplicity;
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 public NotificationChain basicSetMultiplicity(Multiplicity newMultiplicity, NotificationChain msgs) {
221 Multiplicity oldMultiplicity = multiplicity;
222 multiplicity = newMultiplicity;
223 if (eNotificationRequired()) {
224 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
225 ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, oldMultiplicity, newMultiplicity);
226 if (msgs == null)
227 msgs = notification;
228 else
229 msgs.add(notification);
230 }
231 return msgs;
232 }
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 public void setMultiplicity(Multiplicity newMultiplicity) {
240 if (newMultiplicity != multiplicity) {
241 NotificationChain msgs = null;
242 if (multiplicity != null)
243 msgs = ((InternalEObject) multiplicity).eInverseRemove(this,
244 EOPPOSITE_FEATURE_BASE - ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, null, msgs);
245 if (newMultiplicity != null)
246 msgs = ((InternalEObject) newMultiplicity).eInverseAdd(this,
247 EOPPOSITE_FEATURE_BASE - ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, null, msgs);
248 msgs = basicSetMultiplicity(newMultiplicity, msgs);
249 if (msgs != null)
250 msgs.dispatch();
251 } else if (eNotificationRequired())
252 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY,
253 newMultiplicity, newMultiplicity));
254 }
255
256 /**
257 * <!-- begin-user-doc -->
258 * <!-- end-user-doc -->
259 * @generated
260 */
261 @Override
262 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
263 switch (featureID) {
264 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
265 return basicSetMultiplicity(null, msgs);
266 }
267 return super.eInverseRemove(otherEnd, featureID, msgs);
268 }
269
270 /**
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 */
275 @Override
276 public Object eGet(int featureID, boolean resolve, boolean coreType) {
277 switch (featureID) {
278 case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
279 if (resolve)
280 return getReferenceType();
281 return basicGetReferenceType();
282 case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
283 if (resolve)
284 return getOpposite();
285 return basicGetOpposite();
286 case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT:
287 return isContainment();
288 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
289 return getMultiplicity();
290 }
291 return super.eGet(featureID, resolve, coreType);
292 }
293
294 /**
295 * <!-- begin-user-doc -->
296 * <!-- end-user-doc -->
297 * @generated
298 */
299 @Override
300 public void eSet(int featureID, Object newValue) {
301 switch (featureID) {
302 case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
303 setReferenceType((ClassDeclaration) newValue);
304 return;
305 case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
306 setOpposite((ReferenceDeclaration) newValue);
307 return;
308 case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT:
309 setContainment((Boolean) newValue);
310 return;
311 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
312 setMultiplicity((Multiplicity) newValue);
313 return;
314 }
315 super.eSet(featureID, newValue);
316 }
317
318 /**
319 * <!-- begin-user-doc -->
320 * <!-- end-user-doc -->
321 * @generated
322 */
323 @Override
324 public void eUnset(int featureID) {
325 switch (featureID) {
326 case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
327 setReferenceType((ClassDeclaration) null);
328 return;
329 case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
330 setOpposite((ReferenceDeclaration) null);
331 return;
332 case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT:
333 setContainment(CONTAINMENT_EDEFAULT);
334 return;
335 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
336 setMultiplicity((Multiplicity) null);
337 return;
338 }
339 super.eUnset(featureID);
340 }
341
342 /**
343 * <!-- begin-user-doc -->
344 * <!-- end-user-doc -->
345 * @generated
346 */
347 @Override
348 public boolean eIsSet(int featureID) {
349 switch (featureID) {
350 case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
351 return referenceType != null;
352 case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
353 return opposite != null;
354 case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT:
355 return containment != CONTAINMENT_EDEFAULT;
356 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
357 return multiplicity != null;
358 }
359 return super.eIsSet(featureID);
360 }
361
362 /**
363 * <!-- begin-user-doc -->
364 * <!-- end-user-doc -->
365 * @generated
366 */
367 @Override
368 public String toString() {
369 if (eIsProxy())
370 return super.toString();
371
372 StringBuilder result = new StringBuilder(super.toString());
373 result.append(" (containment: ");
374 result.append(containment);
375 result.append(')');
376 return result.toString();
377 }
378
379} //ReferenceDeclarationImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java
new file mode 100644
index 00000000..20d43043
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
8import org.eclipse.viatra.solver.language.model.problem.Relation;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Relation</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public abstract class RelationImpl extends NamedElementImpl implements Relation {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected RelationImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return ProblemPackage.Literals.RELATION;
35 }
36
37} //RelationImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java
new file mode 100644
index 00000000..f178d9e0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java
@@ -0,0 +1,153 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
15
16import org.eclipse.emf.ecore.util.EObjectContainmentEList;
17import org.eclipse.emf.ecore.util.InternalEList;
18
19import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
20import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration;
21import org.eclipse.viatra.solver.language.model.problem.TypeScope;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Scope Declaration</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl#getTypeScopes <em>Type Scopes</em>}</li>
32 * </ul>
33 *
34 * @generated
35 */
36public class ScopeDeclarationImpl extends MinimalEObjectImpl.Container implements ScopeDeclaration {
37 /**
38 * The cached value of the '{@link #getTypeScopes() <em>Type Scopes</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getTypeScopes()
42 * @generated
43 * @ordered
44 */
45 protected EList<TypeScope> typeScopes;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected ScopeDeclarationImpl() {
53 super();
54 }
55
56 /**
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @generated
60 */
61 @Override
62 protected EClass eStaticClass() {
63 return ProblemPackage.Literals.SCOPE_DECLARATION;
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 public EList<TypeScope> getTypeScopes() {
72 if (typeScopes == null) {
73 typeScopes = new EObjectContainmentEList<TypeScope>(TypeScope.class, this,
74 ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES);
75 }
76 return typeScopes;
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 @Override
85 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
86 switch (featureID) {
87 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
88 return ((InternalEList<?>) getTypeScopes()).basicRemove(otherEnd, msgs);
89 }
90 return super.eInverseRemove(otherEnd, featureID, msgs);
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 @Override
99 public Object eGet(int featureID, boolean resolve, boolean coreType) {
100 switch (featureID) {
101 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
102 return getTypeScopes();
103 }
104 return super.eGet(featureID, resolve, coreType);
105 }
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 @SuppressWarnings("unchecked")
113 @Override
114 public void eSet(int featureID, Object newValue) {
115 switch (featureID) {
116 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
117 getTypeScopes().clear();
118 getTypeScopes().addAll((Collection<? extends TypeScope>) newValue);
119 return;
120 }
121 super.eSet(featureID, newValue);
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 @Override
130 public void eUnset(int featureID) {
131 switch (featureID) {
132 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
133 getTypeScopes().clear();
134 return;
135 }
136 super.eUnset(featureID);
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public boolean eIsSet(int featureID) {
146 switch (featureID) {
147 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
148 return typeScopes != null && !typeScopes.isEmpty();
149 }
150 return super.eIsSet(featureID);
151 }
152
153} //ScopeDeclarationImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java
new file mode 100644
index 00000000..608cc015
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java
@@ -0,0 +1,317 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6import org.eclipse.emf.common.notify.NotificationChain;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.InternalEObject;
10
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
12import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
13
14import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
15import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
16import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
17import org.eclipse.viatra.solver.language.model.problem.TypeScope;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Type Scope</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl#getTargetType <em>Target Type</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl#isIncrement <em>Increment</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl#getMultiplicity <em>Multiplicity</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class TypeScopeImpl extends MinimalEObjectImpl.Container implements TypeScope {
35 /**
36 * The cached value of the '{@link #getTargetType() <em>Target Type</em>}' reference.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getTargetType()
40 * @generated
41 * @ordered
42 */
43 protected ClassDeclaration targetType;
44
45 /**
46 * The default value of the '{@link #isIncrement() <em>Increment</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #isIncrement()
50 * @generated
51 * @ordered
52 */
53 protected static final boolean INCREMENT_EDEFAULT = false;
54
55 /**
56 * The cached value of the '{@link #isIncrement() <em>Increment</em>}' attribute.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #isIncrement()
60 * @generated
61 * @ordered
62 */
63 protected boolean increment = INCREMENT_EDEFAULT;
64
65 /**
66 * The cached value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' containment reference.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @see #getMultiplicity()
70 * @generated
71 * @ordered
72 */
73 protected Multiplicity multiplicity;
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 protected TypeScopeImpl() {
81 super();
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 @Override
90 protected EClass eStaticClass() {
91 return ProblemPackage.Literals.TYPE_SCOPE;
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 public ClassDeclaration getTargetType() {
100 if (targetType != null && targetType.eIsProxy()) {
101 InternalEObject oldTargetType = (InternalEObject) targetType;
102 targetType = (ClassDeclaration) eResolveProxy(oldTargetType);
103 if (targetType != oldTargetType) {
104 if (eNotificationRequired())
105 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.TYPE_SCOPE__TARGET_TYPE,
106 oldTargetType, targetType));
107 }
108 }
109 return targetType;
110 }
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 public ClassDeclaration basicGetTargetType() {
118 return targetType;
119 }
120
121 /**
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @generated
125 */
126 public void setTargetType(ClassDeclaration newTargetType) {
127 ClassDeclaration oldTargetType = targetType;
128 targetType = newTargetType;
129 if (eNotificationRequired())
130 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.TYPE_SCOPE__TARGET_TYPE, oldTargetType,
131 targetType));
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 public boolean isIncrement() {
140 return increment;
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 public void setIncrement(boolean newIncrement) {
149 boolean oldIncrement = increment;
150 increment = newIncrement;
151 if (eNotificationRequired())
152 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.TYPE_SCOPE__INCREMENT, oldIncrement,
153 increment));
154 }
155
156 /**
157 * <!-- begin-user-doc -->
158 * <!-- end-user-doc -->
159 * @generated
160 */
161 public Multiplicity getMultiplicity() {
162 return multiplicity;
163 }
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 public NotificationChain basicSetMultiplicity(Multiplicity newMultiplicity, NotificationChain msgs) {
171 Multiplicity oldMultiplicity = multiplicity;
172 multiplicity = newMultiplicity;
173 if (eNotificationRequired()) {
174 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
175 ProblemPackage.TYPE_SCOPE__MULTIPLICITY, oldMultiplicity, newMultiplicity);
176 if (msgs == null)
177 msgs = notification;
178 else
179 msgs.add(notification);
180 }
181 return msgs;
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 public void setMultiplicity(Multiplicity newMultiplicity) {
190 if (newMultiplicity != multiplicity) {
191 NotificationChain msgs = null;
192 if (multiplicity != null)
193 msgs = ((InternalEObject) multiplicity).eInverseRemove(this,
194 EOPPOSITE_FEATURE_BASE - ProblemPackage.TYPE_SCOPE__MULTIPLICITY, null, msgs);
195 if (newMultiplicity != null)
196 msgs = ((InternalEObject) newMultiplicity).eInverseAdd(this,
197 EOPPOSITE_FEATURE_BASE - ProblemPackage.TYPE_SCOPE__MULTIPLICITY, null, msgs);
198 msgs = basicSetMultiplicity(newMultiplicity, msgs);
199 if (msgs != null)
200 msgs.dispatch();
201 } else if (eNotificationRequired())
202 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.TYPE_SCOPE__MULTIPLICITY,
203 newMultiplicity, newMultiplicity));
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 @Override
212 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
213 switch (featureID) {
214 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
215 return basicSetMultiplicity(null, msgs);
216 }
217 return super.eInverseRemove(otherEnd, featureID, msgs);
218 }
219
220 /**
221 * <!-- begin-user-doc -->
222 * <!-- end-user-doc -->
223 * @generated
224 */
225 @Override
226 public Object eGet(int featureID, boolean resolve, boolean coreType) {
227 switch (featureID) {
228 case ProblemPackage.TYPE_SCOPE__TARGET_TYPE:
229 if (resolve)
230 return getTargetType();
231 return basicGetTargetType();
232 case ProblemPackage.TYPE_SCOPE__INCREMENT:
233 return isIncrement();
234 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
235 return getMultiplicity();
236 }
237 return super.eGet(featureID, resolve, coreType);
238 }
239
240 /**
241 * <!-- begin-user-doc -->
242 * <!-- end-user-doc -->
243 * @generated
244 */
245 @Override
246 public void eSet(int featureID, Object newValue) {
247 switch (featureID) {
248 case ProblemPackage.TYPE_SCOPE__TARGET_TYPE:
249 setTargetType((ClassDeclaration) newValue);
250 return;
251 case ProblemPackage.TYPE_SCOPE__INCREMENT:
252 setIncrement((Boolean) newValue);
253 return;
254 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
255 setMultiplicity((Multiplicity) newValue);
256 return;
257 }
258 super.eSet(featureID, newValue);
259 }
260
261 /**
262 * <!-- begin-user-doc -->
263 * <!-- end-user-doc -->
264 * @generated
265 */
266 @Override
267 public void eUnset(int featureID) {
268 switch (featureID) {
269 case ProblemPackage.TYPE_SCOPE__TARGET_TYPE:
270 setTargetType((ClassDeclaration) null);
271 return;
272 case ProblemPackage.TYPE_SCOPE__INCREMENT:
273 setIncrement(INCREMENT_EDEFAULT);
274 return;
275 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
276 setMultiplicity((Multiplicity) null);
277 return;
278 }
279 super.eUnset(featureID);
280 }
281
282 /**
283 * <!-- begin-user-doc -->
284 * <!-- end-user-doc -->
285 * @generated
286 */
287 @Override
288 public boolean eIsSet(int featureID) {
289 switch (featureID) {
290 case ProblemPackage.TYPE_SCOPE__TARGET_TYPE:
291 return targetType != null;
292 case ProblemPackage.TYPE_SCOPE__INCREMENT:
293 return increment != INCREMENT_EDEFAULT;
294 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
295 return multiplicity != null;
296 }
297 return super.eIsSet(featureID);
298 }
299
300 /**
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 */
305 @Override
306 public String toString() {
307 if (eIsProxy())
308 return super.toString();
309
310 StringBuilder result = new StringBuilder(super.toString());
311 result.append(" (increment: ");
312 result.append(increment);
313 result.append(')');
314 return result.toString();
315 }
316
317} //TypeScopeImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java
new file mode 100644
index 00000000..0a8cde48
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
8import org.eclipse.viatra.solver.language.model.problem.Variable;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Variable</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public abstract class VariableImpl extends NamedElementImpl implements Variable {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected VariableImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return ProblemPackage.Literals.VARIABLE;
35 }
36
37} //VariableImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
new file mode 100644
index 00000000..f228f54a
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
@@ -0,0 +1,518 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.util;
4
5import org.eclipse.emf.common.notify.Adapter;
6import org.eclipse.emf.common.notify.Notifier;
7
8import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
9
10import org.eclipse.emf.ecore.EObject;
11
12import org.eclipse.viatra.solver.language.model.problem.*;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Adapter Factory</b> for the model.
17 * It provides an adapter <code>createXXX</code> method for each class of the model.
18 * <!-- end-user-doc -->
19 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage
20 * @generated
21 */
22public class ProblemAdapterFactory extends AdapterFactoryImpl {
23 /**
24 * The cached model package.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 protected static ProblemPackage modelPackage;
30
31 /**
32 * Creates an instance of the adapter factory.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 public ProblemAdapterFactory() {
38 if (modelPackage == null) {
39 modelPackage = ProblemPackage.eINSTANCE;
40 }
41 }
42
43 /**
44 * Returns whether this factory is applicable for the type of the object.
45 * <!-- begin-user-doc -->
46 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
47 * <!-- end-user-doc -->
48 * @return whether this factory is applicable for the type of the object.
49 * @generated
50 */
51 @Override
52 public boolean isFactoryForType(Object object) {
53 if (object == modelPackage) {
54 return true;
55 }
56 if (object instanceof EObject) {
57 return ((EObject) object).eClass().getEPackage() == modelPackage;
58 }
59 return false;
60 }
61
62 /**
63 * The switch that delegates to the <code>createXXX</code> methods.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 protected ProblemSwitch<Adapter> modelSwitch = new ProblemSwitch<Adapter>() {
69 @Override
70 public Adapter caseProblem(Problem object) {
71 return createProblemAdapter();
72 }
73
74 @Override
75 public Adapter caseRelation(Relation object) {
76 return createRelationAdapter();
77 }
78
79 @Override
80 public Adapter caseClassDeclaration(ClassDeclaration object) {
81 return createClassDeclarationAdapter();
82 }
83
84 @Override
85 public Adapter caseReferenceDeclaration(ReferenceDeclaration object) {
86 return createReferenceDeclarationAdapter();
87 }
88
89 @Override
90 public Adapter caseNamedElement(NamedElement object) {
91 return createNamedElementAdapter();
92 }
93
94 @Override
95 public Adapter casePredicateDefinition(PredicateDefinition object) {
96 return createPredicateDefinitionAdapter();
97 }
98
99 @Override
100 public Adapter caseParameter(Parameter object) {
101 return createParameterAdapter();
102 }
103
104 @Override
105 public Adapter caseVariable(Variable object) {
106 return createVariableAdapter();
107 }
108
109 @Override
110 public Adapter caseConjunction(Conjunction object) {
111 return createConjunctionAdapter();
112 }
113
114 @Override
115 public Adapter caseLiteral(Literal object) {
116 return createLiteralAdapter();
117 }
118
119 @Override
120 public Adapter caseAtom(Atom object) {
121 return createAtomAdapter();
122 }
123
124 @Override
125 public Adapter caseImplicitVariable(ImplicitVariable object) {
126 return createImplicitVariableAdapter();
127 }
128
129 @Override
130 public Adapter caseNegativeLiteral(NegativeLiteral object) {
131 return createNegativeLiteralAdapter();
132 }
133
134 @Override
135 public Adapter caseExistentialQuantifier(ExistentialQuantifier object) {
136 return createExistentialQuantifierAdapter();
137 }
138
139 @Override
140 public Adapter caseAssertion(Assertion object) {
141 return createAssertionAdapter();
142 }
143
144 @Override
145 public Adapter caseNode(Node object) {
146 return createNodeAdapter();
147 }
148
149 @Override
150 public Adapter caseScopeDeclaration(ScopeDeclaration object) {
151 return createScopeDeclarationAdapter();
152 }
153
154 @Override
155 public Adapter caseStatement(Statement object) {
156 return createStatementAdapter();
157 }
158
159 @Override
160 public Adapter caseTypeScope(TypeScope object) {
161 return createTypeScopeAdapter();
162 }
163
164 @Override
165 public Adapter caseMultiplicity(Multiplicity object) {
166 return createMultiplicityAdapter();
167 }
168
169 @Override
170 public Adapter caseRangeMultiplicity(RangeMultiplicity object) {
171 return createRangeMultiplicityAdapter();
172 }
173
174 @Override
175 public Adapter caseExactMultiplicity(ExactMultiplicity object) {
176 return createExactMultiplicityAdapter();
177 }
178
179 @Override
180 public Adapter defaultCase(EObject object) {
181 return createEObjectAdapter();
182 }
183 };
184
185 /**
186 * Creates an adapter for the <code>target</code>.
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @param target the object to adapt.
190 * @return the adapter for the <code>target</code>.
191 * @generated
192 */
193 @Override
194 public Adapter createAdapter(Notifier target) {
195 return modelSwitch.doSwitch((EObject) target);
196 }
197
198 /**
199 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Problem <em>Problem</em>}'.
200 * <!-- begin-user-doc -->
201 * This default implementation returns null so that we can easily ignore cases;
202 * it's useful to ignore a case when inheritance will catch all the cases anyway.
203 * <!-- end-user-doc -->
204 * @return the new adapter.
205 * @see org.eclipse.viatra.solver.language.model.problem.Problem
206 * @generated
207 */
208 public Adapter createProblemAdapter() {
209 return null;
210 }
211
212 /**
213 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Relation <em>Relation</em>}'.
214 * <!-- begin-user-doc -->
215 * This default implementation returns null so that we can easily ignore cases;
216 * it's useful to ignore a case when inheritance will catch all the cases anyway.
217 * <!-- end-user-doc -->
218 * @return the new adapter.
219 * @see org.eclipse.viatra.solver.language.model.problem.Relation
220 * @generated
221 */
222 public Adapter createRelationAdapter() {
223 return null;
224 }
225
226 /**
227 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration <em>Class Declaration</em>}'.
228 * <!-- begin-user-doc -->
229 * This default implementation returns null so that we can easily ignore cases;
230 * it's useful to ignore a case when inheritance will catch all the cases anyway.
231 * <!-- end-user-doc -->
232 * @return the new adapter.
233 * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration
234 * @generated
235 */
236 public Adapter createClassDeclarationAdapter() {
237 return null;
238 }
239
240 /**
241 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration <em>Reference Declaration</em>}'.
242 * <!-- begin-user-doc -->
243 * This default implementation returns null so that we can easily ignore cases;
244 * it's useful to ignore a case when inheritance will catch all the cases anyway.
245 * <!-- end-user-doc -->
246 * @return the new adapter.
247 * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration
248 * @generated
249 */
250 public Adapter createReferenceDeclarationAdapter() {
251 return null;
252 }
253
254 /**
255 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.NamedElement <em>Named Element</em>}'.
256 * <!-- begin-user-doc -->
257 * This default implementation returns null so that we can easily ignore cases;
258 * it's useful to ignore a case when inheritance will catch all the cases anyway.
259 * <!-- end-user-doc -->
260 * @return the new adapter.
261 * @see org.eclipse.viatra.solver.language.model.problem.NamedElement
262 * @generated
263 */
264 public Adapter createNamedElementAdapter() {
265 return null;
266 }
267
268 /**
269 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition <em>Predicate Definition</em>}'.
270 * <!-- begin-user-doc -->
271 * This default implementation returns null so that we can easily ignore cases;
272 * it's useful to ignore a case when inheritance will catch all the cases anyway.
273 * <!-- end-user-doc -->
274 * @return the new adapter.
275 * @see org.eclipse.viatra.solver.language.model.problem.PredicateDefinition
276 * @generated
277 */
278 public Adapter createPredicateDefinitionAdapter() {
279 return null;
280 }
281
282 /**
283 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Parameter <em>Parameter</em>}'.
284 * <!-- begin-user-doc -->
285 * This default implementation returns null so that we can easily ignore cases;
286 * it's useful to ignore a case when inheritance will catch all the cases anyway.
287 * <!-- end-user-doc -->
288 * @return the new adapter.
289 * @see org.eclipse.viatra.solver.language.model.problem.Parameter
290 * @generated
291 */
292 public Adapter createParameterAdapter() {
293 return null;
294 }
295
296 /**
297 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Variable <em>Variable</em>}'.
298 * <!-- begin-user-doc -->
299 * This default implementation returns null so that we can easily ignore cases;
300 * it's useful to ignore a case when inheritance will catch all the cases anyway.
301 * <!-- end-user-doc -->
302 * @return the new adapter.
303 * @see org.eclipse.viatra.solver.language.model.problem.Variable
304 * @generated
305 */
306 public Adapter createVariableAdapter() {
307 return null;
308 }
309
310 /**
311 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Conjunction <em>Conjunction</em>}'.
312 * <!-- begin-user-doc -->
313 * This default implementation returns null so that we can easily ignore cases;
314 * it's useful to ignore a case when inheritance will catch all the cases anyway.
315 * <!-- end-user-doc -->
316 * @return the new adapter.
317 * @see org.eclipse.viatra.solver.language.model.problem.Conjunction
318 * @generated
319 */
320 public Adapter createConjunctionAdapter() {
321 return null;
322 }
323
324 /**
325 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Literal <em>Literal</em>}'.
326 * <!-- begin-user-doc -->
327 * This default implementation returns null so that we can easily ignore cases;
328 * it's useful to ignore a case when inheritance will catch all the cases anyway.
329 * <!-- end-user-doc -->
330 * @return the new adapter.
331 * @see org.eclipse.viatra.solver.language.model.problem.Literal
332 * @generated
333 */
334 public Adapter createLiteralAdapter() {
335 return null;
336 }
337
338 /**
339 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Atom <em>Atom</em>}'.
340 * <!-- begin-user-doc -->
341 * This default implementation returns null so that we can easily ignore cases;
342 * it's useful to ignore a case when inheritance will catch all the cases anyway.
343 * <!-- end-user-doc -->
344 * @return the new adapter.
345 * @see org.eclipse.viatra.solver.language.model.problem.Atom
346 * @generated
347 */
348 public Adapter createAtomAdapter() {
349 return null;
350 }
351
352 /**
353 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ImplicitVariable <em>Implicit Variable</em>}'.
354 * <!-- begin-user-doc -->
355 * This default implementation returns null so that we can easily ignore cases;
356 * it's useful to ignore a case when inheritance will catch all the cases anyway.
357 * <!-- end-user-doc -->
358 * @return the new adapter.
359 * @see org.eclipse.viatra.solver.language.model.problem.ImplicitVariable
360 * @generated
361 */
362 public Adapter createImplicitVariableAdapter() {
363 return null;
364 }
365
366 /**
367 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral <em>Negative Literal</em>}'.
368 * <!-- begin-user-doc -->
369 * This default implementation returns null so that we can easily ignore cases;
370 * it's useful to ignore a case when inheritance will catch all the cases anyway.
371 * <!-- end-user-doc -->
372 * @return the new adapter.
373 * @see org.eclipse.viatra.solver.language.model.problem.NegativeLiteral
374 * @generated
375 */
376 public Adapter createNegativeLiteralAdapter() {
377 return null;
378 }
379
380 /**
381 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier <em>Existential Quantifier</em>}'.
382 * <!-- begin-user-doc -->
383 * This default implementation returns null so that we can easily ignore cases;
384 * it's useful to ignore a case when inheritance will catch all the cases anyway.
385 * <!-- end-user-doc -->
386 * @return the new adapter.
387 * @see org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier
388 * @generated
389 */
390 public Adapter createExistentialQuantifierAdapter() {
391 return null;
392 }
393
394 /**
395 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Assertion <em>Assertion</em>}'.
396 * <!-- begin-user-doc -->
397 * This default implementation returns null so that we can easily ignore cases;
398 * it's useful to ignore a case when inheritance will catch all the cases anyway.
399 * <!-- end-user-doc -->
400 * @return the new adapter.
401 * @see org.eclipse.viatra.solver.language.model.problem.Assertion
402 * @generated
403 */
404 public Adapter createAssertionAdapter() {
405 return null;
406 }
407
408 /**
409 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Node <em>Node</em>}'.
410 * <!-- begin-user-doc -->
411 * This default implementation returns null so that we can easily ignore cases;
412 * it's useful to ignore a case when inheritance will catch all the cases anyway.
413 * <!-- end-user-doc -->
414 * @return the new adapter.
415 * @see org.eclipse.viatra.solver.language.model.problem.Node
416 * @generated
417 */
418 public Adapter createNodeAdapter() {
419 return null;
420 }
421
422 /**
423 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration <em>Scope Declaration</em>}'.
424 * <!-- begin-user-doc -->
425 * This default implementation returns null so that we can easily ignore cases;
426 * it's useful to ignore a case when inheritance will catch all the cases anyway.
427 * <!-- end-user-doc -->
428 * @return the new adapter.
429 * @see org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration
430 * @generated
431 */
432 public Adapter createScopeDeclarationAdapter() {
433 return null;
434 }
435
436 /**
437 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Statement <em>Statement</em>}'.
438 * <!-- begin-user-doc -->
439 * This default implementation returns null so that we can easily ignore cases;
440 * it's useful to ignore a case when inheritance will catch all the cases anyway.
441 * <!-- end-user-doc -->
442 * @return the new adapter.
443 * @see org.eclipse.viatra.solver.language.model.problem.Statement
444 * @generated
445 */
446 public Adapter createStatementAdapter() {
447 return null;
448 }
449
450 /**
451 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope <em>Type Scope</em>}'.
452 * <!-- begin-user-doc -->
453 * This default implementation returns null so that we can easily ignore cases;
454 * it's useful to ignore a case when inheritance will catch all the cases anyway.
455 * <!-- end-user-doc -->
456 * @return the new adapter.
457 * @see org.eclipse.viatra.solver.language.model.problem.TypeScope
458 * @generated
459 */
460 public Adapter createTypeScopeAdapter() {
461 return null;
462 }
463
464 /**
465 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Multiplicity <em>Multiplicity</em>}'.
466 * <!-- begin-user-doc -->
467 * This default implementation returns null so that we can easily ignore cases;
468 * it's useful to ignore a case when inheritance will catch all the cases anyway.
469 * <!-- end-user-doc -->
470 * @return the new adapter.
471 * @see org.eclipse.viatra.solver.language.model.problem.Multiplicity
472 * @generated
473 */
474 public Adapter createMultiplicityAdapter() {
475 return null;
476 }
477
478 /**
479 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity <em>Range Multiplicity</em>}'.
480 * <!-- begin-user-doc -->
481 * This default implementation returns null so that we can easily ignore cases;
482 * it's useful to ignore a case when inheritance will catch all the cases anyway.
483 * <!-- end-user-doc -->
484 * @return the new adapter.
485 * @see org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity
486 * @generated
487 */
488 public Adapter createRangeMultiplicityAdapter() {
489 return null;
490 }
491
492 /**
493 * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity <em>Exact Multiplicity</em>}'.
494 * <!-- begin-user-doc -->
495 * This default implementation returns null so that we can easily ignore cases;
496 * it's useful to ignore a case when inheritance will catch all the cases anyway.
497 * <!-- end-user-doc -->
498 * @return the new adapter.
499 * @see org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity
500 * @generated
501 */
502 public Adapter createExactMultiplicityAdapter() {
503 return null;
504 }
505
506 /**
507 * Creates a new adapter for the default case.
508 * <!-- begin-user-doc -->
509 * This default implementation returns null.
510 * <!-- end-user-doc -->
511 * @return the new adapter.
512 * @generated
513 */
514 public Adapter createEObjectAdapter() {
515 return null;
516 }
517
518} //ProblemAdapterFactory
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
new file mode 100644
index 00000000..a9e1455b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
@@ -0,0 +1,620 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.util;
4
5import org.eclipse.emf.ecore.EObject;
6import org.eclipse.emf.ecore.EPackage;
7
8import org.eclipse.emf.ecore.util.Switch;
9
10import org.eclipse.viatra.solver.language.model.problem.*;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Switch</b> for the model's inheritance hierarchy.
15 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
16 * to invoke the <code>caseXXX</code> method for each class of the model,
17 * starting with the actual class of the object
18 * and proceeding up the inheritance hierarchy
19 * until a non-null result is returned,
20 * which is the result of the switch.
21 * <!-- end-user-doc -->
22 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage
23 * @generated
24 */
25public class ProblemSwitch<T> extends Switch<T> {
26 /**
27 * The cached model package
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 protected static ProblemPackage modelPackage;
33
34 /**
35 * Creates an instance of the switch.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 public ProblemSwitch() {
41 if (modelPackage == null) {
42 modelPackage = ProblemPackage.eINSTANCE;
43 }
44 }
45
46 /**
47 * Checks whether this is a switch for the given package.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param ePackage the package in question.
51 * @return whether this is a switch for the given package.
52 * @generated
53 */
54 @Override
55 protected boolean isSwitchFor(EPackage ePackage) {
56 return ePackage == modelPackage;
57 }
58
59 /**
60 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @return the first non-null result returned by a <code>caseXXX</code> call.
64 * @generated
65 */
66 @Override
67 protected T doSwitch(int classifierID, EObject theEObject) {
68 switch (classifierID) {
69 case ProblemPackage.PROBLEM: {
70 Problem problem = (Problem) theEObject;
71 T result = caseProblem(problem);
72 if (result == null)
73 result = defaultCase(theEObject);
74 return result;
75 }
76 case ProblemPackage.RELATION: {
77 Relation relation = (Relation) theEObject;
78 T result = caseRelation(relation);
79 if (result == null)
80 result = caseNamedElement(relation);
81 if (result == null)
82 result = defaultCase(theEObject);
83 return result;
84 }
85 case ProblemPackage.CLASS_DECLARATION: {
86 ClassDeclaration classDeclaration = (ClassDeclaration) theEObject;
87 T result = caseClassDeclaration(classDeclaration);
88 if (result == null)
89 result = caseRelation(classDeclaration);
90 if (result == null)
91 result = caseStatement(classDeclaration);
92 if (result == null)
93 result = caseNamedElement(classDeclaration);
94 if (result == null)
95 result = defaultCase(theEObject);
96 return result;
97 }
98 case ProblemPackage.REFERENCE_DECLARATION: {
99 ReferenceDeclaration referenceDeclaration = (ReferenceDeclaration) theEObject;
100 T result = caseReferenceDeclaration(referenceDeclaration);
101 if (result == null)
102 result = caseRelation(referenceDeclaration);
103 if (result == null)
104 result = caseNamedElement(referenceDeclaration);
105 if (result == null)
106 result = defaultCase(theEObject);
107 return result;
108 }
109 case ProblemPackage.NAMED_ELEMENT: {
110 NamedElement namedElement = (NamedElement) theEObject;
111 T result = caseNamedElement(namedElement);
112 if (result == null)
113 result = defaultCase(theEObject);
114 return result;
115 }
116 case ProblemPackage.PREDICATE_DEFINITION: {
117 PredicateDefinition predicateDefinition = (PredicateDefinition) theEObject;
118 T result = casePredicateDefinition(predicateDefinition);
119 if (result == null)
120 result = caseRelation(predicateDefinition);
121 if (result == null)
122 result = caseStatement(predicateDefinition);
123 if (result == null)
124 result = caseNamedElement(predicateDefinition);
125 if (result == null)
126 result = defaultCase(theEObject);
127 return result;
128 }
129 case ProblemPackage.PARAMETER: {
130 Parameter parameter = (Parameter) theEObject;
131 T result = caseParameter(parameter);
132 if (result == null)
133 result = caseVariable(parameter);
134 if (result == null)
135 result = caseNamedElement(parameter);
136 if (result == null)
137 result = defaultCase(theEObject);
138 return result;
139 }
140 case ProblemPackage.VARIABLE: {
141 Variable variable = (Variable) theEObject;
142 T result = caseVariable(variable);
143 if (result == null)
144 result = caseNamedElement(variable);
145 if (result == null)
146 result = defaultCase(theEObject);
147 return result;
148 }
149 case ProblemPackage.CONJUNCTION: {
150 Conjunction conjunction = (Conjunction) theEObject;
151 T result = caseConjunction(conjunction);
152 if (result == null)
153 result = caseExistentialQuantifier(conjunction);
154 if (result == null)
155 result = defaultCase(theEObject);
156 return result;
157 }
158 case ProblemPackage.LITERAL: {
159 Literal literal = (Literal) theEObject;
160 T result = caseLiteral(literal);
161 if (result == null)
162 result = defaultCase(theEObject);
163 return result;
164 }
165 case ProblemPackage.ATOM: {
166 Atom atom = (Atom) theEObject;
167 T result = caseAtom(atom);
168 if (result == null)
169 result = caseLiteral(atom);
170 if (result == null)
171 result = defaultCase(theEObject);
172 return result;
173 }
174 case ProblemPackage.IMPLICIT_VARIABLE: {
175 ImplicitVariable implicitVariable = (ImplicitVariable) theEObject;
176 T result = caseImplicitVariable(implicitVariable);
177 if (result == null)
178 result = caseVariable(implicitVariable);
179 if (result == null)
180 result = caseNamedElement(implicitVariable);
181 if (result == null)
182 result = defaultCase(theEObject);
183 return result;
184 }
185 case ProblemPackage.NEGATIVE_LITERAL: {
186 NegativeLiteral negativeLiteral = (NegativeLiteral) theEObject;
187 T result = caseNegativeLiteral(negativeLiteral);
188 if (result == null)
189 result = caseExistentialQuantifier(negativeLiteral);
190 if (result == null)
191 result = caseLiteral(negativeLiteral);
192 if (result == null)
193 result = defaultCase(theEObject);
194 return result;
195 }
196 case ProblemPackage.EXISTENTIAL_QUANTIFIER: {
197 ExistentialQuantifier existentialQuantifier = (ExistentialQuantifier) theEObject;
198 T result = caseExistentialQuantifier(existentialQuantifier);
199 if (result == null)
200 result = defaultCase(theEObject);
201 return result;
202 }
203 case ProblemPackage.ASSERTION: {
204 Assertion assertion = (Assertion) theEObject;
205 T result = caseAssertion(assertion);
206 if (result == null)
207 result = caseStatement(assertion);
208 if (result == null)
209 result = defaultCase(theEObject);
210 return result;
211 }
212 case ProblemPackage.NODE: {
213 Node node = (Node) theEObject;
214 T result = caseNode(node);
215 if (result == null)
216 result = caseNamedElement(node);
217 if (result == null)
218 result = defaultCase(theEObject);
219 return result;
220 }
221 case ProblemPackage.SCOPE_DECLARATION: {
222 ScopeDeclaration scopeDeclaration = (ScopeDeclaration) theEObject;
223 T result = caseScopeDeclaration(scopeDeclaration);
224 if (result == null)
225 result = caseStatement(scopeDeclaration);
226 if (result == null)
227 result = defaultCase(theEObject);
228 return result;
229 }
230 case ProblemPackage.STATEMENT: {
231 Statement statement = (Statement) theEObject;
232 T result = caseStatement(statement);
233 if (result == null)
234 result = defaultCase(theEObject);
235 return result;
236 }
237 case ProblemPackage.TYPE_SCOPE: {
238 TypeScope typeScope = (TypeScope) theEObject;
239 T result = caseTypeScope(typeScope);
240 if (result == null)
241 result = defaultCase(theEObject);
242 return result;
243 }
244 case ProblemPackage.MULTIPLICITY: {
245 Multiplicity multiplicity = (Multiplicity) theEObject;
246 T result = caseMultiplicity(multiplicity);
247 if (result == null)
248 result = defaultCase(theEObject);
249 return result;
250 }
251 case ProblemPackage.RANGE_MULTIPLICITY: {
252 RangeMultiplicity rangeMultiplicity = (RangeMultiplicity) theEObject;
253 T result = caseRangeMultiplicity(rangeMultiplicity);
254 if (result == null)
255 result = caseMultiplicity(rangeMultiplicity);
256 if (result == null)
257 result = defaultCase(theEObject);
258 return result;
259 }
260 case ProblemPackage.EXACT_MULTIPLICITY: {
261 ExactMultiplicity exactMultiplicity = (ExactMultiplicity) theEObject;
262 T result = caseExactMultiplicity(exactMultiplicity);
263 if (result == null)
264 result = caseMultiplicity(exactMultiplicity);
265 if (result == null)
266 result = defaultCase(theEObject);
267 return result;
268 }
269 default:
270 return defaultCase(theEObject);
271 }
272 }
273
274 /**
275 * Returns the result of interpreting the object as an instance of '<em>Problem</em>'.
276 * <!-- begin-user-doc -->
277 * This implementation returns null;
278 * returning a non-null result will terminate the switch.
279 * <!-- end-user-doc -->
280 * @param object the target of the switch.
281 * @return the result of interpreting the object as an instance of '<em>Problem</em>'.
282 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
283 * @generated
284 */
285 public T caseProblem(Problem object) {
286 return null;
287 }
288
289 /**
290 * Returns the result of interpreting the object as an instance of '<em>Relation</em>'.
291 * <!-- begin-user-doc -->
292 * This implementation returns null;
293 * returning a non-null result will terminate the switch.
294 * <!-- end-user-doc -->
295 * @param object the target of the switch.
296 * @return the result of interpreting the object as an instance of '<em>Relation</em>'.
297 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
298 * @generated
299 */
300 public T caseRelation(Relation object) {
301 return null;
302 }
303
304 /**
305 * Returns the result of interpreting the object as an instance of '<em>Class Declaration</em>'.
306 * <!-- begin-user-doc -->
307 * This implementation returns null;
308 * returning a non-null result will terminate the switch.
309 * <!-- end-user-doc -->
310 * @param object the target of the switch.
311 * @return the result of interpreting the object as an instance of '<em>Class Declaration</em>'.
312 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
313 * @generated
314 */
315 public T caseClassDeclaration(ClassDeclaration object) {
316 return null;
317 }
318
319 /**
320 * Returns the result of interpreting the object as an instance of '<em>Reference Declaration</em>'.
321 * <!-- begin-user-doc -->
322 * This implementation returns null;
323 * returning a non-null result will terminate the switch.
324 * <!-- end-user-doc -->
325 * @param object the target of the switch.
326 * @return the result of interpreting the object as an instance of '<em>Reference Declaration</em>'.
327 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
328 * @generated
329 */
330 public T caseReferenceDeclaration(ReferenceDeclaration object) {
331 return null;
332 }
333
334 /**
335 * Returns the result of interpreting the object as an instance of '<em>Named Element</em>'.
336 * <!-- begin-user-doc -->
337 * This implementation returns null;
338 * returning a non-null result will terminate the switch.
339 * <!-- end-user-doc -->
340 * @param object the target of the switch.
341 * @return the result of interpreting the object as an instance of '<em>Named Element</em>'.
342 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
343 * @generated
344 */
345 public T caseNamedElement(NamedElement object) {
346 return null;
347 }
348
349 /**
350 * Returns the result of interpreting the object as an instance of '<em>Predicate Definition</em>'.
351 * <!-- begin-user-doc -->
352 * This implementation returns null;
353 * returning a non-null result will terminate the switch.
354 * <!-- end-user-doc -->
355 * @param object the target of the switch.
356 * @return the result of interpreting the object as an instance of '<em>Predicate Definition</em>'.
357 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
358 * @generated
359 */
360 public T casePredicateDefinition(PredicateDefinition object) {
361 return null;
362 }
363
364 /**
365 * Returns the result of interpreting the object as an instance of '<em>Parameter</em>'.
366 * <!-- begin-user-doc -->
367 * This implementation returns null;
368 * returning a non-null result will terminate the switch.
369 * <!-- end-user-doc -->
370 * @param object the target of the switch.
371 * @return the result of interpreting the object as an instance of '<em>Parameter</em>'.
372 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
373 * @generated
374 */
375 public T caseParameter(Parameter object) {
376 return null;
377 }
378
379 /**
380 * Returns the result of interpreting the object as an instance of '<em>Variable</em>'.
381 * <!-- begin-user-doc -->
382 * This implementation returns null;
383 * returning a non-null result will terminate the switch.
384 * <!-- end-user-doc -->
385 * @param object the target of the switch.
386 * @return the result of interpreting the object as an instance of '<em>Variable</em>'.
387 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
388 * @generated
389 */
390 public T caseVariable(Variable object) {
391 return null;
392 }
393
394 /**
395 * Returns the result of interpreting the object as an instance of '<em>Conjunction</em>'.
396 * <!-- begin-user-doc -->
397 * This implementation returns null;
398 * returning a non-null result will terminate the switch.
399 * <!-- end-user-doc -->
400 * @param object the target of the switch.
401 * @return the result of interpreting the object as an instance of '<em>Conjunction</em>'.
402 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
403 * @generated
404 */
405 public T caseConjunction(Conjunction object) {
406 return null;
407 }
408
409 /**
410 * Returns the result of interpreting the object as an instance of '<em>Literal</em>'.
411 * <!-- begin-user-doc -->
412 * This implementation returns null;
413 * returning a non-null result will terminate the switch.
414 * <!-- end-user-doc -->
415 * @param object the target of the switch.
416 * @return the result of interpreting the object as an instance of '<em>Literal</em>'.
417 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
418 * @generated
419 */
420 public T caseLiteral(Literal object) {
421 return null;
422 }
423
424 /**
425 * Returns the result of interpreting the object as an instance of '<em>Atom</em>'.
426 * <!-- begin-user-doc -->
427 * This implementation returns null;
428 * returning a non-null result will terminate the switch.
429 * <!-- end-user-doc -->
430 * @param object the target of the switch.
431 * @return the result of interpreting the object as an instance of '<em>Atom</em>'.
432 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
433 * @generated
434 */
435 public T caseAtom(Atom object) {
436 return null;
437 }
438
439 /**
440 * Returns the result of interpreting the object as an instance of '<em>Implicit Variable</em>'.
441 * <!-- begin-user-doc -->
442 * This implementation returns null;
443 * returning a non-null result will terminate the switch.
444 * <!-- end-user-doc -->
445 * @param object the target of the switch.
446 * @return the result of interpreting the object as an instance of '<em>Implicit Variable</em>'.
447 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
448 * @generated
449 */
450 public T caseImplicitVariable(ImplicitVariable object) {
451 return null;
452 }
453
454 /**
455 * Returns the result of interpreting the object as an instance of '<em>Negative Literal</em>'.
456 * <!-- begin-user-doc -->
457 * This implementation returns null;
458 * returning a non-null result will terminate the switch.
459 * <!-- end-user-doc -->
460 * @param object the target of the switch.
461 * @return the result of interpreting the object as an instance of '<em>Negative Literal</em>'.
462 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
463 * @generated
464 */
465 public T caseNegativeLiteral(NegativeLiteral object) {
466 return null;
467 }
468
469 /**
470 * Returns the result of interpreting the object as an instance of '<em>Existential Quantifier</em>'.
471 * <!-- begin-user-doc -->
472 * This implementation returns null;
473 * returning a non-null result will terminate the switch.
474 * <!-- end-user-doc -->
475 * @param object the target of the switch.
476 * @return the result of interpreting the object as an instance of '<em>Existential Quantifier</em>'.
477 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
478 * @generated
479 */
480 public T caseExistentialQuantifier(ExistentialQuantifier object) {
481 return null;
482 }
483
484 /**
485 * Returns the result of interpreting the object as an instance of '<em>Assertion</em>'.
486 * <!-- begin-user-doc -->
487 * This implementation returns null;
488 * returning a non-null result will terminate the switch.
489 * <!-- end-user-doc -->
490 * @param object the target of the switch.
491 * @return the result of interpreting the object as an instance of '<em>Assertion</em>'.
492 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
493 * @generated
494 */
495 public T caseAssertion(Assertion object) {
496 return null;
497 }
498
499 /**
500 * Returns the result of interpreting the object as an instance of '<em>Node</em>'.
501 * <!-- begin-user-doc -->
502 * This implementation returns null;
503 * returning a non-null result will terminate the switch.
504 * <!-- end-user-doc -->
505 * @param object the target of the switch.
506 * @return the result of interpreting the object as an instance of '<em>Node</em>'.
507 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
508 * @generated
509 */
510 public T caseNode(Node object) {
511 return null;
512 }
513
514 /**
515 * Returns the result of interpreting the object as an instance of '<em>Scope Declaration</em>'.
516 * <!-- begin-user-doc -->
517 * This implementation returns null;
518 * returning a non-null result will terminate the switch.
519 * <!-- end-user-doc -->
520 * @param object the target of the switch.
521 * @return the result of interpreting the object as an instance of '<em>Scope Declaration</em>'.
522 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
523 * @generated
524 */
525 public T caseScopeDeclaration(ScopeDeclaration object) {
526 return null;
527 }
528
529 /**
530 * Returns the result of interpreting the object as an instance of '<em>Statement</em>'.
531 * <!-- begin-user-doc -->
532 * This implementation returns null;
533 * returning a non-null result will terminate the switch.
534 * <!-- end-user-doc -->
535 * @param object the target of the switch.
536 * @return the result of interpreting the object as an instance of '<em>Statement</em>'.
537 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
538 * @generated
539 */
540 public T caseStatement(Statement object) {
541 return null;
542 }
543
544 /**
545 * Returns the result of interpreting the object as an instance of '<em>Type Scope</em>'.
546 * <!-- begin-user-doc -->
547 * This implementation returns null;
548 * returning a non-null result will terminate the switch.
549 * <!-- end-user-doc -->
550 * @param object the target of the switch.
551 * @return the result of interpreting the object as an instance of '<em>Type Scope</em>'.
552 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
553 * @generated
554 */
555 public T caseTypeScope(TypeScope object) {
556 return null;
557 }
558
559 /**
560 * Returns the result of interpreting the object as an instance of '<em>Multiplicity</em>'.
561 * <!-- begin-user-doc -->
562 * This implementation returns null;
563 * returning a non-null result will terminate the switch.
564 * <!-- end-user-doc -->
565 * @param object the target of the switch.
566 * @return the result of interpreting the object as an instance of '<em>Multiplicity</em>'.
567 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
568 * @generated
569 */
570 public T caseMultiplicity(Multiplicity object) {
571 return null;
572 }
573
574 /**
575 * Returns the result of interpreting the object as an instance of '<em>Range Multiplicity</em>'.
576 * <!-- begin-user-doc -->
577 * This implementation returns null;
578 * returning a non-null result will terminate the switch.
579 * <!-- end-user-doc -->
580 * @param object the target of the switch.
581 * @return the result of interpreting the object as an instance of '<em>Range Multiplicity</em>'.
582 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
583 * @generated
584 */
585 public T caseRangeMultiplicity(RangeMultiplicity object) {
586 return null;
587 }
588
589 /**
590 * Returns the result of interpreting the object as an instance of '<em>Exact Multiplicity</em>'.
591 * <!-- begin-user-doc -->
592 * This implementation returns null;
593 * returning a non-null result will terminate the switch.
594 * <!-- end-user-doc -->
595 * @param object the target of the switch.
596 * @return the result of interpreting the object as an instance of '<em>Exact Multiplicity</em>'.
597 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
598 * @generated
599 */
600 public T caseExactMultiplicity(ExactMultiplicity object) {
601 return null;
602 }
603
604 /**
605 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
606 * <!-- begin-user-doc -->
607 * This implementation returns null;
608 * returning a non-null result will terminate the switch, but this is the last case anyway.
609 * <!-- end-user-doc -->
610 * @param object the target of the switch.
611 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
612 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
613 * @generated
614 */
615 @Override
616 public T defaultCase(EObject object) {
617 return null;
618 }
619
620} //ProblemSwitch
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore
new file mode 100644
index 00000000..9b87280d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore
@@ -0,0 +1,94 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="problem" nsURI="http://www.eclipse.org/viatra/solver/language/model/Problem"
4 nsPrefix="problem">
5 <eClassifiers xsi:type="ecore:EClass" name="Problem">
6 <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
7 eType="#//Node" containment="true"/>
8 <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
9 eType="#//Statement" containment="true"/>
10 </eClassifiers>
11 <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true" eSuperTypes="#//NamedElement"/>
12 <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Relation #//Statement">
13 <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
14 <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1"
15 eType="#//ClassDeclaration"/>
16 <eStructuralFeatures xsi:type="ecore:EReference" name="referenceDeclarations"
17 upperBound="-1" eType="#//ReferenceDeclaration" containment="true"/>
18 </eClassifiers>
19 <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation">
20 <eStructuralFeatures xsi:type="ecore:EReference" name="referenceType" eType="#//ClassDeclaration"/>
21 <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/>
22 <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
23 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
24 containment="true"/>
25 </eClassifiers>
26 <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true">
27 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
28 </eClassifiers>
29 <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//Relation #//Statement">
30 <eStructuralFeatures xsi:type="ecore:EAttribute" name="error" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
31 <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
32 eType="#//Parameter" containment="true"/>
33 <eStructuralFeatures xsi:type="ecore:EReference" name="bodies" upperBound="-1"
34 eType="#//Conjunction" containment="true"/>
35 </eClassifiers>
36 <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable">
37 <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//ClassDeclaration"/>
38 </eClassifiers>
39 <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//NamedElement"/>
40 <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//ExistentialQuantifier">
41 <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
42 eType="#//Literal" containment="true"/>
43 </eClassifiers>
44 <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/>
45 <eClassifiers xsi:type="ecore:EClass" name="Atom" eSuperTypes="#//Literal">
46 <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/>
47 <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
48 eType="#//Variable"/>
49 <eStructuralFeatures xsi:type="ecore:EAttribute" name="transitiveClosure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
50 </eClassifiers>
51 <eClassifiers xsi:type="ecore:EClass" name="ImplicitVariable" eSuperTypes="#//Variable"/>
52 <eClassifiers xsi:type="ecore:EClass" name="NegativeLiteral" eSuperTypes="#//ExistentialQuantifier #//Literal">
53 <eStructuralFeatures xsi:type="ecore:EReference" name="atom" eType="#//Atom" containment="true"/>
54 </eClassifiers>
55 <eClassifiers xsi:type="ecore:EClass" name="ExistentialQuantifier" abstract="true"
56 interface="true">
57 <eStructuralFeatures xsi:type="ecore:EReference" name="implicitVariables" upperBound="-1"
58 eType="#//ImplicitVariable" containment="true"/>
59 </eClassifiers>
60 <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement">
61 <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/>
62 <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
63 eType="#//Node"/>
64 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/>
65 </eClassifiers>
66 <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//NamedElement"/>
67 <eClassifiers xsi:type="ecore:EEnum" name="LogicValue">
68 <eLiterals name="TRUE" literal="TRUE"/>
69 <eLiterals name="FALSE" value="1"/>
70 <eLiterals name="UNKNOWN" value="2"/>
71 </eClassifiers>
72 <eClassifiers xsi:type="ecore:EClass" name="ScopeDeclaration" eSuperTypes="#//Statement">
73 <eStructuralFeatures xsi:type="ecore:EReference" name="typeScopes" upperBound="-1"
74 eType="#//TypeScope" containment="true"/>
75 </eClassifiers>
76 <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" interface="true"/>
77 <eClassifiers xsi:type="ecore:EClass" name="TypeScope">
78 <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//ClassDeclaration"/>
79 <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
80 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
81 containment="true"/>
82 </eClassifiers>
83 <eClassifiers xsi:type="ecore:EClass" name="Multiplicity" abstract="true"/>
84 <eClassifiers xsi:type="ecore:EClass" name="RangeMultiplicity" eSuperTypes="#//Multiplicity">
85 <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
86 defaultValueLiteral="0"/>
87 <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
88 defaultValueLiteral="-1"/>
89 </eClassifiers>
90 <eClassifiers xsi:type="ecore:EClass" name="ExactMultiplicity" eSuperTypes="#//Multiplicity">
91 <eStructuralFeatures xsi:type="ecore:EAttribute" name="exactValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
92 defaultValueLiteral="1"/>
93 </eClassifiers>
94</ecore:EPackage>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel
new file mode 100644
index 00000000..2dfe62e6
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel
@@ -0,0 +1,87 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
4 modelDirectory="/org.eclipse.viatra.solver.language.model/src/main/emf-gen"
5 creationIcons="false" editDirectory="/org.eclipse.viatra.solver.language.model.edit/src-gen"
6 editorDirectory="/org.eclipse.viatra.solver.language.model.editor/src-gen" modelPluginID="org.eclipse.viatra.solver.language.model"
7 modelName="Problem" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
8 codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
9 copyrightFields="false" operationReflection="true" importOrganizing="true">
10 <foreignModel>problem.ecore</foreignModel>
11 <testsDirectory xsi:nil="true"/>
12 <genPackages prefix="Problem" basePackage="org.eclipse.viatra.solver.language.model"
13 disposableProviderFactory="true" ecorePackage="problem.ecore#/">
14 <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//LogicValue">
15 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/TRUE"/>
16 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/FALSE"/>
17 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/UNKNOWN"/>
18 </genEnums>
19 <genClasses ecoreClass="problem.ecore#//Problem">
20 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/>
21 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/>
22 </genClasses>
23 <genClasses ecoreClass="problem.ecore#//Relation"/>
24 <genClasses ecoreClass="problem.ecore#//ClassDeclaration">
25 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ClassDeclaration/abstract"/>
26 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/superTypes"/>
27 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/referenceDeclarations"/>
28 </genClasses>
29 <genClasses ecoreClass="problem.ecore#//ReferenceDeclaration">
30 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/referenceType"/>
31 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/opposite"/>
32 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ReferenceDeclaration/containment"/>
33 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/multiplicity"/>
34 </genClasses>
35 <genClasses ecoreClass="problem.ecore#//NamedElement">
36 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//NamedElement/name"/>
37 </genClasses>
38 <genClasses ecoreClass="problem.ecore#//PredicateDefinition">
39 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//PredicateDefinition/error"/>
40 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//PredicateDefinition/parameters"/>
41 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//PredicateDefinition/bodies"/>
42 </genClasses>
43 <genClasses ecoreClass="problem.ecore#//Parameter">
44 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Parameter/parameterType"/>
45 </genClasses>
46 <genClasses ecoreClass="problem.ecore#//Variable"/>
47 <genClasses ecoreClass="problem.ecore#//Conjunction">
48 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Conjunction/literals"/>
49 </genClasses>
50 <genClasses ecoreClass="problem.ecore#//Literal"/>
51 <genClasses ecoreClass="problem.ecore#//Atom">
52 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/relation"/>
53 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/arguments"/>
54 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Atom/transitiveClosure"/>
55 </genClasses>
56 <genClasses ecoreClass="problem.ecore#//ImplicitVariable"/>
57 <genClasses ecoreClass="problem.ecore#//NegativeLiteral">
58 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//NegativeLiteral/atom"/>
59 </genClasses>
60 <genClasses ecoreClass="problem.ecore#//ExistentialQuantifier">
61 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExistentialQuantifier/implicitVariables"/>
62 </genClasses>
63 <genClasses ecoreClass="problem.ecore#//Assertion">
64 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/relation"/>
65 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/arguments"/>
66 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/value"/>
67 </genClasses>
68 <genClasses ecoreClass="problem.ecore#//Node"/>
69 <genClasses ecoreClass="problem.ecore#//ScopeDeclaration">
70 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ScopeDeclaration/typeScopes"/>
71 </genClasses>
72 <genClasses ecoreClass="problem.ecore#//Statement"/>
73 <genClasses ecoreClass="problem.ecore#//TypeScope">
74 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/targetType"/>
75 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//TypeScope/increment"/>
76 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/multiplicity"/>
77 </genClasses>
78 <genClasses ecoreClass="problem.ecore#//Multiplicity"/>
79 <genClasses ecoreClass="problem.ecore#//RangeMultiplicity">
80 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//RangeMultiplicity/lowerBound"/>
81 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//RangeMultiplicity/upperBound"/>
82 </genClasses>
83 <genClasses ecoreClass="problem.ecore#//ExactMultiplicity">
84 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ExactMultiplicity/exactValue"/>
85 </genClasses>
86 </genPackages>
87</genmodel:GenModel>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.classpath b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.classpath
new file mode 100644
index 00000000..659559e1
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.classpath
@@ -0,0 +1,35 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" output="bin/main" path="src/main/java">
4 <attributes>
5 <attribute name="gradle_scope" value="main"/>
6 <attribute name="gradle_used_by_scope" value="main,test"/>
7 </attributes>
8 </classpathentry>
9 <classpathentry kind="src" output="bin/main" path="src/main/resources">
10 <attributes>
11 <attribute name="gradle_scope" value="main"/>
12 <attribute name="gradle_used_by_scope" value="main,test"/>
13 </attributes>
14 </classpathentry>
15 <classpathentry kind="src" output="bin/main" path="src/main/xtext-gen">
16 <attributes>
17 <attribute name="gradle_scope" value="main"/>
18 <attribute name="gradle_used_by_scope" value="main,test"/>
19 </attributes>
20 </classpathentry>
21 <classpathentry kind="src" output="bin/main" path="src/main/xtend-gen">
22 <attributes>
23 <attribute name="gradle_scope" value="main"/>
24 <attribute name="gradle_used_by_scope" value="main,test"/>
25 </attributes>
26 </classpathentry>
27 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
28 <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
29 <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer">
30 <attributes>
31 <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
32 </attributes>
33 </classpathentry>
34 <classpathentry kind="output" path="bin/default"/>
35</classpath>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.gitignore b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.gitignore
new file mode 100644
index 00000000..84c048a7
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.gitignore
@@ -0,0 +1 @@
/build/
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.project b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.project
new file mode 100644
index 00000000..9b5a8e63
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.project
@@ -0,0 +1,40 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>org.eclipse.viatra.solver.language.web</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.jdt.core.javabuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.wst.common.project.facet.core.builder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 <buildCommand>
24 <name>org.eclipse.wst.validation.validationbuilder</name>
25 <arguments>
26 </arguments>
27 </buildCommand>
28 <buildCommand>
29 <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
30 <arguments>
31 </arguments>
32 </buildCommand>
33 </buildSpec>
34 <natures>
35 <nature>org.eclipse.jdt.core.javanature</nature>
36 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
37 <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
38 <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
39 </natures>
40</projectDescription>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.core.resources.prefs b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..99f26c02
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
1eclipse.preferences.version=1
2encoding/<project>=UTF-8
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..7adc0fb9
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,10 @@
1eclipse.preferences.version=1
2org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
4org.eclipse.jdt.core.compiler.compliance=11
5org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
7org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
8org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
9org.eclipse.jdt.core.compiler.release=enabled
10org.eclipse.jdt.core.compiler.source=11
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/build.gradle b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/build.gradle
new file mode 100644
index 00000000..a3bfc039
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/build.gradle
@@ -0,0 +1,35 @@
1plugins {
2 id 'war'
3}
4
5dependencies {
6 compile project(':org.eclipse.viatra.solver.language')
7 compile project(':org.eclipse.viatra.solver.language.ide')
8 compile "org.eclipse.xtext:org.eclipse.xtext.xbase.web:${xtextVersion}"
9 compile "org.eclipse.xtext:org.eclipse.xtext.web.servlet:${xtextVersion}"
10 compile "org.eclipse.xtend:org.eclipse.xtend.lib:${xtextVersion}"
11 compile "org.webjars:requirejs:2.3.6"
12 compile "org.webjars:requirejs-text:2.0.15"
13 compile "org.webjars:jquery:3.6.0"
14 compile "org.webjars:codemirror:5.41.0"
15 providedCompile "org.eclipse.jetty:jetty-annotations:9.4.42.v20210604"
16 providedCompile "org.eclipse.jetty:jetty-rewrite:9.4.42.v20210604"
17 providedCompile "org.slf4j:slf4j-simple:1.7.31"
18}
19
20task jettyRun(type:JavaExec) {
21 dependsOn(sourceSets.main.runtimeClasspath)
22 classpath = sourceSets.main.runtimeClasspath.filter{it.exists()}
23 main = 'org.eclipse.viatra.solver.language.web.ServerLauncher'
24 standardInput = System.in
25 group = 'run'
26 description = 'Starts an example Jetty server with your language'
27}
28
29eclipse {
30 project {
31 file.whenMerged {
32 natures.remove('org.eclipse.wst.common.modulecore.ModuleCoreNature')
33 }
34 }
35} \ No newline at end of file
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemServlet.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemServlet.java
new file mode 100644
index 00000000..5de708f0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemServlet.java
@@ -0,0 +1,36 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.web;
5
6import com.google.inject.Injector;
7import javax.servlet.ServletException;
8import javax.servlet.annotation.WebServlet;
9import org.eclipse.xtext.util.DisposableRegistry;
10import org.eclipse.xtext.web.servlet.XtextServlet;
11
12/**
13 * Deploy this class into a servlet container to enable DSL-specific services.
14 */
15@WebServlet(name = "XtextServices", urlPatterns = "/xtext-service/*")
16public class ProblemServlet extends XtextServlet {
17
18 private static final long serialVersionUID = 1L;
19
20 DisposableRegistry disposableRegistry;
21
22 public void init() throws ServletException {
23 super.init();
24 Injector injector = new ProblemWebSetup().createInjectorAndDoEMFRegistration();
25 this.disposableRegistry = injector.getInstance(DisposableRegistry.class);
26 }
27
28 public void destroy() {
29 if (disposableRegistry != null) {
30 disposableRegistry.dispose();
31 disposableRegistry = null;
32 }
33 super.destroy();
34 }
35
36}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebModule.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebModule.java
new file mode 100644
index 00000000..0eea7f1e
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebModule.java
@@ -0,0 +1,11 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.web;
5
6
7/**
8 * Use this class to register additional components to be used within the web application.
9 */
10public class ProblemWebModule extends AbstractProblemWebModule {
11}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebSetup.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebSetup.java
new file mode 100644
index 00000000..8d5778af
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebSetup.java
@@ -0,0 +1,23 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.web;
5
6import com.google.inject.Guice;
7import com.google.inject.Injector;
8import org.eclipse.viatra.solver.language.ProblemRuntimeModule;
9import org.eclipse.viatra.solver.language.ProblemStandaloneSetup;
10import org.eclipse.viatra.solver.language.ide.ProblemIdeModule;
11import org.eclipse.xtext.util.Modules2;
12
13/**
14 * Initialization support for running Xtext languages in web applications.
15 */
16public class ProblemWebSetup extends ProblemStandaloneSetup {
17
18 @Override
19 public Injector createInjector() {
20 return Guice.createInjector(Modules2.mixin(new ProblemRuntimeModule(), new ProblemIdeModule(), new ProblemWebModule()));
21 }
22
23}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java
new file mode 100644
index 00000000..d25f4ae9
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java
@@ -0,0 +1,65 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.web;
5
6import java.net.InetSocketAddress;
7import org.eclipse.jetty.annotations.AnnotationConfiguration;
8import org.eclipse.jetty.server.Server;
9import org.eclipse.jetty.util.log.Slf4jLog;
10import org.eclipse.jetty.webapp.Configuration;
11import org.eclipse.jetty.webapp.MetaInfConfiguration;
12import org.eclipse.jetty.webapp.WebAppContext;
13import org.eclipse.jetty.webapp.WebInfConfiguration;
14import org.eclipse.jetty.webapp.WebXmlConfiguration;
15
16/**
17 * This program starts an HTTP server for testing the web integration of your DSL.
18 * Just execute it and point a web browser to http://localhost:8080/
19 */
20public class ServerLauncher {
21 public static void main(String[] args) {
22 Server server = new Server(new InetSocketAddress("localhost", 1313));
23 WebAppContext ctx = new WebAppContext();
24 ctx.setResourceBase("src/main/webapp");
25 ctx.setWelcomeFiles(new String[] {"index.html"});
26 ctx.setContextPath("/");
27 ctx.setConfigurations(new Configuration[] {
28 new AnnotationConfiguration(),
29 new WebXmlConfiguration(),
30 new WebInfConfiguration(),
31 new MetaInfConfiguration()
32 });
33 ctx.setAttribute(WebInfConfiguration.CONTAINER_JAR_PATTERN,
34 ".*/org\\.eclipse\\.viatra\\.solver\\.language\\.web/.*,.*\\.jar");
35 ctx.setInitParameter("org.eclipse.jetty.servlet.Default.useFileMappedBuffer", "false");
36 server.setHandler(ctx);
37 Slf4jLog log = new Slf4jLog(ServerLauncher.class.getName());
38 try {
39 server.start();
40 log.info("Server started " + server.getURI() + "...");
41 new Thread() {
42
43 public void run() {
44 try {
45 log.info("Press enter to stop the server...");
46 int key = System.in.read();
47 if (key != -1) {
48 server.stop();
49 } else {
50 log.warn(
51 "Console input is not available. In order to stop the server, you need to cancel process manually.");
52 }
53 } catch (Exception e) {
54 log.warn(e);
55 }
56 }
57
58 }.start();
59 server.join();
60 } catch (Exception exception) {
61 log.warn(exception.getMessage());
62 System.exit(1);
63 }
64 }
65}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html
new file mode 100644
index 00000000..bf55f237
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html
@@ -0,0 +1,43 @@
1<!DOCTYPE html>
2<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3<meta http-equiv="Content-Language" content="en-us">
4<title>Example Web Editor</title>
5<link rel="stylesheet" type="text/css" href="webjars/codemirror/5.41.0/lib/codemirror.css" />
6<link rel="stylesheet" type="text/css" href="webjars/codemirror/5.41.0/addon/hint/show-hint.css" />
7<link rel="stylesheet" type="text/css" href="xtext/2.26.0.M1/xtext-codemirror.css" />
8<link rel="stylesheet" type="text/css" href="style.css" />
9<body>
10 <div class="container">
11 <div class="header">
12 <h1>Example Problem Web Editor</h1>
13 </div>
14 <div class="content">
15 <div class="xtext-editor"
16 data-editor-xtext-lang="problem"
17 data-editor-enable-formatting-action="true"
18 data-editor-send-full-text="false"
19 ><pre>class Family
20 contains Person[0..*] members.
21
22class Person
23 refers Person[0..*] children opposite parent,
24 refers Person[0..1] parent opposite children.
25
26error loop(Person p) := children+(p, p).
27
28error multipleRoots(Person p, Person q) :=
29 !equals(p, q), !parent(p, _), !parent(q, _).
30
31Family(family).
32members(family, anne).
33members(family, bob).
34members(family, ciri).
35children(anne, ciri).
36?children(bob, ciri).
37
38scope Family = 1, Person += 5..10.</pre></div>
39 </div>
40 </div>
41 <script type="text/javascript" src="webjars/requirejs/2.3.6/require.min.js"></script>
42 <script type="text/javascript" src="script.js"></script>
43</body>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js
new file mode 100644
index 00000000..fcaca4a4
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js
@@ -0,0 +1,20 @@
1var baseUrl = window.location.pathname;
2var fileIndex = baseUrl.indexOf("index.html");
3if (fileIndex > 0)
4 baseUrl = baseUrl.slice(0, fileIndex)
5require.config({
6 baseUrl: baseUrl,
7 paths: {
8 "text": "webjars/requirejs-text/2.26.0.M1/text",
9 "jquery": "webjars/jquery/3.6.0/jquery.min",
10 "xtext/xtext-codemirror": "xtext/2.26.0.M1/xtext-codemirror",
11 },
12 packages: [{
13 name: "codemirror",
14 location: "webjars/codemirror/5.41.0",
15 main: "lib/codemirror"
16 }]
17});
18require(["xtext-resources/generated/mode-problem", "xtext/xtext-codemirror"], function(mode, xtext) {
19 window.xtextEditor = xtext.createEditor({baseUrl: baseUrl,});
20});
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css
new file mode 100644
index 00000000..f1551c3d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css
@@ -0,0 +1,91 @@
1body {
2 width: 100%;
3 height: 100%;
4 overflow: hidden;
5 font: 16px Helvetica,sans-serif;
6}
7
8a {
9 color: #22a;
10 text-decoration: none;
11}
12
13a:hover {
14 text-decoration: underline;
15}
16
17.container {
18 display: block;
19 position: absolute;
20 top: 0;
21 bottom: 0;
22 left: 0;
23 right: 0;
24 margin: 24px 24px 36px 24px;
25}
26
27.header {
28 display: block;
29 position: absolute;
30 top: 0;
31 left: 0;
32 right: 0;
33 padding: 16px;
34 background: #dbdbdb;
35 border-radius: 16px;
36 color: #383838;
37}
38
39.header h1 {
40 font-size: 36px;
41 margin: 0;
42}
43
44.content {
45 display: block;
46 position: absolute;
47 top: 108px;
48 bottom: 0;
49 left: 0;
50 width: 50%;
51 box-shadow: 0 0 8px rgba(80, 10, 98, .25), 0 10px 24px rgba(80, 10, 98, .35);
52 border-radius: 16px;
53}
54
55.xtext-editor {
56 display: block;
57 position: absolute;
58 top: 16px;
59 bottom: 16px;
60 left: 16px;
61 right: 16px;
62 border: 1px solid #aaa;
63}
64
65.problem-class {
66 color: #005032;
67}
68
69.problem-abstract {
70 color: #8b8816;
71}
72
73.problem-reference, .problem-containment, .problem-predicate {
74 color: #0000c0;
75}
76
77.problem-error {
78 color: #ab3000;
79}
80
81.problem-containment {
82 font-weight: bold;
83}
84
85.problem-parameter, .problem-variable {
86 color: #6a3e3e;
87}
88
89.problem-node {
90 text-decoration: underline;
91}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js
new file mode 100644
index 00000000..ab748b03
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js
@@ -0,0 +1,23 @@
1define(["codemirror", "codemirror/addon/mode/simple"], function(CodeMirror, SimpleMode) {
2 var keywords = "abstract|class|contains|error|extends|false|opposite|pred|refers|scope|true|unknown";
3 CodeMirror.defineSimpleMode("xtext/problem", {
4 start: [
5 {token: "comment", regex: "\\/\\/.*$"},
6 {token: "comment", regex: "\\/\\*", next : "comment"},
7 {token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},
8 {token: "string", regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},
9 {token: "constant.numeric", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},
10 {token: "lparen", regex: "[\\[(]"},
11 {token: "rparen", regex: "[\\])]"},
12 {token: "keyword", regex: "\\b(?:" + keywords + ")\\b"}
13 ],
14 comment: [
15 {token: "comment", regex: ".*?\\*\\/", next : "start"},
16 {token: "comment", regex: ".+"}
17 ],
18 meta: {
19 dontIndentStates: ["comment"],
20 lineComment: "//"
21 }
22 });
23});
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/xtext-gen/org/eclipse/viatra/solver/language/web/AbstractProblemWebModule.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/xtext-gen/org/eclipse/viatra/solver/language/web/AbstractProblemWebModule.java
new file mode 100644
index 00000000..fefb7da3
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/xtext-gen/org/eclipse/viatra/solver/language/web/AbstractProblemWebModule.java
@@ -0,0 +1,14 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.web;
5
6import org.eclipse.xtext.web.server.DefaultWebModule;
7
8/**
9 * Manual modifications go to {@link ProblemWebModule}.
10 */
11@SuppressWarnings("all")
12public abstract class AbstractProblemWebModule extends DefaultWebModule {
13
14}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.classpath b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.classpath
new file mode 100644
index 00000000..01bce195
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.classpath
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" output="bin/main" path="src/main/java">
4 <attributes>
5 <attribute name="gradle_scope" value="main"/>
6 <attribute name="gradle_used_by_scope" value="main,test"/>
7 </attributes>
8 </classpathentry>
9 <classpathentry kind="src" output="bin/main" path="src/main/resources">
10 <attributes>
11 <attribute name="gradle_scope" value="main"/>
12 <attribute name="gradle_used_by_scope" value="main,test"/>
13 </attributes>
14 </classpathentry>
15 <classpathentry kind="src" output="bin/main" path="src/main/xtext-gen">
16 <attributes>
17 <attribute name="gradle_scope" value="main"/>
18 <attribute name="gradle_used_by_scope" value="main,test"/>
19 </attributes>
20 </classpathentry>
21 <classpathentry kind="src" output="bin/main" path="src/main/xtend-gen">
22 <attributes>
23 <attribute name="gradle_scope" value="main"/>
24 <attribute name="gradle_used_by_scope" value="main,test"/>
25 </attributes>
26 </classpathentry>
27 <classpathentry kind="src" output="bin/test" path="src/test/java">
28 <attributes>
29 <attribute name="gradle_scope" value="test"/>
30 <attribute name="gradle_used_by_scope" value="test"/>
31 <attribute name="test" value="true"/>
32 </attributes>
33 </classpathentry>
34 <classpathentry kind="src" output="bin/test" path="src/test/resources">
35 <attributes>
36 <attribute name="gradle_scope" value="test"/>
37 <attribute name="gradle_used_by_scope" value="test"/>
38 <attribute name="test" value="true"/>
39 </attributes>
40 </classpathentry>
41 <classpathentry kind="src" output="bin/test" path="src/test/xtext-gen">
42 <attributes>
43 <attribute name="gradle_scope" value="test"/>
44 <attribute name="gradle_used_by_scope" value="test"/>
45 <attribute name="test" value="true"/>
46 </attributes>
47 </classpathentry>
48 <classpathentry kind="src" output="bin/test" path="src/test/xtend-gen">
49 <attributes>
50 <attribute name="gradle_scope" value="test"/>
51 <attribute name="gradle_used_by_scope" value="test"/>
52 <attribute name="test" value="true"/>
53 </attributes>
54 </classpathentry>
55 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
56 <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
57 <classpathentry kind="output" path="bin/default"/>
58</classpath>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.gitignore b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.gitignore
new file mode 100644
index 00000000..84c048a7
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.gitignore
@@ -0,0 +1 @@
/build/
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.launch/Generate Problem (problem) Language Infrastructure.launch b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.launch/Generate Problem (problem) Language Infrastructure.launch
new file mode 100644
index 00000000..042ecc17
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.launch/Generate Problem (problem) Language Infrastructure.launch
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<launchConfiguration type="org.eclipse.buildship.core.launch.runconfiguration">
3<listAttribute key="arguments"/>
4<stringAttribute key="gradle_distribution" value="GRADLE_DISTRIBUTION(WRAPPER)"/>
5<listAttribute key="jvm_arguments"/>
6<booleanAttribute key="show_console_view" value="true"/>
7<booleanAttribute key="show_execution_view" value="true"/>
8<listAttribute key="tasks">
9<listEntry value="build"/>
10</listAttribute>
11<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;resources&gt;&#10;&lt;item path=&quot;/org.eclipse.viatra.solver.language.parent&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/org.eclipse.viatra.solver.language&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/org.eclipse.viatra.solver.language.ide&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/org.eclipse.viatra.solver.language.web&quot; type=&quot;4&quot;/&gt;&#10;&lt;item path=&quot;/org.eclipse.viatra.solver.language.tests&quot; type=&quot;4&quot;/&gt;&#10;;&lt;/resources&gt;}"/>
12<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
13<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/org.eclipse.viatra.solver.language}"/>
14</launchConfiguration>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.project b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.project
new file mode 100644
index 00000000..bbe16f36
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.project
@@ -0,0 +1,29 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>org.eclipse.viatra.solver.language</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.jdt.core.javabuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 </buildSpec>
24 <natures>
25 <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
26 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
27 <nature>org.eclipse.jdt.core.javanature</nature>
28 </natures>
29</projectDescription>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.core.resources.prefs b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..99f26c02
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
1eclipse.preferences.version=1
2encoding/<project>=UTF-8
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..7adc0fb9
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,10 @@
1eclipse.preferences.version=1
2org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
4org.eclipse.jdt.core.compiler.compliance=11
5org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
7org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
8org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
9org.eclipse.jdt.core.compiler.release=enabled
10org.eclipse.jdt.core.compiler.source=11
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/build.gradle b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/build.gradle
new file mode 100644
index 00000000..558f08bb
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/build.gradle
@@ -0,0 +1,42 @@
1dependencies {
2 testCompile 'org.junit.jupiter:junit-jupiter-api'
3 testRuntime 'org.junit.jupiter:junit-jupiter-engine'
4 testCompile "org.eclipse.xtext:org.eclipse.xtext.testing:${xtextVersion}"
5 testCompile "org.eclipse.xtext:org.eclipse.xtext.xbase.testing:${xtextVersion}"
6 compile "org.eclipse.xtext:org.eclipse.xtext:${xtextVersion}"
7 compile "org.eclipse.xtext:org.eclipse.xtext.xbase:${xtextVersion}"
8 compile 'org.eclipse.emf:org.eclipse.emf.ecore'
9 compile project(':org.eclipse.viatra.solver.language.model')
10}
11
12configurations {
13 mwe2 {
14 extendsFrom compile
15 }
16}
17
18dependencies {
19 mwe2 'org.eclipse.emf:org.eclipse.emf.mwe2.launch'
20 mwe2 "org.eclipse.xtext:org.eclipse.xtext.common.types:${xtextVersion}"
21 mwe2 "org.eclipse.xtext:org.eclipse.xtext.xtext.generator:${xtextVersion}"
22 mwe2 'org.eclipse.xtext:xtext-antlr-generator'
23}
24
25task generateXtextLanguage(type: JavaExec) {
26 main = 'org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher'
27 classpath = configurations.mwe2
28 inputs.file "src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2"
29 inputs.file "src/main/java/org/eclipse/viatra/solver/language/Problem.xtext"
30 outputs.dir "src/main/xtext-gen"
31 args += "src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2"
32 args += "-p"
33 args += "rootPath=/${projectDir}/.."
34}
35
36test {
37 useJUnitPlatform()
38}
39
40generateXtext.dependsOn(generateXtextLanguage)
41clean.dependsOn(cleanGenerateXtextLanguage)
42eclipse.classpath.plusConfigurations += [configurations.mwe2]
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2 b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2
new file mode 100644
index 00000000..46812355
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2
@@ -0,0 +1,54 @@
1module org.eclipse.viatra.solver.language.GenerateProblem
2
3import org.eclipse.xtext.xtext.generator.*
4import org.eclipse.xtext.xtext.generator.model.project.*
5
6var rootPath = ".."
7
8Workflow {
9 component = XtextGenerator {
10 configuration = {
11 project = StandardProjectConfig {
12 baseName = "org.eclipse.viatra.solver.language"
13 rootPath = rootPath
14 runtimeTest = {
15 enabled = true
16 }
17 web = {
18 enabled = true
19 }
20 mavenLayout = true
21 }
22 code = {
23 encoding = "UTF-8"
24 lineDelimiter = "\n"
25 fileHeader = "/*\n * generated by Xtext \${version}\n */"
26 preferXtendStubs = false
27 }
28 }
29
30 language = StandardLanguage {
31 name = "org.eclipse.viatra.solver.language.Problem"
32 fileExtensions = "problem"
33 referencedResource = "platform:/resource/org.eclipse.viatra.solver.language.model/model/problem.genmodel"
34
35 serializer = {
36 generateStub = false
37 }
38 validator = {
39 // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
40 // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage
41 generateDeprecationValidation = true
42 }
43 generator = {
44 generateXtendStub = true
45 }
46 junitSupport = {
47 junitVersion = "5"
48 }
49 webSupport = {
50 framework = "CodeMirror"
51 }
52 }
53 }
54}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext
new file mode 100644
index 00000000..81c18d0d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext
@@ -0,0 +1,88 @@
1grammar org.eclipse.viatra.solver.language.Problem with org.eclipse.xtext.common.Terminals
2
3import "http://www.eclipse.org/emf/2002/Ecore" as ecore
4import "http://www.eclipse.org/viatra/solver/language/model/Problem"
5
6Problem:
7 statements+=Statement*;
8
9Statement:
10 ClassDeclaration | PredicateDefinition | Assertion | ScopeDeclaration;
11
12ClassDeclaration:
13 abstract?="abstract"? "class"
14 name=ID
15 ("extends" (superTypes+=[ClassDeclaration] |
16 "[" (superTypes+=[ClassDeclaration] ("," superTypes+=[ClassDeclaration])*)? "]") |
17 referenceDeclarations+=ReferenceDeclaration)?
18 ("," referenceDeclarations+=ReferenceDeclaration)*
19 ".";
20
21ReferenceDeclaration:
22 (containment?="contains" | "refers")
23 referenceType=[ClassDeclaration]
24 "[" multiplicity=Multiplicity "]"
25 name=ID
26 ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
27
28PredicateDefinition:
29 (error?="error" "pred"? | "pred")
30 name=ID
31 "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
32 (":=" bodies+=Conjunction (";" bodies+=Conjunction)*)?
33 ".";
34
35Parameter:
36 parameterType=[ClassDeclaration] name=ID;
37
38Conjunction:
39 literals+=Literal ("," literals+=Literal)*;
40
41Literal:
42 Atom | NegativeLiteral;
43
44NegativeLiteral:
45 "!" atom=Atom;
46
47Atom:
48 relation=[Relation|QualifiedName]
49 transitiveClosure?="+"?
50 "(" (arguments+=[Variable] ("," arguments+=[Variable])*)? ")";
51
52Assertion:
53 (relation=[Relation|QualifiedName]
54 "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
55 ":" value=LogicValue |
56 value=ShortLogicValue?
57 relation=[Relation|QualifiedName]
58 "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")")
59 ".";
60
61enum LogicValue:
62 TRUE="true" | FALSE="false" | UNKNOWN="unknown";
63
64enum ShortLogicValue returns LogicValue:
65 FALSE="!" | UNKNOWN="?";
66
67ScopeDeclaration:
68 "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* ".";
69
70TypeScope:
71 targetType=[ClassDeclaration]
72 (increment?="+=" | "=")
73 multiplicity=Multiplicity;
74
75Multiplicity:
76 RangeMultiplicity | ExactMultiplicity;
77
78RangeMultiplicity:
79 lowerBound=INT ".." upperBound=UpperBound;
80
81ExactMultiplicity:
82 exactValue=INT;
83
84UpperBound returns ecore::EInt:
85 INT | "*";
86
87QualifiedName:
88 ID ("::" ID)*;
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemRuntimeModule.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemRuntimeModule.java
new file mode 100644
index 00000000..b2a3218c
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemRuntimeModule.java
@@ -0,0 +1,86 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language;
5
6import org.eclipse.viatra.solver.language.conversion.ProblemValueConverterService;
7import org.eclipse.viatra.solver.language.naming.ProblemQualifiedNameConverter;
8import org.eclipse.viatra.solver.language.naming.ProblemQualifiedNameProvider;
9import org.eclipse.viatra.solver.language.resource.ProblemDerivedStateComputer;
10import org.eclipse.viatra.solver.language.resource.ProblemLocationInFileProvider;
11import org.eclipse.viatra.solver.language.resource.ProblemResourceDescriptionStrategy;
12import org.eclipse.viatra.solver.language.scoping.ProblemGlobalScopeProvider;
13import org.eclipse.xtext.conversion.IValueConverterService;
14import org.eclipse.xtext.naming.IQualifiedNameConverter;
15import org.eclipse.xtext.naming.IQualifiedNameProvider;
16import org.eclipse.xtext.resource.DerivedStateAwareResource;
17import org.eclipse.xtext.resource.DerivedStateAwareResourceDescriptionManager;
18import org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy;
19import org.eclipse.xtext.resource.IDerivedStateComputer;
20import org.eclipse.xtext.resource.ILocationInFileProvider;
21import org.eclipse.xtext.resource.IResourceDescription;
22import org.eclipse.xtext.resource.XtextResource;
23import org.eclipse.xtext.scoping.IGlobalScopeProvider;
24import org.eclipse.xtext.scoping.IScopeProvider;
25import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
26import org.eclipse.xtext.scoping.impl.SimpleLocalScopeProvider;
27import org.eclipse.xtext.validation.IResourceValidator;
28import org.eclipse.xtext.xbase.annotations.validation.DerivedStateAwareResourceValidator;
29
30import com.google.inject.Binder;
31import com.google.inject.name.Names;
32
33/**
34 * Use this class to register components to be used at runtime / without the
35 * Equinox extension registry.
36 */
37public class ProblemRuntimeModule extends AbstractProblemRuntimeModule {
38 public Class<? extends IQualifiedNameConverter> bindIQualifiedNameConverter() {
39 return ProblemQualifiedNameConverter.class;
40 }
41
42 public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
43 return ProblemQualifiedNameProvider.class;
44 }
45
46 public Class<? extends IDefaultResourceDescriptionStrategy> bindIDefaultResourceDescriptionStrategy() {
47 return ProblemResourceDescriptionStrategy.class;
48 }
49
50 @Override
51 public Class<? extends IValueConverterService> bindIValueConverterService() {
52 return ProblemValueConverterService.class;
53 }
54
55 @Override
56 public void configureIScopeProviderDelegate(Binder binder) {
57 binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE))
58 .to(SimpleLocalScopeProvider.class);
59 }
60
61 @Override
62 public Class<? extends IGlobalScopeProvider> bindIGlobalScopeProvider() {
63 return ProblemGlobalScopeProvider.class;
64 }
65
66 @Override
67 public Class<? extends XtextResource> bindXtextResource() {
68 return DerivedStateAwareResource.class;
69 }
70
71 public Class<? extends IResourceDescription.Manager> bindIResourceDescription$Manager() {
72 return DerivedStateAwareResourceDescriptionManager.class;
73 }
74
75 public Class<? extends IResourceValidator> bindIResourceValidator() {
76 return DerivedStateAwareResourceValidator.class;
77 }
78
79 public Class<? extends IDerivedStateComputer> bindIDerivedStateComputer() {
80 return ProblemDerivedStateComputer.class;
81 }
82
83 public Class<? extends ILocationInFileProvider> bindILocationInFileProvider() {
84 return ProblemLocationInFileProvider.class;
85 }
86}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemStandaloneSetup.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemStandaloneSetup.java
new file mode 100644
index 00000000..5652f859
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemStandaloneSetup.java
@@ -0,0 +1,26 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language;
5
6import org.eclipse.emf.ecore.EPackage;
7import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
8
9import com.google.inject.Injector;
10
11/**
12 * Initialization support for running Xtext languages without Equinox extension registry.
13 */
14public class ProblemStandaloneSetup extends ProblemStandaloneSetupGenerated {
15
16 public static void doSetup() {
17 new ProblemStandaloneSetup().createInjectorAndDoEMFRegistration();
18 }
19
20 @Override
21 public Injector createInjectorAndDoEMFRegistration() {
22 if (!EPackage.Registry.INSTANCE.containsKey(ProblemPackage.eNS_URI))
23 EPackage.Registry.INSTANCE.put(ProblemPackage.eNS_URI, ProblemPackage.eINSTANCE);
24 return super.createInjectorAndDoEMFRegistration();
25 }
26}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/ProblemValueConverterService.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/ProblemValueConverterService.java
new file mode 100644
index 00000000..4f5fd069
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/ProblemValueConverterService.java
@@ -0,0 +1,17 @@
1package org.eclipse.viatra.solver.language.conversion;
2
3import org.eclipse.xtext.common.services.DefaultTerminalConverters;
4import org.eclipse.xtext.conversion.IValueConverter;
5import org.eclipse.xtext.conversion.ValueConverter;
6
7import com.google.inject.Inject;
8
9public class ProblemValueConverterService extends DefaultTerminalConverters {
10 @Inject
11 private UpperBoundValueConverter upperBoundValueConverter;
12
13 @ValueConverter(rule = "UpperBound")
14 public IValueConverter<Integer> UpperBound() {
15 return upperBoundValueConverter;
16 }
17}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/UpperBoundValueConverter.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/UpperBoundValueConverter.java
new file mode 100644
index 00000000..3111b69b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/UpperBoundValueConverter.java
@@ -0,0 +1,35 @@
1package org.eclipse.viatra.solver.language.conversion;
2
3import org.eclipse.xtext.conversion.ValueConverterException;
4import org.eclipse.xtext.conversion.impl.AbstractValueConverter;
5import org.eclipse.xtext.conversion.impl.INTValueConverter;
6import org.eclipse.xtext.nodemodel.INode;
7
8import com.google.inject.Inject;
9import com.google.inject.Singleton;
10
11@Singleton
12public class UpperBoundValueConverter extends AbstractValueConverter<Integer> {
13 public static final String INFINITY = "*";
14
15 @Inject
16 private INTValueConverter intValueConverter;
17
18 @Override
19 public Integer toValue(String string, INode node) throws ValueConverterException {
20 if (INFINITY.equals(string)) {
21 return -1;
22 } else {
23 return intValueConverter.toValue(string, node);
24 }
25 }
26
27 @Override
28 public String toString(Integer value) throws ValueConverterException {
29 if (value < 0) {
30 return INFINITY;
31 } else {
32 return intValueConverter.toString(value);
33 }
34 }
35}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/generator/ProblemGenerator.xtend b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/generator/ProblemGenerator.xtend
new file mode 100644
index 00000000..0930f244
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/generator/ProblemGenerator.xtend
@@ -0,0 +1,25 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.generator
5
6import org.eclipse.emf.ecore.resource.Resource
7import org.eclipse.xtext.generator.AbstractGenerator
8import org.eclipse.xtext.generator.IFileSystemAccess2
9import org.eclipse.xtext.generator.IGeneratorContext
10
11/**
12 * Generates code from your model files on save.
13 *
14 * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
15 */
16class ProblemGenerator extends AbstractGenerator {
17
18 override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
19// fsa.generateFile('greetings.txt', 'People to greet: ' +
20// resource.allContents
21// .filter(Greeting)
22// .map[name]
23// .join(', '))
24 }
25}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java
new file mode 100644
index 00000000..ebb7e7b4
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java
@@ -0,0 +1,13 @@
1package org.eclipse.viatra.solver.language.naming;
2
3import org.eclipse.xtext.naming.IQualifiedNameConverter;
4
5import com.google.inject.Singleton;
6
7@Singleton
8public class ProblemQualifiedNameConverter extends IQualifiedNameConverter.DefaultImpl {
9 @Override
10 public String getDelimiter() {
11 return "::";
12 }
13}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameProvider.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameProvider.java
new file mode 100644
index 00000000..81365724
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameProvider.java
@@ -0,0 +1,15 @@
1package org.eclipse.viatra.solver.language.naming;
2
3import org.eclipse.viatra.solver.language.model.problem.Node;
4import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider;
5import org.eclipse.xtext.naming.QualifiedName;
6
7public class ProblemQualifiedNameProvider extends DefaultDeclarativeQualifiedNameProvider {
8 public QualifiedName qualifiedName(Node node) {
9 String name = node.getName();
10 if (name == null || name.isEmpty()) {
11 return null;
12 }
13 return getConverter().toQualifiedName(name);
14 }
15}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemDerivedStateComputer.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemDerivedStateComputer.java
new file mode 100644
index 00000000..571b5745
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemDerivedStateComputer.java
@@ -0,0 +1,218 @@
1package org.eclipse.viatra.solver.language.resource;
2
3import java.util.HashSet;
4import java.util.List;
5import java.util.Set;
6import java.util.regex.Pattern;
7
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.viatra.solver.language.model.problem.Assertion;
10import org.eclipse.viatra.solver.language.model.problem.Atom;
11import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
12import org.eclipse.viatra.solver.language.model.problem.Conjunction;
13import org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier;
14import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
15import org.eclipse.viatra.solver.language.model.problem.Literal;
16import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
17import org.eclipse.viatra.solver.language.model.problem.Node;
18import org.eclipse.viatra.solver.language.model.problem.Parameter;
19import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
20import org.eclipse.viatra.solver.language.model.problem.Problem;
21import org.eclipse.viatra.solver.language.model.problem.ProblemFactory;
22import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
23import org.eclipse.viatra.solver.language.model.problem.Statement;
24import org.eclipse.xtext.linking.impl.LinkingHelper;
25import org.eclipse.xtext.naming.IQualifiedNameConverter;
26import org.eclipse.xtext.naming.QualifiedName;
27import org.eclipse.xtext.nodemodel.INode;
28import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
29import org.eclipse.xtext.resource.DerivedStateAwareResource;
30import org.eclipse.xtext.resource.IDerivedStateComputer;
31import org.eclipse.xtext.scoping.IGlobalScopeProvider;
32import org.eclipse.xtext.scoping.IScope;
33
34import com.google.common.base.Predicates;
35import com.google.inject.Inject;
36import com.google.inject.Singleton;
37
38@Singleton
39public class ProblemDerivedStateComputer implements IDerivedStateComputer {
40 public static final String NEW_NODE = "new";
41
42 private static final String ID_REGEX_STRING = "[_a-zA-Z][_0-9a-zA-Z]*";
43
44 private static final Pattern ID_REGEX = Pattern.compile(ID_REGEX_STRING);
45
46 private static final Pattern QUALIFIED_NAME_REGEX = Pattern
47 .compile(ID_REGEX_STRING + "(::" + ID_REGEX_STRING + ")*");
48
49 @Inject
50 private LinkingHelper linkingHelper;
51
52 @Inject
53 private IQualifiedNameConverter qualifiedNameConverter;
54
55 @Inject
56 private IGlobalScopeProvider scopeProvider;
57
58 @Override
59 public void installDerivedState(DerivedStateAwareResource resource, boolean preLinkingPhase) {
60 for (EObject object : resource.getContents()) {
61 if (object instanceof Problem) {
62 installDerivedProblemState((Problem) object, preLinkingPhase);
63 }
64 }
65 }
66
67 protected void installDerivedProblemState(Problem problem, boolean preLinkingPhase) {
68 Set<String> nodeNames = new HashSet<>();
69 if (!preLinkingPhase) {
70 installDerivedNodes(problem);
71 }
72 for (Statement statement : problem.getStatements()) {
73 if (statement instanceof PredicateDefinition) {
74 PredicateDefinition definition = (PredicateDefinition) statement;
75 installDerivedPredicateDefinitionState(definition);
76 }
77 }
78 List<Node> grapNodes = problem.getNodes();
79 for (String nodeName : nodeNames) {
80 Node graphNode = ProblemFactory.eINSTANCE.createNode();
81 graphNode.setName(nodeName);
82 grapNodes.add(graphNode);
83 }
84 }
85
86 protected void installDerivedNodes(Problem problem) {
87 IScope nodeScope = scopeProvider.getScope(problem.eResource(), ProblemPackage.Literals.ASSERTION__ARGUMENTS,
88 Predicates.alwaysTrue());
89 Set<String> nodeNames = new HashSet<>();
90 for (Statement statement : problem.getStatements()) {
91 if (statement instanceof ClassDeclaration) {
92 ClassDeclaration declaration = (ClassDeclaration) statement;
93 if (!declaration.isAbstract()) {
94 String className = declaration.getName();
95 if (validId(className)) {
96 QualifiedName qualifiedName = QualifiedName.create(className, NEW_NODE);
97 String nodeName = qualifiedNameConverter.toString(qualifiedName);
98 nodeNames.add(nodeName);
99 }
100 }
101 }
102 }
103 for (Statement statement : problem.getStatements()) {
104 if (statement instanceof Assertion) {
105 Assertion assertion = (Assertion) statement;
106 List<INode> nodes = NodeModelUtils.findNodesForFeature(assertion,
107 ProblemPackage.Literals.ASSERTION__ARGUMENTS);
108 for (INode node : nodes) {
109 String nodeName = linkingHelper.getCrossRefNodeAsString(node, true);
110 if (validQualifiedName(nodeName)) {
111 QualifiedName qualifiedName = qualifiedNameConverter.toQualifiedName(nodeName);
112 if (nodeScope.getSingleElement(qualifiedName) == null) {
113 nodeNames.add(nodeName);
114 }
115 }
116 }
117 }
118 }
119 List<Node> grapNodes = problem.getNodes();
120 for (String nodeName : nodeNames) {
121 Node graphNode = ProblemFactory.eINSTANCE.createNode();
122 graphNode.setName(nodeName);
123 grapNodes.add(graphNode);
124 }
125 }
126
127 protected void installDerivedPredicateDefinitionState(PredicateDefinition definition) {
128 Set<String> parameterNames = new HashSet<>();
129 for (Parameter parameter : definition.getParameters()) {
130 String name = parameter.getName();
131 if (name != null) {
132 parameterNames.add(name);
133 }
134 }
135 for (Conjunction body : definition.getBodies()) {
136 installDeriveConjunctionState(body, parameterNames);
137 }
138 }
139
140 protected void installDeriveConjunctionState(Conjunction conjunction, Set<String> knownVariables) {
141 Set<String> newVariables = new HashSet<>();
142 for (Literal literal : conjunction.getLiterals()) {
143 if (literal instanceof Atom) {
144 Atom atom = (Atom) literal;
145 collectVariables(atom, knownVariables, newVariables);
146 }
147 }
148 createVariables(conjunction, newVariables);
149 newVariables.addAll(knownVariables);
150 for (Literal literal : conjunction.getLiterals()) {
151 if (literal instanceof NegativeLiteral) {
152 NegativeLiteral negativeLiteral = (NegativeLiteral) literal;
153 installDeriveNegativeLiteralState(negativeLiteral, newVariables);
154 }
155 }
156 }
157
158 protected void installDeriveNegativeLiteralState(NegativeLiteral negativeLiteral, Set<String> knownVariables) {
159 Set<String> newVariables = new HashSet<>();
160 collectVariables(negativeLiteral.getAtom(), knownVariables, newVariables);
161 createVariables(negativeLiteral, newVariables);
162 }
163
164 protected void collectVariables(Atom atom, Set<String> knownVariables, Set<String> newVariables) {
165 List<INode> nodes = NodeModelUtils.findNodesForFeature(atom, ProblemPackage.Literals.ATOM__ARGUMENTS);
166 for (INode node : nodes) {
167 String variableName = linkingHelper.getCrossRefNodeAsString(node, true);
168 if (!knownVariables.contains(variableName)) {
169 newVariables.add(variableName);
170 }
171 }
172 }
173
174 protected void createVariables(ExistentialQuantifier quantifier, Set<String> newVariables) {
175 for (String variableName : newVariables) {
176 if (validId(variableName)) {
177 ImplicitVariable variable = ProblemFactory.eINSTANCE.createImplicitVariable();
178 variable.setName(variableName);
179 quantifier.getImplicitVariables().add(variable);
180 }
181 }
182 }
183
184 @Override
185 public void discardDerivedState(DerivedStateAwareResource resource) {
186 for (EObject object : resource.getContents()) {
187 if (object instanceof Problem) {
188 discardDerivedProblemState((Problem) object);
189 }
190 }
191 }
192
193 protected void discardDerivedProblemState(Problem problem) {
194 problem.getNodes().clear();
195 for (Statement statement : problem.getStatements()) {
196 if (statement instanceof PredicateDefinition) {
197 PredicateDefinition definition = (PredicateDefinition) statement;
198 for (Conjunction body : definition.getBodies()) {
199 body.getImplicitVariables().clear();
200 for (Literal literal : body.getLiterals()) {
201 if (literal instanceof NegativeLiteral) {
202 NegativeLiteral negativeLiteral = (NegativeLiteral) literal;
203 negativeLiteral.getImplicitVariables().clear();
204 }
205 }
206 }
207 }
208 }
209 }
210
211 protected static boolean validId(String name) {
212 return name != null && ID_REGEX.matcher(name).matches();
213 }
214
215 protected static boolean validQualifiedName(String name) {
216 return name != null && QUALIFIED_NAME_REGEX.matcher(name).matches();
217 }
218}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemLocationInFileProvider.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemLocationInFileProvider.java
new file mode 100644
index 00000000..dfffc7ef
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemLocationInFileProvider.java
@@ -0,0 +1,130 @@
1package org.eclipse.viatra.solver.language.resource;
2
3import java.util.Iterator;
4
5import org.eclipse.emf.ecore.EObject;
6import org.eclipse.viatra.solver.language.model.problem.Assertion;
7import org.eclipse.viatra.solver.language.model.problem.Atom;
8import org.eclipse.viatra.solver.language.model.problem.Conjunction;
9import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
10import org.eclipse.viatra.solver.language.model.problem.Literal;
11import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
12import org.eclipse.viatra.solver.language.model.problem.Node;
13import org.eclipse.viatra.solver.language.model.problem.Problem;
14import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
15import org.eclipse.viatra.solver.language.model.problem.Statement;
16import org.eclipse.xtext.EcoreUtil2;
17import org.eclipse.xtext.naming.IQualifiedNameProvider;
18import org.eclipse.xtext.naming.QualifiedName;
19import org.eclipse.xtext.resource.DefaultLocationInFileProvider;
20import org.eclipse.xtext.resource.IEObjectDescription;
21import org.eclipse.xtext.scoping.IScope;
22import org.eclipse.xtext.scoping.IScopeProvider;
23import org.eclipse.xtext.util.ITextRegion;
24
25import com.google.inject.Inject;
26
27public class ProblemLocationInFileProvider extends DefaultLocationInFileProvider {
28 @Inject
29 private IQualifiedNameProvider qualifiedNameProvider;
30
31 @Inject
32 private IScopeProvider scopeProvider;
33
34 @Override
35 protected ITextRegion doGetTextRegion(EObject obj, RegionDescription query) {
36 if (obj instanceof Node) {
37 return getNodeTextRegion((Node) obj, query);
38 }
39 if (obj instanceof ImplicitVariable) {
40 return getVariableTextRegion((ImplicitVariable) obj, query);
41 }
42 return super.doGetTextRegion(obj, query);
43 }
44
45 protected ITextRegion getNodeTextRegion(Node node, RegionDescription query) {
46 ITextRegion newNodeRegion = getNewNodeTextRegion(node, query);
47 if (newNodeRegion != null) {
48 return newNodeRegion;
49 }
50 return getNodeFirstReferenceTextRegion(node, query);
51 }
52
53 protected ITextRegion getNewNodeTextRegion(Node node, RegionDescription query) {
54 QualifiedName nodeName = qualifiedNameProvider.getFullyQualifiedName(node);
55 if (nodeName == null || nodeName.getSegmentCount() <= 1) {
56 return null;
57 }
58 if (ProblemDerivedStateComputer.NEW_NODE.equals(nodeName.getLastSegment())) {
59 QualifiedName className = nodeName.skipLast(1);
60 IScope classScope = scopeProvider.getScope(node, ProblemPackage.Literals.ASSERTION__RELATION);
61 IEObjectDescription description = classScope.getSingleElement(className);
62 if (description == null) {
63 return null;
64 }
65 EObject classDeclaration = description.getEObjectOrProxy();
66 if (!classDeclaration.eIsProxy()) {
67 return doGetTextRegion(classDeclaration, query);
68 }
69 }
70 return null;
71 }
72
73 protected ITextRegion getNodeFirstReferenceTextRegion(Node node, RegionDescription query) {
74 Problem problem = EcoreUtil2.getContainerOfType(node, Problem.class);
75 if (problem == null) {
76 return ITextRegion.EMPTY_REGION;
77 }
78 for (Statement statement : problem.getStatements()) {
79 if (statement instanceof Assertion) {
80 Assertion assertion = (Assertion) statement;
81 int index = assertion.getArguments().indexOf(node);
82 if (index >= 0) {
83 return doGetLocationOfFeature(assertion, ProblemPackage.Literals.ASSERTION__ARGUMENTS, index,
84 query);
85 }
86 }
87 }
88 return ITextRegion.EMPTY_REGION;
89 }
90
91 protected ITextRegion getVariableTextRegion(ImplicitVariable variable, RegionDescription query) {
92 EObject container = variable.eContainer();
93 if (container instanceof Conjunction) {
94 return getFirstReferenceToVariableInConjunction(variable, (Conjunction) container, query);
95 }
96 if (container instanceof NegativeLiteral) {
97 return getFirstReferenceToVariableInNegativeLiteral(variable, (NegativeLiteral) container, query);
98 }
99 return ITextRegion.EMPTY_REGION;
100 }
101
102 protected ITextRegion getFirstReferenceToVariableInConjunction(ImplicitVariable variable, Conjunction conjunction,
103 RegionDescription query) {
104 Iterator<Literal> iterator = conjunction.getLiterals().iterator();
105 ITextRegion found = ITextRegion.EMPTY_REGION;
106 while (found == ITextRegion.EMPTY_REGION && iterator.hasNext()) {
107 Literal literal = iterator.next();
108 if (literal instanceof Atom) {
109 found = getFirstReferenceToVariableInAtom(variable, (Atom) literal, query);
110 } else if (literal instanceof NegativeLiteral) {
111 found = getFirstReferenceToVariableInNegativeLiteral(variable, (NegativeLiteral) literal, query);
112 }
113 }
114 return found;
115 }
116
117 protected ITextRegion getFirstReferenceToVariableInNegativeLiteral(ImplicitVariable variable,
118 NegativeLiteral literal, RegionDescription query) {
119 return getFirstReferenceToVariableInAtom(variable, literal.getAtom(), query);
120 }
121
122 protected ITextRegion getFirstReferenceToVariableInAtom(ImplicitVariable variable, Atom atom,
123 RegionDescription query) {
124 int index = atom.getArguments().indexOf(variable);
125 if (index >= 0) {
126 return doGetLocationOfFeature(atom, ProblemPackage.Literals.ATOM__ARGUMENTS, index, query);
127 }
128 return ITextRegion.EMPTY_REGION;
129 }
130}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemResourceDescriptionStrategy.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemResourceDescriptionStrategy.java
new file mode 100644
index 00000000..7b37ffd6
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemResourceDescriptionStrategy.java
@@ -0,0 +1,39 @@
1package org.eclipse.viatra.solver.language.resource;
2
3import org.eclipse.emf.ecore.EObject;
4import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
5import org.eclipse.viatra.solver.language.model.problem.Variable;
6import org.eclipse.xtext.naming.QualifiedName;
7import org.eclipse.xtext.resource.IEObjectDescription;
8import org.eclipse.xtext.resource.impl.AliasedEObjectDescription;
9import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy;
10import org.eclipse.xtext.util.IAcceptor;
11
12import com.google.inject.Singleton;
13
14@Singleton
15public class ProblemResourceDescriptionStrategy extends DefaultResourceDescriptionStrategy {
16 @Override
17 public boolean createEObjectDescriptions(EObject eObject, IAcceptor<IEObjectDescription> acceptor) {
18 IAcceptor<IEObjectDescription> wrappedAcceptor;
19 if (eObject instanceof Variable) {
20 return false;
21 }
22 if (eObject instanceof ReferenceDeclaration) {
23 wrappedAcceptor = new IAcceptor<IEObjectDescription>() {
24 public void accept(IEObjectDescription description) {
25 acceptor.accept(description);
26 QualifiedName qualifiedName = description.getQualifiedName();
27 if (qualifiedName.getSegmentCount() >= 2) {
28 QualifiedName simpleName = QualifiedName.create(qualifiedName.getLastSegment());
29 IEObjectDescription aliasedDescription = new AliasedEObjectDescription(simpleName, description);
30 acceptor.accept(aliasedDescription);
31 }
32 };
33 };
34 } else {
35 wrappedAcceptor = acceptor;
36 }
37 return super.createEObjectDescriptions(eObject, wrappedAcceptor);
38 }
39}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemGlobalScopeProvider.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemGlobalScopeProvider.java
new file mode 100644
index 00000000..cf01999a
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemGlobalScopeProvider.java
@@ -0,0 +1,19 @@
1package org.eclipse.viatra.solver.language.scoping;
2
3import java.util.LinkedHashSet;
4
5import org.eclipse.emf.common.util.URI;
6import org.eclipse.emf.ecore.resource.Resource;
7import org.eclipse.xtext.scoping.impl.ImportUriGlobalScopeProvider;
8
9public class ProblemGlobalScopeProvider extends ImportUriGlobalScopeProvider {
10 public static final URI LIBRARY_URI = URI.createURI(ProblemGlobalScopeProvider.class.getClassLoader()
11 .getResource("org/eclipse/viatra/solver/language/library.problem").toString());
12
13 @Override
14 protected LinkedHashSet<URI> getImportedUris(Resource resource) {
15 LinkedHashSet<URI> importedUris = super.getImportedUris(resource);
16 importedUris.add(LIBRARY_URI);
17 return importedUris;
18 }
19}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemScopeProvider.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemScopeProvider.java
new file mode 100644
index 00000000..254284a8
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemScopeProvider.java
@@ -0,0 +1,74 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.scoping;
5
6import java.util.ArrayList;
7import java.util.List;
8
9import org.eclipse.emf.ecore.EObject;
10import org.eclipse.emf.ecore.EReference;
11import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
12import org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier;
13import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
14import org.eclipse.viatra.solver.language.model.problem.Problem;
15import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
16import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
17import org.eclipse.viatra.solver.language.model.problem.Statement;
18import org.eclipse.viatra.solver.language.model.problem.Variable;
19import org.eclipse.xtext.EcoreUtil2;
20import org.eclipse.xtext.naming.QualifiedName;
21import org.eclipse.xtext.scoping.IScope;
22import org.eclipse.xtext.scoping.Scopes;
23
24import com.google.common.collect.ImmutableList;
25
26/**
27 * This class contains custom scoping description.
28 *
29 * See
30 * https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping
31 * on how and when to use it.
32 */
33public class ProblemScopeProvider extends AbstractProblemScopeProvider {
34
35 @Override
36 public IScope getScope(EObject context, EReference reference) {
37 IScope scope = super.getScope(context, reference);
38 if (reference == ProblemPackage.Literals.ATOM__ARGUMENTS) {
39 return getVariableScope(context, scope);
40 } else if (EcoreUtil2.isAssignableFrom(reference.getEReferenceType(),
41 ProblemPackage.Literals.REFERENCE_DECLARATION)) {
42 Problem problem = EcoreUtil2.getContainerOfType(context, Problem.class);
43 if (problem == null) {
44 return scope;
45 }
46 ImmutableList.Builder<ReferenceDeclaration> builder = ImmutableList.builder();
47 for (Statement statement : problem.getStatements()) {
48 if (statement instanceof ClassDeclaration) {
49 ClassDeclaration classDeclaration = (ClassDeclaration) statement;
50 builder.addAll(classDeclaration.getReferenceDeclarations());
51 }
52 }
53 return Scopes.scopeFor(builder.build(), scope);
54 }
55 return scope;
56 }
57
58 protected IScope getVariableScope(EObject context, IScope delegateScope) {
59 List<Variable> variables = new ArrayList<>();
60 EObject currentContext = context;
61 while (currentContext != null && !(currentContext instanceof PredicateDefinition)) {
62 if (currentContext instanceof ExistentialQuantifier) {
63 ExistentialQuantifier quantifier = (ExistentialQuantifier) currentContext;
64 variables.addAll(quantifier.getImplicitVariables());
65 }
66 currentContext = currentContext.eContainer();
67 }
68 if (currentContext instanceof PredicateDefinition) {
69 PredicateDefinition definition = (PredicateDefinition) currentContext;
70 variables.addAll(definition.getParameters());
71 }
72 return Scopes.scopeFor(variables);
73 }
74}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/validation/ProblemValidator.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/validation/ProblemValidator.java
new file mode 100644
index 00000000..2b17e222
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/validation/ProblemValidator.java
@@ -0,0 +1,25 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.validation;
5
6
7/**
8 * This class contains custom validation rules.
9 *
10 * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
11 */
12public class ProblemValidator extends AbstractProblemValidator {
13
14// public static final String INVALID_NAME = "invalidName";
15//
16// @Check
17// public void checkGreetingStartsWithCapital(Greeting greeting) {
18// if (!Character.isUpperCase(greeting.getName().charAt(0))) {
19// warning("Name should start with a capital",
20// ProblemPackage.Literals.GREETING__NAME,
21// INVALID_NAME);
22// }
23// }
24
25}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/resources/org/eclipse/viatra/solver/language/library.problem b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/resources/org/eclipse/viatra/solver/language/library.problem
new file mode 100644
index 00000000..77f26b70
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/resources/org/eclipse/viatra/solver/language/library.problem
@@ -0,0 +1,4 @@
1abstract class node
2 refers node[0..*] equals opposite equals.
3
4predicate exists(node node). \ No newline at end of file
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java
new file mode 100644
index 00000000..642b465b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java
@@ -0,0 +1,201 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language;
5
6import com.google.inject.Binder;
7import com.google.inject.Provider;
8import com.google.inject.name.Names;
9import java.util.Properties;
10import org.eclipse.viatra.solver.language.generator.ProblemGenerator;
11import org.eclipse.viatra.solver.language.parser.antlr.ProblemAntlrTokenFileProvider;
12import org.eclipse.viatra.solver.language.parser.antlr.ProblemParser;
13import org.eclipse.viatra.solver.language.parser.antlr.internal.InternalProblemLexer;
14import org.eclipse.viatra.solver.language.scoping.ProblemScopeProvider;
15import org.eclipse.viatra.solver.language.serializer.ProblemSemanticSequencer;
16import org.eclipse.viatra.solver.language.serializer.ProblemSyntacticSequencer;
17import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
18import org.eclipse.viatra.solver.language.validation.ProblemConfigurableIssueCodesProvider;
19import org.eclipse.viatra.solver.language.validation.ProblemValidator;
20import org.eclipse.xtext.Constants;
21import org.eclipse.xtext.IGrammarAccess;
22import org.eclipse.xtext.generator.IGenerator2;
23import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider;
24import org.eclipse.xtext.naming.IQualifiedNameProvider;
25import org.eclipse.xtext.parser.IParser;
26import org.eclipse.xtext.parser.ITokenToStringConverter;
27import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
28import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter;
29import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
30import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
31import org.eclipse.xtext.parser.antlr.Lexer;
32import org.eclipse.xtext.parser.antlr.LexerBindings;
33import org.eclipse.xtext.parser.antlr.LexerProvider;
34import org.eclipse.xtext.resource.IContainer;
35import org.eclipse.xtext.resource.IResourceDescriptions;
36import org.eclipse.xtext.resource.containers.IAllContainersState;
37import org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider;
38import org.eclipse.xtext.resource.containers.StateBasedContainerManager;
39import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
40import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions;
41import org.eclipse.xtext.scoping.IGlobalScopeProvider;
42import org.eclipse.xtext.scoping.IScopeProvider;
43import org.eclipse.xtext.scoping.IgnoreCaseLinking;
44import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
45import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider;
46import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider;
47import org.eclipse.xtext.serializer.ISerializer;
48import org.eclipse.xtext.serializer.impl.Serializer;
49import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
50import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer;
51import org.eclipse.xtext.service.DefaultRuntimeModule;
52import org.eclipse.xtext.service.SingletonBinding;
53import org.eclipse.xtext.validation.ConfigurableIssueCodesProvider;
54
55/**
56 * Manual modifications go to {@link ProblemRuntimeModule}.
57 */
58@SuppressWarnings("all")
59public abstract class AbstractProblemRuntimeModule extends DefaultRuntimeModule {
60
61 protected Properties properties = null;
62
63 @Override
64 public void configure(Binder binder) {
65 properties = tryBindProperties(binder, "org/eclipse/viatra/solver/language/Problem.properties");
66 super.configure(binder);
67 }
68
69 public void configureLanguageName(Binder binder) {
70 binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.viatra.solver.language.Problem");
71 }
72
73 public void configureFileExtensions(Binder binder) {
74 if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
75 binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("problem");
76 }
77
78 // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
79 public ClassLoader bindClassLoaderToInstance() {
80 return getClass().getClassLoader();
81 }
82
83 // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
84 public Class<? extends IGrammarAccess> bindIGrammarAccess() {
85 return ProblemGrammarAccess.class;
86 }
87
88 // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
89 public Class<? extends ISemanticSequencer> bindISemanticSequencer() {
90 return ProblemSemanticSequencer.class;
91 }
92
93 // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
94 public Class<? extends ISyntacticSequencer> bindISyntacticSequencer() {
95 return ProblemSyntacticSequencer.class;
96 }
97
98 // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
99 public Class<? extends ISerializer> bindISerializer() {
100 return Serializer.class;
101 }
102
103 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
104 public Class<? extends IParser> bindIParser() {
105 return ProblemParser.class;
106 }
107
108 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
109 public Class<? extends ITokenToStringConverter> bindITokenToStringConverter() {
110 return AntlrTokenToStringConverter.class;
111 }
112
113 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
114 public Class<? extends IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
115 return ProblemAntlrTokenFileProvider.class;
116 }
117
118 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
119 public Class<? extends Lexer> bindLexer() {
120 return InternalProblemLexer.class;
121 }
122
123 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
124 public Class<? extends ITokenDefProvider> bindITokenDefProvider() {
125 return AntlrTokenDefProvider.class;
126 }
127
128 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
129 public Provider<? extends InternalProblemLexer> provideInternalProblemLexer() {
130 return LexerProvider.create(InternalProblemLexer.class);
131 }
132
133 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
134 public void configureRuntimeLexer(Binder binder) {
135 binder.bind(Lexer.class)
136 .annotatedWith(Names.named(LexerBindings.RUNTIME))
137 .to(InternalProblemLexer.class);
138 }
139
140 // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
141 @SingletonBinding(eager=true)
142 public Class<? extends ProblemValidator> bindProblemValidator() {
143 return ProblemValidator.class;
144 }
145
146 // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
147 public Class<? extends ConfigurableIssueCodesProvider> bindConfigurableIssueCodesProvider() {
148 return ProblemConfigurableIssueCodesProvider.class;
149 }
150
151 // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
152 public Class<? extends IScopeProvider> bindIScopeProvider() {
153 return ProblemScopeProvider.class;
154 }
155
156 // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
157 public void configureIScopeProviderDelegate(Binder binder) {
158 binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(ImportedNamespaceAwareLocalScopeProvider.class);
159 }
160
161 // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
162 public Class<? extends IGlobalScopeProvider> bindIGlobalScopeProvider() {
163 return DefaultGlobalScopeProvider.class;
164 }
165
166 // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
167 public void configureIgnoreCaseLinking(Binder binder) {
168 binder.bindConstant().annotatedWith(IgnoreCaseLinking.class).to(false);
169 }
170
171 // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
172 public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
173 return DefaultDeclarativeQualifiedNameProvider.class;
174 }
175
176 // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
177 public Class<? extends IContainer.Manager> bindIContainer$Manager() {
178 return StateBasedContainerManager.class;
179 }
180
181 // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
182 public Class<? extends IAllContainersState.Provider> bindIAllContainersState$Provider() {
183 return ResourceSetBasedAllContainersStateProvider.class;
184 }
185
186 // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
187 public void configureIResourceDescriptions(Binder binder) {
188 binder.bind(IResourceDescriptions.class).to(ResourceSetBasedResourceDescriptions.class);
189 }
190
191 // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
192 public void configureIResourceDescriptionsPersisted(Binder binder) {
193 binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(ResourceSetBasedResourceDescriptions.class);
194 }
195
196 // contributed by org.eclipse.xtext.xtext.generator.generator.GeneratorFragment2
197 public Class<? extends IGenerator2> bindIGenerator2() {
198 return ProblemGenerator.class;
199 }
200
201}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
new file mode 100644
index 00000000..d16365d7
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
Binary files differ
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java
new file mode 100644
index 00000000..0366f9cd
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java
@@ -0,0 +1,37 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language;
5
6import com.google.inject.Guice;
7import com.google.inject.Injector;
8import org.eclipse.emf.ecore.resource.Resource;
9import org.eclipse.xtext.ISetup;
10import org.eclipse.xtext.common.TerminalsStandaloneSetup;
11import org.eclipse.xtext.resource.IResourceFactory;
12import org.eclipse.xtext.resource.IResourceServiceProvider;
13
14@SuppressWarnings("all")
15public class ProblemStandaloneSetupGenerated implements ISetup {
16
17 @Override
18 public Injector createInjectorAndDoEMFRegistration() {
19 TerminalsStandaloneSetup.doSetup();
20
21 Injector injector = createInjector();
22 register(injector);
23 return injector;
24 }
25
26 public Injector createInjector() {
27 return Guice.createInjector(new ProblemRuntimeModule());
28 }
29
30 public void register(Injector injector) {
31 IResourceFactory resourceFactory = injector.getInstance(IResourceFactory.class);
32 IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class);
33
34 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("problem", resourceFactory);
35 IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("problem", serviceProvider);
36 }
37}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java
new file mode 100644
index 00000000..b7ecf3f6
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java
@@ -0,0 +1,16 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.parser.antlr;
5
6import java.io.InputStream;
7import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
8
9public class ProblemAntlrTokenFileProvider implements IAntlrTokenFileProvider {
10
11 @Override
12 public InputStream getAntlrTokenFile() {
13 ClassLoader classLoader = getClass().getClassLoader();
14 return classLoader.getResourceAsStream("org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens");
15 }
16}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java
new file mode 100644
index 00000000..3af86cab
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java
@@ -0,0 +1,40 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.parser.antlr;
5
6import com.google.inject.Inject;
7import org.eclipse.viatra.solver.language.parser.antlr.internal.InternalProblemParser;
8import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
9import org.eclipse.xtext.parser.antlr.AbstractAntlrParser;
10import org.eclipse.xtext.parser.antlr.XtextTokenStream;
11
12public class ProblemParser extends AbstractAntlrParser {
13
14 @Inject
15 private ProblemGrammarAccess grammarAccess;
16
17 @Override
18 protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
19 tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
20 }
21
22
23 @Override
24 protected InternalProblemParser createParser(XtextTokenStream stream) {
25 return new InternalProblemParser(stream, getGrammarAccess());
26 }
27
28 @Override
29 protected String getDefaultRuleName() {
30 return "Problem";
31 }
32
33 public ProblemGrammarAccess getGrammarAccess() {
34 return this.grammarAccess;
35 }
36
37 public void setGrammarAccess(ProblemGrammarAccess grammarAccess) {
38 this.grammarAccess = grammarAccess;
39 }
40}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
new file mode 100644
index 00000000..61b76835
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
@@ -0,0 +1,1522 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4grammar InternalProblem;
5
6options {
7 superClass=AbstractInternalAntlrParser;
8}
9
10@lexer::header {
11package org.eclipse.viatra.solver.language.parser.antlr.internal;
12
13// Hack: Use our own Lexer superclass by means of import.
14// Currently there is no other way to specify the superclass for the lexer.
15import org.eclipse.xtext.parser.antlr.Lexer;
16}
17
18@parser::header {
19package org.eclipse.viatra.solver.language.parser.antlr.internal;
20
21import org.eclipse.xtext.*;
22import org.eclipse.xtext.parser.*;
23import org.eclipse.xtext.parser.impl.*;
24import org.eclipse.emf.ecore.util.EcoreUtil;
25import org.eclipse.emf.ecore.EObject;
26import org.eclipse.emf.common.util.Enumerator;
27import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
28import org.eclipse.xtext.parser.antlr.XtextTokenStream;
29import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
30import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
31import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
32
33}
34
35@parser::members {
36
37 private ProblemGrammarAccess grammarAccess;
38
39 public InternalProblemParser(TokenStream input, ProblemGrammarAccess grammarAccess) {
40 this(input);
41 this.grammarAccess = grammarAccess;
42 registerRules(grammarAccess.getGrammar());
43 }
44
45 @Override
46 protected String getFirstRuleName() {
47 return "Problem";
48 }
49
50 @Override
51 protected ProblemGrammarAccess getGrammarAccess() {
52 return grammarAccess;
53 }
54
55}
56
57@rulecatch {
58 catch (RecognitionException re) {
59 recover(input,re);
60 appendSkippedTokens();
61 }
62}
63
64// Entry rule entryRuleProblem
65entryRuleProblem returns [EObject current=null]:
66 { newCompositeNode(grammarAccess.getProblemRule()); }
67 iv_ruleProblem=ruleProblem
68 { $current=$iv_ruleProblem.current; }
69 EOF;
70
71// Rule Problem
72ruleProblem returns [EObject current=null]
73@init {
74 enterRule();
75}
76@after {
77 leaveRule();
78}:
79 (
80 (
81 {
82 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0());
83 }
84 lv_statements_0_0=ruleStatement
85 {
86 if ($current==null) {
87 $current = createModelElementForParent(grammarAccess.getProblemRule());
88 }
89 add(
90 $current,
91 "statements",
92 lv_statements_0_0,
93 "org.eclipse.viatra.solver.language.Problem.Statement");
94 afterParserOrEnumRuleCall();
95 }
96 )
97 )*
98;
99
100// Entry rule entryRuleStatement
101entryRuleStatement returns [EObject current=null]:
102 { newCompositeNode(grammarAccess.getStatementRule()); }
103 iv_ruleStatement=ruleStatement
104 { $current=$iv_ruleStatement.current; }
105 EOF;
106
107// Rule Statement
108ruleStatement returns [EObject current=null]
109@init {
110 enterRule();
111}
112@after {
113 leaveRule();
114}:
115 (
116 {
117 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
118 }
119 this_ClassDeclaration_0=ruleClassDeclaration
120 {
121 $current = $this_ClassDeclaration_0.current;
122 afterParserOrEnumRuleCall();
123 }
124 |
125 {
126 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1());
127 }
128 this_PredicateDefinition_1=rulePredicateDefinition
129 {
130 $current = $this_PredicateDefinition_1.current;
131 afterParserOrEnumRuleCall();
132 }
133 |
134 {
135 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_2());
136 }
137 this_Assertion_2=ruleAssertion
138 {
139 $current = $this_Assertion_2.current;
140 afterParserOrEnumRuleCall();
141 }
142 |
143 {
144 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_3());
145 }
146 this_ScopeDeclaration_3=ruleScopeDeclaration
147 {
148 $current = $this_ScopeDeclaration_3.current;
149 afterParserOrEnumRuleCall();
150 }
151 )
152;
153
154// Entry rule entryRuleClassDeclaration
155entryRuleClassDeclaration returns [EObject current=null]:
156 { newCompositeNode(grammarAccess.getClassDeclarationRule()); }
157 iv_ruleClassDeclaration=ruleClassDeclaration
158 { $current=$iv_ruleClassDeclaration.current; }
159 EOF;
160
161// Rule ClassDeclaration
162ruleClassDeclaration returns [EObject current=null]
163@init {
164 enterRule();
165}
166@after {
167 leaveRule();
168}:
169 (
170 (
171 (
172 lv_abstract_0_0='abstract'
173 {
174 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
175 }
176 {
177 if ($current==null) {
178 $current = createModelElement(grammarAccess.getClassDeclarationRule());
179 }
180 setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
181 }
182 )
183 )?
184 otherlv_1='class'
185 {
186 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
187 }
188 (
189 (
190 lv_name_2_0=RULE_ID
191 {
192 newLeafNode(lv_name_2_0, grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0());
193 }
194 {
195 if ($current==null) {
196 $current = createModelElement(grammarAccess.getClassDeclarationRule());
197 }
198 setWithLastConsumed(
199 $current,
200 "name",
201 lv_name_2_0,
202 "org.eclipse.xtext.common.Terminals.ID");
203 }
204 )
205 )
206 (
207 (
208 otherlv_3='extends'
209 {
210 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0_0());
211 }
212 (
213 (
214 (
215 {
216 if ($current==null) {
217 $current = createModelElement(grammarAccess.getClassDeclarationRule());
218 }
219 }
220 otherlv_4=RULE_ID
221 {
222 newLeafNode(otherlv_4, grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_0_0());
223 }
224 )
225 )
226 |
227 (
228 otherlv_5='['
229 {
230 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getLeftSquareBracketKeyword_3_0_1_1_0());
231 }
232 (
233 (
234 (
235 {
236 if ($current==null) {
237 $current = createModelElement(grammarAccess.getClassDeclarationRule());
238 }
239 }
240 otherlv_6=RULE_ID
241 {
242 newLeafNode(otherlv_6, grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0());
243 }
244 )
245 )
246 (
247 otherlv_7=','
248 {
249 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_0_1_1_1_1_0());
250 }
251 (
252 (
253 {
254 if ($current==null) {
255 $current = createModelElement(grammarAccess.getClassDeclarationRule());
256 }
257 }
258 otherlv_8=RULE_ID
259 {
260 newLeafNode(otherlv_8, grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0());
261 }
262 )
263 )
264 )*
265 )?
266 otherlv_9=']'
267 {
268 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getRightSquareBracketKeyword_3_0_1_1_2());
269 }
270 )
271 )
272 )
273 |
274 (
275 (
276 {
277 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0());
278 }
279 lv_referenceDeclarations_10_0=ruleReferenceDeclaration
280 {
281 if ($current==null) {
282 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
283 }
284 add(
285 $current,
286 "referenceDeclarations",
287 lv_referenceDeclarations_10_0,
288 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
289 afterParserOrEnumRuleCall();
290 }
291 )
292 )
293 )?
294 (
295 otherlv_11=','
296 {
297 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getCommaKeyword_4_0());
298 }
299 (
300 (
301 {
302 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0());
303 }
304 lv_referenceDeclarations_12_0=ruleReferenceDeclaration
305 {
306 if ($current==null) {
307 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
308 }
309 add(
310 $current,
311 "referenceDeclarations",
312 lv_referenceDeclarations_12_0,
313 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
314 afterParserOrEnumRuleCall();
315 }
316 )
317 )
318 )*
319 otherlv_13='.'
320 {
321 newLeafNode(otherlv_13, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_5());
322 }
323 )
324;
325
326// Entry rule entryRuleReferenceDeclaration
327entryRuleReferenceDeclaration returns [EObject current=null]:
328 { newCompositeNode(grammarAccess.getReferenceDeclarationRule()); }
329 iv_ruleReferenceDeclaration=ruleReferenceDeclaration
330 { $current=$iv_ruleReferenceDeclaration.current; }
331 EOF;
332
333// Rule ReferenceDeclaration
334ruleReferenceDeclaration returns [EObject current=null]
335@init {
336 enterRule();
337}
338@after {
339 leaveRule();
340}:
341 (
342 (
343 (
344 (
345 lv_containment_0_0='contains'
346 {
347 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
348 }
349 {
350 if ($current==null) {
351 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
352 }
353 setWithLastConsumed($current, "containment", lv_containment_0_0 != null, "contains");
354 }
355 )
356 )
357 |
358 otherlv_1='refers'
359 {
360 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
361 }
362 )
363 (
364 (
365 {
366 if ($current==null) {
367 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
368 }
369 }
370 otherlv_2=RULE_ID
371 {
372 newLeafNode(otherlv_2, grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationCrossReference_1_0());
373 }
374 )
375 )
376 otherlv_3='['
377 {
378 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2());
379 }
380 (
381 (
382 {
383 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_3_0());
384 }
385 lv_multiplicity_4_0=ruleMultiplicity
386 {
387 if ($current==null) {
388 $current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
389 }
390 set(
391 $current,
392 "multiplicity",
393 lv_multiplicity_4_0,
394 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
395 afterParserOrEnumRuleCall();
396 }
397 )
398 )
399 otherlv_5=']'
400 {
401 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_4());
402 }
403 (
404 (
405 lv_name_6_0=RULE_ID
406 {
407 newLeafNode(lv_name_6_0, grammarAccess.getReferenceDeclarationAccess().getNameIDTerminalRuleCall_5_0());
408 }
409 {
410 if ($current==null) {
411 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
412 }
413 setWithLastConsumed(
414 $current,
415 "name",
416 lv_name_6_0,
417 "org.eclipse.xtext.common.Terminals.ID");
418 }
419 )
420 )
421 (
422 otherlv_7='opposite'
423 {
424 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_6_0());
425 }
426 (
427 (
428 {
429 if ($current==null) {
430 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
431 }
432 }
433 {
434 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_6_1_0());
435 }
436 ruleQualifiedName
437 {
438 afterParserOrEnumRuleCall();
439 }
440 )
441 )
442 )?
443 )
444;
445
446// Entry rule entryRulePredicateDefinition
447entryRulePredicateDefinition returns [EObject current=null]:
448 { newCompositeNode(grammarAccess.getPredicateDefinitionRule()); }
449 iv_rulePredicateDefinition=rulePredicateDefinition
450 { $current=$iv_rulePredicateDefinition.current; }
451 EOF;
452
453// Rule PredicateDefinition
454rulePredicateDefinition returns [EObject current=null]
455@init {
456 enterRule();
457}
458@after {
459 leaveRule();
460}:
461 (
462 (
463 (
464 (
465 (
466 lv_error_0_0='error'
467 {
468 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
469 }
470 {
471 if ($current==null) {
472 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
473 }
474 setWithLastConsumed($current, "error", lv_error_0_0 != null, "error");
475 }
476 )
477 )
478 (
479 otherlv_1='pred'
480 {
481 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
482 }
483 )?
484 )
485 |
486 otherlv_2='pred'
487 {
488 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
489 }
490 )
491 (
492 (
493 lv_name_3_0=RULE_ID
494 {
495 newLeafNode(lv_name_3_0, grammarAccess.getPredicateDefinitionAccess().getNameIDTerminalRuleCall_1_0());
496 }
497 {
498 if ($current==null) {
499 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
500 }
501 setWithLastConsumed(
502 $current,
503 "name",
504 lv_name_3_0,
505 "org.eclipse.xtext.common.Terminals.ID");
506 }
507 )
508 )
509 otherlv_4='('
510 {
511 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
512 }
513 (
514 (
515 (
516 {
517 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
518 }
519 lv_parameters_5_0=ruleParameter
520 {
521 if ($current==null) {
522 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
523 }
524 add(
525 $current,
526 "parameters",
527 lv_parameters_5_0,
528 "org.eclipse.viatra.solver.language.Problem.Parameter");
529 afterParserOrEnumRuleCall();
530 }
531 )
532 )
533 (
534 otherlv_6=','
535 {
536 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
537 }
538 (
539 (
540 {
541 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
542 }
543 lv_parameters_7_0=ruleParameter
544 {
545 if ($current==null) {
546 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
547 }
548 add(
549 $current,
550 "parameters",
551 lv_parameters_7_0,
552 "org.eclipse.viatra.solver.language.Problem.Parameter");
553 afterParserOrEnumRuleCall();
554 }
555 )
556 )
557 )*
558 )?
559 otherlv_8=')'
560 {
561 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
562 }
563 (
564 otherlv_9=':='
565 {
566 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonEqualsSignKeyword_5_0());
567 }
568 (
569 (
570 {
571 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
572 }
573 lv_bodies_10_0=ruleConjunction
574 {
575 if ($current==null) {
576 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
577 }
578 add(
579 $current,
580 "bodies",
581 lv_bodies_10_0,
582 "org.eclipse.viatra.solver.language.Problem.Conjunction");
583 afterParserOrEnumRuleCall();
584 }
585 )
586 )
587 (
588 otherlv_11=';'
589 {
590 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
591 }
592 (
593 (
594 {
595 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
596 }
597 lv_bodies_12_0=ruleConjunction
598 {
599 if ($current==null) {
600 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
601 }
602 add(
603 $current,
604 "bodies",
605 lv_bodies_12_0,
606 "org.eclipse.viatra.solver.language.Problem.Conjunction");
607 afterParserOrEnumRuleCall();
608 }
609 )
610 )
611 )*
612 )?
613 otherlv_13='.'
614 {
615 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
616 }
617 )
618;
619
620// Entry rule entryRuleParameter
621entryRuleParameter returns [EObject current=null]:
622 { newCompositeNode(grammarAccess.getParameterRule()); }
623 iv_ruleParameter=ruleParameter
624 { $current=$iv_ruleParameter.current; }
625 EOF;
626
627// Rule Parameter
628ruleParameter returns [EObject current=null]
629@init {
630 enterRule();
631}
632@after {
633 leaveRule();
634}:
635 (
636 (
637 (
638 {
639 if ($current==null) {
640 $current = createModelElement(grammarAccess.getParameterRule());
641 }
642 }
643 otherlv_0=RULE_ID
644 {
645 newLeafNode(otherlv_0, grammarAccess.getParameterAccess().getParameterTypeClassDeclarationCrossReference_0_0());
646 }
647 )
648 )
649 (
650 (
651 lv_name_1_0=RULE_ID
652 {
653 newLeafNode(lv_name_1_0, grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0());
654 }
655 {
656 if ($current==null) {
657 $current = createModelElement(grammarAccess.getParameterRule());
658 }
659 setWithLastConsumed(
660 $current,
661 "name",
662 lv_name_1_0,
663 "org.eclipse.xtext.common.Terminals.ID");
664 }
665 )
666 )
667 )
668;
669
670// Entry rule entryRuleConjunction
671entryRuleConjunction returns [EObject current=null]:
672 { newCompositeNode(grammarAccess.getConjunctionRule()); }
673 iv_ruleConjunction=ruleConjunction
674 { $current=$iv_ruleConjunction.current; }
675 EOF;
676
677// Rule Conjunction
678ruleConjunction returns [EObject current=null]
679@init {
680 enterRule();
681}
682@after {
683 leaveRule();
684}:
685 (
686 (
687 (
688 {
689 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
690 }
691 lv_literals_0_0=ruleLiteral
692 {
693 if ($current==null) {
694 $current = createModelElementForParent(grammarAccess.getConjunctionRule());
695 }
696 add(
697 $current,
698 "literals",
699 lv_literals_0_0,
700 "org.eclipse.viatra.solver.language.Problem.Literal");
701 afterParserOrEnumRuleCall();
702 }
703 )
704 )
705 (
706 otherlv_1=','
707 {
708 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
709 }
710 (
711 (
712 {
713 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
714 }
715 lv_literals_2_0=ruleLiteral
716 {
717 if ($current==null) {
718 $current = createModelElementForParent(grammarAccess.getConjunctionRule());
719 }
720 add(
721 $current,
722 "literals",
723 lv_literals_2_0,
724 "org.eclipse.viatra.solver.language.Problem.Literal");
725 afterParserOrEnumRuleCall();
726 }
727 )
728 )
729 )*
730 )
731;
732
733// Entry rule entryRuleLiteral
734entryRuleLiteral returns [EObject current=null]:
735 { newCompositeNode(grammarAccess.getLiteralRule()); }
736 iv_ruleLiteral=ruleLiteral
737 { $current=$iv_ruleLiteral.current; }
738 EOF;
739
740// Rule Literal
741ruleLiteral returns [EObject current=null]
742@init {
743 enterRule();
744}
745@after {
746 leaveRule();
747}:
748 (
749 {
750 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
751 }
752 this_Atom_0=ruleAtom
753 {
754 $current = $this_Atom_0.current;
755 afterParserOrEnumRuleCall();
756 }
757 |
758 {
759 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
760 }
761 this_NegativeLiteral_1=ruleNegativeLiteral
762 {
763 $current = $this_NegativeLiteral_1.current;
764 afterParserOrEnumRuleCall();
765 }
766 )
767;
768
769// Entry rule entryRuleNegativeLiteral
770entryRuleNegativeLiteral returns [EObject current=null]:
771 { newCompositeNode(grammarAccess.getNegativeLiteralRule()); }
772 iv_ruleNegativeLiteral=ruleNegativeLiteral
773 { $current=$iv_ruleNegativeLiteral.current; }
774 EOF;
775
776// Rule NegativeLiteral
777ruleNegativeLiteral returns [EObject current=null]
778@init {
779 enterRule();
780}
781@after {
782 leaveRule();
783}:
784 (
785 otherlv_0='!'
786 {
787 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
788 }
789 (
790 (
791 {
792 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
793 }
794 lv_atom_1_0=ruleAtom
795 {
796 if ($current==null) {
797 $current = createModelElementForParent(grammarAccess.getNegativeLiteralRule());
798 }
799 set(
800 $current,
801 "atom",
802 lv_atom_1_0,
803 "org.eclipse.viatra.solver.language.Problem.Atom");
804 afterParserOrEnumRuleCall();
805 }
806 )
807 )
808 )
809;
810
811// Entry rule entryRuleAtom
812entryRuleAtom returns [EObject current=null]:
813 { newCompositeNode(grammarAccess.getAtomRule()); }
814 iv_ruleAtom=ruleAtom
815 { $current=$iv_ruleAtom.current; }
816 EOF;
817
818// Rule Atom
819ruleAtom returns [EObject current=null]
820@init {
821 enterRule();
822}
823@after {
824 leaveRule();
825}:
826 (
827 (
828 (
829 {
830 if ($current==null) {
831 $current = createModelElement(grammarAccess.getAtomRule());
832 }
833 }
834 {
835 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
836 }
837 ruleQualifiedName
838 {
839 afterParserOrEnumRuleCall();
840 }
841 )
842 )
843 (
844 (
845 lv_transitiveClosure_1_0='+'
846 {
847 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
848 }
849 {
850 if ($current==null) {
851 $current = createModelElement(grammarAccess.getAtomRule());
852 }
853 setWithLastConsumed($current, "transitiveClosure", lv_transitiveClosure_1_0 != null, "+");
854 }
855 )
856 )?
857 otherlv_2='('
858 {
859 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
860 }
861 (
862 (
863 (
864 {
865 if ($current==null) {
866 $current = createModelElement(grammarAccess.getAtomRule());
867 }
868 }
869 otherlv_3=RULE_ID
870 {
871 newLeafNode(otherlv_3, grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_0_0());
872 }
873 )
874 )
875 (
876 otherlv_4=','
877 {
878 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
879 }
880 (
881 (
882 {
883 if ($current==null) {
884 $current = createModelElement(grammarAccess.getAtomRule());
885 }
886 }
887 otherlv_5=RULE_ID
888 {
889 newLeafNode(otherlv_5, grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_1_1_0());
890 }
891 )
892 )
893 )*
894 )?
895 otherlv_6=')'
896 {
897 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
898 }
899 )
900;
901
902// Entry rule entryRuleAssertion
903entryRuleAssertion returns [EObject current=null]:
904 { newCompositeNode(grammarAccess.getAssertionRule()); }
905 iv_ruleAssertion=ruleAssertion
906 { $current=$iv_ruleAssertion.current; }
907 EOF;
908
909// Rule Assertion
910ruleAssertion returns [EObject current=null]
911@init {
912 enterRule();
913}
914@after {
915 leaveRule();
916}:
917 (
918 (
919 (
920 (
921 (
922 {
923 if ($current==null) {
924 $current = createModelElement(grammarAccess.getAssertionRule());
925 }
926 }
927 {
928 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
929 }
930 ruleQualifiedName
931 {
932 afterParserOrEnumRuleCall();
933 }
934 )
935 )
936 otherlv_1='('
937 {
938 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
939 }
940 (
941 (
942 (
943 {
944 if ($current==null) {
945 $current = createModelElement(grammarAccess.getAssertionRule());
946 }
947 }
948 {
949 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
950 }
951 ruleQualifiedName
952 {
953 afterParserOrEnumRuleCall();
954 }
955 )
956 )
957 (
958 otherlv_3=','
959 {
960 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
961 }
962 (
963 (
964 {
965 if ($current==null) {
966 $current = createModelElement(grammarAccess.getAssertionRule());
967 }
968 }
969 {
970 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
971 }
972 ruleQualifiedName
973 {
974 afterParserOrEnumRuleCall();
975 }
976 )
977 )
978 )*
979 )?
980 otherlv_5=')'
981 {
982 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
983 }
984 otherlv_6=':'
985 {
986 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
987 }
988 (
989 (
990 {
991 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
992 }
993 lv_value_7_0=ruleLogicValue
994 {
995 if ($current==null) {
996 $current = createModelElementForParent(grammarAccess.getAssertionRule());
997 }
998 set(
999 $current,
1000 "value",
1001 lv_value_7_0,
1002 "org.eclipse.viatra.solver.language.Problem.LogicValue");
1003 afterParserOrEnumRuleCall();
1004 }
1005 )
1006 )
1007 )
1008 |
1009 (
1010 (
1011 (
1012 {
1013 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
1014 }
1015 lv_value_8_0=ruleShortLogicValue
1016 {
1017 if ($current==null) {
1018 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1019 }
1020 set(
1021 $current,
1022 "value",
1023 lv_value_8_0,
1024 "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
1025 afterParserOrEnumRuleCall();
1026 }
1027 )
1028 )?
1029 (
1030 (
1031 {
1032 if ($current==null) {
1033 $current = createModelElement(grammarAccess.getAssertionRule());
1034 }
1035 }
1036 {
1037 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
1038 }
1039 ruleQualifiedName
1040 {
1041 afterParserOrEnumRuleCall();
1042 }
1043 )
1044 )
1045 otherlv_10='('
1046 {
1047 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
1048 }
1049 (
1050 (
1051 (
1052 {
1053 if ($current==null) {
1054 $current = createModelElement(grammarAccess.getAssertionRule());
1055 }
1056 }
1057 {
1058 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
1059 }
1060 ruleQualifiedName
1061 {
1062 afterParserOrEnumRuleCall();
1063 }
1064 )
1065 )
1066 (
1067 otherlv_12=','
1068 {
1069 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
1070 }
1071 (
1072 (
1073 {
1074 if ($current==null) {
1075 $current = createModelElement(grammarAccess.getAssertionRule());
1076 }
1077 }
1078 {
1079 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
1080 }
1081 ruleQualifiedName
1082 {
1083 afterParserOrEnumRuleCall();
1084 }
1085 )
1086 )
1087 )*
1088 )?
1089 otherlv_14=')'
1090 {
1091 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
1092 }
1093 )
1094 )
1095 otherlv_15='.'
1096 {
1097 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
1098 }
1099 )
1100;
1101
1102// Entry rule entryRuleScopeDeclaration
1103entryRuleScopeDeclaration returns [EObject current=null]:
1104 { newCompositeNode(grammarAccess.getScopeDeclarationRule()); }
1105 iv_ruleScopeDeclaration=ruleScopeDeclaration
1106 { $current=$iv_ruleScopeDeclaration.current; }
1107 EOF;
1108
1109// Rule ScopeDeclaration
1110ruleScopeDeclaration returns [EObject current=null]
1111@init {
1112 enterRule();
1113}
1114@after {
1115 leaveRule();
1116}:
1117 (
1118 otherlv_0='scope'
1119 {
1120 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
1121 }
1122 (
1123 (
1124 {
1125 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
1126 }
1127 lv_typeScopes_1_0=ruleTypeScope
1128 {
1129 if ($current==null) {
1130 $current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
1131 }
1132 add(
1133 $current,
1134 "typeScopes",
1135 lv_typeScopes_1_0,
1136 "org.eclipse.viatra.solver.language.Problem.TypeScope");
1137 afterParserOrEnumRuleCall();
1138 }
1139 )
1140 )
1141 (
1142 otherlv_2=','
1143 {
1144 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
1145 }
1146 (
1147 (
1148 {
1149 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
1150 }
1151 lv_typeScopes_3_0=ruleTypeScope
1152 {
1153 if ($current==null) {
1154 $current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
1155 }
1156 add(
1157 $current,
1158 "typeScopes",
1159 lv_typeScopes_3_0,
1160 "org.eclipse.viatra.solver.language.Problem.TypeScope");
1161 afterParserOrEnumRuleCall();
1162 }
1163 )
1164 )
1165 )*
1166 otherlv_4='.'
1167 {
1168 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
1169 }
1170 )
1171;
1172
1173// Entry rule entryRuleTypeScope
1174entryRuleTypeScope returns [EObject current=null]:
1175 { newCompositeNode(grammarAccess.getTypeScopeRule()); }
1176 iv_ruleTypeScope=ruleTypeScope
1177 { $current=$iv_ruleTypeScope.current; }
1178 EOF;
1179
1180// Rule TypeScope
1181ruleTypeScope returns [EObject current=null]
1182@init {
1183 enterRule();
1184}
1185@after {
1186 leaveRule();
1187}:
1188 (
1189 (
1190 (
1191 {
1192 if ($current==null) {
1193 $current = createModelElement(grammarAccess.getTypeScopeRule());
1194 }
1195 }
1196 otherlv_0=RULE_ID
1197 {
1198 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
1199 }
1200 )
1201 )
1202 (
1203 (
1204 (
1205 lv_increment_1_0='+='
1206 {
1207 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
1208 }
1209 {
1210 if ($current==null) {
1211 $current = createModelElement(grammarAccess.getTypeScopeRule());
1212 }
1213 setWithLastConsumed($current, "increment", lv_increment_1_0 != null, "+=");
1214 }
1215 )
1216 )
1217 |
1218 otherlv_2='='
1219 {
1220 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
1221 }
1222 )
1223 (
1224 (
1225 {
1226 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
1227 }
1228 lv_multiplicity_3_0=ruleMultiplicity
1229 {
1230 if ($current==null) {
1231 $current = createModelElementForParent(grammarAccess.getTypeScopeRule());
1232 }
1233 set(
1234 $current,
1235 "multiplicity",
1236 lv_multiplicity_3_0,
1237 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
1238 afterParserOrEnumRuleCall();
1239 }
1240 )
1241 )
1242 )
1243;
1244
1245// Entry rule entryRuleMultiplicity
1246entryRuleMultiplicity returns [EObject current=null]:
1247 { newCompositeNode(grammarAccess.getMultiplicityRule()); }
1248 iv_ruleMultiplicity=ruleMultiplicity
1249 { $current=$iv_ruleMultiplicity.current; }
1250 EOF;
1251
1252// Rule Multiplicity
1253ruleMultiplicity returns [EObject current=null]
1254@init {
1255 enterRule();
1256}
1257@after {
1258 leaveRule();
1259}:
1260 (
1261 {
1262 newCompositeNode(grammarAccess.getMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
1263 }
1264 this_RangeMultiplicity_0=ruleRangeMultiplicity
1265 {
1266 $current = $this_RangeMultiplicity_0.current;
1267 afterParserOrEnumRuleCall();
1268 }
1269 |
1270 {
1271 newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
1272 }
1273 this_ExactMultiplicity_1=ruleExactMultiplicity
1274 {
1275 $current = $this_ExactMultiplicity_1.current;
1276 afterParserOrEnumRuleCall();
1277 }
1278 )
1279;
1280
1281// Entry rule entryRuleRangeMultiplicity
1282entryRuleRangeMultiplicity returns [EObject current=null]:
1283 { newCompositeNode(grammarAccess.getRangeMultiplicityRule()); }
1284 iv_ruleRangeMultiplicity=ruleRangeMultiplicity
1285 { $current=$iv_ruleRangeMultiplicity.current; }
1286 EOF;
1287
1288// Rule RangeMultiplicity
1289ruleRangeMultiplicity returns [EObject current=null]
1290@init {
1291 enterRule();
1292}
1293@after {
1294 leaveRule();
1295}:
1296 (
1297 (
1298 (
1299 lv_lowerBound_0_0=RULE_INT
1300 {
1301 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
1302 }
1303 {
1304 if ($current==null) {
1305 $current = createModelElement(grammarAccess.getRangeMultiplicityRule());
1306 }
1307 setWithLastConsumed(
1308 $current,
1309 "lowerBound",
1310 lv_lowerBound_0_0,
1311 "org.eclipse.xtext.common.Terminals.INT");
1312 }
1313 )
1314 )
1315 otherlv_1='..'
1316 {
1317 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
1318 }
1319 (
1320 (
1321 {
1322 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
1323 }
1324 lv_upperBound_2_0=ruleUpperBound
1325 {
1326 if ($current==null) {
1327 $current = createModelElementForParent(grammarAccess.getRangeMultiplicityRule());
1328 }
1329 set(
1330 $current,
1331 "upperBound",
1332 lv_upperBound_2_0,
1333 "org.eclipse.viatra.solver.language.Problem.UpperBound");
1334 afterParserOrEnumRuleCall();
1335 }
1336 )
1337 )
1338 )
1339;
1340
1341// Entry rule entryRuleExactMultiplicity
1342entryRuleExactMultiplicity returns [EObject current=null]:
1343 { newCompositeNode(grammarAccess.getExactMultiplicityRule()); }
1344 iv_ruleExactMultiplicity=ruleExactMultiplicity
1345 { $current=$iv_ruleExactMultiplicity.current; }
1346 EOF;
1347
1348// Rule ExactMultiplicity
1349ruleExactMultiplicity returns [EObject current=null]
1350@init {
1351 enterRule();
1352}
1353@after {
1354 leaveRule();
1355}:
1356 (
1357 (
1358 lv_exactValue_0_0=RULE_INT
1359 {
1360 newLeafNode(lv_exactValue_0_0, grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
1361 }
1362 {
1363 if ($current==null) {
1364 $current = createModelElement(grammarAccess.getExactMultiplicityRule());
1365 }
1366 setWithLastConsumed(
1367 $current,
1368 "exactValue",
1369 lv_exactValue_0_0,
1370 "org.eclipse.xtext.common.Terminals.INT");
1371 }
1372 )
1373 )
1374;
1375
1376// Entry rule entryRuleUpperBound
1377entryRuleUpperBound returns [String current=null]:
1378 { newCompositeNode(grammarAccess.getUpperBoundRule()); }
1379 iv_ruleUpperBound=ruleUpperBound
1380 { $current=$iv_ruleUpperBound.current.getText(); }
1381 EOF;
1382
1383// Rule UpperBound
1384ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1385@init {
1386 enterRule();
1387}
1388@after {
1389 leaveRule();
1390}:
1391 (
1392 this_INT_0=RULE_INT
1393 {
1394 $current.merge(this_INT_0);
1395 }
1396 {
1397 newLeafNode(this_INT_0, grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
1398 }
1399 |
1400 kw='*'
1401 {
1402 $current.merge(kw);
1403 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
1404 }
1405 )
1406;
1407
1408// Entry rule entryRuleQualifiedName
1409entryRuleQualifiedName returns [String current=null]:
1410 { newCompositeNode(grammarAccess.getQualifiedNameRule()); }
1411 iv_ruleQualifiedName=ruleQualifiedName
1412 { $current=$iv_ruleQualifiedName.current.getText(); }
1413 EOF;
1414
1415// Rule QualifiedName
1416ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1417@init {
1418 enterRule();
1419}
1420@after {
1421 leaveRule();
1422}:
1423 (
1424 this_ID_0=RULE_ID
1425 {
1426 $current.merge(this_ID_0);
1427 }
1428 {
1429 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0());
1430 }
1431 (
1432 kw='::'
1433 {
1434 $current.merge(kw);
1435 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0());
1436 }
1437 this_ID_2=RULE_ID
1438 {
1439 $current.merge(this_ID_2);
1440 }
1441 {
1442 newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1());
1443 }
1444 )*
1445 )
1446;
1447
1448// Rule LogicValue
1449ruleLogicValue returns [Enumerator current=null]
1450@init {
1451 enterRule();
1452}
1453@after {
1454 leaveRule();
1455}:
1456 (
1457 (
1458 enumLiteral_0='true'
1459 {
1460 $current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
1461 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
1462 }
1463 )
1464 |
1465 (
1466 enumLiteral_1='false'
1467 {
1468 $current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
1469 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
1470 }
1471 )
1472 |
1473 (
1474 enumLiteral_2='unknown'
1475 {
1476 $current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
1477 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
1478 }
1479 )
1480 )
1481;
1482
1483// Rule ShortLogicValue
1484ruleShortLogicValue returns [Enumerator current=null]
1485@init {
1486 enterRule();
1487}
1488@after {
1489 leaveRule();
1490}:
1491 (
1492 (
1493 enumLiteral_0='!'
1494 {
1495 $current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
1496 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
1497 }
1498 )
1499 |
1500 (
1501 enumLiteral_1='?'
1502 {
1503 $current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
1504 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
1505 }
1506 )
1507 )
1508;
1509
1510RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
1511
1512RULE_INT : ('0'..'9')+;
1513
1514RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
1515
1516RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
1517
1518RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
1519
1520RULE_WS : (' '|'\t'|'\r'|'\n')+;
1521
1522RULE_ANY_OTHER : .;
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
new file mode 100644
index 00000000..22ef662c
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
@@ -0,0 +1,65 @@
1'!'=27
2'('=23
3')'=24
4'*'=34
5'+'=28
6'+='=31
7','=15
8'.'=17
9'..'=33
10':'=29
11'::'=35
12':='=25
13';'=26
14'='=32
15'?'=39
16'['=14
17']'=16
18'abstract'=11
19'class'=12
20'contains'=18
21'error'=21
22'extends'=13
23'false'=37
24'opposite'=20
25'pred'=22
26'refers'=19
27'scope'=30
28'true'=36
29'unknown'=38
30RULE_ANY_OTHER=10
31RULE_ID=4
32RULE_INT=5
33RULE_ML_COMMENT=7
34RULE_SL_COMMENT=8
35RULE_STRING=6
36RULE_WS=9
37T__11=11
38T__12=12
39T__13=13
40T__14=14
41T__15=15
42T__16=16
43T__17=17
44T__18=18
45T__19=19
46T__20=20
47T__21=21
48T__22=22
49T__23=23
50T__24=24
51T__25=25
52T__26=26
53T__27=27
54T__28=28
55T__29=29
56T__30=30
57T__31=31
58T__32=32
59T__33=33
60T__34=34
61T__35=35
62T__36=36
63T__37=37
64T__38=38
65T__39=39
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
new file mode 100644
index 00000000..a0b530c8
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
@@ -0,0 +1,1699 @@
1package org.eclipse.viatra.solver.language.parser.antlr.internal;
2
3// Hack: Use our own Lexer superclass by means of import.
4// Currently there is no other way to specify the superclass for the lexer.
5import org.eclipse.xtext.parser.antlr.Lexer;
6
7
8import org.antlr.runtime.*;
9import java.util.Stack;
10import java.util.List;
11import java.util.ArrayList;
12
13@SuppressWarnings("all")
14public class InternalProblemLexer extends Lexer {
15 public static final int RULE_STRING=6;
16 public static final int RULE_SL_COMMENT=8;
17 public static final int T__19=19;
18 public static final int T__15=15;
19 public static final int T__37=37;
20 public static final int T__16=16;
21 public static final int T__38=38;
22 public static final int T__17=17;
23 public static final int T__39=39;
24 public static final int T__18=18;
25 public static final int T__11=11;
26 public static final int T__33=33;
27 public static final int T__12=12;
28 public static final int T__34=34;
29 public static final int T__13=13;
30 public static final int T__35=35;
31 public static final int T__14=14;
32 public static final int T__36=36;
33 public static final int EOF=-1;
34 public static final int T__30=30;
35 public static final int T__31=31;
36 public static final int T__32=32;
37 public static final int RULE_ID=4;
38 public static final int RULE_WS=9;
39 public static final int RULE_ANY_OTHER=10;
40 public static final int T__26=26;
41 public static final int T__27=27;
42 public static final int T__28=28;
43 public static final int RULE_INT=5;
44 public static final int T__29=29;
45 public static final int T__22=22;
46 public static final int RULE_ML_COMMENT=7;
47 public static final int T__23=23;
48 public static final int T__24=24;
49 public static final int T__25=25;
50 public static final int T__20=20;
51 public static final int T__21=21;
52
53 // delegates
54 // delegators
55
56 public InternalProblemLexer() {;}
57 public InternalProblemLexer(CharStream input) {
58 this(input, new RecognizerSharedState());
59 }
60 public InternalProblemLexer(CharStream input, RecognizerSharedState state) {
61 super(input,state);
62
63 }
64 public String getGrammarFileName() { return "InternalProblem.g"; }
65
66 // $ANTLR start "T__11"
67 public final void mT__11() throws RecognitionException {
68 try {
69 int _type = T__11;
70 int _channel = DEFAULT_TOKEN_CHANNEL;
71 // InternalProblem.g:11:7: ( 'abstract' )
72 // InternalProblem.g:11:9: 'abstract'
73 {
74 match("abstract");
75
76
77 }
78
79 state.type = _type;
80 state.channel = _channel;
81 }
82 finally {
83 }
84 }
85 // $ANTLR end "T__11"
86
87 // $ANTLR start "T__12"
88 public final void mT__12() throws RecognitionException {
89 try {
90 int _type = T__12;
91 int _channel = DEFAULT_TOKEN_CHANNEL;
92 // InternalProblem.g:12:7: ( 'class' )
93 // InternalProblem.g:12:9: 'class'
94 {
95 match("class");
96
97
98 }
99
100 state.type = _type;
101 state.channel = _channel;
102 }
103 finally {
104 }
105 }
106 // $ANTLR end "T__12"
107
108 // $ANTLR start "T__13"
109 public final void mT__13() throws RecognitionException {
110 try {
111 int _type = T__13;
112 int _channel = DEFAULT_TOKEN_CHANNEL;
113 // InternalProblem.g:13:7: ( 'extends' )
114 // InternalProblem.g:13:9: 'extends'
115 {
116 match("extends");
117
118
119 }
120
121 state.type = _type;
122 state.channel = _channel;
123 }
124 finally {
125 }
126 }
127 // $ANTLR end "T__13"
128
129 // $ANTLR start "T__14"
130 public final void mT__14() throws RecognitionException {
131 try {
132 int _type = T__14;
133 int _channel = DEFAULT_TOKEN_CHANNEL;
134 // InternalProblem.g:14:7: ( '[' )
135 // InternalProblem.g:14:9: '['
136 {
137 match('[');
138
139 }
140
141 state.type = _type;
142 state.channel = _channel;
143 }
144 finally {
145 }
146 }
147 // $ANTLR end "T__14"
148
149 // $ANTLR start "T__15"
150 public final void mT__15() throws RecognitionException {
151 try {
152 int _type = T__15;
153 int _channel = DEFAULT_TOKEN_CHANNEL;
154 // InternalProblem.g:15:7: ( ',' )
155 // InternalProblem.g:15:9: ','
156 {
157 match(',');
158
159 }
160
161 state.type = _type;
162 state.channel = _channel;
163 }
164 finally {
165 }
166 }
167 // $ANTLR end "T__15"
168
169 // $ANTLR start "T__16"
170 public final void mT__16() throws RecognitionException {
171 try {
172 int _type = T__16;
173 int _channel = DEFAULT_TOKEN_CHANNEL;
174 // InternalProblem.g:16:7: ( ']' )
175 // InternalProblem.g:16:9: ']'
176 {
177 match(']');
178
179 }
180
181 state.type = _type;
182 state.channel = _channel;
183 }
184 finally {
185 }
186 }
187 // $ANTLR end "T__16"
188
189 // $ANTLR start "T__17"
190 public final void mT__17() throws RecognitionException {
191 try {
192 int _type = T__17;
193 int _channel = DEFAULT_TOKEN_CHANNEL;
194 // InternalProblem.g:17:7: ( '.' )
195 // InternalProblem.g:17:9: '.'
196 {
197 match('.');
198
199 }
200
201 state.type = _type;
202 state.channel = _channel;
203 }
204 finally {
205 }
206 }
207 // $ANTLR end "T__17"
208
209 // $ANTLR start "T__18"
210 public final void mT__18() throws RecognitionException {
211 try {
212 int _type = T__18;
213 int _channel = DEFAULT_TOKEN_CHANNEL;
214 // InternalProblem.g:18:7: ( 'contains' )
215 // InternalProblem.g:18:9: 'contains'
216 {
217 match("contains");
218
219
220 }
221
222 state.type = _type;
223 state.channel = _channel;
224 }
225 finally {
226 }
227 }
228 // $ANTLR end "T__18"
229
230 // $ANTLR start "T__19"
231 public final void mT__19() throws RecognitionException {
232 try {
233 int _type = T__19;
234 int _channel = DEFAULT_TOKEN_CHANNEL;
235 // InternalProblem.g:19:7: ( 'refers' )
236 // InternalProblem.g:19:9: 'refers'
237 {
238 match("refers");
239
240
241 }
242
243 state.type = _type;
244 state.channel = _channel;
245 }
246 finally {
247 }
248 }
249 // $ANTLR end "T__19"
250
251 // $ANTLR start "T__20"
252 public final void mT__20() throws RecognitionException {
253 try {
254 int _type = T__20;
255 int _channel = DEFAULT_TOKEN_CHANNEL;
256 // InternalProblem.g:20:7: ( 'opposite' )
257 // InternalProblem.g:20:9: 'opposite'
258 {
259 match("opposite");
260
261
262 }
263
264 state.type = _type;
265 state.channel = _channel;
266 }
267 finally {
268 }
269 }
270 // $ANTLR end "T__20"
271
272 // $ANTLR start "T__21"
273 public final void mT__21() throws RecognitionException {
274 try {
275 int _type = T__21;
276 int _channel = DEFAULT_TOKEN_CHANNEL;
277 // InternalProblem.g:21:7: ( 'error' )
278 // InternalProblem.g:21:9: 'error'
279 {
280 match("error");
281
282
283 }
284
285 state.type = _type;
286 state.channel = _channel;
287 }
288 finally {
289 }
290 }
291 // $ANTLR end "T__21"
292
293 // $ANTLR start "T__22"
294 public final void mT__22() throws RecognitionException {
295 try {
296 int _type = T__22;
297 int _channel = DEFAULT_TOKEN_CHANNEL;
298 // InternalProblem.g:22:7: ( 'pred' )
299 // InternalProblem.g:22:9: 'pred'
300 {
301 match("pred");
302
303
304 }
305
306 state.type = _type;
307 state.channel = _channel;
308 }
309 finally {
310 }
311 }
312 // $ANTLR end "T__22"
313
314 // $ANTLR start "T__23"
315 public final void mT__23() throws RecognitionException {
316 try {
317 int _type = T__23;
318 int _channel = DEFAULT_TOKEN_CHANNEL;
319 // InternalProblem.g:23:7: ( '(' )
320 // InternalProblem.g:23:9: '('
321 {
322 match('(');
323
324 }
325
326 state.type = _type;
327 state.channel = _channel;
328 }
329 finally {
330 }
331 }
332 // $ANTLR end "T__23"
333
334 // $ANTLR start "T__24"
335 public final void mT__24() throws RecognitionException {
336 try {
337 int _type = T__24;
338 int _channel = DEFAULT_TOKEN_CHANNEL;
339 // InternalProblem.g:24:7: ( ')' )
340 // InternalProblem.g:24:9: ')'
341 {
342 match(')');
343
344 }
345
346 state.type = _type;
347 state.channel = _channel;
348 }
349 finally {
350 }
351 }
352 // $ANTLR end "T__24"
353
354 // $ANTLR start "T__25"
355 public final void mT__25() throws RecognitionException {
356 try {
357 int _type = T__25;
358 int _channel = DEFAULT_TOKEN_CHANNEL;
359 // InternalProblem.g:25:7: ( ':=' )
360 // InternalProblem.g:25:9: ':='
361 {
362 match(":=");
363
364
365 }
366
367 state.type = _type;
368 state.channel = _channel;
369 }
370 finally {
371 }
372 }
373 // $ANTLR end "T__25"
374
375 // $ANTLR start "T__26"
376 public final void mT__26() throws RecognitionException {
377 try {
378 int _type = T__26;
379 int _channel = DEFAULT_TOKEN_CHANNEL;
380 // InternalProblem.g:26:7: ( ';' )
381 // InternalProblem.g:26:9: ';'
382 {
383 match(';');
384
385 }
386
387 state.type = _type;
388 state.channel = _channel;
389 }
390 finally {
391 }
392 }
393 // $ANTLR end "T__26"
394
395 // $ANTLR start "T__27"
396 public final void mT__27() throws RecognitionException {
397 try {
398 int _type = T__27;
399 int _channel = DEFAULT_TOKEN_CHANNEL;
400 // InternalProblem.g:27:7: ( '!' )
401 // InternalProblem.g:27:9: '!'
402 {
403 match('!');
404
405 }
406
407 state.type = _type;
408 state.channel = _channel;
409 }
410 finally {
411 }
412 }
413 // $ANTLR end "T__27"
414
415 // $ANTLR start "T__28"
416 public final void mT__28() throws RecognitionException {
417 try {
418 int _type = T__28;
419 int _channel = DEFAULT_TOKEN_CHANNEL;
420 // InternalProblem.g:28:7: ( '+' )
421 // InternalProblem.g:28:9: '+'
422 {
423 match('+');
424
425 }
426
427 state.type = _type;
428 state.channel = _channel;
429 }
430 finally {
431 }
432 }
433 // $ANTLR end "T__28"
434
435 // $ANTLR start "T__29"
436 public final void mT__29() throws RecognitionException {
437 try {
438 int _type = T__29;
439 int _channel = DEFAULT_TOKEN_CHANNEL;
440 // InternalProblem.g:29:7: ( ':' )
441 // InternalProblem.g:29:9: ':'
442 {
443 match(':');
444
445 }
446
447 state.type = _type;
448 state.channel = _channel;
449 }
450 finally {
451 }
452 }
453 // $ANTLR end "T__29"
454
455 // $ANTLR start "T__30"
456 public final void mT__30() throws RecognitionException {
457 try {
458 int _type = T__30;
459 int _channel = DEFAULT_TOKEN_CHANNEL;
460 // InternalProblem.g:30:7: ( 'scope' )
461 // InternalProblem.g:30:9: 'scope'
462 {
463 match("scope");
464
465
466 }
467
468 state.type = _type;
469 state.channel = _channel;
470 }
471 finally {
472 }
473 }
474 // $ANTLR end "T__30"
475
476 // $ANTLR start "T__31"
477 public final void mT__31() throws RecognitionException {
478 try {
479 int _type = T__31;
480 int _channel = DEFAULT_TOKEN_CHANNEL;
481 // InternalProblem.g:31:7: ( '+=' )
482 // InternalProblem.g:31:9: '+='
483 {
484 match("+=");
485
486
487 }
488
489 state.type = _type;
490 state.channel = _channel;
491 }
492 finally {
493 }
494 }
495 // $ANTLR end "T__31"
496
497 // $ANTLR start "T__32"
498 public final void mT__32() throws RecognitionException {
499 try {
500 int _type = T__32;
501 int _channel = DEFAULT_TOKEN_CHANNEL;
502 // InternalProblem.g:32:7: ( '=' )
503 // InternalProblem.g:32:9: '='
504 {
505 match('=');
506
507 }
508
509 state.type = _type;
510 state.channel = _channel;
511 }
512 finally {
513 }
514 }
515 // $ANTLR end "T__32"
516
517 // $ANTLR start "T__33"
518 public final void mT__33() throws RecognitionException {
519 try {
520 int _type = T__33;
521 int _channel = DEFAULT_TOKEN_CHANNEL;
522 // InternalProblem.g:33:7: ( '..' )
523 // InternalProblem.g:33:9: '..'
524 {
525 match("..");
526
527
528 }
529
530 state.type = _type;
531 state.channel = _channel;
532 }
533 finally {
534 }
535 }
536 // $ANTLR end "T__33"
537
538 // $ANTLR start "T__34"
539 public final void mT__34() throws RecognitionException {
540 try {
541 int _type = T__34;
542 int _channel = DEFAULT_TOKEN_CHANNEL;
543 // InternalProblem.g:34:7: ( '*' )
544 // InternalProblem.g:34:9: '*'
545 {
546 match('*');
547
548 }
549
550 state.type = _type;
551 state.channel = _channel;
552 }
553 finally {
554 }
555 }
556 // $ANTLR end "T__34"
557
558 // $ANTLR start "T__35"
559 public final void mT__35() throws RecognitionException {
560 try {
561 int _type = T__35;
562 int _channel = DEFAULT_TOKEN_CHANNEL;
563 // InternalProblem.g:35:7: ( '::' )
564 // InternalProblem.g:35:9: '::'
565 {
566 match("::");
567
568
569 }
570
571 state.type = _type;
572 state.channel = _channel;
573 }
574 finally {
575 }
576 }
577 // $ANTLR end "T__35"
578
579 // $ANTLR start "T__36"
580 public final void mT__36() throws RecognitionException {
581 try {
582 int _type = T__36;
583 int _channel = DEFAULT_TOKEN_CHANNEL;
584 // InternalProblem.g:36:7: ( 'true' )
585 // InternalProblem.g:36:9: 'true'
586 {
587 match("true");
588
589
590 }
591
592 state.type = _type;
593 state.channel = _channel;
594 }
595 finally {
596 }
597 }
598 // $ANTLR end "T__36"
599
600 // $ANTLR start "T__37"
601 public final void mT__37() throws RecognitionException {
602 try {
603 int _type = T__37;
604 int _channel = DEFAULT_TOKEN_CHANNEL;
605 // InternalProblem.g:37:7: ( 'false' )
606 // InternalProblem.g:37:9: 'false'
607 {
608 match("false");
609
610
611 }
612
613 state.type = _type;
614 state.channel = _channel;
615 }
616 finally {
617 }
618 }
619 // $ANTLR end "T__37"
620
621 // $ANTLR start "T__38"
622 public final void mT__38() throws RecognitionException {
623 try {
624 int _type = T__38;
625 int _channel = DEFAULT_TOKEN_CHANNEL;
626 // InternalProblem.g:38:7: ( 'unknown' )
627 // InternalProblem.g:38:9: 'unknown'
628 {
629 match("unknown");
630
631
632 }
633
634 state.type = _type;
635 state.channel = _channel;
636 }
637 finally {
638 }
639 }
640 // $ANTLR end "T__38"
641
642 // $ANTLR start "T__39"
643 public final void mT__39() throws RecognitionException {
644 try {
645 int _type = T__39;
646 int _channel = DEFAULT_TOKEN_CHANNEL;
647 // InternalProblem.g:39:7: ( '?' )
648 // InternalProblem.g:39:9: '?'
649 {
650 match('?');
651
652 }
653
654 state.type = _type;
655 state.channel = _channel;
656 }
657 finally {
658 }
659 }
660 // $ANTLR end "T__39"
661
662 // $ANTLR start "RULE_ID"
663 public final void mRULE_ID() throws RecognitionException {
664 try {
665 int _type = RULE_ID;
666 int _channel = DEFAULT_TOKEN_CHANNEL;
667 // InternalProblem.g:1510:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
668 // InternalProblem.g:1510:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
669 {
670 // InternalProblem.g:1510:11: ( '^' )?
671 int alt1=2;
672 int LA1_0 = input.LA(1);
673
674 if ( (LA1_0=='^') ) {
675 alt1=1;
676 }
677 switch (alt1) {
678 case 1 :
679 // InternalProblem.g:1510:11: '^'
680 {
681 match('^');
682
683 }
684 break;
685
686 }
687
688 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
689 input.consume();
690
691 }
692 else {
693 MismatchedSetException mse = new MismatchedSetException(null,input);
694 recover(mse);
695 throw mse;}
696
697 // InternalProblem.g:1510:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
698 loop2:
699 do {
700 int alt2=2;
701 int LA2_0 = input.LA(1);
702
703 if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
704 alt2=1;
705 }
706
707
708 switch (alt2) {
709 case 1 :
710 // InternalProblem.g:
711 {
712 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') ) {
713 input.consume();
714
715 }
716 else {
717 MismatchedSetException mse = new MismatchedSetException(null,input);
718 recover(mse);
719 throw mse;}
720
721
722 }
723 break;
724
725 default :
726 break loop2;
727 }
728 } while (true);
729
730
731 }
732
733 state.type = _type;
734 state.channel = _channel;
735 }
736 finally {
737 }
738 }
739 // $ANTLR end "RULE_ID"
740
741 // $ANTLR start "RULE_INT"
742 public final void mRULE_INT() throws RecognitionException {
743 try {
744 int _type = RULE_INT;
745 int _channel = DEFAULT_TOKEN_CHANNEL;
746 // InternalProblem.g:1512:10: ( ( '0' .. '9' )+ )
747 // InternalProblem.g:1512:12: ( '0' .. '9' )+
748 {
749 // InternalProblem.g:1512:12: ( '0' .. '9' )+
750 int cnt3=0;
751 loop3:
752 do {
753 int alt3=2;
754 int LA3_0 = input.LA(1);
755
756 if ( ((LA3_0>='0' && LA3_0<='9')) ) {
757 alt3=1;
758 }
759
760
761 switch (alt3) {
762 case 1 :
763 // InternalProblem.g:1512:13: '0' .. '9'
764 {
765 matchRange('0','9');
766
767 }
768 break;
769
770 default :
771 if ( cnt3 >= 1 ) break loop3;
772 EarlyExitException eee =
773 new EarlyExitException(3, input);
774 throw eee;
775 }
776 cnt3++;
777 } while (true);
778
779
780 }
781
782 state.type = _type;
783 state.channel = _channel;
784 }
785 finally {
786 }
787 }
788 // $ANTLR end "RULE_INT"
789
790 // $ANTLR start "RULE_STRING"
791 public final void mRULE_STRING() throws RecognitionException {
792 try {
793 int _type = RULE_STRING;
794 int _channel = DEFAULT_TOKEN_CHANNEL;
795 // InternalProblem.g:1514:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
796 // InternalProblem.g:1514:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
797 {
798 // InternalProblem.g:1514:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
799 int alt6=2;
800 int LA6_0 = input.LA(1);
801
802 if ( (LA6_0=='\"') ) {
803 alt6=1;
804 }
805 else if ( (LA6_0=='\'') ) {
806 alt6=2;
807 }
808 else {
809 NoViableAltException nvae =
810 new NoViableAltException("", 6, 0, input);
811
812 throw nvae;
813 }
814 switch (alt6) {
815 case 1 :
816 // InternalProblem.g:1514:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
817 {
818 match('\"');
819 // InternalProblem.g:1514:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
820 loop4:
821 do {
822 int alt4=3;
823 int LA4_0 = input.LA(1);
824
825 if ( (LA4_0=='\\') ) {
826 alt4=1;
827 }
828 else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
829 alt4=2;
830 }
831
832
833 switch (alt4) {
834 case 1 :
835 // InternalProblem.g:1514:21: '\\\\' .
836 {
837 match('\\');
838 matchAny();
839
840 }
841 break;
842 case 2 :
843 // InternalProblem.g:1514:28: ~ ( ( '\\\\' | '\"' ) )
844 {
845 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
846 input.consume();
847
848 }
849 else {
850 MismatchedSetException mse = new MismatchedSetException(null,input);
851 recover(mse);
852 throw mse;}
853
854
855 }
856 break;
857
858 default :
859 break loop4;
860 }
861 } while (true);
862
863 match('\"');
864
865 }
866 break;
867 case 2 :
868 // InternalProblem.g:1514:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
869 {
870 match('\'');
871 // InternalProblem.g:1514:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
872 loop5:
873 do {
874 int alt5=3;
875 int LA5_0 = input.LA(1);
876
877 if ( (LA5_0=='\\') ) {
878 alt5=1;
879 }
880 else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
881 alt5=2;
882 }
883
884
885 switch (alt5) {
886 case 1 :
887 // InternalProblem.g:1514:54: '\\\\' .
888 {
889 match('\\');
890 matchAny();
891
892 }
893 break;
894 case 2 :
895 // InternalProblem.g:1514:61: ~ ( ( '\\\\' | '\\'' ) )
896 {
897 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
898 input.consume();
899
900 }
901 else {
902 MismatchedSetException mse = new MismatchedSetException(null,input);
903 recover(mse);
904 throw mse;}
905
906
907 }
908 break;
909
910 default :
911 break loop5;
912 }
913 } while (true);
914
915 match('\'');
916
917 }
918 break;
919
920 }
921
922
923 }
924
925 state.type = _type;
926 state.channel = _channel;
927 }
928 finally {
929 }
930 }
931 // $ANTLR end "RULE_STRING"
932
933 // $ANTLR start "RULE_ML_COMMENT"
934 public final void mRULE_ML_COMMENT() throws RecognitionException {
935 try {
936 int _type = RULE_ML_COMMENT;
937 int _channel = DEFAULT_TOKEN_CHANNEL;
938 // InternalProblem.g:1516:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
939 // InternalProblem.g:1516:19: '/*' ( options {greedy=false; } : . )* '*/'
940 {
941 match("/*");
942
943 // InternalProblem.g:1516:24: ( options {greedy=false; } : . )*
944 loop7:
945 do {
946 int alt7=2;
947 int LA7_0 = input.LA(1);
948
949 if ( (LA7_0=='*') ) {
950 int LA7_1 = input.LA(2);
951
952 if ( (LA7_1=='/') ) {
953 alt7=2;
954 }
955 else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
956 alt7=1;
957 }
958
959
960 }
961 else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
962 alt7=1;
963 }
964
965
966 switch (alt7) {
967 case 1 :
968 // InternalProblem.g:1516:52: .
969 {
970 matchAny();
971
972 }
973 break;
974
975 default :
976 break loop7;
977 }
978 } while (true);
979
980 match("*/");
981
982
983 }
984
985 state.type = _type;
986 state.channel = _channel;
987 }
988 finally {
989 }
990 }
991 // $ANTLR end "RULE_ML_COMMENT"
992
993 // $ANTLR start "RULE_SL_COMMENT"
994 public final void mRULE_SL_COMMENT() throws RecognitionException {
995 try {
996 int _type = RULE_SL_COMMENT;
997 int _channel = DEFAULT_TOKEN_CHANNEL;
998 // InternalProblem.g:1518:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
999 // InternalProblem.g:1518:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1000 {
1001 match("//");
1002
1003 // InternalProblem.g:1518:24: (~ ( ( '\\n' | '\\r' ) ) )*
1004 loop8:
1005 do {
1006 int alt8=2;
1007 int LA8_0 = input.LA(1);
1008
1009 if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
1010 alt8=1;
1011 }
1012
1013
1014 switch (alt8) {
1015 case 1 :
1016 // InternalProblem.g:1518:24: ~ ( ( '\\n' | '\\r' ) )
1017 {
1018 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') ) {
1019 input.consume();
1020
1021 }
1022 else {
1023 MismatchedSetException mse = new MismatchedSetException(null,input);
1024 recover(mse);
1025 throw mse;}
1026
1027
1028 }
1029 break;
1030
1031 default :
1032 break loop8;
1033 }
1034 } while (true);
1035
1036 // InternalProblem.g:1518:40: ( ( '\\r' )? '\\n' )?
1037 int alt10=2;
1038 int LA10_0 = input.LA(1);
1039
1040 if ( (LA10_0=='\n'||LA10_0=='\r') ) {
1041 alt10=1;
1042 }
1043 switch (alt10) {
1044 case 1 :
1045 // InternalProblem.g:1518:41: ( '\\r' )? '\\n'
1046 {
1047 // InternalProblem.g:1518:41: ( '\\r' )?
1048 int alt9=2;
1049 int LA9_0 = input.LA(1);
1050
1051 if ( (LA9_0=='\r') ) {
1052 alt9=1;
1053 }
1054 switch (alt9) {
1055 case 1 :
1056 // InternalProblem.g:1518:41: '\\r'
1057 {
1058 match('\r');
1059
1060 }
1061 break;
1062
1063 }
1064
1065 match('\n');
1066
1067 }
1068 break;
1069
1070 }
1071
1072
1073 }
1074
1075 state.type = _type;
1076 state.channel = _channel;
1077 }
1078 finally {
1079 }
1080 }
1081 // $ANTLR end "RULE_SL_COMMENT"
1082
1083 // $ANTLR start "RULE_WS"
1084 public final void mRULE_WS() throws RecognitionException {
1085 try {
1086 int _type = RULE_WS;
1087 int _channel = DEFAULT_TOKEN_CHANNEL;
1088 // InternalProblem.g:1520:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1089 // InternalProblem.g:1520:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1090 {
1091 // InternalProblem.g:1520:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1092 int cnt11=0;
1093 loop11:
1094 do {
1095 int alt11=2;
1096 int LA11_0 = input.LA(1);
1097
1098 if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
1099 alt11=1;
1100 }
1101
1102
1103 switch (alt11) {
1104 case 1 :
1105 // InternalProblem.g:
1106 {
1107 if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
1108 input.consume();
1109
1110 }
1111 else {
1112 MismatchedSetException mse = new MismatchedSetException(null,input);
1113 recover(mse);
1114 throw mse;}
1115
1116
1117 }
1118 break;
1119
1120 default :
1121 if ( cnt11 >= 1 ) break loop11;
1122 EarlyExitException eee =
1123 new EarlyExitException(11, input);
1124 throw eee;
1125 }
1126 cnt11++;
1127 } while (true);
1128
1129
1130 }
1131
1132 state.type = _type;
1133 state.channel = _channel;
1134 }
1135 finally {
1136 }
1137 }
1138 // $ANTLR end "RULE_WS"
1139
1140 // $ANTLR start "RULE_ANY_OTHER"
1141 public final void mRULE_ANY_OTHER() throws RecognitionException {
1142 try {
1143 int _type = RULE_ANY_OTHER;
1144 int _channel = DEFAULT_TOKEN_CHANNEL;
1145 // InternalProblem.g:1522:16: ( . )
1146 // InternalProblem.g:1522:18: .
1147 {
1148 matchAny();
1149
1150 }
1151
1152 state.type = _type;
1153 state.channel = _channel;
1154 }
1155 finally {
1156 }
1157 }
1158 // $ANTLR end "RULE_ANY_OTHER"
1159
1160 public void mTokens() throws RecognitionException {
1161 // InternalProblem.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 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
1162 int alt12=36;
1163 alt12 = dfa12.predict(input);
1164 switch (alt12) {
1165 case 1 :
1166 // InternalProblem.g:1:10: T__11
1167 {
1168 mT__11();
1169
1170 }
1171 break;
1172 case 2 :
1173 // InternalProblem.g:1:16: T__12
1174 {
1175 mT__12();
1176
1177 }
1178 break;
1179 case 3 :
1180 // InternalProblem.g:1:22: T__13
1181 {
1182 mT__13();
1183
1184 }
1185 break;
1186 case 4 :
1187 // InternalProblem.g:1:28: T__14
1188 {
1189 mT__14();
1190
1191 }
1192 break;
1193 case 5 :
1194 // InternalProblem.g:1:34: T__15
1195 {
1196 mT__15();
1197
1198 }
1199 break;
1200 case 6 :
1201 // InternalProblem.g:1:40: T__16
1202 {
1203 mT__16();
1204
1205 }
1206 break;
1207 case 7 :
1208 // InternalProblem.g:1:46: T__17
1209 {
1210 mT__17();
1211
1212 }
1213 break;
1214 case 8 :
1215 // InternalProblem.g:1:52: T__18
1216 {
1217 mT__18();
1218
1219 }
1220 break;
1221 case 9 :
1222 // InternalProblem.g:1:58: T__19
1223 {
1224 mT__19();
1225
1226 }
1227 break;
1228 case 10 :
1229 // InternalProblem.g:1:64: T__20
1230 {
1231 mT__20();
1232
1233 }
1234 break;
1235 case 11 :
1236 // InternalProblem.g:1:70: T__21
1237 {
1238 mT__21();
1239
1240 }
1241 break;
1242 case 12 :
1243 // InternalProblem.g:1:76: T__22
1244 {
1245 mT__22();
1246
1247 }
1248 break;
1249 case 13 :
1250 // InternalProblem.g:1:82: T__23
1251 {
1252 mT__23();
1253
1254 }
1255 break;
1256 case 14 :
1257 // InternalProblem.g:1:88: T__24
1258 {
1259 mT__24();
1260
1261 }
1262 break;
1263 case 15 :
1264 // InternalProblem.g:1:94: T__25
1265 {
1266 mT__25();
1267
1268 }
1269 break;
1270 case 16 :
1271 // InternalProblem.g:1:100: T__26
1272 {
1273 mT__26();
1274
1275 }
1276 break;
1277 case 17 :
1278 // InternalProblem.g:1:106: T__27
1279 {
1280 mT__27();
1281
1282 }
1283 break;
1284 case 18 :
1285 // InternalProblem.g:1:112: T__28
1286 {
1287 mT__28();
1288
1289 }
1290 break;
1291 case 19 :
1292 // InternalProblem.g:1:118: T__29
1293 {
1294 mT__29();
1295
1296 }
1297 break;
1298 case 20 :
1299 // InternalProblem.g:1:124: T__30
1300 {
1301 mT__30();
1302
1303 }
1304 break;
1305 case 21 :
1306 // InternalProblem.g:1:130: T__31
1307 {
1308 mT__31();
1309
1310 }
1311 break;
1312 case 22 :
1313 // InternalProblem.g:1:136: T__32
1314 {
1315 mT__32();
1316
1317 }
1318 break;
1319 case 23 :
1320 // InternalProblem.g:1:142: T__33
1321 {
1322 mT__33();
1323
1324 }
1325 break;
1326 case 24 :
1327 // InternalProblem.g:1:148: T__34
1328 {
1329 mT__34();
1330
1331 }
1332 break;
1333 case 25 :
1334 // InternalProblem.g:1:154: T__35
1335 {
1336 mT__35();
1337
1338 }
1339 break;
1340 case 26 :
1341 // InternalProblem.g:1:160: T__36
1342 {
1343 mT__36();
1344
1345 }
1346 break;
1347 case 27 :
1348 // InternalProblem.g:1:166: T__37
1349 {
1350 mT__37();
1351
1352 }
1353 break;
1354 case 28 :
1355 // InternalProblem.g:1:172: T__38
1356 {
1357 mT__38();
1358
1359 }
1360 break;
1361 case 29 :
1362 // InternalProblem.g:1:178: T__39
1363 {
1364 mT__39();
1365
1366 }
1367 break;
1368 case 30 :
1369 // InternalProblem.g:1:184: RULE_ID
1370 {
1371 mRULE_ID();
1372
1373 }
1374 break;
1375 case 31 :
1376 // InternalProblem.g:1:192: RULE_INT
1377 {
1378 mRULE_INT();
1379
1380 }
1381 break;
1382 case 32 :
1383 // InternalProblem.g:1:201: RULE_STRING
1384 {
1385 mRULE_STRING();
1386
1387 }
1388 break;
1389 case 33 :
1390 // InternalProblem.g:1:213: RULE_ML_COMMENT
1391 {
1392 mRULE_ML_COMMENT();
1393
1394 }
1395 break;
1396 case 34 :
1397 // InternalProblem.g:1:229: RULE_SL_COMMENT
1398 {
1399 mRULE_SL_COMMENT();
1400
1401 }
1402 break;
1403 case 35 :
1404 // InternalProblem.g:1:245: RULE_WS
1405 {
1406 mRULE_WS();
1407
1408 }
1409 break;
1410 case 36 :
1411 // InternalProblem.g:1:253: RULE_ANY_OTHER
1412 {
1413 mRULE_ANY_OTHER();
1414
1415 }
1416 break;
1417
1418 }
1419
1420 }
1421
1422
1423 protected DFA12 dfa12 = new DFA12(this);
1424 static final String DFA12_eotS =
1425 "\1\uffff\3\41\3\uffff\1\52\3\41\2\uffff\1\62\2\uffff\1\66\1\41\2\uffff\3\41\1\uffff\1\37\2\uffff\3\37\2\uffff\1\41\1\uffff\4\41\5\uffff\3\41\11\uffff\1\41\2\uffff\3\41\6\uffff\23\41\1\142\1\41\1\144\3\41\1\150\2\41\1\153\2\41\1\uffff\1\156\1\uffff\1\157\2\41\1\uffff\2\41\1\uffff\1\164\1\41\2\uffff\3\41\1\171\1\uffff\1\41\1\173\1\174\1\175\1\uffff\1\176\4\uffff";
1426 static final String DFA12_eofS =
1427 "\177\uffff";
1428 static final String DFA12_minS =
1429 "\1\0\1\142\1\154\1\162\3\uffff\1\56\1\145\1\160\1\162\2\uffff\1\72\2\uffff\1\75\1\143\2\uffff\1\162\1\141\1\156\1\uffff\1\101\2\uffff\2\0\1\52\2\uffff\1\163\1\uffff\1\141\1\156\1\164\1\162\5\uffff\1\146\1\160\1\145\11\uffff\1\157\2\uffff\1\165\1\154\1\153\6\uffff\1\164\1\163\1\164\1\145\1\157\1\145\1\157\1\144\1\160\1\145\1\163\1\156\1\162\1\163\1\141\1\156\2\162\1\163\1\60\1\145\1\60\1\145\1\157\1\141\1\60\1\151\1\144\1\60\1\163\1\151\1\uffff\1\60\1\uffff\1\60\1\167\1\143\1\uffff\1\156\1\163\1\uffff\1\60\1\164\2\uffff\1\156\1\164\1\163\1\60\1\uffff\1\145\3\60\1\uffff\1\60\4\uffff";
1430 static final String DFA12_maxS =
1431 "\1\uffff\1\142\1\157\1\170\3\uffff\1\56\1\145\1\160\1\162\2\uffff\1\75\2\uffff\1\75\1\143\2\uffff\1\162\1\141\1\156\1\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\163\1\uffff\1\141\1\156\1\164\1\162\5\uffff\1\146\1\160\1\145\11\uffff\1\157\2\uffff\1\165\1\154\1\153\6\uffff\1\164\1\163\1\164\1\145\1\157\1\145\1\157\1\144\1\160\1\145\1\163\1\156\1\162\1\163\1\141\1\156\2\162\1\163\1\172\1\145\1\172\1\145\1\157\1\141\1\172\1\151\1\144\1\172\1\163\1\151\1\uffff\1\172\1\uffff\1\172\1\167\1\143\1\uffff\1\156\1\163\1\uffff\1\172\1\164\2\uffff\1\156\1\164\1\163\1\172\1\uffff\1\145\3\172\1\uffff\1\172\4\uffff";
1432 static final String DFA12_acceptS =
1433 "\4\uffff\1\4\1\5\1\6\4\uffff\1\15\1\16\1\uffff\1\20\1\21\2\uffff\1\26\1\30\3\uffff\1\35\1\uffff\1\36\1\37\3\uffff\1\43\1\44\1\uffff\1\36\4\uffff\1\4\1\5\1\6\1\27\1\7\3\uffff\1\15\1\16\1\17\1\31\1\23\1\20\1\21\1\25\1\22\1\uffff\1\26\1\30\3\uffff\1\35\1\37\1\40\1\41\1\42\1\43\37\uffff\1\14\1\uffff\1\32\3\uffff\1\2\2\uffff\1\13\2\uffff\1\24\1\33\4\uffff\1\11\4\uffff\1\3\1\uffff\1\34\1\1\1\10\1\12";
1434 static final String DFA12_specialS =
1435 "\1\1\32\uffff\1\2\1\0\142\uffff}>";
1436 static final String[] DFA12_transitionS = {
1437 "\11\37\2\36\2\37\1\36\22\37\1\36\1\17\1\33\4\37\1\34\1\13\1\14\1\23\1\20\1\5\1\37\1\7\1\35\12\32\1\15\1\16\1\37\1\22\1\37\1\27\1\37\32\31\1\4\1\37\1\6\1\30\1\31\1\37\1\1\1\31\1\2\1\31\1\3\1\25\10\31\1\11\1\12\1\31\1\10\1\21\1\24\1\26\5\31\uff85\37",
1438 "\1\40",
1439 "\1\42\2\uffff\1\43",
1440 "\1\45\5\uffff\1\44",
1441 "",
1442 "",
1443 "",
1444 "\1\51",
1445 "\1\53",
1446 "\1\54",
1447 "\1\55",
1448 "",
1449 "",
1450 "\1\61\2\uffff\1\60",
1451 "",
1452 "",
1453 "\1\65",
1454 "\1\67",
1455 "",
1456 "",
1457 "\1\72",
1458 "\1\73",
1459 "\1\74",
1460 "",
1461 "\32\41\4\uffff\1\41\1\uffff\32\41",
1462 "",
1463 "",
1464 "\0\77",
1465 "\0\77",
1466 "\1\100\4\uffff\1\101",
1467 "",
1468 "",
1469 "\1\103",
1470 "",
1471 "\1\104",
1472 "\1\105",
1473 "\1\106",
1474 "\1\107",
1475 "",
1476 "",
1477 "",
1478 "",
1479 "",
1480 "\1\110",
1481 "\1\111",
1482 "\1\112",
1483 "",
1484 "",
1485 "",
1486 "",
1487 "",
1488 "",
1489 "",
1490 "",
1491 "",
1492 "\1\113",
1493 "",
1494 "",
1495 "\1\114",
1496 "\1\115",
1497 "\1\116",
1498 "",
1499 "",
1500 "",
1501 "",
1502 "",
1503 "",
1504 "\1\117",
1505 "\1\120",
1506 "\1\121",
1507 "\1\122",
1508 "\1\123",
1509 "\1\124",
1510 "\1\125",
1511 "\1\126",
1512 "\1\127",
1513 "\1\130",
1514 "\1\131",
1515 "\1\132",
1516 "\1\133",
1517 "\1\134",
1518 "\1\135",
1519 "\1\136",
1520 "\1\137",
1521 "\1\140",
1522 "\1\141",
1523 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1524 "\1\143",
1525 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1526 "\1\145",
1527 "\1\146",
1528 "\1\147",
1529 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1530 "\1\151",
1531 "\1\152",
1532 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1533 "\1\154",
1534 "\1\155",
1535 "",
1536 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1537 "",
1538 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1539 "\1\160",
1540 "\1\161",
1541 "",
1542 "\1\162",
1543 "\1\163",
1544 "",
1545 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1546 "\1\165",
1547 "",
1548 "",
1549 "\1\166",
1550 "\1\167",
1551 "\1\170",
1552 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1553 "",
1554 "\1\172",
1555 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1556 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1557 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1558 "",
1559 "\12\41\7\uffff\32\41\4\uffff\1\41\1\uffff\32\41",
1560 "",
1561 "",
1562 "",
1563 ""
1564 };
1565
1566 static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
1567 static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
1568 static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
1569 static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
1570 static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
1571 static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
1572 static final short[][] DFA12_transition;
1573
1574 static {
1575 int numStates = DFA12_transitionS.length;
1576 DFA12_transition = new short[numStates][];
1577 for (int i=0; i<numStates; i++) {
1578 DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
1579 }
1580 }
1581
1582 class DFA12 extends DFA {
1583
1584 public DFA12(BaseRecognizer recognizer) {
1585 this.recognizer = recognizer;
1586 this.decisionNumber = 12;
1587 this.eot = DFA12_eot;
1588 this.eof = DFA12_eof;
1589 this.min = DFA12_min;
1590 this.max = DFA12_max;
1591 this.accept = DFA12_accept;
1592 this.special = DFA12_special;
1593 this.transition = DFA12_transition;
1594 }
1595 public String getDescription() {
1596 return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
1597 }
1598 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1599 IntStream input = _input;
1600 int _s = s;
1601 switch ( s ) {
1602 case 0 :
1603 int LA12_28 = input.LA(1);
1604
1605 s = -1;
1606 if ( ((LA12_28>='\u0000' && LA12_28<='\uFFFF')) ) {s = 63;}
1607
1608 else s = 31;
1609
1610 if ( s>=0 ) return s;
1611 break;
1612 case 1 :
1613 int LA12_0 = input.LA(1);
1614
1615 s = -1;
1616 if ( (LA12_0=='a') ) {s = 1;}
1617
1618 else if ( (LA12_0=='c') ) {s = 2;}
1619
1620 else if ( (LA12_0=='e') ) {s = 3;}
1621
1622 else if ( (LA12_0=='[') ) {s = 4;}
1623
1624 else if ( (LA12_0==',') ) {s = 5;}
1625
1626 else if ( (LA12_0==']') ) {s = 6;}
1627
1628 else if ( (LA12_0=='.') ) {s = 7;}
1629
1630 else if ( (LA12_0=='r') ) {s = 8;}
1631
1632 else if ( (LA12_0=='o') ) {s = 9;}
1633
1634 else if ( (LA12_0=='p') ) {s = 10;}
1635
1636 else if ( (LA12_0=='(') ) {s = 11;}
1637
1638 else if ( (LA12_0==')') ) {s = 12;}
1639
1640 else if ( (LA12_0==':') ) {s = 13;}
1641
1642 else if ( (LA12_0==';') ) {s = 14;}
1643
1644 else if ( (LA12_0=='!') ) {s = 15;}
1645
1646 else if ( (LA12_0=='+') ) {s = 16;}
1647
1648 else if ( (LA12_0=='s') ) {s = 17;}
1649
1650 else if ( (LA12_0=='=') ) {s = 18;}
1651
1652 else if ( (LA12_0=='*') ) {s = 19;}
1653
1654 else if ( (LA12_0=='t') ) {s = 20;}
1655
1656 else if ( (LA12_0=='f') ) {s = 21;}
1657
1658 else if ( (LA12_0=='u') ) {s = 22;}
1659
1660 else if ( (LA12_0=='?') ) {s = 23;}
1661
1662 else if ( (LA12_0=='^') ) {s = 24;}
1663
1664 else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='g' && LA12_0<='n')||LA12_0=='q'||(LA12_0>='v' && LA12_0<='z')) ) {s = 25;}
1665
1666 else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 26;}
1667
1668 else if ( (LA12_0=='\"') ) {s = 27;}
1669
1670 else if ( (LA12_0=='\'') ) {s = 28;}
1671
1672 else if ( (LA12_0=='/') ) {s = 29;}
1673
1674 else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 30;}
1675
1676 else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||(LA12_0>='#' && LA12_0<='&')||LA12_0=='-'||LA12_0=='<'||LA12_0=='>'||LA12_0=='@'||LA12_0=='\\'||LA12_0=='`'||(LA12_0>='{' && LA12_0<='\uFFFF')) ) {s = 31;}
1677
1678 if ( s>=0 ) return s;
1679 break;
1680 case 2 :
1681 int LA12_27 = input.LA(1);
1682
1683 s = -1;
1684 if ( ((LA12_27>='\u0000' && LA12_27<='\uFFFF')) ) {s = 63;}
1685
1686 else s = 31;
1687
1688 if ( s>=0 ) return s;
1689 break;
1690 }
1691 NoViableAltException nvae =
1692 new NoViableAltException(getDescription(), 12, _s, input);
1693 error(nvae);
1694 throw nvae;
1695 }
1696 }
1697
1698
1699} \ No newline at end of file
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
new file mode 100644
index 00000000..9bfeb079
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
@@ -0,0 +1,4056 @@
1package org.eclipse.viatra.solver.language.parser.antlr.internal;
2
3import org.eclipse.xtext.*;
4import org.eclipse.xtext.parser.*;
5import org.eclipse.xtext.parser.impl.*;
6import org.eclipse.emf.ecore.util.EcoreUtil;
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.common.util.Enumerator;
9import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
10import org.eclipse.xtext.parser.antlr.XtextTokenStream;
11import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
12import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
13import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
14
15
16
17import org.antlr.runtime.*;
18import java.util.Stack;
19import java.util.List;
20import java.util.ArrayList;
21
22@SuppressWarnings("all")
23public class InternalProblemParser extends AbstractInternalAntlrParser {
24 public static final String[] tokenNames = new String[] {
25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'abstract'", "'class'", "'extends'", "'['", "','", "']'", "'.'", "'contains'", "'refers'", "'opposite'", "'error'", "'pred'", "'('", "')'", "':='", "';'", "'!'", "'+'", "':'", "'scope'", "'+='", "'='", "'..'", "'*'", "'::'", "'true'", "'false'", "'unknown'", "'?'"
26 };
27 public static final int RULE_STRING=6;
28 public static final int RULE_SL_COMMENT=8;
29 public static final int T__19=19;
30 public static final int T__15=15;
31 public static final int T__37=37;
32 public static final int T__16=16;
33 public static final int T__38=38;
34 public static final int T__17=17;
35 public static final int T__39=39;
36 public static final int T__18=18;
37 public static final int T__11=11;
38 public static final int T__33=33;
39 public static final int T__12=12;
40 public static final int T__34=34;
41 public static final int T__13=13;
42 public static final int T__35=35;
43 public static final int T__14=14;
44 public static final int T__36=36;
45 public static final int EOF=-1;
46 public static final int T__30=30;
47 public static final int T__31=31;
48 public static final int T__32=32;
49 public static final int RULE_ID=4;
50 public static final int RULE_WS=9;
51 public static final int RULE_ANY_OTHER=10;
52 public static final int T__26=26;
53 public static final int T__27=27;
54 public static final int T__28=28;
55 public static final int RULE_INT=5;
56 public static final int T__29=29;
57 public static final int T__22=22;
58 public static final int RULE_ML_COMMENT=7;
59 public static final int T__23=23;
60 public static final int T__24=24;
61 public static final int T__25=25;
62 public static final int T__20=20;
63 public static final int T__21=21;
64
65 // delegates
66 // delegators
67
68
69 public InternalProblemParser(TokenStream input) {
70 this(input, new RecognizerSharedState());
71 }
72 public InternalProblemParser(TokenStream input, RecognizerSharedState state) {
73 super(input, state);
74
75 }
76
77
78 public String[] getTokenNames() { return InternalProblemParser.tokenNames; }
79 public String getGrammarFileName() { return "InternalProblem.g"; }
80
81
82
83 private ProblemGrammarAccess grammarAccess;
84
85 public InternalProblemParser(TokenStream input, ProblemGrammarAccess grammarAccess) {
86 this(input);
87 this.grammarAccess = grammarAccess;
88 registerRules(grammarAccess.getGrammar());
89 }
90
91 @Override
92 protected String getFirstRuleName() {
93 return "Problem";
94 }
95
96 @Override
97 protected ProblemGrammarAccess getGrammarAccess() {
98 return grammarAccess;
99 }
100
101
102
103
104 // $ANTLR start "entryRuleProblem"
105 // InternalProblem.g:65:1: entryRuleProblem returns [EObject current=null] : iv_ruleProblem= ruleProblem EOF ;
106 public final EObject entryRuleProblem() throws RecognitionException {
107 EObject current = null;
108
109 EObject iv_ruleProblem = null;
110
111
112 try {
113 // InternalProblem.g:65:48: (iv_ruleProblem= ruleProblem EOF )
114 // InternalProblem.g:66:2: iv_ruleProblem= ruleProblem EOF
115 {
116 newCompositeNode(grammarAccess.getProblemRule());
117 pushFollow(FOLLOW_1);
118 iv_ruleProblem=ruleProblem();
119
120 state._fsp--;
121
122 current =iv_ruleProblem;
123 match(input,EOF,FOLLOW_2);
124
125 }
126
127 }
128
129 catch (RecognitionException re) {
130 recover(input,re);
131 appendSkippedTokens();
132 }
133 finally {
134 }
135 return current;
136 }
137 // $ANTLR end "entryRuleProblem"
138
139
140 // $ANTLR start "ruleProblem"
141 // InternalProblem.g:72:1: ruleProblem returns [EObject current=null] : ( (lv_statements_0_0= ruleStatement ) )* ;
142 public final EObject ruleProblem() throws RecognitionException {
143 EObject current = null;
144
145 EObject lv_statements_0_0 = null;
146
147
148
149 enterRule();
150
151 try {
152 // InternalProblem.g:78:2: ( ( (lv_statements_0_0= ruleStatement ) )* )
153 // InternalProblem.g:79:2: ( (lv_statements_0_0= ruleStatement ) )*
154 {
155 // InternalProblem.g:79:2: ( (lv_statements_0_0= ruleStatement ) )*
156 loop1:
157 do {
158 int alt1=2;
159 int LA1_0 = input.LA(1);
160
161 if ( (LA1_0==RULE_ID||(LA1_0>=11 && LA1_0<=12)||(LA1_0>=21 && LA1_0<=22)||LA1_0==27||LA1_0==30||LA1_0==39) ) {
162 alt1=1;
163 }
164
165
166 switch (alt1) {
167 case 1 :
168 // InternalProblem.g:80:3: (lv_statements_0_0= ruleStatement )
169 {
170 // InternalProblem.g:80:3: (lv_statements_0_0= ruleStatement )
171 // InternalProblem.g:81:4: lv_statements_0_0= ruleStatement
172 {
173
174 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_0());
175
176 pushFollow(FOLLOW_3);
177 lv_statements_0_0=ruleStatement();
178
179 state._fsp--;
180
181
182 if (current==null) {
183 current = createModelElementForParent(grammarAccess.getProblemRule());
184 }
185 add(
186 current,
187 "statements",
188 lv_statements_0_0,
189 "org.eclipse.viatra.solver.language.Problem.Statement");
190 afterParserOrEnumRuleCall();
191
192
193 }
194
195
196 }
197 break;
198
199 default :
200 break loop1;
201 }
202 } while (true);
203
204
205 }
206
207
208 leaveRule();
209
210 }
211
212 catch (RecognitionException re) {
213 recover(input,re);
214 appendSkippedTokens();
215 }
216 finally {
217 }
218 return current;
219 }
220 // $ANTLR end "ruleProblem"
221
222
223 // $ANTLR start "entryRuleStatement"
224 // InternalProblem.g:101:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ;
225 public final EObject entryRuleStatement() throws RecognitionException {
226 EObject current = null;
227
228 EObject iv_ruleStatement = null;
229
230
231 try {
232 // InternalProblem.g:101:50: (iv_ruleStatement= ruleStatement EOF )
233 // InternalProblem.g:102:2: iv_ruleStatement= ruleStatement EOF
234 {
235 newCompositeNode(grammarAccess.getStatementRule());
236 pushFollow(FOLLOW_1);
237 iv_ruleStatement=ruleStatement();
238
239 state._fsp--;
240
241 current =iv_ruleStatement;
242 match(input,EOF,FOLLOW_2);
243
244 }
245
246 }
247
248 catch (RecognitionException re) {
249 recover(input,re);
250 appendSkippedTokens();
251 }
252 finally {
253 }
254 return current;
255 }
256 // $ANTLR end "entryRuleStatement"
257
258
259 // $ANTLR start "ruleStatement"
260 // InternalProblem.g:108:1: ruleStatement returns [EObject current=null] : (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration ) ;
261 public final EObject ruleStatement() throws RecognitionException {
262 EObject current = null;
263
264 EObject this_ClassDeclaration_0 = null;
265
266 EObject this_PredicateDefinition_1 = null;
267
268 EObject this_Assertion_2 = null;
269
270 EObject this_ScopeDeclaration_3 = null;
271
272
273
274 enterRule();
275
276 try {
277 // InternalProblem.g:114:2: ( (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration ) )
278 // InternalProblem.g:115:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration )
279 {
280 // InternalProblem.g:115:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_PredicateDefinition_1= rulePredicateDefinition | this_Assertion_2= ruleAssertion | this_ScopeDeclaration_3= ruleScopeDeclaration )
281 int alt2=4;
282 switch ( input.LA(1) ) {
283 case 11:
284 case 12:
285 {
286 alt2=1;
287 }
288 break;
289 case 21:
290 case 22:
291 {
292 alt2=2;
293 }
294 break;
295 case RULE_ID:
296 case 27:
297 case 39:
298 {
299 alt2=3;
300 }
301 break;
302 case 30:
303 {
304 alt2=4;
305 }
306 break;
307 default:
308 NoViableAltException nvae =
309 new NoViableAltException("", 2, 0, input);
310
311 throw nvae;
312 }
313
314 switch (alt2) {
315 case 1 :
316 // InternalProblem.g:116:3: this_ClassDeclaration_0= ruleClassDeclaration
317 {
318
319 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
320
321 pushFollow(FOLLOW_2);
322 this_ClassDeclaration_0=ruleClassDeclaration();
323
324 state._fsp--;
325
326
327 current = this_ClassDeclaration_0;
328 afterParserOrEnumRuleCall();
329
330
331 }
332 break;
333 case 2 :
334 // InternalProblem.g:125:3: this_PredicateDefinition_1= rulePredicateDefinition
335 {
336
337 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_1());
338
339 pushFollow(FOLLOW_2);
340 this_PredicateDefinition_1=rulePredicateDefinition();
341
342 state._fsp--;
343
344
345 current = this_PredicateDefinition_1;
346 afterParserOrEnumRuleCall();
347
348
349 }
350 break;
351 case 3 :
352 // InternalProblem.g:134:3: this_Assertion_2= ruleAssertion
353 {
354
355 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_2());
356
357 pushFollow(FOLLOW_2);
358 this_Assertion_2=ruleAssertion();
359
360 state._fsp--;
361
362
363 current = this_Assertion_2;
364 afterParserOrEnumRuleCall();
365
366
367 }
368 break;
369 case 4 :
370 // InternalProblem.g:143:3: this_ScopeDeclaration_3= ruleScopeDeclaration
371 {
372
373 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_3());
374
375 pushFollow(FOLLOW_2);
376 this_ScopeDeclaration_3=ruleScopeDeclaration();
377
378 state._fsp--;
379
380
381 current = this_ScopeDeclaration_3;
382 afterParserOrEnumRuleCall();
383
384
385 }
386 break;
387
388 }
389
390
391 }
392
393
394 leaveRule();
395
396 }
397
398 catch (RecognitionException re) {
399 recover(input,re);
400 appendSkippedTokens();
401 }
402 finally {
403 }
404 return current;
405 }
406 // $ANTLR end "ruleStatement"
407
408
409 // $ANTLR start "entryRuleClassDeclaration"
410 // InternalProblem.g:155:1: entryRuleClassDeclaration returns [EObject current=null] : iv_ruleClassDeclaration= ruleClassDeclaration EOF ;
411 public final EObject entryRuleClassDeclaration() throws RecognitionException {
412 EObject current = null;
413
414 EObject iv_ruleClassDeclaration = null;
415
416
417 try {
418 // InternalProblem.g:155:57: (iv_ruleClassDeclaration= ruleClassDeclaration EOF )
419 // InternalProblem.g:156:2: iv_ruleClassDeclaration= ruleClassDeclaration EOF
420 {
421 newCompositeNode(grammarAccess.getClassDeclarationRule());
422 pushFollow(FOLLOW_1);
423 iv_ruleClassDeclaration=ruleClassDeclaration();
424
425 state._fsp--;
426
427 current =iv_ruleClassDeclaration;
428 match(input,EOF,FOLLOW_2);
429
430 }
431
432 }
433
434 catch (RecognitionException re) {
435 recover(input,re);
436 appendSkippedTokens();
437 }
438 finally {
439 }
440 return current;
441 }
442 // $ANTLR end "entryRuleClassDeclaration"
443
444
445 // $ANTLR start "ruleClassDeclaration"
446 // InternalProblem.g:162:1: ruleClassDeclaration returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.' ) ;
447 public final EObject ruleClassDeclaration() throws RecognitionException {
448 EObject current = null;
449
450 Token lv_abstract_0_0=null;
451 Token otherlv_1=null;
452 Token lv_name_2_0=null;
453 Token otherlv_3=null;
454 Token otherlv_4=null;
455 Token otherlv_5=null;
456 Token otherlv_6=null;
457 Token otherlv_7=null;
458 Token otherlv_8=null;
459 Token otherlv_9=null;
460 Token otherlv_11=null;
461 Token otherlv_13=null;
462 EObject lv_referenceDeclarations_10_0 = null;
463
464 EObject lv_referenceDeclarations_12_0 = null;
465
466
467
468 enterRule();
469
470 try {
471 // InternalProblem.g:168:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.' ) )
472 // InternalProblem.g:169:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.' )
473 {
474 // InternalProblem.g:169:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.' )
475 // InternalProblem.g:170:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= RULE_ID ) ) ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )? (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )* otherlv_13= '.'
476 {
477 // InternalProblem.g:170:3: ( (lv_abstract_0_0= 'abstract' ) )?
478 int alt3=2;
479 int LA3_0 = input.LA(1);
480
481 if ( (LA3_0==11) ) {
482 alt3=1;
483 }
484 switch (alt3) {
485 case 1 :
486 // InternalProblem.g:171:4: (lv_abstract_0_0= 'abstract' )
487 {
488 // InternalProblem.g:171:4: (lv_abstract_0_0= 'abstract' )
489 // InternalProblem.g:172:5: lv_abstract_0_0= 'abstract'
490 {
491 lv_abstract_0_0=(Token)match(input,11,FOLLOW_4);
492
493 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
494
495
496 if (current==null) {
497 current = createModelElement(grammarAccess.getClassDeclarationRule());
498 }
499 setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
500
501
502 }
503
504
505 }
506 break;
507
508 }
509
510 otherlv_1=(Token)match(input,12,FOLLOW_5);
511
512 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
513
514 // InternalProblem.g:188:3: ( (lv_name_2_0= RULE_ID ) )
515 // InternalProblem.g:189:4: (lv_name_2_0= RULE_ID )
516 {
517 // InternalProblem.g:189:4: (lv_name_2_0= RULE_ID )
518 // InternalProblem.g:190:5: lv_name_2_0= RULE_ID
519 {
520 lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_6);
521
522 newLeafNode(lv_name_2_0, grammarAccess.getClassDeclarationAccess().getNameIDTerminalRuleCall_2_0());
523
524
525 if (current==null) {
526 current = createModelElement(grammarAccess.getClassDeclarationRule());
527 }
528 setWithLastConsumed(
529 current,
530 "name",
531 lv_name_2_0,
532 "org.eclipse.xtext.common.Terminals.ID");
533
534
535 }
536
537
538 }
539
540 // InternalProblem.g:206:3: ( (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) ) | ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) ) )?
541 int alt7=3;
542 int LA7_0 = input.LA(1);
543
544 if ( (LA7_0==13) ) {
545 alt7=1;
546 }
547 else if ( ((LA7_0>=18 && LA7_0<=19)) ) {
548 alt7=2;
549 }
550 switch (alt7) {
551 case 1 :
552 // InternalProblem.g:207:4: (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) )
553 {
554 // InternalProblem.g:207:4: (otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) ) )
555 // InternalProblem.g:208:5: otherlv_3= 'extends' ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) )
556 {
557 otherlv_3=(Token)match(input,13,FOLLOW_7);
558
559 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0_0());
560
561 // InternalProblem.g:212:5: ( ( (otherlv_4= RULE_ID ) ) | (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' ) )
562 int alt6=2;
563 int LA6_0 = input.LA(1);
564
565 if ( (LA6_0==RULE_ID) ) {
566 alt6=1;
567 }
568 else if ( (LA6_0==14) ) {
569 alt6=2;
570 }
571 else {
572 NoViableAltException nvae =
573 new NoViableAltException("", 6, 0, input);
574
575 throw nvae;
576 }
577 switch (alt6) {
578 case 1 :
579 // InternalProblem.g:213:6: ( (otherlv_4= RULE_ID ) )
580 {
581 // InternalProblem.g:213:6: ( (otherlv_4= RULE_ID ) )
582 // InternalProblem.g:214:7: (otherlv_4= RULE_ID )
583 {
584 // InternalProblem.g:214:7: (otherlv_4= RULE_ID )
585 // InternalProblem.g:215:8: otherlv_4= RULE_ID
586 {
587
588 if (current==null) {
589 current = createModelElement(grammarAccess.getClassDeclarationRule());
590 }
591
592 otherlv_4=(Token)match(input,RULE_ID,FOLLOW_8);
593
594 newLeafNode(otherlv_4, grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_0_0());
595
596
597 }
598
599
600 }
601
602
603 }
604 break;
605 case 2 :
606 // InternalProblem.g:227:6: (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' )
607 {
608 // InternalProblem.g:227:6: (otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']' )
609 // InternalProblem.g:228:7: otherlv_5= '[' ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )? otherlv_9= ']'
610 {
611 otherlv_5=(Token)match(input,14,FOLLOW_9);
612
613 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getLeftSquareBracketKeyword_3_0_1_1_0());
614
615 // InternalProblem.g:232:7: ( ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )* )?
616 int alt5=2;
617 int LA5_0 = input.LA(1);
618
619 if ( (LA5_0==RULE_ID) ) {
620 alt5=1;
621 }
622 switch (alt5) {
623 case 1 :
624 // InternalProblem.g:233:8: ( (otherlv_6= RULE_ID ) ) (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )*
625 {
626 // InternalProblem.g:233:8: ( (otherlv_6= RULE_ID ) )
627 // InternalProblem.g:234:9: (otherlv_6= RULE_ID )
628 {
629 // InternalProblem.g:234:9: (otherlv_6= RULE_ID )
630 // InternalProblem.g:235:10: otherlv_6= RULE_ID
631 {
632
633 if (current==null) {
634 current = createModelElement(grammarAccess.getClassDeclarationRule());
635 }
636
637 otherlv_6=(Token)match(input,RULE_ID,FOLLOW_10);
638
639 newLeafNode(otherlv_6, grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0());
640
641
642 }
643
644
645 }
646
647 // InternalProblem.g:246:8: (otherlv_7= ',' ( (otherlv_8= RULE_ID ) ) )*
648 loop4:
649 do {
650 int alt4=2;
651 int LA4_0 = input.LA(1);
652
653 if ( (LA4_0==15) ) {
654 alt4=1;
655 }
656
657
658 switch (alt4) {
659 case 1 :
660 // InternalProblem.g:247:9: otherlv_7= ',' ( (otherlv_8= RULE_ID ) )
661 {
662 otherlv_7=(Token)match(input,15,FOLLOW_5);
663
664 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_0_1_1_1_1_0());
665
666 // InternalProblem.g:251:9: ( (otherlv_8= RULE_ID ) )
667 // InternalProblem.g:252:10: (otherlv_8= RULE_ID )
668 {
669 // InternalProblem.g:252:10: (otherlv_8= RULE_ID )
670 // InternalProblem.g:253:11: otherlv_8= RULE_ID
671 {
672
673 if (current==null) {
674 current = createModelElement(grammarAccess.getClassDeclarationRule());
675 }
676
677 otherlv_8=(Token)match(input,RULE_ID,FOLLOW_10);
678
679 newLeafNode(otherlv_8, grammarAccess.getClassDeclarationAccess().getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0());
680
681
682 }
683
684
685 }
686
687
688 }
689 break;
690
691 default :
692 break loop4;
693 }
694 } while (true);
695
696
697 }
698 break;
699
700 }
701
702 otherlv_9=(Token)match(input,16,FOLLOW_8);
703
704 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getRightSquareBracketKeyword_3_0_1_1_2());
705
706
707 }
708
709
710 }
711 break;
712
713 }
714
715
716 }
717
718
719 }
720 break;
721 case 2 :
722 // InternalProblem.g:274:4: ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) )
723 {
724 // InternalProblem.g:274:4: ( (lv_referenceDeclarations_10_0= ruleReferenceDeclaration ) )
725 // InternalProblem.g:275:5: (lv_referenceDeclarations_10_0= ruleReferenceDeclaration )
726 {
727 // InternalProblem.g:275:5: (lv_referenceDeclarations_10_0= ruleReferenceDeclaration )
728 // InternalProblem.g:276:6: lv_referenceDeclarations_10_0= ruleReferenceDeclaration
729 {
730
731 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0());
732
733 pushFollow(FOLLOW_8);
734 lv_referenceDeclarations_10_0=ruleReferenceDeclaration();
735
736 state._fsp--;
737
738
739 if (current==null) {
740 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
741 }
742 add(
743 current,
744 "referenceDeclarations",
745 lv_referenceDeclarations_10_0,
746 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
747 afterParserOrEnumRuleCall();
748
749
750 }
751
752
753 }
754
755
756 }
757 break;
758
759 }
760
761 // InternalProblem.g:294:3: (otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) ) )*
762 loop8:
763 do {
764 int alt8=2;
765 int LA8_0 = input.LA(1);
766
767 if ( (LA8_0==15) ) {
768 alt8=1;
769 }
770
771
772 switch (alt8) {
773 case 1 :
774 // InternalProblem.g:295:4: otherlv_11= ',' ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) )
775 {
776 otherlv_11=(Token)match(input,15,FOLLOW_11);
777
778 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getCommaKeyword_4_0());
779
780 // InternalProblem.g:299:4: ( (lv_referenceDeclarations_12_0= ruleReferenceDeclaration ) )
781 // InternalProblem.g:300:5: (lv_referenceDeclarations_12_0= ruleReferenceDeclaration )
782 {
783 // InternalProblem.g:300:5: (lv_referenceDeclarations_12_0= ruleReferenceDeclaration )
784 // InternalProblem.g:301:6: lv_referenceDeclarations_12_0= ruleReferenceDeclaration
785 {
786
787 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0());
788
789 pushFollow(FOLLOW_8);
790 lv_referenceDeclarations_12_0=ruleReferenceDeclaration();
791
792 state._fsp--;
793
794
795 if (current==null) {
796 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
797 }
798 add(
799 current,
800 "referenceDeclarations",
801 lv_referenceDeclarations_12_0,
802 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
803 afterParserOrEnumRuleCall();
804
805
806 }
807
808
809 }
810
811
812 }
813 break;
814
815 default :
816 break loop8;
817 }
818 } while (true);
819
820 otherlv_13=(Token)match(input,17,FOLLOW_2);
821
822 newLeafNode(otherlv_13, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_5());
823
824
825 }
826
827
828 }
829
830
831 leaveRule();
832
833 }
834
835 catch (RecognitionException re) {
836 recover(input,re);
837 appendSkippedTokens();
838 }
839 finally {
840 }
841 return current;
842 }
843 // $ANTLR end "ruleClassDeclaration"
844
845
846 // $ANTLR start "entryRuleReferenceDeclaration"
847 // InternalProblem.g:327:1: entryRuleReferenceDeclaration returns [EObject current=null] : iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF ;
848 public final EObject entryRuleReferenceDeclaration() throws RecognitionException {
849 EObject current = null;
850
851 EObject iv_ruleReferenceDeclaration = null;
852
853
854 try {
855 // InternalProblem.g:327:61: (iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF )
856 // InternalProblem.g:328:2: iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF
857 {
858 newCompositeNode(grammarAccess.getReferenceDeclarationRule());
859 pushFollow(FOLLOW_1);
860 iv_ruleReferenceDeclaration=ruleReferenceDeclaration();
861
862 state._fsp--;
863
864 current =iv_ruleReferenceDeclaration;
865 match(input,EOF,FOLLOW_2);
866
867 }
868
869 }
870
871 catch (RecognitionException re) {
872 recover(input,re);
873 appendSkippedTokens();
874 }
875 finally {
876 }
877 return current;
878 }
879 // $ANTLR end "entryRuleReferenceDeclaration"
880
881
882 // $ANTLR start "ruleReferenceDeclaration"
883 // InternalProblem.g:334:1: ruleReferenceDeclaration returns [EObject current=null] : ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) ;
884 public final EObject ruleReferenceDeclaration() throws RecognitionException {
885 EObject current = null;
886
887 Token lv_containment_0_0=null;
888 Token otherlv_1=null;
889 Token otherlv_2=null;
890 Token otherlv_3=null;
891 Token otherlv_5=null;
892 Token lv_name_6_0=null;
893 Token otherlv_7=null;
894 EObject lv_multiplicity_4_0 = null;
895
896
897
898 enterRule();
899
900 try {
901 // InternalProblem.g:340:2: ( ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) )
902 // InternalProblem.g:341:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? )
903 {
904 // InternalProblem.g:341:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? )
905 // InternalProblem.g:342:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' ) ( (otherlv_2= RULE_ID ) ) otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' ( (lv_name_6_0= RULE_ID ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
906 {
907 // InternalProblem.g:342:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )
908 int alt9=2;
909 int LA9_0 = input.LA(1);
910
911 if ( (LA9_0==18) ) {
912 alt9=1;
913 }
914 else if ( (LA9_0==19) ) {
915 alt9=2;
916 }
917 else {
918 NoViableAltException nvae =
919 new NoViableAltException("", 9, 0, input);
920
921 throw nvae;
922 }
923 switch (alt9) {
924 case 1 :
925 // InternalProblem.g:343:4: ( (lv_containment_0_0= 'contains' ) )
926 {
927 // InternalProblem.g:343:4: ( (lv_containment_0_0= 'contains' ) )
928 // InternalProblem.g:344:5: (lv_containment_0_0= 'contains' )
929 {
930 // InternalProblem.g:344:5: (lv_containment_0_0= 'contains' )
931 // InternalProblem.g:345:6: lv_containment_0_0= 'contains'
932 {
933 lv_containment_0_0=(Token)match(input,18,FOLLOW_5);
934
935 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
936
937
938 if (current==null) {
939 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
940 }
941 setWithLastConsumed(current, "containment", lv_containment_0_0 != null, "contains");
942
943
944 }
945
946
947 }
948
949
950 }
951 break;
952 case 2 :
953 // InternalProblem.g:358:4: otherlv_1= 'refers'
954 {
955 otherlv_1=(Token)match(input,19,FOLLOW_5);
956
957 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
958
959
960 }
961 break;
962
963 }
964
965 // InternalProblem.g:363:3: ( (otherlv_2= RULE_ID ) )
966 // InternalProblem.g:364:4: (otherlv_2= RULE_ID )
967 {
968 // InternalProblem.g:364:4: (otherlv_2= RULE_ID )
969 // InternalProblem.g:365:5: otherlv_2= RULE_ID
970 {
971
972 if (current==null) {
973 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
974 }
975
976 otherlv_2=(Token)match(input,RULE_ID,FOLLOW_12);
977
978 newLeafNode(otherlv_2, grammarAccess.getReferenceDeclarationAccess().getReferenceTypeClassDeclarationCrossReference_1_0());
979
980
981 }
982
983
984 }
985
986 otherlv_3=(Token)match(input,14,FOLLOW_13);
987
988 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2());
989
990 // InternalProblem.g:380:3: ( (lv_multiplicity_4_0= ruleMultiplicity ) )
991 // InternalProblem.g:381:4: (lv_multiplicity_4_0= ruleMultiplicity )
992 {
993 // InternalProblem.g:381:4: (lv_multiplicity_4_0= ruleMultiplicity )
994 // InternalProblem.g:382:5: lv_multiplicity_4_0= ruleMultiplicity
995 {
996
997 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_3_0());
998
999 pushFollow(FOLLOW_14);
1000 lv_multiplicity_4_0=ruleMultiplicity();
1001
1002 state._fsp--;
1003
1004
1005 if (current==null) {
1006 current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
1007 }
1008 set(
1009 current,
1010 "multiplicity",
1011 lv_multiplicity_4_0,
1012 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
1013 afterParserOrEnumRuleCall();
1014
1015
1016 }
1017
1018
1019 }
1020
1021 otherlv_5=(Token)match(input,16,FOLLOW_5);
1022
1023 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_4());
1024
1025 // InternalProblem.g:403:3: ( (lv_name_6_0= RULE_ID ) )
1026 // InternalProblem.g:404:4: (lv_name_6_0= RULE_ID )
1027 {
1028 // InternalProblem.g:404:4: (lv_name_6_0= RULE_ID )
1029 // InternalProblem.g:405:5: lv_name_6_0= RULE_ID
1030 {
1031 lv_name_6_0=(Token)match(input,RULE_ID,FOLLOW_15);
1032
1033 newLeafNode(lv_name_6_0, grammarAccess.getReferenceDeclarationAccess().getNameIDTerminalRuleCall_5_0());
1034
1035
1036 if (current==null) {
1037 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1038 }
1039 setWithLastConsumed(
1040 current,
1041 "name",
1042 lv_name_6_0,
1043 "org.eclipse.xtext.common.Terminals.ID");
1044
1045
1046 }
1047
1048
1049 }
1050
1051 // InternalProblem.g:421:3: (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
1052 int alt10=2;
1053 int LA10_0 = input.LA(1);
1054
1055 if ( (LA10_0==20) ) {
1056 alt10=1;
1057 }
1058 switch (alt10) {
1059 case 1 :
1060 // InternalProblem.g:422:4: otherlv_7= 'opposite' ( ( ruleQualifiedName ) )
1061 {
1062 otherlv_7=(Token)match(input,20,FOLLOW_5);
1063
1064 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_6_0());
1065
1066 // InternalProblem.g:426:4: ( ( ruleQualifiedName ) )
1067 // InternalProblem.g:427:5: ( ruleQualifiedName )
1068 {
1069 // InternalProblem.g:427:5: ( ruleQualifiedName )
1070 // InternalProblem.g:428:6: ruleQualifiedName
1071 {
1072
1073 if (current==null) {
1074 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1075 }
1076
1077
1078 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_6_1_0());
1079
1080 pushFollow(FOLLOW_2);
1081 ruleQualifiedName();
1082
1083 state._fsp--;
1084
1085
1086 afterParserOrEnumRuleCall();
1087
1088
1089 }
1090
1091
1092 }
1093
1094
1095 }
1096 break;
1097
1098 }
1099
1100
1101 }
1102
1103
1104 }
1105
1106
1107 leaveRule();
1108
1109 }
1110
1111 catch (RecognitionException re) {
1112 recover(input,re);
1113 appendSkippedTokens();
1114 }
1115 finally {
1116 }
1117 return current;
1118 }
1119 // $ANTLR end "ruleReferenceDeclaration"
1120
1121
1122 // $ANTLR start "entryRulePredicateDefinition"
1123 // InternalProblem.g:447:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ;
1124 public final EObject entryRulePredicateDefinition() throws RecognitionException {
1125 EObject current = null;
1126
1127 EObject iv_rulePredicateDefinition = null;
1128
1129
1130 try {
1131 // InternalProblem.g:447:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF )
1132 // InternalProblem.g:448:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF
1133 {
1134 newCompositeNode(grammarAccess.getPredicateDefinitionRule());
1135 pushFollow(FOLLOW_1);
1136 iv_rulePredicateDefinition=rulePredicateDefinition();
1137
1138 state._fsp--;
1139
1140 current =iv_rulePredicateDefinition;
1141 match(input,EOF,FOLLOW_2);
1142
1143 }
1144
1145 }
1146
1147 catch (RecognitionException re) {
1148 recover(input,re);
1149 appendSkippedTokens();
1150 }
1151 finally {
1152 }
1153 return current;
1154 }
1155 // $ANTLR end "entryRulePredicateDefinition"
1156
1157
1158 // $ANTLR start "rulePredicateDefinition"
1159 // InternalProblem.g:454:1: rulePredicateDefinition returns [EObject current=null] : ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':=' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.' ) ;
1160 public final EObject rulePredicateDefinition() throws RecognitionException {
1161 EObject current = null;
1162
1163 Token lv_error_0_0=null;
1164 Token otherlv_1=null;
1165 Token otherlv_2=null;
1166 Token lv_name_3_0=null;
1167 Token otherlv_4=null;
1168 Token otherlv_6=null;
1169 Token otherlv_8=null;
1170 Token otherlv_9=null;
1171 Token otherlv_11=null;
1172 Token otherlv_13=null;
1173 EObject lv_parameters_5_0 = null;
1174
1175 EObject lv_parameters_7_0 = null;
1176
1177 EObject lv_bodies_10_0 = null;
1178
1179 EObject lv_bodies_12_0 = null;
1180
1181
1182
1183 enterRule();
1184
1185 try {
1186 // InternalProblem.g:460:2: ( ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':=' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.' ) )
1187 // InternalProblem.g:461:2: ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':=' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.' )
1188 {
1189 // InternalProblem.g:461:2: ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':=' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.' )
1190 // InternalProblem.g:462:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= RULE_ID ) ) otherlv_4= '(' ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )? otherlv_8= ')' (otherlv_9= ':=' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )? otherlv_13= '.'
1191 {
1192 // InternalProblem.g:462:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' )
1193 int alt12=2;
1194 int LA12_0 = input.LA(1);
1195
1196 if ( (LA12_0==21) ) {
1197 alt12=1;
1198 }
1199 else if ( (LA12_0==22) ) {
1200 alt12=2;
1201 }
1202 else {
1203 NoViableAltException nvae =
1204 new NoViableAltException("", 12, 0, input);
1205
1206 throw nvae;
1207 }
1208 switch (alt12) {
1209 case 1 :
1210 // InternalProblem.g:463:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1211 {
1212 // InternalProblem.g:463:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1213 // InternalProblem.g:464:5: ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )?
1214 {
1215 // InternalProblem.g:464:5: ( (lv_error_0_0= 'error' ) )
1216 // InternalProblem.g:465:6: (lv_error_0_0= 'error' )
1217 {
1218 // InternalProblem.g:465:6: (lv_error_0_0= 'error' )
1219 // InternalProblem.g:466:7: lv_error_0_0= 'error'
1220 {
1221 lv_error_0_0=(Token)match(input,21,FOLLOW_16);
1222
1223 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
1224
1225
1226 if (current==null) {
1227 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1228 }
1229 setWithLastConsumed(current, "error", lv_error_0_0 != null, "error");
1230
1231
1232 }
1233
1234
1235 }
1236
1237 // InternalProblem.g:478:5: (otherlv_1= 'pred' )?
1238 int alt11=2;
1239 int LA11_0 = input.LA(1);
1240
1241 if ( (LA11_0==22) ) {
1242 alt11=1;
1243 }
1244 switch (alt11) {
1245 case 1 :
1246 // InternalProblem.g:479:6: otherlv_1= 'pred'
1247 {
1248 otherlv_1=(Token)match(input,22,FOLLOW_5);
1249
1250 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
1251
1252
1253 }
1254 break;
1255
1256 }
1257
1258
1259 }
1260
1261
1262 }
1263 break;
1264 case 2 :
1265 // InternalProblem.g:486:4: otherlv_2= 'pred'
1266 {
1267 otherlv_2=(Token)match(input,22,FOLLOW_5);
1268
1269 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
1270
1271
1272 }
1273 break;
1274
1275 }
1276
1277 // InternalProblem.g:491:3: ( (lv_name_3_0= RULE_ID ) )
1278 // InternalProblem.g:492:4: (lv_name_3_0= RULE_ID )
1279 {
1280 // InternalProblem.g:492:4: (lv_name_3_0= RULE_ID )
1281 // InternalProblem.g:493:5: lv_name_3_0= RULE_ID
1282 {
1283 lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_17);
1284
1285 newLeafNode(lv_name_3_0, grammarAccess.getPredicateDefinitionAccess().getNameIDTerminalRuleCall_1_0());
1286
1287
1288 if (current==null) {
1289 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1290 }
1291 setWithLastConsumed(
1292 current,
1293 "name",
1294 lv_name_3_0,
1295 "org.eclipse.xtext.common.Terminals.ID");
1296
1297
1298 }
1299
1300
1301 }
1302
1303 otherlv_4=(Token)match(input,23,FOLLOW_18);
1304
1305 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
1306
1307 // InternalProblem.g:513:3: ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )?
1308 int alt14=2;
1309 int LA14_0 = input.LA(1);
1310
1311 if ( (LA14_0==RULE_ID) ) {
1312 alt14=1;
1313 }
1314 switch (alt14) {
1315 case 1 :
1316 // InternalProblem.g:514:4: ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1317 {
1318 // InternalProblem.g:514:4: ( (lv_parameters_5_0= ruleParameter ) )
1319 // InternalProblem.g:515:5: (lv_parameters_5_0= ruleParameter )
1320 {
1321 // InternalProblem.g:515:5: (lv_parameters_5_0= ruleParameter )
1322 // InternalProblem.g:516:6: lv_parameters_5_0= ruleParameter
1323 {
1324
1325 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
1326
1327 pushFollow(FOLLOW_19);
1328 lv_parameters_5_0=ruleParameter();
1329
1330 state._fsp--;
1331
1332
1333 if (current==null) {
1334 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1335 }
1336 add(
1337 current,
1338 "parameters",
1339 lv_parameters_5_0,
1340 "org.eclipse.viatra.solver.language.Problem.Parameter");
1341 afterParserOrEnumRuleCall();
1342
1343
1344 }
1345
1346
1347 }
1348
1349 // InternalProblem.g:533:4: (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1350 loop13:
1351 do {
1352 int alt13=2;
1353 int LA13_0 = input.LA(1);
1354
1355 if ( (LA13_0==15) ) {
1356 alt13=1;
1357 }
1358
1359
1360 switch (alt13) {
1361 case 1 :
1362 // InternalProblem.g:534:5: otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) )
1363 {
1364 otherlv_6=(Token)match(input,15,FOLLOW_5);
1365
1366 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
1367
1368 // InternalProblem.g:538:5: ( (lv_parameters_7_0= ruleParameter ) )
1369 // InternalProblem.g:539:6: (lv_parameters_7_0= ruleParameter )
1370 {
1371 // InternalProblem.g:539:6: (lv_parameters_7_0= ruleParameter )
1372 // InternalProblem.g:540:7: lv_parameters_7_0= ruleParameter
1373 {
1374
1375 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
1376
1377 pushFollow(FOLLOW_19);
1378 lv_parameters_7_0=ruleParameter();
1379
1380 state._fsp--;
1381
1382
1383 if (current==null) {
1384 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1385 }
1386 add(
1387 current,
1388 "parameters",
1389 lv_parameters_7_0,
1390 "org.eclipse.viatra.solver.language.Problem.Parameter");
1391 afterParserOrEnumRuleCall();
1392
1393
1394 }
1395
1396
1397 }
1398
1399
1400 }
1401 break;
1402
1403 default :
1404 break loop13;
1405 }
1406 } while (true);
1407
1408
1409 }
1410 break;
1411
1412 }
1413
1414 otherlv_8=(Token)match(input,24,FOLLOW_20);
1415
1416 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
1417
1418 // InternalProblem.g:563:3: (otherlv_9= ':=' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )?
1419 int alt16=2;
1420 int LA16_0 = input.LA(1);
1421
1422 if ( (LA16_0==25) ) {
1423 alt16=1;
1424 }
1425 switch (alt16) {
1426 case 1 :
1427 // InternalProblem.g:564:4: otherlv_9= ':=' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1428 {
1429 otherlv_9=(Token)match(input,25,FOLLOW_21);
1430
1431 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonEqualsSignKeyword_5_0());
1432
1433 // InternalProblem.g:568:4: ( (lv_bodies_10_0= ruleConjunction ) )
1434 // InternalProblem.g:569:5: (lv_bodies_10_0= ruleConjunction )
1435 {
1436 // InternalProblem.g:569:5: (lv_bodies_10_0= ruleConjunction )
1437 // InternalProblem.g:570:6: lv_bodies_10_0= ruleConjunction
1438 {
1439
1440 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
1441
1442 pushFollow(FOLLOW_22);
1443 lv_bodies_10_0=ruleConjunction();
1444
1445 state._fsp--;
1446
1447
1448 if (current==null) {
1449 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1450 }
1451 add(
1452 current,
1453 "bodies",
1454 lv_bodies_10_0,
1455 "org.eclipse.viatra.solver.language.Problem.Conjunction");
1456 afterParserOrEnumRuleCall();
1457
1458
1459 }
1460
1461
1462 }
1463
1464 // InternalProblem.g:587:4: (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1465 loop15:
1466 do {
1467 int alt15=2;
1468 int LA15_0 = input.LA(1);
1469
1470 if ( (LA15_0==26) ) {
1471 alt15=1;
1472 }
1473
1474
1475 switch (alt15) {
1476 case 1 :
1477 // InternalProblem.g:588:5: otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) )
1478 {
1479 otherlv_11=(Token)match(input,26,FOLLOW_21);
1480
1481 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
1482
1483 // InternalProblem.g:592:5: ( (lv_bodies_12_0= ruleConjunction ) )
1484 // InternalProblem.g:593:6: (lv_bodies_12_0= ruleConjunction )
1485 {
1486 // InternalProblem.g:593:6: (lv_bodies_12_0= ruleConjunction )
1487 // InternalProblem.g:594:7: lv_bodies_12_0= ruleConjunction
1488 {
1489
1490 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
1491
1492 pushFollow(FOLLOW_22);
1493 lv_bodies_12_0=ruleConjunction();
1494
1495 state._fsp--;
1496
1497
1498 if (current==null) {
1499 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1500 }
1501 add(
1502 current,
1503 "bodies",
1504 lv_bodies_12_0,
1505 "org.eclipse.viatra.solver.language.Problem.Conjunction");
1506 afterParserOrEnumRuleCall();
1507
1508
1509 }
1510
1511
1512 }
1513
1514
1515 }
1516 break;
1517
1518 default :
1519 break loop15;
1520 }
1521 } while (true);
1522
1523
1524 }
1525 break;
1526
1527 }
1528
1529 otherlv_13=(Token)match(input,17,FOLLOW_2);
1530
1531 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
1532
1533
1534 }
1535
1536
1537 }
1538
1539
1540 leaveRule();
1541
1542 }
1543
1544 catch (RecognitionException re) {
1545 recover(input,re);
1546 appendSkippedTokens();
1547 }
1548 finally {
1549 }
1550 return current;
1551 }
1552 // $ANTLR end "rulePredicateDefinition"
1553
1554
1555 // $ANTLR start "entryRuleParameter"
1556 // InternalProblem.g:621:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ;
1557 public final EObject entryRuleParameter() throws RecognitionException {
1558 EObject current = null;
1559
1560 EObject iv_ruleParameter = null;
1561
1562
1563 try {
1564 // InternalProblem.g:621:50: (iv_ruleParameter= ruleParameter EOF )
1565 // InternalProblem.g:622:2: iv_ruleParameter= ruleParameter EOF
1566 {
1567 newCompositeNode(grammarAccess.getParameterRule());
1568 pushFollow(FOLLOW_1);
1569 iv_ruleParameter=ruleParameter();
1570
1571 state._fsp--;
1572
1573 current =iv_ruleParameter;
1574 match(input,EOF,FOLLOW_2);
1575
1576 }
1577
1578 }
1579
1580 catch (RecognitionException re) {
1581 recover(input,re);
1582 appendSkippedTokens();
1583 }
1584 finally {
1585 }
1586 return current;
1587 }
1588 // $ANTLR end "entryRuleParameter"
1589
1590
1591 // $ANTLR start "ruleParameter"
1592 // InternalProblem.g:628:1: ruleParameter returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) ) ;
1593 public final EObject ruleParameter() throws RecognitionException {
1594 EObject current = null;
1595
1596 Token otherlv_0=null;
1597 Token lv_name_1_0=null;
1598
1599
1600 enterRule();
1601
1602 try {
1603 // InternalProblem.g:634:2: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) ) )
1604 // InternalProblem.g:635:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) )
1605 {
1606 // InternalProblem.g:635:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) ) )
1607 // InternalProblem.g:636:3: ( (otherlv_0= RULE_ID ) ) ( (lv_name_1_0= RULE_ID ) )
1608 {
1609 // InternalProblem.g:636:3: ( (otherlv_0= RULE_ID ) )
1610 // InternalProblem.g:637:4: (otherlv_0= RULE_ID )
1611 {
1612 // InternalProblem.g:637:4: (otherlv_0= RULE_ID )
1613 // InternalProblem.g:638:5: otherlv_0= RULE_ID
1614 {
1615
1616 if (current==null) {
1617 current = createModelElement(grammarAccess.getParameterRule());
1618 }
1619
1620 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_5);
1621
1622 newLeafNode(otherlv_0, grammarAccess.getParameterAccess().getParameterTypeClassDeclarationCrossReference_0_0());
1623
1624
1625 }
1626
1627
1628 }
1629
1630 // InternalProblem.g:649:3: ( (lv_name_1_0= RULE_ID ) )
1631 // InternalProblem.g:650:4: (lv_name_1_0= RULE_ID )
1632 {
1633 // InternalProblem.g:650:4: (lv_name_1_0= RULE_ID )
1634 // InternalProblem.g:651:5: lv_name_1_0= RULE_ID
1635 {
1636 lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_2);
1637
1638 newLeafNode(lv_name_1_0, grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0());
1639
1640
1641 if (current==null) {
1642 current = createModelElement(grammarAccess.getParameterRule());
1643 }
1644 setWithLastConsumed(
1645 current,
1646 "name",
1647 lv_name_1_0,
1648 "org.eclipse.xtext.common.Terminals.ID");
1649
1650
1651 }
1652
1653
1654 }
1655
1656
1657 }
1658
1659
1660 }
1661
1662
1663 leaveRule();
1664
1665 }
1666
1667 catch (RecognitionException re) {
1668 recover(input,re);
1669 appendSkippedTokens();
1670 }
1671 finally {
1672 }
1673 return current;
1674 }
1675 // $ANTLR end "ruleParameter"
1676
1677
1678 // $ANTLR start "entryRuleConjunction"
1679 // InternalProblem.g:671:1: entryRuleConjunction returns [EObject current=null] : iv_ruleConjunction= ruleConjunction EOF ;
1680 public final EObject entryRuleConjunction() throws RecognitionException {
1681 EObject current = null;
1682
1683 EObject iv_ruleConjunction = null;
1684
1685
1686 try {
1687 // InternalProblem.g:671:52: (iv_ruleConjunction= ruleConjunction EOF )
1688 // InternalProblem.g:672:2: iv_ruleConjunction= ruleConjunction EOF
1689 {
1690 newCompositeNode(grammarAccess.getConjunctionRule());
1691 pushFollow(FOLLOW_1);
1692 iv_ruleConjunction=ruleConjunction();
1693
1694 state._fsp--;
1695
1696 current =iv_ruleConjunction;
1697 match(input,EOF,FOLLOW_2);
1698
1699 }
1700
1701 }
1702
1703 catch (RecognitionException re) {
1704 recover(input,re);
1705 appendSkippedTokens();
1706 }
1707 finally {
1708 }
1709 return current;
1710 }
1711 // $ANTLR end "entryRuleConjunction"
1712
1713
1714 // $ANTLR start "ruleConjunction"
1715 // InternalProblem.g:678:1: ruleConjunction returns [EObject current=null] : ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) ;
1716 public final EObject ruleConjunction() throws RecognitionException {
1717 EObject current = null;
1718
1719 Token otherlv_1=null;
1720 EObject lv_literals_0_0 = null;
1721
1722 EObject lv_literals_2_0 = null;
1723
1724
1725
1726 enterRule();
1727
1728 try {
1729 // InternalProblem.g:684:2: ( ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) )
1730 // InternalProblem.g:685:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
1731 {
1732 // InternalProblem.g:685:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
1733 // InternalProblem.g:686:3: ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
1734 {
1735 // InternalProblem.g:686:3: ( (lv_literals_0_0= ruleLiteral ) )
1736 // InternalProblem.g:687:4: (lv_literals_0_0= ruleLiteral )
1737 {
1738 // InternalProblem.g:687:4: (lv_literals_0_0= ruleLiteral )
1739 // InternalProblem.g:688:5: lv_literals_0_0= ruleLiteral
1740 {
1741
1742 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
1743
1744 pushFollow(FOLLOW_23);
1745 lv_literals_0_0=ruleLiteral();
1746
1747 state._fsp--;
1748
1749
1750 if (current==null) {
1751 current = createModelElementForParent(grammarAccess.getConjunctionRule());
1752 }
1753 add(
1754 current,
1755 "literals",
1756 lv_literals_0_0,
1757 "org.eclipse.viatra.solver.language.Problem.Literal");
1758 afterParserOrEnumRuleCall();
1759
1760
1761 }
1762
1763
1764 }
1765
1766 // InternalProblem.g:705:3: (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
1767 loop17:
1768 do {
1769 int alt17=2;
1770 int LA17_0 = input.LA(1);
1771
1772 if ( (LA17_0==15) ) {
1773 alt17=1;
1774 }
1775
1776
1777 switch (alt17) {
1778 case 1 :
1779 // InternalProblem.g:706:4: otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) )
1780 {
1781 otherlv_1=(Token)match(input,15,FOLLOW_21);
1782
1783 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
1784
1785 // InternalProblem.g:710:4: ( (lv_literals_2_0= ruleLiteral ) )
1786 // InternalProblem.g:711:5: (lv_literals_2_0= ruleLiteral )
1787 {
1788 // InternalProblem.g:711:5: (lv_literals_2_0= ruleLiteral )
1789 // InternalProblem.g:712:6: lv_literals_2_0= ruleLiteral
1790 {
1791
1792 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
1793
1794 pushFollow(FOLLOW_23);
1795 lv_literals_2_0=ruleLiteral();
1796
1797 state._fsp--;
1798
1799
1800 if (current==null) {
1801 current = createModelElementForParent(grammarAccess.getConjunctionRule());
1802 }
1803 add(
1804 current,
1805 "literals",
1806 lv_literals_2_0,
1807 "org.eclipse.viatra.solver.language.Problem.Literal");
1808 afterParserOrEnumRuleCall();
1809
1810
1811 }
1812
1813
1814 }
1815
1816
1817 }
1818 break;
1819
1820 default :
1821 break loop17;
1822 }
1823 } while (true);
1824
1825
1826 }
1827
1828
1829 }
1830
1831
1832 leaveRule();
1833
1834 }
1835
1836 catch (RecognitionException re) {
1837 recover(input,re);
1838 appendSkippedTokens();
1839 }
1840 finally {
1841 }
1842 return current;
1843 }
1844 // $ANTLR end "ruleConjunction"
1845
1846
1847 // $ANTLR start "entryRuleLiteral"
1848 // InternalProblem.g:734:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ;
1849 public final EObject entryRuleLiteral() throws RecognitionException {
1850 EObject current = null;
1851
1852 EObject iv_ruleLiteral = null;
1853
1854
1855 try {
1856 // InternalProblem.g:734:48: (iv_ruleLiteral= ruleLiteral EOF )
1857 // InternalProblem.g:735:2: iv_ruleLiteral= ruleLiteral EOF
1858 {
1859 newCompositeNode(grammarAccess.getLiteralRule());
1860 pushFollow(FOLLOW_1);
1861 iv_ruleLiteral=ruleLiteral();
1862
1863 state._fsp--;
1864
1865 current =iv_ruleLiteral;
1866 match(input,EOF,FOLLOW_2);
1867
1868 }
1869
1870 }
1871
1872 catch (RecognitionException re) {
1873 recover(input,re);
1874 appendSkippedTokens();
1875 }
1876 finally {
1877 }
1878 return current;
1879 }
1880 // $ANTLR end "entryRuleLiteral"
1881
1882
1883 // $ANTLR start "ruleLiteral"
1884 // InternalProblem.g:741:1: ruleLiteral returns [EObject current=null] : (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) ;
1885 public final EObject ruleLiteral() throws RecognitionException {
1886 EObject current = null;
1887
1888 EObject this_Atom_0 = null;
1889
1890 EObject this_NegativeLiteral_1 = null;
1891
1892
1893
1894 enterRule();
1895
1896 try {
1897 // InternalProblem.g:747:2: ( (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) )
1898 // InternalProblem.g:748:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
1899 {
1900 // InternalProblem.g:748:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
1901 int alt18=2;
1902 int LA18_0 = input.LA(1);
1903
1904 if ( (LA18_0==RULE_ID) ) {
1905 alt18=1;
1906 }
1907 else if ( (LA18_0==27) ) {
1908 alt18=2;
1909 }
1910 else {
1911 NoViableAltException nvae =
1912 new NoViableAltException("", 18, 0, input);
1913
1914 throw nvae;
1915 }
1916 switch (alt18) {
1917 case 1 :
1918 // InternalProblem.g:749:3: this_Atom_0= ruleAtom
1919 {
1920
1921 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
1922
1923 pushFollow(FOLLOW_2);
1924 this_Atom_0=ruleAtom();
1925
1926 state._fsp--;
1927
1928
1929 current = this_Atom_0;
1930 afterParserOrEnumRuleCall();
1931
1932
1933 }
1934 break;
1935 case 2 :
1936 // InternalProblem.g:758:3: this_NegativeLiteral_1= ruleNegativeLiteral
1937 {
1938
1939 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
1940
1941 pushFollow(FOLLOW_2);
1942 this_NegativeLiteral_1=ruleNegativeLiteral();
1943
1944 state._fsp--;
1945
1946
1947 current = this_NegativeLiteral_1;
1948 afterParserOrEnumRuleCall();
1949
1950
1951 }
1952 break;
1953
1954 }
1955
1956
1957 }
1958
1959
1960 leaveRule();
1961
1962 }
1963
1964 catch (RecognitionException re) {
1965 recover(input,re);
1966 appendSkippedTokens();
1967 }
1968 finally {
1969 }
1970 return current;
1971 }
1972 // $ANTLR end "ruleLiteral"
1973
1974
1975 // $ANTLR start "entryRuleNegativeLiteral"
1976 // InternalProblem.g:770:1: entryRuleNegativeLiteral returns [EObject current=null] : iv_ruleNegativeLiteral= ruleNegativeLiteral EOF ;
1977 public final EObject entryRuleNegativeLiteral() throws RecognitionException {
1978 EObject current = null;
1979
1980 EObject iv_ruleNegativeLiteral = null;
1981
1982
1983 try {
1984 // InternalProblem.g:770:56: (iv_ruleNegativeLiteral= ruleNegativeLiteral EOF )
1985 // InternalProblem.g:771:2: iv_ruleNegativeLiteral= ruleNegativeLiteral EOF
1986 {
1987 newCompositeNode(grammarAccess.getNegativeLiteralRule());
1988 pushFollow(FOLLOW_1);
1989 iv_ruleNegativeLiteral=ruleNegativeLiteral();
1990
1991 state._fsp--;
1992
1993 current =iv_ruleNegativeLiteral;
1994 match(input,EOF,FOLLOW_2);
1995
1996 }
1997
1998 }
1999
2000 catch (RecognitionException re) {
2001 recover(input,re);
2002 appendSkippedTokens();
2003 }
2004 finally {
2005 }
2006 return current;
2007 }
2008 // $ANTLR end "entryRuleNegativeLiteral"
2009
2010
2011 // $ANTLR start "ruleNegativeLiteral"
2012 // InternalProblem.g:777:1: ruleNegativeLiteral returns [EObject current=null] : (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) ;
2013 public final EObject ruleNegativeLiteral() throws RecognitionException {
2014 EObject current = null;
2015
2016 Token otherlv_0=null;
2017 EObject lv_atom_1_0 = null;
2018
2019
2020
2021 enterRule();
2022
2023 try {
2024 // InternalProblem.g:783:2: ( (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) )
2025 // InternalProblem.g:784:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2026 {
2027 // InternalProblem.g:784:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2028 // InternalProblem.g:785:3: otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) )
2029 {
2030 otherlv_0=(Token)match(input,27,FOLLOW_5);
2031
2032 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
2033
2034 // InternalProblem.g:789:3: ( (lv_atom_1_0= ruleAtom ) )
2035 // InternalProblem.g:790:4: (lv_atom_1_0= ruleAtom )
2036 {
2037 // InternalProblem.g:790:4: (lv_atom_1_0= ruleAtom )
2038 // InternalProblem.g:791:5: lv_atom_1_0= ruleAtom
2039 {
2040
2041 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
2042
2043 pushFollow(FOLLOW_2);
2044 lv_atom_1_0=ruleAtom();
2045
2046 state._fsp--;
2047
2048
2049 if (current==null) {
2050 current = createModelElementForParent(grammarAccess.getNegativeLiteralRule());
2051 }
2052 set(
2053 current,
2054 "atom",
2055 lv_atom_1_0,
2056 "org.eclipse.viatra.solver.language.Problem.Atom");
2057 afterParserOrEnumRuleCall();
2058
2059
2060 }
2061
2062
2063 }
2064
2065
2066 }
2067
2068
2069 }
2070
2071
2072 leaveRule();
2073
2074 }
2075
2076 catch (RecognitionException re) {
2077 recover(input,re);
2078 appendSkippedTokens();
2079 }
2080 finally {
2081 }
2082 return current;
2083 }
2084 // $ANTLR end "ruleNegativeLiteral"
2085
2086
2087 // $ANTLR start "entryRuleAtom"
2088 // InternalProblem.g:812:1: entryRuleAtom returns [EObject current=null] : iv_ruleAtom= ruleAtom EOF ;
2089 public final EObject entryRuleAtom() throws RecognitionException {
2090 EObject current = null;
2091
2092 EObject iv_ruleAtom = null;
2093
2094
2095 try {
2096 // InternalProblem.g:812:45: (iv_ruleAtom= ruleAtom EOF )
2097 // InternalProblem.g:813:2: iv_ruleAtom= ruleAtom EOF
2098 {
2099 newCompositeNode(grammarAccess.getAtomRule());
2100 pushFollow(FOLLOW_1);
2101 iv_ruleAtom=ruleAtom();
2102
2103 state._fsp--;
2104
2105 current =iv_ruleAtom;
2106 match(input,EOF,FOLLOW_2);
2107
2108 }
2109
2110 }
2111
2112 catch (RecognitionException re) {
2113 recover(input,re);
2114 appendSkippedTokens();
2115 }
2116 finally {
2117 }
2118 return current;
2119 }
2120 // $ANTLR end "entryRuleAtom"
2121
2122
2123 // $ANTLR start "ruleAtom"
2124 // InternalProblem.g:819:1: ruleAtom returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')' ) ;
2125 public final EObject ruleAtom() throws RecognitionException {
2126 EObject current = null;
2127
2128 Token lv_transitiveClosure_1_0=null;
2129 Token otherlv_2=null;
2130 Token otherlv_3=null;
2131 Token otherlv_4=null;
2132 Token otherlv_5=null;
2133 Token otherlv_6=null;
2134
2135
2136 enterRule();
2137
2138 try {
2139 // InternalProblem.g:825:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')' ) )
2140 // InternalProblem.g:826:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')' )
2141 {
2142 // InternalProblem.g:826:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')' )
2143 // InternalProblem.g:827:3: ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )? otherlv_6= ')'
2144 {
2145 // InternalProblem.g:827:3: ( ( ruleQualifiedName ) )
2146 // InternalProblem.g:828:4: ( ruleQualifiedName )
2147 {
2148 // InternalProblem.g:828:4: ( ruleQualifiedName )
2149 // InternalProblem.g:829:5: ruleQualifiedName
2150 {
2151
2152 if (current==null) {
2153 current = createModelElement(grammarAccess.getAtomRule());
2154 }
2155
2156
2157 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
2158
2159 pushFollow(FOLLOW_24);
2160 ruleQualifiedName();
2161
2162 state._fsp--;
2163
2164
2165 afterParserOrEnumRuleCall();
2166
2167
2168 }
2169
2170
2171 }
2172
2173 // InternalProblem.g:843:3: ( (lv_transitiveClosure_1_0= '+' ) )?
2174 int alt19=2;
2175 int LA19_0 = input.LA(1);
2176
2177 if ( (LA19_0==28) ) {
2178 alt19=1;
2179 }
2180 switch (alt19) {
2181 case 1 :
2182 // InternalProblem.g:844:4: (lv_transitiveClosure_1_0= '+' )
2183 {
2184 // InternalProblem.g:844:4: (lv_transitiveClosure_1_0= '+' )
2185 // InternalProblem.g:845:5: lv_transitiveClosure_1_0= '+'
2186 {
2187 lv_transitiveClosure_1_0=(Token)match(input,28,FOLLOW_17);
2188
2189 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
2190
2191
2192 if (current==null) {
2193 current = createModelElement(grammarAccess.getAtomRule());
2194 }
2195 setWithLastConsumed(current, "transitiveClosure", lv_transitiveClosure_1_0 != null, "+");
2196
2197
2198 }
2199
2200
2201 }
2202 break;
2203
2204 }
2205
2206 otherlv_2=(Token)match(input,23,FOLLOW_18);
2207
2208 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
2209
2210 // InternalProblem.g:861:3: ( ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )* )?
2211 int alt21=2;
2212 int LA21_0 = input.LA(1);
2213
2214 if ( (LA21_0==RULE_ID) ) {
2215 alt21=1;
2216 }
2217 switch (alt21) {
2218 case 1 :
2219 // InternalProblem.g:862:4: ( (otherlv_3= RULE_ID ) ) (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )*
2220 {
2221 // InternalProblem.g:862:4: ( (otherlv_3= RULE_ID ) )
2222 // InternalProblem.g:863:5: (otherlv_3= RULE_ID )
2223 {
2224 // InternalProblem.g:863:5: (otherlv_3= RULE_ID )
2225 // InternalProblem.g:864:6: otherlv_3= RULE_ID
2226 {
2227
2228 if (current==null) {
2229 current = createModelElement(grammarAccess.getAtomRule());
2230 }
2231
2232 otherlv_3=(Token)match(input,RULE_ID,FOLLOW_19);
2233
2234 newLeafNode(otherlv_3, grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_0_0());
2235
2236
2237 }
2238
2239
2240 }
2241
2242 // InternalProblem.g:875:4: (otherlv_4= ',' ( (otherlv_5= RULE_ID ) ) )*
2243 loop20:
2244 do {
2245 int alt20=2;
2246 int LA20_0 = input.LA(1);
2247
2248 if ( (LA20_0==15) ) {
2249 alt20=1;
2250 }
2251
2252
2253 switch (alt20) {
2254 case 1 :
2255 // InternalProblem.g:876:5: otherlv_4= ',' ( (otherlv_5= RULE_ID ) )
2256 {
2257 otherlv_4=(Token)match(input,15,FOLLOW_5);
2258
2259 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
2260
2261 // InternalProblem.g:880:5: ( (otherlv_5= RULE_ID ) )
2262 // InternalProblem.g:881:6: (otherlv_5= RULE_ID )
2263 {
2264 // InternalProblem.g:881:6: (otherlv_5= RULE_ID )
2265 // InternalProblem.g:882:7: otherlv_5= RULE_ID
2266 {
2267
2268 if (current==null) {
2269 current = createModelElement(grammarAccess.getAtomRule());
2270 }
2271
2272 otherlv_5=(Token)match(input,RULE_ID,FOLLOW_19);
2273
2274 newLeafNode(otherlv_5, grammarAccess.getAtomAccess().getArgumentsVariableCrossReference_3_1_1_0());
2275
2276
2277 }
2278
2279
2280 }
2281
2282
2283 }
2284 break;
2285
2286 default :
2287 break loop20;
2288 }
2289 } while (true);
2290
2291
2292 }
2293 break;
2294
2295 }
2296
2297 otherlv_6=(Token)match(input,24,FOLLOW_2);
2298
2299 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
2300
2301
2302 }
2303
2304
2305 }
2306
2307
2308 leaveRule();
2309
2310 }
2311
2312 catch (RecognitionException re) {
2313 recover(input,re);
2314 appendSkippedTokens();
2315 }
2316 finally {
2317 }
2318 return current;
2319 }
2320 // $ANTLR end "ruleAtom"
2321
2322
2323 // $ANTLR start "entryRuleAssertion"
2324 // InternalProblem.g:903:1: entryRuleAssertion returns [EObject current=null] : iv_ruleAssertion= ruleAssertion EOF ;
2325 public final EObject entryRuleAssertion() throws RecognitionException {
2326 EObject current = null;
2327
2328 EObject iv_ruleAssertion = null;
2329
2330
2331 try {
2332 // InternalProblem.g:903:50: (iv_ruleAssertion= ruleAssertion EOF )
2333 // InternalProblem.g:904:2: iv_ruleAssertion= ruleAssertion EOF
2334 {
2335 newCompositeNode(grammarAccess.getAssertionRule());
2336 pushFollow(FOLLOW_1);
2337 iv_ruleAssertion=ruleAssertion();
2338
2339 state._fsp--;
2340
2341 current =iv_ruleAssertion;
2342 match(input,EOF,FOLLOW_2);
2343
2344 }
2345
2346 }
2347
2348 catch (RecognitionException re) {
2349 recover(input,re);
2350 appendSkippedTokens();
2351 }
2352 finally {
2353 }
2354 return current;
2355 }
2356 // $ANTLR end "entryRuleAssertion"
2357
2358
2359 // $ANTLR start "ruleAssertion"
2360 // InternalProblem.g:910:1: ruleAssertion returns [EObject current=null] : ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' ) ;
2361 public final EObject ruleAssertion() throws RecognitionException {
2362 EObject current = null;
2363
2364 Token otherlv_1=null;
2365 Token otherlv_3=null;
2366 Token otherlv_5=null;
2367 Token otherlv_6=null;
2368 Token otherlv_10=null;
2369 Token otherlv_12=null;
2370 Token otherlv_14=null;
2371 Token otherlv_15=null;
2372 Enumerator lv_value_7_0 = null;
2373
2374 Enumerator lv_value_8_0 = null;
2375
2376
2377
2378 enterRule();
2379
2380 try {
2381 // InternalProblem.g:916:2: ( ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' ) )
2382 // InternalProblem.g:917:2: ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' )
2383 {
2384 // InternalProblem.g:917:2: ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' )
2385 // InternalProblem.g:918:3: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.'
2386 {
2387 // InternalProblem.g:918:3: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) )
2388 int alt27=2;
2389 alt27 = dfa27.predict(input);
2390 switch (alt27) {
2391 case 1 :
2392 // InternalProblem.g:919:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
2393 {
2394 // InternalProblem.g:919:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
2395 // InternalProblem.g:920:5: ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) )
2396 {
2397 // InternalProblem.g:920:5: ( ( ruleQualifiedName ) )
2398 // InternalProblem.g:921:6: ( ruleQualifiedName )
2399 {
2400 // InternalProblem.g:921:6: ( ruleQualifiedName )
2401 // InternalProblem.g:922:7: ruleQualifiedName
2402 {
2403
2404 if (current==null) {
2405 current = createModelElement(grammarAccess.getAssertionRule());
2406 }
2407
2408
2409 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
2410
2411 pushFollow(FOLLOW_17);
2412 ruleQualifiedName();
2413
2414 state._fsp--;
2415
2416
2417 afterParserOrEnumRuleCall();
2418
2419
2420 }
2421
2422
2423 }
2424
2425 otherlv_1=(Token)match(input,23,FOLLOW_18);
2426
2427 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
2428
2429 // InternalProblem.g:940:5: ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )?
2430 int alt23=2;
2431 int LA23_0 = input.LA(1);
2432
2433 if ( (LA23_0==RULE_ID) ) {
2434 alt23=1;
2435 }
2436 switch (alt23) {
2437 case 1 :
2438 // InternalProblem.g:941:6: ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
2439 {
2440 // InternalProblem.g:941:6: ( ( ruleQualifiedName ) )
2441 // InternalProblem.g:942:7: ( ruleQualifiedName )
2442 {
2443 // InternalProblem.g:942:7: ( ruleQualifiedName )
2444 // InternalProblem.g:943:8: ruleQualifiedName
2445 {
2446
2447 if (current==null) {
2448 current = createModelElement(grammarAccess.getAssertionRule());
2449 }
2450
2451
2452 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
2453
2454 pushFollow(FOLLOW_19);
2455 ruleQualifiedName();
2456
2457 state._fsp--;
2458
2459
2460 afterParserOrEnumRuleCall();
2461
2462
2463 }
2464
2465
2466 }
2467
2468 // InternalProblem.g:957:6: (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
2469 loop22:
2470 do {
2471 int alt22=2;
2472 int LA22_0 = input.LA(1);
2473
2474 if ( (LA22_0==15) ) {
2475 alt22=1;
2476 }
2477
2478
2479 switch (alt22) {
2480 case 1 :
2481 // InternalProblem.g:958:7: otherlv_3= ',' ( ( ruleQualifiedName ) )
2482 {
2483 otherlv_3=(Token)match(input,15,FOLLOW_5);
2484
2485 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
2486
2487 // InternalProblem.g:962:7: ( ( ruleQualifiedName ) )
2488 // InternalProblem.g:963:8: ( ruleQualifiedName )
2489 {
2490 // InternalProblem.g:963:8: ( ruleQualifiedName )
2491 // InternalProblem.g:964:9: ruleQualifiedName
2492 {
2493
2494 if (current==null) {
2495 current = createModelElement(grammarAccess.getAssertionRule());
2496 }
2497
2498
2499 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
2500
2501 pushFollow(FOLLOW_19);
2502 ruleQualifiedName();
2503
2504 state._fsp--;
2505
2506
2507 afterParserOrEnumRuleCall();
2508
2509
2510 }
2511
2512
2513 }
2514
2515
2516 }
2517 break;
2518
2519 default :
2520 break loop22;
2521 }
2522 } while (true);
2523
2524
2525 }
2526 break;
2527
2528 }
2529
2530 otherlv_5=(Token)match(input,24,FOLLOW_25);
2531
2532 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
2533
2534 otherlv_6=(Token)match(input,29,FOLLOW_26);
2535
2536 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
2537
2538 // InternalProblem.g:988:5: ( (lv_value_7_0= ruleLogicValue ) )
2539 // InternalProblem.g:989:6: (lv_value_7_0= ruleLogicValue )
2540 {
2541 // InternalProblem.g:989:6: (lv_value_7_0= ruleLogicValue )
2542 // InternalProblem.g:990:7: lv_value_7_0= ruleLogicValue
2543 {
2544
2545 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
2546
2547 pushFollow(FOLLOW_27);
2548 lv_value_7_0=ruleLogicValue();
2549
2550 state._fsp--;
2551
2552
2553 if (current==null) {
2554 current = createModelElementForParent(grammarAccess.getAssertionRule());
2555 }
2556 set(
2557 current,
2558 "value",
2559 lv_value_7_0,
2560 "org.eclipse.viatra.solver.language.Problem.LogicValue");
2561 afterParserOrEnumRuleCall();
2562
2563
2564 }
2565
2566
2567 }
2568
2569
2570 }
2571
2572
2573 }
2574 break;
2575 case 2 :
2576 // InternalProblem.g:1009:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
2577 {
2578 // InternalProblem.g:1009:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
2579 // InternalProblem.g:1010:5: ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')'
2580 {
2581 // InternalProblem.g:1010:5: ( (lv_value_8_0= ruleShortLogicValue ) )?
2582 int alt24=2;
2583 int LA24_0 = input.LA(1);
2584
2585 if ( (LA24_0==27||LA24_0==39) ) {
2586 alt24=1;
2587 }
2588 switch (alt24) {
2589 case 1 :
2590 // InternalProblem.g:1011:6: (lv_value_8_0= ruleShortLogicValue )
2591 {
2592 // InternalProblem.g:1011:6: (lv_value_8_0= ruleShortLogicValue )
2593 // InternalProblem.g:1012:7: lv_value_8_0= ruleShortLogicValue
2594 {
2595
2596 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
2597
2598 pushFollow(FOLLOW_5);
2599 lv_value_8_0=ruleShortLogicValue();
2600
2601 state._fsp--;
2602
2603
2604 if (current==null) {
2605 current = createModelElementForParent(grammarAccess.getAssertionRule());
2606 }
2607 set(
2608 current,
2609 "value",
2610 lv_value_8_0,
2611 "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
2612 afterParserOrEnumRuleCall();
2613
2614
2615 }
2616
2617
2618 }
2619 break;
2620
2621 }
2622
2623 // InternalProblem.g:1029:5: ( ( ruleQualifiedName ) )
2624 // InternalProblem.g:1030:6: ( ruleQualifiedName )
2625 {
2626 // InternalProblem.g:1030:6: ( ruleQualifiedName )
2627 // InternalProblem.g:1031:7: ruleQualifiedName
2628 {
2629
2630 if (current==null) {
2631 current = createModelElement(grammarAccess.getAssertionRule());
2632 }
2633
2634
2635 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
2636
2637 pushFollow(FOLLOW_17);
2638 ruleQualifiedName();
2639
2640 state._fsp--;
2641
2642
2643 afterParserOrEnumRuleCall();
2644
2645
2646 }
2647
2648
2649 }
2650
2651 otherlv_10=(Token)match(input,23,FOLLOW_18);
2652
2653 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
2654
2655 // InternalProblem.g:1049:5: ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )?
2656 int alt26=2;
2657 int LA26_0 = input.LA(1);
2658
2659 if ( (LA26_0==RULE_ID) ) {
2660 alt26=1;
2661 }
2662 switch (alt26) {
2663 case 1 :
2664 // InternalProblem.g:1050:6: ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
2665 {
2666 // InternalProblem.g:1050:6: ( ( ruleQualifiedName ) )
2667 // InternalProblem.g:1051:7: ( ruleQualifiedName )
2668 {
2669 // InternalProblem.g:1051:7: ( ruleQualifiedName )
2670 // InternalProblem.g:1052:8: ruleQualifiedName
2671 {
2672
2673 if (current==null) {
2674 current = createModelElement(grammarAccess.getAssertionRule());
2675 }
2676
2677
2678 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
2679
2680 pushFollow(FOLLOW_19);
2681 ruleQualifiedName();
2682
2683 state._fsp--;
2684
2685
2686 afterParserOrEnumRuleCall();
2687
2688
2689 }
2690
2691
2692 }
2693
2694 // InternalProblem.g:1066:6: (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
2695 loop25:
2696 do {
2697 int alt25=2;
2698 int LA25_0 = input.LA(1);
2699
2700 if ( (LA25_0==15) ) {
2701 alt25=1;
2702 }
2703
2704
2705 switch (alt25) {
2706 case 1 :
2707 // InternalProblem.g:1067:7: otherlv_12= ',' ( ( ruleQualifiedName ) )
2708 {
2709 otherlv_12=(Token)match(input,15,FOLLOW_5);
2710
2711 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
2712
2713 // InternalProblem.g:1071:7: ( ( ruleQualifiedName ) )
2714 // InternalProblem.g:1072:8: ( ruleQualifiedName )
2715 {
2716 // InternalProblem.g:1072:8: ( ruleQualifiedName )
2717 // InternalProblem.g:1073:9: ruleQualifiedName
2718 {
2719
2720 if (current==null) {
2721 current = createModelElement(grammarAccess.getAssertionRule());
2722 }
2723
2724
2725 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
2726
2727 pushFollow(FOLLOW_19);
2728 ruleQualifiedName();
2729
2730 state._fsp--;
2731
2732
2733 afterParserOrEnumRuleCall();
2734
2735
2736 }
2737
2738
2739 }
2740
2741
2742 }
2743 break;
2744
2745 default :
2746 break loop25;
2747 }
2748 } while (true);
2749
2750
2751 }
2752 break;
2753
2754 }
2755
2756 otherlv_14=(Token)match(input,24,FOLLOW_27);
2757
2758 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
2759
2760
2761 }
2762
2763
2764 }
2765 break;
2766
2767 }
2768
2769 otherlv_15=(Token)match(input,17,FOLLOW_2);
2770
2771 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
2772
2773
2774 }
2775
2776
2777 }
2778
2779
2780 leaveRule();
2781
2782 }
2783
2784 catch (RecognitionException re) {
2785 recover(input,re);
2786 appendSkippedTokens();
2787 }
2788 finally {
2789 }
2790 return current;
2791 }
2792 // $ANTLR end "ruleAssertion"
2793
2794
2795 // $ANTLR start "entryRuleScopeDeclaration"
2796 // InternalProblem.g:1103:1: entryRuleScopeDeclaration returns [EObject current=null] : iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ;
2797 public final EObject entryRuleScopeDeclaration() throws RecognitionException {
2798 EObject current = null;
2799
2800 EObject iv_ruleScopeDeclaration = null;
2801
2802
2803 try {
2804 // InternalProblem.g:1103:57: (iv_ruleScopeDeclaration= ruleScopeDeclaration EOF )
2805 // InternalProblem.g:1104:2: iv_ruleScopeDeclaration= ruleScopeDeclaration EOF
2806 {
2807 newCompositeNode(grammarAccess.getScopeDeclarationRule());
2808 pushFollow(FOLLOW_1);
2809 iv_ruleScopeDeclaration=ruleScopeDeclaration();
2810
2811 state._fsp--;
2812
2813 current =iv_ruleScopeDeclaration;
2814 match(input,EOF,FOLLOW_2);
2815
2816 }
2817
2818 }
2819
2820 catch (RecognitionException re) {
2821 recover(input,re);
2822 appendSkippedTokens();
2823 }
2824 finally {
2825 }
2826 return current;
2827 }
2828 // $ANTLR end "entryRuleScopeDeclaration"
2829
2830
2831 // $ANTLR start "ruleScopeDeclaration"
2832 // InternalProblem.g:1110:1: ruleScopeDeclaration returns [EObject current=null] : (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) ;
2833 public final EObject ruleScopeDeclaration() throws RecognitionException {
2834 EObject current = null;
2835
2836 Token otherlv_0=null;
2837 Token otherlv_2=null;
2838 Token otherlv_4=null;
2839 EObject lv_typeScopes_1_0 = null;
2840
2841 EObject lv_typeScopes_3_0 = null;
2842
2843
2844
2845 enterRule();
2846
2847 try {
2848 // InternalProblem.g:1116:2: ( (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) )
2849 // InternalProblem.g:1117:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
2850 {
2851 // InternalProblem.g:1117:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
2852 // InternalProblem.g:1118:3: otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.'
2853 {
2854 otherlv_0=(Token)match(input,30,FOLLOW_5);
2855
2856 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
2857
2858 // InternalProblem.g:1122:3: ( (lv_typeScopes_1_0= ruleTypeScope ) )
2859 // InternalProblem.g:1123:4: (lv_typeScopes_1_0= ruleTypeScope )
2860 {
2861 // InternalProblem.g:1123:4: (lv_typeScopes_1_0= ruleTypeScope )
2862 // InternalProblem.g:1124:5: lv_typeScopes_1_0= ruleTypeScope
2863 {
2864
2865 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
2866
2867 pushFollow(FOLLOW_8);
2868 lv_typeScopes_1_0=ruleTypeScope();
2869
2870 state._fsp--;
2871
2872
2873 if (current==null) {
2874 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
2875 }
2876 add(
2877 current,
2878 "typeScopes",
2879 lv_typeScopes_1_0,
2880 "org.eclipse.viatra.solver.language.Problem.TypeScope");
2881 afterParserOrEnumRuleCall();
2882
2883
2884 }
2885
2886
2887 }
2888
2889 // InternalProblem.g:1141:3: (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )*
2890 loop28:
2891 do {
2892 int alt28=2;
2893 int LA28_0 = input.LA(1);
2894
2895 if ( (LA28_0==15) ) {
2896 alt28=1;
2897 }
2898
2899
2900 switch (alt28) {
2901 case 1 :
2902 // InternalProblem.g:1142:4: otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) )
2903 {
2904 otherlv_2=(Token)match(input,15,FOLLOW_5);
2905
2906 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
2907
2908 // InternalProblem.g:1146:4: ( (lv_typeScopes_3_0= ruleTypeScope ) )
2909 // InternalProblem.g:1147:5: (lv_typeScopes_3_0= ruleTypeScope )
2910 {
2911 // InternalProblem.g:1147:5: (lv_typeScopes_3_0= ruleTypeScope )
2912 // InternalProblem.g:1148:6: lv_typeScopes_3_0= ruleTypeScope
2913 {
2914
2915 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
2916
2917 pushFollow(FOLLOW_8);
2918 lv_typeScopes_3_0=ruleTypeScope();
2919
2920 state._fsp--;
2921
2922
2923 if (current==null) {
2924 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
2925 }
2926 add(
2927 current,
2928 "typeScopes",
2929 lv_typeScopes_3_0,
2930 "org.eclipse.viatra.solver.language.Problem.TypeScope");
2931 afterParserOrEnumRuleCall();
2932
2933
2934 }
2935
2936
2937 }
2938
2939
2940 }
2941 break;
2942
2943 default :
2944 break loop28;
2945 }
2946 } while (true);
2947
2948 otherlv_4=(Token)match(input,17,FOLLOW_2);
2949
2950 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
2951
2952
2953 }
2954
2955
2956 }
2957
2958
2959 leaveRule();
2960
2961 }
2962
2963 catch (RecognitionException re) {
2964 recover(input,re);
2965 appendSkippedTokens();
2966 }
2967 finally {
2968 }
2969 return current;
2970 }
2971 // $ANTLR end "ruleScopeDeclaration"
2972
2973
2974 // $ANTLR start "entryRuleTypeScope"
2975 // InternalProblem.g:1174:1: entryRuleTypeScope returns [EObject current=null] : iv_ruleTypeScope= ruleTypeScope EOF ;
2976 public final EObject entryRuleTypeScope() throws RecognitionException {
2977 EObject current = null;
2978
2979 EObject iv_ruleTypeScope = null;
2980
2981
2982 try {
2983 // InternalProblem.g:1174:50: (iv_ruleTypeScope= ruleTypeScope EOF )
2984 // InternalProblem.g:1175:2: iv_ruleTypeScope= ruleTypeScope EOF
2985 {
2986 newCompositeNode(grammarAccess.getTypeScopeRule());
2987 pushFollow(FOLLOW_1);
2988 iv_ruleTypeScope=ruleTypeScope();
2989
2990 state._fsp--;
2991
2992 current =iv_ruleTypeScope;
2993 match(input,EOF,FOLLOW_2);
2994
2995 }
2996
2997 }
2998
2999 catch (RecognitionException re) {
3000 recover(input,re);
3001 appendSkippedTokens();
3002 }
3003 finally {
3004 }
3005 return current;
3006 }
3007 // $ANTLR end "entryRuleTypeScope"
3008
3009
3010 // $ANTLR start "ruleTypeScope"
3011 // InternalProblem.g:1181:1: ruleTypeScope returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) ) ) ;
3012 public final EObject ruleTypeScope() throws RecognitionException {
3013 EObject current = null;
3014
3015 Token otherlv_0=null;
3016 Token lv_increment_1_0=null;
3017 Token otherlv_2=null;
3018 EObject lv_multiplicity_3_0 = null;
3019
3020
3021
3022 enterRule();
3023
3024 try {
3025 // InternalProblem.g:1187:2: ( ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) ) ) )
3026 // InternalProblem.g:1188:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) ) )
3027 {
3028 // InternalProblem.g:1188:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) ) )
3029 // InternalProblem.g:1189:3: ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleMultiplicity ) )
3030 {
3031 // InternalProblem.g:1189:3: ( (otherlv_0= RULE_ID ) )
3032 // InternalProblem.g:1190:4: (otherlv_0= RULE_ID )
3033 {
3034 // InternalProblem.g:1190:4: (otherlv_0= RULE_ID )
3035 // InternalProblem.g:1191:5: otherlv_0= RULE_ID
3036 {
3037
3038 if (current==null) {
3039 current = createModelElement(grammarAccess.getTypeScopeRule());
3040 }
3041
3042 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_28);
3043
3044 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
3045
3046
3047 }
3048
3049
3050 }
3051
3052 // InternalProblem.g:1202:3: ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' )
3053 int alt29=2;
3054 int LA29_0 = input.LA(1);
3055
3056 if ( (LA29_0==31) ) {
3057 alt29=1;
3058 }
3059 else if ( (LA29_0==32) ) {
3060 alt29=2;
3061 }
3062 else {
3063 NoViableAltException nvae =
3064 new NoViableAltException("", 29, 0, input);
3065
3066 throw nvae;
3067 }
3068 switch (alt29) {
3069 case 1 :
3070 // InternalProblem.g:1203:4: ( (lv_increment_1_0= '+=' ) )
3071 {
3072 // InternalProblem.g:1203:4: ( (lv_increment_1_0= '+=' ) )
3073 // InternalProblem.g:1204:5: (lv_increment_1_0= '+=' )
3074 {
3075 // InternalProblem.g:1204:5: (lv_increment_1_0= '+=' )
3076 // InternalProblem.g:1205:6: lv_increment_1_0= '+='
3077 {
3078 lv_increment_1_0=(Token)match(input,31,FOLLOW_13);
3079
3080 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
3081
3082
3083 if (current==null) {
3084 current = createModelElement(grammarAccess.getTypeScopeRule());
3085 }
3086 setWithLastConsumed(current, "increment", lv_increment_1_0 != null, "+=");
3087
3088
3089 }
3090
3091
3092 }
3093
3094
3095 }
3096 break;
3097 case 2 :
3098 // InternalProblem.g:1218:4: otherlv_2= '='
3099 {
3100 otherlv_2=(Token)match(input,32,FOLLOW_13);
3101
3102 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
3103
3104
3105 }
3106 break;
3107
3108 }
3109
3110 // InternalProblem.g:1223:3: ( (lv_multiplicity_3_0= ruleMultiplicity ) )
3111 // InternalProblem.g:1224:4: (lv_multiplicity_3_0= ruleMultiplicity )
3112 {
3113 // InternalProblem.g:1224:4: (lv_multiplicity_3_0= ruleMultiplicity )
3114 // InternalProblem.g:1225:5: lv_multiplicity_3_0= ruleMultiplicity
3115 {
3116
3117 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityMultiplicityParserRuleCall_2_0());
3118
3119 pushFollow(FOLLOW_2);
3120 lv_multiplicity_3_0=ruleMultiplicity();
3121
3122 state._fsp--;
3123
3124
3125 if (current==null) {
3126 current = createModelElementForParent(grammarAccess.getTypeScopeRule());
3127 }
3128 set(
3129 current,
3130 "multiplicity",
3131 lv_multiplicity_3_0,
3132 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
3133 afterParserOrEnumRuleCall();
3134
3135
3136 }
3137
3138
3139 }
3140
3141
3142 }
3143
3144
3145 }
3146
3147
3148 leaveRule();
3149
3150 }
3151
3152 catch (RecognitionException re) {
3153 recover(input,re);
3154 appendSkippedTokens();
3155 }
3156 finally {
3157 }
3158 return current;
3159 }
3160 // $ANTLR end "ruleTypeScope"
3161
3162
3163 // $ANTLR start "entryRuleMultiplicity"
3164 // InternalProblem.g:1246:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ;
3165 public final EObject entryRuleMultiplicity() throws RecognitionException {
3166 EObject current = null;
3167
3168 EObject iv_ruleMultiplicity = null;
3169
3170
3171 try {
3172 // InternalProblem.g:1246:53: (iv_ruleMultiplicity= ruleMultiplicity EOF )
3173 // InternalProblem.g:1247:2: iv_ruleMultiplicity= ruleMultiplicity EOF
3174 {
3175 newCompositeNode(grammarAccess.getMultiplicityRule());
3176 pushFollow(FOLLOW_1);
3177 iv_ruleMultiplicity=ruleMultiplicity();
3178
3179 state._fsp--;
3180
3181 current =iv_ruleMultiplicity;
3182 match(input,EOF,FOLLOW_2);
3183
3184 }
3185
3186 }
3187
3188 catch (RecognitionException re) {
3189 recover(input,re);
3190 appendSkippedTokens();
3191 }
3192 finally {
3193 }
3194 return current;
3195 }
3196 // $ANTLR end "entryRuleMultiplicity"
3197
3198
3199 // $ANTLR start "ruleMultiplicity"
3200 // InternalProblem.g:1253:1: ruleMultiplicity returns [EObject current=null] : (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) ;
3201 public final EObject ruleMultiplicity() throws RecognitionException {
3202 EObject current = null;
3203
3204 EObject this_RangeMultiplicity_0 = null;
3205
3206 EObject this_ExactMultiplicity_1 = null;
3207
3208
3209
3210 enterRule();
3211
3212 try {
3213 // InternalProblem.g:1259:2: ( (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) )
3214 // InternalProblem.g:1260:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
3215 {
3216 // InternalProblem.g:1260:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
3217 int alt30=2;
3218 int LA30_0 = input.LA(1);
3219
3220 if ( (LA30_0==RULE_INT) ) {
3221 int LA30_1 = input.LA(2);
3222
3223 if ( (LA30_1==33) ) {
3224 alt30=1;
3225 }
3226 else if ( (LA30_1==EOF||(LA30_1>=15 && LA30_1<=17)) ) {
3227 alt30=2;
3228 }
3229 else {
3230 NoViableAltException nvae =
3231 new NoViableAltException("", 30, 1, input);
3232
3233 throw nvae;
3234 }
3235 }
3236 else {
3237 NoViableAltException nvae =
3238 new NoViableAltException("", 30, 0, input);
3239
3240 throw nvae;
3241 }
3242 switch (alt30) {
3243 case 1 :
3244 // InternalProblem.g:1261:3: this_RangeMultiplicity_0= ruleRangeMultiplicity
3245 {
3246
3247 newCompositeNode(grammarAccess.getMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
3248
3249 pushFollow(FOLLOW_2);
3250 this_RangeMultiplicity_0=ruleRangeMultiplicity();
3251
3252 state._fsp--;
3253
3254
3255 current = this_RangeMultiplicity_0;
3256 afterParserOrEnumRuleCall();
3257
3258
3259 }
3260 break;
3261 case 2 :
3262 // InternalProblem.g:1270:3: this_ExactMultiplicity_1= ruleExactMultiplicity
3263 {
3264
3265 newCompositeNode(grammarAccess.getMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
3266
3267 pushFollow(FOLLOW_2);
3268 this_ExactMultiplicity_1=ruleExactMultiplicity();
3269
3270 state._fsp--;
3271
3272
3273 current = this_ExactMultiplicity_1;
3274 afterParserOrEnumRuleCall();
3275
3276
3277 }
3278 break;
3279
3280 }
3281
3282
3283 }
3284
3285
3286 leaveRule();
3287
3288 }
3289
3290 catch (RecognitionException re) {
3291 recover(input,re);
3292 appendSkippedTokens();
3293 }
3294 finally {
3295 }
3296 return current;
3297 }
3298 // $ANTLR end "ruleMultiplicity"
3299
3300
3301 // $ANTLR start "entryRuleRangeMultiplicity"
3302 // InternalProblem.g:1282:1: entryRuleRangeMultiplicity returns [EObject current=null] : iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF ;
3303 public final EObject entryRuleRangeMultiplicity() throws RecognitionException {
3304 EObject current = null;
3305
3306 EObject iv_ruleRangeMultiplicity = null;
3307
3308
3309 try {
3310 // InternalProblem.g:1282:58: (iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF )
3311 // InternalProblem.g:1283:2: iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF
3312 {
3313 newCompositeNode(grammarAccess.getRangeMultiplicityRule());
3314 pushFollow(FOLLOW_1);
3315 iv_ruleRangeMultiplicity=ruleRangeMultiplicity();
3316
3317 state._fsp--;
3318
3319 current =iv_ruleRangeMultiplicity;
3320 match(input,EOF,FOLLOW_2);
3321
3322 }
3323
3324 }
3325
3326 catch (RecognitionException re) {
3327 recover(input,re);
3328 appendSkippedTokens();
3329 }
3330 finally {
3331 }
3332 return current;
3333 }
3334 // $ANTLR end "entryRuleRangeMultiplicity"
3335
3336
3337 // $ANTLR start "ruleRangeMultiplicity"
3338 // InternalProblem.g:1289:1: ruleRangeMultiplicity returns [EObject current=null] : ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) ;
3339 public final EObject ruleRangeMultiplicity() throws RecognitionException {
3340 EObject current = null;
3341
3342 Token lv_lowerBound_0_0=null;
3343 Token otherlv_1=null;
3344 AntlrDatatypeRuleToken lv_upperBound_2_0 = null;
3345
3346
3347
3348 enterRule();
3349
3350 try {
3351 // InternalProblem.g:1295:2: ( ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) )
3352 // InternalProblem.g:1296:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
3353 {
3354 // InternalProblem.g:1296:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
3355 // InternalProblem.g:1297:3: ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) )
3356 {
3357 // InternalProblem.g:1297:3: ( (lv_lowerBound_0_0= RULE_INT ) )
3358 // InternalProblem.g:1298:4: (lv_lowerBound_0_0= RULE_INT )
3359 {
3360 // InternalProblem.g:1298:4: (lv_lowerBound_0_0= RULE_INT )
3361 // InternalProblem.g:1299:5: lv_lowerBound_0_0= RULE_INT
3362 {
3363 lv_lowerBound_0_0=(Token)match(input,RULE_INT,FOLLOW_29);
3364
3365 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
3366
3367
3368 if (current==null) {
3369 current = createModelElement(grammarAccess.getRangeMultiplicityRule());
3370 }
3371 setWithLastConsumed(
3372 current,
3373 "lowerBound",
3374 lv_lowerBound_0_0,
3375 "org.eclipse.xtext.common.Terminals.INT");
3376
3377
3378 }
3379
3380
3381 }
3382
3383 otherlv_1=(Token)match(input,33,FOLLOW_30);
3384
3385 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
3386
3387 // InternalProblem.g:1319:3: ( (lv_upperBound_2_0= ruleUpperBound ) )
3388 // InternalProblem.g:1320:4: (lv_upperBound_2_0= ruleUpperBound )
3389 {
3390 // InternalProblem.g:1320:4: (lv_upperBound_2_0= ruleUpperBound )
3391 // InternalProblem.g:1321:5: lv_upperBound_2_0= ruleUpperBound
3392 {
3393
3394 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
3395
3396 pushFollow(FOLLOW_2);
3397 lv_upperBound_2_0=ruleUpperBound();
3398
3399 state._fsp--;
3400
3401
3402 if (current==null) {
3403 current = createModelElementForParent(grammarAccess.getRangeMultiplicityRule());
3404 }
3405 set(
3406 current,
3407 "upperBound",
3408 lv_upperBound_2_0,
3409 "org.eclipse.viatra.solver.language.Problem.UpperBound");
3410 afterParserOrEnumRuleCall();
3411
3412
3413 }
3414
3415
3416 }
3417
3418
3419 }
3420
3421
3422 }
3423
3424
3425 leaveRule();
3426
3427 }
3428
3429 catch (RecognitionException re) {
3430 recover(input,re);
3431 appendSkippedTokens();
3432 }
3433 finally {
3434 }
3435 return current;
3436 }
3437 // $ANTLR end "ruleRangeMultiplicity"
3438
3439
3440 // $ANTLR start "entryRuleExactMultiplicity"
3441 // InternalProblem.g:1342:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ;
3442 public final EObject entryRuleExactMultiplicity() throws RecognitionException {
3443 EObject current = null;
3444
3445 EObject iv_ruleExactMultiplicity = null;
3446
3447
3448 try {
3449 // InternalProblem.g:1342:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF )
3450 // InternalProblem.g:1343:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF
3451 {
3452 newCompositeNode(grammarAccess.getExactMultiplicityRule());
3453 pushFollow(FOLLOW_1);
3454 iv_ruleExactMultiplicity=ruleExactMultiplicity();
3455
3456 state._fsp--;
3457
3458 current =iv_ruleExactMultiplicity;
3459 match(input,EOF,FOLLOW_2);
3460
3461 }
3462
3463 }
3464
3465 catch (RecognitionException re) {
3466 recover(input,re);
3467 appendSkippedTokens();
3468 }
3469 finally {
3470 }
3471 return current;
3472 }
3473 // $ANTLR end "entryRuleExactMultiplicity"
3474
3475
3476 // $ANTLR start "ruleExactMultiplicity"
3477 // InternalProblem.g:1349:1: ruleExactMultiplicity returns [EObject current=null] : ( (lv_exactValue_0_0= RULE_INT ) ) ;
3478 public final EObject ruleExactMultiplicity() throws RecognitionException {
3479 EObject current = null;
3480
3481 Token lv_exactValue_0_0=null;
3482
3483
3484 enterRule();
3485
3486 try {
3487 // InternalProblem.g:1355:2: ( ( (lv_exactValue_0_0= RULE_INT ) ) )
3488 // InternalProblem.g:1356:2: ( (lv_exactValue_0_0= RULE_INT ) )
3489 {
3490 // InternalProblem.g:1356:2: ( (lv_exactValue_0_0= RULE_INT ) )
3491 // InternalProblem.g:1357:3: (lv_exactValue_0_0= RULE_INT )
3492 {
3493 // InternalProblem.g:1357:3: (lv_exactValue_0_0= RULE_INT )
3494 // InternalProblem.g:1358:4: lv_exactValue_0_0= RULE_INT
3495 {
3496 lv_exactValue_0_0=(Token)match(input,RULE_INT,FOLLOW_2);
3497
3498 newLeafNode(lv_exactValue_0_0, grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
3499
3500
3501 if (current==null) {
3502 current = createModelElement(grammarAccess.getExactMultiplicityRule());
3503 }
3504 setWithLastConsumed(
3505 current,
3506 "exactValue",
3507 lv_exactValue_0_0,
3508 "org.eclipse.xtext.common.Terminals.INT");
3509
3510
3511 }
3512
3513
3514 }
3515
3516
3517 }
3518
3519
3520 leaveRule();
3521
3522 }
3523
3524 catch (RecognitionException re) {
3525 recover(input,re);
3526 appendSkippedTokens();
3527 }
3528 finally {
3529 }
3530 return current;
3531 }
3532 // $ANTLR end "ruleExactMultiplicity"
3533
3534
3535 // $ANTLR start "entryRuleUpperBound"
3536 // InternalProblem.g:1377:1: entryRuleUpperBound returns [String current=null] : iv_ruleUpperBound= ruleUpperBound EOF ;
3537 public final String entryRuleUpperBound() throws RecognitionException {
3538 String current = null;
3539
3540 AntlrDatatypeRuleToken iv_ruleUpperBound = null;
3541
3542
3543 try {
3544 // InternalProblem.g:1377:50: (iv_ruleUpperBound= ruleUpperBound EOF )
3545 // InternalProblem.g:1378:2: iv_ruleUpperBound= ruleUpperBound EOF
3546 {
3547 newCompositeNode(grammarAccess.getUpperBoundRule());
3548 pushFollow(FOLLOW_1);
3549 iv_ruleUpperBound=ruleUpperBound();
3550
3551 state._fsp--;
3552
3553 current =iv_ruleUpperBound.getText();
3554 match(input,EOF,FOLLOW_2);
3555
3556 }
3557
3558 }
3559
3560 catch (RecognitionException re) {
3561 recover(input,re);
3562 appendSkippedTokens();
3563 }
3564 finally {
3565 }
3566 return current;
3567 }
3568 // $ANTLR end "entryRuleUpperBound"
3569
3570
3571 // $ANTLR start "ruleUpperBound"
3572 // InternalProblem.g:1384:1: ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ;
3573 public final AntlrDatatypeRuleToken ruleUpperBound() throws RecognitionException {
3574 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
3575
3576 Token this_INT_0=null;
3577 Token kw=null;
3578
3579
3580 enterRule();
3581
3582 try {
3583 // InternalProblem.g:1390:2: ( (this_INT_0= RULE_INT | kw= '*' ) )
3584 // InternalProblem.g:1391:2: (this_INT_0= RULE_INT | kw= '*' )
3585 {
3586 // InternalProblem.g:1391:2: (this_INT_0= RULE_INT | kw= '*' )
3587 int alt31=2;
3588 int LA31_0 = input.LA(1);
3589
3590 if ( (LA31_0==RULE_INT) ) {
3591 alt31=1;
3592 }
3593 else if ( (LA31_0==34) ) {
3594 alt31=2;
3595 }
3596 else {
3597 NoViableAltException nvae =
3598 new NoViableAltException("", 31, 0, input);
3599
3600 throw nvae;
3601 }
3602 switch (alt31) {
3603 case 1 :
3604 // InternalProblem.g:1392:3: this_INT_0= RULE_INT
3605 {
3606 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2);
3607
3608 current.merge(this_INT_0);
3609
3610
3611 newLeafNode(this_INT_0, grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
3612
3613
3614 }
3615 break;
3616 case 2 :
3617 // InternalProblem.g:1400:3: kw= '*'
3618 {
3619 kw=(Token)match(input,34,FOLLOW_2);
3620
3621 current.merge(kw);
3622 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
3623
3624
3625 }
3626 break;
3627
3628 }
3629
3630
3631 }
3632
3633
3634 leaveRule();
3635
3636 }
3637
3638 catch (RecognitionException re) {
3639 recover(input,re);
3640 appendSkippedTokens();
3641 }
3642 finally {
3643 }
3644 return current;
3645 }
3646 // $ANTLR end "ruleUpperBound"
3647
3648
3649 // $ANTLR start "entryRuleQualifiedName"
3650 // InternalProblem.g:1409:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
3651 public final String entryRuleQualifiedName() throws RecognitionException {
3652 String current = null;
3653
3654 AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
3655
3656
3657 try {
3658 // InternalProblem.g:1409:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
3659 // InternalProblem.g:1410:2: iv_ruleQualifiedName= ruleQualifiedName EOF
3660 {
3661 newCompositeNode(grammarAccess.getQualifiedNameRule());
3662 pushFollow(FOLLOW_1);
3663 iv_ruleQualifiedName=ruleQualifiedName();
3664
3665 state._fsp--;
3666
3667 current =iv_ruleQualifiedName.getText();
3668 match(input,EOF,FOLLOW_2);
3669
3670 }
3671
3672 }
3673
3674 catch (RecognitionException re) {
3675 recover(input,re);
3676 appendSkippedTokens();
3677 }
3678 finally {
3679 }
3680 return current;
3681 }
3682 // $ANTLR end "entryRuleQualifiedName"
3683
3684
3685 // $ANTLR start "ruleQualifiedName"
3686 // InternalProblem.g:1416:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )* ) ;
3687 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
3688 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
3689
3690 Token this_ID_0=null;
3691 Token kw=null;
3692 Token this_ID_2=null;
3693
3694
3695 enterRule();
3696
3697 try {
3698 // InternalProblem.g:1422:2: ( (this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )* ) )
3699 // InternalProblem.g:1423:2: (this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )* )
3700 {
3701 // InternalProblem.g:1423:2: (this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )* )
3702 // InternalProblem.g:1424:3: this_ID_0= RULE_ID (kw= '::' this_ID_2= RULE_ID )*
3703 {
3704 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_31);
3705
3706 current.merge(this_ID_0);
3707
3708
3709 newLeafNode(this_ID_0, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0());
3710
3711 // InternalProblem.g:1431:3: (kw= '::' this_ID_2= RULE_ID )*
3712 loop32:
3713 do {
3714 int alt32=2;
3715 int LA32_0 = input.LA(1);
3716
3717 if ( (LA32_0==35) ) {
3718 alt32=1;
3719 }
3720
3721
3722 switch (alt32) {
3723 case 1 :
3724 // InternalProblem.g:1432:4: kw= '::' this_ID_2= RULE_ID
3725 {
3726 kw=(Token)match(input,35,FOLLOW_5);
3727
3728 current.merge(kw);
3729 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_0());
3730
3731 this_ID_2=(Token)match(input,RULE_ID,FOLLOW_31);
3732
3733 current.merge(this_ID_2);
3734
3735
3736 newLeafNode(this_ID_2, grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1());
3737
3738
3739 }
3740 break;
3741
3742 default :
3743 break loop32;
3744 }
3745 } while (true);
3746
3747
3748 }
3749
3750
3751 }
3752
3753
3754 leaveRule();
3755
3756 }
3757
3758 catch (RecognitionException re) {
3759 recover(input,re);
3760 appendSkippedTokens();
3761 }
3762 finally {
3763 }
3764 return current;
3765 }
3766 // $ANTLR end "ruleQualifiedName"
3767
3768
3769 // $ANTLR start "ruleLogicValue"
3770 // InternalProblem.g:1449:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ;
3771 public final Enumerator ruleLogicValue() throws RecognitionException {
3772 Enumerator current = null;
3773
3774 Token enumLiteral_0=null;
3775 Token enumLiteral_1=null;
3776 Token enumLiteral_2=null;
3777
3778
3779 enterRule();
3780
3781 try {
3782 // InternalProblem.g:1455:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) )
3783 // InternalProblem.g:1456:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
3784 {
3785 // InternalProblem.g:1456:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
3786 int alt33=3;
3787 switch ( input.LA(1) ) {
3788 case 36:
3789 {
3790 alt33=1;
3791 }
3792 break;
3793 case 37:
3794 {
3795 alt33=2;
3796 }
3797 break;
3798 case 38:
3799 {
3800 alt33=3;
3801 }
3802 break;
3803 default:
3804 NoViableAltException nvae =
3805 new NoViableAltException("", 33, 0, input);
3806
3807 throw nvae;
3808 }
3809
3810 switch (alt33) {
3811 case 1 :
3812 // InternalProblem.g:1457:3: (enumLiteral_0= 'true' )
3813 {
3814 // InternalProblem.g:1457:3: (enumLiteral_0= 'true' )
3815 // InternalProblem.g:1458:4: enumLiteral_0= 'true'
3816 {
3817 enumLiteral_0=(Token)match(input,36,FOLLOW_2);
3818
3819 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3820 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
3821
3822
3823 }
3824
3825
3826 }
3827 break;
3828 case 2 :
3829 // InternalProblem.g:1465:3: (enumLiteral_1= 'false' )
3830 {
3831 // InternalProblem.g:1465:3: (enumLiteral_1= 'false' )
3832 // InternalProblem.g:1466:4: enumLiteral_1= 'false'
3833 {
3834 enumLiteral_1=(Token)match(input,37,FOLLOW_2);
3835
3836 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3837 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
3838
3839
3840 }
3841
3842
3843 }
3844 break;
3845 case 3 :
3846 // InternalProblem.g:1473:3: (enumLiteral_2= 'unknown' )
3847 {
3848 // InternalProblem.g:1473:3: (enumLiteral_2= 'unknown' )
3849 // InternalProblem.g:1474:4: enumLiteral_2= 'unknown'
3850 {
3851 enumLiteral_2=(Token)match(input,38,FOLLOW_2);
3852
3853 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
3854 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
3855
3856
3857 }
3858
3859
3860 }
3861 break;
3862
3863 }
3864
3865
3866 }
3867
3868
3869 leaveRule();
3870
3871 }
3872
3873 catch (RecognitionException re) {
3874 recover(input,re);
3875 appendSkippedTokens();
3876 }
3877 finally {
3878 }
3879 return current;
3880 }
3881 // $ANTLR end "ruleLogicValue"
3882
3883
3884 // $ANTLR start "ruleShortLogicValue"
3885 // InternalProblem.g:1484:1: ruleShortLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ;
3886 public final Enumerator ruleShortLogicValue() throws RecognitionException {
3887 Enumerator current = null;
3888
3889 Token enumLiteral_0=null;
3890 Token enumLiteral_1=null;
3891
3892
3893 enterRule();
3894
3895 try {
3896 // InternalProblem.g:1490:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) )
3897 // InternalProblem.g:1491:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
3898 {
3899 // InternalProblem.g:1491:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
3900 int alt34=2;
3901 int LA34_0 = input.LA(1);
3902
3903 if ( (LA34_0==27) ) {
3904 alt34=1;
3905 }
3906 else if ( (LA34_0==39) ) {
3907 alt34=2;
3908 }
3909 else {
3910 NoViableAltException nvae =
3911 new NoViableAltException("", 34, 0, input);
3912
3913 throw nvae;
3914 }
3915 switch (alt34) {
3916 case 1 :
3917 // InternalProblem.g:1492:3: (enumLiteral_0= '!' )
3918 {
3919 // InternalProblem.g:1492:3: (enumLiteral_0= '!' )
3920 // InternalProblem.g:1493:4: enumLiteral_0= '!'
3921 {
3922 enumLiteral_0=(Token)match(input,27,FOLLOW_2);
3923
3924 current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
3925 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
3926
3927
3928 }
3929
3930
3931 }
3932 break;
3933 case 2 :
3934 // InternalProblem.g:1500:3: (enumLiteral_1= '?' )
3935 {
3936 // InternalProblem.g:1500:3: (enumLiteral_1= '?' )
3937 // InternalProblem.g:1501:4: enumLiteral_1= '?'
3938 {
3939 enumLiteral_1=(Token)match(input,39,FOLLOW_2);
3940
3941 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
3942 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
3943
3944
3945 }
3946
3947
3948 }
3949 break;
3950
3951 }
3952
3953
3954 }
3955
3956
3957 leaveRule();
3958
3959 }
3960
3961 catch (RecognitionException re) {
3962 recover(input,re);
3963 appendSkippedTokens();
3964 }
3965 finally {
3966 }
3967 return current;
3968 }
3969 // $ANTLR end "ruleShortLogicValue"
3970
3971 // Delegated rules
3972
3973
3974 protected DFA27 dfa27 = new DFA27(this);
3975 static final String dfa_1s = "\17\uffff";
3976 static final String dfa_2s = "\1\4\1\27\1\uffff\2\4\1\27\1\17\1\21\2\4\1\uffff\2\17\1\4\1\17";
3977 static final String dfa_3s = "\1\47\1\43\1\uffff\1\4\1\30\2\43\1\35\2\4\1\uffff\2\43\1\4\1\43";
3978 static final String dfa_4s = "\2\uffff\1\2\7\uffff\1\1\4\uffff";
3979 static final String dfa_5s = "\17\uffff}>";
3980 static final String[] dfa_6s = {
3981 "\1\1\26\uffff\1\2\13\uffff\1\2",
3982 "\1\4\13\uffff\1\3",
3983 "",
3984 "\1\5",
3985 "\1\6\23\uffff\1\7",
3986 "\1\4\13\uffff\1\3",
3987 "\1\11\10\uffff\1\7\12\uffff\1\10",
3988 "\1\2\13\uffff\1\12",
3989 "\1\13",
3990 "\1\14",
3991 "",
3992 "\1\11\10\uffff\1\7\12\uffff\1\10",
3993 "\1\11\10\uffff\1\7\12\uffff\1\15",
3994 "\1\16",
3995 "\1\11\10\uffff\1\7\12\uffff\1\15"
3996 };
3997
3998 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
3999 static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
4000 static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
4001 static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
4002 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
4003 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
4004
4005 class DFA27 extends DFA {
4006
4007 public DFA27(BaseRecognizer recognizer) {
4008 this.recognizer = recognizer;
4009 this.decisionNumber = 27;
4010 this.eot = dfa_1;
4011 this.eof = dfa_1;
4012 this.min = dfa_2;
4013 this.max = dfa_3;
4014 this.accept = dfa_4;
4015 this.special = dfa_5;
4016 this.transition = dfa_6;
4017 }
4018 public String getDescription() {
4019 return "918:3: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' ) )";
4020 }
4021 }
4022
4023
4024 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
4025 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
4026 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000008048601812L});
4027 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000001000L});
4028 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000010L});
4029 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x00000000000EA000L});
4030 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000004010L});
4031 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000028000L});
4032 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000010010L});
4033 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000018000L});
4034 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x00000000000C0000L});
4035 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000004000L});
4036 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000020L});
4037 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000010000L});
4038 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100002L});
4039 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000400010L});
4040 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000800000L});
4041 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000001000010L});
4042 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000001008000L});
4043 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000002020000L});
4044 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000008000010L});
4045 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000004020000L});
4046 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000008002L});
4047 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000010800000L});
4048 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000020000000L});
4049 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000007000000000L});
4050 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000020000L});
4051 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000180000000L});
4052 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000200000000L});
4053 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000400000020L});
4054 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000800000002L});
4055
4056} \ No newline at end of file
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java
new file mode 100644
index 00000000..5b024d47
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java
@@ -0,0 +1,9 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.scoping;
5
6import org.eclipse.xtext.scoping.impl.DelegatingScopeProvider;
7
8public abstract class AbstractProblemScopeProvider extends DelegatingScopeProvider {
9}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
new file mode 100644
index 00000000..a857b997
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
@@ -0,0 +1,296 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.serializer;
5
6import com.google.inject.Inject;
7import java.util.Set;
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.emf.ecore.EPackage;
10import org.eclipse.viatra.solver.language.model.problem.Assertion;
11import org.eclipse.viatra.solver.language.model.problem.Atom;
12import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
13import org.eclipse.viatra.solver.language.model.problem.Conjunction;
14import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity;
15import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
16import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
17import org.eclipse.viatra.solver.language.model.problem.Problem;
18import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
19import org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity;
20import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
21import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration;
22import org.eclipse.viatra.solver.language.model.problem.TypeScope;
23import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
24import org.eclipse.xtext.Action;
25import org.eclipse.xtext.Parameter;
26import org.eclipse.xtext.ParserRule;
27import org.eclipse.xtext.serializer.ISerializationContext;
28import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
29import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
30import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
31
32@SuppressWarnings("all")
33public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequencer {
34
35 @Inject
36 private ProblemGrammarAccess grammarAccess;
37
38 @Override
39 public void sequence(ISerializationContext context, EObject semanticObject) {
40 EPackage epackage = semanticObject.eClass().getEPackage();
41 ParserRule rule = context.getParserRule();
42 Action action = context.getAssignedAction();
43 Set<Parameter> parameters = context.getEnabledBooleanParameters();
44 if (epackage == ProblemPackage.eINSTANCE)
45 switch (semanticObject.eClass().getClassifierID()) {
46 case ProblemPackage.ASSERTION:
47 sequence_Assertion(context, (Assertion) semanticObject);
48 return;
49 case ProblemPackage.ATOM:
50 sequence_Atom(context, (Atom) semanticObject);
51 return;
52 case ProblemPackage.CLASS_DECLARATION:
53 sequence_ClassDeclaration(context, (ClassDeclaration) semanticObject);
54 return;
55 case ProblemPackage.CONJUNCTION:
56 sequence_Conjunction(context, (Conjunction) semanticObject);
57 return;
58 case ProblemPackage.EXACT_MULTIPLICITY:
59 sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject);
60 return;
61 case ProblemPackage.NEGATIVE_LITERAL:
62 sequence_NegativeLiteral(context, (NegativeLiteral) semanticObject);
63 return;
64 case ProblemPackage.PARAMETER:
65 sequence_Parameter(context, (org.eclipse.viatra.solver.language.model.problem.Parameter) semanticObject);
66 return;
67 case ProblemPackage.PREDICATE_DEFINITION:
68 sequence_PredicateDefinition(context, (PredicateDefinition) semanticObject);
69 return;
70 case ProblemPackage.PROBLEM:
71 sequence_Problem(context, (Problem) semanticObject);
72 return;
73 case ProblemPackage.RANGE_MULTIPLICITY:
74 sequence_RangeMultiplicity(context, (RangeMultiplicity) semanticObject);
75 return;
76 case ProblemPackage.REFERENCE_DECLARATION:
77 sequence_ReferenceDeclaration(context, (ReferenceDeclaration) semanticObject);
78 return;
79 case ProblemPackage.SCOPE_DECLARATION:
80 sequence_ScopeDeclaration(context, (ScopeDeclaration) semanticObject);
81 return;
82 case ProblemPackage.TYPE_SCOPE:
83 sequence_TypeScope(context, (TypeScope) semanticObject);
84 return;
85 }
86 if (errorAcceptor != null)
87 errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
88 }
89
90 /**
91 * Contexts:
92 * Statement returns Assertion
93 * Assertion returns Assertion
94 *
95 * Constraint:
96 * (
97 * (relation=[Relation|QualifiedName] (arguments+=[Node|QualifiedName] arguments+=[Node|QualifiedName]*)? value=LogicValue) |
98 * (value=ShortLogicValue? relation=[Relation|QualifiedName] (arguments+=[Node|QualifiedName] arguments+=[Node|QualifiedName]*)?)
99 * )
100 */
101 protected void sequence_Assertion(ISerializationContext context, Assertion semanticObject) {
102 genericSequencer.createSequence(context, semanticObject);
103 }
104
105
106 /**
107 * Contexts:
108 * Literal returns Atom
109 * Atom returns Atom
110 *
111 * Constraint:
112 * (relation=[Relation|QualifiedName] transitiveClosure?='+'? (arguments+=[Variable|ID] arguments+=[Variable|ID]*)?)
113 */
114 protected void sequence_Atom(ISerializationContext context, Atom semanticObject) {
115 genericSequencer.createSequence(context, semanticObject);
116 }
117
118
119 /**
120 * Contexts:
121 * Statement returns ClassDeclaration
122 * ClassDeclaration returns ClassDeclaration
123 *
124 * Constraint:
125 * (
126 * abstract?='abstract'?
127 * name=ID
128 * (
129 * superTypes+=[ClassDeclaration|ID] |
130 * (superTypes+=[ClassDeclaration|ID] superTypes+=[ClassDeclaration|ID]*) |
131 * referenceDeclarations+=ReferenceDeclaration
132 * )?
133 * referenceDeclarations+=ReferenceDeclaration*
134 * )
135 */
136 protected void sequence_ClassDeclaration(ISerializationContext context, ClassDeclaration semanticObject) {
137 genericSequencer.createSequence(context, semanticObject);
138 }
139
140
141 /**
142 * Contexts:
143 * Conjunction returns Conjunction
144 *
145 * Constraint:
146 * (literals+=Literal literals+=Literal*)
147 */
148 protected void sequence_Conjunction(ISerializationContext context, Conjunction semanticObject) {
149 genericSequencer.createSequence(context, semanticObject);
150 }
151
152
153 /**
154 * Contexts:
155 * Multiplicity returns ExactMultiplicity
156 * ExactMultiplicity returns ExactMultiplicity
157 *
158 * Constraint:
159 * exactValue=INT
160 */
161 protected void sequence_ExactMultiplicity(ISerializationContext context, ExactMultiplicity semanticObject) {
162 if (errorAcceptor != null) {
163 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.EXACT_MULTIPLICITY__EXACT_VALUE) == ValueTransient.YES)
164 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.EXACT_MULTIPLICITY__EXACT_VALUE));
165 }
166 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
167 feeder.accept(grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0(), semanticObject.getExactValue());
168 feeder.finish();
169 }
170
171
172 /**
173 * Contexts:
174 * Literal returns NegativeLiteral
175 * NegativeLiteral returns NegativeLiteral
176 *
177 * Constraint:
178 * atom=Atom
179 */
180 protected void sequence_NegativeLiteral(ISerializationContext context, NegativeLiteral semanticObject) {
181 if (errorAcceptor != null) {
182 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NEGATIVE_LITERAL__ATOM) == ValueTransient.YES)
183 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NEGATIVE_LITERAL__ATOM));
184 }
185 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
186 feeder.accept(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0(), semanticObject.getAtom());
187 feeder.finish();
188 }
189
190
191 /**
192 * Contexts:
193 * Parameter returns Parameter
194 *
195 * Constraint:
196 * (parameterType=[ClassDeclaration|ID] name=ID)
197 */
198 protected void sequence_Parameter(ISerializationContext context, org.eclipse.viatra.solver.language.model.problem.Parameter semanticObject) {
199 if (errorAcceptor != null) {
200 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.PARAMETER__PARAMETER_TYPE) == ValueTransient.YES)
201 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.PARAMETER__PARAMETER_TYPE));
202 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME) == ValueTransient.YES)
203 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME));
204 }
205 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
206 feeder.accept(grammarAccess.getParameterAccess().getParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1(), semanticObject.eGet(ProblemPackage.Literals.PARAMETER__PARAMETER_TYPE, false));
207 feeder.accept(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
208 feeder.finish();
209 }
210
211
212 /**
213 * Contexts:
214 * Statement returns PredicateDefinition
215 * PredicateDefinition returns PredicateDefinition
216 *
217 * Constraint:
218 * (error?='error'? name=ID (parameters+=Parameter parameters+=Parameter*)? (bodies+=Conjunction bodies+=Conjunction*)?)
219 */
220 protected void sequence_PredicateDefinition(ISerializationContext context, PredicateDefinition semanticObject) {
221 genericSequencer.createSequence(context, semanticObject);
222 }
223
224
225 /**
226 * Contexts:
227 * Problem returns Problem
228 *
229 * Constraint:
230 * statements+=Statement+
231 */
232 protected void sequence_Problem(ISerializationContext context, Problem semanticObject) {
233 genericSequencer.createSequence(context, semanticObject);
234 }
235
236
237 /**
238 * Contexts:
239 * Multiplicity returns RangeMultiplicity
240 * RangeMultiplicity returns RangeMultiplicity
241 *
242 * Constraint:
243 * (lowerBound=INT upperBound=UpperBound)
244 */
245 protected void sequence_RangeMultiplicity(ISerializationContext context, RangeMultiplicity semanticObject) {
246 if (errorAcceptor != null) {
247 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__LOWER_BOUND) == ValueTransient.YES)
248 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__LOWER_BOUND));
249 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__UPPER_BOUND) == ValueTransient.YES)
250 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__UPPER_BOUND));
251 }
252 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
253 feeder.accept(grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0(), semanticObject.getLowerBound());
254 feeder.accept(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0(), semanticObject.getUpperBound());
255 feeder.finish();
256 }
257
258
259 /**
260 * Contexts:
261 * ReferenceDeclaration returns ReferenceDeclaration
262 *
263 * Constraint:
264 * (containment?='contains'? referenceType=[ClassDeclaration|ID] multiplicity=Multiplicity name=ID opposite=[ReferenceDeclaration|QualifiedName]?)
265 */
266 protected void sequence_ReferenceDeclaration(ISerializationContext context, ReferenceDeclaration semanticObject) {
267 genericSequencer.createSequence(context, semanticObject);
268 }
269
270
271 /**
272 * Contexts:
273 * Statement returns ScopeDeclaration
274 * ScopeDeclaration returns ScopeDeclaration
275 *
276 * Constraint:
277 * (typeScopes+=TypeScope typeScopes+=TypeScope*)
278 */
279 protected void sequence_ScopeDeclaration(ISerializationContext context, ScopeDeclaration semanticObject) {
280 genericSequencer.createSequence(context, semanticObject);
281 }
282
283
284 /**
285 * Contexts:
286 * TypeScope returns TypeScope
287 *
288 * Constraint:
289 * (targetType=[ClassDeclaration|ID] increment?='+='? multiplicity=Multiplicity)
290 */
291 protected void sequence_TypeScope(ISerializationContext context, TypeScope semanticObject) {
292 genericSequencer.createSequence(context, semanticObject);
293 }
294
295
296}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
new file mode 100644
index 00000000..3ffb6315
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
@@ -0,0 +1,77 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.serializer;
5
6import com.google.inject.Inject;
7import java.util.List;
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
10import org.eclipse.xtext.IGrammarAccess;
11import org.eclipse.xtext.RuleCall;
12import org.eclipse.xtext.nodemodel.INode;
13import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
14import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
15import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
16import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
17import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
18import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
19
20@SuppressWarnings("all")
21public class ProblemSyntacticSequencer extends AbstractSyntacticSequencer {
22
23 protected ProblemGrammarAccess grammarAccess;
24 protected AbstractElementAlias match_ClassDeclaration___ExtendsKeyword_3_0_0_LeftSquareBracketKeyword_3_0_1_1_0_RightSquareBracketKeyword_3_0_1_1_2__q;
25 protected AbstractElementAlias match_PredicateDefinition_PredKeyword_0_0_1_q;
26
27 @Inject
28 protected void init(IGrammarAccess access) {
29 grammarAccess = (ProblemGrammarAccess) access;
30 match_ClassDeclaration___ExtendsKeyword_3_0_0_LeftSquareBracketKeyword_3_0_1_1_0_RightSquareBracketKeyword_3_0_1_1_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getLeftSquareBracketKeyword_3_0_1_1_0()), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getRightSquareBracketKeyword_3_0_1_1_2()));
31 match_PredicateDefinition_PredKeyword_0_0_1_q = new TokenAlias(false, true, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
32 }
33
34 @Override
35 protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
36 return "";
37 }
38
39
40 @Override
41 protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
42 if (transition.getAmbiguousSyntaxes().isEmpty()) return;
43 List<INode> transitionNodes = collectNodes(fromNode, toNode);
44 for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
45 List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
46 if (match_ClassDeclaration___ExtendsKeyword_3_0_0_LeftSquareBracketKeyword_3_0_1_1_0_RightSquareBracketKeyword_3_0_1_1_2__q.equals(syntax))
47 emit_ClassDeclaration___ExtendsKeyword_3_0_0_LeftSquareBracketKeyword_3_0_1_1_0_RightSquareBracketKeyword_3_0_1_1_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
48 else if (match_PredicateDefinition_PredKeyword_0_0_1_q.equals(syntax))
49 emit_PredicateDefinition_PredKeyword_0_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
50 else acceptNodes(getLastNavigableState(), syntaxNodes);
51 }
52 }
53
54 /**
55 * Ambiguous syntax:
56 * ('extends' '[' ']')?
57 *
58 * This ambiguous syntax occurs at:
59 * name=ID (ambiguity) ',' referenceDeclarations+=ReferenceDeclaration
60 * name=ID (ambiguity) '.' (rule end)
61 */
62 protected void emit_ClassDeclaration___ExtendsKeyword_3_0_0_LeftSquareBracketKeyword_3_0_1_1_0_RightSquareBracketKeyword_3_0_1_1_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
63 acceptNodes(transition, nodes);
64 }
65
66 /**
67 * Ambiguous syntax:
68 * 'pred'?
69 *
70 * This ambiguous syntax occurs at:
71 * error?='error' (ambiguity) name=ID
72 */
73 protected void emit_PredicateDefinition_PredKeyword_0_0_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
74 acceptNodes(transition, nodes);
75 }
76
77}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
new file mode 100644
index 00000000..7d6b7013
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
@@ -0,0 +1,1411 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.services;
5
6import com.google.inject.Inject;
7import com.google.inject.Singleton;
8import java.util.List;
9import org.eclipse.xtext.Alternatives;
10import org.eclipse.xtext.Assignment;
11import org.eclipse.xtext.CrossReference;
12import org.eclipse.xtext.EnumLiteralDeclaration;
13import org.eclipse.xtext.EnumRule;
14import org.eclipse.xtext.Grammar;
15import org.eclipse.xtext.GrammarUtil;
16import org.eclipse.xtext.Group;
17import org.eclipse.xtext.Keyword;
18import org.eclipse.xtext.ParserRule;
19import org.eclipse.xtext.RuleCall;
20import org.eclipse.xtext.TerminalRule;
21import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
22import org.eclipse.xtext.service.AbstractElementFinder;
23import org.eclipse.xtext.service.GrammarProvider;
24
25@Singleton
26public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarElementFinder {
27
28 public class ProblemElements extends AbstractParserRuleElementFinder {
29 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Problem");
30 private final Assignment cStatementsAssignment = (Assignment)rule.eContents().get(1);
31 private final RuleCall cStatementsStatementParserRuleCall_0 = (RuleCall)cStatementsAssignment.eContents().get(0);
32
33 //Problem:
34 // statements+=Statement*;
35 @Override public ParserRule getRule() { return rule; }
36
37 //statements+=Statement*
38 public Assignment getStatementsAssignment() { return cStatementsAssignment; }
39
40 //Statement
41 public RuleCall getStatementsStatementParserRuleCall_0() { return cStatementsStatementParserRuleCall_0; }
42 }
43 public class StatementElements extends AbstractParserRuleElementFinder {
44 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Statement");
45 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
46 private final RuleCall cClassDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
47 private final RuleCall cPredicateDefinitionParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
48 private final RuleCall cAssertionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
49 private final RuleCall cScopeDeclarationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
50
51 //Statement:
52 // ClassDeclaration | PredicateDefinition | Assertion | ScopeDeclaration;
53 @Override public ParserRule getRule() { return rule; }
54
55 //ClassDeclaration | PredicateDefinition | Assertion | ScopeDeclaration
56 public Alternatives getAlternatives() { return cAlternatives; }
57
58 //ClassDeclaration
59 public RuleCall getClassDeclarationParserRuleCall_0() { return cClassDeclarationParserRuleCall_0; }
60
61 //PredicateDefinition
62 public RuleCall getPredicateDefinitionParserRuleCall_1() { return cPredicateDefinitionParserRuleCall_1; }
63
64 //Assertion
65 public RuleCall getAssertionParserRuleCall_2() { return cAssertionParserRuleCall_2; }
66
67 //ScopeDeclaration
68 public RuleCall getScopeDeclarationParserRuleCall_3() { return cScopeDeclarationParserRuleCall_3; }
69 }
70 public class ClassDeclarationElements extends AbstractParserRuleElementFinder {
71 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ClassDeclaration");
72 private final Group cGroup = (Group)rule.eContents().get(1);
73 private final Assignment cAbstractAssignment_0 = (Assignment)cGroup.eContents().get(0);
74 private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0);
75 private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1);
76 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
77 private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
78 private final Alternatives cAlternatives_3 = (Alternatives)cGroup.eContents().get(3);
79 private final Group cGroup_3_0 = (Group)cAlternatives_3.eContents().get(0);
80 private final Keyword cExtendsKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
81 private final Alternatives cAlternatives_3_0_1 = (Alternatives)cGroup_3_0.eContents().get(1);
82 private final Assignment cSuperTypesAssignment_3_0_1_0 = (Assignment)cAlternatives_3_0_1.eContents().get(0);
83 private final CrossReference cSuperTypesClassDeclarationCrossReference_3_0_1_0_0 = (CrossReference)cSuperTypesAssignment_3_0_1_0.eContents().get(0);
84 private final RuleCall cSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_0_0_1 = (RuleCall)cSuperTypesClassDeclarationCrossReference_3_0_1_0_0.eContents().get(1);
85 private final Group cGroup_3_0_1_1 = (Group)cAlternatives_3_0_1.eContents().get(1);
86 private final Keyword cLeftSquareBracketKeyword_3_0_1_1_0 = (Keyword)cGroup_3_0_1_1.eContents().get(0);
87 private final Group cGroup_3_0_1_1_1 = (Group)cGroup_3_0_1_1.eContents().get(1);
88 private final Assignment cSuperTypesAssignment_3_0_1_1_1_0 = (Assignment)cGroup_3_0_1_1_1.eContents().get(0);
89 private final CrossReference cSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0 = (CrossReference)cSuperTypesAssignment_3_0_1_1_1_0.eContents().get(0);
90 private final RuleCall cSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_0_0_1 = (RuleCall)cSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0.eContents().get(1);
91 private final Group cGroup_3_0_1_1_1_1 = (Group)cGroup_3_0_1_1_1.eContents().get(1);
92 private final Keyword cCommaKeyword_3_0_1_1_1_1_0 = (Keyword)cGroup_3_0_1_1_1_1.eContents().get(0);
93 private final Assignment cSuperTypesAssignment_3_0_1_1_1_1_1 = (Assignment)cGroup_3_0_1_1_1_1.eContents().get(1);
94 private final CrossReference cSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0 = (CrossReference)cSuperTypesAssignment_3_0_1_1_1_1_1.eContents().get(0);
95 private final RuleCall cSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_1_1_0_1 = (RuleCall)cSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0.eContents().get(1);
96 private final Keyword cRightSquareBracketKeyword_3_0_1_1_2 = (Keyword)cGroup_3_0_1_1.eContents().get(2);
97 private final Assignment cReferenceDeclarationsAssignment_3_1 = (Assignment)cAlternatives_3.eContents().get(1);
98 private final RuleCall cReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0 = (RuleCall)cReferenceDeclarationsAssignment_3_1.eContents().get(0);
99 private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
100 private final Keyword cCommaKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
101 private final Assignment cReferenceDeclarationsAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
102 private final RuleCall cReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0 = (RuleCall)cReferenceDeclarationsAssignment_4_1.eContents().get(0);
103 private final Keyword cFullStopKeyword_5 = (Keyword)cGroup.eContents().get(5);
104
105 //ClassDeclaration:
106 // abstract?="abstract"? "class"
107 // name=ID
108 // ("extends" (superTypes+=[ClassDeclaration] |
109 // "[" (superTypes+=[ClassDeclaration] ("," superTypes+=[ClassDeclaration])*)? "]") |
110 // referenceDeclarations+=ReferenceDeclaration)?
111 // ("," referenceDeclarations+=ReferenceDeclaration)*
112 // ".";
113 @Override public ParserRule getRule() { return rule; }
114
115 //abstract?="abstract"? "class"
116 //name=ID
117 //("extends" (superTypes+=[ClassDeclaration] |
118 //"[" (superTypes+=[ClassDeclaration] ("," superTypes+=[ClassDeclaration])*)? "]") |
119 //referenceDeclarations+=ReferenceDeclaration)?
120 //("," referenceDeclarations+=ReferenceDeclaration)*
121 //"."
122 public Group getGroup() { return cGroup; }
123
124 //abstract?="abstract"?
125 public Assignment getAbstractAssignment_0() { return cAbstractAssignment_0; }
126
127 //"abstract"
128 public Keyword getAbstractAbstractKeyword_0_0() { return cAbstractAbstractKeyword_0_0; }
129
130 //"class"
131 public Keyword getClassKeyword_1() { return cClassKeyword_1; }
132
133 //name=ID
134 public Assignment getNameAssignment_2() { return cNameAssignment_2; }
135
136 //ID
137 public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
138
139 //("extends" (superTypes+=[ClassDeclaration] |
140 //"[" (superTypes+=[ClassDeclaration] ("," superTypes+=[ClassDeclaration])*)? "]") |
141 //referenceDeclarations+=ReferenceDeclaration)?
142 public Alternatives getAlternatives_3() { return cAlternatives_3; }
143
144 //"extends" (superTypes+=[ClassDeclaration] |
145 // "[" (superTypes+=[ClassDeclaration] ("," superTypes+=[ClassDeclaration])*)? "]")
146 public Group getGroup_3_0() { return cGroup_3_0; }
147
148 //"extends"
149 public Keyword getExtendsKeyword_3_0_0() { return cExtendsKeyword_3_0_0; }
150
151 //(superTypes+=[ClassDeclaration] |
152 // "[" (superTypes+=[ClassDeclaration] ("," superTypes+=[ClassDeclaration])*)? "]")
153 public Alternatives getAlternatives_3_0_1() { return cAlternatives_3_0_1; }
154
155 //superTypes+=[ClassDeclaration]
156 public Assignment getSuperTypesAssignment_3_0_1_0() { return cSuperTypesAssignment_3_0_1_0; }
157
158 //[ClassDeclaration]
159 public CrossReference getSuperTypesClassDeclarationCrossReference_3_0_1_0_0() { return cSuperTypesClassDeclarationCrossReference_3_0_1_0_0; }
160
161 //ID
162 public RuleCall getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_0_0_1() { return cSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_0_0_1; }
163
164 //"[" (superTypes+=[ClassDeclaration] ("," superTypes+=[ClassDeclaration])*)? "]"
165 public Group getGroup_3_0_1_1() { return cGroup_3_0_1_1; }
166
167 //"["
168 public Keyword getLeftSquareBracketKeyword_3_0_1_1_0() { return cLeftSquareBracketKeyword_3_0_1_1_0; }
169
170 //(superTypes+=[ClassDeclaration] ("," superTypes+=[ClassDeclaration])*)?
171 public Group getGroup_3_0_1_1_1() { return cGroup_3_0_1_1_1; }
172
173 //superTypes+=[ClassDeclaration]
174 public Assignment getSuperTypesAssignment_3_0_1_1_1_0() { return cSuperTypesAssignment_3_0_1_1_1_0; }
175
176 //[ClassDeclaration]
177 public CrossReference getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0() { return cSuperTypesClassDeclarationCrossReference_3_0_1_1_1_0_0; }
178
179 //ID
180 public RuleCall getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_0_0_1() { return cSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_0_0_1; }
181
182 //("," superTypes+=[ClassDeclaration])*
183 public Group getGroup_3_0_1_1_1_1() { return cGroup_3_0_1_1_1_1; }
184
185 //","
186 public Keyword getCommaKeyword_3_0_1_1_1_1_0() { return cCommaKeyword_3_0_1_1_1_1_0; }
187
188 //superTypes+=[ClassDeclaration]
189 public Assignment getSuperTypesAssignment_3_0_1_1_1_1_1() { return cSuperTypesAssignment_3_0_1_1_1_1_1; }
190
191 //[ClassDeclaration]
192 public CrossReference getSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0() { return cSuperTypesClassDeclarationCrossReference_3_0_1_1_1_1_1_0; }
193
194 //ID
195 public RuleCall getSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_1_1_0_1() { return cSuperTypesClassDeclarationIDTerminalRuleCall_3_0_1_1_1_1_1_0_1; }
196
197 //"]"
198 public Keyword getRightSquareBracketKeyword_3_0_1_1_2() { return cRightSquareBracketKeyword_3_0_1_1_2; }
199
200 //referenceDeclarations+=ReferenceDeclaration
201 public Assignment getReferenceDeclarationsAssignment_3_1() { return cReferenceDeclarationsAssignment_3_1; }
202
203 //ReferenceDeclaration
204 public RuleCall getReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0() { return cReferenceDeclarationsReferenceDeclarationParserRuleCall_3_1_0; }
205
206 //("," referenceDeclarations+=ReferenceDeclaration)*
207 public Group getGroup_4() { return cGroup_4; }
208
209 //","
210 public Keyword getCommaKeyword_4_0() { return cCommaKeyword_4_0; }
211
212 //referenceDeclarations+=ReferenceDeclaration
213 public Assignment getReferenceDeclarationsAssignment_4_1() { return cReferenceDeclarationsAssignment_4_1; }
214
215 //ReferenceDeclaration
216 public RuleCall getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0() { return cReferenceDeclarationsReferenceDeclarationParserRuleCall_4_1_0; }
217
218 //"."
219 public Keyword getFullStopKeyword_5() { return cFullStopKeyword_5; }
220 }
221 public class ReferenceDeclarationElements extends AbstractParserRuleElementFinder {
222 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
223 private final Group cGroup = (Group)rule.eContents().get(1);
224 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
225 private final Assignment cContainmentAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
226 private final Keyword cContainmentContainsKeyword_0_0_0 = (Keyword)cContainmentAssignment_0_0.eContents().get(0);
227 private final Keyword cRefersKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
228 private final Assignment cReferenceTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
229 private final CrossReference cReferenceTypeClassDeclarationCrossReference_1_0 = (CrossReference)cReferenceTypeAssignment_1.eContents().get(0);
230 private final RuleCall cReferenceTypeClassDeclarationIDTerminalRuleCall_1_0_1 = (RuleCall)cReferenceTypeClassDeclarationCrossReference_1_0.eContents().get(1);
231 private final Keyword cLeftSquareBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
232 private final Assignment cMultiplicityAssignment_3 = (Assignment)cGroup.eContents().get(3);
233 private final RuleCall cMultiplicityMultiplicityParserRuleCall_3_0 = (RuleCall)cMultiplicityAssignment_3.eContents().get(0);
234 private final Keyword cRightSquareBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
235 private final Assignment cNameAssignment_5 = (Assignment)cGroup.eContents().get(5);
236 private final RuleCall cNameIDTerminalRuleCall_5_0 = (RuleCall)cNameAssignment_5.eContents().get(0);
237 private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
238 private final Keyword cOppositeKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
239 private final Assignment cOppositeAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
240 private final CrossReference cOppositeReferenceDeclarationCrossReference_6_1_0 = (CrossReference)cOppositeAssignment_6_1.eContents().get(0);
241 private final RuleCall cOppositeReferenceDeclarationQualifiedNameParserRuleCall_6_1_0_1 = (RuleCall)cOppositeReferenceDeclarationCrossReference_6_1_0.eContents().get(1);
242
243 //ReferenceDeclaration:
244 // (containment?="contains" | "refers")
245 // referenceType=[ClassDeclaration]
246 // "[" multiplicity=Multiplicity "]"
247 // name=ID
248 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
249 @Override public ParserRule getRule() { return rule; }
250
251 //(containment?="contains" | "refers")
252 //referenceType=[ClassDeclaration]
253 //"[" multiplicity=Multiplicity "]"
254 //name=ID
255 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])?
256 public Group getGroup() { return cGroup; }
257
258 //(containment?="contains" | "refers")
259 public Alternatives getAlternatives_0() { return cAlternatives_0; }
260
261 //containment?="contains"
262 public Assignment getContainmentAssignment_0_0() { return cContainmentAssignment_0_0; }
263
264 //"contains"
265 public Keyword getContainmentContainsKeyword_0_0_0() { return cContainmentContainsKeyword_0_0_0; }
266
267 //"refers"
268 public Keyword getRefersKeyword_0_1() { return cRefersKeyword_0_1; }
269
270 //referenceType=[ClassDeclaration]
271 public Assignment getReferenceTypeAssignment_1() { return cReferenceTypeAssignment_1; }
272
273 //[ClassDeclaration]
274 public CrossReference getReferenceTypeClassDeclarationCrossReference_1_0() { return cReferenceTypeClassDeclarationCrossReference_1_0; }
275
276 //ID
277 public RuleCall getReferenceTypeClassDeclarationIDTerminalRuleCall_1_0_1() { return cReferenceTypeClassDeclarationIDTerminalRuleCall_1_0_1; }
278
279 //"["
280 public Keyword getLeftSquareBracketKeyword_2() { return cLeftSquareBracketKeyword_2; }
281
282 //multiplicity=Multiplicity
283 public Assignment getMultiplicityAssignment_3() { return cMultiplicityAssignment_3; }
284
285 //Multiplicity
286 public RuleCall getMultiplicityMultiplicityParserRuleCall_3_0() { return cMultiplicityMultiplicityParserRuleCall_3_0; }
287
288 //"]"
289 public Keyword getRightSquareBracketKeyword_4() { return cRightSquareBracketKeyword_4; }
290
291 //name=ID
292 public Assignment getNameAssignment_5() { return cNameAssignment_5; }
293
294 //ID
295 public RuleCall getNameIDTerminalRuleCall_5_0() { return cNameIDTerminalRuleCall_5_0; }
296
297 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])?
298 public Group getGroup_6() { return cGroup_6; }
299
300 //"opposite"
301 public Keyword getOppositeKeyword_6_0() { return cOppositeKeyword_6_0; }
302
303 //opposite=[ReferenceDeclaration|QualifiedName]
304 public Assignment getOppositeAssignment_6_1() { return cOppositeAssignment_6_1; }
305
306 //[ReferenceDeclaration|QualifiedName]
307 public CrossReference getOppositeReferenceDeclarationCrossReference_6_1_0() { return cOppositeReferenceDeclarationCrossReference_6_1_0; }
308
309 //QualifiedName
310 public RuleCall getOppositeReferenceDeclarationQualifiedNameParserRuleCall_6_1_0_1() { return cOppositeReferenceDeclarationQualifiedNameParserRuleCall_6_1_0_1; }
311 }
312 public class PredicateDefinitionElements extends AbstractParserRuleElementFinder {
313 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.PredicateDefinition");
314 private final Group cGroup = (Group)rule.eContents().get(1);
315 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
316 private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0);
317 private final Assignment cErrorAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0);
318 private final Keyword cErrorErrorKeyword_0_0_0_0 = (Keyword)cErrorAssignment_0_0_0.eContents().get(0);
319 private final Keyword cPredKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1);
320 private final Keyword cPredKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
321 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
322 private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
323 private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
324 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
325 private final Assignment cParametersAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
326 private final RuleCall cParametersParameterParserRuleCall_3_0_0 = (RuleCall)cParametersAssignment_3_0.eContents().get(0);
327 private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1);
328 private final Keyword cCommaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
329 private final Assignment cParametersAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
330 private final RuleCall cParametersParameterParserRuleCall_3_1_1_0 = (RuleCall)cParametersAssignment_3_1_1.eContents().get(0);
331 private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
332 private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
333 private final Keyword cColonEqualsSignKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
334 private final Assignment cBodiesAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
335 private final RuleCall cBodiesConjunctionParserRuleCall_5_1_0 = (RuleCall)cBodiesAssignment_5_1.eContents().get(0);
336 private final Group cGroup_5_2 = (Group)cGroup_5.eContents().get(2);
337 private final Keyword cSemicolonKeyword_5_2_0 = (Keyword)cGroup_5_2.eContents().get(0);
338 private final Assignment cBodiesAssignment_5_2_1 = (Assignment)cGroup_5_2.eContents().get(1);
339 private final RuleCall cBodiesConjunctionParserRuleCall_5_2_1_0 = (RuleCall)cBodiesAssignment_5_2_1.eContents().get(0);
340 private final Keyword cFullStopKeyword_6 = (Keyword)cGroup.eContents().get(6);
341
342 //PredicateDefinition:
343 // (error?="error" "pred"? | "pred")
344 // name=ID
345 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
346 // (":=" bodies+=Conjunction (";" bodies+=Conjunction)*)?
347 // ".";
348 @Override public ParserRule getRule() { return rule; }
349
350 //(error?="error" "pred"? | "pred")
351 //name=ID
352 //"(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
353 //(":=" bodies+=Conjunction (";" bodies+=Conjunction)*)?
354 //"."
355 public Group getGroup() { return cGroup; }
356
357 //(error?="error" "pred"? | "pred")
358 public Alternatives getAlternatives_0() { return cAlternatives_0; }
359
360 //error?="error" "pred"?
361 public Group getGroup_0_0() { return cGroup_0_0; }
362
363 //error?="error"
364 public Assignment getErrorAssignment_0_0_0() { return cErrorAssignment_0_0_0; }
365
366 //"error"
367 public Keyword getErrorErrorKeyword_0_0_0_0() { return cErrorErrorKeyword_0_0_0_0; }
368
369 //"pred"?
370 public Keyword getPredKeyword_0_0_1() { return cPredKeyword_0_0_1; }
371
372 //"pred"
373 public Keyword getPredKeyword_0_1() { return cPredKeyword_0_1; }
374
375 //name=ID
376 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
377
378 //ID
379 public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
380
381 //"("
382 public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
383
384 //(parameters+=Parameter ("," parameters+=Parameter)*)?
385 public Group getGroup_3() { return cGroup_3; }
386
387 //parameters+=Parameter
388 public Assignment getParametersAssignment_3_0() { return cParametersAssignment_3_0; }
389
390 //Parameter
391 public RuleCall getParametersParameterParserRuleCall_3_0_0() { return cParametersParameterParserRuleCall_3_0_0; }
392
393 //("," parameters+=Parameter)*
394 public Group getGroup_3_1() { return cGroup_3_1; }
395
396 //","
397 public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; }
398
399 //parameters+=Parameter
400 public Assignment getParametersAssignment_3_1_1() { return cParametersAssignment_3_1_1; }
401
402 //Parameter
403 public RuleCall getParametersParameterParserRuleCall_3_1_1_0() { return cParametersParameterParserRuleCall_3_1_1_0; }
404
405 //")"
406 public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
407
408 //(":=" bodies+=Conjunction (";" bodies+=Conjunction)*)?
409 public Group getGroup_5() { return cGroup_5; }
410
411 //":="
412 public Keyword getColonEqualsSignKeyword_5_0() { return cColonEqualsSignKeyword_5_0; }
413
414 //bodies+=Conjunction
415 public Assignment getBodiesAssignment_5_1() { return cBodiesAssignment_5_1; }
416
417 //Conjunction
418 public RuleCall getBodiesConjunctionParserRuleCall_5_1_0() { return cBodiesConjunctionParserRuleCall_5_1_0; }
419
420 //(";" bodies+=Conjunction)*
421 public Group getGroup_5_2() { return cGroup_5_2; }
422
423 //";"
424 public Keyword getSemicolonKeyword_5_2_0() { return cSemicolonKeyword_5_2_0; }
425
426 //bodies+=Conjunction
427 public Assignment getBodiesAssignment_5_2_1() { return cBodiesAssignment_5_2_1; }
428
429 //Conjunction
430 public RuleCall getBodiesConjunctionParserRuleCall_5_2_1_0() { return cBodiesConjunctionParserRuleCall_5_2_1_0; }
431
432 //"."
433 public Keyword getFullStopKeyword_6() { return cFullStopKeyword_6; }
434 }
435 public class ParameterElements extends AbstractParserRuleElementFinder {
436 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Parameter");
437 private final Group cGroup = (Group)rule.eContents().get(1);
438 private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
439 private final CrossReference cParameterTypeClassDeclarationCrossReference_0_0 = (CrossReference)cParameterTypeAssignment_0.eContents().get(0);
440 private final RuleCall cParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1 = (RuleCall)cParameterTypeClassDeclarationCrossReference_0_0.eContents().get(1);
441 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
442 private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
443
444 //Parameter:
445 // parameterType=[ClassDeclaration] name=ID;
446 @Override public ParserRule getRule() { return rule; }
447
448 //parameterType=[ClassDeclaration] name=ID
449 public Group getGroup() { return cGroup; }
450
451 //parameterType=[ClassDeclaration]
452 public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; }
453
454 //[ClassDeclaration]
455 public CrossReference getParameterTypeClassDeclarationCrossReference_0_0() { return cParameterTypeClassDeclarationCrossReference_0_0; }
456
457 //ID
458 public RuleCall getParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1() { return cParameterTypeClassDeclarationIDTerminalRuleCall_0_0_1; }
459
460 //name=ID
461 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
462
463 //ID
464 public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
465 }
466 public class ConjunctionElements extends AbstractParserRuleElementFinder {
467 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Conjunction");
468 private final Group cGroup = (Group)rule.eContents().get(1);
469 private final Assignment cLiteralsAssignment_0 = (Assignment)cGroup.eContents().get(0);
470 private final RuleCall cLiteralsLiteralParserRuleCall_0_0 = (RuleCall)cLiteralsAssignment_0.eContents().get(0);
471 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
472 private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
473 private final Assignment cLiteralsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
474 private final RuleCall cLiteralsLiteralParserRuleCall_1_1_0 = (RuleCall)cLiteralsAssignment_1_1.eContents().get(0);
475
476 //Conjunction:
477 // literals+=Literal ("," literals+=Literal)*;
478 @Override public ParserRule getRule() { return rule; }
479
480 //literals+=Literal ("," literals+=Literal)*
481 public Group getGroup() { return cGroup; }
482
483 //literals+=Literal
484 public Assignment getLiteralsAssignment_0() { return cLiteralsAssignment_0; }
485
486 //Literal
487 public RuleCall getLiteralsLiteralParserRuleCall_0_0() { return cLiteralsLiteralParserRuleCall_0_0; }
488
489 //("," literals+=Literal)*
490 public Group getGroup_1() { return cGroup_1; }
491
492 //","
493 public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
494
495 //literals+=Literal
496 public Assignment getLiteralsAssignment_1_1() { return cLiteralsAssignment_1_1; }
497
498 //Literal
499 public RuleCall getLiteralsLiteralParserRuleCall_1_1_0() { return cLiteralsLiteralParserRuleCall_1_1_0; }
500 }
501 public class LiteralElements extends AbstractParserRuleElementFinder {
502 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Literal");
503 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
504 private final RuleCall cAtomParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
505 private final RuleCall cNegativeLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
506
507 //Literal:
508 // Atom | NegativeLiteral;
509 @Override public ParserRule getRule() { return rule; }
510
511 //Atom | NegativeLiteral
512 public Alternatives getAlternatives() { return cAlternatives; }
513
514 //Atom
515 public RuleCall getAtomParserRuleCall_0() { return cAtomParserRuleCall_0; }
516
517 //NegativeLiteral
518 public RuleCall getNegativeLiteralParserRuleCall_1() { return cNegativeLiteralParserRuleCall_1; }
519 }
520 public class NegativeLiteralElements extends AbstractParserRuleElementFinder {
521 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.NegativeLiteral");
522 private final Group cGroup = (Group)rule.eContents().get(1);
523 private final Keyword cExclamationMarkKeyword_0 = (Keyword)cGroup.eContents().get(0);
524 private final Assignment cAtomAssignment_1 = (Assignment)cGroup.eContents().get(1);
525 private final RuleCall cAtomAtomParserRuleCall_1_0 = (RuleCall)cAtomAssignment_1.eContents().get(0);
526
527 //NegativeLiteral:
528 // "!" atom=Atom;
529 @Override public ParserRule getRule() { return rule; }
530
531 //"!" atom=Atom
532 public Group getGroup() { return cGroup; }
533
534 //"!"
535 public Keyword getExclamationMarkKeyword_0() { return cExclamationMarkKeyword_0; }
536
537 //atom=Atom
538 public Assignment getAtomAssignment_1() { return cAtomAssignment_1; }
539
540 //Atom
541 public RuleCall getAtomAtomParserRuleCall_1_0() { return cAtomAtomParserRuleCall_1_0; }
542 }
543 public class AtomElements extends AbstractParserRuleElementFinder {
544 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Atom");
545 private final Group cGroup = (Group)rule.eContents().get(1);
546 private final Assignment cRelationAssignment_0 = (Assignment)cGroup.eContents().get(0);
547 private final CrossReference cRelationRelationCrossReference_0_0 = (CrossReference)cRelationAssignment_0.eContents().get(0);
548 private final RuleCall cRelationRelationQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cRelationRelationCrossReference_0_0.eContents().get(1);
549 private final Assignment cTransitiveClosureAssignment_1 = (Assignment)cGroup.eContents().get(1);
550 private final Keyword cTransitiveClosurePlusSignKeyword_1_0 = (Keyword)cTransitiveClosureAssignment_1.eContents().get(0);
551 private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
552 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
553 private final Assignment cArgumentsAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
554 private final CrossReference cArgumentsVariableCrossReference_3_0_0 = (CrossReference)cArgumentsAssignment_3_0.eContents().get(0);
555 private final RuleCall cArgumentsVariableIDTerminalRuleCall_3_0_0_1 = (RuleCall)cArgumentsVariableCrossReference_3_0_0.eContents().get(1);
556 private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1);
557 private final Keyword cCommaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
558 private final Assignment cArgumentsAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
559 private final CrossReference cArgumentsVariableCrossReference_3_1_1_0 = (CrossReference)cArgumentsAssignment_3_1_1.eContents().get(0);
560 private final RuleCall cArgumentsVariableIDTerminalRuleCall_3_1_1_0_1 = (RuleCall)cArgumentsVariableCrossReference_3_1_1_0.eContents().get(1);
561 private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
562
563 //Atom:
564 // relation=[Relation|QualifiedName]
565 // transitiveClosure?="+"?
566 // "(" (arguments+=[Variable] ("," arguments+=[Variable])*)? ")";
567 @Override public ParserRule getRule() { return rule; }
568
569 //relation=[Relation|QualifiedName]
570 //transitiveClosure?="+"?
571 //"(" (arguments+=[Variable] ("," arguments+=[Variable])*)? ")"
572 public Group getGroup() { return cGroup; }
573
574 //relation=[Relation|QualifiedName]
575 public Assignment getRelationAssignment_0() { return cRelationAssignment_0; }
576
577 //[Relation|QualifiedName]
578 public CrossReference getRelationRelationCrossReference_0_0() { return cRelationRelationCrossReference_0_0; }
579
580 //QualifiedName
581 public RuleCall getRelationRelationQualifiedNameParserRuleCall_0_0_1() { return cRelationRelationQualifiedNameParserRuleCall_0_0_1; }
582
583 //transitiveClosure?="+"?
584 public Assignment getTransitiveClosureAssignment_1() { return cTransitiveClosureAssignment_1; }
585
586 //"+"
587 public Keyword getTransitiveClosurePlusSignKeyword_1_0() { return cTransitiveClosurePlusSignKeyword_1_0; }
588
589 //"("
590 public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
591
592 //(arguments+=[Variable] ("," arguments+=[Variable])*)?
593 public Group getGroup_3() { return cGroup_3; }
594
595 //arguments+=[Variable]
596 public Assignment getArgumentsAssignment_3_0() { return cArgumentsAssignment_3_0; }
597
598 //[Variable]
599 public CrossReference getArgumentsVariableCrossReference_3_0_0() { return cArgumentsVariableCrossReference_3_0_0; }
600
601 //ID
602 public RuleCall getArgumentsVariableIDTerminalRuleCall_3_0_0_1() { return cArgumentsVariableIDTerminalRuleCall_3_0_0_1; }
603
604 //("," arguments+=[Variable])*
605 public Group getGroup_3_1() { return cGroup_3_1; }
606
607 //","
608 public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; }
609
610 //arguments+=[Variable]
611 public Assignment getArgumentsAssignment_3_1_1() { return cArgumentsAssignment_3_1_1; }
612
613 //[Variable]
614 public CrossReference getArgumentsVariableCrossReference_3_1_1_0() { return cArgumentsVariableCrossReference_3_1_1_0; }
615
616 //ID
617 public RuleCall getArgumentsVariableIDTerminalRuleCall_3_1_1_0_1() { return cArgumentsVariableIDTerminalRuleCall_3_1_1_0_1; }
618
619 //")"
620 public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
621 }
622 public class AssertionElements extends AbstractParserRuleElementFinder {
623 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Assertion");
624 private final Group cGroup = (Group)rule.eContents().get(1);
625 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
626 private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0);
627 private final Assignment cRelationAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0);
628 private final CrossReference cRelationRelationCrossReference_0_0_0_0 = (CrossReference)cRelationAssignment_0_0_0.eContents().get(0);
629 private final RuleCall cRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1 = (RuleCall)cRelationRelationCrossReference_0_0_0_0.eContents().get(1);
630 private final Keyword cLeftParenthesisKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1);
631 private final Group cGroup_0_0_2 = (Group)cGroup_0_0.eContents().get(2);
632 private final Assignment cArgumentsAssignment_0_0_2_0 = (Assignment)cGroup_0_0_2.eContents().get(0);
633 private final CrossReference cArgumentsNodeCrossReference_0_0_2_0_0 = (CrossReference)cArgumentsAssignment_0_0_2_0.eContents().get(0);
634 private final RuleCall cArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1 = (RuleCall)cArgumentsNodeCrossReference_0_0_2_0_0.eContents().get(1);
635 private final Group cGroup_0_0_2_1 = (Group)cGroup_0_0_2.eContents().get(1);
636 private final Keyword cCommaKeyword_0_0_2_1_0 = (Keyword)cGroup_0_0_2_1.eContents().get(0);
637 private final Assignment cArgumentsAssignment_0_0_2_1_1 = (Assignment)cGroup_0_0_2_1.eContents().get(1);
638 private final CrossReference cArgumentsNodeCrossReference_0_0_2_1_1_0 = (CrossReference)cArgumentsAssignment_0_0_2_1_1.eContents().get(0);
639 private final RuleCall cArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1 = (RuleCall)cArgumentsNodeCrossReference_0_0_2_1_1_0.eContents().get(1);
640 private final Keyword cRightParenthesisKeyword_0_0_3 = (Keyword)cGroup_0_0.eContents().get(3);
641 private final Keyword cColonKeyword_0_0_4 = (Keyword)cGroup_0_0.eContents().get(4);
642 private final Assignment cValueAssignment_0_0_5 = (Assignment)cGroup_0_0.eContents().get(5);
643 private final RuleCall cValueLogicValueEnumRuleCall_0_0_5_0 = (RuleCall)cValueAssignment_0_0_5.eContents().get(0);
644 private final Group cGroup_0_1 = (Group)cAlternatives_0.eContents().get(1);
645 private final Assignment cValueAssignment_0_1_0 = (Assignment)cGroup_0_1.eContents().get(0);
646 private final RuleCall cValueShortLogicValueEnumRuleCall_0_1_0_0 = (RuleCall)cValueAssignment_0_1_0.eContents().get(0);
647 private final Assignment cRelationAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1);
648 private final CrossReference cRelationRelationCrossReference_0_1_1_0 = (CrossReference)cRelationAssignment_0_1_1.eContents().get(0);
649 private final RuleCall cRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1 = (RuleCall)cRelationRelationCrossReference_0_1_1_0.eContents().get(1);
650 private final Keyword cLeftParenthesisKeyword_0_1_2 = (Keyword)cGroup_0_1.eContents().get(2);
651 private final Group cGroup_0_1_3 = (Group)cGroup_0_1.eContents().get(3);
652 private final Assignment cArgumentsAssignment_0_1_3_0 = (Assignment)cGroup_0_1_3.eContents().get(0);
653 private final CrossReference cArgumentsNodeCrossReference_0_1_3_0_0 = (CrossReference)cArgumentsAssignment_0_1_3_0.eContents().get(0);
654 private final RuleCall cArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1 = (RuleCall)cArgumentsNodeCrossReference_0_1_3_0_0.eContents().get(1);
655 private final Group cGroup_0_1_3_1 = (Group)cGroup_0_1_3.eContents().get(1);
656 private final Keyword cCommaKeyword_0_1_3_1_0 = (Keyword)cGroup_0_1_3_1.eContents().get(0);
657 private final Assignment cArgumentsAssignment_0_1_3_1_1 = (Assignment)cGroup_0_1_3_1.eContents().get(1);
658 private final CrossReference cArgumentsNodeCrossReference_0_1_3_1_1_0 = (CrossReference)cArgumentsAssignment_0_1_3_1_1.eContents().get(0);
659 private final RuleCall cArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1 = (RuleCall)cArgumentsNodeCrossReference_0_1_3_1_1_0.eContents().get(1);
660 private final Keyword cRightParenthesisKeyword_0_1_4 = (Keyword)cGroup_0_1.eContents().get(4);
661 private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
662
663 //Assertion:
664 // (relation=[Relation|QualifiedName]
665 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
666 // ":" value=LogicValue |
667 // value=ShortLogicValue?
668 // relation=[Relation|QualifiedName]
669 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")")
670 // ".";
671 @Override public ParserRule getRule() { return rule; }
672
673 //(relation=[Relation|QualifiedName]
674 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
675 //":" value=LogicValue |
676 //value=ShortLogicValue?
677 //relation=[Relation|QualifiedName]
678 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")")
679 //"."
680 public Group getGroup() { return cGroup; }
681
682 //(relation=[Relation|QualifiedName]
683 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
684 //":" value=LogicValue |
685 //value=ShortLogicValue?
686 //relation=[Relation|QualifiedName]
687 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")")
688 public Alternatives getAlternatives_0() { return cAlternatives_0; }
689
690 //relation=[Relation|QualifiedName]
691 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
692 // ":" value=LogicValue
693 public Group getGroup_0_0() { return cGroup_0_0; }
694
695 //relation=[Relation|QualifiedName]
696 public Assignment getRelationAssignment_0_0_0() { return cRelationAssignment_0_0_0; }
697
698 //[Relation|QualifiedName]
699 public CrossReference getRelationRelationCrossReference_0_0_0_0() { return cRelationRelationCrossReference_0_0_0_0; }
700
701 //QualifiedName
702 public RuleCall getRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1() { return cRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1; }
703
704 //"("
705 public Keyword getLeftParenthesisKeyword_0_0_1() { return cLeftParenthesisKeyword_0_0_1; }
706
707 //(arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)?
708 public Group getGroup_0_0_2() { return cGroup_0_0_2; }
709
710 //arguments+=[Node|QualifiedName]
711 public Assignment getArgumentsAssignment_0_0_2_0() { return cArgumentsAssignment_0_0_2_0; }
712
713 //[Node|QualifiedName]
714 public CrossReference getArgumentsNodeCrossReference_0_0_2_0_0() { return cArgumentsNodeCrossReference_0_0_2_0_0; }
715
716 //QualifiedName
717 public RuleCall getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1() { return cArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1; }
718
719 //("," arguments+=[Node|QualifiedName])*
720 public Group getGroup_0_0_2_1() { return cGroup_0_0_2_1; }
721
722 //","
723 public Keyword getCommaKeyword_0_0_2_1_0() { return cCommaKeyword_0_0_2_1_0; }
724
725 //arguments+=[Node|QualifiedName]
726 public Assignment getArgumentsAssignment_0_0_2_1_1() { return cArgumentsAssignment_0_0_2_1_1; }
727
728 //[Node|QualifiedName]
729 public CrossReference getArgumentsNodeCrossReference_0_0_2_1_1_0() { return cArgumentsNodeCrossReference_0_0_2_1_1_0; }
730
731 //QualifiedName
732 public RuleCall getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1() { return cArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1; }
733
734 //")"
735 public Keyword getRightParenthesisKeyword_0_0_3() { return cRightParenthesisKeyword_0_0_3; }
736
737 //":"
738 public Keyword getColonKeyword_0_0_4() { return cColonKeyword_0_0_4; }
739
740 //value=LogicValue
741 public Assignment getValueAssignment_0_0_5() { return cValueAssignment_0_0_5; }
742
743 //LogicValue
744 public RuleCall getValueLogicValueEnumRuleCall_0_0_5_0() { return cValueLogicValueEnumRuleCall_0_0_5_0; }
745
746 //value=ShortLogicValue?
747 //relation=[Relation|QualifiedName]
748 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
749 public Group getGroup_0_1() { return cGroup_0_1; }
750
751 //value=ShortLogicValue?
752 public Assignment getValueAssignment_0_1_0() { return cValueAssignment_0_1_0; }
753
754 //ShortLogicValue
755 public RuleCall getValueShortLogicValueEnumRuleCall_0_1_0_0() { return cValueShortLogicValueEnumRuleCall_0_1_0_0; }
756
757 //relation=[Relation|QualifiedName]
758 public Assignment getRelationAssignment_0_1_1() { return cRelationAssignment_0_1_1; }
759
760 //[Relation|QualifiedName]
761 public CrossReference getRelationRelationCrossReference_0_1_1_0() { return cRelationRelationCrossReference_0_1_1_0; }
762
763 //QualifiedName
764 public RuleCall getRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1() { return cRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1; }
765
766 //"("
767 public Keyword getLeftParenthesisKeyword_0_1_2() { return cLeftParenthesisKeyword_0_1_2; }
768
769 //(arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)?
770 public Group getGroup_0_1_3() { return cGroup_0_1_3; }
771
772 //arguments+=[Node|QualifiedName]
773 public Assignment getArgumentsAssignment_0_1_3_0() { return cArgumentsAssignment_0_1_3_0; }
774
775 //[Node|QualifiedName]
776 public CrossReference getArgumentsNodeCrossReference_0_1_3_0_0() { return cArgumentsNodeCrossReference_0_1_3_0_0; }
777
778 //QualifiedName
779 public RuleCall getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1() { return cArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1; }
780
781 //("," arguments+=[Node|QualifiedName])*
782 public Group getGroup_0_1_3_1() { return cGroup_0_1_3_1; }
783
784 //","
785 public Keyword getCommaKeyword_0_1_3_1_0() { return cCommaKeyword_0_1_3_1_0; }
786
787 //arguments+=[Node|QualifiedName]
788 public Assignment getArgumentsAssignment_0_1_3_1_1() { return cArgumentsAssignment_0_1_3_1_1; }
789
790 //[Node|QualifiedName]
791 public CrossReference getArgumentsNodeCrossReference_0_1_3_1_1_0() { return cArgumentsNodeCrossReference_0_1_3_1_1_0; }
792
793 //QualifiedName
794 public RuleCall getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1() { return cArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1; }
795
796 //")"
797 public Keyword getRightParenthesisKeyword_0_1_4() { return cRightParenthesisKeyword_0_1_4; }
798
799 //"."
800 public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
801 }
802 public class ScopeDeclarationElements extends AbstractParserRuleElementFinder {
803 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ScopeDeclaration");
804 private final Group cGroup = (Group)rule.eContents().get(1);
805 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0);
806 private final Assignment cTypeScopesAssignment_1 = (Assignment)cGroup.eContents().get(1);
807 private final RuleCall cTypeScopesTypeScopeParserRuleCall_1_0 = (RuleCall)cTypeScopesAssignment_1.eContents().get(0);
808 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
809 private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
810 private final Assignment cTypeScopesAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
811 private final RuleCall cTypeScopesTypeScopeParserRuleCall_2_1_0 = (RuleCall)cTypeScopesAssignment_2_1.eContents().get(0);
812 private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
813
814 //ScopeDeclaration:
815 // "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* ".";
816 @Override public ParserRule getRule() { return rule; }
817
818 //"scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* "."
819 public Group getGroup() { return cGroup; }
820
821 //"scope"
822 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; }
823
824 //typeScopes+=TypeScope
825 public Assignment getTypeScopesAssignment_1() { return cTypeScopesAssignment_1; }
826
827 //TypeScope
828 public RuleCall getTypeScopesTypeScopeParserRuleCall_1_0() { return cTypeScopesTypeScopeParserRuleCall_1_0; }
829
830 //("," typeScopes+=TypeScope)*
831 public Group getGroup_2() { return cGroup_2; }
832
833 //","
834 public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
835
836 //typeScopes+=TypeScope
837 public Assignment getTypeScopesAssignment_2_1() { return cTypeScopesAssignment_2_1; }
838
839 //TypeScope
840 public RuleCall getTypeScopesTypeScopeParserRuleCall_2_1_0() { return cTypeScopesTypeScopeParserRuleCall_2_1_0; }
841
842 //"."
843 public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }
844 }
845 public class TypeScopeElements extends AbstractParserRuleElementFinder {
846 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.TypeScope");
847 private final Group cGroup = (Group)rule.eContents().get(1);
848 private final Assignment cTargetTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
849 private final CrossReference cTargetTypeClassDeclarationCrossReference_0_0 = (CrossReference)cTargetTypeAssignment_0.eContents().get(0);
850 private final RuleCall cTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1 = (RuleCall)cTargetTypeClassDeclarationCrossReference_0_0.eContents().get(1);
851 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
852 private final Assignment cIncrementAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
853 private final Keyword cIncrementPlusSignEqualsSignKeyword_1_0_0 = (Keyword)cIncrementAssignment_1_0.eContents().get(0);
854 private final Keyword cEqualsSignKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
855 private final Assignment cMultiplicityAssignment_2 = (Assignment)cGroup.eContents().get(2);
856 private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_0 = (RuleCall)cMultiplicityAssignment_2.eContents().get(0);
857
858 //TypeScope:
859 // targetType=[ClassDeclaration]
860 // (increment?="+=" | "=")
861 // multiplicity=Multiplicity;
862 @Override public ParserRule getRule() { return rule; }
863
864 //targetType=[ClassDeclaration]
865 //(increment?="+=" | "=")
866 //multiplicity=Multiplicity
867 public Group getGroup() { return cGroup; }
868
869 //targetType=[ClassDeclaration]
870 public Assignment getTargetTypeAssignment_0() { return cTargetTypeAssignment_0; }
871
872 //[ClassDeclaration]
873 public CrossReference getTargetTypeClassDeclarationCrossReference_0_0() { return cTargetTypeClassDeclarationCrossReference_0_0; }
874
875 //ID
876 public RuleCall getTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1() { return cTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1; }
877
878 //(increment?="+=" | "=")
879 public Alternatives getAlternatives_1() { return cAlternatives_1; }
880
881 //increment?="+="
882 public Assignment getIncrementAssignment_1_0() { return cIncrementAssignment_1_0; }
883
884 //"+="
885 public Keyword getIncrementPlusSignEqualsSignKeyword_1_0_0() { return cIncrementPlusSignEqualsSignKeyword_1_0_0; }
886
887 //"="
888 public Keyword getEqualsSignKeyword_1_1() { return cEqualsSignKeyword_1_1; }
889
890 //multiplicity=Multiplicity
891 public Assignment getMultiplicityAssignment_2() { return cMultiplicityAssignment_2; }
892
893 //Multiplicity
894 public RuleCall getMultiplicityMultiplicityParserRuleCall_2_0() { return cMultiplicityMultiplicityParserRuleCall_2_0; }
895 }
896 public class MultiplicityElements extends AbstractParserRuleElementFinder {
897 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Multiplicity");
898 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
899 private final RuleCall cRangeMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
900 private final RuleCall cExactMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
901
902 //Multiplicity:
903 // RangeMultiplicity | ExactMultiplicity;
904 @Override public ParserRule getRule() { return rule; }
905
906 //RangeMultiplicity | ExactMultiplicity
907 public Alternatives getAlternatives() { return cAlternatives; }
908
909 //RangeMultiplicity
910 public RuleCall getRangeMultiplicityParserRuleCall_0() { return cRangeMultiplicityParserRuleCall_0; }
911
912 //ExactMultiplicity
913 public RuleCall getExactMultiplicityParserRuleCall_1() { return cExactMultiplicityParserRuleCall_1; }
914 }
915 public class RangeMultiplicityElements extends AbstractParserRuleElementFinder {
916 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.RangeMultiplicity");
917 private final Group cGroup = (Group)rule.eContents().get(1);
918 private final Assignment cLowerBoundAssignment_0 = (Assignment)cGroup.eContents().get(0);
919 private final RuleCall cLowerBoundINTTerminalRuleCall_0_0 = (RuleCall)cLowerBoundAssignment_0.eContents().get(0);
920 private final Keyword cFullStopFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
921 private final Assignment cUpperBoundAssignment_2 = (Assignment)cGroup.eContents().get(2);
922 private final RuleCall cUpperBoundUpperBoundParserRuleCall_2_0 = (RuleCall)cUpperBoundAssignment_2.eContents().get(0);
923
924 //RangeMultiplicity:
925 // lowerBound=INT ".." upperBound=UpperBound;
926 @Override public ParserRule getRule() { return rule; }
927
928 //lowerBound=INT ".." upperBound=UpperBound
929 public Group getGroup() { return cGroup; }
930
931 //lowerBound=INT
932 public Assignment getLowerBoundAssignment_0() { return cLowerBoundAssignment_0; }
933
934 //INT
935 public RuleCall getLowerBoundINTTerminalRuleCall_0_0() { return cLowerBoundINTTerminalRuleCall_0_0; }
936
937 //".."
938 public Keyword getFullStopFullStopKeyword_1() { return cFullStopFullStopKeyword_1; }
939
940 //upperBound=UpperBound
941 public Assignment getUpperBoundAssignment_2() { return cUpperBoundAssignment_2; }
942
943 //UpperBound
944 public RuleCall getUpperBoundUpperBoundParserRuleCall_2_0() { return cUpperBoundUpperBoundParserRuleCall_2_0; }
945 }
946 public class ExactMultiplicityElements extends AbstractParserRuleElementFinder {
947 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ExactMultiplicity");
948 private final Assignment cExactValueAssignment = (Assignment)rule.eContents().get(1);
949 private final RuleCall cExactValueINTTerminalRuleCall_0 = (RuleCall)cExactValueAssignment.eContents().get(0);
950
951 //ExactMultiplicity:
952 // exactValue=INT;
953 @Override public ParserRule getRule() { return rule; }
954
955 //exactValue=INT
956 public Assignment getExactValueAssignment() { return cExactValueAssignment; }
957
958 //INT
959 public RuleCall getExactValueINTTerminalRuleCall_0() { return cExactValueINTTerminalRuleCall_0; }
960 }
961 public class UpperBoundElements extends AbstractParserRuleElementFinder {
962 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.UpperBound");
963 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
964 private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
965 private final Keyword cAsteriskKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
966
967 //UpperBound returns ecore::EInt:
968 // INT | "*";
969 @Override public ParserRule getRule() { return rule; }
970
971 //INT | "*"
972 public Alternatives getAlternatives() { return cAlternatives; }
973
974 //INT
975 public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
976
977 //"*"
978 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; }
979 }
980 public class QualifiedNameElements extends AbstractParserRuleElementFinder {
981 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QualifiedName");
982 private final Group cGroup = (Group)rule.eContents().get(1);
983 private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
984 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
985 private final Keyword cColonColonKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
986 private final RuleCall cIDTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
987
988 //QualifiedName:
989 // ID ("::" ID)*;
990 @Override public ParserRule getRule() { return rule; }
991
992 //ID ("::" ID)*
993 public Group getGroup() { return cGroup; }
994
995 //ID
996 public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }
997
998 //("::" ID)*
999 public Group getGroup_1() { return cGroup_1; }
1000
1001 //"::"
1002 public Keyword getColonColonKeyword_1_0() { return cColonColonKeyword_1_0; }
1003
1004 //ID
1005 public RuleCall getIDTerminalRuleCall_1_1() { return cIDTerminalRuleCall_1_1; }
1006 }
1007
1008 public class LogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
1009 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.LogicValue");
1010 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1011 private final EnumLiteralDeclaration cTRUEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
1012 private final Keyword cTRUETrueKeyword_0_0 = (Keyword)cTRUEEnumLiteralDeclaration_0.eContents().get(0);
1013 private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
1014 private final Keyword cFALSEFalseKeyword_1_0 = (Keyword)cFALSEEnumLiteralDeclaration_1.eContents().get(0);
1015 private final EnumLiteralDeclaration cUNKNOWNEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
1016 private final Keyword cUNKNOWNUnknownKeyword_2_0 = (Keyword)cUNKNOWNEnumLiteralDeclaration_2.eContents().get(0);
1017
1018 //enum LogicValue:
1019 // TRUE="true" | FALSE="false" | UNKNOWN="unknown";
1020 public EnumRule getRule() { return rule; }
1021
1022 //TRUE="true" | FALSE="false" | UNKNOWN="unknown"
1023 public Alternatives getAlternatives() { return cAlternatives; }
1024
1025 //TRUE="true"
1026 public EnumLiteralDeclaration getTRUEEnumLiteralDeclaration_0() { return cTRUEEnumLiteralDeclaration_0; }
1027
1028 //"true"
1029 public Keyword getTRUETrueKeyword_0_0() { return cTRUETrueKeyword_0_0; }
1030
1031 //FALSE="false"
1032 public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_1() { return cFALSEEnumLiteralDeclaration_1; }
1033
1034 //"false"
1035 public Keyword getFALSEFalseKeyword_1_0() { return cFALSEFalseKeyword_1_0; }
1036
1037 //UNKNOWN="unknown"
1038 public EnumLiteralDeclaration getUNKNOWNEnumLiteralDeclaration_2() { return cUNKNOWNEnumLiteralDeclaration_2; }
1039
1040 //"unknown"
1041 public Keyword getUNKNOWNUnknownKeyword_2_0() { return cUNKNOWNUnknownKeyword_2_0; }
1042 }
1043 public class ShortLogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
1044 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
1045 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1046 private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
1047 private final Keyword cFALSEExclamationMarkKeyword_0_0 = (Keyword)cFALSEEnumLiteralDeclaration_0.eContents().get(0);
1048 private final EnumLiteralDeclaration cUNKNOWNEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
1049 private final Keyword cUNKNOWNQuestionMarkKeyword_1_0 = (Keyword)cUNKNOWNEnumLiteralDeclaration_1.eContents().get(0);
1050
1051 //enum ShortLogicValue returns LogicValue:
1052 // FALSE="!" | UNKNOWN="?";
1053 public EnumRule getRule() { return rule; }
1054
1055 //FALSE="!" | UNKNOWN="?"
1056 public Alternatives getAlternatives() { return cAlternatives; }
1057
1058 //FALSE="!"
1059 public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_0() { return cFALSEEnumLiteralDeclaration_0; }
1060
1061 //"!"
1062 public Keyword getFALSEExclamationMarkKeyword_0_0() { return cFALSEExclamationMarkKeyword_0_0; }
1063
1064 //UNKNOWN="?"
1065 public EnumLiteralDeclaration getUNKNOWNEnumLiteralDeclaration_1() { return cUNKNOWNEnumLiteralDeclaration_1; }
1066
1067 //"?"
1068 public Keyword getUNKNOWNQuestionMarkKeyword_1_0() { return cUNKNOWNQuestionMarkKeyword_1_0; }
1069 }
1070
1071 private final ProblemElements pProblem;
1072 private final StatementElements pStatement;
1073 private final ClassDeclarationElements pClassDeclaration;
1074 private final ReferenceDeclarationElements pReferenceDeclaration;
1075 private final PredicateDefinitionElements pPredicateDefinition;
1076 private final ParameterElements pParameter;
1077 private final ConjunctionElements pConjunction;
1078 private final LiteralElements pLiteral;
1079 private final NegativeLiteralElements pNegativeLiteral;
1080 private final AtomElements pAtom;
1081 private final AssertionElements pAssertion;
1082 private final LogicValueElements eLogicValue;
1083 private final ShortLogicValueElements eShortLogicValue;
1084 private final ScopeDeclarationElements pScopeDeclaration;
1085 private final TypeScopeElements pTypeScope;
1086 private final MultiplicityElements pMultiplicity;
1087 private final RangeMultiplicityElements pRangeMultiplicity;
1088 private final ExactMultiplicityElements pExactMultiplicity;
1089 private final UpperBoundElements pUpperBound;
1090 private final QualifiedNameElements pQualifiedName;
1091
1092 private final Grammar grammar;
1093
1094 private final TerminalsGrammarAccess gaTerminals;
1095
1096 @Inject
1097 public ProblemGrammarAccess(GrammarProvider grammarProvider,
1098 TerminalsGrammarAccess gaTerminals) {
1099 this.grammar = internalFindGrammar(grammarProvider);
1100 this.gaTerminals = gaTerminals;
1101 this.pProblem = new ProblemElements();
1102 this.pStatement = new StatementElements();
1103 this.pClassDeclaration = new ClassDeclarationElements();
1104 this.pReferenceDeclaration = new ReferenceDeclarationElements();
1105 this.pPredicateDefinition = new PredicateDefinitionElements();
1106 this.pParameter = new ParameterElements();
1107 this.pConjunction = new ConjunctionElements();
1108 this.pLiteral = new LiteralElements();
1109 this.pNegativeLiteral = new NegativeLiteralElements();
1110 this.pAtom = new AtomElements();
1111 this.pAssertion = new AssertionElements();
1112 this.eLogicValue = new LogicValueElements();
1113 this.eShortLogicValue = new ShortLogicValueElements();
1114 this.pScopeDeclaration = new ScopeDeclarationElements();
1115 this.pTypeScope = new TypeScopeElements();
1116 this.pMultiplicity = new MultiplicityElements();
1117 this.pRangeMultiplicity = new RangeMultiplicityElements();
1118 this.pExactMultiplicity = new ExactMultiplicityElements();
1119 this.pUpperBound = new UpperBoundElements();
1120 this.pQualifiedName = new QualifiedNameElements();
1121 }
1122
1123 protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
1124 Grammar grammar = grammarProvider.getGrammar(this);
1125 while (grammar != null) {
1126 if ("org.eclipse.viatra.solver.language.Problem".equals(grammar.getName())) {
1127 return grammar;
1128 }
1129 List<Grammar> grammars = grammar.getUsedGrammars();
1130 if (!grammars.isEmpty()) {
1131 grammar = grammars.iterator().next();
1132 } else {
1133 return null;
1134 }
1135 }
1136 return grammar;
1137 }
1138
1139 @Override
1140 public Grammar getGrammar() {
1141 return grammar;
1142 }
1143
1144
1145 public TerminalsGrammarAccess getTerminalsGrammarAccess() {
1146 return gaTerminals;
1147 }
1148
1149
1150 //Problem:
1151 // statements+=Statement*;
1152 public ProblemElements getProblemAccess() {
1153 return pProblem;
1154 }
1155
1156 public ParserRule getProblemRule() {
1157 return getProblemAccess().getRule();
1158 }
1159
1160 //Statement:
1161 // ClassDeclaration | PredicateDefinition | Assertion | ScopeDeclaration;
1162 public StatementElements getStatementAccess() {
1163 return pStatement;
1164 }
1165
1166 public ParserRule getStatementRule() {
1167 return getStatementAccess().getRule();
1168 }
1169
1170 //ClassDeclaration:
1171 // abstract?="abstract"? "class"
1172 // name=ID
1173 // ("extends" (superTypes+=[ClassDeclaration] |
1174 // "[" (superTypes+=[ClassDeclaration] ("," superTypes+=[ClassDeclaration])*)? "]") |
1175 // referenceDeclarations+=ReferenceDeclaration)?
1176 // ("," referenceDeclarations+=ReferenceDeclaration)*
1177 // ".";
1178 public ClassDeclarationElements getClassDeclarationAccess() {
1179 return pClassDeclaration;
1180 }
1181
1182 public ParserRule getClassDeclarationRule() {
1183 return getClassDeclarationAccess().getRule();
1184 }
1185
1186 //ReferenceDeclaration:
1187 // (containment?="contains" | "refers")
1188 // referenceType=[ClassDeclaration]
1189 // "[" multiplicity=Multiplicity "]"
1190 // name=ID
1191 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
1192 public ReferenceDeclarationElements getReferenceDeclarationAccess() {
1193 return pReferenceDeclaration;
1194 }
1195
1196 public ParserRule getReferenceDeclarationRule() {
1197 return getReferenceDeclarationAccess().getRule();
1198 }
1199
1200 //PredicateDefinition:
1201 // (error?="error" "pred"? | "pred")
1202 // name=ID
1203 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
1204 // (":=" bodies+=Conjunction (";" bodies+=Conjunction)*)?
1205 // ".";
1206 public PredicateDefinitionElements getPredicateDefinitionAccess() {
1207 return pPredicateDefinition;
1208 }
1209
1210 public ParserRule getPredicateDefinitionRule() {
1211 return getPredicateDefinitionAccess().getRule();
1212 }
1213
1214 //Parameter:
1215 // parameterType=[ClassDeclaration] name=ID;
1216 public ParameterElements getParameterAccess() {
1217 return pParameter;
1218 }
1219
1220 public ParserRule getParameterRule() {
1221 return getParameterAccess().getRule();
1222 }
1223
1224 //Conjunction:
1225 // literals+=Literal ("," literals+=Literal)*;
1226 public ConjunctionElements getConjunctionAccess() {
1227 return pConjunction;
1228 }
1229
1230 public ParserRule getConjunctionRule() {
1231 return getConjunctionAccess().getRule();
1232 }
1233
1234 //Literal:
1235 // Atom | NegativeLiteral;
1236 public LiteralElements getLiteralAccess() {
1237 return pLiteral;
1238 }
1239
1240 public ParserRule getLiteralRule() {
1241 return getLiteralAccess().getRule();
1242 }
1243
1244 //NegativeLiteral:
1245 // "!" atom=Atom;
1246 public NegativeLiteralElements getNegativeLiteralAccess() {
1247 return pNegativeLiteral;
1248 }
1249
1250 public ParserRule getNegativeLiteralRule() {
1251 return getNegativeLiteralAccess().getRule();
1252 }
1253
1254 //Atom:
1255 // relation=[Relation|QualifiedName]
1256 // transitiveClosure?="+"?
1257 // "(" (arguments+=[Variable] ("," arguments+=[Variable])*)? ")";
1258 public AtomElements getAtomAccess() {
1259 return pAtom;
1260 }
1261
1262 public ParserRule getAtomRule() {
1263 return getAtomAccess().getRule();
1264 }
1265
1266 //Assertion:
1267 // (relation=[Relation|QualifiedName]
1268 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
1269 // ":" value=LogicValue |
1270 // value=ShortLogicValue?
1271 // relation=[Relation|QualifiedName]
1272 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")")
1273 // ".";
1274 public AssertionElements getAssertionAccess() {
1275 return pAssertion;
1276 }
1277
1278 public ParserRule getAssertionRule() {
1279 return getAssertionAccess().getRule();
1280 }
1281
1282 //enum LogicValue:
1283 // TRUE="true" | FALSE="false" | UNKNOWN="unknown";
1284 public LogicValueElements getLogicValueAccess() {
1285 return eLogicValue;
1286 }
1287
1288 public EnumRule getLogicValueRule() {
1289 return getLogicValueAccess().getRule();
1290 }
1291
1292 //enum ShortLogicValue returns LogicValue:
1293 // FALSE="!" | UNKNOWN="?";
1294 public ShortLogicValueElements getShortLogicValueAccess() {
1295 return eShortLogicValue;
1296 }
1297
1298 public EnumRule getShortLogicValueRule() {
1299 return getShortLogicValueAccess().getRule();
1300 }
1301
1302 //ScopeDeclaration:
1303 // "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* ".";
1304 public ScopeDeclarationElements getScopeDeclarationAccess() {
1305 return pScopeDeclaration;
1306 }
1307
1308 public ParserRule getScopeDeclarationRule() {
1309 return getScopeDeclarationAccess().getRule();
1310 }
1311
1312 //TypeScope:
1313 // targetType=[ClassDeclaration]
1314 // (increment?="+=" | "=")
1315 // multiplicity=Multiplicity;
1316 public TypeScopeElements getTypeScopeAccess() {
1317 return pTypeScope;
1318 }
1319
1320 public ParserRule getTypeScopeRule() {
1321 return getTypeScopeAccess().getRule();
1322 }
1323
1324 //Multiplicity:
1325 // RangeMultiplicity | ExactMultiplicity;
1326 public MultiplicityElements getMultiplicityAccess() {
1327 return pMultiplicity;
1328 }
1329
1330 public ParserRule getMultiplicityRule() {
1331 return getMultiplicityAccess().getRule();
1332 }
1333
1334 //RangeMultiplicity:
1335 // lowerBound=INT ".." upperBound=UpperBound;
1336 public RangeMultiplicityElements getRangeMultiplicityAccess() {
1337 return pRangeMultiplicity;
1338 }
1339
1340 public ParserRule getRangeMultiplicityRule() {
1341 return getRangeMultiplicityAccess().getRule();
1342 }
1343
1344 //ExactMultiplicity:
1345 // exactValue=INT;
1346 public ExactMultiplicityElements getExactMultiplicityAccess() {
1347 return pExactMultiplicity;
1348 }
1349
1350 public ParserRule getExactMultiplicityRule() {
1351 return getExactMultiplicityAccess().getRule();
1352 }
1353
1354 //UpperBound returns ecore::EInt:
1355 // INT | "*";
1356 public UpperBoundElements getUpperBoundAccess() {
1357 return pUpperBound;
1358 }
1359
1360 public ParserRule getUpperBoundRule() {
1361 return getUpperBoundAccess().getRule();
1362 }
1363
1364 //QualifiedName:
1365 // ID ("::" ID)*;
1366 public QualifiedNameElements getQualifiedNameAccess() {
1367 return pQualifiedName;
1368 }
1369
1370 public ParserRule getQualifiedNameRule() {
1371 return getQualifiedNameAccess().getRule();
1372 }
1373
1374 //terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
1375 public TerminalRule getIDRule() {
1376 return gaTerminals.getIDRule();
1377 }
1378
1379 //terminal INT returns ecore::EInt: ('0'..'9')+;
1380 public TerminalRule getINTRule() {
1381 return gaTerminals.getINTRule();
1382 }
1383
1384 //terminal STRING:
1385 // '"' ( '\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\'|'"') )* '"' |
1386 // "'" ( '\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\'|"'") )* "'"
1387 // ;
1388 public TerminalRule getSTRINGRule() {
1389 return gaTerminals.getSTRINGRule();
1390 }
1391
1392 //terminal ML_COMMENT : '/*' -> '*/';
1393 public TerminalRule getML_COMMENTRule() {
1394 return gaTerminals.getML_COMMENTRule();
1395 }
1396
1397 //terminal SL_COMMENT : '//' !('\n'|'\r')* ('\r'? '\n')?;
1398 public TerminalRule getSL_COMMENTRule() {
1399 return gaTerminals.getSL_COMMENTRule();
1400 }
1401
1402 //terminal WS : (' '|'\t'|'\r'|'\n')+;
1403 public TerminalRule getWSRule() {
1404 return gaTerminals.getWSRule();
1405 }
1406
1407 //terminal ANY_OTHER: .;
1408 public TerminalRule getANY_OTHERRule() {
1409 return gaTerminals.getANY_OTHERRule();
1410 }
1411}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java
new file mode 100644
index 00000000..9cd73e1e
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java
@@ -0,0 +1,19 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.validation;
5
6import java.util.ArrayList;
7import java.util.List;
8import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
10
11public abstract class AbstractProblemValidator extends AbstractDeclarativeValidator {
12
13 @Override
14 protected List<EPackage> getEPackages() {
15 List<EPackage> result = new ArrayList<EPackage>();
16 result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/viatra/solver/language/model/Problem"));
17 return result;
18 }
19}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java
new file mode 100644
index 00000000..f5a0d87d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java
@@ -0,0 +1,22 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.validation;
5
6import org.eclipse.xtext.preferences.PreferenceKey;
7import org.eclipse.xtext.util.IAcceptor;
8import org.eclipse.xtext.validation.ConfigurableIssueCodesProvider;
9import org.eclipse.xtext.validation.SeverityConverter;
10
11@SuppressWarnings("restriction")
12public class ProblemConfigurableIssueCodesProvider extends ConfigurableIssueCodesProvider {
13 protected static final String ISSUE_CODE_PREFIX = "org.eclipse.viatra.solver.language.";
14
15 public static final String DEPRECATED_MODEL_PART = ISSUE_CODE_PREFIX + "deprecatedModelPart";
16
17 @Override
18 protected void initialize(IAcceptor<PreferenceKey> acceptor) {
19 super.initialize(acceptor);
20 acceptor.accept(create(DEPRECATED_MODEL_PART, SeverityConverter.SEVERITY_WARNING));
21 }
22}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend
new file mode 100644
index 00000000..b007cf8b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend
@@ -0,0 +1,30 @@
1/*
2 * generated by Xtext 2.25.0
3 */
4package org.eclipse.viatra.solver.language.tests
5
6import com.google.inject.Inject
7import org.eclipse.viatra.solver.language.model.problem.Problem
8import org.eclipse.xtext.testing.InjectWith
9import org.eclipse.xtext.testing.extensions.InjectionExtension
10import org.eclipse.xtext.testing.util.ParseHelper
11import org.junit.jupiter.api.Assertions
12import org.junit.jupiter.api.Test
13import org.junit.jupiter.api.^extension.ExtendWith
14
15@ExtendWith(InjectionExtension)
16@InjectWith(ProblemInjectorProvider)
17class ProblemParsingTest {
18 @Inject
19 ParseHelper<Problem> parseHelper
20
21 @Test
22 def void loadModel() {
23 val result = parseHelper.parse('''
24 Hello Xtext!
25 ''')
26 Assertions.assertNotNull(result)
27 val errors = result.eResource.errors
28 Assertions.assertTrue(errors.isEmpty, '''Unexpected errors: «errors.join(", ")»''')
29 }
30}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java
new file mode 100644
index 00000000..7d0ef1bb
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java
@@ -0,0 +1,69 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.tests;
5
6import com.google.inject.Guice;
7import com.google.inject.Injector;
8import org.eclipse.viatra.solver.language.ProblemRuntimeModule;
9import org.eclipse.viatra.solver.language.ProblemStandaloneSetup;
10import org.eclipse.xtext.testing.GlobalRegistries;
11import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento;
12import org.eclipse.xtext.testing.IInjectorProvider;
13import org.eclipse.xtext.testing.IRegistryConfigurator;
14
15public class ProblemInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
16
17 protected GlobalStateMemento stateBeforeInjectorCreation;
18 protected GlobalStateMemento stateAfterInjectorCreation;
19 protected Injector injector;
20
21 static {
22 GlobalRegistries.initializeDefaults();
23 }
24
25 @Override
26 public Injector getInjector() {
27 if (injector == null) {
28 this.injector = internalCreateInjector();
29 stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
30 }
31 return injector;
32 }
33
34 protected Injector internalCreateInjector() {
35 return new ProblemStandaloneSetup() {
36 @Override
37 public Injector createInjector() {
38 return Guice.createInjector(createRuntimeModule());
39 }
40 }.createInjectorAndDoEMFRegistration();
41 }
42
43 protected ProblemRuntimeModule createRuntimeModule() {
44 // make it work also with Maven/Tycho and OSGI
45 // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=493672
46 return new ProblemRuntimeModule() {
47 @Override
48 public ClassLoader bindClassLoaderToInstance() {
49 return ProblemInjectorProvider.class
50 .getClassLoader();
51 }
52 };
53 }
54
55 @Override
56 public void restoreRegistry() {
57 stateBeforeInjectorCreation.restoreGlobalState();
58 stateBeforeInjectorCreation = null;
59 }
60
61 @Override
62 public void setupRegistry() {
63 stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
64 if (injector == null) {
65 getInjector();
66 }
67 stateAfterInjectorCreation.restoreGlobalState();
68 }
69}
diff --git a/org.eclipse.viatra.solver.language.parent/settings.gradle b/org.eclipse.viatra.solver.language.parent/settings.gradle
new file mode 100644
index 00000000..5ddc5fc4
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/settings.gradle
@@ -0,0 +1,4 @@
1include 'org.eclipse.viatra.solver.language'
2include 'org.eclipse.viatra.solver.language.ide'
3include 'org.eclipse.viatra.solver.language.model'
4include 'org.eclipse.viatra.solver.language.web'