aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.project (renamed from org.eclipse.viatra.solver.language.parent/.project)0
-rw-r--r--.settings/org.eclipse.core.resources.prefs (renamed from org.eclipse.viatra.solver.language.parent/.settings/org.eclipse.core.resources.prefs)0
-rw-r--r--build.gradle (renamed from org.eclipse.viatra.solver.language.parent/build.gradle)2
-rw-r--r--gradle/source-layout.gradle (renamed from org.eclipse.viatra.solver.language.parent/gradle/source-layout.gradle)12
-rw-r--r--gradle/wrapper/gradle-wrapper.jar (renamed from org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.jar)bin55616 -> 55616 bytes
-rw-r--r--gradle/wrapper/gradle-wrapper.properties (renamed from org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.properties)2
-rwxr-xr-xgradlew (renamed from org.eclipse.viatra.solver.language.parent/gradlew)0
-rw-r--r--gradlew.bat (renamed from org.eclipse.viatra.solver.language.parent/gradlew.bat)0
-rw-r--r--language-ide/.classpath (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.classpath)2
-rw-r--r--language-ide/.gitignore (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.gitignore)0
-rw-r--r--language-ide/.project (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.project)2
-rw-r--r--language-ide/.settings/org.eclipse.core.resources.prefs (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.core.resources.prefs)0
-rw-r--r--language-ide/build.gradle (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/build.gradle)2
-rw-r--r--language-ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeModule.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeModule.java)0
-rw-r--r--language-ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeSetup.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeSetup.java)0
-rw-r--r--language-ide/src/main/java/org/eclipse/viatra/solver/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java (renamed from 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
-rw-r--r--language-ide/src/main/xtext-gen/META-INF/services/org.eclipse.xtext.ISetup (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/src/main/xtext-gen/META-INF/services/org.eclipse.xtext.ISetup)0
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/AbstractProblemIdeModule.java (renamed from 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
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/PartialProblemContentAssistParser.java (renamed from 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
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/ProblemParser.java (renamed from 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
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g (renamed from 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
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens (renamed from 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
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java (renamed from 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
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java (renamed from 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
-rw-r--r--language-model/.classpath (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.classpath)2
-rw-r--r--language-model/.gitignore (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.gitignore)0
-rw-r--r--language-model/.project (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.project)2
-rw-r--r--language-model/META-INF/MANIFEST.MF (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/META-INF/MANIFEST.MF)4
-rw-r--r--language-model/build.gradle (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.gradle)0
-rw-r--r--language-model/build.properties (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.properties)0
-rw-r--r--language-model/plugin.properties (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.properties)0
-rw-r--r--language-model/plugin.xml (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.xml)0
-rw-r--r--language-model/problem.aird (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/problem.aird)0
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java)0
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/EnumDeclaration.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/EnumDeclaration.java)0
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/UnboundedMultiplicity.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/UnboundedMultiplicity.java)0
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNode.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNode.java)0
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java)0
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/EnumDeclarationImpl.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/EnumDeclarationImpl.java)0
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/UnboundedMultiplicityImpl.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/UnboundedMultiplicityImpl.java)0
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeImpl.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeImpl.java)0
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java (renamed from 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
-rw-r--r--language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java (renamed from 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
-rw-r--r--language-model/src/main/resources/model/problem.ecore (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore)0
-rw-r--r--language-model/src/main/resources/model/problem.genmodel (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel)7
-rw-r--r--language-web/.classpath (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.classpath)2
-rw-r--r--language-web/.gitignore (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.gitignore)0
-rw-r--r--language-web/.project (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.project)2
-rw-r--r--language-web/.settings/org.eclipse.core.resources.prefs (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.core.resources.prefs)0
-rw-r--r--language-web/build.gradle (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/build.gradle)6
-rw-r--r--language-web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemServlet.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemServlet.java)0
-rw-r--r--language-web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebModule.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebModule.java)0
-rw-r--r--language-web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebSetup.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebSetup.java)0
-rw-r--r--language-web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java)0
-rw-r--r--language-web/src/main/webapp/index.html (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html)0
-rw-r--r--language-web/src/main/webapp/script.js (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js)0
-rw-r--r--language-web/src/main/webapp/style.css (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css)0
-rw-r--r--language-web/src/main/webapp/xtext-resources/generated/mode-problem.js (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js)1
-rw-r--r--language-web/src/main/xtext-gen/org/eclipse/viatra/solver/language/web/AbstractProblemWebModule.java (renamed from 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
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java)0
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin)bin6159 -> 6159 bytes
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java)0
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java (renamed from 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
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java (renamed from 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
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g (renamed from 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
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens (renamed from 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
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java (renamed from 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
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java (renamed from 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
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java)0
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java)0
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java)0
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java)0
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java)0
-rw-r--r--language-web/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java)0
-rw-r--r--language/.classpath (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.classpath)5
-rw-r--r--language/.gitignore (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.gitignore)0
-rw-r--r--language/.launch/Generate Problem (problem) Language Infrastructure.launch (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.launch/Generate Problem (problem) Language Infrastructure.launch)0
-rw-r--r--language/.project (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.project)2
-rw-r--r--language/.settings/org.eclipse.core.resources.prefs (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.core.resources.prefs)0
-rw-r--r--language/build.gradle (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/build.gradle)3
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2 (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2)9
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/ProblemRuntimeModule.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemRuntimeModule.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/ProblemStandaloneSetup.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemStandaloneSetup.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/ProblemUtil.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemUtil.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/conversion/ProblemValueConverterService.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/ProblemValueConverterService.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/conversion/UpperBoundValueConverter.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/UpperBoundValueConverter.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/generator/ProblemGenerator.xtend (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/generator/ProblemGenerator.xtend)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemDerivedStateComputer.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemDerivedStateComputer.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemLocationInFileProvider.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemLocationInFileProvider.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemResourceDescriptionStrategy.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemResourceDescriptionStrategy.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemGlobalScopeProvider.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemGlobalScopeProvider.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemLocalScopeProvider.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemLocalScopeProvider.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemScopeProvider.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemScopeProvider.java)0
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/validation/ProblemValidator.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/validation/ProblemValidator.java)0
-rw-r--r--language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem)2
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java201
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbinbin0 -> 6159 bytes
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java37
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java16
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java40
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g1909
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens72
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java1797
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java5296
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java9
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java369
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java139
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java1706
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java19
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java22
-rw-r--r--language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend)0
-rw-r--r--language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java (renamed from org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java)0
-rw-r--r--org.eclipse.viatra.solver.language.parent/.gitignore1
-rw-r--r--org.eclipse.viatra.solver.language.parent/settings.gradle4
-rw-r--r--settings.gradle4
164 files changed, 11682 insertions, 28 deletions
diff --git a/org.eclipse.viatra.solver.language.parent/.project b/.project
index 21b452ad..21b452ad 100644
--- a/org.eclipse.viatra.solver.language.parent/.project
+++ b/.project
diff --git a/org.eclipse.viatra.solver.language.parent/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
index 99f26c02..99f26c02 100644
--- a/org.eclipse.viatra.solver.language.parent/.settings/org.eclipse.core.resources.prefs
+++ b/.settings/org.eclipse.core.resources.prefs
diff --git a/org.eclipse.viatra.solver.language.parent/build.gradle b/build.gradle
index 69c33a9d..de4df91e 100644
--- a/org.eclipse.viatra.solver.language.parent/build.gradle
+++ b/build.gradle
@@ -22,7 +22,7 @@ subprojects {
22 apply from: "${rootDir}/gradle/source-layout.gradle" 22 apply from: "${rootDir}/gradle/source-layout.gradle"
23 apply plugin: 'eclipse' 23 apply plugin: 'eclipse'
24 24
25 group = 'org.eclipse.viatra.solver.language' 25 group = 'org.eclipse.viatra.solver'
26 version = '1.0.0-SNAPSHOT' 26 version = '1.0.0-SNAPSHOT'
27 27
28 sourceCompatibility = '11' 28 sourceCompatibility = '11'
diff --git a/org.eclipse.viatra.solver.language.parent/gradle/source-layout.gradle b/gradle/source-layout.gradle
index d347fb13..5febbee3 100644
--- a/org.eclipse.viatra.solver.language.parent/gradle/source-layout.gradle
+++ b/gradle/source-layout.gradle
@@ -26,3 +26,15 @@ jar {
26plugins.withId('war') { 26plugins.withId('war') {
27 webAppDirName = "src/main/webapp" 27 webAppDirName = "src/main/webapp"
28} 28}
29
30eclipse {
31 classpath {
32 file.whenMerged {
33 for (entry in entries) {
34 if (entry.path.endsWith('-gen')) {
35 entry.entryAttributes['ignore_optional_problems'] = true
36 }
37 }
38 }
39 }
40} \ No newline at end of file
diff --git a/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 5c2d1cf0..5c2d1cf0 100644
--- a/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.jar
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index f04d6a20..5028f28f 100644
--- a/org.eclipse.viatra.solver.language.parent/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
1distributionBase=GRADLE_USER_HOME 1distributionBase=GRADLE_USER_HOME
2distributionPath=wrapper/dists 2distributionPath=wrapper/dists
3distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.3-bin.zip 3distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
4zipStoreBase=GRADLE_USER_HOME 4zipStoreBase=GRADLE_USER_HOME
5zipStorePath=wrapper/dists 5zipStorePath=wrapper/dists
diff --git a/org.eclipse.viatra.solver.language.parent/gradlew b/gradlew
index 83f2acfd..83f2acfd 100755
--- a/org.eclipse.viatra.solver.language.parent/gradlew
+++ b/gradlew
diff --git a/org.eclipse.viatra.solver.language.parent/gradlew.bat b/gradlew.bat
index 24467a14..24467a14 100644
--- a/org.eclipse.viatra.solver.language.parent/gradlew.bat
+++ b/gradlew.bat
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.classpath b/language-ide/.classpath
index b0c652b5..c2583eb8 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.classpath
+++ b/language-ide/.classpath
@@ -10,12 +10,14 @@
10 <attributes> 10 <attributes>
11 <attribute name="gradle_scope" value="main"/> 11 <attribute name="gradle_scope" value="main"/>
12 <attribute name="gradle_used_by_scope" value="main,test"/> 12 <attribute name="gradle_used_by_scope" value="main,test"/>
13 <attribute name="ignore_optional_problems" value="true"/>
13 </attributes> 14 </attributes>
14 </classpathentry> 15 </classpathentry>
15 <classpathentry kind="src" output="bin/main" path="src/main/xtend-gen"> 16 <classpathentry kind="src" output="bin/main" path="src/main/xtend-gen">
16 <attributes> 17 <attributes>
17 <attribute name="gradle_scope" value="main"/> 18 <attribute name="gradle_scope" value="main"/>
18 <attribute name="gradle_used_by_scope" value="main,test"/> 19 <attribute name="gradle_used_by_scope" value="main,test"/>
20 <attribute name="ignore_optional_problems" value="true"/>
19 </attributes> 21 </attributes>
20 </classpathentry> 22 </classpathentry>
21 <classpathentry kind="src" output="bin/main" path="src/main/resources"> 23 <classpathentry kind="src" output="bin/main" path="src/main/resources">
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.gitignore b/language-ide/.gitignore
index 84c048a7..84c048a7 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.gitignore
+++ b/language-ide/.gitignore
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.project b/language-ide/.project
index bbe16f36..55c47a3f 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.project
+++ b/language-ide/.project
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription> 2<projectDescription>
3 <name>org.eclipse.viatra.solver.language</name> 3 <name>language-ide</name>
4 <comment></comment> 4 <comment></comment>
5 <projects> 5 <projects>
6 </projects> 6 </projects>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.core.resources.prefs b/language-ide/.settings/org.eclipse.core.resources.prefs
index 99f26c02..99f26c02 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.settings/org.eclipse.core.resources.prefs
+++ b/language-ide/.settings/org.eclipse.core.resources.prefs
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/build.gradle b/language-ide/build.gradle
index 1b060b13..9cc8cf52 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/build.gradle
+++ b/language-ide/build.gradle
@@ -3,7 +3,7 @@ plugins {
3} 3}
4 4
5dependencies { 5dependencies {
6 compile project(':org.eclipse.viatra.solver.language') 6 compile project(':language')
7 compile "org.eclipse.xtext:org.eclipse.xtext.ide:${xtextVersion}" 7 compile "org.eclipse.xtext:org.eclipse.xtext.ide:${xtextVersion}"
8 compile "org.eclipse.xtext:org.eclipse.xtext.xbase.ide:${xtextVersion}" 8 compile "org.eclipse.xtext:org.eclipse.xtext.xbase.ide:${xtextVersion}"
9} 9}
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/language-ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeModule.java
index c6e41049..c6e41049 100644
--- 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/language-ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeModule.java
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/language-ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeSetup.java
index ca1fec30..ca1fec30 100644
--- 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/language-ide/src/main/java/org/eclipse/viatra/solver/language/ide/ProblemIdeSetup.java
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/language-ide/src/main/java/org/eclipse/viatra/solver/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
index eee5070b..eee5070b 100644
--- 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/language-ide/src/main/java/org/eclipse/viatra/solver/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
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/language-ide/src/main/xtext-gen/META-INF/services/org.eclipse.xtext.ISetup
index 8e9ec892..8e9ec892 100644
--- 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/language-ide/src/main/xtext-gen/META-INF/services/org.eclipse.xtext.ISetup
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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/AbstractProblemIdeModule.java
index a44461f9..a44461f9 100644
--- 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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/AbstractProblemIdeModule.java
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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/PartialProblemContentAssistParser.java
index 890ab643..890ab643 100644
--- 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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/PartialProblemContentAssistParser.java
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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/ProblemParser.java
index e4142d9f..e4142d9f 100644
--- 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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/ProblemParser.java
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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g
index 0a7c03ba..0a7c03ba 100644
--- 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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g
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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens
index c0cdd3c6..c0cdd3c6 100644
--- 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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens
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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java
index e8f6f12d..e8f6f12d 100644
--- 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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java
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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java
index 0f70a158..0f70a158 100644
--- 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/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.classpath b/language-model/.classpath
index 68ef59f4..2e8747d8 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.classpath
+++ b/language-model/.classpath
@@ -4,6 +4,7 @@
4 <attributes> 4 <attributes>
5 <attribute name="gradle_scope" value="main"/> 5 <attribute name="gradle_scope" value="main"/>
6 <attribute name="gradle_used_by_scope" value="main,test"/> 6 <attribute name="gradle_used_by_scope" value="main,test"/>
7 <attribute name="ignore_optional_problems" value="true"/>
7 </attributes> 8 </attributes>
8 </classpathentry> 9 </classpathentry>
9 <classpathentry kind="src" output="bin/main" path="src/main/resources"> 10 <classpathentry kind="src" output="bin/main" path="src/main/resources">
@@ -14,6 +15,5 @@
14 </classpathentry> 15 </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.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="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
17 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
18 <classpathentry kind="output" path="bin/default"/> 18 <classpathentry kind="output" path="bin/default"/>
19</classpath> 19</classpath>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.gitignore b/language-model/.gitignore
index 4a95481e..4a95481e 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.gitignore
+++ b/language-model/.gitignore
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.project b/language-model/.project
index 45632ed8..246372ea 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/.project
+++ b/language-model/.project
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription> 2<projectDescription>
3 <name>org.eclipse.viatra.solver.language.model</name> 3 <name>language-model</name>
4 <comment></comment> 4 <comment></comment>
5 <projects> 5 <projects>
6 </projects> 6 </projects>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/META-INF/MANIFEST.MF b/language-model/META-INF/MANIFEST.MF
index e1ec0cd4..66bc6985 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/META-INF/MANIFEST.MF
+++ b/language-model/META-INF/MANIFEST.MF
@@ -1,8 +1,8 @@
1Manifest-Version: 1.0 1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2 2Bundle-ManifestVersion: 2
3Bundle-Name: %pluginName 3Bundle-Name: %pluginName
4Bundle-SymbolicName: org.eclipse.viatra.solver.language.model;singleton:=true 4Bundle-SymbolicName: language-model;singleton:=true
5Automatic-Module-Name: org.eclipse.viatra.solver.language.model 5Automatic-Module-Name: language-model
6Bundle-Version: 0.1.0.qualifier 6Bundle-Version: 0.1.0.qualifier
7Bundle-ClassPath: . 7Bundle-ClassPath: .
8Bundle-Vendor: %providerName 8Bundle-Vendor: %providerName
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.gradle b/language-model/build.gradle
index 2f9e3257..2f9e3257 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.gradle
+++ b/language-model/build.gradle
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.properties b/language-model/build.properties
index 97e1d1b5..97e1d1b5 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/build.properties
+++ b/language-model/build.properties
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.properties b/language-model/plugin.properties
index 9050bf16..9050bf16 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.properties
+++ b/language-model/plugin.properties
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.xml b/language-model/plugin.xml
index af07e296..af07e296 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/plugin.xml
+++ b/language-model/plugin.xml
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/problem.aird b/language-model/problem.aird
index 047b72a2..047b72a2 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/problem.aird
+++ b/language-model/problem.aird
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/Argument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java
index 4857b38a..4857b38a 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java
index 758212fb..758212fb 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java
index d1b4d3fe..d1b4d3fe 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java
index d0f471be..d0f471be 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java
index df8e0cef..df8e0cef 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java
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/EnumDeclaration.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/EnumDeclaration.java
index 81f2967d..81f2967d 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/EnumDeclaration.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/EnumDeclaration.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java
index 413c2ad1..413c2ad1 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java
index 1a1d5f8a..1a1d5f8a 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java
index 6d1793c6..6d1793c6 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java
index acccf79b..acccf79b 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java
index 2efbd25a..2efbd25a 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java
index d3d573fa..d3d573fa 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java
index 3302b041..3302b041 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java
index ac3aa2b9..ac3aa2b9 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java
index 3da08af3..3da08af3 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java
index 7bedca1b..7bedca1b 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java
index 175d5fff..175d5fff 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java
index 7e19bd22..7e19bd22 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
index e4332d19..e4332d19 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
index ec96501d..ec96501d 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java
index 65bcc440..65bcc440 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java
index 38650d66..38650d66 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java
index 2754e9d0..2754e9d0 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java
index f728589d..f728589d 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java
index 90303639..90303639 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java
index 76a95dd5..76a95dd5 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java
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/UnboundedMultiplicity.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/UnboundedMultiplicity.java
index 725311a4..725311a4 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/UnboundedMultiplicity.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/UnboundedMultiplicity.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java
index cba5740c..cba5740c 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java
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/VariableOrNode.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNode.java
index 65c315e2..65c315e2 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNode.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNode.java
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/ArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java
index f7d045ca..f7d045ca 100644
--- 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/ArgumentImpl.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java
index 5856a276..5856a276 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java
index d70fe90b..d70fe90b 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java
index 774a6e33..774a6e33 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java
index 72258cc1..72258cc1 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java
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/EnumDeclarationImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/EnumDeclarationImpl.java
index aac00423..aac00423 100644
--- 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/EnumDeclarationImpl.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/EnumDeclarationImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java
index b3896ac2..b3896ac2 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java
index 03a31a16..03a31a16 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java
index c48bdb0b..c48bdb0b 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java
index 8d769eb0..8d769eb0 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java
index b414013b..b414013b 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java
index 857a779d..857a779d 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java
index 0c08bb1b..0c08bb1b 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java
index 06eea3f3..06eea3f3 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java
index 968b6de1..968b6de1 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java
index 2f4144b9..2f4144b9 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java
index 191021c4..191021c4 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java
index d10ff2f0..d10ff2f0 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java
index 1122b5be..1122b5be 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java
index 8df2715f..8df2715f 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java
index 20d43043..20d43043 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java
index f178d9e0..f178d9e0 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java
index 608cc015..608cc015 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java
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/UnboundedMultiplicityImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/UnboundedMultiplicityImpl.java
index 34283189..34283189 100644
--- 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/UnboundedMultiplicityImpl.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/UnboundedMultiplicityImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java
index 645ac39c..645ac39c 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java
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/VariableOrNodeImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeImpl.java
index 4964a019..4964a019 100644
--- 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/VariableOrNodeImpl.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeImpl.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
index 3fc3ca75..3fc3ca75 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
index b74718b5..b74718b5 100644
--- 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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore b/language-model/src/main/resources/model/problem.ecore
index 99404f61..99404f61 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore
+++ b/language-model/src/main/resources/model/problem.ecore
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel b/language-model/src/main/resources/model/problem.genmodel
index 2eb9a988..8a881ff7 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel
+++ b/language-model/src/main/resources/model/problem.genmodel
@@ -1,10 +1,9 @@
1<?xml version="1.0" encoding="UTF-8"?> 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" 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" 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" 4 modelDirectory="/language-model/src/main/emf-gen" creationIcons="false"
5 creationIcons="false" editDirectory="/org.eclipse.viatra.solver.language.model.edit/src-gen" 5 editDirectory="/language-edit/src/main/emf-gen" editorDirectory="/org.eclipse.viatra.solver.language.model.editor/src-gen"
6 editorDirectory="/org.eclipse.viatra.solver.language.model.editor/src-gen" modelPluginID="org.eclipse.viatra.solver.language.model" 6 modelPluginID="language-model" modelName="Problem" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
7 modelName="Problem" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
8 codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" 7 codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
9 copyrightFields="false" operationReflection="true" importOrganizing="true"> 8 copyrightFields="false" operationReflection="true" importOrganizing="true">
10 <foreignModel>problem.ecore</foreignModel> 9 <foreignModel>problem.ecore</foreignModel>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.classpath b/language-web/.classpath
index 82e9aceb..402c9caf 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.classpath
+++ b/language-web/.classpath
@@ -10,12 +10,14 @@
10 <attributes> 10 <attributes>
11 <attribute name="gradle_scope" value="main"/> 11 <attribute name="gradle_scope" value="main"/>
12 <attribute name="gradle_used_by_scope" value="main,test"/> 12 <attribute name="gradle_used_by_scope" value="main,test"/>
13 <attribute name="ignore_optional_problems" value="true"/>
13 </attributes> 14 </attributes>
14 </classpathentry> 15 </classpathentry>
15 <classpathentry kind="src" output="bin/main" path="src/main/xtend-gen"> 16 <classpathentry kind="src" output="bin/main" path="src/main/xtend-gen">
16 <attributes> 17 <attributes>
17 <attribute name="gradle_scope" value="main"/> 18 <attribute name="gradle_scope" value="main"/>
18 <attribute name="gradle_used_by_scope" value="main,test"/> 19 <attribute name="gradle_used_by_scope" value="main,test"/>
20 <attribute name="ignore_optional_problems" value="true"/>
19 </attributes> 21 </attributes>
20 </classpathentry> 22 </classpathentry>
21 <classpathentry kind="src" output="bin/main" path="src/main/resources"> 23 <classpathentry kind="src" output="bin/main" path="src/main/resources">
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.gitignore b/language-web/.gitignore
index 84c048a7..84c048a7 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.gitignore
+++ b/language-web/.gitignore
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.project b/language-web/.project
index 9b5a8e63..028fb4b9 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.project
+++ b/language-web/.project
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription> 2<projectDescription>
3 <name>org.eclipse.viatra.solver.language.web</name> 3 <name>language-web</name>
4 <comment></comment> 4 <comment></comment>
5 <projects> 5 <projects>
6 </projects> 6 </projects>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.core.resources.prefs b/language-web/.settings/org.eclipse.core.resources.prefs
index 99f26c02..99f26c02 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/.settings/org.eclipse.core.resources.prefs
+++ b/language-web/.settings/org.eclipse.core.resources.prefs
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/build.gradle b/language-web/build.gradle
index 495b1339..3e0008da 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/build.gradle
+++ b/language-web/build.gradle
@@ -3,8 +3,8 @@ plugins {
3} 3}
4 4
5dependencies { 5dependencies {
6 compile project(':org.eclipse.viatra.solver.language') 6 compile project(':language')
7 compile project(':org.eclipse.viatra.solver.language.ide') 7 compile project(':language-ide')
8 compile "org.eclipse.xtext:org.eclipse.xtext.xbase.web:${xtextVersion}" 8 compile "org.eclipse.xtext:org.eclipse.xtext.xbase.web:${xtextVersion}"
9 compile "org.eclipse.xtext:org.eclipse.xtext.web.servlet:${xtextVersion}" 9 compile "org.eclipse.xtext:org.eclipse.xtext.web.servlet:${xtextVersion}"
10 compile "org.eclipse.xtend:org.eclipse.xtend.lib:${xtextVersion}" 10 compile "org.eclipse.xtend:org.eclipse.xtend.lib:${xtextVersion}"
@@ -34,4 +34,4 @@ eclipse {
34 natures.remove('org.eclipse.wst.common.modulecore.ModuleCoreNature') 34 natures.remove('org.eclipse.wst.common.modulecore.ModuleCoreNature')
35 } 35 }
36 } 36 }
37} \ No newline at end of file 37}
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/language-web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemServlet.java
index 5de708f0..5de708f0 100644
--- 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/language-web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemServlet.java
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/language-web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebModule.java
index 0eea7f1e..0eea7f1e 100644
--- 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/language-web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebModule.java
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/language-web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebSetup.java
index 8d5778af..8d5778af 100644
--- 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/language-web/src/main/java/org/eclipse/viatra/solver/language/web/ProblemWebSetup.java
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/language-web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java
index d25f4ae9..d25f4ae9 100644
--- 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/language-web/src/main/java/org/eclipse/viatra/solver/language/web/ServerLauncher.java
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html b/language-web/src/main/webapp/index.html
index 3fb66d62..3fb66d62 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/index.html
+++ b/language-web/src/main/webapp/index.html
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js b/language-web/src/main/webapp/script.js
index dced7eca..dced7eca 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/script.js
+++ b/language-web/src/main/webapp/script.js
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css b/language-web/src/main/webapp/style.css
index 9a89dd81..9a89dd81 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/style.css
+++ b/language-web/src/main/webapp/style.css
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/language-web/src/main/webapp/xtext-resources/generated/mode-problem.js
index 84515ad6..89373b1c 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.web/src/main/webapp/xtext-resources/generated/mode-problem.js
+++ b/language-web/src/main/webapp/xtext-resources/generated/mode-problem.js
@@ -5,7 +5,6 @@ define(["codemirror", "codemirror/addon/mode/simple"], function(CodeMirror, Simp
5 {token: "comment", regex: "\\/\\/.*$"}, 5 {token: "comment", regex: "\\/\\/.*$"},
6 {token: "comment", regex: "\\/\\*", next : "comment"}, 6 {token: "comment", regex: "\\/\\*", next : "comment"},
7 {token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'}, 7 {token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},
8 {token: "string", regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},
9 {token: "constant.numeric", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"}, 8 {token: "constant.numeric", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},
10 {token: "lparen", regex: "[\\[({]"}, 9 {token: "lparen", regex: "[\\[({]"},
11 {token: "rparen", regex: "[\\])}]"}, 10 {token: "rparen", regex: "[\\])}]"},
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/language-web/src/main/xtext-gen/org/eclipse/viatra/solver/language/web/AbstractProblemWebModule.java
index fefb7da3..fefb7da3 100644
--- 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/language-web/src/main/xtext-gen/org/eclipse/viatra/solver/language/web/AbstractProblemWebModule.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java
index 642b465b..642b465b 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java
+++ b/language-web/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
index cabf6537..cabf6537 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
+++ b/language-web/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/language-web/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java
index 0366f9cd..0366f9cd 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java
+++ b/language-web/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java
index b7ecf3f6..b7ecf3f6 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java
index 3af86cab..3af86cab 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
index 64db0417..64db0417 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
index e968ac14..e968ac14 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
index 1fd1e166..1fd1e166 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
index 28b54551..28b54551 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java
index 5b024d47..5b024d47 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
index cb44c31f..cb44c31f 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
index 3f0a3f05..3f0a3f05 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
index 4368036b..4368036b 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java
index 9cd73e1e..9cd73e1e 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java
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/language-web/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java
index f5a0d87d..f5a0d87d 100644
--- 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/language-web/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.classpath b/language/.classpath
index 032f6f94..058cfd22 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.classpath
+++ b/language/.classpath
@@ -8,15 +8,16 @@
8 </classpathentry> 8 </classpathentry>
9 <classpathentry kind="src" output="bin/main" path="src/main/xtext-gen"> 9 <classpathentry kind="src" output="bin/main" path="src/main/xtext-gen">
10 <attributes> 10 <attributes>
11 <attribute name="ignore_optional_problems" value="true"/>
12 <attribute name="gradle_scope" value="main"/> 11 <attribute name="gradle_scope" value="main"/>
13 <attribute name="gradle_used_by_scope" value="main,test"/> 12 <attribute name="gradle_used_by_scope" value="main,test"/>
13 <attribute name="ignore_optional_problems" value="true"/>
14 </attributes> 14 </attributes>
15 </classpathentry> 15 </classpathentry>
16 <classpathentry kind="src" output="bin/main" path="src/main/xtend-gen"> 16 <classpathentry kind="src" output="bin/main" path="src/main/xtend-gen">
17 <attributes> 17 <attributes>
18 <attribute name="gradle_scope" value="main"/> 18 <attribute name="gradle_scope" value="main"/>
19 <attribute name="gradle_used_by_scope" value="main,test"/> 19 <attribute name="gradle_used_by_scope" value="main,test"/>
20 <attribute name="ignore_optional_problems" value="true"/>
20 </attributes> 21 </attributes>
21 </classpathentry> 22 </classpathentry>
22 <classpathentry kind="src" output="bin/main" path="src/main/resources"> 23 <classpathentry kind="src" output="bin/main" path="src/main/resources">
@@ -37,6 +38,7 @@
37 <attribute name="gradle_scope" value="test"/> 38 <attribute name="gradle_scope" value="test"/>
38 <attribute name="gradle_used_by_scope" value="test"/> 39 <attribute name="gradle_used_by_scope" value="test"/>
39 <attribute name="test" value="true"/> 40 <attribute name="test" value="true"/>
41 <attribute name="ignore_optional_problems" value="true"/>
40 </attributes> 42 </attributes>
41 </classpathentry> 43 </classpathentry>
42 <classpathentry kind="src" output="bin/test" path="src/test/xtend-gen"> 44 <classpathentry kind="src" output="bin/test" path="src/test/xtend-gen">
@@ -44,6 +46,7 @@
44 <attribute name="gradle_scope" value="test"/> 46 <attribute name="gradle_scope" value="test"/>
45 <attribute name="gradle_used_by_scope" value="test"/> 47 <attribute name="gradle_used_by_scope" value="test"/>
46 <attribute name="test" value="true"/> 48 <attribute name="test" value="true"/>
49 <attribute name="ignore_optional_problems" value="true"/>
47 </attributes> 50 </attributes>
48 </classpathentry> 51 </classpathentry>
49 <classpathentry kind="src" output="bin/test" path="src/test/resources"> 52 <classpathentry kind="src" output="bin/test" path="src/test/resources">
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.gitignore b/language/.gitignore
index 84c048a7..84c048a7 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.gitignore
+++ b/language/.gitignore
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.launch/Generate Problem (problem) Language Infrastructure.launch b/language/.launch/Generate Problem (problem) Language Infrastructure.launch
index 042ecc17..042ecc17 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.launch/Generate Problem (problem) Language Infrastructure.launch
+++ b/language/.launch/Generate Problem (problem) Language Infrastructure.launch
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.project b/language/.project
index a931f0bf..c2d3df18 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.ide/.project
+++ b/language/.project
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription> 2<projectDescription>
3 <name>org.eclipse.viatra.solver.language.ide</name> 3 <name>language</name>
4 <comment></comment> 4 <comment></comment>
5 <projects> 5 <projects>
6 </projects> 6 </projects>
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.core.resources.prefs b/language/.settings/org.eclipse.core.resources.prefs
index 99f26c02..99f26c02 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/.settings/org.eclipse.core.resources.prefs
+++ b/language/.settings/org.eclipse.core.resources.prefs
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/build.gradle b/language/build.gradle
index 558f08bb..f32a60e1 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/build.gradle
+++ b/language/build.gradle
@@ -6,7 +6,7 @@ dependencies {
6 compile "org.eclipse.xtext:org.eclipse.xtext:${xtextVersion}" 6 compile "org.eclipse.xtext:org.eclipse.xtext:${xtextVersion}"
7 compile "org.eclipse.xtext:org.eclipse.xtext.xbase:${xtextVersion}" 7 compile "org.eclipse.xtext:org.eclipse.xtext.xbase:${xtextVersion}"
8 compile 'org.eclipse.emf:org.eclipse.emf.ecore' 8 compile 'org.eclipse.emf:org.eclipse.emf.ecore'
9 compile project(':org.eclipse.viatra.solver.language.model') 9 compile project(':language-model')
10} 10}
11 11
12configurations { 12configurations {
@@ -39,4 +39,5 @@ test {
39 39
40generateXtext.dependsOn(generateXtextLanguage) 40generateXtext.dependsOn(generateXtextLanguage)
41clean.dependsOn(cleanGenerateXtextLanguage) 41clean.dependsOn(cleanGenerateXtextLanguage)
42
42eclipse.classpath.plusConfigurations += [configurations.mwe2] 43eclipse.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/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2
index 46812355..76563e2c 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2
@@ -9,13 +9,17 @@ Workflow {
9 component = XtextGenerator { 9 component = XtextGenerator {
10 configuration = { 10 configuration = {
11 project = StandardProjectConfig { 11 project = StandardProjectConfig {
12 baseName = "org.eclipse.viatra.solver.language" 12 baseName = "language"
13 rootPath = rootPath 13 rootPath = rootPath
14 runtimeTest = { 14 runtimeTest = {
15 enabled = true 15 enabled = true
16 } 16 }
17 genericIde = {
18 name = "language-ide"
19 }
17 web = { 20 web = {
18 enabled = true 21 enabled = true
22 name = "language-web"
19 } 23 }
20 mavenLayout = true 24 mavenLayout = true
21 } 25 }
@@ -30,7 +34,7 @@ Workflow {
30 language = StandardLanguage { 34 language = StandardLanguage {
31 name = "org.eclipse.viatra.solver.language.Problem" 35 name = "org.eclipse.viatra.solver.language.Problem"
32 fileExtensions = "problem" 36 fileExtensions = "problem"
33 referencedResource = "platform:/resource/org.eclipse.viatra.solver.language.model/model/problem.genmodel" 37 referencedResource = "platform:/resource/language-model/model/problem.genmodel"
34 38
35 serializer = { 39 serializer = {
36 generateStub = false 40 generateStub = false
@@ -48,6 +52,7 @@ Workflow {
48 } 52 }
49 webSupport = { 53 webSupport = {
50 framework = "CodeMirror" 54 framework = "CodeMirror"
55 suppressPattern = "string_singleQuote"
51 } 56 }
52 } 57 }
53 } 58 }
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/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext
index 5f8b35f3..5f8b35f3 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext
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/language/src/main/java/org/eclipse/viatra/solver/language/ProblemRuntimeModule.java
index eb9ddd77..eb9ddd77 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemRuntimeModule.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/ProblemRuntimeModule.java
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/language/src/main/java/org/eclipse/viatra/solver/language/ProblemStandaloneSetup.java
index 5652f859..5652f859 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemStandaloneSetup.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/ProblemStandaloneSetup.java
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemUtil.java b/language/src/main/java/org/eclipse/viatra/solver/language/ProblemUtil.java
index 09f062f5..09f062f5 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/ProblemUtil.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/ProblemUtil.java
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/language/src/main/java/org/eclipse/viatra/solver/language/conversion/ProblemValueConverterService.java
index 4f5fd069..4f5fd069 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/ProblemValueConverterService.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/conversion/ProblemValueConverterService.java
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/language/src/main/java/org/eclipse/viatra/solver/language/conversion/UpperBoundValueConverter.java
index 3111b69b..3111b69b 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/conversion/UpperBoundValueConverter.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/conversion/UpperBoundValueConverter.java
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/language/src/main/java/org/eclipse/viatra/solver/language/generator/ProblemGenerator.xtend
index 0930f244..0930f244 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/generator/ProblemGenerator.xtend
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/generator/ProblemGenerator.xtend
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/language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java
index 3cee31f3..3cee31f3 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java
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/language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemDerivedStateComputer.java
index b885ce0e..b885ce0e 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemDerivedStateComputer.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemDerivedStateComputer.java
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/language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemLocationInFileProvider.java
index 94dbdfee..94dbdfee 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemLocationInFileProvider.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemLocationInFileProvider.java
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/language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemResourceDescriptionStrategy.java
index edb25a1c..edb25a1c 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemResourceDescriptionStrategy.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/resource/ProblemResourceDescriptionStrategy.java
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/language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemGlobalScopeProvider.java
index 05da277a..05da277a 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemGlobalScopeProvider.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemGlobalScopeProvider.java
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemLocalScopeProvider.java b/language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemLocalScopeProvider.java
index e832bb09..e832bb09 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemLocalScopeProvider.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemLocalScopeProvider.java
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/language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemScopeProvider.java
index fc4034ae..fc4034ae 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemScopeProvider.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/scoping/ProblemScopeProvider.java
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/language/src/main/java/org/eclipse/viatra/solver/language/validation/ProblemValidator.java
index 2b17e222..2b17e222 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/java/org/eclipse/viatra/solver/language/validation/ProblemValidator.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/validation/ProblemValidator.java
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem b/language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem
index 49b67d5a..13398ce8 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem
+++ b/language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem
@@ -14,4 +14,4 @@ class double.
14 14
15class int extends double. 15class int extends double.
16 16
17class string. \ No newline at end of file 17class string.
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java
new file mode 100644
index 00000000..642b465b
--- /dev/null
+++ b/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/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
new file mode 100644
index 00000000..cabf6537
--- /dev/null
+++ b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
Binary files differ
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java
new file mode 100644
index 00000000..0366f9cd
--- /dev/null
+++ b/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/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java
new file mode 100644
index 00000000..b7ecf3f6
--- /dev/null
+++ b/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/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java
new file mode 100644
index 00000000..3af86cab
--- /dev/null
+++ b/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/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
new file mode 100644
index 00000000..64db0417
--- /dev/null
+++ b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
@@ -0,0 +1,1909 @@
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 otherlv_0='problem'
82 {
83 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0());
84 }
85 (
86 (
87 {
88 newCompositeNode(grammarAccess.getProblemAccess().getNameIdentifierParserRuleCall_0_1_0());
89 }
90 lv_name_1_0=ruleIdentifier
91 {
92 if ($current==null) {
93 $current = createModelElementForParent(grammarAccess.getProblemRule());
94 }
95 set(
96 $current,
97 "name",
98 lv_name_1_0,
99 "org.eclipse.viatra.solver.language.Problem.Identifier");
100 afterParserOrEnumRuleCall();
101 }
102 )
103 )
104 otherlv_2='.'
105 {
106 newLeafNode(otherlv_2, grammarAccess.getProblemAccess().getFullStopKeyword_0_2());
107 }
108 )?
109 (
110 (
111 {
112 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_1_0());
113 }
114 lv_statements_3_0=ruleStatement
115 {
116 if ($current==null) {
117 $current = createModelElementForParent(grammarAccess.getProblemRule());
118 }
119 add(
120 $current,
121 "statements",
122 lv_statements_3_0,
123 "org.eclipse.viatra.solver.language.Problem.Statement");
124 afterParserOrEnumRuleCall();
125 }
126 )
127 )*
128 )
129;
130
131// Entry rule entryRuleStatement
132entryRuleStatement returns [EObject current=null]:
133 { newCompositeNode(grammarAccess.getStatementRule()); }
134 iv_ruleStatement=ruleStatement
135 { $current=$iv_ruleStatement.current; }
136 EOF;
137
138// Rule Statement
139ruleStatement returns [EObject current=null]
140@init {
141 enterRule();
142}
143@after {
144 leaveRule();
145}:
146 (
147 {
148 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
149 }
150 this_ClassDeclaration_0=ruleClassDeclaration
151 {
152 $current = $this_ClassDeclaration_0.current;
153 afterParserOrEnumRuleCall();
154 }
155 |
156 {
157 newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_1());
158 }
159 this_EnumDeclaration_1=ruleEnumDeclaration
160 {
161 $current = $this_EnumDeclaration_1.current;
162 afterParserOrEnumRuleCall();
163 }
164 |
165 {
166 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_2());
167 }
168 this_PredicateDefinition_2=rulePredicateDefinition
169 {
170 $current = $this_PredicateDefinition_2.current;
171 afterParserOrEnumRuleCall();
172 }
173 |
174 {
175 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_3());
176 }
177 this_Assertion_3=ruleAssertion
178 {
179 $current = $this_Assertion_3.current;
180 afterParserOrEnumRuleCall();
181 }
182 |
183 {
184 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_4());
185 }
186 this_ScopeDeclaration_4=ruleScopeDeclaration
187 {
188 $current = $this_ScopeDeclaration_4.current;
189 afterParserOrEnumRuleCall();
190 }
191 )
192;
193
194// Entry rule entryRuleClassDeclaration
195entryRuleClassDeclaration returns [EObject current=null]:
196 { newCompositeNode(grammarAccess.getClassDeclarationRule()); }
197 iv_ruleClassDeclaration=ruleClassDeclaration
198 { $current=$iv_ruleClassDeclaration.current; }
199 EOF;
200
201// Rule ClassDeclaration
202ruleClassDeclaration returns [EObject current=null]
203@init {
204 enterRule();
205}
206@after {
207 leaveRule();
208}:
209 (
210 (
211 (
212 lv_abstract_0_0='abstract'
213 {
214 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
215 }
216 {
217 if ($current==null) {
218 $current = createModelElement(grammarAccess.getClassDeclarationRule());
219 }
220 setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
221 }
222 )
223 )?
224 otherlv_1='class'
225 {
226 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
227 }
228 (
229 (
230 {
231 newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0());
232 }
233 lv_name_2_0=ruleIdentifier
234 {
235 if ($current==null) {
236 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
237 }
238 set(
239 $current,
240 "name",
241 lv_name_2_0,
242 "org.eclipse.viatra.solver.language.Problem.Identifier");
243 afterParserOrEnumRuleCall();
244 }
245 )
246 )
247 (
248 otherlv_3='extends'
249 {
250 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
251 }
252 (
253 (
254 {
255 if ($current==null) {
256 $current = createModelElement(grammarAccess.getClassDeclarationRule());
257 }
258 }
259 {
260 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0());
261 }
262 ruleQualifiedName
263 {
264 afterParserOrEnumRuleCall();
265 }
266 )
267 )
268 (
269 otherlv_5=','
270 {
271 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
272 }
273 (
274 (
275 {
276 if ($current==null) {
277 $current = createModelElement(grammarAccess.getClassDeclarationRule());
278 }
279 }
280 {
281 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0());
282 }
283 ruleQualifiedName
284 {
285 afterParserOrEnumRuleCall();
286 }
287 )
288 )
289 )*
290 )?
291 (
292 (
293 otherlv_7='{'
294 {
295 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
296 }
297 (
298 (
299 (
300 {
301 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0());
302 }
303 lv_referenceDeclarations_8_0=ruleReferenceDeclaration
304 {
305 if ($current==null) {
306 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
307 }
308 add(
309 $current,
310 "referenceDeclarations",
311 lv_referenceDeclarations_8_0,
312 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
313 afterParserOrEnumRuleCall();
314 }
315 )
316 )
317 (
318 otherlv_9=';'
319 {
320 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1());
321 }
322 )?
323 )*
324 otherlv_10='}'
325 {
326 newLeafNode(otherlv_10, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2());
327 }
328 )
329 |
330 otherlv_11='.'
331 {
332 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1());
333 }
334 )
335 )
336;
337
338// Entry rule entryRuleEnumDeclaration
339entryRuleEnumDeclaration returns [EObject current=null]:
340 { newCompositeNode(grammarAccess.getEnumDeclarationRule()); }
341 iv_ruleEnumDeclaration=ruleEnumDeclaration
342 { $current=$iv_ruleEnumDeclaration.current; }
343 EOF;
344
345// Rule EnumDeclaration
346ruleEnumDeclaration returns [EObject current=null]
347@init {
348 enterRule();
349}
350@after {
351 leaveRule();
352}:
353 (
354 otherlv_0='enum'
355 {
356 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0());
357 }
358 (
359 (
360 {
361 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getNameIdentifierParserRuleCall_1_0());
362 }
363 lv_name_1_0=ruleIdentifier
364 {
365 if ($current==null) {
366 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
367 }
368 set(
369 $current,
370 "name",
371 lv_name_1_0,
372 "org.eclipse.viatra.solver.language.Problem.Identifier");
373 afterParserOrEnumRuleCall();
374 }
375 )
376 )
377 (
378 (
379 otherlv_2='{'
380 {
381 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0());
382 }
383 (
384 (
385 (
386 {
387 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0());
388 }
389 lv_literals_3_0=ruleEnumLiteral
390 {
391 if ($current==null) {
392 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
393 }
394 add(
395 $current,
396 "literals",
397 lv_literals_3_0,
398 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
399 afterParserOrEnumRuleCall();
400 }
401 )
402 )
403 (
404 otherlv_4=','
405 {
406 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
407 }
408 (
409 (
410 {
411 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0());
412 }
413 lv_literals_5_0=ruleEnumLiteral
414 {
415 if ($current==null) {
416 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
417 }
418 add(
419 $current,
420 "literals",
421 lv_literals_5_0,
422 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
423 afterParserOrEnumRuleCall();
424 }
425 )
426 )
427 )*
428 (
429 otherlv_6=','
430 {
431 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0());
432 }
433 |
434 otherlv_7=';'
435 {
436 newLeafNode(otherlv_7, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1());
437 }
438 )?
439 )?
440 otherlv_8='}'
441 {
442 newLeafNode(otherlv_8, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2());
443 }
444 )
445 |
446 otherlv_9='.'
447 {
448 newLeafNode(otherlv_9, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1());
449 }
450 )
451 )
452;
453
454// Entry rule entryRuleEnumLiteral
455entryRuleEnumLiteral returns [EObject current=null]:
456 { newCompositeNode(grammarAccess.getEnumLiteralRule()); }
457 iv_ruleEnumLiteral=ruleEnumLiteral
458 { $current=$iv_ruleEnumLiteral.current; }
459 EOF;
460
461// Rule EnumLiteral
462ruleEnumLiteral returns [EObject current=null]
463@init {
464 enterRule();
465}
466@after {
467 leaveRule();
468}:
469 (
470 (
471 {
472 newCompositeNode(grammarAccess.getEnumLiteralAccess().getNameQuotedOrUnquotedIdParserRuleCall_0());
473 }
474 lv_name_0_0=ruleQuotedOrUnquotedId
475 {
476 if ($current==null) {
477 $current = createModelElementForParent(grammarAccess.getEnumLiteralRule());
478 }
479 set(
480 $current,
481 "name",
482 lv_name_0_0,
483 "org.eclipse.viatra.solver.language.Problem.QuotedOrUnquotedId");
484 afterParserOrEnumRuleCall();
485 }
486 )
487 )
488;
489
490// Entry rule entryRuleReferenceDeclaration
491entryRuleReferenceDeclaration returns [EObject current=null]:
492 { newCompositeNode(grammarAccess.getReferenceDeclarationRule()); }
493 iv_ruleReferenceDeclaration=ruleReferenceDeclaration
494 { $current=$iv_ruleReferenceDeclaration.current; }
495 EOF;
496
497// Rule ReferenceDeclaration
498ruleReferenceDeclaration returns [EObject current=null]
499@init {
500 enterRule();
501}
502@after {
503 leaveRule();
504}:
505 (
506 (
507 (
508 (
509 lv_containment_0_0='contains'
510 {
511 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
512 }
513 {
514 if ($current==null) {
515 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
516 }
517 setWithLastConsumed($current, "containment", lv_containment_0_0 != null, "contains");
518 }
519 )
520 )
521 |
522 otherlv_1='refers'
523 {
524 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
525 }
526 )?
527 (
528 (
529 {
530 if ($current==null) {
531 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
532 }
533 }
534 {
535 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0());
536 }
537 ruleQualifiedName
538 {
539 afterParserOrEnumRuleCall();
540 }
541 )
542 )
543 (
544 otherlv_3='['
545 {
546 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0());
547 }
548 (
549 (
550 {
551 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0());
552 }
553 lv_multiplicity_4_0=ruleMultiplicity
554 {
555 if ($current==null) {
556 $current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
557 }
558 set(
559 $current,
560 "multiplicity",
561 lv_multiplicity_4_0,
562 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
563 afterParserOrEnumRuleCall();
564 }
565 )
566 )
567 otherlv_5=']'
568 {
569 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2());
570 }
571 )?
572 (
573 (
574 {
575 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0());
576 }
577 lv_name_6_0=ruleIdentifier
578 {
579 if ($current==null) {
580 $current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
581 }
582 set(
583 $current,
584 "name",
585 lv_name_6_0,
586 "org.eclipse.viatra.solver.language.Problem.Identifier");
587 afterParserOrEnumRuleCall();
588 }
589 )
590 )
591 (
592 otherlv_7='opposite'
593 {
594 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0());
595 }
596 (
597 (
598 {
599 if ($current==null) {
600 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
601 }
602 }
603 {
604 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_4_1_0());
605 }
606 ruleQualifiedName
607 {
608 afterParserOrEnumRuleCall();
609 }
610 )
611 )
612 )?
613 )
614;
615
616// Entry rule entryRulePredicateDefinition
617entryRulePredicateDefinition returns [EObject current=null]:
618 { newCompositeNode(grammarAccess.getPredicateDefinitionRule()); }
619 iv_rulePredicateDefinition=rulePredicateDefinition
620 { $current=$iv_rulePredicateDefinition.current; }
621 EOF;
622
623// Rule PredicateDefinition
624rulePredicateDefinition returns [EObject current=null]
625@init {
626 enterRule();
627}
628@after {
629 leaveRule();
630}:
631 (
632 (
633 (
634 (
635 (
636 lv_error_0_0='error'
637 {
638 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
639 }
640 {
641 if ($current==null) {
642 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
643 }
644 setWithLastConsumed($current, "error", lv_error_0_0 != null, "error");
645 }
646 )
647 )
648 (
649 otherlv_1='pred'
650 {
651 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
652 }
653 )?
654 )
655 |
656 otherlv_2='pred'
657 {
658 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
659 }
660 )
661 (
662 (
663 {
664 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0());
665 }
666 lv_name_3_0=ruleIdentifier
667 {
668 if ($current==null) {
669 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
670 }
671 set(
672 $current,
673 "name",
674 lv_name_3_0,
675 "org.eclipse.viatra.solver.language.Problem.Identifier");
676 afterParserOrEnumRuleCall();
677 }
678 )
679 )
680 otherlv_4='('
681 {
682 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
683 }
684 (
685 (
686 (
687 {
688 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
689 }
690 lv_parameters_5_0=ruleParameter
691 {
692 if ($current==null) {
693 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
694 }
695 add(
696 $current,
697 "parameters",
698 lv_parameters_5_0,
699 "org.eclipse.viatra.solver.language.Problem.Parameter");
700 afterParserOrEnumRuleCall();
701 }
702 )
703 )
704 (
705 otherlv_6=','
706 {
707 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
708 }
709 (
710 (
711 {
712 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
713 }
714 lv_parameters_7_0=ruleParameter
715 {
716 if ($current==null) {
717 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
718 }
719 add(
720 $current,
721 "parameters",
722 lv_parameters_7_0,
723 "org.eclipse.viatra.solver.language.Problem.Parameter");
724 afterParserOrEnumRuleCall();
725 }
726 )
727 )
728 )*
729 )?
730 otherlv_8=')'
731 {
732 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
733 }
734 (
735 otherlv_9=':-'
736 {
737 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0());
738 }
739 (
740 (
741 {
742 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
743 }
744 lv_bodies_10_0=ruleConjunction
745 {
746 if ($current==null) {
747 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
748 }
749 add(
750 $current,
751 "bodies",
752 lv_bodies_10_0,
753 "org.eclipse.viatra.solver.language.Problem.Conjunction");
754 afterParserOrEnumRuleCall();
755 }
756 )
757 )
758 (
759 otherlv_11=';'
760 {
761 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
762 }
763 (
764 (
765 {
766 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
767 }
768 lv_bodies_12_0=ruleConjunction
769 {
770 if ($current==null) {
771 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
772 }
773 add(
774 $current,
775 "bodies",
776 lv_bodies_12_0,
777 "org.eclipse.viatra.solver.language.Problem.Conjunction");
778 afterParserOrEnumRuleCall();
779 }
780 )
781 )
782 )*
783 )?
784 otherlv_13='.'
785 {
786 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
787 }
788 )
789;
790
791// Entry rule entryRuleParameter
792entryRuleParameter returns [EObject current=null]:
793 { newCompositeNode(grammarAccess.getParameterRule()); }
794 iv_ruleParameter=ruleParameter
795 { $current=$iv_ruleParameter.current; }
796 EOF;
797
798// Rule Parameter
799ruleParameter returns [EObject current=null]
800@init {
801 enterRule();
802}
803@after {
804 leaveRule();
805}:
806 (
807 (
808 (
809 {
810 if ($current==null) {
811 $current = createModelElement(grammarAccess.getParameterRule());
812 }
813 }
814 {
815 newCompositeNode(grammarAccess.getParameterAccess().getParameterTypeRelationCrossReference_0_0());
816 }
817 ruleQualifiedName
818 {
819 afterParserOrEnumRuleCall();
820 }
821 )
822 )?
823 (
824 (
825 {
826 newCompositeNode(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0());
827 }
828 lv_name_1_0=ruleIdentifier
829 {
830 if ($current==null) {
831 $current = createModelElementForParent(grammarAccess.getParameterRule());
832 }
833 set(
834 $current,
835 "name",
836 lv_name_1_0,
837 "org.eclipse.viatra.solver.language.Problem.Identifier");
838 afterParserOrEnumRuleCall();
839 }
840 )
841 )
842 )
843;
844
845// Entry rule entryRuleConjunction
846entryRuleConjunction returns [EObject current=null]:
847 { newCompositeNode(grammarAccess.getConjunctionRule()); }
848 iv_ruleConjunction=ruleConjunction
849 { $current=$iv_ruleConjunction.current; }
850 EOF;
851
852// Rule Conjunction
853ruleConjunction returns [EObject current=null]
854@init {
855 enterRule();
856}
857@after {
858 leaveRule();
859}:
860 (
861 (
862 (
863 {
864 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
865 }
866 lv_literals_0_0=ruleLiteral
867 {
868 if ($current==null) {
869 $current = createModelElementForParent(grammarAccess.getConjunctionRule());
870 }
871 add(
872 $current,
873 "literals",
874 lv_literals_0_0,
875 "org.eclipse.viatra.solver.language.Problem.Literal");
876 afterParserOrEnumRuleCall();
877 }
878 )
879 )
880 (
881 otherlv_1=','
882 {
883 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
884 }
885 (
886 (
887 {
888 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
889 }
890 lv_literals_2_0=ruleLiteral
891 {
892 if ($current==null) {
893 $current = createModelElementForParent(grammarAccess.getConjunctionRule());
894 }
895 add(
896 $current,
897 "literals",
898 lv_literals_2_0,
899 "org.eclipse.viatra.solver.language.Problem.Literal");
900 afterParserOrEnumRuleCall();
901 }
902 )
903 )
904 )*
905 )
906;
907
908// Entry rule entryRuleLiteral
909entryRuleLiteral returns [EObject current=null]:
910 { newCompositeNode(grammarAccess.getLiteralRule()); }
911 iv_ruleLiteral=ruleLiteral
912 { $current=$iv_ruleLiteral.current; }
913 EOF;
914
915// Rule Literal
916ruleLiteral returns [EObject current=null]
917@init {
918 enterRule();
919}
920@after {
921 leaveRule();
922}:
923 (
924 {
925 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
926 }
927 this_Atom_0=ruleAtom
928 {
929 $current = $this_Atom_0.current;
930 afterParserOrEnumRuleCall();
931 }
932 |
933 {
934 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
935 }
936 this_NegativeLiteral_1=ruleNegativeLiteral
937 {
938 $current = $this_NegativeLiteral_1.current;
939 afterParserOrEnumRuleCall();
940 }
941 )
942;
943
944// Entry rule entryRuleNegativeLiteral
945entryRuleNegativeLiteral returns [EObject current=null]:
946 { newCompositeNode(grammarAccess.getNegativeLiteralRule()); }
947 iv_ruleNegativeLiteral=ruleNegativeLiteral
948 { $current=$iv_ruleNegativeLiteral.current; }
949 EOF;
950
951// Rule NegativeLiteral
952ruleNegativeLiteral returns [EObject current=null]
953@init {
954 enterRule();
955}
956@after {
957 leaveRule();
958}:
959 (
960 otherlv_0='!'
961 {
962 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
963 }
964 (
965 (
966 {
967 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
968 }
969 lv_atom_1_0=ruleAtom
970 {
971 if ($current==null) {
972 $current = createModelElementForParent(grammarAccess.getNegativeLiteralRule());
973 }
974 set(
975 $current,
976 "atom",
977 lv_atom_1_0,
978 "org.eclipse.viatra.solver.language.Problem.Atom");
979 afterParserOrEnumRuleCall();
980 }
981 )
982 )
983 )
984;
985
986// Entry rule entryRuleAtom
987entryRuleAtom returns [EObject current=null]:
988 { newCompositeNode(grammarAccess.getAtomRule()); }
989 iv_ruleAtom=ruleAtom
990 { $current=$iv_ruleAtom.current; }
991 EOF;
992
993// Rule Atom
994ruleAtom returns [EObject current=null]
995@init {
996 enterRule();
997}
998@after {
999 leaveRule();
1000}:
1001 (
1002 (
1003 (
1004 {
1005 if ($current==null) {
1006 $current = createModelElement(grammarAccess.getAtomRule());
1007 }
1008 }
1009 {
1010 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
1011 }
1012 ruleQualifiedName
1013 {
1014 afterParserOrEnumRuleCall();
1015 }
1016 )
1017 )
1018 (
1019 (
1020 lv_transitiveClosure_1_0='+'
1021 {
1022 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
1023 }
1024 {
1025 if ($current==null) {
1026 $current = createModelElement(grammarAccess.getAtomRule());
1027 }
1028 setWithLastConsumed($current, "transitiveClosure", lv_transitiveClosure_1_0 != null, "+");
1029 }
1030 )
1031 )?
1032 otherlv_2='('
1033 {
1034 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
1035 }
1036 (
1037 (
1038 (
1039 {
1040 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0());
1041 }
1042 lv_arguments_3_0=ruleArgument
1043 {
1044 if ($current==null) {
1045 $current = createModelElementForParent(grammarAccess.getAtomRule());
1046 }
1047 add(
1048 $current,
1049 "arguments",
1050 lv_arguments_3_0,
1051 "org.eclipse.viatra.solver.language.Problem.Argument");
1052 afterParserOrEnumRuleCall();
1053 }
1054 )
1055 )
1056 (
1057 otherlv_4=','
1058 {
1059 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
1060 }
1061 (
1062 (
1063 {
1064 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0());
1065 }
1066 lv_arguments_5_0=ruleArgument
1067 {
1068 if ($current==null) {
1069 $current = createModelElementForParent(grammarAccess.getAtomRule());
1070 }
1071 add(
1072 $current,
1073 "arguments",
1074 lv_arguments_5_0,
1075 "org.eclipse.viatra.solver.language.Problem.Argument");
1076 afterParserOrEnumRuleCall();
1077 }
1078 )
1079 )
1080 )*
1081 )?
1082 otherlv_6=')'
1083 {
1084 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
1085 }
1086 )
1087;
1088
1089// Entry rule entryRuleArgument
1090entryRuleArgument returns [EObject current=null]:
1091 { newCompositeNode(grammarAccess.getArgumentRule()); }
1092 iv_ruleArgument=ruleArgument
1093 { $current=$iv_ruleArgument.current; }
1094 EOF;
1095
1096// Rule Argument
1097ruleArgument returns [EObject current=null]
1098@init {
1099 enterRule();
1100}
1101@after {
1102 leaveRule();
1103}:
1104 (
1105 (
1106 {
1107 if ($current==null) {
1108 $current = createModelElement(grammarAccess.getArgumentRule());
1109 }
1110 }
1111 {
1112 newCompositeNode(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0());
1113 }
1114 ruleQualifiedName
1115 {
1116 afterParserOrEnumRuleCall();
1117 }
1118 )
1119 )
1120;
1121
1122// Entry rule entryRuleAssertion
1123entryRuleAssertion returns [EObject current=null]:
1124 { newCompositeNode(grammarAccess.getAssertionRule()); }
1125 iv_ruleAssertion=ruleAssertion
1126 { $current=$iv_ruleAssertion.current; }
1127 EOF;
1128
1129// Rule Assertion
1130ruleAssertion returns [EObject current=null]
1131@init {
1132 enterRule();
1133}
1134@after {
1135 leaveRule();
1136}:
1137 (
1138 (
1139 (
1140 (
1141 (
1142 {
1143 if ($current==null) {
1144 $current = createModelElement(grammarAccess.getAssertionRule());
1145 }
1146 }
1147 {
1148 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
1149 }
1150 ruleQualifiedName
1151 {
1152 afterParserOrEnumRuleCall();
1153 }
1154 )
1155 )
1156 otherlv_1='('
1157 {
1158 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
1159 }
1160 (
1161 (
1162 (
1163 {
1164 if ($current==null) {
1165 $current = createModelElement(grammarAccess.getAssertionRule());
1166 }
1167 }
1168 {
1169 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
1170 }
1171 ruleQualifiedName
1172 {
1173 afterParserOrEnumRuleCall();
1174 }
1175 )
1176 )
1177 (
1178 otherlv_3=','
1179 {
1180 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
1181 }
1182 (
1183 (
1184 {
1185 if ($current==null) {
1186 $current = createModelElement(grammarAccess.getAssertionRule());
1187 }
1188 }
1189 {
1190 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
1191 }
1192 ruleQualifiedName
1193 {
1194 afterParserOrEnumRuleCall();
1195 }
1196 )
1197 )
1198 )*
1199 )?
1200 otherlv_5=')'
1201 {
1202 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
1203 }
1204 otherlv_6=':'
1205 {
1206 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
1207 }
1208 (
1209 (
1210 {
1211 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
1212 }
1213 lv_value_7_0=ruleLogicValue
1214 {
1215 if ($current==null) {
1216 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1217 }
1218 set(
1219 $current,
1220 "value",
1221 lv_value_7_0,
1222 "org.eclipse.viatra.solver.language.Problem.LogicValue");
1223 afterParserOrEnumRuleCall();
1224 }
1225 )
1226 )
1227 )
1228 |
1229 (
1230 (
1231 (
1232 {
1233 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
1234 }
1235 lv_value_8_0=ruleShortLogicValue
1236 {
1237 if ($current==null) {
1238 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1239 }
1240 set(
1241 $current,
1242 "value",
1243 lv_value_8_0,
1244 "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
1245 afterParserOrEnumRuleCall();
1246 }
1247 )
1248 )?
1249 (
1250 (
1251 {
1252 if ($current==null) {
1253 $current = createModelElement(grammarAccess.getAssertionRule());
1254 }
1255 }
1256 {
1257 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
1258 }
1259 ruleQualifiedName
1260 {
1261 afterParserOrEnumRuleCall();
1262 }
1263 )
1264 )
1265 otherlv_10='('
1266 {
1267 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
1268 }
1269 (
1270 (
1271 (
1272 {
1273 if ($current==null) {
1274 $current = createModelElement(grammarAccess.getAssertionRule());
1275 }
1276 }
1277 {
1278 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
1279 }
1280 ruleQualifiedName
1281 {
1282 afterParserOrEnumRuleCall();
1283 }
1284 )
1285 )
1286 (
1287 otherlv_12=','
1288 {
1289 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
1290 }
1291 (
1292 (
1293 {
1294 if ($current==null) {
1295 $current = createModelElement(grammarAccess.getAssertionRule());
1296 }
1297 }
1298 {
1299 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
1300 }
1301 ruleQualifiedName
1302 {
1303 afterParserOrEnumRuleCall();
1304 }
1305 )
1306 )
1307 )*
1308 )?
1309 otherlv_14=')'
1310 {
1311 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
1312 }
1313 )
1314 )
1315 otherlv_15='.'
1316 {
1317 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
1318 }
1319 )
1320;
1321
1322// Entry rule entryRuleScopeDeclaration
1323entryRuleScopeDeclaration returns [EObject current=null]:
1324 { newCompositeNode(grammarAccess.getScopeDeclarationRule()); }
1325 iv_ruleScopeDeclaration=ruleScopeDeclaration
1326 { $current=$iv_ruleScopeDeclaration.current; }
1327 EOF;
1328
1329// Rule ScopeDeclaration
1330ruleScopeDeclaration returns [EObject current=null]
1331@init {
1332 enterRule();
1333}
1334@after {
1335 leaveRule();
1336}:
1337 (
1338 otherlv_0='scope'
1339 {
1340 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
1341 }
1342 (
1343 (
1344 {
1345 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
1346 }
1347 lv_typeScopes_1_0=ruleTypeScope
1348 {
1349 if ($current==null) {
1350 $current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
1351 }
1352 add(
1353 $current,
1354 "typeScopes",
1355 lv_typeScopes_1_0,
1356 "org.eclipse.viatra.solver.language.Problem.TypeScope");
1357 afterParserOrEnumRuleCall();
1358 }
1359 )
1360 )
1361 (
1362 otherlv_2=','
1363 {
1364 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
1365 }
1366 (
1367 (
1368 {
1369 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
1370 }
1371 lv_typeScopes_3_0=ruleTypeScope
1372 {
1373 if ($current==null) {
1374 $current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
1375 }
1376 add(
1377 $current,
1378 "typeScopes",
1379 lv_typeScopes_3_0,
1380 "org.eclipse.viatra.solver.language.Problem.TypeScope");
1381 afterParserOrEnumRuleCall();
1382 }
1383 )
1384 )
1385 )*
1386 otherlv_4='.'
1387 {
1388 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
1389 }
1390 )
1391;
1392
1393// Entry rule entryRuleTypeScope
1394entryRuleTypeScope returns [EObject current=null]:
1395 { newCompositeNode(grammarAccess.getTypeScopeRule()); }
1396 iv_ruleTypeScope=ruleTypeScope
1397 { $current=$iv_ruleTypeScope.current; }
1398 EOF;
1399
1400// Rule TypeScope
1401ruleTypeScope returns [EObject current=null]
1402@init {
1403 enterRule();
1404}
1405@after {
1406 leaveRule();
1407}:
1408 (
1409 (
1410 (
1411 {
1412 if ($current==null) {
1413 $current = createModelElement(grammarAccess.getTypeScopeRule());
1414 }
1415 }
1416 otherlv_0=RULE_ID
1417 {
1418 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
1419 }
1420 )
1421 )
1422 (
1423 (
1424 (
1425 lv_increment_1_0='+='
1426 {
1427 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
1428 }
1429 {
1430 if ($current==null) {
1431 $current = createModelElement(grammarAccess.getTypeScopeRule());
1432 }
1433 setWithLastConsumed($current, "increment", lv_increment_1_0 != null, "+=");
1434 }
1435 )
1436 )
1437 |
1438 otherlv_2='='
1439 {
1440 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
1441 }
1442 )
1443 (
1444 (
1445 {
1446 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0());
1447 }
1448 lv_multiplicity_3_0=ruleDefiniteMultiplicity
1449 {
1450 if ($current==null) {
1451 $current = createModelElementForParent(grammarAccess.getTypeScopeRule());
1452 }
1453 set(
1454 $current,
1455 "multiplicity",
1456 lv_multiplicity_3_0,
1457 "org.eclipse.viatra.solver.language.Problem.DefiniteMultiplicity");
1458 afterParserOrEnumRuleCall();
1459 }
1460 )
1461 )
1462 )
1463;
1464
1465// Entry rule entryRuleMultiplicity
1466entryRuleMultiplicity returns [EObject current=null]:
1467 { newCompositeNode(grammarAccess.getMultiplicityRule()); }
1468 iv_ruleMultiplicity=ruleMultiplicity
1469 { $current=$iv_ruleMultiplicity.current; }
1470 EOF;
1471
1472// Rule Multiplicity
1473ruleMultiplicity returns [EObject current=null]
1474@init {
1475 enterRule();
1476}
1477@after {
1478 leaveRule();
1479}:
1480 (
1481 {
1482 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0());
1483 }
1484 this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity
1485 {
1486 $current = $this_UnboundedMultiplicity_0.current;
1487 afterParserOrEnumRuleCall();
1488 }
1489 |
1490 {
1491 newCompositeNode(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1());
1492 }
1493 this_DefiniteMultiplicity_1=ruleDefiniteMultiplicity
1494 {
1495 $current = $this_DefiniteMultiplicity_1.current;
1496 afterParserOrEnumRuleCall();
1497 }
1498 )
1499;
1500
1501// Entry rule entryRuleDefiniteMultiplicity
1502entryRuleDefiniteMultiplicity returns [EObject current=null]:
1503 { newCompositeNode(grammarAccess.getDefiniteMultiplicityRule()); }
1504 iv_ruleDefiniteMultiplicity=ruleDefiniteMultiplicity
1505 { $current=$iv_ruleDefiniteMultiplicity.current; }
1506 EOF;
1507
1508// Rule DefiniteMultiplicity
1509ruleDefiniteMultiplicity returns [EObject current=null]
1510@init {
1511 enterRule();
1512}
1513@after {
1514 leaveRule();
1515}:
1516 (
1517 {
1518 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
1519 }
1520 this_RangeMultiplicity_0=ruleRangeMultiplicity
1521 {
1522 $current = $this_RangeMultiplicity_0.current;
1523 afterParserOrEnumRuleCall();
1524 }
1525 |
1526 {
1527 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
1528 }
1529 this_ExactMultiplicity_1=ruleExactMultiplicity
1530 {
1531 $current = $this_ExactMultiplicity_1.current;
1532 afterParserOrEnumRuleCall();
1533 }
1534 )
1535;
1536
1537// Entry rule entryRuleUnboundedMultiplicity
1538entryRuleUnboundedMultiplicity returns [EObject current=null]:
1539 { newCompositeNode(grammarAccess.getUnboundedMultiplicityRule()); }
1540 iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity
1541 { $current=$iv_ruleUnboundedMultiplicity.current; }
1542 EOF;
1543
1544// Rule UnboundedMultiplicity
1545ruleUnboundedMultiplicity returns [EObject current=null]
1546@init {
1547 enterRule();
1548}
1549@after {
1550 leaveRule();
1551}:
1552 (
1553 {
1554 $current = forceCreateModelElement(
1555 grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction(),
1556 $current);
1557 }
1558 )
1559;
1560
1561// Entry rule entryRuleRangeMultiplicity
1562entryRuleRangeMultiplicity returns [EObject current=null]:
1563 { newCompositeNode(grammarAccess.getRangeMultiplicityRule()); }
1564 iv_ruleRangeMultiplicity=ruleRangeMultiplicity
1565 { $current=$iv_ruleRangeMultiplicity.current; }
1566 EOF;
1567
1568// Rule RangeMultiplicity
1569ruleRangeMultiplicity returns [EObject current=null]
1570@init {
1571 enterRule();
1572}
1573@after {
1574 leaveRule();
1575}:
1576 (
1577 (
1578 (
1579 lv_lowerBound_0_0=RULE_INT
1580 {
1581 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
1582 }
1583 {
1584 if ($current==null) {
1585 $current = createModelElement(grammarAccess.getRangeMultiplicityRule());
1586 }
1587 setWithLastConsumed(
1588 $current,
1589 "lowerBound",
1590 lv_lowerBound_0_0,
1591 "org.eclipse.xtext.common.Terminals.INT");
1592 }
1593 )
1594 )
1595 otherlv_1='..'
1596 {
1597 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
1598 }
1599 (
1600 (
1601 {
1602 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
1603 }
1604 lv_upperBound_2_0=ruleUpperBound
1605 {
1606 if ($current==null) {
1607 $current = createModelElementForParent(grammarAccess.getRangeMultiplicityRule());
1608 }
1609 set(
1610 $current,
1611 "upperBound",
1612 lv_upperBound_2_0,
1613 "org.eclipse.viatra.solver.language.Problem.UpperBound");
1614 afterParserOrEnumRuleCall();
1615 }
1616 )
1617 )
1618 )
1619;
1620
1621// Entry rule entryRuleExactMultiplicity
1622entryRuleExactMultiplicity returns [EObject current=null]:
1623 { newCompositeNode(grammarAccess.getExactMultiplicityRule()); }
1624 iv_ruleExactMultiplicity=ruleExactMultiplicity
1625 { $current=$iv_ruleExactMultiplicity.current; }
1626 EOF;
1627
1628// Rule ExactMultiplicity
1629ruleExactMultiplicity returns [EObject current=null]
1630@init {
1631 enterRule();
1632}
1633@after {
1634 leaveRule();
1635}:
1636 (
1637 (
1638 lv_exactValue_0_0=RULE_INT
1639 {
1640 newLeafNode(lv_exactValue_0_0, grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
1641 }
1642 {
1643 if ($current==null) {
1644 $current = createModelElement(grammarAccess.getExactMultiplicityRule());
1645 }
1646 setWithLastConsumed(
1647 $current,
1648 "exactValue",
1649 lv_exactValue_0_0,
1650 "org.eclipse.xtext.common.Terminals.INT");
1651 }
1652 )
1653 )
1654;
1655
1656// Entry rule entryRuleUpperBound
1657entryRuleUpperBound returns [String current=null]:
1658 { newCompositeNode(grammarAccess.getUpperBoundRule()); }
1659 iv_ruleUpperBound=ruleUpperBound
1660 { $current=$iv_ruleUpperBound.current.getText(); }
1661 EOF;
1662
1663// Rule UpperBound
1664ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1665@init {
1666 enterRule();
1667}
1668@after {
1669 leaveRule();
1670}:
1671 (
1672 this_INT_0=RULE_INT
1673 {
1674 $current.merge(this_INT_0);
1675 }
1676 {
1677 newLeafNode(this_INT_0, grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
1678 }
1679 |
1680 kw='*'
1681 {
1682 $current.merge(kw);
1683 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
1684 }
1685 )
1686;
1687
1688// Entry rule entryRuleQuotedOrUnquotedId
1689entryRuleQuotedOrUnquotedId returns [String current=null]:
1690 { newCompositeNode(grammarAccess.getQuotedOrUnquotedIdRule()); }
1691 iv_ruleQuotedOrUnquotedId=ruleQuotedOrUnquotedId
1692 { $current=$iv_ruleQuotedOrUnquotedId.current.getText(); }
1693 EOF;
1694
1695// Rule QuotedOrUnquotedId
1696ruleQuotedOrUnquotedId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1697@init {
1698 enterRule();
1699}
1700@after {
1701 leaveRule();
1702}:
1703 (
1704 this_QUOTED_ID_0=RULE_QUOTED_ID
1705 {
1706 $current.merge(this_QUOTED_ID_0);
1707 }
1708 {
1709 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQuotedOrUnquotedIdAccess().getQUOTED_IDTerminalRuleCall_0());
1710 }
1711 |
1712 {
1713 newCompositeNode(grammarAccess.getQuotedOrUnquotedIdAccess().getIdentifierParserRuleCall_1());
1714 }
1715 this_Identifier_1=ruleIdentifier
1716 {
1717 $current.merge(this_Identifier_1);
1718 }
1719 {
1720 afterParserOrEnumRuleCall();
1721 }
1722 )
1723;
1724
1725// Entry rule entryRuleQualifiedName
1726entryRuleQualifiedName returns [String current=null]:
1727 { newCompositeNode(grammarAccess.getQualifiedNameRule()); }
1728 iv_ruleQualifiedName=ruleQualifiedName
1729 { $current=$iv_ruleQualifiedName.current.getText(); }
1730 EOF;
1731
1732// Rule QualifiedName
1733ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1734@init {
1735 enterRule();
1736}
1737@after {
1738 leaveRule();
1739}:
1740 (
1741 this_QUOTED_ID_0=RULE_QUOTED_ID
1742 {
1743 $current.merge(this_QUOTED_ID_0);
1744 }
1745 {
1746 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_0());
1747 }
1748 |
1749 (
1750 {
1751 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0());
1752 }
1753 this_Identifier_1=ruleIdentifier
1754 {
1755 $current.merge(this_Identifier_1);
1756 }
1757 {
1758 afterParserOrEnumRuleCall();
1759 }
1760 (
1761 kw=':'
1762 {
1763 $current.merge(kw);
1764 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0());
1765 }
1766 {
1767 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
1768 }
1769 this_Identifier_3=ruleIdentifier
1770 {
1771 $current.merge(this_Identifier_3);
1772 }
1773 {
1774 afterParserOrEnumRuleCall();
1775 }
1776 )*
1777 (
1778 kw=':'
1779 {
1780 $current.merge(kw);
1781 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0());
1782 }
1783 this_QUOTED_ID_5=RULE_QUOTED_ID
1784 {
1785 $current.merge(this_QUOTED_ID_5);
1786 }
1787 {
1788 newLeafNode(this_QUOTED_ID_5, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1_2_1());
1789 }
1790 )?
1791 )
1792 )
1793;
1794
1795// Entry rule entryRuleIdentifier
1796entryRuleIdentifier returns [String current=null]:
1797 { newCompositeNode(grammarAccess.getIdentifierRule()); }
1798 iv_ruleIdentifier=ruleIdentifier
1799 { $current=$iv_ruleIdentifier.current.getText(); }
1800 EOF;
1801
1802// Rule Identifier
1803ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
1804@init {
1805 enterRule();
1806}
1807@after {
1808 leaveRule();
1809}:
1810 (
1811 this_ID_0=RULE_ID
1812 {
1813 $current.merge(this_ID_0);
1814 }
1815 {
1816 newLeafNode(this_ID_0, grammarAccess.getIdentifierAccess().getIDTerminalRuleCall_0());
1817 }
1818 |
1819 kw='true'
1820 {
1821 $current.merge(kw);
1822 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1());
1823 }
1824 |
1825 kw='false'
1826 {
1827 $current.merge(kw);
1828 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
1829 }
1830 )
1831;
1832
1833// Rule LogicValue
1834ruleLogicValue returns [Enumerator current=null]
1835@init {
1836 enterRule();
1837}
1838@after {
1839 leaveRule();
1840}:
1841 (
1842 (
1843 enumLiteral_0='true'
1844 {
1845 $current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
1846 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
1847 }
1848 )
1849 |
1850 (
1851 enumLiteral_1='false'
1852 {
1853 $current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
1854 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
1855 }
1856 )
1857 |
1858 (
1859 enumLiteral_2='unknown'
1860 {
1861 $current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
1862 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
1863 }
1864 )
1865 )
1866;
1867
1868// Rule ShortLogicValue
1869ruleShortLogicValue returns [Enumerator current=null]
1870@init {
1871 enterRule();
1872}
1873@after {
1874 leaveRule();
1875}:
1876 (
1877 (
1878 enumLiteral_0='!'
1879 {
1880 $current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
1881 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
1882 }
1883 )
1884 |
1885 (
1886 enumLiteral_1='?'
1887 {
1888 $current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
1889 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
1890 }
1891 )
1892 )
1893;
1894
1895RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"';
1896
1897RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\'';
1898
1899RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
1900
1901RULE_INT : ('0'..'9')+;
1902
1903RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
1904
1905RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
1906
1907RULE_WS : (' '|'\t'|'\r'|'\n')+;
1908
1909RULE_ANY_OTHER : .;
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
new file mode 100644
index 00000000..e968ac14
--- /dev/null
+++ b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
@@ -0,0 +1,72 @@
1'!'=32
2'('=29
3')'=30
4'*'=39
5'+'=33
6'+='=36
7','=17
8'.'=13
9'..'=38
10':'=34
11':-'=31
12';'=19
13'='=37
14'?'=43
15'['=24
16']'=25
17'abstract'=14
18'class'=15
19'contains'=22
20'enum'=21
21'error'=27
22'extends'=16
23'false'=41
24'opposite'=26
25'pred'=28
26'problem'=12
27'refers'=23
28'scope'=35
29'true'=40
30'unknown'=42
31'{'=18
32'}'=20
33RULE_ANY_OTHER=11
34RULE_ID=4
35RULE_INT=5
36RULE_ML_COMMENT=8
37RULE_QUOTED_ID=6
38RULE_SL_COMMENT=9
39RULE_STRING=7
40RULE_WS=10
41T__12=12
42T__13=13
43T__14=14
44T__15=15
45T__16=16
46T__17=17
47T__18=18
48T__19=19
49T__20=20
50T__21=21
51T__22=22
52T__23=23
53T__24=24
54T__25=25
55T__26=26
56T__27=27
57T__28=28
58T__29=29
59T__30=30
60T__31=31
61T__32=32
62T__33=33
63T__34=34
64T__35=35
65T__36=36
66T__37=37
67T__38=38
68T__39=39
69T__40=40
70T__41=41
71T__42=42
72T__43=43
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
new file mode 100644
index 00000000..1fd1e166
--- /dev/null
+++ b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
@@ -0,0 +1,1797 @@
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 T__19=19;
16 public static final int T__15=15;
17 public static final int T__16=16;
18 public static final int T__17=17;
19 public static final int T__18=18;
20 public static final int T__12=12;
21 public static final int T__13=13;
22 public static final int T__14=14;
23 public static final int RULE_ID=4;
24 public static final int RULE_QUOTED_ID=6;
25 public static final int T__26=26;
26 public static final int T__27=27;
27 public static final int T__28=28;
28 public static final int RULE_INT=5;
29 public static final int T__29=29;
30 public static final int T__22=22;
31 public static final int RULE_ML_COMMENT=8;
32 public static final int T__23=23;
33 public static final int T__24=24;
34 public static final int T__25=25;
35 public static final int T__20=20;
36 public static final int T__21=21;
37 public static final int RULE_STRING=7;
38 public static final int RULE_SL_COMMENT=9;
39 public static final int T__37=37;
40 public static final int T__38=38;
41 public static final int T__39=39;
42 public static final int T__33=33;
43 public static final int T__34=34;
44 public static final int T__35=35;
45 public static final int T__36=36;
46 public static final int EOF=-1;
47 public static final int T__30=30;
48 public static final int T__31=31;
49 public static final int T__32=32;
50 public static final int RULE_WS=10;
51 public static final int RULE_ANY_OTHER=11;
52 public static final int T__40=40;
53 public static final int T__41=41;
54 public static final int T__42=42;
55 public static final int T__43=43;
56
57 // delegates
58 // delegators
59
60 public InternalProblemLexer() {;}
61 public InternalProblemLexer(CharStream input) {
62 this(input, new RecognizerSharedState());
63 }
64 public InternalProblemLexer(CharStream input, RecognizerSharedState state) {
65 super(input,state);
66
67 }
68 public String getGrammarFileName() { return "InternalProblem.g"; }
69
70 // $ANTLR start "T__12"
71 public final void mT__12() throws RecognitionException {
72 try {
73 int _type = T__12;
74 int _channel = DEFAULT_TOKEN_CHANNEL;
75 // InternalProblem.g:11:7: ( 'problem' )
76 // InternalProblem.g:11:9: 'problem'
77 {
78 match("problem");
79
80
81 }
82
83 state.type = _type;
84 state.channel = _channel;
85 }
86 finally {
87 }
88 }
89 // $ANTLR end "T__12"
90
91 // $ANTLR start "T__13"
92 public final void mT__13() throws RecognitionException {
93 try {
94 int _type = T__13;
95 int _channel = DEFAULT_TOKEN_CHANNEL;
96 // InternalProblem.g:12:7: ( '.' )
97 // InternalProblem.g:12:9: '.'
98 {
99 match('.');
100
101 }
102
103 state.type = _type;
104 state.channel = _channel;
105 }
106 finally {
107 }
108 }
109 // $ANTLR end "T__13"
110
111 // $ANTLR start "T__14"
112 public final void mT__14() throws RecognitionException {
113 try {
114 int _type = T__14;
115 int _channel = DEFAULT_TOKEN_CHANNEL;
116 // InternalProblem.g:13:7: ( 'abstract' )
117 // InternalProblem.g:13:9: 'abstract'
118 {
119 match("abstract");
120
121
122 }
123
124 state.type = _type;
125 state.channel = _channel;
126 }
127 finally {
128 }
129 }
130 // $ANTLR end "T__14"
131
132 // $ANTLR start "T__15"
133 public final void mT__15() throws RecognitionException {
134 try {
135 int _type = T__15;
136 int _channel = DEFAULT_TOKEN_CHANNEL;
137 // InternalProblem.g:14:7: ( 'class' )
138 // InternalProblem.g:14:9: 'class'
139 {
140 match("class");
141
142
143 }
144
145 state.type = _type;
146 state.channel = _channel;
147 }
148 finally {
149 }
150 }
151 // $ANTLR end "T__15"
152
153 // $ANTLR start "T__16"
154 public final void mT__16() throws RecognitionException {
155 try {
156 int _type = T__16;
157 int _channel = DEFAULT_TOKEN_CHANNEL;
158 // InternalProblem.g:15:7: ( 'extends' )
159 // InternalProblem.g:15:9: 'extends'
160 {
161 match("extends");
162
163
164 }
165
166 state.type = _type;
167 state.channel = _channel;
168 }
169 finally {
170 }
171 }
172 // $ANTLR end "T__16"
173
174 // $ANTLR start "T__17"
175 public final void mT__17() throws RecognitionException {
176 try {
177 int _type = T__17;
178 int _channel = DEFAULT_TOKEN_CHANNEL;
179 // InternalProblem.g:16:7: ( ',' )
180 // InternalProblem.g:16:9: ','
181 {
182 match(',');
183
184 }
185
186 state.type = _type;
187 state.channel = _channel;
188 }
189 finally {
190 }
191 }
192 // $ANTLR end "T__17"
193
194 // $ANTLR start "T__18"
195 public final void mT__18() throws RecognitionException {
196 try {
197 int _type = T__18;
198 int _channel = DEFAULT_TOKEN_CHANNEL;
199 // InternalProblem.g:17:7: ( '{' )
200 // InternalProblem.g:17:9: '{'
201 {
202 match('{');
203
204 }
205
206 state.type = _type;
207 state.channel = _channel;
208 }
209 finally {
210 }
211 }
212 // $ANTLR end "T__18"
213
214 // $ANTLR start "T__19"
215 public final void mT__19() throws RecognitionException {
216 try {
217 int _type = T__19;
218 int _channel = DEFAULT_TOKEN_CHANNEL;
219 // InternalProblem.g:18:7: ( ';' )
220 // InternalProblem.g:18:9: ';'
221 {
222 match(';');
223
224 }
225
226 state.type = _type;
227 state.channel = _channel;
228 }
229 finally {
230 }
231 }
232 // $ANTLR end "T__19"
233
234 // $ANTLR start "T__20"
235 public final void mT__20() throws RecognitionException {
236 try {
237 int _type = T__20;
238 int _channel = DEFAULT_TOKEN_CHANNEL;
239 // InternalProblem.g:19:7: ( '}' )
240 // InternalProblem.g:19:9: '}'
241 {
242 match('}');
243
244 }
245
246 state.type = _type;
247 state.channel = _channel;
248 }
249 finally {
250 }
251 }
252 // $ANTLR end "T__20"
253
254 // $ANTLR start "T__21"
255 public final void mT__21() throws RecognitionException {
256 try {
257 int _type = T__21;
258 int _channel = DEFAULT_TOKEN_CHANNEL;
259 // InternalProblem.g:20:7: ( 'enum' )
260 // InternalProblem.g:20:9: 'enum'
261 {
262 match("enum");
263
264
265 }
266
267 state.type = _type;
268 state.channel = _channel;
269 }
270 finally {
271 }
272 }
273 // $ANTLR end "T__21"
274
275 // $ANTLR start "T__22"
276 public final void mT__22() throws RecognitionException {
277 try {
278 int _type = T__22;
279 int _channel = DEFAULT_TOKEN_CHANNEL;
280 // InternalProblem.g:21:7: ( 'contains' )
281 // InternalProblem.g:21:9: 'contains'
282 {
283 match("contains");
284
285
286 }
287
288 state.type = _type;
289 state.channel = _channel;
290 }
291 finally {
292 }
293 }
294 // $ANTLR end "T__22"
295
296 // $ANTLR start "T__23"
297 public final void mT__23() throws RecognitionException {
298 try {
299 int _type = T__23;
300 int _channel = DEFAULT_TOKEN_CHANNEL;
301 // InternalProblem.g:22:7: ( 'refers' )
302 // InternalProblem.g:22:9: 'refers'
303 {
304 match("refers");
305
306
307 }
308
309 state.type = _type;
310 state.channel = _channel;
311 }
312 finally {
313 }
314 }
315 // $ANTLR end "T__23"
316
317 // $ANTLR start "T__24"
318 public final void mT__24() throws RecognitionException {
319 try {
320 int _type = T__24;
321 int _channel = DEFAULT_TOKEN_CHANNEL;
322 // InternalProblem.g:23:7: ( '[' )
323 // InternalProblem.g:23:9: '['
324 {
325 match('[');
326
327 }
328
329 state.type = _type;
330 state.channel = _channel;
331 }
332 finally {
333 }
334 }
335 // $ANTLR end "T__24"
336
337 // $ANTLR start "T__25"
338 public final void mT__25() throws RecognitionException {
339 try {
340 int _type = T__25;
341 int _channel = DEFAULT_TOKEN_CHANNEL;
342 // InternalProblem.g:24:7: ( ']' )
343 // InternalProblem.g:24:9: ']'
344 {
345 match(']');
346
347 }
348
349 state.type = _type;
350 state.channel = _channel;
351 }
352 finally {
353 }
354 }
355 // $ANTLR end "T__25"
356
357 // $ANTLR start "T__26"
358 public final void mT__26() throws RecognitionException {
359 try {
360 int _type = T__26;
361 int _channel = DEFAULT_TOKEN_CHANNEL;
362 // InternalProblem.g:25:7: ( 'opposite' )
363 // InternalProblem.g:25:9: 'opposite'
364 {
365 match("opposite");
366
367
368 }
369
370 state.type = _type;
371 state.channel = _channel;
372 }
373 finally {
374 }
375 }
376 // $ANTLR end "T__26"
377
378 // $ANTLR start "T__27"
379 public final void mT__27() throws RecognitionException {
380 try {
381 int _type = T__27;
382 int _channel = DEFAULT_TOKEN_CHANNEL;
383 // InternalProblem.g:26:7: ( 'error' )
384 // InternalProblem.g:26:9: 'error'
385 {
386 match("error");
387
388
389 }
390
391 state.type = _type;
392 state.channel = _channel;
393 }
394 finally {
395 }
396 }
397 // $ANTLR end "T__27"
398
399 // $ANTLR start "T__28"
400 public final void mT__28() throws RecognitionException {
401 try {
402 int _type = T__28;
403 int _channel = DEFAULT_TOKEN_CHANNEL;
404 // InternalProblem.g:27:7: ( 'pred' )
405 // InternalProblem.g:27:9: 'pred'
406 {
407 match("pred");
408
409
410 }
411
412 state.type = _type;
413 state.channel = _channel;
414 }
415 finally {
416 }
417 }
418 // $ANTLR end "T__28"
419
420 // $ANTLR start "T__29"
421 public final void mT__29() throws RecognitionException {
422 try {
423 int _type = T__29;
424 int _channel = DEFAULT_TOKEN_CHANNEL;
425 // InternalProblem.g:28:7: ( '(' )
426 // InternalProblem.g:28:9: '('
427 {
428 match('(');
429
430 }
431
432 state.type = _type;
433 state.channel = _channel;
434 }
435 finally {
436 }
437 }
438 // $ANTLR end "T__29"
439
440 // $ANTLR start "T__30"
441 public final void mT__30() throws RecognitionException {
442 try {
443 int _type = T__30;
444 int _channel = DEFAULT_TOKEN_CHANNEL;
445 // InternalProblem.g:29:7: ( ')' )
446 // InternalProblem.g:29:9: ')'
447 {
448 match(')');
449
450 }
451
452 state.type = _type;
453 state.channel = _channel;
454 }
455 finally {
456 }
457 }
458 // $ANTLR end "T__30"
459
460 // $ANTLR start "T__31"
461 public final void mT__31() throws RecognitionException {
462 try {
463 int _type = T__31;
464 int _channel = DEFAULT_TOKEN_CHANNEL;
465 // InternalProblem.g:30:7: ( ':-' )
466 // InternalProblem.g:30:9: ':-'
467 {
468 match(":-");
469
470
471 }
472
473 state.type = _type;
474 state.channel = _channel;
475 }
476 finally {
477 }
478 }
479 // $ANTLR end "T__31"
480
481 // $ANTLR start "T__32"
482 public final void mT__32() throws RecognitionException {
483 try {
484 int _type = T__32;
485 int _channel = DEFAULT_TOKEN_CHANNEL;
486 // InternalProblem.g:31:7: ( '!' )
487 // InternalProblem.g:31:9: '!'
488 {
489 match('!');
490
491 }
492
493 state.type = _type;
494 state.channel = _channel;
495 }
496 finally {
497 }
498 }
499 // $ANTLR end "T__32"
500
501 // $ANTLR start "T__33"
502 public final void mT__33() throws RecognitionException {
503 try {
504 int _type = T__33;
505 int _channel = DEFAULT_TOKEN_CHANNEL;
506 // InternalProblem.g:32:7: ( '+' )
507 // InternalProblem.g:32:9: '+'
508 {
509 match('+');
510
511 }
512
513 state.type = _type;
514 state.channel = _channel;
515 }
516 finally {
517 }
518 }
519 // $ANTLR end "T__33"
520
521 // $ANTLR start "T__34"
522 public final void mT__34() throws RecognitionException {
523 try {
524 int _type = T__34;
525 int _channel = DEFAULT_TOKEN_CHANNEL;
526 // InternalProblem.g:33:7: ( ':' )
527 // InternalProblem.g:33:9: ':'
528 {
529 match(':');
530
531 }
532
533 state.type = _type;
534 state.channel = _channel;
535 }
536 finally {
537 }
538 }
539 // $ANTLR end "T__34"
540
541 // $ANTLR start "T__35"
542 public final void mT__35() throws RecognitionException {
543 try {
544 int _type = T__35;
545 int _channel = DEFAULT_TOKEN_CHANNEL;
546 // InternalProblem.g:34:7: ( 'scope' )
547 // InternalProblem.g:34:9: 'scope'
548 {
549 match("scope");
550
551
552 }
553
554 state.type = _type;
555 state.channel = _channel;
556 }
557 finally {
558 }
559 }
560 // $ANTLR end "T__35"
561
562 // $ANTLR start "T__36"
563 public final void mT__36() throws RecognitionException {
564 try {
565 int _type = T__36;
566 int _channel = DEFAULT_TOKEN_CHANNEL;
567 // InternalProblem.g:35:7: ( '+=' )
568 // InternalProblem.g:35:9: '+='
569 {
570 match("+=");
571
572
573 }
574
575 state.type = _type;
576 state.channel = _channel;
577 }
578 finally {
579 }
580 }
581 // $ANTLR end "T__36"
582
583 // $ANTLR start "T__37"
584 public final void mT__37() throws RecognitionException {
585 try {
586 int _type = T__37;
587 int _channel = DEFAULT_TOKEN_CHANNEL;
588 // InternalProblem.g:36:7: ( '=' )
589 // InternalProblem.g:36:9: '='
590 {
591 match('=');
592
593 }
594
595 state.type = _type;
596 state.channel = _channel;
597 }
598 finally {
599 }
600 }
601 // $ANTLR end "T__37"
602
603 // $ANTLR start "T__38"
604 public final void mT__38() throws RecognitionException {
605 try {
606 int _type = T__38;
607 int _channel = DEFAULT_TOKEN_CHANNEL;
608 // InternalProblem.g:37:7: ( '..' )
609 // InternalProblem.g:37:9: '..'
610 {
611 match("..");
612
613
614 }
615
616 state.type = _type;
617 state.channel = _channel;
618 }
619 finally {
620 }
621 }
622 // $ANTLR end "T__38"
623
624 // $ANTLR start "T__39"
625 public final void mT__39() throws RecognitionException {
626 try {
627 int _type = T__39;
628 int _channel = DEFAULT_TOKEN_CHANNEL;
629 // InternalProblem.g:38:7: ( '*' )
630 // InternalProblem.g:38:9: '*'
631 {
632 match('*');
633
634 }
635
636 state.type = _type;
637 state.channel = _channel;
638 }
639 finally {
640 }
641 }
642 // $ANTLR end "T__39"
643
644 // $ANTLR start "T__40"
645 public final void mT__40() throws RecognitionException {
646 try {
647 int _type = T__40;
648 int _channel = DEFAULT_TOKEN_CHANNEL;
649 // InternalProblem.g:39:7: ( 'true' )
650 // InternalProblem.g:39:9: 'true'
651 {
652 match("true");
653
654
655 }
656
657 state.type = _type;
658 state.channel = _channel;
659 }
660 finally {
661 }
662 }
663 // $ANTLR end "T__40"
664
665 // $ANTLR start "T__41"
666 public final void mT__41() throws RecognitionException {
667 try {
668 int _type = T__41;
669 int _channel = DEFAULT_TOKEN_CHANNEL;
670 // InternalProblem.g:40:7: ( 'false' )
671 // InternalProblem.g:40:9: 'false'
672 {
673 match("false");
674
675
676 }
677
678 state.type = _type;
679 state.channel = _channel;
680 }
681 finally {
682 }
683 }
684 // $ANTLR end "T__41"
685
686 // $ANTLR start "T__42"
687 public final void mT__42() throws RecognitionException {
688 try {
689 int _type = T__42;
690 int _channel = DEFAULT_TOKEN_CHANNEL;
691 // InternalProblem.g:41:7: ( 'unknown' )
692 // InternalProblem.g:41:9: 'unknown'
693 {
694 match("unknown");
695
696
697 }
698
699 state.type = _type;
700 state.channel = _channel;
701 }
702 finally {
703 }
704 }
705 // $ANTLR end "T__42"
706
707 // $ANTLR start "T__43"
708 public final void mT__43() throws RecognitionException {
709 try {
710 int _type = T__43;
711 int _channel = DEFAULT_TOKEN_CHANNEL;
712 // InternalProblem.g:42:7: ( '?' )
713 // InternalProblem.g:42:9: '?'
714 {
715 match('?');
716
717 }
718
719 state.type = _type;
720 state.channel = _channel;
721 }
722 finally {
723 }
724 }
725 // $ANTLR end "T__43"
726
727 // $ANTLR start "RULE_STRING"
728 public final void mRULE_STRING() throws RecognitionException {
729 try {
730 int _type = RULE_STRING;
731 int _channel = DEFAULT_TOKEN_CHANNEL;
732 // InternalProblem.g:1895:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
733 // InternalProblem.g:1895:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
734 {
735 match('\"');
736 // InternalProblem.g:1895:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
737 loop1:
738 do {
739 int alt1=3;
740 int LA1_0 = input.LA(1);
741
742 if ( (LA1_0=='\\') ) {
743 alt1=1;
744 }
745 else if ( ((LA1_0>='\u0000' && LA1_0<='!')||(LA1_0>='#' && LA1_0<='[')||(LA1_0>=']' && LA1_0<='\uFFFF')) ) {
746 alt1=2;
747 }
748
749
750 switch (alt1) {
751 case 1 :
752 // InternalProblem.g:1895:20: '\\\\' .
753 {
754 match('\\');
755 matchAny();
756
757 }
758 break;
759 case 2 :
760 // InternalProblem.g:1895:27: ~ ( ( '\\\\' | '\"' ) )
761 {
762 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
763 input.consume();
764
765 }
766 else {
767 MismatchedSetException mse = new MismatchedSetException(null,input);
768 recover(mse);
769 throw mse;}
770
771
772 }
773 break;
774
775 default :
776 break loop1;
777 }
778 } while (true);
779
780 match('\"');
781
782 }
783
784 state.type = _type;
785 state.channel = _channel;
786 }
787 finally {
788 }
789 }
790 // $ANTLR end "RULE_STRING"
791
792 // $ANTLR start "RULE_QUOTED_ID"
793 public final void mRULE_QUOTED_ID() throws RecognitionException {
794 try {
795 int _type = RULE_QUOTED_ID;
796 int _channel = DEFAULT_TOKEN_CHANNEL;
797 // InternalProblem.g:1897:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
798 // InternalProblem.g:1897:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
799 {
800 match('\'');
801 // InternalProblem.g:1897:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
802 loop2:
803 do {
804 int alt2=3;
805 int LA2_0 = input.LA(1);
806
807 if ( (LA2_0=='\\') ) {
808 alt2=1;
809 }
810 else if ( ((LA2_0>='\u0000' && LA2_0<='&')||(LA2_0>='(' && LA2_0<='[')||(LA2_0>=']' && LA2_0<='\uFFFF')) ) {
811 alt2=2;
812 }
813
814
815 switch (alt2) {
816 case 1 :
817 // InternalProblem.g:1897:24: '\\\\' .
818 {
819 match('\\');
820 matchAny();
821
822 }
823 break;
824 case 2 :
825 // InternalProblem.g:1897:31: ~ ( ( '\\\\' | '\\'' ) )
826 {
827 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
828 input.consume();
829
830 }
831 else {
832 MismatchedSetException mse = new MismatchedSetException(null,input);
833 recover(mse);
834 throw mse;}
835
836
837 }
838 break;
839
840 default :
841 break loop2;
842 }
843 } while (true);
844
845 match('\'');
846
847 }
848
849 state.type = _type;
850 state.channel = _channel;
851 }
852 finally {
853 }
854 }
855 // $ANTLR end "RULE_QUOTED_ID"
856
857 // $ANTLR start "RULE_ID"
858 public final void mRULE_ID() throws RecognitionException {
859 try {
860 int _type = RULE_ID;
861 int _channel = DEFAULT_TOKEN_CHANNEL;
862 // InternalProblem.g:1899:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
863 // InternalProblem.g:1899:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
864 {
865 // InternalProblem.g:1899:11: ( '^' )?
866 int alt3=2;
867 int LA3_0 = input.LA(1);
868
869 if ( (LA3_0=='^') ) {
870 alt3=1;
871 }
872 switch (alt3) {
873 case 1 :
874 // InternalProblem.g:1899:11: '^'
875 {
876 match('^');
877
878 }
879 break;
880
881 }
882
883 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
884 input.consume();
885
886 }
887 else {
888 MismatchedSetException mse = new MismatchedSetException(null,input);
889 recover(mse);
890 throw mse;}
891
892 // InternalProblem.g:1899:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
893 loop4:
894 do {
895 int alt4=2;
896 int LA4_0 = input.LA(1);
897
898 if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) {
899 alt4=1;
900 }
901
902
903 switch (alt4) {
904 case 1 :
905 // InternalProblem.g:
906 {
907 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') ) {
908 input.consume();
909
910 }
911 else {
912 MismatchedSetException mse = new MismatchedSetException(null,input);
913 recover(mse);
914 throw mse;}
915
916
917 }
918 break;
919
920 default :
921 break loop4;
922 }
923 } while (true);
924
925
926 }
927
928 state.type = _type;
929 state.channel = _channel;
930 }
931 finally {
932 }
933 }
934 // $ANTLR end "RULE_ID"
935
936 // $ANTLR start "RULE_INT"
937 public final void mRULE_INT() throws RecognitionException {
938 try {
939 int _type = RULE_INT;
940 int _channel = DEFAULT_TOKEN_CHANNEL;
941 // InternalProblem.g:1901:10: ( ( '0' .. '9' )+ )
942 // InternalProblem.g:1901:12: ( '0' .. '9' )+
943 {
944 // InternalProblem.g:1901:12: ( '0' .. '9' )+
945 int cnt5=0;
946 loop5:
947 do {
948 int alt5=2;
949 int LA5_0 = input.LA(1);
950
951 if ( ((LA5_0>='0' && LA5_0<='9')) ) {
952 alt5=1;
953 }
954
955
956 switch (alt5) {
957 case 1 :
958 // InternalProblem.g:1901:13: '0' .. '9'
959 {
960 matchRange('0','9');
961
962 }
963 break;
964
965 default :
966 if ( cnt5 >= 1 ) break loop5;
967 EarlyExitException eee =
968 new EarlyExitException(5, input);
969 throw eee;
970 }
971 cnt5++;
972 } while (true);
973
974
975 }
976
977 state.type = _type;
978 state.channel = _channel;
979 }
980 finally {
981 }
982 }
983 // $ANTLR end "RULE_INT"
984
985 // $ANTLR start "RULE_ML_COMMENT"
986 public final void mRULE_ML_COMMENT() throws RecognitionException {
987 try {
988 int _type = RULE_ML_COMMENT;
989 int _channel = DEFAULT_TOKEN_CHANNEL;
990 // InternalProblem.g:1903:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
991 // InternalProblem.g:1903:19: '/*' ( options {greedy=false; } : . )* '*/'
992 {
993 match("/*");
994
995 // InternalProblem.g:1903:24: ( options {greedy=false; } : . )*
996 loop6:
997 do {
998 int alt6=2;
999 int LA6_0 = input.LA(1);
1000
1001 if ( (LA6_0=='*') ) {
1002 int LA6_1 = input.LA(2);
1003
1004 if ( (LA6_1=='/') ) {
1005 alt6=2;
1006 }
1007 else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) {
1008 alt6=1;
1009 }
1010
1011
1012 }
1013 else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) {
1014 alt6=1;
1015 }
1016
1017
1018 switch (alt6) {
1019 case 1 :
1020 // InternalProblem.g:1903:52: .
1021 {
1022 matchAny();
1023
1024 }
1025 break;
1026
1027 default :
1028 break loop6;
1029 }
1030 } while (true);
1031
1032 match("*/");
1033
1034
1035 }
1036
1037 state.type = _type;
1038 state.channel = _channel;
1039 }
1040 finally {
1041 }
1042 }
1043 // $ANTLR end "RULE_ML_COMMENT"
1044
1045 // $ANTLR start "RULE_SL_COMMENT"
1046 public final void mRULE_SL_COMMENT() throws RecognitionException {
1047 try {
1048 int _type = RULE_SL_COMMENT;
1049 int _channel = DEFAULT_TOKEN_CHANNEL;
1050 // InternalProblem.g:1905:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
1051 // InternalProblem.g:1905:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1052 {
1053 match("//");
1054
1055 // InternalProblem.g:1905:24: (~ ( ( '\\n' | '\\r' ) ) )*
1056 loop7:
1057 do {
1058 int alt7=2;
1059 int LA7_0 = input.LA(1);
1060
1061 if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) {
1062 alt7=1;
1063 }
1064
1065
1066 switch (alt7) {
1067 case 1 :
1068 // InternalProblem.g:1905:24: ~ ( ( '\\n' | '\\r' ) )
1069 {
1070 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') ) {
1071 input.consume();
1072
1073 }
1074 else {
1075 MismatchedSetException mse = new MismatchedSetException(null,input);
1076 recover(mse);
1077 throw mse;}
1078
1079
1080 }
1081 break;
1082
1083 default :
1084 break loop7;
1085 }
1086 } while (true);
1087
1088 // InternalProblem.g:1905:40: ( ( '\\r' )? '\\n' )?
1089 int alt9=2;
1090 int LA9_0 = input.LA(1);
1091
1092 if ( (LA9_0=='\n'||LA9_0=='\r') ) {
1093 alt9=1;
1094 }
1095 switch (alt9) {
1096 case 1 :
1097 // InternalProblem.g:1905:41: ( '\\r' )? '\\n'
1098 {
1099 // InternalProblem.g:1905:41: ( '\\r' )?
1100 int alt8=2;
1101 int LA8_0 = input.LA(1);
1102
1103 if ( (LA8_0=='\r') ) {
1104 alt8=1;
1105 }
1106 switch (alt8) {
1107 case 1 :
1108 // InternalProblem.g:1905:41: '\\r'
1109 {
1110 match('\r');
1111
1112 }
1113 break;
1114
1115 }
1116
1117 match('\n');
1118
1119 }
1120 break;
1121
1122 }
1123
1124
1125 }
1126
1127 state.type = _type;
1128 state.channel = _channel;
1129 }
1130 finally {
1131 }
1132 }
1133 // $ANTLR end "RULE_SL_COMMENT"
1134
1135 // $ANTLR start "RULE_WS"
1136 public final void mRULE_WS() throws RecognitionException {
1137 try {
1138 int _type = RULE_WS;
1139 int _channel = DEFAULT_TOKEN_CHANNEL;
1140 // InternalProblem.g:1907:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1141 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1142 {
1143 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1144 int cnt10=0;
1145 loop10:
1146 do {
1147 int alt10=2;
1148 int LA10_0 = input.LA(1);
1149
1150 if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) {
1151 alt10=1;
1152 }
1153
1154
1155 switch (alt10) {
1156 case 1 :
1157 // InternalProblem.g:
1158 {
1159 if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
1160 input.consume();
1161
1162 }
1163 else {
1164 MismatchedSetException mse = new MismatchedSetException(null,input);
1165 recover(mse);
1166 throw mse;}
1167
1168
1169 }
1170 break;
1171
1172 default :
1173 if ( cnt10 >= 1 ) break loop10;
1174 EarlyExitException eee =
1175 new EarlyExitException(10, input);
1176 throw eee;
1177 }
1178 cnt10++;
1179 } while (true);
1180
1181
1182 }
1183
1184 state.type = _type;
1185 state.channel = _channel;
1186 }
1187 finally {
1188 }
1189 }
1190 // $ANTLR end "RULE_WS"
1191
1192 // $ANTLR start "RULE_ANY_OTHER"
1193 public final void mRULE_ANY_OTHER() throws RecognitionException {
1194 try {
1195 int _type = RULE_ANY_OTHER;
1196 int _channel = DEFAULT_TOKEN_CHANNEL;
1197 // InternalProblem.g:1909:16: ( . )
1198 // InternalProblem.g:1909:18: .
1199 {
1200 matchAny();
1201
1202 }
1203
1204 state.type = _type;
1205 state.channel = _channel;
1206 }
1207 finally {
1208 }
1209 }
1210 // $ANTLR end "RULE_ANY_OTHER"
1211
1212 public void mTokens() throws RecognitionException {
1213 // InternalProblem.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
1214 int alt11=40;
1215 alt11 = dfa11.predict(input);
1216 switch (alt11) {
1217 case 1 :
1218 // InternalProblem.g:1:10: T__12
1219 {
1220 mT__12();
1221
1222 }
1223 break;
1224 case 2 :
1225 // InternalProblem.g:1:16: T__13
1226 {
1227 mT__13();
1228
1229 }
1230 break;
1231 case 3 :
1232 // InternalProblem.g:1:22: T__14
1233 {
1234 mT__14();
1235
1236 }
1237 break;
1238 case 4 :
1239 // InternalProblem.g:1:28: T__15
1240 {
1241 mT__15();
1242
1243 }
1244 break;
1245 case 5 :
1246 // InternalProblem.g:1:34: T__16
1247 {
1248 mT__16();
1249
1250 }
1251 break;
1252 case 6 :
1253 // InternalProblem.g:1:40: T__17
1254 {
1255 mT__17();
1256
1257 }
1258 break;
1259 case 7 :
1260 // InternalProblem.g:1:46: T__18
1261 {
1262 mT__18();
1263
1264 }
1265 break;
1266 case 8 :
1267 // InternalProblem.g:1:52: T__19
1268 {
1269 mT__19();
1270
1271 }
1272 break;
1273 case 9 :
1274 // InternalProblem.g:1:58: T__20
1275 {
1276 mT__20();
1277
1278 }
1279 break;
1280 case 10 :
1281 // InternalProblem.g:1:64: T__21
1282 {
1283 mT__21();
1284
1285 }
1286 break;
1287 case 11 :
1288 // InternalProblem.g:1:70: T__22
1289 {
1290 mT__22();
1291
1292 }
1293 break;
1294 case 12 :
1295 // InternalProblem.g:1:76: T__23
1296 {
1297 mT__23();
1298
1299 }
1300 break;
1301 case 13 :
1302 // InternalProblem.g:1:82: T__24
1303 {
1304 mT__24();
1305
1306 }
1307 break;
1308 case 14 :
1309 // InternalProblem.g:1:88: T__25
1310 {
1311 mT__25();
1312
1313 }
1314 break;
1315 case 15 :
1316 // InternalProblem.g:1:94: T__26
1317 {
1318 mT__26();
1319
1320 }
1321 break;
1322 case 16 :
1323 // InternalProblem.g:1:100: T__27
1324 {
1325 mT__27();
1326
1327 }
1328 break;
1329 case 17 :
1330 // InternalProblem.g:1:106: T__28
1331 {
1332 mT__28();
1333
1334 }
1335 break;
1336 case 18 :
1337 // InternalProblem.g:1:112: T__29
1338 {
1339 mT__29();
1340
1341 }
1342 break;
1343 case 19 :
1344 // InternalProblem.g:1:118: T__30
1345 {
1346 mT__30();
1347
1348 }
1349 break;
1350 case 20 :
1351 // InternalProblem.g:1:124: T__31
1352 {
1353 mT__31();
1354
1355 }
1356 break;
1357 case 21 :
1358 // InternalProblem.g:1:130: T__32
1359 {
1360 mT__32();
1361
1362 }
1363 break;
1364 case 22 :
1365 // InternalProblem.g:1:136: T__33
1366 {
1367 mT__33();
1368
1369 }
1370 break;
1371 case 23 :
1372 // InternalProblem.g:1:142: T__34
1373 {
1374 mT__34();
1375
1376 }
1377 break;
1378 case 24 :
1379 // InternalProblem.g:1:148: T__35
1380 {
1381 mT__35();
1382
1383 }
1384 break;
1385 case 25 :
1386 // InternalProblem.g:1:154: T__36
1387 {
1388 mT__36();
1389
1390 }
1391 break;
1392 case 26 :
1393 // InternalProblem.g:1:160: T__37
1394 {
1395 mT__37();
1396
1397 }
1398 break;
1399 case 27 :
1400 // InternalProblem.g:1:166: T__38
1401 {
1402 mT__38();
1403
1404 }
1405 break;
1406 case 28 :
1407 // InternalProblem.g:1:172: T__39
1408 {
1409 mT__39();
1410
1411 }
1412 break;
1413 case 29 :
1414 // InternalProblem.g:1:178: T__40
1415 {
1416 mT__40();
1417
1418 }
1419 break;
1420 case 30 :
1421 // InternalProblem.g:1:184: T__41
1422 {
1423 mT__41();
1424
1425 }
1426 break;
1427 case 31 :
1428 // InternalProblem.g:1:190: T__42
1429 {
1430 mT__42();
1431
1432 }
1433 break;
1434 case 32 :
1435 // InternalProblem.g:1:196: T__43
1436 {
1437 mT__43();
1438
1439 }
1440 break;
1441 case 33 :
1442 // InternalProblem.g:1:202: RULE_STRING
1443 {
1444 mRULE_STRING();
1445
1446 }
1447 break;
1448 case 34 :
1449 // InternalProblem.g:1:214: RULE_QUOTED_ID
1450 {
1451 mRULE_QUOTED_ID();
1452
1453 }
1454 break;
1455 case 35 :
1456 // InternalProblem.g:1:229: RULE_ID
1457 {
1458 mRULE_ID();
1459
1460 }
1461 break;
1462 case 36 :
1463 // InternalProblem.g:1:237: RULE_INT
1464 {
1465 mRULE_INT();
1466
1467 }
1468 break;
1469 case 37 :
1470 // InternalProblem.g:1:246: RULE_ML_COMMENT
1471 {
1472 mRULE_ML_COMMENT();
1473
1474 }
1475 break;
1476 case 38 :
1477 // InternalProblem.g:1:262: RULE_SL_COMMENT
1478 {
1479 mRULE_SL_COMMENT();
1480
1481 }
1482 break;
1483 case 39 :
1484 // InternalProblem.g:1:278: RULE_WS
1485 {
1486 mRULE_WS();
1487
1488 }
1489 break;
1490 case 40 :
1491 // InternalProblem.g:1:286: RULE_ANY_OTHER
1492 {
1493 mRULE_ANY_OTHER();
1494
1495 }
1496 break;
1497
1498 }
1499
1500 }
1501
1502
1503 protected DFA11 dfa11 = new DFA11(this);
1504 static final String DFA11_eotS =
1505 "\1\uffff\1\43\1\45\3\43\4\uffff\1\43\2\uffff\1\43\2\uffff\1\67\1\uffff\1\72\1\43\2\uffff\3\43\1\uffff\3\41\2\uffff\1\41\2\uffff\1\43\3\uffff\6\43\4\uffff\1\43\2\uffff\1\43\7\uffff\1\43\2\uffff\3\43\7\uffff\17\43\1\145\4\43\1\152\4\43\1\157\3\43\1\uffff\1\43\1\164\2\43\1\uffff\1\167\2\43\1\172\1\uffff\1\173\3\43\1\uffff\2\43\1\uffff\1\u0081\1\43\2\uffff\1\43\1\u0084\2\43\1\u0087\1\uffff\1\43\1\u0089\1\uffff\1\u008a\1\u008b\1\uffff\1\u008c\4\uffff";
1506 static final String DFA11_eofS =
1507 "\u008d\uffff";
1508 static final String DFA11_minS =
1509 "\1\0\1\162\1\56\1\142\1\154\1\156\4\uffff\1\145\2\uffff\1\160\2\uffff\1\55\1\uffff\1\75\1\143\2\uffff\1\162\1\141\1\156\1\uffff\2\0\1\101\2\uffff\1\52\2\uffff\1\145\3\uffff\1\163\1\141\1\156\1\164\1\165\1\162\4\uffff\1\146\2\uffff\1\160\7\uffff\1\157\2\uffff\1\165\1\154\1\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\60\1\162\1\163\1\141\1\156\1\60\2\162\1\163\1\145\1\60\1\145\1\157\1\145\1\uffff\1\141\1\60\1\151\1\144\1\uffff\1\60\1\163\1\151\1\60\1\uffff\1\60\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\60\1\164\2\uffff\1\156\1\60\1\164\1\163\1\60\1\uffff\1\145\1\60\1\uffff\2\60\1\uffff\1\60\4\uffff";
1510 static final String DFA11_maxS =
1511 "\1\uffff\1\162\1\56\1\142\1\157\1\170\4\uffff\1\145\2\uffff\1\160\2\uffff\1\55\1\uffff\1\75\1\143\2\uffff\1\162\1\141\1\156\1\uffff\2\uffff\1\172\2\uffff\1\57\2\uffff\1\157\3\uffff\1\163\1\141\1\156\1\164\1\165\1\162\4\uffff\1\146\2\uffff\1\160\7\uffff\1\157\2\uffff\1\165\1\154\1\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\172\1\162\1\163\1\141\1\156\1\172\2\162\1\163\1\145\1\172\1\145\1\157\1\145\1\uffff\1\141\1\172\1\151\1\144\1\uffff\1\172\1\163\1\151\1\172\1\uffff\1\172\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\172\1\164\2\uffff\1\156\1\172\1\164\1\163\1\172\1\uffff\1\145\1\172\1\uffff\2\172\1\uffff\1\172\4\uffff";
1512 static final String DFA11_acceptS =
1513 "\6\uffff\1\6\1\7\1\10\1\11\1\uffff\1\15\1\16\1\uffff\1\22\1\23\1\uffff\1\25\2\uffff\1\32\1\34\3\uffff\1\40\3\uffff\1\43\1\44\1\uffff\1\47\1\50\1\uffff\1\43\1\33\1\2\6\uffff\1\6\1\7\1\10\1\11\1\uffff\1\15\1\16\1\uffff\1\22\1\23\1\24\1\27\1\25\1\31\1\26\1\uffff\1\32\1\34\3\uffff\1\40\1\41\1\42\1\44\1\45\1\46\1\47\35\uffff\1\21\4\uffff\1\12\4\uffff\1\35\4\uffff\1\4\2\uffff\1\20\2\uffff\1\30\1\36\5\uffff\1\14\2\uffff\1\1\2\uffff\1\5\1\uffff\1\37\1\3\1\13\1\17";
1514 static final String DFA11_specialS =
1515 "\1\2\31\uffff\1\1\1\0\161\uffff}>";
1516 static final String[] DFA11_transitionS = {
1517 "\11\41\2\40\2\41\1\40\22\41\1\40\1\21\1\32\4\41\1\33\1\16\1\17\1\25\1\22\1\6\1\41\1\2\1\37\12\36\1\20\1\10\1\41\1\24\1\41\1\31\1\41\32\35\1\13\1\41\1\14\1\34\1\35\1\41\1\3\1\35\1\4\1\35\1\5\1\27\10\35\1\15\1\1\1\35\1\12\1\23\1\26\1\30\5\35\1\7\1\41\1\11\uff82\41",
1518 "\1\42",
1519 "\1\44",
1520 "\1\46",
1521 "\1\47\2\uffff\1\50",
1522 "\1\52\3\uffff\1\53\5\uffff\1\51",
1523 "",
1524 "",
1525 "",
1526 "",
1527 "\1\60",
1528 "",
1529 "",
1530 "\1\63",
1531 "",
1532 "",
1533 "\1\66",
1534 "",
1535 "\1\71",
1536 "\1\73",
1537 "",
1538 "",
1539 "\1\76",
1540 "\1\77",
1541 "\1\100",
1542 "",
1543 "\0\102",
1544 "\0\103",
1545 "\32\43\4\uffff\1\43\1\uffff\32\43",
1546 "",
1547 "",
1548 "\1\105\4\uffff\1\106",
1549 "",
1550 "",
1551 "\1\111\11\uffff\1\110",
1552 "",
1553 "",
1554 "",
1555 "\1\112",
1556 "\1\113",
1557 "\1\114",
1558 "\1\115",
1559 "\1\116",
1560 "\1\117",
1561 "",
1562 "",
1563 "",
1564 "",
1565 "\1\120",
1566 "",
1567 "",
1568 "\1\121",
1569 "",
1570 "",
1571 "",
1572 "",
1573 "",
1574 "",
1575 "",
1576 "\1\122",
1577 "",
1578 "",
1579 "\1\123",
1580 "\1\124",
1581 "\1\125",
1582 "",
1583 "",
1584 "",
1585 "",
1586 "",
1587 "",
1588 "",
1589 "\1\126",
1590 "\1\127",
1591 "\1\130",
1592 "\1\131",
1593 "\1\132",
1594 "\1\133",
1595 "\1\134",
1596 "\1\135",
1597 "\1\136",
1598 "\1\137",
1599 "\1\140",
1600 "\1\141",
1601 "\1\142",
1602 "\1\143",
1603 "\1\144",
1604 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1605 "\1\146",
1606 "\1\147",
1607 "\1\150",
1608 "\1\151",
1609 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1610 "\1\153",
1611 "\1\154",
1612 "\1\155",
1613 "\1\156",
1614 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1615 "\1\160",
1616 "\1\161",
1617 "\1\162",
1618 "",
1619 "\1\163",
1620 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1621 "\1\165",
1622 "\1\166",
1623 "",
1624 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1625 "\1\170",
1626 "\1\171",
1627 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1628 "",
1629 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1630 "\1\174",
1631 "\1\175",
1632 "\1\176",
1633 "",
1634 "\1\177",
1635 "\1\u0080",
1636 "",
1637 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1638 "\1\u0082",
1639 "",
1640 "",
1641 "\1\u0083",
1642 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1643 "\1\u0085",
1644 "\1\u0086",
1645 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1646 "",
1647 "\1\u0088",
1648 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1649 "",
1650 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1651 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1652 "",
1653 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1654 "",
1655 "",
1656 "",
1657 ""
1658 };
1659
1660 static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS);
1661 static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS);
1662 static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS);
1663 static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS);
1664 static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS);
1665 static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS);
1666 static final short[][] DFA11_transition;
1667
1668 static {
1669 int numStates = DFA11_transitionS.length;
1670 DFA11_transition = new short[numStates][];
1671 for (int i=0; i<numStates; i++) {
1672 DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]);
1673 }
1674 }
1675
1676 class DFA11 extends DFA {
1677
1678 public DFA11(BaseRecognizer recognizer) {
1679 this.recognizer = recognizer;
1680 this.decisionNumber = 11;
1681 this.eot = DFA11_eot;
1682 this.eof = DFA11_eof;
1683 this.min = DFA11_min;
1684 this.max = DFA11_max;
1685 this.accept = DFA11_accept;
1686 this.special = DFA11_special;
1687 this.transition = DFA11_transition;
1688 }
1689 public String getDescription() {
1690 return "1:1: Tokens : ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
1691 }
1692 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1693 IntStream input = _input;
1694 int _s = s;
1695 switch ( s ) {
1696 case 0 :
1697 int LA11_27 = input.LA(1);
1698
1699 s = -1;
1700 if ( ((LA11_27>='\u0000' && LA11_27<='\uFFFF')) ) {s = 67;}
1701
1702 else s = 33;
1703
1704 if ( s>=0 ) return s;
1705 break;
1706 case 1 :
1707 int LA11_26 = input.LA(1);
1708
1709 s = -1;
1710 if ( ((LA11_26>='\u0000' && LA11_26<='\uFFFF')) ) {s = 66;}
1711
1712 else s = 33;
1713
1714 if ( s>=0 ) return s;
1715 break;
1716 case 2 :
1717 int LA11_0 = input.LA(1);
1718
1719 s = -1;
1720 if ( (LA11_0=='p') ) {s = 1;}
1721
1722 else if ( (LA11_0=='.') ) {s = 2;}
1723
1724 else if ( (LA11_0=='a') ) {s = 3;}
1725
1726 else if ( (LA11_0=='c') ) {s = 4;}
1727
1728 else if ( (LA11_0=='e') ) {s = 5;}
1729
1730 else if ( (LA11_0==',') ) {s = 6;}
1731
1732 else if ( (LA11_0=='{') ) {s = 7;}
1733
1734 else if ( (LA11_0==';') ) {s = 8;}
1735
1736 else if ( (LA11_0=='}') ) {s = 9;}
1737
1738 else if ( (LA11_0=='r') ) {s = 10;}
1739
1740 else if ( (LA11_0=='[') ) {s = 11;}
1741
1742 else if ( (LA11_0==']') ) {s = 12;}
1743
1744 else if ( (LA11_0=='o') ) {s = 13;}
1745
1746 else if ( (LA11_0=='(') ) {s = 14;}
1747
1748 else if ( (LA11_0==')') ) {s = 15;}
1749
1750 else if ( (LA11_0==':') ) {s = 16;}
1751
1752 else if ( (LA11_0=='!') ) {s = 17;}
1753
1754 else if ( (LA11_0=='+') ) {s = 18;}
1755
1756 else if ( (LA11_0=='s') ) {s = 19;}
1757
1758 else if ( (LA11_0=='=') ) {s = 20;}
1759
1760 else if ( (LA11_0=='*') ) {s = 21;}
1761
1762 else if ( (LA11_0=='t') ) {s = 22;}
1763
1764 else if ( (LA11_0=='f') ) {s = 23;}
1765
1766 else if ( (LA11_0=='u') ) {s = 24;}
1767
1768 else if ( (LA11_0=='?') ) {s = 25;}
1769
1770 else if ( (LA11_0=='\"') ) {s = 26;}
1771
1772 else if ( (LA11_0=='\'') ) {s = 27;}
1773
1774 else if ( (LA11_0=='^') ) {s = 28;}
1775
1776 else if ( ((LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||LA11_0=='b'||LA11_0=='d'||(LA11_0>='g' && LA11_0<='n')||LA11_0=='q'||(LA11_0>='v' && LA11_0<='z')) ) {s = 29;}
1777
1778 else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 30;}
1779
1780 else if ( (LA11_0=='/') ) {s = 31;}
1781
1782 else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 32;}
1783
1784 else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='#' && LA11_0<='&')||LA11_0=='-'||LA11_0=='<'||LA11_0=='>'||LA11_0=='@'||LA11_0=='\\'||LA11_0=='`'||LA11_0=='|'||(LA11_0>='~' && LA11_0<='\uFFFF')) ) {s = 33;}
1785
1786 if ( s>=0 ) return s;
1787 break;
1788 }
1789 NoViableAltException nvae =
1790 new NoViableAltException(getDescription(), 11, _s, input);
1791 error(nvae);
1792 throw nvae;
1793 }
1794 }
1795
1796
1797} \ No newline at end of file
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
new file mode 100644
index 00000000..28b54551
--- /dev/null
+++ b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
@@ -0,0 +1,5296 @@
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_QUOTED_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'problem'", "'.'", "'abstract'", "'class'", "'extends'", "','", "'{'", "';'", "'}'", "'enum'", "'contains'", "'refers'", "'['", "']'", "'opposite'", "'error'", "'pred'", "'('", "')'", "':-'", "'!'", "'+'", "':'", "'scope'", "'+='", "'='", "'..'", "'*'", "'true'", "'false'", "'unknown'", "'?'"
26 };
27 public static final int T__19=19;
28 public static final int T__15=15;
29 public static final int T__16=16;
30 public static final int T__17=17;
31 public static final int T__18=18;
32 public static final int T__12=12;
33 public static final int T__13=13;
34 public static final int T__14=14;
35 public static final int RULE_ID=4;
36 public static final int RULE_QUOTED_ID=6;
37 public static final int T__26=26;
38 public static final int T__27=27;
39 public static final int T__28=28;
40 public static final int RULE_INT=5;
41 public static final int T__29=29;
42 public static final int T__22=22;
43 public static final int RULE_ML_COMMENT=8;
44 public static final int T__23=23;
45 public static final int T__24=24;
46 public static final int T__25=25;
47 public static final int T__20=20;
48 public static final int T__21=21;
49 public static final int RULE_STRING=7;
50 public static final int RULE_SL_COMMENT=9;
51 public static final int T__37=37;
52 public static final int T__38=38;
53 public static final int T__39=39;
54 public static final int T__33=33;
55 public static final int T__34=34;
56 public static final int T__35=35;
57 public static final int T__36=36;
58 public static final int EOF=-1;
59 public static final int T__30=30;
60 public static final int T__31=31;
61 public static final int T__32=32;
62 public static final int RULE_WS=10;
63 public static final int RULE_ANY_OTHER=11;
64 public static final int T__40=40;
65 public static final int T__41=41;
66 public static final int T__42=42;
67 public static final int T__43=43;
68
69 // delegates
70 // delegators
71
72
73 public InternalProblemParser(TokenStream input) {
74 this(input, new RecognizerSharedState());
75 }
76 public InternalProblemParser(TokenStream input, RecognizerSharedState state) {
77 super(input, state);
78
79 }
80
81
82 public String[] getTokenNames() { return InternalProblemParser.tokenNames; }
83 public String getGrammarFileName() { return "InternalProblem.g"; }
84
85
86
87 private ProblemGrammarAccess grammarAccess;
88
89 public InternalProblemParser(TokenStream input, ProblemGrammarAccess grammarAccess) {
90 this(input);
91 this.grammarAccess = grammarAccess;
92 registerRules(grammarAccess.getGrammar());
93 }
94
95 @Override
96 protected String getFirstRuleName() {
97 return "Problem";
98 }
99
100 @Override
101 protected ProblemGrammarAccess getGrammarAccess() {
102 return grammarAccess;
103 }
104
105
106
107
108 // $ANTLR start "entryRuleProblem"
109 // InternalProblem.g:65:1: entryRuleProblem returns [EObject current=null] : iv_ruleProblem= ruleProblem EOF ;
110 public final EObject entryRuleProblem() throws RecognitionException {
111 EObject current = null;
112
113 EObject iv_ruleProblem = null;
114
115
116 try {
117 // InternalProblem.g:65:48: (iv_ruleProblem= ruleProblem EOF )
118 // InternalProblem.g:66:2: iv_ruleProblem= ruleProblem EOF
119 {
120 newCompositeNode(grammarAccess.getProblemRule());
121 pushFollow(FOLLOW_1);
122 iv_ruleProblem=ruleProblem();
123
124 state._fsp--;
125
126 current =iv_ruleProblem;
127 match(input,EOF,FOLLOW_2);
128
129 }
130
131 }
132
133 catch (RecognitionException re) {
134 recover(input,re);
135 appendSkippedTokens();
136 }
137 finally {
138 }
139 return current;
140 }
141 // $ANTLR end "entryRuleProblem"
142
143
144 // $ANTLR start "ruleProblem"
145 // InternalProblem.g:72:1: ruleProblem returns [EObject current=null] : ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) ;
146 public final EObject ruleProblem() throws RecognitionException {
147 EObject current = null;
148
149 Token otherlv_0=null;
150 Token otherlv_2=null;
151 AntlrDatatypeRuleToken lv_name_1_0 = null;
152
153 EObject lv_statements_3_0 = null;
154
155
156
157 enterRule();
158
159 try {
160 // InternalProblem.g:78:2: ( ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) )
161 // InternalProblem.g:79:2: ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* )
162 {
163 // InternalProblem.g:79:2: ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* )
164 // InternalProblem.g:80:3: (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )*
165 {
166 // InternalProblem.g:80:3: (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )?
167 int alt1=2;
168 int LA1_0 = input.LA(1);
169
170 if ( (LA1_0==12) ) {
171 alt1=1;
172 }
173 switch (alt1) {
174 case 1 :
175 // InternalProblem.g:81:4: otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.'
176 {
177 otherlv_0=(Token)match(input,12,FOLLOW_3);
178
179 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0());
180
181 // InternalProblem.g:85:4: ( (lv_name_1_0= ruleIdentifier ) )
182 // InternalProblem.g:86:5: (lv_name_1_0= ruleIdentifier )
183 {
184 // InternalProblem.g:86:5: (lv_name_1_0= ruleIdentifier )
185 // InternalProblem.g:87:6: lv_name_1_0= ruleIdentifier
186 {
187
188 newCompositeNode(grammarAccess.getProblemAccess().getNameIdentifierParserRuleCall_0_1_0());
189
190 pushFollow(FOLLOW_4);
191 lv_name_1_0=ruleIdentifier();
192
193 state._fsp--;
194
195
196 if (current==null) {
197 current = createModelElementForParent(grammarAccess.getProblemRule());
198 }
199 set(
200 current,
201 "name",
202 lv_name_1_0,
203 "org.eclipse.viatra.solver.language.Problem.Identifier");
204 afterParserOrEnumRuleCall();
205
206
207 }
208
209
210 }
211
212 otherlv_2=(Token)match(input,13,FOLLOW_5);
213
214 newLeafNode(otherlv_2, grammarAccess.getProblemAccess().getFullStopKeyword_0_2());
215
216
217 }
218 break;
219
220 }
221
222 // InternalProblem.g:109:3: ( (lv_statements_3_0= ruleStatement ) )*
223 loop2:
224 do {
225 int alt2=2;
226 int LA2_0 = input.LA(1);
227
228 if ( (LA2_0==RULE_ID||LA2_0==RULE_QUOTED_ID||(LA2_0>=14 && LA2_0<=15)||LA2_0==21||(LA2_0>=27 && LA2_0<=28)||LA2_0==32||LA2_0==35||(LA2_0>=40 && LA2_0<=41)||LA2_0==43) ) {
229 alt2=1;
230 }
231
232
233 switch (alt2) {
234 case 1 :
235 // InternalProblem.g:110:4: (lv_statements_3_0= ruleStatement )
236 {
237 // InternalProblem.g:110:4: (lv_statements_3_0= ruleStatement )
238 // InternalProblem.g:111:5: lv_statements_3_0= ruleStatement
239 {
240
241 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_1_0());
242
243 pushFollow(FOLLOW_5);
244 lv_statements_3_0=ruleStatement();
245
246 state._fsp--;
247
248
249 if (current==null) {
250 current = createModelElementForParent(grammarAccess.getProblemRule());
251 }
252 add(
253 current,
254 "statements",
255 lv_statements_3_0,
256 "org.eclipse.viatra.solver.language.Problem.Statement");
257 afterParserOrEnumRuleCall();
258
259
260 }
261
262
263 }
264 break;
265
266 default :
267 break loop2;
268 }
269 } while (true);
270
271
272 }
273
274
275 }
276
277
278 leaveRule();
279
280 }
281
282 catch (RecognitionException re) {
283 recover(input,re);
284 appendSkippedTokens();
285 }
286 finally {
287 }
288 return current;
289 }
290 // $ANTLR end "ruleProblem"
291
292
293 // $ANTLR start "entryRuleStatement"
294 // InternalProblem.g:132:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ;
295 public final EObject entryRuleStatement() throws RecognitionException {
296 EObject current = null;
297
298 EObject iv_ruleStatement = null;
299
300
301 try {
302 // InternalProblem.g:132:50: (iv_ruleStatement= ruleStatement EOF )
303 // InternalProblem.g:133:2: iv_ruleStatement= ruleStatement EOF
304 {
305 newCompositeNode(grammarAccess.getStatementRule());
306 pushFollow(FOLLOW_1);
307 iv_ruleStatement=ruleStatement();
308
309 state._fsp--;
310
311 current =iv_ruleStatement;
312 match(input,EOF,FOLLOW_2);
313
314 }
315
316 }
317
318 catch (RecognitionException re) {
319 recover(input,re);
320 appendSkippedTokens();
321 }
322 finally {
323 }
324 return current;
325 }
326 // $ANTLR end "entryRuleStatement"
327
328
329 // $ANTLR start "ruleStatement"
330 // InternalProblem.g:139:1: ruleStatement returns [EObject current=null] : (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_ScopeDeclaration_4= ruleScopeDeclaration ) ;
331 public final EObject ruleStatement() throws RecognitionException {
332 EObject current = null;
333
334 EObject this_ClassDeclaration_0 = null;
335
336 EObject this_EnumDeclaration_1 = null;
337
338 EObject this_PredicateDefinition_2 = null;
339
340 EObject this_Assertion_3 = null;
341
342 EObject this_ScopeDeclaration_4 = null;
343
344
345
346 enterRule();
347
348 try {
349 // InternalProblem.g:145:2: ( (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_ScopeDeclaration_4= ruleScopeDeclaration ) )
350 // InternalProblem.g:146:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_ScopeDeclaration_4= ruleScopeDeclaration )
351 {
352 // InternalProblem.g:146:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_ScopeDeclaration_4= ruleScopeDeclaration )
353 int alt3=5;
354 switch ( input.LA(1) ) {
355 case 14:
356 case 15:
357 {
358 alt3=1;
359 }
360 break;
361 case 21:
362 {
363 alt3=2;
364 }
365 break;
366 case 27:
367 case 28:
368 {
369 alt3=3;
370 }
371 break;
372 case RULE_ID:
373 case RULE_QUOTED_ID:
374 case 32:
375 case 40:
376 case 41:
377 case 43:
378 {
379 alt3=4;
380 }
381 break;
382 case 35:
383 {
384 alt3=5;
385 }
386 break;
387 default:
388 NoViableAltException nvae =
389 new NoViableAltException("", 3, 0, input);
390
391 throw nvae;
392 }
393
394 switch (alt3) {
395 case 1 :
396 // InternalProblem.g:147:3: this_ClassDeclaration_0= ruleClassDeclaration
397 {
398
399 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
400
401 pushFollow(FOLLOW_2);
402 this_ClassDeclaration_0=ruleClassDeclaration();
403
404 state._fsp--;
405
406
407 current = this_ClassDeclaration_0;
408 afterParserOrEnumRuleCall();
409
410
411 }
412 break;
413 case 2 :
414 // InternalProblem.g:156:3: this_EnumDeclaration_1= ruleEnumDeclaration
415 {
416
417 newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_1());
418
419 pushFollow(FOLLOW_2);
420 this_EnumDeclaration_1=ruleEnumDeclaration();
421
422 state._fsp--;
423
424
425 current = this_EnumDeclaration_1;
426 afterParserOrEnumRuleCall();
427
428
429 }
430 break;
431 case 3 :
432 // InternalProblem.g:165:3: this_PredicateDefinition_2= rulePredicateDefinition
433 {
434
435 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_2());
436
437 pushFollow(FOLLOW_2);
438 this_PredicateDefinition_2=rulePredicateDefinition();
439
440 state._fsp--;
441
442
443 current = this_PredicateDefinition_2;
444 afterParserOrEnumRuleCall();
445
446
447 }
448 break;
449 case 4 :
450 // InternalProblem.g:174:3: this_Assertion_3= ruleAssertion
451 {
452
453 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_3());
454
455 pushFollow(FOLLOW_2);
456 this_Assertion_3=ruleAssertion();
457
458 state._fsp--;
459
460
461 current = this_Assertion_3;
462 afterParserOrEnumRuleCall();
463
464
465 }
466 break;
467 case 5 :
468 // InternalProblem.g:183:3: this_ScopeDeclaration_4= ruleScopeDeclaration
469 {
470
471 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_4());
472
473 pushFollow(FOLLOW_2);
474 this_ScopeDeclaration_4=ruleScopeDeclaration();
475
476 state._fsp--;
477
478
479 current = this_ScopeDeclaration_4;
480 afterParserOrEnumRuleCall();
481
482
483 }
484 break;
485
486 }
487
488
489 }
490
491
492 leaveRule();
493
494 }
495
496 catch (RecognitionException re) {
497 recover(input,re);
498 appendSkippedTokens();
499 }
500 finally {
501 }
502 return current;
503 }
504 // $ANTLR end "ruleStatement"
505
506
507 // $ANTLR start "entryRuleClassDeclaration"
508 // InternalProblem.g:195:1: entryRuleClassDeclaration returns [EObject current=null] : iv_ruleClassDeclaration= ruleClassDeclaration EOF ;
509 public final EObject entryRuleClassDeclaration() throws RecognitionException {
510 EObject current = null;
511
512 EObject iv_ruleClassDeclaration = null;
513
514
515 try {
516 // InternalProblem.g:195:57: (iv_ruleClassDeclaration= ruleClassDeclaration EOF )
517 // InternalProblem.g:196:2: iv_ruleClassDeclaration= ruleClassDeclaration EOF
518 {
519 newCompositeNode(grammarAccess.getClassDeclarationRule());
520 pushFollow(FOLLOW_1);
521 iv_ruleClassDeclaration=ruleClassDeclaration();
522
523 state._fsp--;
524
525 current =iv_ruleClassDeclaration;
526 match(input,EOF,FOLLOW_2);
527
528 }
529
530 }
531
532 catch (RecognitionException re) {
533 recover(input,re);
534 appendSkippedTokens();
535 }
536 finally {
537 }
538 return current;
539 }
540 // $ANTLR end "entryRuleClassDeclaration"
541
542
543 // $ANTLR start "ruleClassDeclaration"
544 // InternalProblem.g:202:1: ruleClassDeclaration returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) ) ;
545 public final EObject ruleClassDeclaration() throws RecognitionException {
546 EObject current = null;
547
548 Token lv_abstract_0_0=null;
549 Token otherlv_1=null;
550 Token otherlv_3=null;
551 Token otherlv_5=null;
552 Token otherlv_7=null;
553 Token otherlv_9=null;
554 Token otherlv_10=null;
555 Token otherlv_11=null;
556 AntlrDatatypeRuleToken lv_name_2_0 = null;
557
558 EObject lv_referenceDeclarations_8_0 = null;
559
560
561
562 enterRule();
563
564 try {
565 // InternalProblem.g:208:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) ) )
566 // InternalProblem.g:209:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) )
567 {
568 // InternalProblem.g:209:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' ) )
569 // InternalProblem.g:210:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'class' ( (lv_name_2_0= ruleIdentifier ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )? ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' )
570 {
571 // InternalProblem.g:210:3: ( (lv_abstract_0_0= 'abstract' ) )?
572 int alt4=2;
573 int LA4_0 = input.LA(1);
574
575 if ( (LA4_0==14) ) {
576 alt4=1;
577 }
578 switch (alt4) {
579 case 1 :
580 // InternalProblem.g:211:4: (lv_abstract_0_0= 'abstract' )
581 {
582 // InternalProblem.g:211:4: (lv_abstract_0_0= 'abstract' )
583 // InternalProblem.g:212:5: lv_abstract_0_0= 'abstract'
584 {
585 lv_abstract_0_0=(Token)match(input,14,FOLLOW_6);
586
587 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
588
589
590 if (current==null) {
591 current = createModelElement(grammarAccess.getClassDeclarationRule());
592 }
593 setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
594
595
596 }
597
598
599 }
600 break;
601
602 }
603
604 otherlv_1=(Token)match(input,15,FOLLOW_3);
605
606 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
607
608 // InternalProblem.g:228:3: ( (lv_name_2_0= ruleIdentifier ) )
609 // InternalProblem.g:229:4: (lv_name_2_0= ruleIdentifier )
610 {
611 // InternalProblem.g:229:4: (lv_name_2_0= ruleIdentifier )
612 // InternalProblem.g:230:5: lv_name_2_0= ruleIdentifier
613 {
614
615 newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0());
616
617 pushFollow(FOLLOW_7);
618 lv_name_2_0=ruleIdentifier();
619
620 state._fsp--;
621
622
623 if (current==null) {
624 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
625 }
626 set(
627 current,
628 "name",
629 lv_name_2_0,
630 "org.eclipse.viatra.solver.language.Problem.Identifier");
631 afterParserOrEnumRuleCall();
632
633
634 }
635
636
637 }
638
639 // InternalProblem.g:247:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )?
640 int alt6=2;
641 int LA6_0 = input.LA(1);
642
643 if ( (LA6_0==16) ) {
644 alt6=1;
645 }
646 switch (alt6) {
647 case 1 :
648 // InternalProblem.g:248:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
649 {
650 otherlv_3=(Token)match(input,16,FOLLOW_8);
651
652 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
653
654 // InternalProblem.g:252:4: ( ( ruleQualifiedName ) )
655 // InternalProblem.g:253:5: ( ruleQualifiedName )
656 {
657 // InternalProblem.g:253:5: ( ruleQualifiedName )
658 // InternalProblem.g:254:6: ruleQualifiedName
659 {
660
661 if (current==null) {
662 current = createModelElement(grammarAccess.getClassDeclarationRule());
663 }
664
665
666 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0());
667
668 pushFollow(FOLLOW_9);
669 ruleQualifiedName();
670
671 state._fsp--;
672
673
674 afterParserOrEnumRuleCall();
675
676
677 }
678
679
680 }
681
682 // InternalProblem.g:268:4: (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
683 loop5:
684 do {
685 int alt5=2;
686 int LA5_0 = input.LA(1);
687
688 if ( (LA5_0==17) ) {
689 alt5=1;
690 }
691
692
693 switch (alt5) {
694 case 1 :
695 // InternalProblem.g:269:5: otherlv_5= ',' ( ( ruleQualifiedName ) )
696 {
697 otherlv_5=(Token)match(input,17,FOLLOW_8);
698
699 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
700
701 // InternalProblem.g:273:5: ( ( ruleQualifiedName ) )
702 // InternalProblem.g:274:6: ( ruleQualifiedName )
703 {
704 // InternalProblem.g:274:6: ( ruleQualifiedName )
705 // InternalProblem.g:275:7: ruleQualifiedName
706 {
707
708 if (current==null) {
709 current = createModelElement(grammarAccess.getClassDeclarationRule());
710 }
711
712
713 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0());
714
715 pushFollow(FOLLOW_9);
716 ruleQualifiedName();
717
718 state._fsp--;
719
720
721 afterParserOrEnumRuleCall();
722
723
724 }
725
726
727 }
728
729
730 }
731 break;
732
733 default :
734 break loop5;
735 }
736 } while (true);
737
738
739 }
740 break;
741
742 }
743
744 // InternalProblem.g:291:3: ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' )
745 int alt9=2;
746 int LA9_0 = input.LA(1);
747
748 if ( (LA9_0==18) ) {
749 alt9=1;
750 }
751 else if ( (LA9_0==13) ) {
752 alt9=2;
753 }
754 else {
755 NoViableAltException nvae =
756 new NoViableAltException("", 9, 0, input);
757
758 throw nvae;
759 }
760 switch (alt9) {
761 case 1 :
762 // InternalProblem.g:292:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' )
763 {
764 // InternalProblem.g:292:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' )
765 // InternalProblem.g:293:5: otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}'
766 {
767 otherlv_7=(Token)match(input,18,FOLLOW_10);
768
769 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
770
771 // InternalProblem.g:297:5: ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )*
772 loop8:
773 do {
774 int alt8=2;
775 int LA8_0 = input.LA(1);
776
777 if ( (LA8_0==RULE_ID||LA8_0==RULE_QUOTED_ID||(LA8_0>=22 && LA8_0<=23)||(LA8_0>=40 && LA8_0<=41)) ) {
778 alt8=1;
779 }
780
781
782 switch (alt8) {
783 case 1 :
784 // InternalProblem.g:298:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )?
785 {
786 // InternalProblem.g:298:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) )
787 // InternalProblem.g:299:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration )
788 {
789 // InternalProblem.g:299:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration )
790 // InternalProblem.g:300:8: lv_referenceDeclarations_8_0= ruleReferenceDeclaration
791 {
792
793 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0());
794
795 pushFollow(FOLLOW_11);
796 lv_referenceDeclarations_8_0=ruleReferenceDeclaration();
797
798 state._fsp--;
799
800
801 if (current==null) {
802 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
803 }
804 add(
805 current,
806 "referenceDeclarations",
807 lv_referenceDeclarations_8_0,
808 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
809 afterParserOrEnumRuleCall();
810
811
812 }
813
814
815 }
816
817 // InternalProblem.g:317:6: (otherlv_9= ';' )?
818 int alt7=2;
819 int LA7_0 = input.LA(1);
820
821 if ( (LA7_0==19) ) {
822 alt7=1;
823 }
824 switch (alt7) {
825 case 1 :
826 // InternalProblem.g:318:7: otherlv_9= ';'
827 {
828 otherlv_9=(Token)match(input,19,FOLLOW_10);
829
830 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1());
831
832
833 }
834 break;
835
836 }
837
838
839 }
840 break;
841
842 default :
843 break loop8;
844 }
845 } while (true);
846
847 otherlv_10=(Token)match(input,20,FOLLOW_2);
848
849 newLeafNode(otherlv_10, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2());
850
851
852 }
853
854
855 }
856 break;
857 case 2 :
858 // InternalProblem.g:330:4: otherlv_11= '.'
859 {
860 otherlv_11=(Token)match(input,13,FOLLOW_2);
861
862 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1());
863
864
865 }
866 break;
867
868 }
869
870
871 }
872
873
874 }
875
876
877 leaveRule();
878
879 }
880
881 catch (RecognitionException re) {
882 recover(input,re);
883 appendSkippedTokens();
884 }
885 finally {
886 }
887 return current;
888 }
889 // $ANTLR end "ruleClassDeclaration"
890
891
892 // $ANTLR start "entryRuleEnumDeclaration"
893 // InternalProblem.g:339:1: entryRuleEnumDeclaration returns [EObject current=null] : iv_ruleEnumDeclaration= ruleEnumDeclaration EOF ;
894 public final EObject entryRuleEnumDeclaration() throws RecognitionException {
895 EObject current = null;
896
897 EObject iv_ruleEnumDeclaration = null;
898
899
900 try {
901 // InternalProblem.g:339:56: (iv_ruleEnumDeclaration= ruleEnumDeclaration EOF )
902 // InternalProblem.g:340:2: iv_ruleEnumDeclaration= ruleEnumDeclaration EOF
903 {
904 newCompositeNode(grammarAccess.getEnumDeclarationRule());
905 pushFollow(FOLLOW_1);
906 iv_ruleEnumDeclaration=ruleEnumDeclaration();
907
908 state._fsp--;
909
910 current =iv_ruleEnumDeclaration;
911 match(input,EOF,FOLLOW_2);
912
913 }
914
915 }
916
917 catch (RecognitionException re) {
918 recover(input,re);
919 appendSkippedTokens();
920 }
921 finally {
922 }
923 return current;
924 }
925 // $ANTLR end "entryRuleEnumDeclaration"
926
927
928 // $ANTLR start "ruleEnumDeclaration"
929 // InternalProblem.g:346:1: ruleEnumDeclaration returns [EObject current=null] : (otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' ) ) ;
930 public final EObject ruleEnumDeclaration() throws RecognitionException {
931 EObject current = null;
932
933 Token otherlv_0=null;
934 Token otherlv_2=null;
935 Token otherlv_4=null;
936 Token otherlv_6=null;
937 Token otherlv_7=null;
938 Token otherlv_8=null;
939 Token otherlv_9=null;
940 AntlrDatatypeRuleToken lv_name_1_0 = null;
941
942 EObject lv_literals_3_0 = null;
943
944 EObject lv_literals_5_0 = null;
945
946
947
948 enterRule();
949
950 try {
951 // InternalProblem.g:352:2: ( (otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' ) ) )
952 // InternalProblem.g:353:2: (otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' ) )
953 {
954 // InternalProblem.g:353:2: (otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' ) )
955 // InternalProblem.g:354:3: otherlv_0= 'enum' ( (lv_name_1_0= ruleIdentifier ) ) ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' )
956 {
957 otherlv_0=(Token)match(input,21,FOLLOW_3);
958
959 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0());
960
961 // InternalProblem.g:358:3: ( (lv_name_1_0= ruleIdentifier ) )
962 // InternalProblem.g:359:4: (lv_name_1_0= ruleIdentifier )
963 {
964 // InternalProblem.g:359:4: (lv_name_1_0= ruleIdentifier )
965 // InternalProblem.g:360:5: lv_name_1_0= ruleIdentifier
966 {
967
968 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getNameIdentifierParserRuleCall_1_0());
969
970 pushFollow(FOLLOW_12);
971 lv_name_1_0=ruleIdentifier();
972
973 state._fsp--;
974
975
976 if (current==null) {
977 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
978 }
979 set(
980 current,
981 "name",
982 lv_name_1_0,
983 "org.eclipse.viatra.solver.language.Problem.Identifier");
984 afterParserOrEnumRuleCall();
985
986
987 }
988
989
990 }
991
992 // InternalProblem.g:377:3: ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' )
993 int alt13=2;
994 int LA13_0 = input.LA(1);
995
996 if ( (LA13_0==18) ) {
997 alt13=1;
998 }
999 else if ( (LA13_0==13) ) {
1000 alt13=2;
1001 }
1002 else {
1003 NoViableAltException nvae =
1004 new NoViableAltException("", 13, 0, input);
1005
1006 throw nvae;
1007 }
1008 switch (alt13) {
1009 case 1 :
1010 // InternalProblem.g:378:4: (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' )
1011 {
1012 // InternalProblem.g:378:4: (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' )
1013 // InternalProblem.g:379:5: otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}'
1014 {
1015 otherlv_2=(Token)match(input,18,FOLLOW_13);
1016
1017 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0());
1018
1019 // InternalProblem.g:383:5: ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )?
1020 int alt12=2;
1021 int LA12_0 = input.LA(1);
1022
1023 if ( (LA12_0==RULE_ID||LA12_0==RULE_QUOTED_ID||(LA12_0>=40 && LA12_0<=41)) ) {
1024 alt12=1;
1025 }
1026 switch (alt12) {
1027 case 1 :
1028 // InternalProblem.g:384:6: ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )?
1029 {
1030 // InternalProblem.g:384:6: ( (lv_literals_3_0= ruleEnumLiteral ) )
1031 // InternalProblem.g:385:7: (lv_literals_3_0= ruleEnumLiteral )
1032 {
1033 // InternalProblem.g:385:7: (lv_literals_3_0= ruleEnumLiteral )
1034 // InternalProblem.g:386:8: lv_literals_3_0= ruleEnumLiteral
1035 {
1036
1037 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0());
1038
1039 pushFollow(FOLLOW_14);
1040 lv_literals_3_0=ruleEnumLiteral();
1041
1042 state._fsp--;
1043
1044
1045 if (current==null) {
1046 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
1047 }
1048 add(
1049 current,
1050 "literals",
1051 lv_literals_3_0,
1052 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
1053 afterParserOrEnumRuleCall();
1054
1055
1056 }
1057
1058
1059 }
1060
1061 // InternalProblem.g:403:6: (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )*
1062 loop10:
1063 do {
1064 int alt10=2;
1065 int LA10_0 = input.LA(1);
1066
1067 if ( (LA10_0==17) ) {
1068 int LA10_1 = input.LA(2);
1069
1070 if ( (LA10_1==RULE_ID||LA10_1==RULE_QUOTED_ID||(LA10_1>=40 && LA10_1<=41)) ) {
1071 alt10=1;
1072 }
1073
1074
1075 }
1076
1077
1078 switch (alt10) {
1079 case 1 :
1080 // InternalProblem.g:404:7: otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) )
1081 {
1082 otherlv_4=(Token)match(input,17,FOLLOW_8);
1083
1084 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
1085
1086 // InternalProblem.g:408:7: ( (lv_literals_5_0= ruleEnumLiteral ) )
1087 // InternalProblem.g:409:8: (lv_literals_5_0= ruleEnumLiteral )
1088 {
1089 // InternalProblem.g:409:8: (lv_literals_5_0= ruleEnumLiteral )
1090 // InternalProblem.g:410:9: lv_literals_5_0= ruleEnumLiteral
1091 {
1092
1093 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0());
1094
1095 pushFollow(FOLLOW_14);
1096 lv_literals_5_0=ruleEnumLiteral();
1097
1098 state._fsp--;
1099
1100
1101 if (current==null) {
1102 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
1103 }
1104 add(
1105 current,
1106 "literals",
1107 lv_literals_5_0,
1108 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
1109 afterParserOrEnumRuleCall();
1110
1111
1112 }
1113
1114
1115 }
1116
1117
1118 }
1119 break;
1120
1121 default :
1122 break loop10;
1123 }
1124 } while (true);
1125
1126 // InternalProblem.g:428:6: (otherlv_6= ',' | otherlv_7= ';' )?
1127 int alt11=3;
1128 int LA11_0 = input.LA(1);
1129
1130 if ( (LA11_0==17) ) {
1131 alt11=1;
1132 }
1133 else if ( (LA11_0==19) ) {
1134 alt11=2;
1135 }
1136 switch (alt11) {
1137 case 1 :
1138 // InternalProblem.g:429:7: otherlv_6= ','
1139 {
1140 otherlv_6=(Token)match(input,17,FOLLOW_15);
1141
1142 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0());
1143
1144
1145 }
1146 break;
1147 case 2 :
1148 // InternalProblem.g:434:7: otherlv_7= ';'
1149 {
1150 otherlv_7=(Token)match(input,19,FOLLOW_15);
1151
1152 newLeafNode(otherlv_7, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1());
1153
1154
1155 }
1156 break;
1157
1158 }
1159
1160
1161 }
1162 break;
1163
1164 }
1165
1166 otherlv_8=(Token)match(input,20,FOLLOW_2);
1167
1168 newLeafNode(otherlv_8, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2());
1169
1170
1171 }
1172
1173
1174 }
1175 break;
1176 case 2 :
1177 // InternalProblem.g:446:4: otherlv_9= '.'
1178 {
1179 otherlv_9=(Token)match(input,13,FOLLOW_2);
1180
1181 newLeafNode(otherlv_9, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1());
1182
1183
1184 }
1185 break;
1186
1187 }
1188
1189
1190 }
1191
1192
1193 }
1194
1195
1196 leaveRule();
1197
1198 }
1199
1200 catch (RecognitionException re) {
1201 recover(input,re);
1202 appendSkippedTokens();
1203 }
1204 finally {
1205 }
1206 return current;
1207 }
1208 // $ANTLR end "ruleEnumDeclaration"
1209
1210
1211 // $ANTLR start "entryRuleEnumLiteral"
1212 // InternalProblem.g:455:1: entryRuleEnumLiteral returns [EObject current=null] : iv_ruleEnumLiteral= ruleEnumLiteral EOF ;
1213 public final EObject entryRuleEnumLiteral() throws RecognitionException {
1214 EObject current = null;
1215
1216 EObject iv_ruleEnumLiteral = null;
1217
1218
1219 try {
1220 // InternalProblem.g:455:52: (iv_ruleEnumLiteral= ruleEnumLiteral EOF )
1221 // InternalProblem.g:456:2: iv_ruleEnumLiteral= ruleEnumLiteral EOF
1222 {
1223 newCompositeNode(grammarAccess.getEnumLiteralRule());
1224 pushFollow(FOLLOW_1);
1225 iv_ruleEnumLiteral=ruleEnumLiteral();
1226
1227 state._fsp--;
1228
1229 current =iv_ruleEnumLiteral;
1230 match(input,EOF,FOLLOW_2);
1231
1232 }
1233
1234 }
1235
1236 catch (RecognitionException re) {
1237 recover(input,re);
1238 appendSkippedTokens();
1239 }
1240 finally {
1241 }
1242 return current;
1243 }
1244 // $ANTLR end "entryRuleEnumLiteral"
1245
1246
1247 // $ANTLR start "ruleEnumLiteral"
1248 // InternalProblem.g:462:1: ruleEnumLiteral returns [EObject current=null] : ( (lv_name_0_0= ruleQuotedOrUnquotedId ) ) ;
1249 public final EObject ruleEnumLiteral() throws RecognitionException {
1250 EObject current = null;
1251
1252 AntlrDatatypeRuleToken lv_name_0_0 = null;
1253
1254
1255
1256 enterRule();
1257
1258 try {
1259 // InternalProblem.g:468:2: ( ( (lv_name_0_0= ruleQuotedOrUnquotedId ) ) )
1260 // InternalProblem.g:469:2: ( (lv_name_0_0= ruleQuotedOrUnquotedId ) )
1261 {
1262 // InternalProblem.g:469:2: ( (lv_name_0_0= ruleQuotedOrUnquotedId ) )
1263 // InternalProblem.g:470:3: (lv_name_0_0= ruleQuotedOrUnquotedId )
1264 {
1265 // InternalProblem.g:470:3: (lv_name_0_0= ruleQuotedOrUnquotedId )
1266 // InternalProblem.g:471:4: lv_name_0_0= ruleQuotedOrUnquotedId
1267 {
1268
1269 newCompositeNode(grammarAccess.getEnumLiteralAccess().getNameQuotedOrUnquotedIdParserRuleCall_0());
1270
1271 pushFollow(FOLLOW_2);
1272 lv_name_0_0=ruleQuotedOrUnquotedId();
1273
1274 state._fsp--;
1275
1276
1277 if (current==null) {
1278 current = createModelElementForParent(grammarAccess.getEnumLiteralRule());
1279 }
1280 set(
1281 current,
1282 "name",
1283 lv_name_0_0,
1284 "org.eclipse.viatra.solver.language.Problem.QuotedOrUnquotedId");
1285 afterParserOrEnumRuleCall();
1286
1287
1288 }
1289
1290
1291 }
1292
1293
1294 }
1295
1296
1297 leaveRule();
1298
1299 }
1300
1301 catch (RecognitionException re) {
1302 recover(input,re);
1303 appendSkippedTokens();
1304 }
1305 finally {
1306 }
1307 return current;
1308 }
1309 // $ANTLR end "ruleEnumLiteral"
1310
1311
1312 // $ANTLR start "entryRuleReferenceDeclaration"
1313 // InternalProblem.g:491:1: entryRuleReferenceDeclaration returns [EObject current=null] : iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF ;
1314 public final EObject entryRuleReferenceDeclaration() throws RecognitionException {
1315 EObject current = null;
1316
1317 EObject iv_ruleReferenceDeclaration = null;
1318
1319
1320 try {
1321 // InternalProblem.g:491:61: (iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF )
1322 // InternalProblem.g:492:2: iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF
1323 {
1324 newCompositeNode(grammarAccess.getReferenceDeclarationRule());
1325 pushFollow(FOLLOW_1);
1326 iv_ruleReferenceDeclaration=ruleReferenceDeclaration();
1327
1328 state._fsp--;
1329
1330 current =iv_ruleReferenceDeclaration;
1331 match(input,EOF,FOLLOW_2);
1332
1333 }
1334
1335 }
1336
1337 catch (RecognitionException re) {
1338 recover(input,re);
1339 appendSkippedTokens();
1340 }
1341 finally {
1342 }
1343 return current;
1344 }
1345 // $ANTLR end "entryRuleReferenceDeclaration"
1346
1347
1348 // $ANTLR start "ruleReferenceDeclaration"
1349 // InternalProblem.g:498:1: ruleReferenceDeclaration returns [EObject current=null] : ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) ;
1350 public final EObject ruleReferenceDeclaration() throws RecognitionException {
1351 EObject current = null;
1352
1353 Token lv_containment_0_0=null;
1354 Token otherlv_1=null;
1355 Token otherlv_3=null;
1356 Token otherlv_5=null;
1357 Token otherlv_7=null;
1358 EObject lv_multiplicity_4_0 = null;
1359
1360 AntlrDatatypeRuleToken lv_name_6_0 = null;
1361
1362
1363
1364 enterRule();
1365
1366 try {
1367 // InternalProblem.g:504:2: ( ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? ) )
1368 // InternalProblem.g:505:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? )
1369 {
1370 // InternalProblem.g:505:2: ( ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )? )
1371 // InternalProblem.g:506:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )? ( ( ruleQualifiedName ) ) (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )? ( (lv_name_6_0= ruleIdentifier ) ) (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
1372 {
1373 // InternalProblem.g:506:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )?
1374 int alt14=3;
1375 int LA14_0 = input.LA(1);
1376
1377 if ( (LA14_0==22) ) {
1378 alt14=1;
1379 }
1380 else if ( (LA14_0==23) ) {
1381 alt14=2;
1382 }
1383 switch (alt14) {
1384 case 1 :
1385 // InternalProblem.g:507:4: ( (lv_containment_0_0= 'contains' ) )
1386 {
1387 // InternalProblem.g:507:4: ( (lv_containment_0_0= 'contains' ) )
1388 // InternalProblem.g:508:5: (lv_containment_0_0= 'contains' )
1389 {
1390 // InternalProblem.g:508:5: (lv_containment_0_0= 'contains' )
1391 // InternalProblem.g:509:6: lv_containment_0_0= 'contains'
1392 {
1393 lv_containment_0_0=(Token)match(input,22,FOLLOW_8);
1394
1395 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
1396
1397
1398 if (current==null) {
1399 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1400 }
1401 setWithLastConsumed(current, "containment", lv_containment_0_0 != null, "contains");
1402
1403
1404 }
1405
1406
1407 }
1408
1409
1410 }
1411 break;
1412 case 2 :
1413 // InternalProblem.g:522:4: otherlv_1= 'refers'
1414 {
1415 otherlv_1=(Token)match(input,23,FOLLOW_8);
1416
1417 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
1418
1419
1420 }
1421 break;
1422
1423 }
1424
1425 // InternalProblem.g:527:3: ( ( ruleQualifiedName ) )
1426 // InternalProblem.g:528:4: ( ruleQualifiedName )
1427 {
1428 // InternalProblem.g:528:4: ( ruleQualifiedName )
1429 // InternalProblem.g:529:5: ruleQualifiedName
1430 {
1431
1432 if (current==null) {
1433 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1434 }
1435
1436
1437 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0());
1438
1439 pushFollow(FOLLOW_16);
1440 ruleQualifiedName();
1441
1442 state._fsp--;
1443
1444
1445 afterParserOrEnumRuleCall();
1446
1447
1448 }
1449
1450
1451 }
1452
1453 // InternalProblem.g:543:3: (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )?
1454 int alt15=2;
1455 int LA15_0 = input.LA(1);
1456
1457 if ( (LA15_0==24) ) {
1458 alt15=1;
1459 }
1460 switch (alt15) {
1461 case 1 :
1462 // InternalProblem.g:544:4: otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']'
1463 {
1464 otherlv_3=(Token)match(input,24,FOLLOW_17);
1465
1466 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0());
1467
1468 // InternalProblem.g:548:4: ( (lv_multiplicity_4_0= ruleMultiplicity ) )
1469 // InternalProblem.g:549:5: (lv_multiplicity_4_0= ruleMultiplicity )
1470 {
1471 // InternalProblem.g:549:5: (lv_multiplicity_4_0= ruleMultiplicity )
1472 // InternalProblem.g:550:6: lv_multiplicity_4_0= ruleMultiplicity
1473 {
1474
1475 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0());
1476
1477 pushFollow(FOLLOW_18);
1478 lv_multiplicity_4_0=ruleMultiplicity();
1479
1480 state._fsp--;
1481
1482
1483 if (current==null) {
1484 current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
1485 }
1486 set(
1487 current,
1488 "multiplicity",
1489 lv_multiplicity_4_0,
1490 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
1491 afterParserOrEnumRuleCall();
1492
1493
1494 }
1495
1496
1497 }
1498
1499 otherlv_5=(Token)match(input,25,FOLLOW_3);
1500
1501 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2());
1502
1503
1504 }
1505 break;
1506
1507 }
1508
1509 // InternalProblem.g:572:3: ( (lv_name_6_0= ruleIdentifier ) )
1510 // InternalProblem.g:573:4: (lv_name_6_0= ruleIdentifier )
1511 {
1512 // InternalProblem.g:573:4: (lv_name_6_0= ruleIdentifier )
1513 // InternalProblem.g:574:5: lv_name_6_0= ruleIdentifier
1514 {
1515
1516 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0());
1517
1518 pushFollow(FOLLOW_19);
1519 lv_name_6_0=ruleIdentifier();
1520
1521 state._fsp--;
1522
1523
1524 if (current==null) {
1525 current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
1526 }
1527 set(
1528 current,
1529 "name",
1530 lv_name_6_0,
1531 "org.eclipse.viatra.solver.language.Problem.Identifier");
1532 afterParserOrEnumRuleCall();
1533
1534
1535 }
1536
1537
1538 }
1539
1540 // InternalProblem.g:591:3: (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
1541 int alt16=2;
1542 int LA16_0 = input.LA(1);
1543
1544 if ( (LA16_0==26) ) {
1545 alt16=1;
1546 }
1547 switch (alt16) {
1548 case 1 :
1549 // InternalProblem.g:592:4: otherlv_7= 'opposite' ( ( ruleQualifiedName ) )
1550 {
1551 otherlv_7=(Token)match(input,26,FOLLOW_8);
1552
1553 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0());
1554
1555 // InternalProblem.g:596:4: ( ( ruleQualifiedName ) )
1556 // InternalProblem.g:597:5: ( ruleQualifiedName )
1557 {
1558 // InternalProblem.g:597:5: ( ruleQualifiedName )
1559 // InternalProblem.g:598:6: ruleQualifiedName
1560 {
1561
1562 if (current==null) {
1563 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1564 }
1565
1566
1567 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_4_1_0());
1568
1569 pushFollow(FOLLOW_2);
1570 ruleQualifiedName();
1571
1572 state._fsp--;
1573
1574
1575 afterParserOrEnumRuleCall();
1576
1577
1578 }
1579
1580
1581 }
1582
1583
1584 }
1585 break;
1586
1587 }
1588
1589
1590 }
1591
1592
1593 }
1594
1595
1596 leaveRule();
1597
1598 }
1599
1600 catch (RecognitionException re) {
1601 recover(input,re);
1602 appendSkippedTokens();
1603 }
1604 finally {
1605 }
1606 return current;
1607 }
1608 // $ANTLR end "ruleReferenceDeclaration"
1609
1610
1611 // $ANTLR start "entryRulePredicateDefinition"
1612 // InternalProblem.g:617:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ;
1613 public final EObject entryRulePredicateDefinition() throws RecognitionException {
1614 EObject current = null;
1615
1616 EObject iv_rulePredicateDefinition = null;
1617
1618
1619 try {
1620 // InternalProblem.g:617:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF )
1621 // InternalProblem.g:618:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF
1622 {
1623 newCompositeNode(grammarAccess.getPredicateDefinitionRule());
1624 pushFollow(FOLLOW_1);
1625 iv_rulePredicateDefinition=rulePredicateDefinition();
1626
1627 state._fsp--;
1628
1629 current =iv_rulePredicateDefinition;
1630 match(input,EOF,FOLLOW_2);
1631
1632 }
1633
1634 }
1635
1636 catch (RecognitionException re) {
1637 recover(input,re);
1638 appendSkippedTokens();
1639 }
1640 finally {
1641 }
1642 return current;
1643 }
1644 // $ANTLR end "entryRulePredicateDefinition"
1645
1646
1647 // $ANTLR start "rulePredicateDefinition"
1648 // InternalProblem.g:624:1: rulePredicateDefinition returns [EObject current=null] : ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) 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= '.' ) ;
1649 public final EObject rulePredicateDefinition() throws RecognitionException {
1650 EObject current = null;
1651
1652 Token lv_error_0_0=null;
1653 Token otherlv_1=null;
1654 Token otherlv_2=null;
1655 Token otherlv_4=null;
1656 Token otherlv_6=null;
1657 Token otherlv_8=null;
1658 Token otherlv_9=null;
1659 Token otherlv_11=null;
1660 Token otherlv_13=null;
1661 AntlrDatatypeRuleToken lv_name_3_0 = null;
1662
1663 EObject lv_parameters_5_0 = null;
1664
1665 EObject lv_parameters_7_0 = null;
1666
1667 EObject lv_bodies_10_0 = null;
1668
1669 EObject lv_bodies_12_0 = null;
1670
1671
1672
1673 enterRule();
1674
1675 try {
1676 // InternalProblem.g:630:2: ( ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) 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= '.' ) )
1677 // InternalProblem.g:631:2: ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) 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= '.' )
1678 {
1679 // InternalProblem.g:631:2: ( ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) 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= '.' )
1680 // InternalProblem.g:632:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' ) ( (lv_name_3_0= ruleIdentifier ) ) 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= '.'
1681 {
1682 // InternalProblem.g:632:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' )
1683 int alt18=2;
1684 int LA18_0 = input.LA(1);
1685
1686 if ( (LA18_0==27) ) {
1687 alt18=1;
1688 }
1689 else if ( (LA18_0==28) ) {
1690 alt18=2;
1691 }
1692 else {
1693 NoViableAltException nvae =
1694 new NoViableAltException("", 18, 0, input);
1695
1696 throw nvae;
1697 }
1698 switch (alt18) {
1699 case 1 :
1700 // InternalProblem.g:633:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1701 {
1702 // InternalProblem.g:633:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1703 // InternalProblem.g:634:5: ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )?
1704 {
1705 // InternalProblem.g:634:5: ( (lv_error_0_0= 'error' ) )
1706 // InternalProblem.g:635:6: (lv_error_0_0= 'error' )
1707 {
1708 // InternalProblem.g:635:6: (lv_error_0_0= 'error' )
1709 // InternalProblem.g:636:7: lv_error_0_0= 'error'
1710 {
1711 lv_error_0_0=(Token)match(input,27,FOLLOW_20);
1712
1713 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
1714
1715
1716 if (current==null) {
1717 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1718 }
1719 setWithLastConsumed(current, "error", lv_error_0_0 != null, "error");
1720
1721
1722 }
1723
1724
1725 }
1726
1727 // InternalProblem.g:648:5: (otherlv_1= 'pred' )?
1728 int alt17=2;
1729 int LA17_0 = input.LA(1);
1730
1731 if ( (LA17_0==28) ) {
1732 alt17=1;
1733 }
1734 switch (alt17) {
1735 case 1 :
1736 // InternalProblem.g:649:6: otherlv_1= 'pred'
1737 {
1738 otherlv_1=(Token)match(input,28,FOLLOW_3);
1739
1740 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
1741
1742
1743 }
1744 break;
1745
1746 }
1747
1748
1749 }
1750
1751
1752 }
1753 break;
1754 case 2 :
1755 // InternalProblem.g:656:4: otherlv_2= 'pred'
1756 {
1757 otherlv_2=(Token)match(input,28,FOLLOW_3);
1758
1759 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
1760
1761
1762 }
1763 break;
1764
1765 }
1766
1767 // InternalProblem.g:661:3: ( (lv_name_3_0= ruleIdentifier ) )
1768 // InternalProblem.g:662:4: (lv_name_3_0= ruleIdentifier )
1769 {
1770 // InternalProblem.g:662:4: (lv_name_3_0= ruleIdentifier )
1771 // InternalProblem.g:663:5: lv_name_3_0= ruleIdentifier
1772 {
1773
1774 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0());
1775
1776 pushFollow(FOLLOW_21);
1777 lv_name_3_0=ruleIdentifier();
1778
1779 state._fsp--;
1780
1781
1782 if (current==null) {
1783 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1784 }
1785 set(
1786 current,
1787 "name",
1788 lv_name_3_0,
1789 "org.eclipse.viatra.solver.language.Problem.Identifier");
1790 afterParserOrEnumRuleCall();
1791
1792
1793 }
1794
1795
1796 }
1797
1798 otherlv_4=(Token)match(input,29,FOLLOW_22);
1799
1800 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
1801
1802 // InternalProblem.g:684:3: ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )?
1803 int alt20=2;
1804 int LA20_0 = input.LA(1);
1805
1806 if ( (LA20_0==RULE_ID||LA20_0==RULE_QUOTED_ID||(LA20_0>=40 && LA20_0<=41)) ) {
1807 alt20=1;
1808 }
1809 switch (alt20) {
1810 case 1 :
1811 // InternalProblem.g:685:4: ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1812 {
1813 // InternalProblem.g:685:4: ( (lv_parameters_5_0= ruleParameter ) )
1814 // InternalProblem.g:686:5: (lv_parameters_5_0= ruleParameter )
1815 {
1816 // InternalProblem.g:686:5: (lv_parameters_5_0= ruleParameter )
1817 // InternalProblem.g:687:6: lv_parameters_5_0= ruleParameter
1818 {
1819
1820 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
1821
1822 pushFollow(FOLLOW_23);
1823 lv_parameters_5_0=ruleParameter();
1824
1825 state._fsp--;
1826
1827
1828 if (current==null) {
1829 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1830 }
1831 add(
1832 current,
1833 "parameters",
1834 lv_parameters_5_0,
1835 "org.eclipse.viatra.solver.language.Problem.Parameter");
1836 afterParserOrEnumRuleCall();
1837
1838
1839 }
1840
1841
1842 }
1843
1844 // InternalProblem.g:704:4: (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1845 loop19:
1846 do {
1847 int alt19=2;
1848 int LA19_0 = input.LA(1);
1849
1850 if ( (LA19_0==17) ) {
1851 alt19=1;
1852 }
1853
1854
1855 switch (alt19) {
1856 case 1 :
1857 // InternalProblem.g:705:5: otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) )
1858 {
1859 otherlv_6=(Token)match(input,17,FOLLOW_8);
1860
1861 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
1862
1863 // InternalProblem.g:709:5: ( (lv_parameters_7_0= ruleParameter ) )
1864 // InternalProblem.g:710:6: (lv_parameters_7_0= ruleParameter )
1865 {
1866 // InternalProblem.g:710:6: (lv_parameters_7_0= ruleParameter )
1867 // InternalProblem.g:711:7: lv_parameters_7_0= ruleParameter
1868 {
1869
1870 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
1871
1872 pushFollow(FOLLOW_23);
1873 lv_parameters_7_0=ruleParameter();
1874
1875 state._fsp--;
1876
1877
1878 if (current==null) {
1879 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1880 }
1881 add(
1882 current,
1883 "parameters",
1884 lv_parameters_7_0,
1885 "org.eclipse.viatra.solver.language.Problem.Parameter");
1886 afterParserOrEnumRuleCall();
1887
1888
1889 }
1890
1891
1892 }
1893
1894
1895 }
1896 break;
1897
1898 default :
1899 break loop19;
1900 }
1901 } while (true);
1902
1903
1904 }
1905 break;
1906
1907 }
1908
1909 otherlv_8=(Token)match(input,30,FOLLOW_24);
1910
1911 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
1912
1913 // InternalProblem.g:734:3: (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )?
1914 int alt22=2;
1915 int LA22_0 = input.LA(1);
1916
1917 if ( (LA22_0==31) ) {
1918 alt22=1;
1919 }
1920 switch (alt22) {
1921 case 1 :
1922 // InternalProblem.g:735:4: otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1923 {
1924 otherlv_9=(Token)match(input,31,FOLLOW_25);
1925
1926 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0());
1927
1928 // InternalProblem.g:739:4: ( (lv_bodies_10_0= ruleConjunction ) )
1929 // InternalProblem.g:740:5: (lv_bodies_10_0= ruleConjunction )
1930 {
1931 // InternalProblem.g:740:5: (lv_bodies_10_0= ruleConjunction )
1932 // InternalProblem.g:741:6: lv_bodies_10_0= ruleConjunction
1933 {
1934
1935 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
1936
1937 pushFollow(FOLLOW_26);
1938 lv_bodies_10_0=ruleConjunction();
1939
1940 state._fsp--;
1941
1942
1943 if (current==null) {
1944 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1945 }
1946 add(
1947 current,
1948 "bodies",
1949 lv_bodies_10_0,
1950 "org.eclipse.viatra.solver.language.Problem.Conjunction");
1951 afterParserOrEnumRuleCall();
1952
1953
1954 }
1955
1956
1957 }
1958
1959 // InternalProblem.g:758:4: (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1960 loop21:
1961 do {
1962 int alt21=2;
1963 int LA21_0 = input.LA(1);
1964
1965 if ( (LA21_0==19) ) {
1966 alt21=1;
1967 }
1968
1969
1970 switch (alt21) {
1971 case 1 :
1972 // InternalProblem.g:759:5: otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) )
1973 {
1974 otherlv_11=(Token)match(input,19,FOLLOW_25);
1975
1976 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
1977
1978 // InternalProblem.g:763:5: ( (lv_bodies_12_0= ruleConjunction ) )
1979 // InternalProblem.g:764:6: (lv_bodies_12_0= ruleConjunction )
1980 {
1981 // InternalProblem.g:764:6: (lv_bodies_12_0= ruleConjunction )
1982 // InternalProblem.g:765:7: lv_bodies_12_0= ruleConjunction
1983 {
1984
1985 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
1986
1987 pushFollow(FOLLOW_26);
1988 lv_bodies_12_0=ruleConjunction();
1989
1990 state._fsp--;
1991
1992
1993 if (current==null) {
1994 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1995 }
1996 add(
1997 current,
1998 "bodies",
1999 lv_bodies_12_0,
2000 "org.eclipse.viatra.solver.language.Problem.Conjunction");
2001 afterParserOrEnumRuleCall();
2002
2003
2004 }
2005
2006
2007 }
2008
2009
2010 }
2011 break;
2012
2013 default :
2014 break loop21;
2015 }
2016 } while (true);
2017
2018
2019 }
2020 break;
2021
2022 }
2023
2024 otherlv_13=(Token)match(input,13,FOLLOW_2);
2025
2026 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
2027
2028
2029 }
2030
2031
2032 }
2033
2034
2035 leaveRule();
2036
2037 }
2038
2039 catch (RecognitionException re) {
2040 recover(input,re);
2041 appendSkippedTokens();
2042 }
2043 finally {
2044 }
2045 return current;
2046 }
2047 // $ANTLR end "rulePredicateDefinition"
2048
2049
2050 // $ANTLR start "entryRuleParameter"
2051 // InternalProblem.g:792:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ;
2052 public final EObject entryRuleParameter() throws RecognitionException {
2053 EObject current = null;
2054
2055 EObject iv_ruleParameter = null;
2056
2057
2058 try {
2059 // InternalProblem.g:792:50: (iv_ruleParameter= ruleParameter EOF )
2060 // InternalProblem.g:793:2: iv_ruleParameter= ruleParameter EOF
2061 {
2062 newCompositeNode(grammarAccess.getParameterRule());
2063 pushFollow(FOLLOW_1);
2064 iv_ruleParameter=ruleParameter();
2065
2066 state._fsp--;
2067
2068 current =iv_ruleParameter;
2069 match(input,EOF,FOLLOW_2);
2070
2071 }
2072
2073 }
2074
2075 catch (RecognitionException re) {
2076 recover(input,re);
2077 appendSkippedTokens();
2078 }
2079 finally {
2080 }
2081 return current;
2082 }
2083 // $ANTLR end "entryRuleParameter"
2084
2085
2086 // $ANTLR start "ruleParameter"
2087 // InternalProblem.g:799:1: ruleParameter returns [EObject current=null] : ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) ) ;
2088 public final EObject ruleParameter() throws RecognitionException {
2089 EObject current = null;
2090
2091 AntlrDatatypeRuleToken lv_name_1_0 = null;
2092
2093
2094
2095 enterRule();
2096
2097 try {
2098 // InternalProblem.g:805:2: ( ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) ) )
2099 // InternalProblem.g:806:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) )
2100 {
2101 // InternalProblem.g:806:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) )
2102 // InternalProblem.g:807:3: ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) )
2103 {
2104 // InternalProblem.g:807:3: ( ( ruleQualifiedName ) )?
2105 int alt23=2;
2106 switch ( input.LA(1) ) {
2107 case RULE_QUOTED_ID:
2108 {
2109 alt23=1;
2110 }
2111 break;
2112 case RULE_ID:
2113 {
2114 int LA23_2 = input.LA(2);
2115
2116 if ( (LA23_2==RULE_ID||LA23_2==34||(LA23_2>=40 && LA23_2<=41)) ) {
2117 alt23=1;
2118 }
2119 }
2120 break;
2121 case 40:
2122 {
2123 int LA23_3 = input.LA(2);
2124
2125 if ( (LA23_3==RULE_ID||LA23_3==34||(LA23_3>=40 && LA23_3<=41)) ) {
2126 alt23=1;
2127 }
2128 }
2129 break;
2130 case 41:
2131 {
2132 int LA23_4 = input.LA(2);
2133
2134 if ( (LA23_4==RULE_ID||LA23_4==34||(LA23_4>=40 && LA23_4<=41)) ) {
2135 alt23=1;
2136 }
2137 }
2138 break;
2139 }
2140
2141 switch (alt23) {
2142 case 1 :
2143 // InternalProblem.g:808:4: ( ruleQualifiedName )
2144 {
2145 // InternalProblem.g:808:4: ( ruleQualifiedName )
2146 // InternalProblem.g:809:5: ruleQualifiedName
2147 {
2148
2149 if (current==null) {
2150 current = createModelElement(grammarAccess.getParameterRule());
2151 }
2152
2153
2154 newCompositeNode(grammarAccess.getParameterAccess().getParameterTypeRelationCrossReference_0_0());
2155
2156 pushFollow(FOLLOW_3);
2157 ruleQualifiedName();
2158
2159 state._fsp--;
2160
2161
2162 afterParserOrEnumRuleCall();
2163
2164
2165 }
2166
2167
2168 }
2169 break;
2170
2171 }
2172
2173 // InternalProblem.g:823:3: ( (lv_name_1_0= ruleIdentifier ) )
2174 // InternalProblem.g:824:4: (lv_name_1_0= ruleIdentifier )
2175 {
2176 // InternalProblem.g:824:4: (lv_name_1_0= ruleIdentifier )
2177 // InternalProblem.g:825:5: lv_name_1_0= ruleIdentifier
2178 {
2179
2180 newCompositeNode(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0());
2181
2182 pushFollow(FOLLOW_2);
2183 lv_name_1_0=ruleIdentifier();
2184
2185 state._fsp--;
2186
2187
2188 if (current==null) {
2189 current = createModelElementForParent(grammarAccess.getParameterRule());
2190 }
2191 set(
2192 current,
2193 "name",
2194 lv_name_1_0,
2195 "org.eclipse.viatra.solver.language.Problem.Identifier");
2196 afterParserOrEnumRuleCall();
2197
2198
2199 }
2200
2201
2202 }
2203
2204
2205 }
2206
2207
2208 }
2209
2210
2211 leaveRule();
2212
2213 }
2214
2215 catch (RecognitionException re) {
2216 recover(input,re);
2217 appendSkippedTokens();
2218 }
2219 finally {
2220 }
2221 return current;
2222 }
2223 // $ANTLR end "ruleParameter"
2224
2225
2226 // $ANTLR start "entryRuleConjunction"
2227 // InternalProblem.g:846:1: entryRuleConjunction returns [EObject current=null] : iv_ruleConjunction= ruleConjunction EOF ;
2228 public final EObject entryRuleConjunction() throws RecognitionException {
2229 EObject current = null;
2230
2231 EObject iv_ruleConjunction = null;
2232
2233
2234 try {
2235 // InternalProblem.g:846:52: (iv_ruleConjunction= ruleConjunction EOF )
2236 // InternalProblem.g:847:2: iv_ruleConjunction= ruleConjunction EOF
2237 {
2238 newCompositeNode(grammarAccess.getConjunctionRule());
2239 pushFollow(FOLLOW_1);
2240 iv_ruleConjunction=ruleConjunction();
2241
2242 state._fsp--;
2243
2244 current =iv_ruleConjunction;
2245 match(input,EOF,FOLLOW_2);
2246
2247 }
2248
2249 }
2250
2251 catch (RecognitionException re) {
2252 recover(input,re);
2253 appendSkippedTokens();
2254 }
2255 finally {
2256 }
2257 return current;
2258 }
2259 // $ANTLR end "entryRuleConjunction"
2260
2261
2262 // $ANTLR start "ruleConjunction"
2263 // InternalProblem.g:853:1: ruleConjunction returns [EObject current=null] : ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) ;
2264 public final EObject ruleConjunction() throws RecognitionException {
2265 EObject current = null;
2266
2267 Token otherlv_1=null;
2268 EObject lv_literals_0_0 = null;
2269
2270 EObject lv_literals_2_0 = null;
2271
2272
2273
2274 enterRule();
2275
2276 try {
2277 // InternalProblem.g:859:2: ( ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) )
2278 // InternalProblem.g:860:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
2279 {
2280 // InternalProblem.g:860:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
2281 // InternalProblem.g:861:3: ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
2282 {
2283 // InternalProblem.g:861:3: ( (lv_literals_0_0= ruleLiteral ) )
2284 // InternalProblem.g:862:4: (lv_literals_0_0= ruleLiteral )
2285 {
2286 // InternalProblem.g:862:4: (lv_literals_0_0= ruleLiteral )
2287 // InternalProblem.g:863:5: lv_literals_0_0= ruleLiteral
2288 {
2289
2290 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
2291
2292 pushFollow(FOLLOW_27);
2293 lv_literals_0_0=ruleLiteral();
2294
2295 state._fsp--;
2296
2297
2298 if (current==null) {
2299 current = createModelElementForParent(grammarAccess.getConjunctionRule());
2300 }
2301 add(
2302 current,
2303 "literals",
2304 lv_literals_0_0,
2305 "org.eclipse.viatra.solver.language.Problem.Literal");
2306 afterParserOrEnumRuleCall();
2307
2308
2309 }
2310
2311
2312 }
2313
2314 // InternalProblem.g:880:3: (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
2315 loop24:
2316 do {
2317 int alt24=2;
2318 int LA24_0 = input.LA(1);
2319
2320 if ( (LA24_0==17) ) {
2321 alt24=1;
2322 }
2323
2324
2325 switch (alt24) {
2326 case 1 :
2327 // InternalProblem.g:881:4: otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) )
2328 {
2329 otherlv_1=(Token)match(input,17,FOLLOW_25);
2330
2331 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
2332
2333 // InternalProblem.g:885:4: ( (lv_literals_2_0= ruleLiteral ) )
2334 // InternalProblem.g:886:5: (lv_literals_2_0= ruleLiteral )
2335 {
2336 // InternalProblem.g:886:5: (lv_literals_2_0= ruleLiteral )
2337 // InternalProblem.g:887:6: lv_literals_2_0= ruleLiteral
2338 {
2339
2340 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
2341
2342 pushFollow(FOLLOW_27);
2343 lv_literals_2_0=ruleLiteral();
2344
2345 state._fsp--;
2346
2347
2348 if (current==null) {
2349 current = createModelElementForParent(grammarAccess.getConjunctionRule());
2350 }
2351 add(
2352 current,
2353 "literals",
2354 lv_literals_2_0,
2355 "org.eclipse.viatra.solver.language.Problem.Literal");
2356 afterParserOrEnumRuleCall();
2357
2358
2359 }
2360
2361
2362 }
2363
2364
2365 }
2366 break;
2367
2368 default :
2369 break loop24;
2370 }
2371 } while (true);
2372
2373
2374 }
2375
2376
2377 }
2378
2379
2380 leaveRule();
2381
2382 }
2383
2384 catch (RecognitionException re) {
2385 recover(input,re);
2386 appendSkippedTokens();
2387 }
2388 finally {
2389 }
2390 return current;
2391 }
2392 // $ANTLR end "ruleConjunction"
2393
2394
2395 // $ANTLR start "entryRuleLiteral"
2396 // InternalProblem.g:909:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ;
2397 public final EObject entryRuleLiteral() throws RecognitionException {
2398 EObject current = null;
2399
2400 EObject iv_ruleLiteral = null;
2401
2402
2403 try {
2404 // InternalProblem.g:909:48: (iv_ruleLiteral= ruleLiteral EOF )
2405 // InternalProblem.g:910:2: iv_ruleLiteral= ruleLiteral EOF
2406 {
2407 newCompositeNode(grammarAccess.getLiteralRule());
2408 pushFollow(FOLLOW_1);
2409 iv_ruleLiteral=ruleLiteral();
2410
2411 state._fsp--;
2412
2413 current =iv_ruleLiteral;
2414 match(input,EOF,FOLLOW_2);
2415
2416 }
2417
2418 }
2419
2420 catch (RecognitionException re) {
2421 recover(input,re);
2422 appendSkippedTokens();
2423 }
2424 finally {
2425 }
2426 return current;
2427 }
2428 // $ANTLR end "entryRuleLiteral"
2429
2430
2431 // $ANTLR start "ruleLiteral"
2432 // InternalProblem.g:916:1: ruleLiteral returns [EObject current=null] : (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) ;
2433 public final EObject ruleLiteral() throws RecognitionException {
2434 EObject current = null;
2435
2436 EObject this_Atom_0 = null;
2437
2438 EObject this_NegativeLiteral_1 = null;
2439
2440
2441
2442 enterRule();
2443
2444 try {
2445 // InternalProblem.g:922:2: ( (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) )
2446 // InternalProblem.g:923:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
2447 {
2448 // InternalProblem.g:923:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
2449 int alt25=2;
2450 int LA25_0 = input.LA(1);
2451
2452 if ( (LA25_0==RULE_ID||LA25_0==RULE_QUOTED_ID||(LA25_0>=40 && LA25_0<=41)) ) {
2453 alt25=1;
2454 }
2455 else if ( (LA25_0==32) ) {
2456 alt25=2;
2457 }
2458 else {
2459 NoViableAltException nvae =
2460 new NoViableAltException("", 25, 0, input);
2461
2462 throw nvae;
2463 }
2464 switch (alt25) {
2465 case 1 :
2466 // InternalProblem.g:924:3: this_Atom_0= ruleAtom
2467 {
2468
2469 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
2470
2471 pushFollow(FOLLOW_2);
2472 this_Atom_0=ruleAtom();
2473
2474 state._fsp--;
2475
2476
2477 current = this_Atom_0;
2478 afterParserOrEnumRuleCall();
2479
2480
2481 }
2482 break;
2483 case 2 :
2484 // InternalProblem.g:933:3: this_NegativeLiteral_1= ruleNegativeLiteral
2485 {
2486
2487 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
2488
2489 pushFollow(FOLLOW_2);
2490 this_NegativeLiteral_1=ruleNegativeLiteral();
2491
2492 state._fsp--;
2493
2494
2495 current = this_NegativeLiteral_1;
2496 afterParserOrEnumRuleCall();
2497
2498
2499 }
2500 break;
2501
2502 }
2503
2504
2505 }
2506
2507
2508 leaveRule();
2509
2510 }
2511
2512 catch (RecognitionException re) {
2513 recover(input,re);
2514 appendSkippedTokens();
2515 }
2516 finally {
2517 }
2518 return current;
2519 }
2520 // $ANTLR end "ruleLiteral"
2521
2522
2523 // $ANTLR start "entryRuleNegativeLiteral"
2524 // InternalProblem.g:945:1: entryRuleNegativeLiteral returns [EObject current=null] : iv_ruleNegativeLiteral= ruleNegativeLiteral EOF ;
2525 public final EObject entryRuleNegativeLiteral() throws RecognitionException {
2526 EObject current = null;
2527
2528 EObject iv_ruleNegativeLiteral = null;
2529
2530
2531 try {
2532 // InternalProblem.g:945:56: (iv_ruleNegativeLiteral= ruleNegativeLiteral EOF )
2533 // InternalProblem.g:946:2: iv_ruleNegativeLiteral= ruleNegativeLiteral EOF
2534 {
2535 newCompositeNode(grammarAccess.getNegativeLiteralRule());
2536 pushFollow(FOLLOW_1);
2537 iv_ruleNegativeLiteral=ruleNegativeLiteral();
2538
2539 state._fsp--;
2540
2541 current =iv_ruleNegativeLiteral;
2542 match(input,EOF,FOLLOW_2);
2543
2544 }
2545
2546 }
2547
2548 catch (RecognitionException re) {
2549 recover(input,re);
2550 appendSkippedTokens();
2551 }
2552 finally {
2553 }
2554 return current;
2555 }
2556 // $ANTLR end "entryRuleNegativeLiteral"
2557
2558
2559 // $ANTLR start "ruleNegativeLiteral"
2560 // InternalProblem.g:952:1: ruleNegativeLiteral returns [EObject current=null] : (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) ;
2561 public final EObject ruleNegativeLiteral() throws RecognitionException {
2562 EObject current = null;
2563
2564 Token otherlv_0=null;
2565 EObject lv_atom_1_0 = null;
2566
2567
2568
2569 enterRule();
2570
2571 try {
2572 // InternalProblem.g:958:2: ( (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) )
2573 // InternalProblem.g:959:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2574 {
2575 // InternalProblem.g:959:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2576 // InternalProblem.g:960:3: otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) )
2577 {
2578 otherlv_0=(Token)match(input,32,FOLLOW_8);
2579
2580 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
2581
2582 // InternalProblem.g:964:3: ( (lv_atom_1_0= ruleAtom ) )
2583 // InternalProblem.g:965:4: (lv_atom_1_0= ruleAtom )
2584 {
2585 // InternalProblem.g:965:4: (lv_atom_1_0= ruleAtom )
2586 // InternalProblem.g:966:5: lv_atom_1_0= ruleAtom
2587 {
2588
2589 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
2590
2591 pushFollow(FOLLOW_2);
2592 lv_atom_1_0=ruleAtom();
2593
2594 state._fsp--;
2595
2596
2597 if (current==null) {
2598 current = createModelElementForParent(grammarAccess.getNegativeLiteralRule());
2599 }
2600 set(
2601 current,
2602 "atom",
2603 lv_atom_1_0,
2604 "org.eclipse.viatra.solver.language.Problem.Atom");
2605 afterParserOrEnumRuleCall();
2606
2607
2608 }
2609
2610
2611 }
2612
2613
2614 }
2615
2616
2617 }
2618
2619
2620 leaveRule();
2621
2622 }
2623
2624 catch (RecognitionException re) {
2625 recover(input,re);
2626 appendSkippedTokens();
2627 }
2628 finally {
2629 }
2630 return current;
2631 }
2632 // $ANTLR end "ruleNegativeLiteral"
2633
2634
2635 // $ANTLR start "entryRuleAtom"
2636 // InternalProblem.g:987:1: entryRuleAtom returns [EObject current=null] : iv_ruleAtom= ruleAtom EOF ;
2637 public final EObject entryRuleAtom() throws RecognitionException {
2638 EObject current = null;
2639
2640 EObject iv_ruleAtom = null;
2641
2642
2643 try {
2644 // InternalProblem.g:987:45: (iv_ruleAtom= ruleAtom EOF )
2645 // InternalProblem.g:988:2: iv_ruleAtom= ruleAtom EOF
2646 {
2647 newCompositeNode(grammarAccess.getAtomRule());
2648 pushFollow(FOLLOW_1);
2649 iv_ruleAtom=ruleAtom();
2650
2651 state._fsp--;
2652
2653 current =iv_ruleAtom;
2654 match(input,EOF,FOLLOW_2);
2655
2656 }
2657
2658 }
2659
2660 catch (RecognitionException re) {
2661 recover(input,re);
2662 appendSkippedTokens();
2663 }
2664 finally {
2665 }
2666 return current;
2667 }
2668 // $ANTLR end "entryRuleAtom"
2669
2670
2671 // $ANTLR start "ruleAtom"
2672 // InternalProblem.g:994:1: ruleAtom returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' ) ;
2673 public final EObject ruleAtom() throws RecognitionException {
2674 EObject current = null;
2675
2676 Token lv_transitiveClosure_1_0=null;
2677 Token otherlv_2=null;
2678 Token otherlv_4=null;
2679 Token otherlv_6=null;
2680 EObject lv_arguments_3_0 = null;
2681
2682 EObject lv_arguments_5_0 = null;
2683
2684
2685
2686 enterRule();
2687
2688 try {
2689 // InternalProblem.g:1000:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' ) )
2690 // InternalProblem.g:1001:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' )
2691 {
2692 // InternalProblem.g:1001:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' )
2693 // InternalProblem.g:1002:3: ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')'
2694 {
2695 // InternalProblem.g:1002:3: ( ( ruleQualifiedName ) )
2696 // InternalProblem.g:1003:4: ( ruleQualifiedName )
2697 {
2698 // InternalProblem.g:1003:4: ( ruleQualifiedName )
2699 // InternalProblem.g:1004:5: ruleQualifiedName
2700 {
2701
2702 if (current==null) {
2703 current = createModelElement(grammarAccess.getAtomRule());
2704 }
2705
2706
2707 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
2708
2709 pushFollow(FOLLOW_28);
2710 ruleQualifiedName();
2711
2712 state._fsp--;
2713
2714
2715 afterParserOrEnumRuleCall();
2716
2717
2718 }
2719
2720
2721 }
2722
2723 // InternalProblem.g:1018:3: ( (lv_transitiveClosure_1_0= '+' ) )?
2724 int alt26=2;
2725 int LA26_0 = input.LA(1);
2726
2727 if ( (LA26_0==33) ) {
2728 alt26=1;
2729 }
2730 switch (alt26) {
2731 case 1 :
2732 // InternalProblem.g:1019:4: (lv_transitiveClosure_1_0= '+' )
2733 {
2734 // InternalProblem.g:1019:4: (lv_transitiveClosure_1_0= '+' )
2735 // InternalProblem.g:1020:5: lv_transitiveClosure_1_0= '+'
2736 {
2737 lv_transitiveClosure_1_0=(Token)match(input,33,FOLLOW_21);
2738
2739 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
2740
2741
2742 if (current==null) {
2743 current = createModelElement(grammarAccess.getAtomRule());
2744 }
2745 setWithLastConsumed(current, "transitiveClosure", lv_transitiveClosure_1_0 != null, "+");
2746
2747
2748 }
2749
2750
2751 }
2752 break;
2753
2754 }
2755
2756 otherlv_2=(Token)match(input,29,FOLLOW_22);
2757
2758 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
2759
2760 // InternalProblem.g:1036:3: ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )?
2761 int alt28=2;
2762 int LA28_0 = input.LA(1);
2763
2764 if ( (LA28_0==RULE_ID||LA28_0==RULE_QUOTED_ID||(LA28_0>=40 && LA28_0<=41)) ) {
2765 alt28=1;
2766 }
2767 switch (alt28) {
2768 case 1 :
2769 // InternalProblem.g:1037:4: ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )*
2770 {
2771 // InternalProblem.g:1037:4: ( (lv_arguments_3_0= ruleArgument ) )
2772 // InternalProblem.g:1038:5: (lv_arguments_3_0= ruleArgument )
2773 {
2774 // InternalProblem.g:1038:5: (lv_arguments_3_0= ruleArgument )
2775 // InternalProblem.g:1039:6: lv_arguments_3_0= ruleArgument
2776 {
2777
2778 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0());
2779
2780 pushFollow(FOLLOW_23);
2781 lv_arguments_3_0=ruleArgument();
2782
2783 state._fsp--;
2784
2785
2786 if (current==null) {
2787 current = createModelElementForParent(grammarAccess.getAtomRule());
2788 }
2789 add(
2790 current,
2791 "arguments",
2792 lv_arguments_3_0,
2793 "org.eclipse.viatra.solver.language.Problem.Argument");
2794 afterParserOrEnumRuleCall();
2795
2796
2797 }
2798
2799
2800 }
2801
2802 // InternalProblem.g:1056:4: (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )*
2803 loop27:
2804 do {
2805 int alt27=2;
2806 int LA27_0 = input.LA(1);
2807
2808 if ( (LA27_0==17) ) {
2809 alt27=1;
2810 }
2811
2812
2813 switch (alt27) {
2814 case 1 :
2815 // InternalProblem.g:1057:5: otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) )
2816 {
2817 otherlv_4=(Token)match(input,17,FOLLOW_8);
2818
2819 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
2820
2821 // InternalProblem.g:1061:5: ( (lv_arguments_5_0= ruleArgument ) )
2822 // InternalProblem.g:1062:6: (lv_arguments_5_0= ruleArgument )
2823 {
2824 // InternalProblem.g:1062:6: (lv_arguments_5_0= ruleArgument )
2825 // InternalProblem.g:1063:7: lv_arguments_5_0= ruleArgument
2826 {
2827
2828 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0());
2829
2830 pushFollow(FOLLOW_23);
2831 lv_arguments_5_0=ruleArgument();
2832
2833 state._fsp--;
2834
2835
2836 if (current==null) {
2837 current = createModelElementForParent(grammarAccess.getAtomRule());
2838 }
2839 add(
2840 current,
2841 "arguments",
2842 lv_arguments_5_0,
2843 "org.eclipse.viatra.solver.language.Problem.Argument");
2844 afterParserOrEnumRuleCall();
2845
2846
2847 }
2848
2849
2850 }
2851
2852
2853 }
2854 break;
2855
2856 default :
2857 break loop27;
2858 }
2859 } while (true);
2860
2861
2862 }
2863 break;
2864
2865 }
2866
2867 otherlv_6=(Token)match(input,30,FOLLOW_2);
2868
2869 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
2870
2871
2872 }
2873
2874
2875 }
2876
2877
2878 leaveRule();
2879
2880 }
2881
2882 catch (RecognitionException re) {
2883 recover(input,re);
2884 appendSkippedTokens();
2885 }
2886 finally {
2887 }
2888 return current;
2889 }
2890 // $ANTLR end "ruleAtom"
2891
2892
2893 // $ANTLR start "entryRuleArgument"
2894 // InternalProblem.g:1090:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ;
2895 public final EObject entryRuleArgument() throws RecognitionException {
2896 EObject current = null;
2897
2898 EObject iv_ruleArgument = null;
2899
2900
2901 try {
2902 // InternalProblem.g:1090:49: (iv_ruleArgument= ruleArgument EOF )
2903 // InternalProblem.g:1091:2: iv_ruleArgument= ruleArgument EOF
2904 {
2905 newCompositeNode(grammarAccess.getArgumentRule());
2906 pushFollow(FOLLOW_1);
2907 iv_ruleArgument=ruleArgument();
2908
2909 state._fsp--;
2910
2911 current =iv_ruleArgument;
2912 match(input,EOF,FOLLOW_2);
2913
2914 }
2915
2916 }
2917
2918 catch (RecognitionException re) {
2919 recover(input,re);
2920 appendSkippedTokens();
2921 }
2922 finally {
2923 }
2924 return current;
2925 }
2926 // $ANTLR end "entryRuleArgument"
2927
2928
2929 // $ANTLR start "ruleArgument"
2930 // InternalProblem.g:1097:1: ruleArgument returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
2931 public final EObject ruleArgument() throws RecognitionException {
2932 EObject current = null;
2933
2934
2935 enterRule();
2936
2937 try {
2938 // InternalProblem.g:1103:2: ( ( ( ruleQualifiedName ) ) )
2939 // InternalProblem.g:1104:2: ( ( ruleQualifiedName ) )
2940 {
2941 // InternalProblem.g:1104:2: ( ( ruleQualifiedName ) )
2942 // InternalProblem.g:1105:3: ( ruleQualifiedName )
2943 {
2944 // InternalProblem.g:1105:3: ( ruleQualifiedName )
2945 // InternalProblem.g:1106:4: ruleQualifiedName
2946 {
2947
2948 if (current==null) {
2949 current = createModelElement(grammarAccess.getArgumentRule());
2950 }
2951
2952
2953 newCompositeNode(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0());
2954
2955 pushFollow(FOLLOW_2);
2956 ruleQualifiedName();
2957
2958 state._fsp--;
2959
2960
2961 afterParserOrEnumRuleCall();
2962
2963
2964 }
2965
2966
2967 }
2968
2969
2970 }
2971
2972
2973 leaveRule();
2974
2975 }
2976
2977 catch (RecognitionException re) {
2978 recover(input,re);
2979 appendSkippedTokens();
2980 }
2981 finally {
2982 }
2983 return current;
2984 }
2985 // $ANTLR end "ruleArgument"
2986
2987
2988 // $ANTLR start "entryRuleAssertion"
2989 // InternalProblem.g:1123:1: entryRuleAssertion returns [EObject current=null] : iv_ruleAssertion= ruleAssertion EOF ;
2990 public final EObject entryRuleAssertion() throws RecognitionException {
2991 EObject current = null;
2992
2993 EObject iv_ruleAssertion = null;
2994
2995
2996 try {
2997 // InternalProblem.g:1123:50: (iv_ruleAssertion= ruleAssertion EOF )
2998 // InternalProblem.g:1124:2: iv_ruleAssertion= ruleAssertion EOF
2999 {
3000 newCompositeNode(grammarAccess.getAssertionRule());
3001 pushFollow(FOLLOW_1);
3002 iv_ruleAssertion=ruleAssertion();
3003
3004 state._fsp--;
3005
3006 current =iv_ruleAssertion;
3007 match(input,EOF,FOLLOW_2);
3008
3009 }
3010
3011 }
3012
3013 catch (RecognitionException re) {
3014 recover(input,re);
3015 appendSkippedTokens();
3016 }
3017 finally {
3018 }
3019 return current;
3020 }
3021 // $ANTLR end "entryRuleAssertion"
3022
3023
3024 // $ANTLR start "ruleAssertion"
3025 // InternalProblem.g:1130: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= '.' ) ;
3026 public final EObject ruleAssertion() throws RecognitionException {
3027 EObject current = null;
3028
3029 Token otherlv_1=null;
3030 Token otherlv_3=null;
3031 Token otherlv_5=null;
3032 Token otherlv_6=null;
3033 Token otherlv_10=null;
3034 Token otherlv_12=null;
3035 Token otherlv_14=null;
3036 Token otherlv_15=null;
3037 Enumerator lv_value_7_0 = null;
3038
3039 Enumerator lv_value_8_0 = null;
3040
3041
3042
3043 enterRule();
3044
3045 try {
3046 // InternalProblem.g:1136: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= '.' ) )
3047 // InternalProblem.g:1137: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= '.' )
3048 {
3049 // InternalProblem.g:1137: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= '.' )
3050 // InternalProblem.g:1138: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= '.'
3051 {
3052 // InternalProblem.g:1138: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= ')' ) )
3053 int alt34=2;
3054 alt34 = dfa34.predict(input);
3055 switch (alt34) {
3056 case 1 :
3057 // InternalProblem.g:1139:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
3058 {
3059 // InternalProblem.g:1139:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
3060 // InternalProblem.g:1140:5: ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) )
3061 {
3062 // InternalProblem.g:1140:5: ( ( ruleQualifiedName ) )
3063 // InternalProblem.g:1141:6: ( ruleQualifiedName )
3064 {
3065 // InternalProblem.g:1141:6: ( ruleQualifiedName )
3066 // InternalProblem.g:1142:7: ruleQualifiedName
3067 {
3068
3069 if (current==null) {
3070 current = createModelElement(grammarAccess.getAssertionRule());
3071 }
3072
3073
3074 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
3075
3076 pushFollow(FOLLOW_21);
3077 ruleQualifiedName();
3078
3079 state._fsp--;
3080
3081
3082 afterParserOrEnumRuleCall();
3083
3084
3085 }
3086
3087
3088 }
3089
3090 otherlv_1=(Token)match(input,29,FOLLOW_22);
3091
3092 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
3093
3094 // InternalProblem.g:1160:5: ( ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )* )?
3095 int alt30=2;
3096 int LA30_0 = input.LA(1);
3097
3098 if ( (LA30_0==RULE_ID||LA30_0==RULE_QUOTED_ID||(LA30_0>=40 && LA30_0<=41)) ) {
3099 alt30=1;
3100 }
3101 switch (alt30) {
3102 case 1 :
3103 // InternalProblem.g:1161:6: ( ( ruleQualifiedName ) ) (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
3104 {
3105 // InternalProblem.g:1161:6: ( ( ruleQualifiedName ) )
3106 // InternalProblem.g:1162:7: ( ruleQualifiedName )
3107 {
3108 // InternalProblem.g:1162:7: ( ruleQualifiedName )
3109 // InternalProblem.g:1163:8: ruleQualifiedName
3110 {
3111
3112 if (current==null) {
3113 current = createModelElement(grammarAccess.getAssertionRule());
3114 }
3115
3116
3117 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_0_0());
3118
3119 pushFollow(FOLLOW_23);
3120 ruleQualifiedName();
3121
3122 state._fsp--;
3123
3124
3125 afterParserOrEnumRuleCall();
3126
3127
3128 }
3129
3130
3131 }
3132
3133 // InternalProblem.g:1177:6: (otherlv_3= ',' ( ( ruleQualifiedName ) ) )*
3134 loop29:
3135 do {
3136 int alt29=2;
3137 int LA29_0 = input.LA(1);
3138
3139 if ( (LA29_0==17) ) {
3140 alt29=1;
3141 }
3142
3143
3144 switch (alt29) {
3145 case 1 :
3146 // InternalProblem.g:1178:7: otherlv_3= ',' ( ( ruleQualifiedName ) )
3147 {
3148 otherlv_3=(Token)match(input,17,FOLLOW_8);
3149
3150 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
3151
3152 // InternalProblem.g:1182:7: ( ( ruleQualifiedName ) )
3153 // InternalProblem.g:1183:8: ( ruleQualifiedName )
3154 {
3155 // InternalProblem.g:1183:8: ( ruleQualifiedName )
3156 // InternalProblem.g:1184:9: ruleQualifiedName
3157 {
3158
3159 if (current==null) {
3160 current = createModelElement(grammarAccess.getAssertionRule());
3161 }
3162
3163
3164 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_0_2_1_1_0());
3165
3166 pushFollow(FOLLOW_23);
3167 ruleQualifiedName();
3168
3169 state._fsp--;
3170
3171
3172 afterParserOrEnumRuleCall();
3173
3174
3175 }
3176
3177
3178 }
3179
3180
3181 }
3182 break;
3183
3184 default :
3185 break loop29;
3186 }
3187 } while (true);
3188
3189
3190 }
3191 break;
3192
3193 }
3194
3195 otherlv_5=(Token)match(input,30,FOLLOW_29);
3196
3197 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
3198
3199 otherlv_6=(Token)match(input,34,FOLLOW_30);
3200
3201 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
3202
3203 // InternalProblem.g:1208:5: ( (lv_value_7_0= ruleLogicValue ) )
3204 // InternalProblem.g:1209:6: (lv_value_7_0= ruleLogicValue )
3205 {
3206 // InternalProblem.g:1209:6: (lv_value_7_0= ruleLogicValue )
3207 // InternalProblem.g:1210:7: lv_value_7_0= ruleLogicValue
3208 {
3209
3210 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
3211
3212 pushFollow(FOLLOW_4);
3213 lv_value_7_0=ruleLogicValue();
3214
3215 state._fsp--;
3216
3217
3218 if (current==null) {
3219 current = createModelElementForParent(grammarAccess.getAssertionRule());
3220 }
3221 set(
3222 current,
3223 "value",
3224 lv_value_7_0,
3225 "org.eclipse.viatra.solver.language.Problem.LogicValue");
3226 afterParserOrEnumRuleCall();
3227
3228
3229 }
3230
3231
3232 }
3233
3234
3235 }
3236
3237
3238 }
3239 break;
3240 case 2 :
3241 // InternalProblem.g:1229:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
3242 {
3243 // InternalProblem.g:1229:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')' )
3244 // InternalProblem.g:1230:5: ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )? otherlv_14= ')'
3245 {
3246 // InternalProblem.g:1230:5: ( (lv_value_8_0= ruleShortLogicValue ) )?
3247 int alt31=2;
3248 int LA31_0 = input.LA(1);
3249
3250 if ( (LA31_0==32||LA31_0==43) ) {
3251 alt31=1;
3252 }
3253 switch (alt31) {
3254 case 1 :
3255 // InternalProblem.g:1231:6: (lv_value_8_0= ruleShortLogicValue )
3256 {
3257 // InternalProblem.g:1231:6: (lv_value_8_0= ruleShortLogicValue )
3258 // InternalProblem.g:1232:7: lv_value_8_0= ruleShortLogicValue
3259 {
3260
3261 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
3262
3263 pushFollow(FOLLOW_8);
3264 lv_value_8_0=ruleShortLogicValue();
3265
3266 state._fsp--;
3267
3268
3269 if (current==null) {
3270 current = createModelElementForParent(grammarAccess.getAssertionRule());
3271 }
3272 set(
3273 current,
3274 "value",
3275 lv_value_8_0,
3276 "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
3277 afterParserOrEnumRuleCall();
3278
3279
3280 }
3281
3282
3283 }
3284 break;
3285
3286 }
3287
3288 // InternalProblem.g:1249:5: ( ( ruleQualifiedName ) )
3289 // InternalProblem.g:1250:6: ( ruleQualifiedName )
3290 {
3291 // InternalProblem.g:1250:6: ( ruleQualifiedName )
3292 // InternalProblem.g:1251:7: ruleQualifiedName
3293 {
3294
3295 if (current==null) {
3296 current = createModelElement(grammarAccess.getAssertionRule());
3297 }
3298
3299
3300 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
3301
3302 pushFollow(FOLLOW_21);
3303 ruleQualifiedName();
3304
3305 state._fsp--;
3306
3307
3308 afterParserOrEnumRuleCall();
3309
3310
3311 }
3312
3313
3314 }
3315
3316 otherlv_10=(Token)match(input,29,FOLLOW_22);
3317
3318 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
3319
3320 // InternalProblem.g:1269:5: ( ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )* )?
3321 int alt33=2;
3322 int LA33_0 = input.LA(1);
3323
3324 if ( (LA33_0==RULE_ID||LA33_0==RULE_QUOTED_ID||(LA33_0>=40 && LA33_0<=41)) ) {
3325 alt33=1;
3326 }
3327 switch (alt33) {
3328 case 1 :
3329 // InternalProblem.g:1270:6: ( ( ruleQualifiedName ) ) (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
3330 {
3331 // InternalProblem.g:1270:6: ( ( ruleQualifiedName ) )
3332 // InternalProblem.g:1271:7: ( ruleQualifiedName )
3333 {
3334 // InternalProblem.g:1271:7: ( ruleQualifiedName )
3335 // InternalProblem.g:1272:8: ruleQualifiedName
3336 {
3337
3338 if (current==null) {
3339 current = createModelElement(grammarAccess.getAssertionRule());
3340 }
3341
3342
3343 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_0_0());
3344
3345 pushFollow(FOLLOW_23);
3346 ruleQualifiedName();
3347
3348 state._fsp--;
3349
3350
3351 afterParserOrEnumRuleCall();
3352
3353
3354 }
3355
3356
3357 }
3358
3359 // InternalProblem.g:1286:6: (otherlv_12= ',' ( ( ruleQualifiedName ) ) )*
3360 loop32:
3361 do {
3362 int alt32=2;
3363 int LA32_0 = input.LA(1);
3364
3365 if ( (LA32_0==17) ) {
3366 alt32=1;
3367 }
3368
3369
3370 switch (alt32) {
3371 case 1 :
3372 // InternalProblem.g:1287:7: otherlv_12= ',' ( ( ruleQualifiedName ) )
3373 {
3374 otherlv_12=(Token)match(input,17,FOLLOW_8);
3375
3376 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
3377
3378 // InternalProblem.g:1291:7: ( ( ruleQualifiedName ) )
3379 // InternalProblem.g:1292:8: ( ruleQualifiedName )
3380 {
3381 // InternalProblem.g:1292:8: ( ruleQualifiedName )
3382 // InternalProblem.g:1293:9: ruleQualifiedName
3383 {
3384
3385 if (current==null) {
3386 current = createModelElement(grammarAccess.getAssertionRule());
3387 }
3388
3389
3390 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsNodeCrossReference_0_1_3_1_1_0());
3391
3392 pushFollow(FOLLOW_23);
3393 ruleQualifiedName();
3394
3395 state._fsp--;
3396
3397
3398 afterParserOrEnumRuleCall();
3399
3400
3401 }
3402
3403
3404 }
3405
3406
3407 }
3408 break;
3409
3410 default :
3411 break loop32;
3412 }
3413 } while (true);
3414
3415
3416 }
3417 break;
3418
3419 }
3420
3421 otherlv_14=(Token)match(input,30,FOLLOW_4);
3422
3423 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
3424
3425
3426 }
3427
3428
3429 }
3430 break;
3431
3432 }
3433
3434 otherlv_15=(Token)match(input,13,FOLLOW_2);
3435
3436 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
3437
3438
3439 }
3440
3441
3442 }
3443
3444
3445 leaveRule();
3446
3447 }
3448
3449 catch (RecognitionException re) {
3450 recover(input,re);
3451 appendSkippedTokens();
3452 }
3453 finally {
3454 }
3455 return current;
3456 }
3457 // $ANTLR end "ruleAssertion"
3458
3459
3460 // $ANTLR start "entryRuleScopeDeclaration"
3461 // InternalProblem.g:1323:1: entryRuleScopeDeclaration returns [EObject current=null] : iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ;
3462 public final EObject entryRuleScopeDeclaration() throws RecognitionException {
3463 EObject current = null;
3464
3465 EObject iv_ruleScopeDeclaration = null;
3466
3467
3468 try {
3469 // InternalProblem.g:1323:57: (iv_ruleScopeDeclaration= ruleScopeDeclaration EOF )
3470 // InternalProblem.g:1324:2: iv_ruleScopeDeclaration= ruleScopeDeclaration EOF
3471 {
3472 newCompositeNode(grammarAccess.getScopeDeclarationRule());
3473 pushFollow(FOLLOW_1);
3474 iv_ruleScopeDeclaration=ruleScopeDeclaration();
3475
3476 state._fsp--;
3477
3478 current =iv_ruleScopeDeclaration;
3479 match(input,EOF,FOLLOW_2);
3480
3481 }
3482
3483 }
3484
3485 catch (RecognitionException re) {
3486 recover(input,re);
3487 appendSkippedTokens();
3488 }
3489 finally {
3490 }
3491 return current;
3492 }
3493 // $ANTLR end "entryRuleScopeDeclaration"
3494
3495
3496 // $ANTLR start "ruleScopeDeclaration"
3497 // InternalProblem.g:1330:1: ruleScopeDeclaration returns [EObject current=null] : (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) ;
3498 public final EObject ruleScopeDeclaration() throws RecognitionException {
3499 EObject current = null;
3500
3501 Token otherlv_0=null;
3502 Token otherlv_2=null;
3503 Token otherlv_4=null;
3504 EObject lv_typeScopes_1_0 = null;
3505
3506 EObject lv_typeScopes_3_0 = null;
3507
3508
3509
3510 enterRule();
3511
3512 try {
3513 // InternalProblem.g:1336:2: ( (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) )
3514 // InternalProblem.g:1337:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
3515 {
3516 // InternalProblem.g:1337:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
3517 // InternalProblem.g:1338:3: otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.'
3518 {
3519 otherlv_0=(Token)match(input,35,FOLLOW_31);
3520
3521 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
3522
3523 // InternalProblem.g:1342:3: ( (lv_typeScopes_1_0= ruleTypeScope ) )
3524 // InternalProblem.g:1343:4: (lv_typeScopes_1_0= ruleTypeScope )
3525 {
3526 // InternalProblem.g:1343:4: (lv_typeScopes_1_0= ruleTypeScope )
3527 // InternalProblem.g:1344:5: lv_typeScopes_1_0= ruleTypeScope
3528 {
3529
3530 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
3531
3532 pushFollow(FOLLOW_32);
3533 lv_typeScopes_1_0=ruleTypeScope();
3534
3535 state._fsp--;
3536
3537
3538 if (current==null) {
3539 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
3540 }
3541 add(
3542 current,
3543 "typeScopes",
3544 lv_typeScopes_1_0,
3545 "org.eclipse.viatra.solver.language.Problem.TypeScope");
3546 afterParserOrEnumRuleCall();
3547
3548
3549 }
3550
3551
3552 }
3553
3554 // InternalProblem.g:1361:3: (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )*
3555 loop35:
3556 do {
3557 int alt35=2;
3558 int LA35_0 = input.LA(1);
3559
3560 if ( (LA35_0==17) ) {
3561 alt35=1;
3562 }
3563
3564
3565 switch (alt35) {
3566 case 1 :
3567 // InternalProblem.g:1362:4: otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) )
3568 {
3569 otherlv_2=(Token)match(input,17,FOLLOW_31);
3570
3571 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
3572
3573 // InternalProblem.g:1366:4: ( (lv_typeScopes_3_0= ruleTypeScope ) )
3574 // InternalProblem.g:1367:5: (lv_typeScopes_3_0= ruleTypeScope )
3575 {
3576 // InternalProblem.g:1367:5: (lv_typeScopes_3_0= ruleTypeScope )
3577 // InternalProblem.g:1368:6: lv_typeScopes_3_0= ruleTypeScope
3578 {
3579
3580 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
3581
3582 pushFollow(FOLLOW_32);
3583 lv_typeScopes_3_0=ruleTypeScope();
3584
3585 state._fsp--;
3586
3587
3588 if (current==null) {
3589 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
3590 }
3591 add(
3592 current,
3593 "typeScopes",
3594 lv_typeScopes_3_0,
3595 "org.eclipse.viatra.solver.language.Problem.TypeScope");
3596 afterParserOrEnumRuleCall();
3597
3598
3599 }
3600
3601
3602 }
3603
3604
3605 }
3606 break;
3607
3608 default :
3609 break loop35;
3610 }
3611 } while (true);
3612
3613 otherlv_4=(Token)match(input,13,FOLLOW_2);
3614
3615 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
3616
3617
3618 }
3619
3620
3621 }
3622
3623
3624 leaveRule();
3625
3626 }
3627
3628 catch (RecognitionException re) {
3629 recover(input,re);
3630 appendSkippedTokens();
3631 }
3632 finally {
3633 }
3634 return current;
3635 }
3636 // $ANTLR end "ruleScopeDeclaration"
3637
3638
3639 // $ANTLR start "entryRuleTypeScope"
3640 // InternalProblem.g:1394:1: entryRuleTypeScope returns [EObject current=null] : iv_ruleTypeScope= ruleTypeScope EOF ;
3641 public final EObject entryRuleTypeScope() throws RecognitionException {
3642 EObject current = null;
3643
3644 EObject iv_ruleTypeScope = null;
3645
3646
3647 try {
3648 // InternalProblem.g:1394:50: (iv_ruleTypeScope= ruleTypeScope EOF )
3649 // InternalProblem.g:1395:2: iv_ruleTypeScope= ruleTypeScope EOF
3650 {
3651 newCompositeNode(grammarAccess.getTypeScopeRule());
3652 pushFollow(FOLLOW_1);
3653 iv_ruleTypeScope=ruleTypeScope();
3654
3655 state._fsp--;
3656
3657 current =iv_ruleTypeScope;
3658 match(input,EOF,FOLLOW_2);
3659
3660 }
3661
3662 }
3663
3664 catch (RecognitionException re) {
3665 recover(input,re);
3666 appendSkippedTokens();
3667 }
3668 finally {
3669 }
3670 return current;
3671 }
3672 // $ANTLR end "entryRuleTypeScope"
3673
3674
3675 // $ANTLR start "ruleTypeScope"
3676 // InternalProblem.g:1401:1: ruleTypeScope returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) ;
3677 public final EObject ruleTypeScope() throws RecognitionException {
3678 EObject current = null;
3679
3680 Token otherlv_0=null;
3681 Token lv_increment_1_0=null;
3682 Token otherlv_2=null;
3683 EObject lv_multiplicity_3_0 = null;
3684
3685
3686
3687 enterRule();
3688
3689 try {
3690 // InternalProblem.g:1407:2: ( ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) )
3691 // InternalProblem.g:1408:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) )
3692 {
3693 // InternalProblem.g:1408:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) )
3694 // InternalProblem.g:1409:3: ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) )
3695 {
3696 // InternalProblem.g:1409:3: ( (otherlv_0= RULE_ID ) )
3697 // InternalProblem.g:1410:4: (otherlv_0= RULE_ID )
3698 {
3699 // InternalProblem.g:1410:4: (otherlv_0= RULE_ID )
3700 // InternalProblem.g:1411:5: otherlv_0= RULE_ID
3701 {
3702
3703 if (current==null) {
3704 current = createModelElement(grammarAccess.getTypeScopeRule());
3705 }
3706
3707 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_33);
3708
3709 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
3710
3711
3712 }
3713
3714
3715 }
3716
3717 // InternalProblem.g:1422:3: ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' )
3718 int alt36=2;
3719 int LA36_0 = input.LA(1);
3720
3721 if ( (LA36_0==36) ) {
3722 alt36=1;
3723 }
3724 else if ( (LA36_0==37) ) {
3725 alt36=2;
3726 }
3727 else {
3728 NoViableAltException nvae =
3729 new NoViableAltException("", 36, 0, input);
3730
3731 throw nvae;
3732 }
3733 switch (alt36) {
3734 case 1 :
3735 // InternalProblem.g:1423:4: ( (lv_increment_1_0= '+=' ) )
3736 {
3737 // InternalProblem.g:1423:4: ( (lv_increment_1_0= '+=' ) )
3738 // InternalProblem.g:1424:5: (lv_increment_1_0= '+=' )
3739 {
3740 // InternalProblem.g:1424:5: (lv_increment_1_0= '+=' )
3741 // InternalProblem.g:1425:6: lv_increment_1_0= '+='
3742 {
3743 lv_increment_1_0=(Token)match(input,36,FOLLOW_17);
3744
3745 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
3746
3747
3748 if (current==null) {
3749 current = createModelElement(grammarAccess.getTypeScopeRule());
3750 }
3751 setWithLastConsumed(current, "increment", lv_increment_1_0 != null, "+=");
3752
3753
3754 }
3755
3756
3757 }
3758
3759
3760 }
3761 break;
3762 case 2 :
3763 // InternalProblem.g:1438:4: otherlv_2= '='
3764 {
3765 otherlv_2=(Token)match(input,37,FOLLOW_17);
3766
3767 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
3768
3769
3770 }
3771 break;
3772
3773 }
3774
3775 // InternalProblem.g:1443:3: ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) )
3776 // InternalProblem.g:1444:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity )
3777 {
3778 // InternalProblem.g:1444:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity )
3779 // InternalProblem.g:1445:5: lv_multiplicity_3_0= ruleDefiniteMultiplicity
3780 {
3781
3782 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0());
3783
3784 pushFollow(FOLLOW_2);
3785 lv_multiplicity_3_0=ruleDefiniteMultiplicity();
3786
3787 state._fsp--;
3788
3789
3790 if (current==null) {
3791 current = createModelElementForParent(grammarAccess.getTypeScopeRule());
3792 }
3793 set(
3794 current,
3795 "multiplicity",
3796 lv_multiplicity_3_0,
3797 "org.eclipse.viatra.solver.language.Problem.DefiniteMultiplicity");
3798 afterParserOrEnumRuleCall();
3799
3800
3801 }
3802
3803
3804 }
3805
3806
3807 }
3808
3809
3810 }
3811
3812
3813 leaveRule();
3814
3815 }
3816
3817 catch (RecognitionException re) {
3818 recover(input,re);
3819 appendSkippedTokens();
3820 }
3821 finally {
3822 }
3823 return current;
3824 }
3825 // $ANTLR end "ruleTypeScope"
3826
3827
3828 // $ANTLR start "entryRuleMultiplicity"
3829 // InternalProblem.g:1466:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ;
3830 public final EObject entryRuleMultiplicity() throws RecognitionException {
3831 EObject current = null;
3832
3833 EObject iv_ruleMultiplicity = null;
3834
3835
3836 try {
3837 // InternalProblem.g:1466:53: (iv_ruleMultiplicity= ruleMultiplicity EOF )
3838 // InternalProblem.g:1467:2: iv_ruleMultiplicity= ruleMultiplicity EOF
3839 {
3840 newCompositeNode(grammarAccess.getMultiplicityRule());
3841 pushFollow(FOLLOW_1);
3842 iv_ruleMultiplicity=ruleMultiplicity();
3843
3844 state._fsp--;
3845
3846 current =iv_ruleMultiplicity;
3847 match(input,EOF,FOLLOW_2);
3848
3849 }
3850
3851 }
3852
3853 catch (RecognitionException re) {
3854 recover(input,re);
3855 appendSkippedTokens();
3856 }
3857 finally {
3858 }
3859 return current;
3860 }
3861 // $ANTLR end "entryRuleMultiplicity"
3862
3863
3864 // $ANTLR start "ruleMultiplicity"
3865 // InternalProblem.g:1473:1: ruleMultiplicity returns [EObject current=null] : (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) ;
3866 public final EObject ruleMultiplicity() throws RecognitionException {
3867 EObject current = null;
3868
3869 EObject this_UnboundedMultiplicity_0 = null;
3870
3871 EObject this_DefiniteMultiplicity_1 = null;
3872
3873
3874
3875 enterRule();
3876
3877 try {
3878 // InternalProblem.g:1479:2: ( (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) )
3879 // InternalProblem.g:1480:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity )
3880 {
3881 // InternalProblem.g:1480:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity )
3882 int alt37=2;
3883 int LA37_0 = input.LA(1);
3884
3885 if ( (LA37_0==EOF||LA37_0==25) ) {
3886 alt37=1;
3887 }
3888 else if ( (LA37_0==RULE_INT) ) {
3889 alt37=2;
3890 }
3891 else {
3892 NoViableAltException nvae =
3893 new NoViableAltException("", 37, 0, input);
3894
3895 throw nvae;
3896 }
3897 switch (alt37) {
3898 case 1 :
3899 // InternalProblem.g:1481:3: this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity
3900 {
3901
3902 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0());
3903
3904 pushFollow(FOLLOW_2);
3905 this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity();
3906
3907 state._fsp--;
3908
3909
3910 current = this_UnboundedMultiplicity_0;
3911 afterParserOrEnumRuleCall();
3912
3913
3914 }
3915 break;
3916 case 2 :
3917 // InternalProblem.g:1490:3: this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity
3918 {
3919
3920 newCompositeNode(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1());
3921
3922 pushFollow(FOLLOW_2);
3923 this_DefiniteMultiplicity_1=ruleDefiniteMultiplicity();
3924
3925 state._fsp--;
3926
3927
3928 current = this_DefiniteMultiplicity_1;
3929 afterParserOrEnumRuleCall();
3930
3931
3932 }
3933 break;
3934
3935 }
3936
3937
3938 }
3939
3940
3941 leaveRule();
3942
3943 }
3944
3945 catch (RecognitionException re) {
3946 recover(input,re);
3947 appendSkippedTokens();
3948 }
3949 finally {
3950 }
3951 return current;
3952 }
3953 // $ANTLR end "ruleMultiplicity"
3954
3955
3956 // $ANTLR start "entryRuleDefiniteMultiplicity"
3957 // InternalProblem.g:1502:1: entryRuleDefiniteMultiplicity returns [EObject current=null] : iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF ;
3958 public final EObject entryRuleDefiniteMultiplicity() throws RecognitionException {
3959 EObject current = null;
3960
3961 EObject iv_ruleDefiniteMultiplicity = null;
3962
3963
3964 try {
3965 // InternalProblem.g:1502:61: (iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF )
3966 // InternalProblem.g:1503:2: iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF
3967 {
3968 newCompositeNode(grammarAccess.getDefiniteMultiplicityRule());
3969 pushFollow(FOLLOW_1);
3970 iv_ruleDefiniteMultiplicity=ruleDefiniteMultiplicity();
3971
3972 state._fsp--;
3973
3974 current =iv_ruleDefiniteMultiplicity;
3975 match(input,EOF,FOLLOW_2);
3976
3977 }
3978
3979 }
3980
3981 catch (RecognitionException re) {
3982 recover(input,re);
3983 appendSkippedTokens();
3984 }
3985 finally {
3986 }
3987 return current;
3988 }
3989 // $ANTLR end "entryRuleDefiniteMultiplicity"
3990
3991
3992 // $ANTLR start "ruleDefiniteMultiplicity"
3993 // InternalProblem.g:1509:1: ruleDefiniteMultiplicity returns [EObject current=null] : (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) ;
3994 public final EObject ruleDefiniteMultiplicity() throws RecognitionException {
3995 EObject current = null;
3996
3997 EObject this_RangeMultiplicity_0 = null;
3998
3999 EObject this_ExactMultiplicity_1 = null;
4000
4001
4002
4003 enterRule();
4004
4005 try {
4006 // InternalProblem.g:1515:2: ( (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) )
4007 // InternalProblem.g:1516:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
4008 {
4009 // InternalProblem.g:1516:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
4010 int alt38=2;
4011 int LA38_0 = input.LA(1);
4012
4013 if ( (LA38_0==RULE_INT) ) {
4014 int LA38_1 = input.LA(2);
4015
4016 if ( (LA38_1==38) ) {
4017 alt38=1;
4018 }
4019 else if ( (LA38_1==EOF||LA38_1==13||LA38_1==17||LA38_1==25) ) {
4020 alt38=2;
4021 }
4022 else {
4023 NoViableAltException nvae =
4024 new NoViableAltException("", 38, 1, input);
4025
4026 throw nvae;
4027 }
4028 }
4029 else {
4030 NoViableAltException nvae =
4031 new NoViableAltException("", 38, 0, input);
4032
4033 throw nvae;
4034 }
4035 switch (alt38) {
4036 case 1 :
4037 // InternalProblem.g:1517:3: this_RangeMultiplicity_0= ruleRangeMultiplicity
4038 {
4039
4040 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
4041
4042 pushFollow(FOLLOW_2);
4043 this_RangeMultiplicity_0=ruleRangeMultiplicity();
4044
4045 state._fsp--;
4046
4047
4048 current = this_RangeMultiplicity_0;
4049 afterParserOrEnumRuleCall();
4050
4051
4052 }
4053 break;
4054 case 2 :
4055 // InternalProblem.g:1526:3: this_ExactMultiplicity_1= ruleExactMultiplicity
4056 {
4057
4058 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
4059
4060 pushFollow(FOLLOW_2);
4061 this_ExactMultiplicity_1=ruleExactMultiplicity();
4062
4063 state._fsp--;
4064
4065
4066 current = this_ExactMultiplicity_1;
4067 afterParserOrEnumRuleCall();
4068
4069
4070 }
4071 break;
4072
4073 }
4074
4075
4076 }
4077
4078
4079 leaveRule();
4080
4081 }
4082
4083 catch (RecognitionException re) {
4084 recover(input,re);
4085 appendSkippedTokens();
4086 }
4087 finally {
4088 }
4089 return current;
4090 }
4091 // $ANTLR end "ruleDefiniteMultiplicity"
4092
4093
4094 // $ANTLR start "entryRuleUnboundedMultiplicity"
4095 // InternalProblem.g:1538:1: entryRuleUnboundedMultiplicity returns [EObject current=null] : iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF ;
4096 public final EObject entryRuleUnboundedMultiplicity() throws RecognitionException {
4097 EObject current = null;
4098
4099 EObject iv_ruleUnboundedMultiplicity = null;
4100
4101
4102 try {
4103 // InternalProblem.g:1538:62: (iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF )
4104 // InternalProblem.g:1539:2: iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF
4105 {
4106 newCompositeNode(grammarAccess.getUnboundedMultiplicityRule());
4107 pushFollow(FOLLOW_1);
4108 iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity();
4109
4110 state._fsp--;
4111
4112 current =iv_ruleUnboundedMultiplicity;
4113 match(input,EOF,FOLLOW_2);
4114
4115 }
4116
4117 }
4118
4119 catch (RecognitionException re) {
4120 recover(input,re);
4121 appendSkippedTokens();
4122 }
4123 finally {
4124 }
4125 return current;
4126 }
4127 // $ANTLR end "entryRuleUnboundedMultiplicity"
4128
4129
4130 // $ANTLR start "ruleUnboundedMultiplicity"
4131 // InternalProblem.g:1545:1: ruleUnboundedMultiplicity returns [EObject current=null] : () ;
4132 public final EObject ruleUnboundedMultiplicity() throws RecognitionException {
4133 EObject current = null;
4134
4135
4136 enterRule();
4137
4138 try {
4139 // InternalProblem.g:1551:2: ( () )
4140 // InternalProblem.g:1552:2: ()
4141 {
4142 // InternalProblem.g:1552:2: ()
4143 // InternalProblem.g:1553:3:
4144 {
4145
4146 current = forceCreateModelElement(
4147 grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction(),
4148 current);
4149
4150
4151 }
4152
4153
4154 }
4155
4156
4157 leaveRule();
4158
4159 }
4160 finally {
4161 }
4162 return current;
4163 }
4164 // $ANTLR end "ruleUnboundedMultiplicity"
4165
4166
4167 // $ANTLR start "entryRuleRangeMultiplicity"
4168 // InternalProblem.g:1562:1: entryRuleRangeMultiplicity returns [EObject current=null] : iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF ;
4169 public final EObject entryRuleRangeMultiplicity() throws RecognitionException {
4170 EObject current = null;
4171
4172 EObject iv_ruleRangeMultiplicity = null;
4173
4174
4175 try {
4176 // InternalProblem.g:1562:58: (iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF )
4177 // InternalProblem.g:1563:2: iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF
4178 {
4179 newCompositeNode(grammarAccess.getRangeMultiplicityRule());
4180 pushFollow(FOLLOW_1);
4181 iv_ruleRangeMultiplicity=ruleRangeMultiplicity();
4182
4183 state._fsp--;
4184
4185 current =iv_ruleRangeMultiplicity;
4186 match(input,EOF,FOLLOW_2);
4187
4188 }
4189
4190 }
4191
4192 catch (RecognitionException re) {
4193 recover(input,re);
4194 appendSkippedTokens();
4195 }
4196 finally {
4197 }
4198 return current;
4199 }
4200 // $ANTLR end "entryRuleRangeMultiplicity"
4201
4202
4203 // $ANTLR start "ruleRangeMultiplicity"
4204 // InternalProblem.g:1569:1: ruleRangeMultiplicity returns [EObject current=null] : ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) ;
4205 public final EObject ruleRangeMultiplicity() throws RecognitionException {
4206 EObject current = null;
4207
4208 Token lv_lowerBound_0_0=null;
4209 Token otherlv_1=null;
4210 AntlrDatatypeRuleToken lv_upperBound_2_0 = null;
4211
4212
4213
4214 enterRule();
4215
4216 try {
4217 // InternalProblem.g:1575:2: ( ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) )
4218 // InternalProblem.g:1576:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
4219 {
4220 // InternalProblem.g:1576:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
4221 // InternalProblem.g:1577:3: ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) )
4222 {
4223 // InternalProblem.g:1577:3: ( (lv_lowerBound_0_0= RULE_INT ) )
4224 // InternalProblem.g:1578:4: (lv_lowerBound_0_0= RULE_INT )
4225 {
4226 // InternalProblem.g:1578:4: (lv_lowerBound_0_0= RULE_INT )
4227 // InternalProblem.g:1579:5: lv_lowerBound_0_0= RULE_INT
4228 {
4229 lv_lowerBound_0_0=(Token)match(input,RULE_INT,FOLLOW_34);
4230
4231 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
4232
4233
4234 if (current==null) {
4235 current = createModelElement(grammarAccess.getRangeMultiplicityRule());
4236 }
4237 setWithLastConsumed(
4238 current,
4239 "lowerBound",
4240 lv_lowerBound_0_0,
4241 "org.eclipse.xtext.common.Terminals.INT");
4242
4243
4244 }
4245
4246
4247 }
4248
4249 otherlv_1=(Token)match(input,38,FOLLOW_35);
4250
4251 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
4252
4253 // InternalProblem.g:1599:3: ( (lv_upperBound_2_0= ruleUpperBound ) )
4254 // InternalProblem.g:1600:4: (lv_upperBound_2_0= ruleUpperBound )
4255 {
4256 // InternalProblem.g:1600:4: (lv_upperBound_2_0= ruleUpperBound )
4257 // InternalProblem.g:1601:5: lv_upperBound_2_0= ruleUpperBound
4258 {
4259
4260 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
4261
4262 pushFollow(FOLLOW_2);
4263 lv_upperBound_2_0=ruleUpperBound();
4264
4265 state._fsp--;
4266
4267
4268 if (current==null) {
4269 current = createModelElementForParent(grammarAccess.getRangeMultiplicityRule());
4270 }
4271 set(
4272 current,
4273 "upperBound",
4274 lv_upperBound_2_0,
4275 "org.eclipse.viatra.solver.language.Problem.UpperBound");
4276 afterParserOrEnumRuleCall();
4277
4278
4279 }
4280
4281
4282 }
4283
4284
4285 }
4286
4287
4288 }
4289
4290
4291 leaveRule();
4292
4293 }
4294
4295 catch (RecognitionException re) {
4296 recover(input,re);
4297 appendSkippedTokens();
4298 }
4299 finally {
4300 }
4301 return current;
4302 }
4303 // $ANTLR end "ruleRangeMultiplicity"
4304
4305
4306 // $ANTLR start "entryRuleExactMultiplicity"
4307 // InternalProblem.g:1622:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ;
4308 public final EObject entryRuleExactMultiplicity() throws RecognitionException {
4309 EObject current = null;
4310
4311 EObject iv_ruleExactMultiplicity = null;
4312
4313
4314 try {
4315 // InternalProblem.g:1622:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF )
4316 // InternalProblem.g:1623:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF
4317 {
4318 newCompositeNode(grammarAccess.getExactMultiplicityRule());
4319 pushFollow(FOLLOW_1);
4320 iv_ruleExactMultiplicity=ruleExactMultiplicity();
4321
4322 state._fsp--;
4323
4324 current =iv_ruleExactMultiplicity;
4325 match(input,EOF,FOLLOW_2);
4326
4327 }
4328
4329 }
4330
4331 catch (RecognitionException re) {
4332 recover(input,re);
4333 appendSkippedTokens();
4334 }
4335 finally {
4336 }
4337 return current;
4338 }
4339 // $ANTLR end "entryRuleExactMultiplicity"
4340
4341
4342 // $ANTLR start "ruleExactMultiplicity"
4343 // InternalProblem.g:1629:1: ruleExactMultiplicity returns [EObject current=null] : ( (lv_exactValue_0_0= RULE_INT ) ) ;
4344 public final EObject ruleExactMultiplicity() throws RecognitionException {
4345 EObject current = null;
4346
4347 Token lv_exactValue_0_0=null;
4348
4349
4350 enterRule();
4351
4352 try {
4353 // InternalProblem.g:1635:2: ( ( (lv_exactValue_0_0= RULE_INT ) ) )
4354 // InternalProblem.g:1636:2: ( (lv_exactValue_0_0= RULE_INT ) )
4355 {
4356 // InternalProblem.g:1636:2: ( (lv_exactValue_0_0= RULE_INT ) )
4357 // InternalProblem.g:1637:3: (lv_exactValue_0_0= RULE_INT )
4358 {
4359 // InternalProblem.g:1637:3: (lv_exactValue_0_0= RULE_INT )
4360 // InternalProblem.g:1638:4: lv_exactValue_0_0= RULE_INT
4361 {
4362 lv_exactValue_0_0=(Token)match(input,RULE_INT,FOLLOW_2);
4363
4364 newLeafNode(lv_exactValue_0_0, grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
4365
4366
4367 if (current==null) {
4368 current = createModelElement(grammarAccess.getExactMultiplicityRule());
4369 }
4370 setWithLastConsumed(
4371 current,
4372 "exactValue",
4373 lv_exactValue_0_0,
4374 "org.eclipse.xtext.common.Terminals.INT");
4375
4376
4377 }
4378
4379
4380 }
4381
4382
4383 }
4384
4385
4386 leaveRule();
4387
4388 }
4389
4390 catch (RecognitionException re) {
4391 recover(input,re);
4392 appendSkippedTokens();
4393 }
4394 finally {
4395 }
4396 return current;
4397 }
4398 // $ANTLR end "ruleExactMultiplicity"
4399
4400
4401 // $ANTLR start "entryRuleUpperBound"
4402 // InternalProblem.g:1657:1: entryRuleUpperBound returns [String current=null] : iv_ruleUpperBound= ruleUpperBound EOF ;
4403 public final String entryRuleUpperBound() throws RecognitionException {
4404 String current = null;
4405
4406 AntlrDatatypeRuleToken iv_ruleUpperBound = null;
4407
4408
4409 try {
4410 // InternalProblem.g:1657:50: (iv_ruleUpperBound= ruleUpperBound EOF )
4411 // InternalProblem.g:1658:2: iv_ruleUpperBound= ruleUpperBound EOF
4412 {
4413 newCompositeNode(grammarAccess.getUpperBoundRule());
4414 pushFollow(FOLLOW_1);
4415 iv_ruleUpperBound=ruleUpperBound();
4416
4417 state._fsp--;
4418
4419 current =iv_ruleUpperBound.getText();
4420 match(input,EOF,FOLLOW_2);
4421
4422 }
4423
4424 }
4425
4426 catch (RecognitionException re) {
4427 recover(input,re);
4428 appendSkippedTokens();
4429 }
4430 finally {
4431 }
4432 return current;
4433 }
4434 // $ANTLR end "entryRuleUpperBound"
4435
4436
4437 // $ANTLR start "ruleUpperBound"
4438 // InternalProblem.g:1664:1: ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ;
4439 public final AntlrDatatypeRuleToken ruleUpperBound() throws RecognitionException {
4440 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4441
4442 Token this_INT_0=null;
4443 Token kw=null;
4444
4445
4446 enterRule();
4447
4448 try {
4449 // InternalProblem.g:1670:2: ( (this_INT_0= RULE_INT | kw= '*' ) )
4450 // InternalProblem.g:1671:2: (this_INT_0= RULE_INT | kw= '*' )
4451 {
4452 // InternalProblem.g:1671:2: (this_INT_0= RULE_INT | kw= '*' )
4453 int alt39=2;
4454 int LA39_0 = input.LA(1);
4455
4456 if ( (LA39_0==RULE_INT) ) {
4457 alt39=1;
4458 }
4459 else if ( (LA39_0==39) ) {
4460 alt39=2;
4461 }
4462 else {
4463 NoViableAltException nvae =
4464 new NoViableAltException("", 39, 0, input);
4465
4466 throw nvae;
4467 }
4468 switch (alt39) {
4469 case 1 :
4470 // InternalProblem.g:1672:3: this_INT_0= RULE_INT
4471 {
4472 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2);
4473
4474 current.merge(this_INT_0);
4475
4476
4477 newLeafNode(this_INT_0, grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
4478
4479
4480 }
4481 break;
4482 case 2 :
4483 // InternalProblem.g:1680:3: kw= '*'
4484 {
4485 kw=(Token)match(input,39,FOLLOW_2);
4486
4487 current.merge(kw);
4488 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
4489
4490
4491 }
4492 break;
4493
4494 }
4495
4496
4497 }
4498
4499
4500 leaveRule();
4501
4502 }
4503
4504 catch (RecognitionException re) {
4505 recover(input,re);
4506 appendSkippedTokens();
4507 }
4508 finally {
4509 }
4510 return current;
4511 }
4512 // $ANTLR end "ruleUpperBound"
4513
4514
4515 // $ANTLR start "entryRuleQuotedOrUnquotedId"
4516 // InternalProblem.g:1689:1: entryRuleQuotedOrUnquotedId returns [String current=null] : iv_ruleQuotedOrUnquotedId= ruleQuotedOrUnquotedId EOF ;
4517 public final String entryRuleQuotedOrUnquotedId() throws RecognitionException {
4518 String current = null;
4519
4520 AntlrDatatypeRuleToken iv_ruleQuotedOrUnquotedId = null;
4521
4522
4523 try {
4524 // InternalProblem.g:1689:58: (iv_ruleQuotedOrUnquotedId= ruleQuotedOrUnquotedId EOF )
4525 // InternalProblem.g:1690:2: iv_ruleQuotedOrUnquotedId= ruleQuotedOrUnquotedId EOF
4526 {
4527 newCompositeNode(grammarAccess.getQuotedOrUnquotedIdRule());
4528 pushFollow(FOLLOW_1);
4529 iv_ruleQuotedOrUnquotedId=ruleQuotedOrUnquotedId();
4530
4531 state._fsp--;
4532
4533 current =iv_ruleQuotedOrUnquotedId.getText();
4534 match(input,EOF,FOLLOW_2);
4535
4536 }
4537
4538 }
4539
4540 catch (RecognitionException re) {
4541 recover(input,re);
4542 appendSkippedTokens();
4543 }
4544 finally {
4545 }
4546 return current;
4547 }
4548 // $ANTLR end "entryRuleQuotedOrUnquotedId"
4549
4550
4551 // $ANTLR start "ruleQuotedOrUnquotedId"
4552 // InternalProblem.g:1696:1: ruleQuotedOrUnquotedId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_Identifier_1= ruleIdentifier ) ;
4553 public final AntlrDatatypeRuleToken ruleQuotedOrUnquotedId() throws RecognitionException {
4554 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4555
4556 Token this_QUOTED_ID_0=null;
4557 AntlrDatatypeRuleToken this_Identifier_1 = null;
4558
4559
4560
4561 enterRule();
4562
4563 try {
4564 // InternalProblem.g:1702:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_Identifier_1= ruleIdentifier ) )
4565 // InternalProblem.g:1703:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_Identifier_1= ruleIdentifier )
4566 {
4567 // InternalProblem.g:1703:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_Identifier_1= ruleIdentifier )
4568 int alt40=2;
4569 int LA40_0 = input.LA(1);
4570
4571 if ( (LA40_0==RULE_QUOTED_ID) ) {
4572 alt40=1;
4573 }
4574 else if ( (LA40_0==RULE_ID||(LA40_0>=40 && LA40_0<=41)) ) {
4575 alt40=2;
4576 }
4577 else {
4578 NoViableAltException nvae =
4579 new NoViableAltException("", 40, 0, input);
4580
4581 throw nvae;
4582 }
4583 switch (alt40) {
4584 case 1 :
4585 // InternalProblem.g:1704:3: this_QUOTED_ID_0= RULE_QUOTED_ID
4586 {
4587 this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
4588
4589 current.merge(this_QUOTED_ID_0);
4590
4591
4592 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQuotedOrUnquotedIdAccess().getQUOTED_IDTerminalRuleCall_0());
4593
4594
4595 }
4596 break;
4597 case 2 :
4598 // InternalProblem.g:1712:3: this_Identifier_1= ruleIdentifier
4599 {
4600
4601 newCompositeNode(grammarAccess.getQuotedOrUnquotedIdAccess().getIdentifierParserRuleCall_1());
4602
4603 pushFollow(FOLLOW_2);
4604 this_Identifier_1=ruleIdentifier();
4605
4606 state._fsp--;
4607
4608
4609 current.merge(this_Identifier_1);
4610
4611
4612 afterParserOrEnumRuleCall();
4613
4614
4615 }
4616 break;
4617
4618 }
4619
4620
4621 }
4622
4623
4624 leaveRule();
4625
4626 }
4627
4628 catch (RecognitionException re) {
4629 recover(input,re);
4630 appendSkippedTokens();
4631 }
4632 finally {
4633 }
4634 return current;
4635 }
4636 // $ANTLR end "ruleQuotedOrUnquotedId"
4637
4638
4639 // $ANTLR start "entryRuleQualifiedName"
4640 // InternalProblem.g:1726:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
4641 public final String entryRuleQualifiedName() throws RecognitionException {
4642 String current = null;
4643
4644 AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
4645
4646
4647 try {
4648 // InternalProblem.g:1726:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
4649 // InternalProblem.g:1727:2: iv_ruleQualifiedName= ruleQualifiedName EOF
4650 {
4651 newCompositeNode(grammarAccess.getQualifiedNameRule());
4652 pushFollow(FOLLOW_1);
4653 iv_ruleQualifiedName=ruleQualifiedName();
4654
4655 state._fsp--;
4656
4657 current =iv_ruleQualifiedName.getText();
4658 match(input,EOF,FOLLOW_2);
4659
4660 }
4661
4662 }
4663
4664 catch (RecognitionException re) {
4665 recover(input,re);
4666 appendSkippedTokens();
4667 }
4668 finally {
4669 }
4670 return current;
4671 }
4672 // $ANTLR end "entryRuleQualifiedName"
4673
4674
4675 // $ANTLR start "ruleQualifiedName"
4676 // InternalProblem.g:1733:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) ;
4677 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
4678 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4679
4680 Token this_QUOTED_ID_0=null;
4681 Token kw=null;
4682 Token this_QUOTED_ID_5=null;
4683 AntlrDatatypeRuleToken this_Identifier_1 = null;
4684
4685 AntlrDatatypeRuleToken this_Identifier_3 = null;
4686
4687
4688
4689 enterRule();
4690
4691 try {
4692 // InternalProblem.g:1739:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) )
4693 // InternalProblem.g:1740:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) )
4694 {
4695 // InternalProblem.g:1740:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) )
4696 int alt43=2;
4697 int LA43_0 = input.LA(1);
4698
4699 if ( (LA43_0==RULE_QUOTED_ID) ) {
4700 alt43=1;
4701 }
4702 else if ( (LA43_0==RULE_ID||(LA43_0>=40 && LA43_0<=41)) ) {
4703 alt43=2;
4704 }
4705 else {
4706 NoViableAltException nvae =
4707 new NoViableAltException("", 43, 0, input);
4708
4709 throw nvae;
4710 }
4711 switch (alt43) {
4712 case 1 :
4713 // InternalProblem.g:1741:3: this_QUOTED_ID_0= RULE_QUOTED_ID
4714 {
4715 this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
4716
4717 current.merge(this_QUOTED_ID_0);
4718
4719
4720 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_0());
4721
4722
4723 }
4724 break;
4725 case 2 :
4726 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? )
4727 {
4728 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? )
4729 // InternalProblem.g:1750:4: this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )?
4730 {
4731
4732 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0());
4733
4734 pushFollow(FOLLOW_36);
4735 this_Identifier_1=ruleIdentifier();
4736
4737 state._fsp--;
4738
4739
4740 current.merge(this_Identifier_1);
4741
4742
4743 afterParserOrEnumRuleCall();
4744
4745 // InternalProblem.g:1760:4: (kw= ':' this_Identifier_3= ruleIdentifier )*
4746 loop41:
4747 do {
4748 int alt41=2;
4749 int LA41_0 = input.LA(1);
4750
4751 if ( (LA41_0==34) ) {
4752 int LA41_1 = input.LA(2);
4753
4754 if ( (LA41_1==RULE_ID||(LA41_1>=40 && LA41_1<=41)) ) {
4755 alt41=1;
4756 }
4757
4758
4759 }
4760
4761
4762 switch (alt41) {
4763 case 1 :
4764 // InternalProblem.g:1761:5: kw= ':' this_Identifier_3= ruleIdentifier
4765 {
4766 kw=(Token)match(input,34,FOLLOW_3);
4767
4768 current.merge(kw);
4769 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0());
4770
4771
4772 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
4773
4774 pushFollow(FOLLOW_36);
4775 this_Identifier_3=ruleIdentifier();
4776
4777 state._fsp--;
4778
4779
4780 current.merge(this_Identifier_3);
4781
4782
4783 afterParserOrEnumRuleCall();
4784
4785
4786 }
4787 break;
4788
4789 default :
4790 break loop41;
4791 }
4792 } while (true);
4793
4794 // InternalProblem.g:1777:4: (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )?
4795 int alt42=2;
4796 int LA42_0 = input.LA(1);
4797
4798 if ( (LA42_0==34) ) {
4799 alt42=1;
4800 }
4801 switch (alt42) {
4802 case 1 :
4803 // InternalProblem.g:1778:5: kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID
4804 {
4805 kw=(Token)match(input,34,FOLLOW_37);
4806
4807 current.merge(kw);
4808 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0());
4809
4810 this_QUOTED_ID_5=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
4811
4812 current.merge(this_QUOTED_ID_5);
4813
4814
4815 newLeafNode(this_QUOTED_ID_5, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_1_2_1());
4816
4817
4818 }
4819 break;
4820
4821 }
4822
4823
4824 }
4825
4826
4827 }
4828 break;
4829
4830 }
4831
4832
4833 }
4834
4835
4836 leaveRule();
4837
4838 }
4839
4840 catch (RecognitionException re) {
4841 recover(input,re);
4842 appendSkippedTokens();
4843 }
4844 finally {
4845 }
4846 return current;
4847 }
4848 // $ANTLR end "ruleQualifiedName"
4849
4850
4851 // $ANTLR start "entryRuleIdentifier"
4852 // InternalProblem.g:1796:1: entryRuleIdentifier returns [String current=null] : iv_ruleIdentifier= ruleIdentifier EOF ;
4853 public final String entryRuleIdentifier() throws RecognitionException {
4854 String current = null;
4855
4856 AntlrDatatypeRuleToken iv_ruleIdentifier = null;
4857
4858
4859 try {
4860 // InternalProblem.g:1796:50: (iv_ruleIdentifier= ruleIdentifier EOF )
4861 // InternalProblem.g:1797:2: iv_ruleIdentifier= ruleIdentifier EOF
4862 {
4863 newCompositeNode(grammarAccess.getIdentifierRule());
4864 pushFollow(FOLLOW_1);
4865 iv_ruleIdentifier=ruleIdentifier();
4866
4867 state._fsp--;
4868
4869 current =iv_ruleIdentifier.getText();
4870 match(input,EOF,FOLLOW_2);
4871
4872 }
4873
4874 }
4875
4876 catch (RecognitionException re) {
4877 recover(input,re);
4878 appendSkippedTokens();
4879 }
4880 finally {
4881 }
4882 return current;
4883 }
4884 // $ANTLR end "entryRuleIdentifier"
4885
4886
4887 // $ANTLR start "ruleIdentifier"
4888 // InternalProblem.g:1803:1: ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' ) ;
4889 public final AntlrDatatypeRuleToken ruleIdentifier() throws RecognitionException {
4890 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4891
4892 Token this_ID_0=null;
4893 Token kw=null;
4894
4895
4896 enterRule();
4897
4898 try {
4899 // InternalProblem.g:1809:2: ( (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' ) )
4900 // InternalProblem.g:1810:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' )
4901 {
4902 // InternalProblem.g:1810:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' )
4903 int alt44=3;
4904 switch ( input.LA(1) ) {
4905 case RULE_ID:
4906 {
4907 alt44=1;
4908 }
4909 break;
4910 case 40:
4911 {
4912 alt44=2;
4913 }
4914 break;
4915 case 41:
4916 {
4917 alt44=3;
4918 }
4919 break;
4920 default:
4921 NoViableAltException nvae =
4922 new NoViableAltException("", 44, 0, input);
4923
4924 throw nvae;
4925 }
4926
4927 switch (alt44) {
4928 case 1 :
4929 // InternalProblem.g:1811:3: this_ID_0= RULE_ID
4930 {
4931 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2);
4932
4933 current.merge(this_ID_0);
4934
4935
4936 newLeafNode(this_ID_0, grammarAccess.getIdentifierAccess().getIDTerminalRuleCall_0());
4937
4938
4939 }
4940 break;
4941 case 2 :
4942 // InternalProblem.g:1819:3: kw= 'true'
4943 {
4944 kw=(Token)match(input,40,FOLLOW_2);
4945
4946 current.merge(kw);
4947 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1());
4948
4949
4950 }
4951 break;
4952 case 3 :
4953 // InternalProblem.g:1825:3: kw= 'false'
4954 {
4955 kw=(Token)match(input,41,FOLLOW_2);
4956
4957 current.merge(kw);
4958 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
4959
4960
4961 }
4962 break;
4963
4964 }
4965
4966
4967 }
4968
4969
4970 leaveRule();
4971
4972 }
4973
4974 catch (RecognitionException re) {
4975 recover(input,re);
4976 appendSkippedTokens();
4977 }
4978 finally {
4979 }
4980 return current;
4981 }
4982 // $ANTLR end "ruleIdentifier"
4983
4984
4985 // $ANTLR start "ruleLogicValue"
4986 // InternalProblem.g:1834:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ;
4987 public final Enumerator ruleLogicValue() throws RecognitionException {
4988 Enumerator current = null;
4989
4990 Token enumLiteral_0=null;
4991 Token enumLiteral_1=null;
4992 Token enumLiteral_2=null;
4993
4994
4995 enterRule();
4996
4997 try {
4998 // InternalProblem.g:1840:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) )
4999 // InternalProblem.g:1841:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
5000 {
5001 // InternalProblem.g:1841:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
5002 int alt45=3;
5003 switch ( input.LA(1) ) {
5004 case 40:
5005 {
5006 alt45=1;
5007 }
5008 break;
5009 case 41:
5010 {
5011 alt45=2;
5012 }
5013 break;
5014 case 42:
5015 {
5016 alt45=3;
5017 }
5018 break;
5019 default:
5020 NoViableAltException nvae =
5021 new NoViableAltException("", 45, 0, input);
5022
5023 throw nvae;
5024 }
5025
5026 switch (alt45) {
5027 case 1 :
5028 // InternalProblem.g:1842:3: (enumLiteral_0= 'true' )
5029 {
5030 // InternalProblem.g:1842:3: (enumLiteral_0= 'true' )
5031 // InternalProblem.g:1843:4: enumLiteral_0= 'true'
5032 {
5033 enumLiteral_0=(Token)match(input,40,FOLLOW_2);
5034
5035 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
5036 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
5037
5038
5039 }
5040
5041
5042 }
5043 break;
5044 case 2 :
5045 // InternalProblem.g:1850:3: (enumLiteral_1= 'false' )
5046 {
5047 // InternalProblem.g:1850:3: (enumLiteral_1= 'false' )
5048 // InternalProblem.g:1851:4: enumLiteral_1= 'false'
5049 {
5050 enumLiteral_1=(Token)match(input,41,FOLLOW_2);
5051
5052 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
5053 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
5054
5055
5056 }
5057
5058
5059 }
5060 break;
5061 case 3 :
5062 // InternalProblem.g:1858:3: (enumLiteral_2= 'unknown' )
5063 {
5064 // InternalProblem.g:1858:3: (enumLiteral_2= 'unknown' )
5065 // InternalProblem.g:1859:4: enumLiteral_2= 'unknown'
5066 {
5067 enumLiteral_2=(Token)match(input,42,FOLLOW_2);
5068
5069 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
5070 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
5071
5072
5073 }
5074
5075
5076 }
5077 break;
5078
5079 }
5080
5081
5082 }
5083
5084
5085 leaveRule();
5086
5087 }
5088
5089 catch (RecognitionException re) {
5090 recover(input,re);
5091 appendSkippedTokens();
5092 }
5093 finally {
5094 }
5095 return current;
5096 }
5097 // $ANTLR end "ruleLogicValue"
5098
5099
5100 // $ANTLR start "ruleShortLogicValue"
5101 // InternalProblem.g:1869:1: ruleShortLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ;
5102 public final Enumerator ruleShortLogicValue() throws RecognitionException {
5103 Enumerator current = null;
5104
5105 Token enumLiteral_0=null;
5106 Token enumLiteral_1=null;
5107
5108
5109 enterRule();
5110
5111 try {
5112 // InternalProblem.g:1875:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) )
5113 // InternalProblem.g:1876:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
5114 {
5115 // InternalProblem.g:1876:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
5116 int alt46=2;
5117 int LA46_0 = input.LA(1);
5118
5119 if ( (LA46_0==32) ) {
5120 alt46=1;
5121 }
5122 else if ( (LA46_0==43) ) {
5123 alt46=2;
5124 }
5125 else {
5126 NoViableAltException nvae =
5127 new NoViableAltException("", 46, 0, input);
5128
5129 throw nvae;
5130 }
5131 switch (alt46) {
5132 case 1 :
5133 // InternalProblem.g:1877:3: (enumLiteral_0= '!' )
5134 {
5135 // InternalProblem.g:1877:3: (enumLiteral_0= '!' )
5136 // InternalProblem.g:1878:4: enumLiteral_0= '!'
5137 {
5138 enumLiteral_0=(Token)match(input,32,FOLLOW_2);
5139
5140 current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
5141 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
5142
5143
5144 }
5145
5146
5147 }
5148 break;
5149 case 2 :
5150 // InternalProblem.g:1885:3: (enumLiteral_1= '?' )
5151 {
5152 // InternalProblem.g:1885:3: (enumLiteral_1= '?' )
5153 // InternalProblem.g:1886:4: enumLiteral_1= '?'
5154 {
5155 enumLiteral_1=(Token)match(input,43,FOLLOW_2);
5156
5157 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
5158 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
5159
5160
5161 }
5162
5163
5164 }
5165 break;
5166
5167 }
5168
5169
5170 }
5171
5172
5173 leaveRule();
5174
5175 }
5176
5177 catch (RecognitionException re) {
5178 recover(input,re);
5179 appendSkippedTokens();
5180 }
5181 finally {
5182 }
5183 return current;
5184 }
5185 // $ANTLR end "ruleShortLogicValue"
5186
5187 // Delegated rules
5188
5189
5190 protected DFA34 dfa34 = new DFA34(this);
5191 static final String dfa_1s = "\41\uffff";
5192 static final String dfa_2s = "\1\4\4\35\1\uffff\2\4\4\21\1\15\4\35\2\4\1\uffff\10\21\1\4\4\21";
5193 static final String dfa_3s = "\1\53\1\35\3\42\1\uffff\2\51\1\36\7\42\1\35\2\51\1\uffff\1\36\6\42\1\36\1\51\3\42\1\36";
5194 static final String dfa_4s = "\5\uffff\1\2\15\uffff\1\1\15\uffff";
5195 static final String dfa_5s = "\41\uffff}>";
5196 static final String[] dfa_6s = {
5197 "\1\2\1\uffff\1\1\31\uffff\1\5\7\uffff\1\3\1\4\1\uffff\1\5",
5198 "\1\6",
5199 "\1\6\4\uffff\1\7",
5200 "\1\6\4\uffff\1\7",
5201 "\1\6\4\uffff\1\7",
5202 "",
5203 "\1\11\1\uffff\1\10\27\uffff\1\14\11\uffff\1\12\1\13",
5204 "\1\15\1\uffff\1\20\41\uffff\1\16\1\17",
5205 "\1\21\14\uffff\1\14",
5206 "\1\21\14\uffff\1\14\3\uffff\1\22",
5207 "\1\21\14\uffff\1\14\3\uffff\1\22",
5208 "\1\21\14\uffff\1\14\3\uffff\1\22",
5209 "\1\5\24\uffff\1\23",
5210 "\1\6\4\uffff\1\7",
5211 "\1\6\4\uffff\1\7",
5212 "\1\6\4\uffff\1\7",
5213 "\1\6",
5214 "\1\25\1\uffff\1\24\41\uffff\1\26\1\27",
5215 "\1\30\1\uffff\1\33\41\uffff\1\31\1\32",
5216 "",
5217 "\1\21\14\uffff\1\14",
5218 "\1\21\14\uffff\1\14\3\uffff\1\34",
5219 "\1\21\14\uffff\1\14\3\uffff\1\34",
5220 "\1\21\14\uffff\1\14\3\uffff\1\34",
5221 "\1\21\14\uffff\1\14\3\uffff\1\22",
5222 "\1\21\14\uffff\1\14\3\uffff\1\22",
5223 "\1\21\14\uffff\1\14\3\uffff\1\22",
5224 "\1\21\14\uffff\1\14",
5225 "\1\35\1\uffff\1\40\41\uffff\1\36\1\37",
5226 "\1\21\14\uffff\1\14\3\uffff\1\34",
5227 "\1\21\14\uffff\1\14\3\uffff\1\34",
5228 "\1\21\14\uffff\1\14\3\uffff\1\34",
5229 "\1\21\14\uffff\1\14"
5230 };
5231
5232 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
5233 static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
5234 static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
5235 static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
5236 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
5237 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
5238
5239 class DFA34 extends DFA {
5240
5241 public DFA34(BaseRecognizer recognizer) {
5242 this.recognizer = recognizer;
5243 this.decisionNumber = 34;
5244 this.eot = dfa_1;
5245 this.eof = dfa_1;
5246 this.min = dfa_2;
5247 this.max = dfa_3;
5248 this.accept = dfa_4;
5249 this.special = dfa_5;
5250 this.transition = dfa_6;
5251 }
5252 public String getDescription() {
5253 return "1138: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= ')' ) )";
5254 }
5255 }
5256
5257
5258 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
5259 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
5260 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000030000000010L});
5261 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000002000L});
5262 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x00000B091820C052L});
5263 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000008000L});
5264 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000052000L});
5265 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000030000000050L});
5266 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000062000L});
5267 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000030000D00050L});
5268 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000030000D80050L});
5269 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000042000L});
5270 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000030000100050L});
5271 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x00000000001A0000L});
5272 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100000L});
5273 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000030001000010L});
5274 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000020L});
5275 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000002000000L});
5276 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004000002L});
5277 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000030010000010L});
5278 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000000L});
5279 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000030040000050L});
5280 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000040020000L});
5281 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000080002000L});
5282 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000030100000050L});
5283 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000082000L});
5284 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000020002L});
5285 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000220000000L});
5286 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000400000000L});
5287 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000070000000000L});
5288 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000010L});
5289 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000022000L});
5290 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000003000000000L});
5291 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000004000000000L});
5292 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000008000000020L});
5293 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000400000002L});
5294 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000040L});
5295
5296} \ No newline at end of file
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java
new file mode 100644
index 00000000..5b024d47
--- /dev/null
+++ b/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/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
new file mode 100644
index 00000000..cb44c31f
--- /dev/null
+++ b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
@@ -0,0 +1,369 @@
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.Argument;
11import org.eclipse.viatra.solver.language.model.problem.Assertion;
12import org.eclipse.viatra.solver.language.model.problem.Atom;
13import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
14import org.eclipse.viatra.solver.language.model.problem.Conjunction;
15import org.eclipse.viatra.solver.language.model.problem.EnumDeclaration;
16import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity;
17import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
18import org.eclipse.viatra.solver.language.model.problem.Node;
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.ProblemPackage;
22import org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity;
23import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
24import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration;
25import org.eclipse.viatra.solver.language.model.problem.TypeScope;
26import org.eclipse.viatra.solver.language.model.problem.UnboundedMultiplicity;
27import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
28import org.eclipse.xtext.Action;
29import org.eclipse.xtext.Parameter;
30import org.eclipse.xtext.ParserRule;
31import org.eclipse.xtext.serializer.ISerializationContext;
32import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
33import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
34import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
35
36@SuppressWarnings("all")
37public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequencer {
38
39 @Inject
40 private ProblemGrammarAccess grammarAccess;
41
42 @Override
43 public void sequence(ISerializationContext context, EObject semanticObject) {
44 EPackage epackage = semanticObject.eClass().getEPackage();
45 ParserRule rule = context.getParserRule();
46 Action action = context.getAssignedAction();
47 Set<Parameter> parameters = context.getEnabledBooleanParameters();
48 if (epackage == ProblemPackage.eINSTANCE)
49 switch (semanticObject.eClass().getClassifierID()) {
50 case ProblemPackage.ARGUMENT:
51 sequence_Argument(context, (Argument) semanticObject);
52 return;
53 case ProblemPackage.ASSERTION:
54 sequence_Assertion(context, (Assertion) semanticObject);
55 return;
56 case ProblemPackage.ATOM:
57 sequence_Atom(context, (Atom) semanticObject);
58 return;
59 case ProblemPackage.CLASS_DECLARATION:
60 sequence_ClassDeclaration(context, (ClassDeclaration) semanticObject);
61 return;
62 case ProblemPackage.CONJUNCTION:
63 sequence_Conjunction(context, (Conjunction) semanticObject);
64 return;
65 case ProblemPackage.ENUM_DECLARATION:
66 sequence_EnumDeclaration(context, (EnumDeclaration) semanticObject);
67 return;
68 case ProblemPackage.EXACT_MULTIPLICITY:
69 sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject);
70 return;
71 case ProblemPackage.NEGATIVE_LITERAL:
72 sequence_NegativeLiteral(context, (NegativeLiteral) semanticObject);
73 return;
74 case ProblemPackage.NODE:
75 sequence_EnumLiteral(context, (Node) semanticObject);
76 return;
77 case ProblemPackage.PARAMETER:
78 sequence_Parameter(context, (org.eclipse.viatra.solver.language.model.problem.Parameter) semanticObject);
79 return;
80 case ProblemPackage.PREDICATE_DEFINITION:
81 sequence_PredicateDefinition(context, (PredicateDefinition) semanticObject);
82 return;
83 case ProblemPackage.PROBLEM:
84 sequence_Problem(context, (Problem) semanticObject);
85 return;
86 case ProblemPackage.RANGE_MULTIPLICITY:
87 sequence_RangeMultiplicity(context, (RangeMultiplicity) semanticObject);
88 return;
89 case ProblemPackage.REFERENCE_DECLARATION:
90 sequence_ReferenceDeclaration(context, (ReferenceDeclaration) semanticObject);
91 return;
92 case ProblemPackage.SCOPE_DECLARATION:
93 sequence_ScopeDeclaration(context, (ScopeDeclaration) semanticObject);
94 return;
95 case ProblemPackage.TYPE_SCOPE:
96 sequence_TypeScope(context, (TypeScope) semanticObject);
97 return;
98 case ProblemPackage.UNBOUNDED_MULTIPLICITY:
99 sequence_UnboundedMultiplicity(context, (UnboundedMultiplicity) semanticObject);
100 return;
101 }
102 if (errorAcceptor != null)
103 errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
104 }
105
106 /**
107 * Contexts:
108 * Argument returns Argument
109 *
110 * Constraint:
111 * variableOrNode=[VariableOrNode|QualifiedName]
112 */
113 protected void sequence_Argument(ISerializationContext context, Argument semanticObject) {
114 if (errorAcceptor != null) {
115 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.ARGUMENT__VARIABLE_OR_NODE) == ValueTransient.YES)
116 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.ARGUMENT__VARIABLE_OR_NODE));
117 }
118 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
119 feeder.accept(grammarAccess.getArgumentAccess().getVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1(), semanticObject.eGet(ProblemPackage.Literals.ARGUMENT__VARIABLE_OR_NODE, false));
120 feeder.finish();
121 }
122
123
124 /**
125 * Contexts:
126 * Statement returns Assertion
127 * Assertion returns Assertion
128 *
129 * Constraint:
130 * (
131 * (relation=[Relation|QualifiedName] (arguments+=[Node|QualifiedName] arguments+=[Node|QualifiedName]*)? value=LogicValue) |
132 * (value=ShortLogicValue? relation=[Relation|QualifiedName] (arguments+=[Node|QualifiedName] arguments+=[Node|QualifiedName]*)?)
133 * )
134 */
135 protected void sequence_Assertion(ISerializationContext context, Assertion semanticObject) {
136 genericSequencer.createSequence(context, semanticObject);
137 }
138
139
140 /**
141 * Contexts:
142 * Literal returns Atom
143 * Atom returns Atom
144 *
145 * Constraint:
146 * (relation=[Relation|QualifiedName] transitiveClosure?='+'? (arguments+=Argument arguments+=Argument*)?)
147 */
148 protected void sequence_Atom(ISerializationContext context, Atom semanticObject) {
149 genericSequencer.createSequence(context, semanticObject);
150 }
151
152
153 /**
154 * Contexts:
155 * Statement returns ClassDeclaration
156 * ClassDeclaration returns ClassDeclaration
157 *
158 * Constraint:
159 * (
160 * abstract?='abstract'?
161 * name=Identifier
162 * (superTypes+=[Relation|QualifiedName] superTypes+=[Relation|QualifiedName]*)?
163 * referenceDeclarations+=ReferenceDeclaration*
164 * )
165 */
166 protected void sequence_ClassDeclaration(ISerializationContext context, ClassDeclaration semanticObject) {
167 genericSequencer.createSequence(context, semanticObject);
168 }
169
170
171 /**
172 * Contexts:
173 * Conjunction returns Conjunction
174 *
175 * Constraint:
176 * (literals+=Literal literals+=Literal*)
177 */
178 protected void sequence_Conjunction(ISerializationContext context, Conjunction semanticObject) {
179 genericSequencer.createSequence(context, semanticObject);
180 }
181
182
183 /**
184 * Contexts:
185 * Statement returns EnumDeclaration
186 * EnumDeclaration returns EnumDeclaration
187 *
188 * Constraint:
189 * (name=Identifier (literals+=EnumLiteral literals+=EnumLiteral*)?)
190 */
191 protected void sequence_EnumDeclaration(ISerializationContext context, EnumDeclaration semanticObject) {
192 genericSequencer.createSequence(context, semanticObject);
193 }
194
195
196 /**
197 * Contexts:
198 * EnumLiteral returns Node
199 *
200 * Constraint:
201 * name=QuotedOrUnquotedId
202 */
203 protected void sequence_EnumLiteral(ISerializationContext context, Node semanticObject) {
204 if (errorAcceptor != null) {
205 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME) == ValueTransient.YES)
206 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME));
207 }
208 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
209 feeder.accept(grammarAccess.getEnumLiteralAccess().getNameQuotedOrUnquotedIdParserRuleCall_0(), semanticObject.getName());
210 feeder.finish();
211 }
212
213
214 /**
215 * Contexts:
216 * Multiplicity returns ExactMultiplicity
217 * DefiniteMultiplicity returns ExactMultiplicity
218 * ExactMultiplicity returns ExactMultiplicity
219 *
220 * Constraint:
221 * exactValue=INT
222 */
223 protected void sequence_ExactMultiplicity(ISerializationContext context, ExactMultiplicity semanticObject) {
224 if (errorAcceptor != null) {
225 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.EXACT_MULTIPLICITY__EXACT_VALUE) == ValueTransient.YES)
226 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.EXACT_MULTIPLICITY__EXACT_VALUE));
227 }
228 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
229 feeder.accept(grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0(), semanticObject.getExactValue());
230 feeder.finish();
231 }
232
233
234 /**
235 * Contexts:
236 * Literal returns NegativeLiteral
237 * NegativeLiteral returns NegativeLiteral
238 *
239 * Constraint:
240 * atom=Atom
241 */
242 protected void sequence_NegativeLiteral(ISerializationContext context, NegativeLiteral semanticObject) {
243 if (errorAcceptor != null) {
244 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NEGATIVE_LITERAL__ATOM) == ValueTransient.YES)
245 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NEGATIVE_LITERAL__ATOM));
246 }
247 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
248 feeder.accept(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0(), semanticObject.getAtom());
249 feeder.finish();
250 }
251
252
253 /**
254 * Contexts:
255 * Parameter returns Parameter
256 *
257 * Constraint:
258 * (parameterType=[Relation|QualifiedName]? name=Identifier)
259 */
260 protected void sequence_Parameter(ISerializationContext context, org.eclipse.viatra.solver.language.model.problem.Parameter semanticObject) {
261 genericSequencer.createSequence(context, semanticObject);
262 }
263
264
265 /**
266 * Contexts:
267 * Statement returns PredicateDefinition
268 * PredicateDefinition returns PredicateDefinition
269 *
270 * Constraint:
271 * (error?='error'? name=Identifier (parameters+=Parameter parameters+=Parameter*)? (bodies+=Conjunction bodies+=Conjunction*)?)
272 */
273 protected void sequence_PredicateDefinition(ISerializationContext context, PredicateDefinition semanticObject) {
274 genericSequencer.createSequence(context, semanticObject);
275 }
276
277
278 /**
279 * Contexts:
280 * Problem returns Problem
281 *
282 * Constraint:
283 * ((name=Identifier statements+=Statement+) | statements+=Statement+)?
284 */
285 protected void sequence_Problem(ISerializationContext context, Problem semanticObject) {
286 genericSequencer.createSequence(context, semanticObject);
287 }
288
289
290 /**
291 * Contexts:
292 * Multiplicity returns RangeMultiplicity
293 * DefiniteMultiplicity returns RangeMultiplicity
294 * RangeMultiplicity returns RangeMultiplicity
295 *
296 * Constraint:
297 * (lowerBound=INT upperBound=UpperBound)
298 */
299 protected void sequence_RangeMultiplicity(ISerializationContext context, RangeMultiplicity semanticObject) {
300 if (errorAcceptor != null) {
301 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__LOWER_BOUND) == ValueTransient.YES)
302 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__LOWER_BOUND));
303 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__UPPER_BOUND) == ValueTransient.YES)
304 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__UPPER_BOUND));
305 }
306 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
307 feeder.accept(grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0(), semanticObject.getLowerBound());
308 feeder.accept(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0(), semanticObject.getUpperBound());
309 feeder.finish();
310 }
311
312
313 /**
314 * Contexts:
315 * ReferenceDeclaration returns ReferenceDeclaration
316 *
317 * Constraint:
318 * (
319 * containment?='contains'?
320 * referenceType=[Relation|QualifiedName]
321 * multiplicity=Multiplicity?
322 * name=Identifier
323 * opposite=[ReferenceDeclaration|QualifiedName]?
324 * )
325 */
326 protected void sequence_ReferenceDeclaration(ISerializationContext context, ReferenceDeclaration semanticObject) {
327 genericSequencer.createSequence(context, semanticObject);
328 }
329
330
331 /**
332 * Contexts:
333 * Statement returns ScopeDeclaration
334 * ScopeDeclaration returns ScopeDeclaration
335 *
336 * Constraint:
337 * (typeScopes+=TypeScope typeScopes+=TypeScope*)
338 */
339 protected void sequence_ScopeDeclaration(ISerializationContext context, ScopeDeclaration semanticObject) {
340 genericSequencer.createSequence(context, semanticObject);
341 }
342
343
344 /**
345 * Contexts:
346 * TypeScope returns TypeScope
347 *
348 * Constraint:
349 * (targetType=[ClassDeclaration|ID] increment?='+='? multiplicity=DefiniteMultiplicity)
350 */
351 protected void sequence_TypeScope(ISerializationContext context, TypeScope semanticObject) {
352 genericSequencer.createSequence(context, semanticObject);
353 }
354
355
356 /**
357 * Contexts:
358 * Multiplicity returns UnboundedMultiplicity
359 * UnboundedMultiplicity returns UnboundedMultiplicity
360 *
361 * Constraint:
362 * {UnboundedMultiplicity}
363 */
364 protected void sequence_UnboundedMultiplicity(ISerializationContext context, UnboundedMultiplicity semanticObject) {
365 genericSequencer.createSequence(context, semanticObject);
366 }
367
368
369}
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
new file mode 100644
index 00000000..3f0a3f05
--- /dev/null
+++ b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
@@ -0,0 +1,139 @@
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.AlternativeAlias;
15import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
16import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
17import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
18import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
19import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
20
21@SuppressWarnings("all")
22public class ProblemSyntacticSequencer extends AbstractSyntacticSequencer {
23
24 protected ProblemGrammarAccess grammarAccess;
25 protected AbstractElementAlias match_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__;
26 protected AbstractElementAlias match_ClassDeclaration_SemicolonKeyword_4_0_1_1_q;
27 protected AbstractElementAlias match_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__;
28 protected AbstractElementAlias match_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q;
29 protected AbstractElementAlias match_PredicateDefinition_PredKeyword_0_0_1_q;
30 protected AbstractElementAlias match_ReferenceDeclaration_RefersKeyword_0_1_q;
31
32 @Inject
33 protected void init(IGrammarAccess access) {
34 grammarAccess = (ProblemGrammarAccess) access;
35 match_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2())), new TokenAlias(false, false, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1()));
36 match_ClassDeclaration_SemicolonKeyword_4_0_1_1_q = new TokenAlias(false, true, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1());
37 match_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0()), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2())), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1()));
38 match_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0()), new TokenAlias(false, false, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1()));
39 match_PredicateDefinition_PredKeyword_0_0_1_q = new TokenAlias(false, true, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
40 match_ReferenceDeclaration_RefersKeyword_0_1_q = new TokenAlias(false, true, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
41 }
42
43 @Override
44 protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
45 return "";
46 }
47
48
49 @Override
50 protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
51 if (transition.getAmbiguousSyntaxes().isEmpty()) return;
52 List<INode> transitionNodes = collectNodes(fromNode, toNode);
53 for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
54 List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
55 if (match_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__.equals(syntax))
56 emit_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
57 else if (match_ClassDeclaration_SemicolonKeyword_4_0_1_1_q.equals(syntax))
58 emit_ClassDeclaration_SemicolonKeyword_4_0_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
59 else if (match_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__.equals(syntax))
60 emit_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__(semanticObject, getLastNavigableState(), syntaxNodes);
61 else if (match_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q.equals(syntax))
62 emit_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
63 else if (match_PredicateDefinition_PredKeyword_0_0_1_q.equals(syntax))
64 emit_PredicateDefinition_PredKeyword_0_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
65 else if (match_ReferenceDeclaration_RefersKeyword_0_1_q.equals(syntax))
66 emit_ReferenceDeclaration_RefersKeyword_0_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
67 else acceptNodes(getLastNavigableState(), syntaxNodes);
68 }
69 }
70
71 /**
72 * Ambiguous syntax:
73 * ('{' '}') | '.'
74 *
75 * This ambiguous syntax occurs at:
76 * name=Identifier (ambiguity) (rule end)
77 * superTypes+=[Relation|QualifiedName] (ambiguity) (rule end)
78 */
79 protected void emit_ClassDeclaration_FullStopKeyword_4_1_or___LeftCurlyBracketKeyword_4_0_0_RightCurlyBracketKeyword_4_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
80 acceptNodes(transition, nodes);
81 }
82
83 /**
84 * Ambiguous syntax:
85 * ';'?
86 *
87 * This ambiguous syntax occurs at:
88 * referenceDeclarations+=ReferenceDeclaration (ambiguity) '}' (rule end)
89 * referenceDeclarations+=ReferenceDeclaration (ambiguity) referenceDeclarations+=ReferenceDeclaration
90 */
91 protected void emit_ClassDeclaration_SemicolonKeyword_4_0_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
92 acceptNodes(transition, nodes);
93 }
94
95 /**
96 * Ambiguous syntax:
97 * ('{' '}') | '.'
98 *
99 * This ambiguous syntax occurs at:
100 * name=Identifier (ambiguity) (rule end)
101 */
102 protected void emit_EnumDeclaration_FullStopKeyword_2_1_or___LeftCurlyBracketKeyword_2_0_0_RightCurlyBracketKeyword_2_0_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
103 acceptNodes(transition, nodes);
104 }
105
106 /**
107 * Ambiguous syntax:
108 * (',' | ';')?
109 *
110 * This ambiguous syntax occurs at:
111 * literals+=EnumLiteral (ambiguity) '}' (rule end)
112 */
113 protected void emit_EnumDeclaration___CommaKeyword_2_0_1_2_0_or_SemicolonKeyword_2_0_1_2_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
114 acceptNodes(transition, nodes);
115 }
116
117 /**
118 * Ambiguous syntax:
119 * 'pred'?
120 *
121 * This ambiguous syntax occurs at:
122 * error?='error' (ambiguity) name=Identifier
123 */
124 protected void emit_PredicateDefinition_PredKeyword_0_0_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
125 acceptNodes(transition, nodes);
126 }
127
128 /**
129 * Ambiguous syntax:
130 * 'refers'?
131 *
132 * This ambiguous syntax occurs at:
133 * (rule start) (ambiguity) referenceType=[Relation|QualifiedName]
134 */
135 protected void emit_ReferenceDeclaration_RefersKeyword_0_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
136 acceptNodes(transition, nodes);
137 }
138
139}
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
new file mode 100644
index 00000000..4368036b
--- /dev/null
+++ b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
@@ -0,0 +1,1706 @@
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.Action;
10import org.eclipse.xtext.Alternatives;
11import org.eclipse.xtext.Assignment;
12import org.eclipse.xtext.CrossReference;
13import org.eclipse.xtext.EnumLiteralDeclaration;
14import org.eclipse.xtext.EnumRule;
15import org.eclipse.xtext.Grammar;
16import org.eclipse.xtext.GrammarUtil;
17import org.eclipse.xtext.Group;
18import org.eclipse.xtext.Keyword;
19import org.eclipse.xtext.ParserRule;
20import org.eclipse.xtext.RuleCall;
21import org.eclipse.xtext.TerminalRule;
22import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
23import org.eclipse.xtext.service.AbstractElementFinder;
24import org.eclipse.xtext.service.GrammarProvider;
25
26@Singleton
27public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarElementFinder {
28
29 public class ProblemElements extends AbstractParserRuleElementFinder {
30 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Problem");
31 private final Group cGroup = (Group)rule.eContents().get(1);
32 private final Group cGroup_0 = (Group)cGroup.eContents().get(0);
33 private final Keyword cProblemKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
34 private final Assignment cNameAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
35 private final RuleCall cNameIdentifierParserRuleCall_0_1_0 = (RuleCall)cNameAssignment_0_1.eContents().get(0);
36 private final Keyword cFullStopKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2);
37 private final Assignment cStatementsAssignment_1 = (Assignment)cGroup.eContents().get(1);
38 private final RuleCall cStatementsStatementParserRuleCall_1_0 = (RuleCall)cStatementsAssignment_1.eContents().get(0);
39
40 //Problem:
41 // ("problem" name=Identifier ".")?
42 // statements+=Statement*;
43 @Override public ParserRule getRule() { return rule; }
44
45 //("problem" name=Identifier ".")?
46 //statements+=Statement*
47 public Group getGroup() { return cGroup; }
48
49 //("problem" name=Identifier ".")?
50 public Group getGroup_0() { return cGroup_0; }
51
52 //"problem"
53 public Keyword getProblemKeyword_0_0() { return cProblemKeyword_0_0; }
54
55 //name=Identifier
56 public Assignment getNameAssignment_0_1() { return cNameAssignment_0_1; }
57
58 //Identifier
59 public RuleCall getNameIdentifierParserRuleCall_0_1_0() { return cNameIdentifierParserRuleCall_0_1_0; }
60
61 //"."
62 public Keyword getFullStopKeyword_0_2() { return cFullStopKeyword_0_2; }
63
64 //statements+=Statement*
65 public Assignment getStatementsAssignment_1() { return cStatementsAssignment_1; }
66
67 //Statement
68 public RuleCall getStatementsStatementParserRuleCall_1_0() { return cStatementsStatementParserRuleCall_1_0; }
69 }
70 public class StatementElements extends AbstractParserRuleElementFinder {
71 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Statement");
72 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
73 private final RuleCall cClassDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
74 private final RuleCall cEnumDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
75 private final RuleCall cPredicateDefinitionParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
76 private final RuleCall cAssertionParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
77 private final RuleCall cScopeDeclarationParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
78
79 //Statement:
80 // ClassDeclaration | EnumDeclaration | PredicateDefinition | Assertion | ScopeDeclaration;
81 @Override public ParserRule getRule() { return rule; }
82
83 //ClassDeclaration | EnumDeclaration | PredicateDefinition | Assertion | ScopeDeclaration
84 public Alternatives getAlternatives() { return cAlternatives; }
85
86 //ClassDeclaration
87 public RuleCall getClassDeclarationParserRuleCall_0() { return cClassDeclarationParserRuleCall_0; }
88
89 //EnumDeclaration
90 public RuleCall getEnumDeclarationParserRuleCall_1() { return cEnumDeclarationParserRuleCall_1; }
91
92 //PredicateDefinition
93 public RuleCall getPredicateDefinitionParserRuleCall_2() { return cPredicateDefinitionParserRuleCall_2; }
94
95 //Assertion
96 public RuleCall getAssertionParserRuleCall_3() { return cAssertionParserRuleCall_3; }
97
98 //ScopeDeclaration
99 public RuleCall getScopeDeclarationParserRuleCall_4() { return cScopeDeclarationParserRuleCall_4; }
100 }
101 public class ClassDeclarationElements extends AbstractParserRuleElementFinder {
102 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ClassDeclaration");
103 private final Group cGroup = (Group)rule.eContents().get(1);
104 private final Assignment cAbstractAssignment_0 = (Assignment)cGroup.eContents().get(0);
105 private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0);
106 private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1);
107 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
108 private final RuleCall cNameIdentifierParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
109 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
110 private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
111 private final Assignment cSuperTypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
112 private final CrossReference cSuperTypesRelationCrossReference_3_1_0 = (CrossReference)cSuperTypesAssignment_3_1.eContents().get(0);
113 private final RuleCall cSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSuperTypesRelationCrossReference_3_1_0.eContents().get(1);
114 private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
115 private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
116 private final Assignment cSuperTypesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
117 private final CrossReference cSuperTypesRelationCrossReference_3_2_1_0 = (CrossReference)cSuperTypesAssignment_3_2_1.eContents().get(0);
118 private final RuleCall cSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSuperTypesRelationCrossReference_3_2_1_0.eContents().get(1);
119 private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4);
120 private final Group cGroup_4_0 = (Group)cAlternatives_4.eContents().get(0);
121 private final Keyword cLeftCurlyBracketKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
122 private final Group cGroup_4_0_1 = (Group)cGroup_4_0.eContents().get(1);
123 private final Assignment cReferenceDeclarationsAssignment_4_0_1_0 = (Assignment)cGroup_4_0_1.eContents().get(0);
124 private final RuleCall cReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0 = (RuleCall)cReferenceDeclarationsAssignment_4_0_1_0.eContents().get(0);
125 private final Keyword cSemicolonKeyword_4_0_1_1 = (Keyword)cGroup_4_0_1.eContents().get(1);
126 private final Keyword cRightCurlyBracketKeyword_4_0_2 = (Keyword)cGroup_4_0.eContents().get(2);
127 private final Keyword cFullStopKeyword_4_1 = (Keyword)cAlternatives_4.eContents().get(1);
128
129 //ClassDeclaration:
130 // abstract?="abstract"? "class"
131 // name=Identifier
132 // ("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
133 // ("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".");
134 @Override public ParserRule getRule() { return rule; }
135
136 //abstract?="abstract"? "class"
137 //name=Identifier
138 //("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
139 //("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".")
140 public Group getGroup() { return cGroup; }
141
142 //abstract?="abstract"?
143 public Assignment getAbstractAssignment_0() { return cAbstractAssignment_0; }
144
145 //"abstract"
146 public Keyword getAbstractAbstractKeyword_0_0() { return cAbstractAbstractKeyword_0_0; }
147
148 //"class"
149 public Keyword getClassKeyword_1() { return cClassKeyword_1; }
150
151 //name=Identifier
152 public Assignment getNameAssignment_2() { return cNameAssignment_2; }
153
154 //Identifier
155 public RuleCall getNameIdentifierParserRuleCall_2_0() { return cNameIdentifierParserRuleCall_2_0; }
156
157 //("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
158 public Group getGroup_3() { return cGroup_3; }
159
160 //"extends"
161 public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; }
162
163 //superTypes+=[Relation|QualifiedName]
164 public Assignment getSuperTypesAssignment_3_1() { return cSuperTypesAssignment_3_1; }
165
166 //[Relation|QualifiedName]
167 public CrossReference getSuperTypesRelationCrossReference_3_1_0() { return cSuperTypesRelationCrossReference_3_1_0; }
168
169 //QualifiedName
170 public RuleCall getSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1() { return cSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1; }
171
172 //("," superTypes+=[Relation|QualifiedName])*
173 public Group getGroup_3_2() { return cGroup_3_2; }
174
175 //","
176 public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
177
178 //superTypes+=[Relation|QualifiedName]
179 public Assignment getSuperTypesAssignment_3_2_1() { return cSuperTypesAssignment_3_2_1; }
180
181 //[Relation|QualifiedName]
182 public CrossReference getSuperTypesRelationCrossReference_3_2_1_0() { return cSuperTypesRelationCrossReference_3_2_1_0; }
183
184 //QualifiedName
185 public RuleCall getSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1() { return cSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1; }
186
187 //("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".")
188 public Alternatives getAlternatives_4() { return cAlternatives_4; }
189
190 //"{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}"
191 public Group getGroup_4_0() { return cGroup_4_0; }
192
193 //"{"
194 public Keyword getLeftCurlyBracketKeyword_4_0_0() { return cLeftCurlyBracketKeyword_4_0_0; }
195
196 //(referenceDeclarations+=ReferenceDeclaration ";"?)*
197 public Group getGroup_4_0_1() { return cGroup_4_0_1; }
198
199 //referenceDeclarations+=ReferenceDeclaration
200 public Assignment getReferenceDeclarationsAssignment_4_0_1_0() { return cReferenceDeclarationsAssignment_4_0_1_0; }
201
202 //ReferenceDeclaration
203 public RuleCall getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0() { return cReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0; }
204
205 //";"?
206 public Keyword getSemicolonKeyword_4_0_1_1() { return cSemicolonKeyword_4_0_1_1; }
207
208 //"}"
209 public Keyword getRightCurlyBracketKeyword_4_0_2() { return cRightCurlyBracketKeyword_4_0_2; }
210
211 //"."
212 public Keyword getFullStopKeyword_4_1() { return cFullStopKeyword_4_1; }
213 }
214 public class EnumDeclarationElements extends AbstractParserRuleElementFinder {
215 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.EnumDeclaration");
216 private final Group cGroup = (Group)rule.eContents().get(1);
217 private final Keyword cEnumKeyword_0 = (Keyword)cGroup.eContents().get(0);
218 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
219 private final RuleCall cNameIdentifierParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
220 private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
221 private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
222 private final Keyword cLeftCurlyBracketKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
223 private final Group cGroup_2_0_1 = (Group)cGroup_2_0.eContents().get(1);
224 private final Assignment cLiteralsAssignment_2_0_1_0 = (Assignment)cGroup_2_0_1.eContents().get(0);
225 private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0 = (RuleCall)cLiteralsAssignment_2_0_1_0.eContents().get(0);
226 private final Group cGroup_2_0_1_1 = (Group)cGroup_2_0_1.eContents().get(1);
227 private final Keyword cCommaKeyword_2_0_1_1_0 = (Keyword)cGroup_2_0_1_1.eContents().get(0);
228 private final Assignment cLiteralsAssignment_2_0_1_1_1 = (Assignment)cGroup_2_0_1_1.eContents().get(1);
229 private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0 = (RuleCall)cLiteralsAssignment_2_0_1_1_1.eContents().get(0);
230 private final Alternatives cAlternatives_2_0_1_2 = (Alternatives)cGroup_2_0_1.eContents().get(2);
231 private final Keyword cCommaKeyword_2_0_1_2_0 = (Keyword)cAlternatives_2_0_1_2.eContents().get(0);
232 private final Keyword cSemicolonKeyword_2_0_1_2_1 = (Keyword)cAlternatives_2_0_1_2.eContents().get(1);
233 private final Keyword cRightCurlyBracketKeyword_2_0_2 = (Keyword)cGroup_2_0.eContents().get(2);
234 private final Keyword cFullStopKeyword_2_1 = (Keyword)cAlternatives_2.eContents().get(1);
235
236 //EnumDeclaration:
237 // "enum"
238 // name=Identifier
239 // ("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".");
240 @Override public ParserRule getRule() { return rule; }
241
242 //"enum"
243 //name=Identifier
244 //("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".")
245 public Group getGroup() { return cGroup; }
246
247 //"enum"
248 public Keyword getEnumKeyword_0() { return cEnumKeyword_0; }
249
250 //name=Identifier
251 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
252
253 //Identifier
254 public RuleCall getNameIdentifierParserRuleCall_1_0() { return cNameIdentifierParserRuleCall_1_0; }
255
256 //("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".")
257 public Alternatives getAlternatives_2() { return cAlternatives_2; }
258
259 //"{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}"
260 public Group getGroup_2_0() { return cGroup_2_0; }
261
262 //"{"
263 public Keyword getLeftCurlyBracketKeyword_2_0_0() { return cLeftCurlyBracketKeyword_2_0_0; }
264
265 //(literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)?
266 public Group getGroup_2_0_1() { return cGroup_2_0_1; }
267
268 //literals+=EnumLiteral
269 public Assignment getLiteralsAssignment_2_0_1_0() { return cLiteralsAssignment_2_0_1_0; }
270
271 //EnumLiteral
272 public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0; }
273
274 //("," literals+=EnumLiteral)*
275 public Group getGroup_2_0_1_1() { return cGroup_2_0_1_1; }
276
277 //","
278 public Keyword getCommaKeyword_2_0_1_1_0() { return cCommaKeyword_2_0_1_1_0; }
279
280 //literals+=EnumLiteral
281 public Assignment getLiteralsAssignment_2_0_1_1_1() { return cLiteralsAssignment_2_0_1_1_1; }
282
283 //EnumLiteral
284 public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0; }
285
286 //("," | ";")?
287 public Alternatives getAlternatives_2_0_1_2() { return cAlternatives_2_0_1_2; }
288
289 //","
290 public Keyword getCommaKeyword_2_0_1_2_0() { return cCommaKeyword_2_0_1_2_0; }
291
292 //";"
293 public Keyword getSemicolonKeyword_2_0_1_2_1() { return cSemicolonKeyword_2_0_1_2_1; }
294
295 //"}"
296 public Keyword getRightCurlyBracketKeyword_2_0_2() { return cRightCurlyBracketKeyword_2_0_2; }
297
298 //"."
299 public Keyword getFullStopKeyword_2_1() { return cFullStopKeyword_2_1; }
300 }
301 public class EnumLiteralElements extends AbstractParserRuleElementFinder {
302 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
303 private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
304 private final RuleCall cNameQuotedOrUnquotedIdParserRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
305
306 //EnumLiteral returns Node:
307 // name=QuotedOrUnquotedId;
308 @Override public ParserRule getRule() { return rule; }
309
310 //name=QuotedOrUnquotedId
311 public Assignment getNameAssignment() { return cNameAssignment; }
312
313 //QuotedOrUnquotedId
314 public RuleCall getNameQuotedOrUnquotedIdParserRuleCall_0() { return cNameQuotedOrUnquotedIdParserRuleCall_0; }
315 }
316 public class ReferenceDeclarationElements extends AbstractParserRuleElementFinder {
317 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
318 private final Group cGroup = (Group)rule.eContents().get(1);
319 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
320 private final Assignment cContainmentAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
321 private final Keyword cContainmentContainsKeyword_0_0_0 = (Keyword)cContainmentAssignment_0_0.eContents().get(0);
322 private final Keyword cRefersKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
323 private final Assignment cReferenceTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
324 private final CrossReference cReferenceTypeRelationCrossReference_1_0 = (CrossReference)cReferenceTypeAssignment_1.eContents().get(0);
325 private final RuleCall cReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cReferenceTypeRelationCrossReference_1_0.eContents().get(1);
326 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
327 private final Keyword cLeftSquareBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
328 private final Assignment cMultiplicityAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
329 private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_1_0 = (RuleCall)cMultiplicityAssignment_2_1.eContents().get(0);
330 private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
331 private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
332 private final RuleCall cNameIdentifierParserRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
333 private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
334 private final Keyword cOppositeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
335 private final Assignment cOppositeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
336 private final CrossReference cOppositeReferenceDeclarationCrossReference_4_1_0 = (CrossReference)cOppositeAssignment_4_1.eContents().get(0);
337 private final RuleCall cOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeReferenceDeclarationCrossReference_4_1_0.eContents().get(1);
338
339 //ReferenceDeclaration:
340 // (containment?="contains" | "refers")?
341 // referenceType=[Relation|QualifiedName]
342 // ("[" multiplicity=Multiplicity "]")?
343 // name=Identifier
344 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
345 @Override public ParserRule getRule() { return rule; }
346
347 //(containment?="contains" | "refers")?
348 //referenceType=[Relation|QualifiedName]
349 //("[" multiplicity=Multiplicity "]")?
350 //name=Identifier
351 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])?
352 public Group getGroup() { return cGroup; }
353
354 //(containment?="contains" | "refers")?
355 public Alternatives getAlternatives_0() { return cAlternatives_0; }
356
357 //containment?="contains"
358 public Assignment getContainmentAssignment_0_0() { return cContainmentAssignment_0_0; }
359
360 //"contains"
361 public Keyword getContainmentContainsKeyword_0_0_0() { return cContainmentContainsKeyword_0_0_0; }
362
363 //"refers"
364 public Keyword getRefersKeyword_0_1() { return cRefersKeyword_0_1; }
365
366 //referenceType=[Relation|QualifiedName]
367 public Assignment getReferenceTypeAssignment_1() { return cReferenceTypeAssignment_1; }
368
369 //[Relation|QualifiedName]
370 public CrossReference getReferenceTypeRelationCrossReference_1_0() { return cReferenceTypeRelationCrossReference_1_0; }
371
372 //QualifiedName
373 public RuleCall getReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1() { return cReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1; }
374
375 //("[" multiplicity=Multiplicity "]")?
376 public Group getGroup_2() { return cGroup_2; }
377
378 //"["
379 public Keyword getLeftSquareBracketKeyword_2_0() { return cLeftSquareBracketKeyword_2_0; }
380
381 //multiplicity=Multiplicity
382 public Assignment getMultiplicityAssignment_2_1() { return cMultiplicityAssignment_2_1; }
383
384 //Multiplicity
385 public RuleCall getMultiplicityMultiplicityParserRuleCall_2_1_0() { return cMultiplicityMultiplicityParserRuleCall_2_1_0; }
386
387 //"]"
388 public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
389
390 //name=Identifier
391 public Assignment getNameAssignment_3() { return cNameAssignment_3; }
392
393 //Identifier
394 public RuleCall getNameIdentifierParserRuleCall_3_0() { return cNameIdentifierParserRuleCall_3_0; }
395
396 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])?
397 public Group getGroup_4() { return cGroup_4; }
398
399 //"opposite"
400 public Keyword getOppositeKeyword_4_0() { return cOppositeKeyword_4_0; }
401
402 //opposite=[ReferenceDeclaration|QualifiedName]
403 public Assignment getOppositeAssignment_4_1() { return cOppositeAssignment_4_1; }
404
405 //[ReferenceDeclaration|QualifiedName]
406 public CrossReference getOppositeReferenceDeclarationCrossReference_4_1_0() { return cOppositeReferenceDeclarationCrossReference_4_1_0; }
407
408 //QualifiedName
409 public RuleCall getOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1() { return cOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1; }
410 }
411 public class PredicateDefinitionElements extends AbstractParserRuleElementFinder {
412 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.PredicateDefinition");
413 private final Group cGroup = (Group)rule.eContents().get(1);
414 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
415 private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0);
416 private final Assignment cErrorAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0);
417 private final Keyword cErrorErrorKeyword_0_0_0_0 = (Keyword)cErrorAssignment_0_0_0.eContents().get(0);
418 private final Keyword cPredKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1);
419 private final Keyword cPredKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
420 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
421 private final RuleCall cNameIdentifierParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
422 private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
423 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
424 private final Assignment cParametersAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
425 private final RuleCall cParametersParameterParserRuleCall_3_0_0 = (RuleCall)cParametersAssignment_3_0.eContents().get(0);
426 private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1);
427 private final Keyword cCommaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
428 private final Assignment cParametersAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
429 private final RuleCall cParametersParameterParserRuleCall_3_1_1_0 = (RuleCall)cParametersAssignment_3_1_1.eContents().get(0);
430 private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
431 private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
432 private final Keyword cColonHyphenMinusKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
433 private final Assignment cBodiesAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
434 private final RuleCall cBodiesConjunctionParserRuleCall_5_1_0 = (RuleCall)cBodiesAssignment_5_1.eContents().get(0);
435 private final Group cGroup_5_2 = (Group)cGroup_5.eContents().get(2);
436 private final Keyword cSemicolonKeyword_5_2_0 = (Keyword)cGroup_5_2.eContents().get(0);
437 private final Assignment cBodiesAssignment_5_2_1 = (Assignment)cGroup_5_2.eContents().get(1);
438 private final RuleCall cBodiesConjunctionParserRuleCall_5_2_1_0 = (RuleCall)cBodiesAssignment_5_2_1.eContents().get(0);
439 private final Keyword cFullStopKeyword_6 = (Keyword)cGroup.eContents().get(6);
440
441 //PredicateDefinition:
442 // (error?="error" "pred"? | "pred")
443 // name=Identifier
444 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
445 // (":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
446 // ".";
447 @Override public ParserRule getRule() { return rule; }
448
449 //(error?="error" "pred"? | "pred")
450 //name=Identifier
451 //"(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
452 //(":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
453 //"."
454 public Group getGroup() { return cGroup; }
455
456 //(error?="error" "pred"? | "pred")
457 public Alternatives getAlternatives_0() { return cAlternatives_0; }
458
459 //error?="error" "pred"?
460 public Group getGroup_0_0() { return cGroup_0_0; }
461
462 //error?="error"
463 public Assignment getErrorAssignment_0_0_0() { return cErrorAssignment_0_0_0; }
464
465 //"error"
466 public Keyword getErrorErrorKeyword_0_0_0_0() { return cErrorErrorKeyword_0_0_0_0; }
467
468 //"pred"?
469 public Keyword getPredKeyword_0_0_1() { return cPredKeyword_0_0_1; }
470
471 //"pred"
472 public Keyword getPredKeyword_0_1() { return cPredKeyword_0_1; }
473
474 //name=Identifier
475 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
476
477 //Identifier
478 public RuleCall getNameIdentifierParserRuleCall_1_0() { return cNameIdentifierParserRuleCall_1_0; }
479
480 //"("
481 public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
482
483 //(parameters+=Parameter ("," parameters+=Parameter)*)?
484 public Group getGroup_3() { return cGroup_3; }
485
486 //parameters+=Parameter
487 public Assignment getParametersAssignment_3_0() { return cParametersAssignment_3_0; }
488
489 //Parameter
490 public RuleCall getParametersParameterParserRuleCall_3_0_0() { return cParametersParameterParserRuleCall_3_0_0; }
491
492 //("," parameters+=Parameter)*
493 public Group getGroup_3_1() { return cGroup_3_1; }
494
495 //","
496 public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; }
497
498 //parameters+=Parameter
499 public Assignment getParametersAssignment_3_1_1() { return cParametersAssignment_3_1_1; }
500
501 //Parameter
502 public RuleCall getParametersParameterParserRuleCall_3_1_1_0() { return cParametersParameterParserRuleCall_3_1_1_0; }
503
504 //")"
505 public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
506
507 //(":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
508 public Group getGroup_5() { return cGroup_5; }
509
510 //":-"
511 public Keyword getColonHyphenMinusKeyword_5_0() { return cColonHyphenMinusKeyword_5_0; }
512
513 //bodies+=Conjunction
514 public Assignment getBodiesAssignment_5_1() { return cBodiesAssignment_5_1; }
515
516 //Conjunction
517 public RuleCall getBodiesConjunctionParserRuleCall_5_1_0() { return cBodiesConjunctionParserRuleCall_5_1_0; }
518
519 //(";" bodies+=Conjunction)*
520 public Group getGroup_5_2() { return cGroup_5_2; }
521
522 //";"
523 public Keyword getSemicolonKeyword_5_2_0() { return cSemicolonKeyword_5_2_0; }
524
525 //bodies+=Conjunction
526 public Assignment getBodiesAssignment_5_2_1() { return cBodiesAssignment_5_2_1; }
527
528 //Conjunction
529 public RuleCall getBodiesConjunctionParserRuleCall_5_2_1_0() { return cBodiesConjunctionParserRuleCall_5_2_1_0; }
530
531 //"."
532 public Keyword getFullStopKeyword_6() { return cFullStopKeyword_6; }
533 }
534 public class ParameterElements extends AbstractParserRuleElementFinder {
535 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Parameter");
536 private final Group cGroup = (Group)rule.eContents().get(1);
537 private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
538 private final CrossReference cParameterTypeRelationCrossReference_0_0 = (CrossReference)cParameterTypeAssignment_0.eContents().get(0);
539 private final RuleCall cParameterTypeRelationQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cParameterTypeRelationCrossReference_0_0.eContents().get(1);
540 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
541 private final RuleCall cNameIdentifierParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
542
543 //Parameter:
544 // parameterType=[Relation|QualifiedName]? name=Identifier;
545 @Override public ParserRule getRule() { return rule; }
546
547 //parameterType=[Relation|QualifiedName]? name=Identifier
548 public Group getGroup() { return cGroup; }
549
550 //parameterType=[Relation|QualifiedName]?
551 public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; }
552
553 //[Relation|QualifiedName]
554 public CrossReference getParameterTypeRelationCrossReference_0_0() { return cParameterTypeRelationCrossReference_0_0; }
555
556 //QualifiedName
557 public RuleCall getParameterTypeRelationQualifiedNameParserRuleCall_0_0_1() { return cParameterTypeRelationQualifiedNameParserRuleCall_0_0_1; }
558
559 //name=Identifier
560 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
561
562 //Identifier
563 public RuleCall getNameIdentifierParserRuleCall_1_0() { return cNameIdentifierParserRuleCall_1_0; }
564 }
565 public class ConjunctionElements extends AbstractParserRuleElementFinder {
566 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Conjunction");
567 private final Group cGroup = (Group)rule.eContents().get(1);
568 private final Assignment cLiteralsAssignment_0 = (Assignment)cGroup.eContents().get(0);
569 private final RuleCall cLiteralsLiteralParserRuleCall_0_0 = (RuleCall)cLiteralsAssignment_0.eContents().get(0);
570 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
571 private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
572 private final Assignment cLiteralsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
573 private final RuleCall cLiteralsLiteralParserRuleCall_1_1_0 = (RuleCall)cLiteralsAssignment_1_1.eContents().get(0);
574
575 //Conjunction:
576 // literals+=Literal ("," literals+=Literal)*;
577 @Override public ParserRule getRule() { return rule; }
578
579 //literals+=Literal ("," literals+=Literal)*
580 public Group getGroup() { return cGroup; }
581
582 //literals+=Literal
583 public Assignment getLiteralsAssignment_0() { return cLiteralsAssignment_0; }
584
585 //Literal
586 public RuleCall getLiteralsLiteralParserRuleCall_0_0() { return cLiteralsLiteralParserRuleCall_0_0; }
587
588 //("," literals+=Literal)*
589 public Group getGroup_1() { return cGroup_1; }
590
591 //","
592 public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
593
594 //literals+=Literal
595 public Assignment getLiteralsAssignment_1_1() { return cLiteralsAssignment_1_1; }
596
597 //Literal
598 public RuleCall getLiteralsLiteralParserRuleCall_1_1_0() { return cLiteralsLiteralParserRuleCall_1_1_0; }
599 }
600 public class LiteralElements extends AbstractParserRuleElementFinder {
601 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Literal");
602 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
603 private final RuleCall cAtomParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
604 private final RuleCall cNegativeLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
605
606 //Literal:
607 // Atom | NegativeLiteral;
608 @Override public ParserRule getRule() { return rule; }
609
610 //Atom | NegativeLiteral
611 public Alternatives getAlternatives() { return cAlternatives; }
612
613 //Atom
614 public RuleCall getAtomParserRuleCall_0() { return cAtomParserRuleCall_0; }
615
616 //NegativeLiteral
617 public RuleCall getNegativeLiteralParserRuleCall_1() { return cNegativeLiteralParserRuleCall_1; }
618 }
619 public class NegativeLiteralElements extends AbstractParserRuleElementFinder {
620 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.NegativeLiteral");
621 private final Group cGroup = (Group)rule.eContents().get(1);
622 private final Keyword cExclamationMarkKeyword_0 = (Keyword)cGroup.eContents().get(0);
623 private final Assignment cAtomAssignment_1 = (Assignment)cGroup.eContents().get(1);
624 private final RuleCall cAtomAtomParserRuleCall_1_0 = (RuleCall)cAtomAssignment_1.eContents().get(0);
625
626 //NegativeLiteral:
627 // "!" atom=Atom;
628 @Override public ParserRule getRule() { return rule; }
629
630 //"!" atom=Atom
631 public Group getGroup() { return cGroup; }
632
633 //"!"
634 public Keyword getExclamationMarkKeyword_0() { return cExclamationMarkKeyword_0; }
635
636 //atom=Atom
637 public Assignment getAtomAssignment_1() { return cAtomAssignment_1; }
638
639 //Atom
640 public RuleCall getAtomAtomParserRuleCall_1_0() { return cAtomAtomParserRuleCall_1_0; }
641 }
642 public class AtomElements extends AbstractParserRuleElementFinder {
643 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Atom");
644 private final Group cGroup = (Group)rule.eContents().get(1);
645 private final Assignment cRelationAssignment_0 = (Assignment)cGroup.eContents().get(0);
646 private final CrossReference cRelationRelationCrossReference_0_0 = (CrossReference)cRelationAssignment_0.eContents().get(0);
647 private final RuleCall cRelationRelationQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cRelationRelationCrossReference_0_0.eContents().get(1);
648 private final Assignment cTransitiveClosureAssignment_1 = (Assignment)cGroup.eContents().get(1);
649 private final Keyword cTransitiveClosurePlusSignKeyword_1_0 = (Keyword)cTransitiveClosureAssignment_1.eContents().get(0);
650 private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
651 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
652 private final Assignment cArgumentsAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
653 private final RuleCall cArgumentsArgumentParserRuleCall_3_0_0 = (RuleCall)cArgumentsAssignment_3_0.eContents().get(0);
654 private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1);
655 private final Keyword cCommaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
656 private final Assignment cArgumentsAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
657 private final RuleCall cArgumentsArgumentParserRuleCall_3_1_1_0 = (RuleCall)cArgumentsAssignment_3_1_1.eContents().get(0);
658 private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
659
660 //Atom:
661 // relation=[Relation|QualifiedName]
662 // transitiveClosure?="+"?
663 // "(" (arguments+=Argument ("," arguments+=Argument)*)? ")";
664 @Override public ParserRule getRule() { return rule; }
665
666 //relation=[Relation|QualifiedName]
667 //transitiveClosure?="+"?
668 //"(" (arguments+=Argument ("," arguments+=Argument)*)? ")"
669 public Group getGroup() { return cGroup; }
670
671 //relation=[Relation|QualifiedName]
672 public Assignment getRelationAssignment_0() { return cRelationAssignment_0; }
673
674 //[Relation|QualifiedName]
675 public CrossReference getRelationRelationCrossReference_0_0() { return cRelationRelationCrossReference_0_0; }
676
677 //QualifiedName
678 public RuleCall getRelationRelationQualifiedNameParserRuleCall_0_0_1() { return cRelationRelationQualifiedNameParserRuleCall_0_0_1; }
679
680 //transitiveClosure?="+"?
681 public Assignment getTransitiveClosureAssignment_1() { return cTransitiveClosureAssignment_1; }
682
683 //"+"
684 public Keyword getTransitiveClosurePlusSignKeyword_1_0() { return cTransitiveClosurePlusSignKeyword_1_0; }
685
686 //"("
687 public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
688
689 //(arguments+=Argument ("," arguments+=Argument)*)?
690 public Group getGroup_3() { return cGroup_3; }
691
692 //arguments+=Argument
693 public Assignment getArgumentsAssignment_3_0() { return cArgumentsAssignment_3_0; }
694
695 //Argument
696 public RuleCall getArgumentsArgumentParserRuleCall_3_0_0() { return cArgumentsArgumentParserRuleCall_3_0_0; }
697
698 //("," arguments+=Argument)*
699 public Group getGroup_3_1() { return cGroup_3_1; }
700
701 //","
702 public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; }
703
704 //arguments+=Argument
705 public Assignment getArgumentsAssignment_3_1_1() { return cArgumentsAssignment_3_1_1; }
706
707 //Argument
708 public RuleCall getArgumentsArgumentParserRuleCall_3_1_1_0() { return cArgumentsArgumentParserRuleCall_3_1_1_0; }
709
710 //")"
711 public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
712 }
713 public class ArgumentElements extends AbstractParserRuleElementFinder {
714 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Argument");
715 private final Assignment cVariableOrNodeAssignment = (Assignment)rule.eContents().get(1);
716 private final CrossReference cVariableOrNodeVariableOrNodeCrossReference_0 = (CrossReference)cVariableOrNodeAssignment.eContents().get(0);
717 private final RuleCall cVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1 = (RuleCall)cVariableOrNodeVariableOrNodeCrossReference_0.eContents().get(1);
718
719 //Argument:
720 // variableOrNode=[VariableOrNode|QualifiedName];
721 @Override public ParserRule getRule() { return rule; }
722
723 //variableOrNode=[VariableOrNode|QualifiedName]
724 public Assignment getVariableOrNodeAssignment() { return cVariableOrNodeAssignment; }
725
726 //[VariableOrNode|QualifiedName]
727 public CrossReference getVariableOrNodeVariableOrNodeCrossReference_0() { return cVariableOrNodeVariableOrNodeCrossReference_0; }
728
729 //QualifiedName
730 public RuleCall getVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1() { return cVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1; }
731 }
732 public class AssertionElements extends AbstractParserRuleElementFinder {
733 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Assertion");
734 private final Group cGroup = (Group)rule.eContents().get(1);
735 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
736 private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0);
737 private final Assignment cRelationAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0);
738 private final CrossReference cRelationRelationCrossReference_0_0_0_0 = (CrossReference)cRelationAssignment_0_0_0.eContents().get(0);
739 private final RuleCall cRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1 = (RuleCall)cRelationRelationCrossReference_0_0_0_0.eContents().get(1);
740 private final Keyword cLeftParenthesisKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1);
741 private final Group cGroup_0_0_2 = (Group)cGroup_0_0.eContents().get(2);
742 private final Assignment cArgumentsAssignment_0_0_2_0 = (Assignment)cGroup_0_0_2.eContents().get(0);
743 private final CrossReference cArgumentsNodeCrossReference_0_0_2_0_0 = (CrossReference)cArgumentsAssignment_0_0_2_0.eContents().get(0);
744 private final RuleCall cArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1 = (RuleCall)cArgumentsNodeCrossReference_0_0_2_0_0.eContents().get(1);
745 private final Group cGroup_0_0_2_1 = (Group)cGroup_0_0_2.eContents().get(1);
746 private final Keyword cCommaKeyword_0_0_2_1_0 = (Keyword)cGroup_0_0_2_1.eContents().get(0);
747 private final Assignment cArgumentsAssignment_0_0_2_1_1 = (Assignment)cGroup_0_0_2_1.eContents().get(1);
748 private final CrossReference cArgumentsNodeCrossReference_0_0_2_1_1_0 = (CrossReference)cArgumentsAssignment_0_0_2_1_1.eContents().get(0);
749 private final RuleCall cArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1 = (RuleCall)cArgumentsNodeCrossReference_0_0_2_1_1_0.eContents().get(1);
750 private final Keyword cRightParenthesisKeyword_0_0_3 = (Keyword)cGroup_0_0.eContents().get(3);
751 private final Keyword cColonKeyword_0_0_4 = (Keyword)cGroup_0_0.eContents().get(4);
752 private final Assignment cValueAssignment_0_0_5 = (Assignment)cGroup_0_0.eContents().get(5);
753 private final RuleCall cValueLogicValueEnumRuleCall_0_0_5_0 = (RuleCall)cValueAssignment_0_0_5.eContents().get(0);
754 private final Group cGroup_0_1 = (Group)cAlternatives_0.eContents().get(1);
755 private final Assignment cValueAssignment_0_1_0 = (Assignment)cGroup_0_1.eContents().get(0);
756 private final RuleCall cValueShortLogicValueEnumRuleCall_0_1_0_0 = (RuleCall)cValueAssignment_0_1_0.eContents().get(0);
757 private final Assignment cRelationAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1);
758 private final CrossReference cRelationRelationCrossReference_0_1_1_0 = (CrossReference)cRelationAssignment_0_1_1.eContents().get(0);
759 private final RuleCall cRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1 = (RuleCall)cRelationRelationCrossReference_0_1_1_0.eContents().get(1);
760 private final Keyword cLeftParenthesisKeyword_0_1_2 = (Keyword)cGroup_0_1.eContents().get(2);
761 private final Group cGroup_0_1_3 = (Group)cGroup_0_1.eContents().get(3);
762 private final Assignment cArgumentsAssignment_0_1_3_0 = (Assignment)cGroup_0_1_3.eContents().get(0);
763 private final CrossReference cArgumentsNodeCrossReference_0_1_3_0_0 = (CrossReference)cArgumentsAssignment_0_1_3_0.eContents().get(0);
764 private final RuleCall cArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1 = (RuleCall)cArgumentsNodeCrossReference_0_1_3_0_0.eContents().get(1);
765 private final Group cGroup_0_1_3_1 = (Group)cGroup_0_1_3.eContents().get(1);
766 private final Keyword cCommaKeyword_0_1_3_1_0 = (Keyword)cGroup_0_1_3_1.eContents().get(0);
767 private final Assignment cArgumentsAssignment_0_1_3_1_1 = (Assignment)cGroup_0_1_3_1.eContents().get(1);
768 private final CrossReference cArgumentsNodeCrossReference_0_1_3_1_1_0 = (CrossReference)cArgumentsAssignment_0_1_3_1_1.eContents().get(0);
769 private final RuleCall cArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1 = (RuleCall)cArgumentsNodeCrossReference_0_1_3_1_1_0.eContents().get(1);
770 private final Keyword cRightParenthesisKeyword_0_1_4 = (Keyword)cGroup_0_1.eContents().get(4);
771 private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
772
773 //Assertion:
774 // (relation=[Relation|QualifiedName]
775 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
776 // ":" value=LogicValue |
777 // value=ShortLogicValue?
778 // relation=[Relation|QualifiedName]
779 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")")
780 // ".";
781 @Override public ParserRule getRule() { return rule; }
782
783 //(relation=[Relation|QualifiedName]
784 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
785 //":" value=LogicValue |
786 //value=ShortLogicValue?
787 //relation=[Relation|QualifiedName]
788 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")")
789 //"."
790 public Group getGroup() { return cGroup; }
791
792 //(relation=[Relation|QualifiedName]
793 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
794 //":" value=LogicValue |
795 //value=ShortLogicValue?
796 //relation=[Relation|QualifiedName]
797 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")")
798 public Alternatives getAlternatives_0() { return cAlternatives_0; }
799
800 //relation=[Relation|QualifiedName]
801 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
802 // ":" value=LogicValue
803 public Group getGroup_0_0() { return cGroup_0_0; }
804
805 //relation=[Relation|QualifiedName]
806 public Assignment getRelationAssignment_0_0_0() { return cRelationAssignment_0_0_0; }
807
808 //[Relation|QualifiedName]
809 public CrossReference getRelationRelationCrossReference_0_0_0_0() { return cRelationRelationCrossReference_0_0_0_0; }
810
811 //QualifiedName
812 public RuleCall getRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1() { return cRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1; }
813
814 //"("
815 public Keyword getLeftParenthesisKeyword_0_0_1() { return cLeftParenthesisKeyword_0_0_1; }
816
817 //(arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)?
818 public Group getGroup_0_0_2() { return cGroup_0_0_2; }
819
820 //arguments+=[Node|QualifiedName]
821 public Assignment getArgumentsAssignment_0_0_2_0() { return cArgumentsAssignment_0_0_2_0; }
822
823 //[Node|QualifiedName]
824 public CrossReference getArgumentsNodeCrossReference_0_0_2_0_0() { return cArgumentsNodeCrossReference_0_0_2_0_0; }
825
826 //QualifiedName
827 public RuleCall getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1() { return cArgumentsNodeQualifiedNameParserRuleCall_0_0_2_0_0_1; }
828
829 //("," arguments+=[Node|QualifiedName])*
830 public Group getGroup_0_0_2_1() { return cGroup_0_0_2_1; }
831
832 //","
833 public Keyword getCommaKeyword_0_0_2_1_0() { return cCommaKeyword_0_0_2_1_0; }
834
835 //arguments+=[Node|QualifiedName]
836 public Assignment getArgumentsAssignment_0_0_2_1_1() { return cArgumentsAssignment_0_0_2_1_1; }
837
838 //[Node|QualifiedName]
839 public CrossReference getArgumentsNodeCrossReference_0_0_2_1_1_0() { return cArgumentsNodeCrossReference_0_0_2_1_1_0; }
840
841 //QualifiedName
842 public RuleCall getArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1() { return cArgumentsNodeQualifiedNameParserRuleCall_0_0_2_1_1_0_1; }
843
844 //")"
845 public Keyword getRightParenthesisKeyword_0_0_3() { return cRightParenthesisKeyword_0_0_3; }
846
847 //":"
848 public Keyword getColonKeyword_0_0_4() { return cColonKeyword_0_0_4; }
849
850 //value=LogicValue
851 public Assignment getValueAssignment_0_0_5() { return cValueAssignment_0_0_5; }
852
853 //LogicValue
854 public RuleCall getValueLogicValueEnumRuleCall_0_0_5_0() { return cValueLogicValueEnumRuleCall_0_0_5_0; }
855
856 //value=ShortLogicValue?
857 //relation=[Relation|QualifiedName]
858 //"(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
859 public Group getGroup_0_1() { return cGroup_0_1; }
860
861 //value=ShortLogicValue?
862 public Assignment getValueAssignment_0_1_0() { return cValueAssignment_0_1_0; }
863
864 //ShortLogicValue
865 public RuleCall getValueShortLogicValueEnumRuleCall_0_1_0_0() { return cValueShortLogicValueEnumRuleCall_0_1_0_0; }
866
867 //relation=[Relation|QualifiedName]
868 public Assignment getRelationAssignment_0_1_1() { return cRelationAssignment_0_1_1; }
869
870 //[Relation|QualifiedName]
871 public CrossReference getRelationRelationCrossReference_0_1_1_0() { return cRelationRelationCrossReference_0_1_1_0; }
872
873 //QualifiedName
874 public RuleCall getRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1() { return cRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1; }
875
876 //"("
877 public Keyword getLeftParenthesisKeyword_0_1_2() { return cLeftParenthesisKeyword_0_1_2; }
878
879 //(arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)?
880 public Group getGroup_0_1_3() { return cGroup_0_1_3; }
881
882 //arguments+=[Node|QualifiedName]
883 public Assignment getArgumentsAssignment_0_1_3_0() { return cArgumentsAssignment_0_1_3_0; }
884
885 //[Node|QualifiedName]
886 public CrossReference getArgumentsNodeCrossReference_0_1_3_0_0() { return cArgumentsNodeCrossReference_0_1_3_0_0; }
887
888 //QualifiedName
889 public RuleCall getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1() { return cArgumentsNodeQualifiedNameParserRuleCall_0_1_3_0_0_1; }
890
891 //("," arguments+=[Node|QualifiedName])*
892 public Group getGroup_0_1_3_1() { return cGroup_0_1_3_1; }
893
894 //","
895 public Keyword getCommaKeyword_0_1_3_1_0() { return cCommaKeyword_0_1_3_1_0; }
896
897 //arguments+=[Node|QualifiedName]
898 public Assignment getArgumentsAssignment_0_1_3_1_1() { return cArgumentsAssignment_0_1_3_1_1; }
899
900 //[Node|QualifiedName]
901 public CrossReference getArgumentsNodeCrossReference_0_1_3_1_1_0() { return cArgumentsNodeCrossReference_0_1_3_1_1_0; }
902
903 //QualifiedName
904 public RuleCall getArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1() { return cArgumentsNodeQualifiedNameParserRuleCall_0_1_3_1_1_0_1; }
905
906 //")"
907 public Keyword getRightParenthesisKeyword_0_1_4() { return cRightParenthesisKeyword_0_1_4; }
908
909 //"."
910 public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
911 }
912 public class ScopeDeclarationElements extends AbstractParserRuleElementFinder {
913 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ScopeDeclaration");
914 private final Group cGroup = (Group)rule.eContents().get(1);
915 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0);
916 private final Assignment cTypeScopesAssignment_1 = (Assignment)cGroup.eContents().get(1);
917 private final RuleCall cTypeScopesTypeScopeParserRuleCall_1_0 = (RuleCall)cTypeScopesAssignment_1.eContents().get(0);
918 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
919 private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
920 private final Assignment cTypeScopesAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
921 private final RuleCall cTypeScopesTypeScopeParserRuleCall_2_1_0 = (RuleCall)cTypeScopesAssignment_2_1.eContents().get(0);
922 private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
923
924 //ScopeDeclaration:
925 // "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* ".";
926 @Override public ParserRule getRule() { return rule; }
927
928 //"scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* "."
929 public Group getGroup() { return cGroup; }
930
931 //"scope"
932 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; }
933
934 //typeScopes+=TypeScope
935 public Assignment getTypeScopesAssignment_1() { return cTypeScopesAssignment_1; }
936
937 //TypeScope
938 public RuleCall getTypeScopesTypeScopeParserRuleCall_1_0() { return cTypeScopesTypeScopeParserRuleCall_1_0; }
939
940 //("," typeScopes+=TypeScope)*
941 public Group getGroup_2() { return cGroup_2; }
942
943 //","
944 public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
945
946 //typeScopes+=TypeScope
947 public Assignment getTypeScopesAssignment_2_1() { return cTypeScopesAssignment_2_1; }
948
949 //TypeScope
950 public RuleCall getTypeScopesTypeScopeParserRuleCall_2_1_0() { return cTypeScopesTypeScopeParserRuleCall_2_1_0; }
951
952 //"."
953 public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }
954 }
955 public class TypeScopeElements extends AbstractParserRuleElementFinder {
956 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.TypeScope");
957 private final Group cGroup = (Group)rule.eContents().get(1);
958 private final Assignment cTargetTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
959 private final CrossReference cTargetTypeClassDeclarationCrossReference_0_0 = (CrossReference)cTargetTypeAssignment_0.eContents().get(0);
960 private final RuleCall cTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1 = (RuleCall)cTargetTypeClassDeclarationCrossReference_0_0.eContents().get(1);
961 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
962 private final Assignment cIncrementAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
963 private final Keyword cIncrementPlusSignEqualsSignKeyword_1_0_0 = (Keyword)cIncrementAssignment_1_0.eContents().get(0);
964 private final Keyword cEqualsSignKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
965 private final Assignment cMultiplicityAssignment_2 = (Assignment)cGroup.eContents().get(2);
966 private final RuleCall cMultiplicityDefiniteMultiplicityParserRuleCall_2_0 = (RuleCall)cMultiplicityAssignment_2.eContents().get(0);
967
968 //TypeScope:
969 // targetType=[ClassDeclaration]
970 // (increment?="+=" | "=")
971 // multiplicity=DefiniteMultiplicity;
972 @Override public ParserRule getRule() { return rule; }
973
974 //targetType=[ClassDeclaration]
975 //(increment?="+=" | "=")
976 //multiplicity=DefiniteMultiplicity
977 public Group getGroup() { return cGroup; }
978
979 //targetType=[ClassDeclaration]
980 public Assignment getTargetTypeAssignment_0() { return cTargetTypeAssignment_0; }
981
982 //[ClassDeclaration]
983 public CrossReference getTargetTypeClassDeclarationCrossReference_0_0() { return cTargetTypeClassDeclarationCrossReference_0_0; }
984
985 //ID
986 public RuleCall getTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1() { return cTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1; }
987
988 //(increment?="+=" | "=")
989 public Alternatives getAlternatives_1() { return cAlternatives_1; }
990
991 //increment?="+="
992 public Assignment getIncrementAssignment_1_0() { return cIncrementAssignment_1_0; }
993
994 //"+="
995 public Keyword getIncrementPlusSignEqualsSignKeyword_1_0_0() { return cIncrementPlusSignEqualsSignKeyword_1_0_0; }
996
997 //"="
998 public Keyword getEqualsSignKeyword_1_1() { return cEqualsSignKeyword_1_1; }
999
1000 //multiplicity=DefiniteMultiplicity
1001 public Assignment getMultiplicityAssignment_2() { return cMultiplicityAssignment_2; }
1002
1003 //DefiniteMultiplicity
1004 public RuleCall getMultiplicityDefiniteMultiplicityParserRuleCall_2_0() { return cMultiplicityDefiniteMultiplicityParserRuleCall_2_0; }
1005 }
1006 public class MultiplicityElements extends AbstractParserRuleElementFinder {
1007 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Multiplicity");
1008 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1009 private final RuleCall cUnboundedMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1010 private final RuleCall cDefiniteMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1011
1012 //Multiplicity:
1013 // UnboundedMultiplicity | DefiniteMultiplicity;
1014 @Override public ParserRule getRule() { return rule; }
1015
1016 //UnboundedMultiplicity | DefiniteMultiplicity
1017 public Alternatives getAlternatives() { return cAlternatives; }
1018
1019 //UnboundedMultiplicity
1020 public RuleCall getUnboundedMultiplicityParserRuleCall_0() { return cUnboundedMultiplicityParserRuleCall_0; }
1021
1022 //DefiniteMultiplicity
1023 public RuleCall getDefiniteMultiplicityParserRuleCall_1() { return cDefiniteMultiplicityParserRuleCall_1; }
1024 }
1025 public class DefiniteMultiplicityElements extends AbstractParserRuleElementFinder {
1026 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.DefiniteMultiplicity");
1027 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1028 private final RuleCall cRangeMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1029 private final RuleCall cExactMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1030
1031 //DefiniteMultiplicity returns Multiplicity:
1032 // RangeMultiplicity | ExactMultiplicity;
1033 @Override public ParserRule getRule() { return rule; }
1034
1035 //RangeMultiplicity | ExactMultiplicity
1036 public Alternatives getAlternatives() { return cAlternatives; }
1037
1038 //RangeMultiplicity
1039 public RuleCall getRangeMultiplicityParserRuleCall_0() { return cRangeMultiplicityParserRuleCall_0; }
1040
1041 //ExactMultiplicity
1042 public RuleCall getExactMultiplicityParserRuleCall_1() { return cExactMultiplicityParserRuleCall_1; }
1043 }
1044 public class UnboundedMultiplicityElements extends AbstractParserRuleElementFinder {
1045 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.UnboundedMultiplicity");
1046 private final Action cUnboundedMultiplicityAction = (Action)rule.eContents().get(1);
1047
1048 //UnboundedMultiplicity:
1049 // {UnboundedMultiplicity};
1050 @Override public ParserRule getRule() { return rule; }
1051
1052 //{UnboundedMultiplicity}
1053 public Action getUnboundedMultiplicityAction() { return cUnboundedMultiplicityAction; }
1054 }
1055 public class RangeMultiplicityElements extends AbstractParserRuleElementFinder {
1056 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.RangeMultiplicity");
1057 private final Group cGroup = (Group)rule.eContents().get(1);
1058 private final Assignment cLowerBoundAssignment_0 = (Assignment)cGroup.eContents().get(0);
1059 private final RuleCall cLowerBoundINTTerminalRuleCall_0_0 = (RuleCall)cLowerBoundAssignment_0.eContents().get(0);
1060 private final Keyword cFullStopFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
1061 private final Assignment cUpperBoundAssignment_2 = (Assignment)cGroup.eContents().get(2);
1062 private final RuleCall cUpperBoundUpperBoundParserRuleCall_2_0 = (RuleCall)cUpperBoundAssignment_2.eContents().get(0);
1063
1064 //RangeMultiplicity:
1065 // lowerBound=INT ".." upperBound=UpperBound;
1066 @Override public ParserRule getRule() { return rule; }
1067
1068 //lowerBound=INT ".." upperBound=UpperBound
1069 public Group getGroup() { return cGroup; }
1070
1071 //lowerBound=INT
1072 public Assignment getLowerBoundAssignment_0() { return cLowerBoundAssignment_0; }
1073
1074 //INT
1075 public RuleCall getLowerBoundINTTerminalRuleCall_0_0() { return cLowerBoundINTTerminalRuleCall_0_0; }
1076
1077 //".."
1078 public Keyword getFullStopFullStopKeyword_1() { return cFullStopFullStopKeyword_1; }
1079
1080 //upperBound=UpperBound
1081 public Assignment getUpperBoundAssignment_2() { return cUpperBoundAssignment_2; }
1082
1083 //UpperBound
1084 public RuleCall getUpperBoundUpperBoundParserRuleCall_2_0() { return cUpperBoundUpperBoundParserRuleCall_2_0; }
1085 }
1086 public class ExactMultiplicityElements extends AbstractParserRuleElementFinder {
1087 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ExactMultiplicity");
1088 private final Assignment cExactValueAssignment = (Assignment)rule.eContents().get(1);
1089 private final RuleCall cExactValueINTTerminalRuleCall_0 = (RuleCall)cExactValueAssignment.eContents().get(0);
1090
1091 //ExactMultiplicity:
1092 // exactValue=INT;
1093 @Override public ParserRule getRule() { return rule; }
1094
1095 //exactValue=INT
1096 public Assignment getExactValueAssignment() { return cExactValueAssignment; }
1097
1098 //INT
1099 public RuleCall getExactValueINTTerminalRuleCall_0() { return cExactValueINTTerminalRuleCall_0; }
1100 }
1101 public class UpperBoundElements extends AbstractParserRuleElementFinder {
1102 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.UpperBound");
1103 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1104 private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1105 private final Keyword cAsteriskKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
1106
1107 //UpperBound returns ecore::EInt:
1108 // INT | "*";
1109 @Override public ParserRule getRule() { return rule; }
1110
1111 //INT | "*"
1112 public Alternatives getAlternatives() { return cAlternatives; }
1113
1114 //INT
1115 public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
1116
1117 //"*"
1118 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; }
1119 }
1120 public class QuotedOrUnquotedIdElements extends AbstractParserRuleElementFinder {
1121 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QuotedOrUnquotedId");
1122 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1123 private final RuleCall cQUOTED_IDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1124 private final RuleCall cIdentifierParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1125
1126 //QuotedOrUnquotedId:
1127 // QUOTED_ID | Identifier;
1128 @Override public ParserRule getRule() { return rule; }
1129
1130 //QUOTED_ID | Identifier
1131 public Alternatives getAlternatives() { return cAlternatives; }
1132
1133 //QUOTED_ID
1134 public RuleCall getQUOTED_IDTerminalRuleCall_0() { return cQUOTED_IDTerminalRuleCall_0; }
1135
1136 //Identifier
1137 public RuleCall getIdentifierParserRuleCall_1() { return cIdentifierParserRuleCall_1; }
1138 }
1139 public class QualifiedNameElements extends AbstractParserRuleElementFinder {
1140 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QualifiedName");
1141 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1142 private final RuleCall cQUOTED_IDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1143 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
1144 private final RuleCall cIdentifierParserRuleCall_1_0 = (RuleCall)cGroup_1.eContents().get(0);
1145 private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
1146 private final Keyword cColonKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
1147 private final RuleCall cIdentifierParserRuleCall_1_1_1 = (RuleCall)cGroup_1_1.eContents().get(1);
1148 private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2);
1149 private final Keyword cColonKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0);
1150 private final RuleCall cQUOTED_IDTerminalRuleCall_1_2_1 = (RuleCall)cGroup_1_2.eContents().get(1);
1151
1152 //QualifiedName:
1153 // QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)?;
1154 @Override public ParserRule getRule() { return rule; }
1155
1156 //QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)?
1157 public Alternatives getAlternatives() { return cAlternatives; }
1158
1159 //QUOTED_ID
1160 public RuleCall getQUOTED_IDTerminalRuleCall_0() { return cQUOTED_IDTerminalRuleCall_0; }
1161
1162 //Identifier (":" Identifier)* (":" QUOTED_ID)?
1163 public Group getGroup_1() { return cGroup_1; }
1164
1165 //Identifier
1166 public RuleCall getIdentifierParserRuleCall_1_0() { return cIdentifierParserRuleCall_1_0; }
1167
1168 //(":" Identifier)*
1169 public Group getGroup_1_1() { return cGroup_1_1; }
1170
1171 //":"
1172 public Keyword getColonKeyword_1_1_0() { return cColonKeyword_1_1_0; }
1173
1174 //Identifier
1175 public RuleCall getIdentifierParserRuleCall_1_1_1() { return cIdentifierParserRuleCall_1_1_1; }
1176
1177 //(":" QUOTED_ID)?
1178 public Group getGroup_1_2() { return cGroup_1_2; }
1179
1180 //":"
1181 public Keyword getColonKeyword_1_2_0() { return cColonKeyword_1_2_0; }
1182
1183 //QUOTED_ID
1184 public RuleCall getQUOTED_IDTerminalRuleCall_1_2_1() { return cQUOTED_IDTerminalRuleCall_1_2_1; }
1185 }
1186 public class IdentifierElements extends AbstractParserRuleElementFinder {
1187 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Identifier");
1188 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1189 private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1190 private final Keyword cTrueKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
1191 private final Keyword cFalseKeyword_2 = (Keyword)cAlternatives.eContents().get(2);
1192
1193 //Identifier:
1194 // ID | "true" | "false";
1195 @Override public ParserRule getRule() { return rule; }
1196
1197 //ID | "true" | "false"
1198 public Alternatives getAlternatives() { return cAlternatives; }
1199
1200 //ID
1201 public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }
1202
1203 //"true"
1204 public Keyword getTrueKeyword_1() { return cTrueKeyword_1; }
1205
1206 //"false"
1207 public Keyword getFalseKeyword_2() { return cFalseKeyword_2; }
1208 }
1209
1210 public class LogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
1211 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.LogicValue");
1212 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1213 private final EnumLiteralDeclaration cTRUEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
1214 private final Keyword cTRUETrueKeyword_0_0 = (Keyword)cTRUEEnumLiteralDeclaration_0.eContents().get(0);
1215 private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
1216 private final Keyword cFALSEFalseKeyword_1_0 = (Keyword)cFALSEEnumLiteralDeclaration_1.eContents().get(0);
1217 private final EnumLiteralDeclaration cUNKNOWNEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
1218 private final Keyword cUNKNOWNUnknownKeyword_2_0 = (Keyword)cUNKNOWNEnumLiteralDeclaration_2.eContents().get(0);
1219
1220 //enum LogicValue:
1221 // TRUE="true" | FALSE="false" | UNKNOWN="unknown";
1222 public EnumRule getRule() { return rule; }
1223
1224 //TRUE="true" | FALSE="false" | UNKNOWN="unknown"
1225 public Alternatives getAlternatives() { return cAlternatives; }
1226
1227 //TRUE="true"
1228 public EnumLiteralDeclaration getTRUEEnumLiteralDeclaration_0() { return cTRUEEnumLiteralDeclaration_0; }
1229
1230 //"true"
1231 public Keyword getTRUETrueKeyword_0_0() { return cTRUETrueKeyword_0_0; }
1232
1233 //FALSE="false"
1234 public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_1() { return cFALSEEnumLiteralDeclaration_1; }
1235
1236 //"false"
1237 public Keyword getFALSEFalseKeyword_1_0() { return cFALSEFalseKeyword_1_0; }
1238
1239 //UNKNOWN="unknown"
1240 public EnumLiteralDeclaration getUNKNOWNEnumLiteralDeclaration_2() { return cUNKNOWNEnumLiteralDeclaration_2; }
1241
1242 //"unknown"
1243 public Keyword getUNKNOWNUnknownKeyword_2_0() { return cUNKNOWNUnknownKeyword_2_0; }
1244 }
1245 public class ShortLogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
1246 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
1247 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1248 private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
1249 private final Keyword cFALSEExclamationMarkKeyword_0_0 = (Keyword)cFALSEEnumLiteralDeclaration_0.eContents().get(0);
1250 private final EnumLiteralDeclaration cUNKNOWNEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
1251 private final Keyword cUNKNOWNQuestionMarkKeyword_1_0 = (Keyword)cUNKNOWNEnumLiteralDeclaration_1.eContents().get(0);
1252
1253 //enum ShortLogicValue returns LogicValue:
1254 // FALSE="!" | UNKNOWN="?";
1255 public EnumRule getRule() { return rule; }
1256
1257 //FALSE="!" | UNKNOWN="?"
1258 public Alternatives getAlternatives() { return cAlternatives; }
1259
1260 //FALSE="!"
1261 public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_0() { return cFALSEEnumLiteralDeclaration_0; }
1262
1263 //"!"
1264 public Keyword getFALSEExclamationMarkKeyword_0_0() { return cFALSEExclamationMarkKeyword_0_0; }
1265
1266 //UNKNOWN="?"
1267 public EnumLiteralDeclaration getUNKNOWNEnumLiteralDeclaration_1() { return cUNKNOWNEnumLiteralDeclaration_1; }
1268
1269 //"?"
1270 public Keyword getUNKNOWNQuestionMarkKeyword_1_0() { return cUNKNOWNQuestionMarkKeyword_1_0; }
1271 }
1272
1273 private final ProblemElements pProblem;
1274 private final StatementElements pStatement;
1275 private final ClassDeclarationElements pClassDeclaration;
1276 private final EnumDeclarationElements pEnumDeclaration;
1277 private final EnumLiteralElements pEnumLiteral;
1278 private final ReferenceDeclarationElements pReferenceDeclaration;
1279 private final PredicateDefinitionElements pPredicateDefinition;
1280 private final ParameterElements pParameter;
1281 private final ConjunctionElements pConjunction;
1282 private final LiteralElements pLiteral;
1283 private final NegativeLiteralElements pNegativeLiteral;
1284 private final AtomElements pAtom;
1285 private final ArgumentElements pArgument;
1286 private final AssertionElements pAssertion;
1287 private final LogicValueElements eLogicValue;
1288 private final ShortLogicValueElements eShortLogicValue;
1289 private final ScopeDeclarationElements pScopeDeclaration;
1290 private final TypeScopeElements pTypeScope;
1291 private final MultiplicityElements pMultiplicity;
1292 private final DefiniteMultiplicityElements pDefiniteMultiplicity;
1293 private final UnboundedMultiplicityElements pUnboundedMultiplicity;
1294 private final RangeMultiplicityElements pRangeMultiplicity;
1295 private final ExactMultiplicityElements pExactMultiplicity;
1296 private final UpperBoundElements pUpperBound;
1297 private final QuotedOrUnquotedIdElements pQuotedOrUnquotedId;
1298 private final QualifiedNameElements pQualifiedName;
1299 private final IdentifierElements pIdentifier;
1300 private final TerminalRule tSTRING;
1301 private final TerminalRule tQUOTED_ID;
1302
1303 private final Grammar grammar;
1304
1305 private final TerminalsGrammarAccess gaTerminals;
1306
1307 @Inject
1308 public ProblemGrammarAccess(GrammarProvider grammarProvider,
1309 TerminalsGrammarAccess gaTerminals) {
1310 this.grammar = internalFindGrammar(grammarProvider);
1311 this.gaTerminals = gaTerminals;
1312 this.pProblem = new ProblemElements();
1313 this.pStatement = new StatementElements();
1314 this.pClassDeclaration = new ClassDeclarationElements();
1315 this.pEnumDeclaration = new EnumDeclarationElements();
1316 this.pEnumLiteral = new EnumLiteralElements();
1317 this.pReferenceDeclaration = new ReferenceDeclarationElements();
1318 this.pPredicateDefinition = new PredicateDefinitionElements();
1319 this.pParameter = new ParameterElements();
1320 this.pConjunction = new ConjunctionElements();
1321 this.pLiteral = new LiteralElements();
1322 this.pNegativeLiteral = new NegativeLiteralElements();
1323 this.pAtom = new AtomElements();
1324 this.pArgument = new ArgumentElements();
1325 this.pAssertion = new AssertionElements();
1326 this.eLogicValue = new LogicValueElements();
1327 this.eShortLogicValue = new ShortLogicValueElements();
1328 this.pScopeDeclaration = new ScopeDeclarationElements();
1329 this.pTypeScope = new TypeScopeElements();
1330 this.pMultiplicity = new MultiplicityElements();
1331 this.pDefiniteMultiplicity = new DefiniteMultiplicityElements();
1332 this.pUnboundedMultiplicity = new UnboundedMultiplicityElements();
1333 this.pRangeMultiplicity = new RangeMultiplicityElements();
1334 this.pExactMultiplicity = new ExactMultiplicityElements();
1335 this.pUpperBound = new UpperBoundElements();
1336 this.pQuotedOrUnquotedId = new QuotedOrUnquotedIdElements();
1337 this.pQualifiedName = new QualifiedNameElements();
1338 this.pIdentifier = new IdentifierElements();
1339 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.STRING");
1340 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QUOTED_ID");
1341 }
1342
1343 protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
1344 Grammar grammar = grammarProvider.getGrammar(this);
1345 while (grammar != null) {
1346 if ("org.eclipse.viatra.solver.language.Problem".equals(grammar.getName())) {
1347 return grammar;
1348 }
1349 List<Grammar> grammars = grammar.getUsedGrammars();
1350 if (!grammars.isEmpty()) {
1351 grammar = grammars.iterator().next();
1352 } else {
1353 return null;
1354 }
1355 }
1356 return grammar;
1357 }
1358
1359 @Override
1360 public Grammar getGrammar() {
1361 return grammar;
1362 }
1363
1364
1365 public TerminalsGrammarAccess getTerminalsGrammarAccess() {
1366 return gaTerminals;
1367 }
1368
1369
1370 //Problem:
1371 // ("problem" name=Identifier ".")?
1372 // statements+=Statement*;
1373 public ProblemElements getProblemAccess() {
1374 return pProblem;
1375 }
1376
1377 public ParserRule getProblemRule() {
1378 return getProblemAccess().getRule();
1379 }
1380
1381 //Statement:
1382 // ClassDeclaration | EnumDeclaration | PredicateDefinition | Assertion | ScopeDeclaration;
1383 public StatementElements getStatementAccess() {
1384 return pStatement;
1385 }
1386
1387 public ParserRule getStatementRule() {
1388 return getStatementAccess().getRule();
1389 }
1390
1391 //ClassDeclaration:
1392 // abstract?="abstract"? "class"
1393 // name=Identifier
1394 // ("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
1395 // ("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".");
1396 public ClassDeclarationElements getClassDeclarationAccess() {
1397 return pClassDeclaration;
1398 }
1399
1400 public ParserRule getClassDeclarationRule() {
1401 return getClassDeclarationAccess().getRule();
1402 }
1403
1404 //EnumDeclaration:
1405 // "enum"
1406 // name=Identifier
1407 // ("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".");
1408 public EnumDeclarationElements getEnumDeclarationAccess() {
1409 return pEnumDeclaration;
1410 }
1411
1412 public ParserRule getEnumDeclarationRule() {
1413 return getEnumDeclarationAccess().getRule();
1414 }
1415
1416 //EnumLiteral returns Node:
1417 // name=QuotedOrUnquotedId;
1418 public EnumLiteralElements getEnumLiteralAccess() {
1419 return pEnumLiteral;
1420 }
1421
1422 public ParserRule getEnumLiteralRule() {
1423 return getEnumLiteralAccess().getRule();
1424 }
1425
1426 //ReferenceDeclaration:
1427 // (containment?="contains" | "refers")?
1428 // referenceType=[Relation|QualifiedName]
1429 // ("[" multiplicity=Multiplicity "]")?
1430 // name=Identifier
1431 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
1432 public ReferenceDeclarationElements getReferenceDeclarationAccess() {
1433 return pReferenceDeclaration;
1434 }
1435
1436 public ParserRule getReferenceDeclarationRule() {
1437 return getReferenceDeclarationAccess().getRule();
1438 }
1439
1440 //PredicateDefinition:
1441 // (error?="error" "pred"? | "pred")
1442 // name=Identifier
1443 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
1444 // (":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
1445 // ".";
1446 public PredicateDefinitionElements getPredicateDefinitionAccess() {
1447 return pPredicateDefinition;
1448 }
1449
1450 public ParserRule getPredicateDefinitionRule() {
1451 return getPredicateDefinitionAccess().getRule();
1452 }
1453
1454 //Parameter:
1455 // parameterType=[Relation|QualifiedName]? name=Identifier;
1456 public ParameterElements getParameterAccess() {
1457 return pParameter;
1458 }
1459
1460 public ParserRule getParameterRule() {
1461 return getParameterAccess().getRule();
1462 }
1463
1464 //Conjunction:
1465 // literals+=Literal ("," literals+=Literal)*;
1466 public ConjunctionElements getConjunctionAccess() {
1467 return pConjunction;
1468 }
1469
1470 public ParserRule getConjunctionRule() {
1471 return getConjunctionAccess().getRule();
1472 }
1473
1474 //Literal:
1475 // Atom | NegativeLiteral;
1476 public LiteralElements getLiteralAccess() {
1477 return pLiteral;
1478 }
1479
1480 public ParserRule getLiteralRule() {
1481 return getLiteralAccess().getRule();
1482 }
1483
1484 //NegativeLiteral:
1485 // "!" atom=Atom;
1486 public NegativeLiteralElements getNegativeLiteralAccess() {
1487 return pNegativeLiteral;
1488 }
1489
1490 public ParserRule getNegativeLiteralRule() {
1491 return getNegativeLiteralAccess().getRule();
1492 }
1493
1494 //Atom:
1495 // relation=[Relation|QualifiedName]
1496 // transitiveClosure?="+"?
1497 // "(" (arguments+=Argument ("," arguments+=Argument)*)? ")";
1498 public AtomElements getAtomAccess() {
1499 return pAtom;
1500 }
1501
1502 public ParserRule getAtomRule() {
1503 return getAtomAccess().getRule();
1504 }
1505
1506 //Argument:
1507 // variableOrNode=[VariableOrNode|QualifiedName];
1508 public ArgumentElements getArgumentAccess() {
1509 return pArgument;
1510 }
1511
1512 public ParserRule getArgumentRule() {
1513 return getArgumentAccess().getRule();
1514 }
1515
1516 //Assertion:
1517 // (relation=[Relation|QualifiedName]
1518 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")"
1519 // ":" value=LogicValue |
1520 // value=ShortLogicValue?
1521 // relation=[Relation|QualifiedName]
1522 // "(" (arguments+=[Node|QualifiedName] ("," arguments+=[Node|QualifiedName])*)? ")")
1523 // ".";
1524 public AssertionElements getAssertionAccess() {
1525 return pAssertion;
1526 }
1527
1528 public ParserRule getAssertionRule() {
1529 return getAssertionAccess().getRule();
1530 }
1531
1532 //enum LogicValue:
1533 // TRUE="true" | FALSE="false" | UNKNOWN="unknown";
1534 public LogicValueElements getLogicValueAccess() {
1535 return eLogicValue;
1536 }
1537
1538 public EnumRule getLogicValueRule() {
1539 return getLogicValueAccess().getRule();
1540 }
1541
1542 //enum ShortLogicValue returns LogicValue:
1543 // FALSE="!" | UNKNOWN="?";
1544 public ShortLogicValueElements getShortLogicValueAccess() {
1545 return eShortLogicValue;
1546 }
1547
1548 public EnumRule getShortLogicValueRule() {
1549 return getShortLogicValueAccess().getRule();
1550 }
1551
1552 //ScopeDeclaration:
1553 // "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* ".";
1554 public ScopeDeclarationElements getScopeDeclarationAccess() {
1555 return pScopeDeclaration;
1556 }
1557
1558 public ParserRule getScopeDeclarationRule() {
1559 return getScopeDeclarationAccess().getRule();
1560 }
1561
1562 //TypeScope:
1563 // targetType=[ClassDeclaration]
1564 // (increment?="+=" | "=")
1565 // multiplicity=DefiniteMultiplicity;
1566 public TypeScopeElements getTypeScopeAccess() {
1567 return pTypeScope;
1568 }
1569
1570 public ParserRule getTypeScopeRule() {
1571 return getTypeScopeAccess().getRule();
1572 }
1573
1574 //Multiplicity:
1575 // UnboundedMultiplicity | DefiniteMultiplicity;
1576 public MultiplicityElements getMultiplicityAccess() {
1577 return pMultiplicity;
1578 }
1579
1580 public ParserRule getMultiplicityRule() {
1581 return getMultiplicityAccess().getRule();
1582 }
1583
1584 //DefiniteMultiplicity returns Multiplicity:
1585 // RangeMultiplicity | ExactMultiplicity;
1586 public DefiniteMultiplicityElements getDefiniteMultiplicityAccess() {
1587 return pDefiniteMultiplicity;
1588 }
1589
1590 public ParserRule getDefiniteMultiplicityRule() {
1591 return getDefiniteMultiplicityAccess().getRule();
1592 }
1593
1594 //UnboundedMultiplicity:
1595 // {UnboundedMultiplicity};
1596 public UnboundedMultiplicityElements getUnboundedMultiplicityAccess() {
1597 return pUnboundedMultiplicity;
1598 }
1599
1600 public ParserRule getUnboundedMultiplicityRule() {
1601 return getUnboundedMultiplicityAccess().getRule();
1602 }
1603
1604 //RangeMultiplicity:
1605 // lowerBound=INT ".." upperBound=UpperBound;
1606 public RangeMultiplicityElements getRangeMultiplicityAccess() {
1607 return pRangeMultiplicity;
1608 }
1609
1610 public ParserRule getRangeMultiplicityRule() {
1611 return getRangeMultiplicityAccess().getRule();
1612 }
1613
1614 //ExactMultiplicity:
1615 // exactValue=INT;
1616 public ExactMultiplicityElements getExactMultiplicityAccess() {
1617 return pExactMultiplicity;
1618 }
1619
1620 public ParserRule getExactMultiplicityRule() {
1621 return getExactMultiplicityAccess().getRule();
1622 }
1623
1624 //UpperBound returns ecore::EInt:
1625 // INT | "*";
1626 public UpperBoundElements getUpperBoundAccess() {
1627 return pUpperBound;
1628 }
1629
1630 public ParserRule getUpperBoundRule() {
1631 return getUpperBoundAccess().getRule();
1632 }
1633
1634 //QuotedOrUnquotedId:
1635 // QUOTED_ID | Identifier;
1636 public QuotedOrUnquotedIdElements getQuotedOrUnquotedIdAccess() {
1637 return pQuotedOrUnquotedId;
1638 }
1639
1640 public ParserRule getQuotedOrUnquotedIdRule() {
1641 return getQuotedOrUnquotedIdAccess().getRule();
1642 }
1643
1644 //QualifiedName:
1645 // QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)?;
1646 public QualifiedNameElements getQualifiedNameAccess() {
1647 return pQualifiedName;
1648 }
1649
1650 public ParserRule getQualifiedNameRule() {
1651 return getQualifiedNameAccess().getRule();
1652 }
1653
1654 //Identifier:
1655 // ID | "true" | "false";
1656 public IdentifierElements getIdentifierAccess() {
1657 return pIdentifier;
1658 }
1659
1660 public ParserRule getIdentifierRule() {
1661 return getIdentifierAccess().getRule();
1662 }
1663
1664 //@Override
1665 //terminal STRING:
1666 // '"' ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | '"'))* '"';
1667 public TerminalRule getSTRINGRule() {
1668 return tSTRING;
1669 }
1670
1671 //terminal QUOTED_ID:
1672 // "'" ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | "'"))* "'";
1673 public TerminalRule getQUOTED_IDRule() {
1674 return tQUOTED_ID;
1675 }
1676
1677 //terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
1678 public TerminalRule getIDRule() {
1679 return gaTerminals.getIDRule();
1680 }
1681
1682 //terminal INT returns ecore::EInt: ('0'..'9')+;
1683 public TerminalRule getINTRule() {
1684 return gaTerminals.getINTRule();
1685 }
1686
1687 //terminal ML_COMMENT : '/*' -> '*/';
1688 public TerminalRule getML_COMMENTRule() {
1689 return gaTerminals.getML_COMMENTRule();
1690 }
1691
1692 //terminal SL_COMMENT : '//' !('\n'|'\r')* ('\r'? '\n')?;
1693 public TerminalRule getSL_COMMENTRule() {
1694 return gaTerminals.getSL_COMMENTRule();
1695 }
1696
1697 //terminal WS : (' '|'\t'|'\r'|'\n')+;
1698 public TerminalRule getWSRule() {
1699 return gaTerminals.getWSRule();
1700 }
1701
1702 //terminal ANY_OTHER: .;
1703 public TerminalRule getANY_OTHERRule() {
1704 return gaTerminals.getANY_OTHERRule();
1705 }
1706}
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java
new file mode 100644
index 00000000..9cd73e1e
--- /dev/null
+++ b/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/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java
new file mode 100644
index 00000000..f5a0d87d
--- /dev/null
+++ b/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/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend
index b007cf8b..b007cf8b 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend
+++ b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend
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/language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java
index 7d0ef1bb..7d0ef1bb 100644
--- 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/language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java
diff --git a/org.eclipse.viatra.solver.language.parent/.gitignore b/org.eclipse.viatra.solver.language.parent/.gitignore
deleted file mode 100644
index da88288c..00000000
--- a/org.eclipse.viatra.solver.language.parent/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
1/.gradle/
diff --git a/org.eclipse.viatra.solver.language.parent/settings.gradle b/org.eclipse.viatra.solver.language.parent/settings.gradle
deleted file mode 100644
index 5ddc5fc4..00000000
--- a/org.eclipse.viatra.solver.language.parent/settings.gradle
+++ /dev/null
@@ -1,4 +0,0 @@
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'
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 00000000..237e5772
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,4 @@
1include 'language'
2include 'language-ide'
3include 'language-model'
4include 'language-web'