aboutsummaryrefslogtreecommitdiffstats
path: root/language
diff options
context:
space:
mode:
Diffstat (limited to 'language')
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java194
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbinbin7566 -> 0 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.g2390
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens77
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java1940
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java6752
-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.java534
-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.java2071
-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/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java69
16 files changed, 0 insertions, 14309 deletions
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
deleted file mode 100644
index 24bed771..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/AbstractProblemRuntimeModule.java
+++ /dev/null
@@ -1,194 +0,0 @@
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.parser.antlr.ProblemAntlrTokenFileProvider;
11import org.eclipse.viatra.solver.language.parser.antlr.ProblemParser;
12import org.eclipse.viatra.solver.language.parser.antlr.internal.InternalProblemLexer;
13import org.eclipse.viatra.solver.language.scoping.ProblemScopeProvider;
14import org.eclipse.viatra.solver.language.serializer.ProblemSemanticSequencer;
15import org.eclipse.viatra.solver.language.serializer.ProblemSyntacticSequencer;
16import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
17import org.eclipse.viatra.solver.language.validation.ProblemConfigurableIssueCodesProvider;
18import org.eclipse.viatra.solver.language.validation.ProblemValidator;
19import org.eclipse.xtext.Constants;
20import org.eclipse.xtext.IGrammarAccess;
21import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider;
22import org.eclipse.xtext.naming.IQualifiedNameProvider;
23import org.eclipse.xtext.parser.IParser;
24import org.eclipse.xtext.parser.ITokenToStringConverter;
25import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
26import org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter;
27import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
28import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
29import org.eclipse.xtext.parser.antlr.Lexer;
30import org.eclipse.xtext.parser.antlr.LexerBindings;
31import org.eclipse.xtext.parser.antlr.LexerProvider;
32import org.eclipse.xtext.resource.IContainer;
33import org.eclipse.xtext.resource.IResourceDescriptions;
34import org.eclipse.xtext.resource.containers.IAllContainersState;
35import org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider;
36import org.eclipse.xtext.resource.containers.StateBasedContainerManager;
37import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
38import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions;
39import org.eclipse.xtext.scoping.IGlobalScopeProvider;
40import org.eclipse.xtext.scoping.IScopeProvider;
41import org.eclipse.xtext.scoping.IgnoreCaseLinking;
42import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
43import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider;
44import org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider;
45import org.eclipse.xtext.serializer.ISerializer;
46import org.eclipse.xtext.serializer.impl.Serializer;
47import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
48import org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer;
49import org.eclipse.xtext.service.DefaultRuntimeModule;
50import org.eclipse.xtext.service.SingletonBinding;
51import org.eclipse.xtext.validation.ConfigurableIssueCodesProvider;
52
53/**
54 * Manual modifications go to {@link ProblemRuntimeModule}.
55 */
56@SuppressWarnings("all")
57public abstract class AbstractProblemRuntimeModule extends DefaultRuntimeModule {
58
59 protected Properties properties = null;
60
61 @Override
62 public void configure(Binder binder) {
63 properties = tryBindProperties(binder, "org/eclipse/viatra/solver/language/Problem.properties");
64 super.configure(binder);
65 }
66
67 public void configureLanguageName(Binder binder) {
68 binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.viatra.solver.language.Problem");
69 }
70
71 public void configureFileExtensions(Binder binder) {
72 if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
73 binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("problem");
74 }
75
76 // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
77 public ClassLoader bindClassLoaderToInstance() {
78 return getClass().getClassLoader();
79 }
80
81 // contributed by org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessFragment2
82 public Class<? extends IGrammarAccess> bindIGrammarAccess() {
83 return ProblemGrammarAccess.class;
84 }
85
86 // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
87 public Class<? extends ISemanticSequencer> bindISemanticSequencer() {
88 return ProblemSemanticSequencer.class;
89 }
90
91 // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
92 public Class<? extends ISyntacticSequencer> bindISyntacticSequencer() {
93 return ProblemSyntacticSequencer.class;
94 }
95
96 // contributed by org.eclipse.xtext.xtext.generator.serializer.SerializerFragment2
97 public Class<? extends ISerializer> bindISerializer() {
98 return Serializer.class;
99 }
100
101 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
102 public Class<? extends IParser> bindIParser() {
103 return ProblemParser.class;
104 }
105
106 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
107 public Class<? extends ITokenToStringConverter> bindITokenToStringConverter() {
108 return AntlrTokenToStringConverter.class;
109 }
110
111 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
112 public Class<? extends IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
113 return ProblemAntlrTokenFileProvider.class;
114 }
115
116 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
117 public Class<? extends Lexer> bindLexer() {
118 return InternalProblemLexer.class;
119 }
120
121 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
122 public Class<? extends ITokenDefProvider> bindITokenDefProvider() {
123 return AntlrTokenDefProvider.class;
124 }
125
126 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
127 public Provider<? extends InternalProblemLexer> provideInternalProblemLexer() {
128 return LexerProvider.create(InternalProblemLexer.class);
129 }
130
131 // contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
132 public void configureRuntimeLexer(Binder binder) {
133 binder.bind(Lexer.class)
134 .annotatedWith(Names.named(LexerBindings.RUNTIME))
135 .to(InternalProblemLexer.class);
136 }
137
138 // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
139 @SingletonBinding(eager=true)
140 public Class<? extends ProblemValidator> bindProblemValidator() {
141 return ProblemValidator.class;
142 }
143
144 // contributed by org.eclipse.xtext.xtext.generator.validation.ValidatorFragment2
145 public Class<? extends ConfigurableIssueCodesProvider> bindConfigurableIssueCodesProvider() {
146 return ProblemConfigurableIssueCodesProvider.class;
147 }
148
149 // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
150 public Class<? extends IScopeProvider> bindIScopeProvider() {
151 return ProblemScopeProvider.class;
152 }
153
154 // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
155 public void configureIScopeProviderDelegate(Binder binder) {
156 binder.bind(IScopeProvider.class).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(ImportedNamespaceAwareLocalScopeProvider.class);
157 }
158
159 // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
160 public Class<? extends IGlobalScopeProvider> bindIGlobalScopeProvider() {
161 return DefaultGlobalScopeProvider.class;
162 }
163
164 // contributed by org.eclipse.xtext.xtext.generator.scoping.ImportNamespacesScopingFragment2
165 public void configureIgnoreCaseLinking(Binder binder) {
166 binder.bindConstant().annotatedWith(IgnoreCaseLinking.class).to(false);
167 }
168
169 // contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
170 public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
171 return DefaultDeclarativeQualifiedNameProvider.class;
172 }
173
174 // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
175 public Class<? extends IContainer.Manager> bindIContainer$Manager() {
176 return StateBasedContainerManager.class;
177 }
178
179 // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
180 public Class<? extends IAllContainersState.Provider> bindIAllContainersState$Provider() {
181 return ResourceSetBasedAllContainersStateProvider.class;
182 }
183
184 // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
185 public void configureIResourceDescriptions(Binder binder) {
186 binder.bind(IResourceDescriptions.class).to(ResourceSetBasedResourceDescriptions.class);
187 }
188
189 // contributed by org.eclipse.xtext.xtext.generator.builder.BuilderIntegrationFragment2
190 public void configureIResourceDescriptionsPersisted(Binder binder) {
191 binder.bind(IResourceDescriptions.class).annotatedWith(Names.named(ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(ResourceSetBasedResourceDescriptions.class);
192 }
193
194}
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
deleted file mode 100644
index 0b613873..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbin
+++ /dev/null
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
deleted file mode 100644
index 0366f9cd..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/ProblemStandaloneSetupGenerated.java
+++ /dev/null
@@ -1,37 +0,0 @@
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
deleted file mode 100644
index b7ecf3f6..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemAntlrTokenFileProvider.java
+++ /dev/null
@@ -1,16 +0,0 @@
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
deleted file mode 100644
index 3af86cab..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/ProblemParser.java
+++ /dev/null
@@ -1,40 +0,0 @@
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
deleted file mode 100644
index 583f8c1c..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g
+++ /dev/null
@@ -1,2390 +0,0 @@
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().getNodeValueAssertionParserRuleCall_4());
185 }
186 this_NodeValueAssertion_4=ruleNodeValueAssertion
187 {
188 $current = $this_NodeValueAssertion_4.current;
189 afterParserOrEnumRuleCall();
190 }
191 |
192 {
193 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_5());
194 }
195 this_ScopeDeclaration_5=ruleScopeDeclaration
196 {
197 $current = $this_ScopeDeclaration_5.current;
198 afterParserOrEnumRuleCall();
199 }
200 )
201;
202
203// Entry rule entryRuleClassDeclaration
204entryRuleClassDeclaration returns [EObject current=null]:
205 { newCompositeNode(grammarAccess.getClassDeclarationRule()); }
206 iv_ruleClassDeclaration=ruleClassDeclaration
207 { $current=$iv_ruleClassDeclaration.current; }
208 EOF;
209
210// Rule ClassDeclaration
211ruleClassDeclaration returns [EObject current=null]
212@init {
213 enterRule();
214}
215@after {
216 leaveRule();
217}:
218 (
219 (
220 (
221 lv_abstract_0_0='abstract'
222 {
223 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
224 }
225 {
226 if ($current==null) {
227 $current = createModelElement(grammarAccess.getClassDeclarationRule());
228 }
229 setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
230 }
231 )
232 )?
233 otherlv_1='class'
234 {
235 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
236 }
237 (
238 (
239 {
240 newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0());
241 }
242 lv_name_2_0=ruleIdentifier
243 {
244 if ($current==null) {
245 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
246 }
247 set(
248 $current,
249 "name",
250 lv_name_2_0,
251 "org.eclipse.viatra.solver.language.Problem.Identifier");
252 afterParserOrEnumRuleCall();
253 }
254 )
255 )
256 (
257 otherlv_3='extends'
258 {
259 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
260 }
261 (
262 (
263 {
264 if ($current==null) {
265 $current = createModelElement(grammarAccess.getClassDeclarationRule());
266 }
267 }
268 {
269 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0());
270 }
271 ruleQualifiedName
272 {
273 afterParserOrEnumRuleCall();
274 }
275 )
276 )
277 (
278 otherlv_5=','
279 {
280 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
281 }
282 (
283 (
284 {
285 if ($current==null) {
286 $current = createModelElement(grammarAccess.getClassDeclarationRule());
287 }
288 }
289 {
290 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0());
291 }
292 ruleQualifiedName
293 {
294 afterParserOrEnumRuleCall();
295 }
296 )
297 )
298 )*
299 )?
300 (
301 (
302 otherlv_7='{'
303 {
304 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
305 }
306 (
307 (
308 (
309 {
310 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0());
311 }
312 lv_referenceDeclarations_8_0=ruleReferenceDeclaration
313 {
314 if ($current==null) {
315 $current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
316 }
317 add(
318 $current,
319 "referenceDeclarations",
320 lv_referenceDeclarations_8_0,
321 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
322 afterParserOrEnumRuleCall();
323 }
324 )
325 )
326 (
327 otherlv_9=';'
328 {
329 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1());
330 }
331 )?
332 )*
333 otherlv_10='}'
334 {
335 newLeafNode(otherlv_10, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2());
336 }
337 )
338 |
339 otherlv_11='.'
340 {
341 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1());
342 }
343 )
344 )
345;
346
347// Entry rule entryRuleEnumDeclaration
348entryRuleEnumDeclaration returns [EObject current=null]:
349 { newCompositeNode(grammarAccess.getEnumDeclarationRule()); }
350 iv_ruleEnumDeclaration=ruleEnumDeclaration
351 { $current=$iv_ruleEnumDeclaration.current; }
352 EOF;
353
354// Rule EnumDeclaration
355ruleEnumDeclaration returns [EObject current=null]
356@init {
357 enterRule();
358}
359@after {
360 leaveRule();
361}:
362 (
363 otherlv_0='enum'
364 {
365 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0());
366 }
367 (
368 (
369 {
370 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getNameIdentifierParserRuleCall_1_0());
371 }
372 lv_name_1_0=ruleIdentifier
373 {
374 if ($current==null) {
375 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
376 }
377 set(
378 $current,
379 "name",
380 lv_name_1_0,
381 "org.eclipse.viatra.solver.language.Problem.Identifier");
382 afterParserOrEnumRuleCall();
383 }
384 )
385 )
386 (
387 (
388 otherlv_2='{'
389 {
390 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0());
391 }
392 (
393 (
394 (
395 {
396 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0());
397 }
398 lv_literals_3_0=ruleEnumLiteral
399 {
400 if ($current==null) {
401 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
402 }
403 add(
404 $current,
405 "literals",
406 lv_literals_3_0,
407 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
408 afterParserOrEnumRuleCall();
409 }
410 )
411 )
412 (
413 otherlv_4=','
414 {
415 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
416 }
417 (
418 (
419 {
420 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0());
421 }
422 lv_literals_5_0=ruleEnumLiteral
423 {
424 if ($current==null) {
425 $current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
426 }
427 add(
428 $current,
429 "literals",
430 lv_literals_5_0,
431 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
432 afterParserOrEnumRuleCall();
433 }
434 )
435 )
436 )*
437 (
438 otherlv_6=','
439 {
440 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0());
441 }
442 |
443 otherlv_7=';'
444 {
445 newLeafNode(otherlv_7, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1());
446 }
447 )?
448 )?
449 otherlv_8='}'
450 {
451 newLeafNode(otherlv_8, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2());
452 }
453 )
454 |
455 otherlv_9='.'
456 {
457 newLeafNode(otherlv_9, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1());
458 }
459 )
460 )
461;
462
463// Entry rule entryRuleEnumLiteral
464entryRuleEnumLiteral returns [EObject current=null]:
465 { newCompositeNode(grammarAccess.getEnumLiteralRule()); }
466 iv_ruleEnumLiteral=ruleEnumLiteral
467 { $current=$iv_ruleEnumLiteral.current; }
468 EOF;
469
470// Rule EnumLiteral
471ruleEnumLiteral returns [EObject current=null]
472@init {
473 enterRule();
474}
475@after {
476 leaveRule();
477}:
478 (
479 (
480 {
481 newCompositeNode(grammarAccess.getEnumLiteralAccess().getNameIdentifierParserRuleCall_0());
482 }
483 lv_name_0_0=ruleIdentifier
484 {
485 if ($current==null) {
486 $current = createModelElementForParent(grammarAccess.getEnumLiteralRule());
487 }
488 set(
489 $current,
490 "name",
491 lv_name_0_0,
492 "org.eclipse.viatra.solver.language.Problem.Identifier");
493 afterParserOrEnumRuleCall();
494 }
495 )
496 )
497;
498
499// Entry rule entryRuleReferenceDeclaration
500entryRuleReferenceDeclaration returns [EObject current=null]:
501 { newCompositeNode(grammarAccess.getReferenceDeclarationRule()); }
502 iv_ruleReferenceDeclaration=ruleReferenceDeclaration
503 { $current=$iv_ruleReferenceDeclaration.current; }
504 EOF;
505
506// Rule ReferenceDeclaration
507ruleReferenceDeclaration returns [EObject current=null]
508@init {
509 enterRule();
510}
511@after {
512 leaveRule();
513}:
514 (
515 (
516 (
517 (
518 lv_containment_0_0='contains'
519 {
520 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
521 }
522 {
523 if ($current==null) {
524 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
525 }
526 setWithLastConsumed($current, "containment", lv_containment_0_0 != null, "contains");
527 }
528 )
529 )
530 |
531 otherlv_1='refers'
532 {
533 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
534 }
535 )?
536 (
537 (
538 {
539 if ($current==null) {
540 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
541 }
542 }
543 {
544 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0());
545 }
546 ruleQualifiedName
547 {
548 afterParserOrEnumRuleCall();
549 }
550 )
551 )
552 (
553 otherlv_3='['
554 {
555 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0());
556 }
557 (
558 (
559 {
560 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0());
561 }
562 lv_multiplicity_4_0=ruleMultiplicity
563 {
564 if ($current==null) {
565 $current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
566 }
567 set(
568 $current,
569 "multiplicity",
570 lv_multiplicity_4_0,
571 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
572 afterParserOrEnumRuleCall();
573 }
574 )
575 )
576 otherlv_5=']'
577 {
578 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2());
579 }
580 )?
581 (
582 (
583 {
584 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0());
585 }
586 lv_name_6_0=ruleIdentifier
587 {
588 if ($current==null) {
589 $current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
590 }
591 set(
592 $current,
593 "name",
594 lv_name_6_0,
595 "org.eclipse.viatra.solver.language.Problem.Identifier");
596 afterParserOrEnumRuleCall();
597 }
598 )
599 )
600 (
601 otherlv_7='opposite'
602 {
603 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0());
604 }
605 (
606 (
607 {
608 if ($current==null) {
609 $current = createModelElement(grammarAccess.getReferenceDeclarationRule());
610 }
611 }
612 {
613 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_4_1_0());
614 }
615 ruleQualifiedName
616 {
617 afterParserOrEnumRuleCall();
618 }
619 )
620 )
621 )?
622 )
623;
624
625// Entry rule entryRulePredicateDefinition
626entryRulePredicateDefinition returns [EObject current=null]:
627 { newCompositeNode(grammarAccess.getPredicateDefinitionRule()); }
628 iv_rulePredicateDefinition=rulePredicateDefinition
629 { $current=$iv_rulePredicateDefinition.current; }
630 EOF;
631
632// Rule PredicateDefinition
633rulePredicateDefinition returns [EObject current=null]
634@init {
635 enterRule();
636}
637@after {
638 leaveRule();
639}:
640 (
641 (
642 (
643 (
644 (
645 lv_error_0_0='error'
646 {
647 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
648 }
649 {
650 if ($current==null) {
651 $current = createModelElement(grammarAccess.getPredicateDefinitionRule());
652 }
653 setWithLastConsumed($current, "error", lv_error_0_0 != null, "error");
654 }
655 )
656 )
657 (
658 otherlv_1='pred'
659 {
660 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
661 }
662 )?
663 )
664 |
665 otherlv_2='pred'
666 {
667 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
668 }
669 )
670 (
671 (
672 {
673 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0());
674 }
675 lv_name_3_0=ruleIdentifier
676 {
677 if ($current==null) {
678 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
679 }
680 set(
681 $current,
682 "name",
683 lv_name_3_0,
684 "org.eclipse.viatra.solver.language.Problem.Identifier");
685 afterParserOrEnumRuleCall();
686 }
687 )
688 )
689 otherlv_4='('
690 {
691 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
692 }
693 (
694 (
695 (
696 {
697 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
698 }
699 lv_parameters_5_0=ruleParameter
700 {
701 if ($current==null) {
702 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
703 }
704 add(
705 $current,
706 "parameters",
707 lv_parameters_5_0,
708 "org.eclipse.viatra.solver.language.Problem.Parameter");
709 afterParserOrEnumRuleCall();
710 }
711 )
712 )
713 (
714 otherlv_6=','
715 {
716 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
717 }
718 (
719 (
720 {
721 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
722 }
723 lv_parameters_7_0=ruleParameter
724 {
725 if ($current==null) {
726 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
727 }
728 add(
729 $current,
730 "parameters",
731 lv_parameters_7_0,
732 "org.eclipse.viatra.solver.language.Problem.Parameter");
733 afterParserOrEnumRuleCall();
734 }
735 )
736 )
737 )*
738 )?
739 otherlv_8=')'
740 {
741 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
742 }
743 (
744 otherlv_9=':-'
745 {
746 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0());
747 }
748 (
749 (
750 {
751 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
752 }
753 lv_bodies_10_0=ruleConjunction
754 {
755 if ($current==null) {
756 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
757 }
758 add(
759 $current,
760 "bodies",
761 lv_bodies_10_0,
762 "org.eclipse.viatra.solver.language.Problem.Conjunction");
763 afterParserOrEnumRuleCall();
764 }
765 )
766 )
767 (
768 otherlv_11=';'
769 {
770 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
771 }
772 (
773 (
774 {
775 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
776 }
777 lv_bodies_12_0=ruleConjunction
778 {
779 if ($current==null) {
780 $current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
781 }
782 add(
783 $current,
784 "bodies",
785 lv_bodies_12_0,
786 "org.eclipse.viatra.solver.language.Problem.Conjunction");
787 afterParserOrEnumRuleCall();
788 }
789 )
790 )
791 )*
792 )?
793 otherlv_13='.'
794 {
795 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
796 }
797 )
798;
799
800// Entry rule entryRuleParameter
801entryRuleParameter returns [EObject current=null]:
802 { newCompositeNode(grammarAccess.getParameterRule()); }
803 iv_ruleParameter=ruleParameter
804 { $current=$iv_ruleParameter.current; }
805 EOF;
806
807// Rule Parameter
808ruleParameter returns [EObject current=null]
809@init {
810 enterRule();
811}
812@after {
813 leaveRule();
814}:
815 (
816 (
817 (
818 {
819 if ($current==null) {
820 $current = createModelElement(grammarAccess.getParameterRule());
821 }
822 }
823 {
824 newCompositeNode(grammarAccess.getParameterAccess().getParameterTypeRelationCrossReference_0_0());
825 }
826 ruleQualifiedName
827 {
828 afterParserOrEnumRuleCall();
829 }
830 )
831 )?
832 (
833 (
834 {
835 newCompositeNode(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0());
836 }
837 lv_name_1_0=ruleIdentifier
838 {
839 if ($current==null) {
840 $current = createModelElementForParent(grammarAccess.getParameterRule());
841 }
842 set(
843 $current,
844 "name",
845 lv_name_1_0,
846 "org.eclipse.viatra.solver.language.Problem.Identifier");
847 afterParserOrEnumRuleCall();
848 }
849 )
850 )
851 )
852;
853
854// Entry rule entryRuleConjunction
855entryRuleConjunction returns [EObject current=null]:
856 { newCompositeNode(grammarAccess.getConjunctionRule()); }
857 iv_ruleConjunction=ruleConjunction
858 { $current=$iv_ruleConjunction.current; }
859 EOF;
860
861// Rule Conjunction
862ruleConjunction returns [EObject current=null]
863@init {
864 enterRule();
865}
866@after {
867 leaveRule();
868}:
869 (
870 (
871 (
872 {
873 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
874 }
875 lv_literals_0_0=ruleLiteral
876 {
877 if ($current==null) {
878 $current = createModelElementForParent(grammarAccess.getConjunctionRule());
879 }
880 add(
881 $current,
882 "literals",
883 lv_literals_0_0,
884 "org.eclipse.viatra.solver.language.Problem.Literal");
885 afterParserOrEnumRuleCall();
886 }
887 )
888 )
889 (
890 otherlv_1=','
891 {
892 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
893 }
894 (
895 (
896 {
897 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
898 }
899 lv_literals_2_0=ruleLiteral
900 {
901 if ($current==null) {
902 $current = createModelElementForParent(grammarAccess.getConjunctionRule());
903 }
904 add(
905 $current,
906 "literals",
907 lv_literals_2_0,
908 "org.eclipse.viatra.solver.language.Problem.Literal");
909 afterParserOrEnumRuleCall();
910 }
911 )
912 )
913 )*
914 )
915;
916
917// Entry rule entryRuleLiteral
918entryRuleLiteral returns [EObject current=null]:
919 { newCompositeNode(grammarAccess.getLiteralRule()); }
920 iv_ruleLiteral=ruleLiteral
921 { $current=$iv_ruleLiteral.current; }
922 EOF;
923
924// Rule Literal
925ruleLiteral returns [EObject current=null]
926@init {
927 enterRule();
928}
929@after {
930 leaveRule();
931}:
932 (
933 {
934 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
935 }
936 this_Atom_0=ruleAtom
937 {
938 $current = $this_Atom_0.current;
939 afterParserOrEnumRuleCall();
940 }
941 |
942 {
943 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
944 }
945 this_NegativeLiteral_1=ruleNegativeLiteral
946 {
947 $current = $this_NegativeLiteral_1.current;
948 afterParserOrEnumRuleCall();
949 }
950 )
951;
952
953// Entry rule entryRuleNegativeLiteral
954entryRuleNegativeLiteral returns [EObject current=null]:
955 { newCompositeNode(grammarAccess.getNegativeLiteralRule()); }
956 iv_ruleNegativeLiteral=ruleNegativeLiteral
957 { $current=$iv_ruleNegativeLiteral.current; }
958 EOF;
959
960// Rule NegativeLiteral
961ruleNegativeLiteral returns [EObject current=null]
962@init {
963 enterRule();
964}
965@after {
966 leaveRule();
967}:
968 (
969 otherlv_0='!'
970 {
971 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
972 }
973 (
974 (
975 {
976 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
977 }
978 lv_atom_1_0=ruleAtom
979 {
980 if ($current==null) {
981 $current = createModelElementForParent(grammarAccess.getNegativeLiteralRule());
982 }
983 set(
984 $current,
985 "atom",
986 lv_atom_1_0,
987 "org.eclipse.viatra.solver.language.Problem.Atom");
988 afterParserOrEnumRuleCall();
989 }
990 )
991 )
992 )
993;
994
995// Entry rule entryRuleAtom
996entryRuleAtom returns [EObject current=null]:
997 { newCompositeNode(grammarAccess.getAtomRule()); }
998 iv_ruleAtom=ruleAtom
999 { $current=$iv_ruleAtom.current; }
1000 EOF;
1001
1002// Rule Atom
1003ruleAtom returns [EObject current=null]
1004@init {
1005 enterRule();
1006}
1007@after {
1008 leaveRule();
1009}:
1010 (
1011 (
1012 (
1013 {
1014 if ($current==null) {
1015 $current = createModelElement(grammarAccess.getAtomRule());
1016 }
1017 }
1018 {
1019 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
1020 }
1021 ruleQualifiedName
1022 {
1023 afterParserOrEnumRuleCall();
1024 }
1025 )
1026 )
1027 (
1028 (
1029 lv_transitiveClosure_1_0='+'
1030 {
1031 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
1032 }
1033 {
1034 if ($current==null) {
1035 $current = createModelElement(grammarAccess.getAtomRule());
1036 }
1037 setWithLastConsumed($current, "transitiveClosure", lv_transitiveClosure_1_0 != null, "+");
1038 }
1039 )
1040 )?
1041 otherlv_2='('
1042 {
1043 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
1044 }
1045 (
1046 (
1047 (
1048 {
1049 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0());
1050 }
1051 lv_arguments_3_0=ruleArgument
1052 {
1053 if ($current==null) {
1054 $current = createModelElementForParent(grammarAccess.getAtomRule());
1055 }
1056 add(
1057 $current,
1058 "arguments",
1059 lv_arguments_3_0,
1060 "org.eclipse.viatra.solver.language.Problem.Argument");
1061 afterParserOrEnumRuleCall();
1062 }
1063 )
1064 )
1065 (
1066 otherlv_4=','
1067 {
1068 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
1069 }
1070 (
1071 (
1072 {
1073 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0());
1074 }
1075 lv_arguments_5_0=ruleArgument
1076 {
1077 if ($current==null) {
1078 $current = createModelElementForParent(grammarAccess.getAtomRule());
1079 }
1080 add(
1081 $current,
1082 "arguments",
1083 lv_arguments_5_0,
1084 "org.eclipse.viatra.solver.language.Problem.Argument");
1085 afterParserOrEnumRuleCall();
1086 }
1087 )
1088 )
1089 )*
1090 )?
1091 otherlv_6=')'
1092 {
1093 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
1094 }
1095 )
1096;
1097
1098// Entry rule entryRuleArgument
1099entryRuleArgument returns [EObject current=null]:
1100 { newCompositeNode(grammarAccess.getArgumentRule()); }
1101 iv_ruleArgument=ruleArgument
1102 { $current=$iv_ruleArgument.current; }
1103 EOF;
1104
1105// Rule Argument
1106ruleArgument returns [EObject current=null]
1107@init {
1108 enterRule();
1109}
1110@after {
1111 leaveRule();
1112}:
1113 (
1114 {
1115 newCompositeNode(grammarAccess.getArgumentAccess().getVariableOrNodeArgumentParserRuleCall_0());
1116 }
1117 this_VariableOrNodeArgument_0=ruleVariableOrNodeArgument
1118 {
1119 $current = $this_VariableOrNodeArgument_0.current;
1120 afterParserOrEnumRuleCall();
1121 }
1122 |
1123 {
1124 newCompositeNode(grammarAccess.getArgumentAccess().getConstantArgumentParserRuleCall_1());
1125 }
1126 this_ConstantArgument_1=ruleConstantArgument
1127 {
1128 $current = $this_ConstantArgument_1.current;
1129 afterParserOrEnumRuleCall();
1130 }
1131 )
1132;
1133
1134// Entry rule entryRuleVariableOrNodeArgument
1135entryRuleVariableOrNodeArgument returns [EObject current=null]:
1136 { newCompositeNode(grammarAccess.getVariableOrNodeArgumentRule()); }
1137 iv_ruleVariableOrNodeArgument=ruleVariableOrNodeArgument
1138 { $current=$iv_ruleVariableOrNodeArgument.current; }
1139 EOF;
1140
1141// Rule VariableOrNodeArgument
1142ruleVariableOrNodeArgument returns [EObject current=null]
1143@init {
1144 enterRule();
1145}
1146@after {
1147 leaveRule();
1148}:
1149 (
1150 (
1151 {
1152 if ($current==null) {
1153 $current = createModelElement(grammarAccess.getVariableOrNodeArgumentRule());
1154 }
1155 }
1156 {
1157 newCompositeNode(grammarAccess.getVariableOrNodeArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0());
1158 }
1159 ruleQualifiedName
1160 {
1161 afterParserOrEnumRuleCall();
1162 }
1163 )
1164 )
1165;
1166
1167// Entry rule entryRuleConstantArgument
1168entryRuleConstantArgument returns [EObject current=null]:
1169 { newCompositeNode(grammarAccess.getConstantArgumentRule()); }
1170 iv_ruleConstantArgument=ruleConstantArgument
1171 { $current=$iv_ruleConstantArgument.current; }
1172 EOF;
1173
1174// Rule ConstantArgument
1175ruleConstantArgument returns [EObject current=null]
1176@init {
1177 enterRule();
1178}
1179@after {
1180 leaveRule();
1181}:
1182 (
1183 (
1184 {
1185 newCompositeNode(grammarAccess.getConstantArgumentAccess().getConstantConstantParserRuleCall_0());
1186 }
1187 lv_constant_0_0=ruleConstant
1188 {
1189 if ($current==null) {
1190 $current = createModelElementForParent(grammarAccess.getConstantArgumentRule());
1191 }
1192 set(
1193 $current,
1194 "constant",
1195 lv_constant_0_0,
1196 "org.eclipse.viatra.solver.language.Problem.Constant");
1197 afterParserOrEnumRuleCall();
1198 }
1199 )
1200 )
1201;
1202
1203// Entry rule entryRuleAssertion
1204entryRuleAssertion returns [EObject current=null]:
1205 { newCompositeNode(grammarAccess.getAssertionRule()); }
1206 iv_ruleAssertion=ruleAssertion
1207 { $current=$iv_ruleAssertion.current; }
1208 EOF;
1209
1210// Rule Assertion
1211ruleAssertion returns [EObject current=null]
1212@init {
1213 enterRule();
1214}
1215@after {
1216 leaveRule();
1217}:
1218 (
1219 (
1220 (
1221 (
1222 (
1223 {
1224 if ($current==null) {
1225 $current = createModelElement(grammarAccess.getAssertionRule());
1226 }
1227 }
1228 {
1229 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
1230 }
1231 ruleQualifiedName
1232 {
1233 afterParserOrEnumRuleCall();
1234 }
1235 )
1236 )
1237 otherlv_1='('
1238 {
1239 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
1240 }
1241 (
1242 (
1243 (
1244 {
1245 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsAssertionArgumentParserRuleCall_0_0_2_0_0());
1246 }
1247 lv_arguments_2_0=ruleAssertionArgument
1248 {
1249 if ($current==null) {
1250 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1251 }
1252 add(
1253 $current,
1254 "arguments",
1255 lv_arguments_2_0,
1256 "org.eclipse.viatra.solver.language.Problem.AssertionArgument");
1257 afterParserOrEnumRuleCall();
1258 }
1259 )
1260 )
1261 (
1262 otherlv_3=','
1263 {
1264 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
1265 }
1266 (
1267 (
1268 {
1269 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsAssertionArgumentParserRuleCall_0_0_2_1_1_0());
1270 }
1271 lv_arguments_4_0=ruleAssertionArgument
1272 {
1273 if ($current==null) {
1274 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1275 }
1276 add(
1277 $current,
1278 "arguments",
1279 lv_arguments_4_0,
1280 "org.eclipse.viatra.solver.language.Problem.AssertionArgument");
1281 afterParserOrEnumRuleCall();
1282 }
1283 )
1284 )
1285 )*
1286 )?
1287 otherlv_5=')'
1288 {
1289 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
1290 }
1291 otherlv_6=':'
1292 {
1293 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
1294 }
1295 (
1296 (
1297 {
1298 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
1299 }
1300 lv_value_7_0=ruleLogicValue
1301 {
1302 if ($current==null) {
1303 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1304 }
1305 set(
1306 $current,
1307 "value",
1308 lv_value_7_0,
1309 "org.eclipse.viatra.solver.language.Problem.LogicValue");
1310 afterParserOrEnumRuleCall();
1311 }
1312 )
1313 )
1314 )
1315 |
1316 (
1317 (
1318 (
1319 {
1320 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
1321 }
1322 lv_value_8_0=ruleShortLogicValue
1323 {
1324 if ($current==null) {
1325 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1326 }
1327 set(
1328 $current,
1329 "value",
1330 lv_value_8_0,
1331 "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
1332 afterParserOrEnumRuleCall();
1333 }
1334 )
1335 )?
1336 (
1337 (
1338 {
1339 if ($current==null) {
1340 $current = createModelElement(grammarAccess.getAssertionRule());
1341 }
1342 }
1343 {
1344 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
1345 }
1346 ruleQualifiedName
1347 {
1348 afterParserOrEnumRuleCall();
1349 }
1350 )
1351 )
1352 otherlv_10='('
1353 {
1354 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
1355 }
1356 (
1357 (
1358 (
1359 {
1360 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsAssertionArgumentParserRuleCall_0_1_3_0_0());
1361 }
1362 lv_arguments_11_0=ruleAssertionArgument
1363 {
1364 if ($current==null) {
1365 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1366 }
1367 add(
1368 $current,
1369 "arguments",
1370 lv_arguments_11_0,
1371 "org.eclipse.viatra.solver.language.Problem.AssertionArgument");
1372 afterParserOrEnumRuleCall();
1373 }
1374 )
1375 )
1376 (
1377 otherlv_12=','
1378 {
1379 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
1380 }
1381 (
1382 (
1383 {
1384 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsAssertionArgumentParserRuleCall_0_1_3_1_1_0());
1385 }
1386 lv_arguments_13_0=ruleAssertionArgument
1387 {
1388 if ($current==null) {
1389 $current = createModelElementForParent(grammarAccess.getAssertionRule());
1390 }
1391 add(
1392 $current,
1393 "arguments",
1394 lv_arguments_13_0,
1395 "org.eclipse.viatra.solver.language.Problem.AssertionArgument");
1396 afterParserOrEnumRuleCall();
1397 }
1398 )
1399 )
1400 )*
1401 )?
1402 otherlv_14=')'
1403 {
1404 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
1405 }
1406 )
1407 )
1408 otherlv_15='.'
1409 {
1410 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
1411 }
1412 )
1413;
1414
1415// Entry rule entryRuleAssertionArgument
1416entryRuleAssertionArgument returns [EObject current=null]:
1417 { newCompositeNode(grammarAccess.getAssertionArgumentRule()); }
1418 iv_ruleAssertionArgument=ruleAssertionArgument
1419 { $current=$iv_ruleAssertionArgument.current; }
1420 EOF;
1421
1422// Rule AssertionArgument
1423ruleAssertionArgument returns [EObject current=null]
1424@init {
1425 enterRule();
1426}
1427@after {
1428 leaveRule();
1429}:
1430 (
1431 {
1432 newCompositeNode(grammarAccess.getAssertionArgumentAccess().getNodeAssertionArgumentParserRuleCall_0());
1433 }
1434 this_NodeAssertionArgument_0=ruleNodeAssertionArgument
1435 {
1436 $current = $this_NodeAssertionArgument_0.current;
1437 afterParserOrEnumRuleCall();
1438 }
1439 |
1440 {
1441 newCompositeNode(grammarAccess.getAssertionArgumentAccess().getConstantAssertionArgumentParserRuleCall_1());
1442 }
1443 this_ConstantAssertionArgument_1=ruleConstantAssertionArgument
1444 {
1445 $current = $this_ConstantAssertionArgument_1.current;
1446 afterParserOrEnumRuleCall();
1447 }
1448 )
1449;
1450
1451// Entry rule entryRuleNodeAssertionArgument
1452entryRuleNodeAssertionArgument returns [EObject current=null]:
1453 { newCompositeNode(grammarAccess.getNodeAssertionArgumentRule()); }
1454 iv_ruleNodeAssertionArgument=ruleNodeAssertionArgument
1455 { $current=$iv_ruleNodeAssertionArgument.current; }
1456 EOF;
1457
1458// Rule NodeAssertionArgument
1459ruleNodeAssertionArgument returns [EObject current=null]
1460@init {
1461 enterRule();
1462}
1463@after {
1464 leaveRule();
1465}:
1466 (
1467 (
1468 {
1469 if ($current==null) {
1470 $current = createModelElement(grammarAccess.getNodeAssertionArgumentRule());
1471 }
1472 }
1473 {
1474 newCompositeNode(grammarAccess.getNodeAssertionArgumentAccess().getNodeNodeCrossReference_0());
1475 }
1476 ruleQualifiedName
1477 {
1478 afterParserOrEnumRuleCall();
1479 }
1480 )
1481 )
1482;
1483
1484// Entry rule entryRuleConstantAssertionArgument
1485entryRuleConstantAssertionArgument returns [EObject current=null]:
1486 { newCompositeNode(grammarAccess.getConstantAssertionArgumentRule()); }
1487 iv_ruleConstantAssertionArgument=ruleConstantAssertionArgument
1488 { $current=$iv_ruleConstantAssertionArgument.current; }
1489 EOF;
1490
1491// Rule ConstantAssertionArgument
1492ruleConstantAssertionArgument returns [EObject current=null]
1493@init {
1494 enterRule();
1495}
1496@after {
1497 leaveRule();
1498}:
1499 (
1500 (
1501 {
1502 newCompositeNode(grammarAccess.getConstantAssertionArgumentAccess().getConstantConstantParserRuleCall_0());
1503 }
1504 lv_constant_0_0=ruleConstant
1505 {
1506 if ($current==null) {
1507 $current = createModelElementForParent(grammarAccess.getConstantAssertionArgumentRule());
1508 }
1509 set(
1510 $current,
1511 "constant",
1512 lv_constant_0_0,
1513 "org.eclipse.viatra.solver.language.Problem.Constant");
1514 afterParserOrEnumRuleCall();
1515 }
1516 )
1517 )
1518;
1519
1520// Entry rule entryRuleNodeValueAssertion
1521entryRuleNodeValueAssertion returns [EObject current=null]:
1522 { newCompositeNode(grammarAccess.getNodeValueAssertionRule()); }
1523 iv_ruleNodeValueAssertion=ruleNodeValueAssertion
1524 { $current=$iv_ruleNodeValueAssertion.current; }
1525 EOF;
1526
1527// Rule NodeValueAssertion
1528ruleNodeValueAssertion returns [EObject current=null]
1529@init {
1530 enterRule();
1531}
1532@after {
1533 leaveRule();
1534}:
1535 (
1536 (
1537 (
1538 {
1539 if ($current==null) {
1540 $current = createModelElement(grammarAccess.getNodeValueAssertionRule());
1541 }
1542 }
1543 {
1544 newCompositeNode(grammarAccess.getNodeValueAssertionAccess().getNodeNodeCrossReference_0_0());
1545 }
1546 ruleQualifiedName
1547 {
1548 afterParserOrEnumRuleCall();
1549 }
1550 )
1551 )
1552 otherlv_1=':'
1553 {
1554 newLeafNode(otherlv_1, grammarAccess.getNodeValueAssertionAccess().getColonKeyword_1());
1555 }
1556 (
1557 (
1558 {
1559 newCompositeNode(grammarAccess.getNodeValueAssertionAccess().getValueConstantParserRuleCall_2_0());
1560 }
1561 lv_value_2_0=ruleConstant
1562 {
1563 if ($current==null) {
1564 $current = createModelElementForParent(grammarAccess.getNodeValueAssertionRule());
1565 }
1566 set(
1567 $current,
1568 "value",
1569 lv_value_2_0,
1570 "org.eclipse.viatra.solver.language.Problem.Constant");
1571 afterParserOrEnumRuleCall();
1572 }
1573 )
1574 )
1575 otherlv_3='.'
1576 {
1577 newLeafNode(otherlv_3, grammarAccess.getNodeValueAssertionAccess().getFullStopKeyword_3());
1578 }
1579 )
1580;
1581
1582// Entry rule entryRuleConstant
1583entryRuleConstant returns [EObject current=null]:
1584 { newCompositeNode(grammarAccess.getConstantRule()); }
1585 iv_ruleConstant=ruleConstant
1586 { $current=$iv_ruleConstant.current; }
1587 EOF;
1588
1589// Rule Constant
1590ruleConstant returns [EObject current=null]
1591@init {
1592 enterRule();
1593}
1594@after {
1595 leaveRule();
1596}:
1597 (
1598 {
1599 newCompositeNode(grammarAccess.getConstantAccess().getRealConstantParserRuleCall_0());
1600 }
1601 this_RealConstant_0=ruleRealConstant
1602 {
1603 $current = $this_RealConstant_0.current;
1604 afterParserOrEnumRuleCall();
1605 }
1606 |
1607 {
1608 newCompositeNode(grammarAccess.getConstantAccess().getIntConstantParserRuleCall_1());
1609 }
1610 this_IntConstant_1=ruleIntConstant
1611 {
1612 $current = $this_IntConstant_1.current;
1613 afterParserOrEnumRuleCall();
1614 }
1615 |
1616 {
1617 newCompositeNode(grammarAccess.getConstantAccess().getStringConstantParserRuleCall_2());
1618 }
1619 this_StringConstant_2=ruleStringConstant
1620 {
1621 $current = $this_StringConstant_2.current;
1622 afterParserOrEnumRuleCall();
1623 }
1624 )
1625;
1626
1627// Entry rule entryRuleIntConstant
1628entryRuleIntConstant returns [EObject current=null]:
1629 { newCompositeNode(grammarAccess.getIntConstantRule()); }
1630 iv_ruleIntConstant=ruleIntConstant
1631 { $current=$iv_ruleIntConstant.current; }
1632 EOF;
1633
1634// Rule IntConstant
1635ruleIntConstant returns [EObject current=null]
1636@init {
1637 enterRule();
1638}
1639@after {
1640 leaveRule();
1641}:
1642 (
1643 (
1644 {
1645 newCompositeNode(grammarAccess.getIntConstantAccess().getIntValueIntegerParserRuleCall_0());
1646 }
1647 lv_intValue_0_0=ruleInteger
1648 {
1649 if ($current==null) {
1650 $current = createModelElementForParent(grammarAccess.getIntConstantRule());
1651 }
1652 set(
1653 $current,
1654 "intValue",
1655 lv_intValue_0_0,
1656 "org.eclipse.viatra.solver.language.Problem.Integer");
1657 afterParserOrEnumRuleCall();
1658 }
1659 )
1660 )
1661;
1662
1663// Entry rule entryRuleRealConstant
1664entryRuleRealConstant returns [EObject current=null]:
1665 { newCompositeNode(grammarAccess.getRealConstantRule()); }
1666 iv_ruleRealConstant=ruleRealConstant
1667 { $current=$iv_ruleRealConstant.current; }
1668 EOF;
1669
1670// Rule RealConstant
1671ruleRealConstant returns [EObject current=null]
1672@init {
1673 enterRule();
1674}
1675@after {
1676 leaveRule();
1677}:
1678 (
1679 (
1680 {
1681 newCompositeNode(grammarAccess.getRealConstantAccess().getRealValueRealParserRuleCall_0());
1682 }
1683 lv_realValue_0_0=ruleReal
1684 {
1685 if ($current==null) {
1686 $current = createModelElementForParent(grammarAccess.getRealConstantRule());
1687 }
1688 set(
1689 $current,
1690 "realValue",
1691 lv_realValue_0_0,
1692 "org.eclipse.viatra.solver.language.Problem.Real");
1693 afterParserOrEnumRuleCall();
1694 }
1695 )
1696 )
1697;
1698
1699// Entry rule entryRuleStringConstant
1700entryRuleStringConstant returns [EObject current=null]:
1701 { newCompositeNode(grammarAccess.getStringConstantRule()); }
1702 iv_ruleStringConstant=ruleStringConstant
1703 { $current=$iv_ruleStringConstant.current; }
1704 EOF;
1705
1706// Rule StringConstant
1707ruleStringConstant returns [EObject current=null]
1708@init {
1709 enterRule();
1710}
1711@after {
1712 leaveRule();
1713}:
1714 (
1715 (
1716 lv_stringValue_0_0=RULE_STRING
1717 {
1718 newLeafNode(lv_stringValue_0_0, grammarAccess.getStringConstantAccess().getStringValueSTRINGTerminalRuleCall_0());
1719 }
1720 {
1721 if ($current==null) {
1722 $current = createModelElement(grammarAccess.getStringConstantRule());
1723 }
1724 setWithLastConsumed(
1725 $current,
1726 "stringValue",
1727 lv_stringValue_0_0,
1728 "org.eclipse.viatra.solver.language.Problem.STRING");
1729 }
1730 )
1731 )
1732;
1733
1734// Entry rule entryRuleScopeDeclaration
1735entryRuleScopeDeclaration returns [EObject current=null]:
1736 { newCompositeNode(grammarAccess.getScopeDeclarationRule()); }
1737 iv_ruleScopeDeclaration=ruleScopeDeclaration
1738 { $current=$iv_ruleScopeDeclaration.current; }
1739 EOF;
1740
1741// Rule ScopeDeclaration
1742ruleScopeDeclaration returns [EObject current=null]
1743@init {
1744 enterRule();
1745}
1746@after {
1747 leaveRule();
1748}:
1749 (
1750 otherlv_0='scope'
1751 {
1752 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
1753 }
1754 (
1755 (
1756 {
1757 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
1758 }
1759 lv_typeScopes_1_0=ruleTypeScope
1760 {
1761 if ($current==null) {
1762 $current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
1763 }
1764 add(
1765 $current,
1766 "typeScopes",
1767 lv_typeScopes_1_0,
1768 "org.eclipse.viatra.solver.language.Problem.TypeScope");
1769 afterParserOrEnumRuleCall();
1770 }
1771 )
1772 )
1773 (
1774 otherlv_2=','
1775 {
1776 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
1777 }
1778 (
1779 (
1780 {
1781 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
1782 }
1783 lv_typeScopes_3_0=ruleTypeScope
1784 {
1785 if ($current==null) {
1786 $current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
1787 }
1788 add(
1789 $current,
1790 "typeScopes",
1791 lv_typeScopes_3_0,
1792 "org.eclipse.viatra.solver.language.Problem.TypeScope");
1793 afterParserOrEnumRuleCall();
1794 }
1795 )
1796 )
1797 )*
1798 otherlv_4='.'
1799 {
1800 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
1801 }
1802 )
1803;
1804
1805// Entry rule entryRuleTypeScope
1806entryRuleTypeScope returns [EObject current=null]:
1807 { newCompositeNode(grammarAccess.getTypeScopeRule()); }
1808 iv_ruleTypeScope=ruleTypeScope
1809 { $current=$iv_ruleTypeScope.current; }
1810 EOF;
1811
1812// Rule TypeScope
1813ruleTypeScope returns [EObject current=null]
1814@init {
1815 enterRule();
1816}
1817@after {
1818 leaveRule();
1819}:
1820 (
1821 (
1822 (
1823 {
1824 if ($current==null) {
1825 $current = createModelElement(grammarAccess.getTypeScopeRule());
1826 }
1827 }
1828 otherlv_0=RULE_ID
1829 {
1830 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
1831 }
1832 )
1833 )
1834 (
1835 (
1836 (
1837 lv_increment_1_0='+='
1838 {
1839 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
1840 }
1841 {
1842 if ($current==null) {
1843 $current = createModelElement(grammarAccess.getTypeScopeRule());
1844 }
1845 setWithLastConsumed($current, "increment", lv_increment_1_0 != null, "+=");
1846 }
1847 )
1848 )
1849 |
1850 otherlv_2='='
1851 {
1852 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
1853 }
1854 )
1855 (
1856 (
1857 {
1858 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0());
1859 }
1860 lv_multiplicity_3_0=ruleDefiniteMultiplicity
1861 {
1862 if ($current==null) {
1863 $current = createModelElementForParent(grammarAccess.getTypeScopeRule());
1864 }
1865 set(
1866 $current,
1867 "multiplicity",
1868 lv_multiplicity_3_0,
1869 "org.eclipse.viatra.solver.language.Problem.DefiniteMultiplicity");
1870 afterParserOrEnumRuleCall();
1871 }
1872 )
1873 )
1874 )
1875;
1876
1877// Entry rule entryRuleMultiplicity
1878entryRuleMultiplicity returns [EObject current=null]:
1879 { newCompositeNode(grammarAccess.getMultiplicityRule()); }
1880 iv_ruleMultiplicity=ruleMultiplicity
1881 { $current=$iv_ruleMultiplicity.current; }
1882 EOF;
1883
1884// Rule Multiplicity
1885ruleMultiplicity returns [EObject current=null]
1886@init {
1887 enterRule();
1888}
1889@after {
1890 leaveRule();
1891}:
1892 (
1893 {
1894 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0());
1895 }
1896 this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity
1897 {
1898 $current = $this_UnboundedMultiplicity_0.current;
1899 afterParserOrEnumRuleCall();
1900 }
1901 |
1902 {
1903 newCompositeNode(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1());
1904 }
1905 this_DefiniteMultiplicity_1=ruleDefiniteMultiplicity
1906 {
1907 $current = $this_DefiniteMultiplicity_1.current;
1908 afterParserOrEnumRuleCall();
1909 }
1910 )
1911;
1912
1913// Entry rule entryRuleDefiniteMultiplicity
1914entryRuleDefiniteMultiplicity returns [EObject current=null]:
1915 { newCompositeNode(grammarAccess.getDefiniteMultiplicityRule()); }
1916 iv_ruleDefiniteMultiplicity=ruleDefiniteMultiplicity
1917 { $current=$iv_ruleDefiniteMultiplicity.current; }
1918 EOF;
1919
1920// Rule DefiniteMultiplicity
1921ruleDefiniteMultiplicity returns [EObject current=null]
1922@init {
1923 enterRule();
1924}
1925@after {
1926 leaveRule();
1927}:
1928 (
1929 {
1930 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
1931 }
1932 this_RangeMultiplicity_0=ruleRangeMultiplicity
1933 {
1934 $current = $this_RangeMultiplicity_0.current;
1935 afterParserOrEnumRuleCall();
1936 }
1937 |
1938 {
1939 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
1940 }
1941 this_ExactMultiplicity_1=ruleExactMultiplicity
1942 {
1943 $current = $this_ExactMultiplicity_1.current;
1944 afterParserOrEnumRuleCall();
1945 }
1946 )
1947;
1948
1949// Entry rule entryRuleUnboundedMultiplicity
1950entryRuleUnboundedMultiplicity returns [EObject current=null]:
1951 { newCompositeNode(grammarAccess.getUnboundedMultiplicityRule()); }
1952 iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity
1953 { $current=$iv_ruleUnboundedMultiplicity.current; }
1954 EOF;
1955
1956// Rule UnboundedMultiplicity
1957ruleUnboundedMultiplicity returns [EObject current=null]
1958@init {
1959 enterRule();
1960}
1961@after {
1962 leaveRule();
1963}:
1964 (
1965 {
1966 $current = forceCreateModelElement(
1967 grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction(),
1968 $current);
1969 }
1970 )
1971;
1972
1973// Entry rule entryRuleRangeMultiplicity
1974entryRuleRangeMultiplicity returns [EObject current=null]:
1975 { newCompositeNode(grammarAccess.getRangeMultiplicityRule()); }
1976 iv_ruleRangeMultiplicity=ruleRangeMultiplicity
1977 { $current=$iv_ruleRangeMultiplicity.current; }
1978 EOF;
1979
1980// Rule RangeMultiplicity
1981ruleRangeMultiplicity returns [EObject current=null]
1982@init {
1983 enterRule();
1984}
1985@after {
1986 leaveRule();
1987}:
1988 (
1989 (
1990 (
1991 lv_lowerBound_0_0=RULE_INT
1992 {
1993 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
1994 }
1995 {
1996 if ($current==null) {
1997 $current = createModelElement(grammarAccess.getRangeMultiplicityRule());
1998 }
1999 setWithLastConsumed(
2000 $current,
2001 "lowerBound",
2002 lv_lowerBound_0_0,
2003 "org.eclipse.xtext.common.Terminals.INT");
2004 }
2005 )
2006 )
2007 otherlv_1='..'
2008 {
2009 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
2010 }
2011 (
2012 (
2013 {
2014 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
2015 }
2016 lv_upperBound_2_0=ruleUpperBound
2017 {
2018 if ($current==null) {
2019 $current = createModelElementForParent(grammarAccess.getRangeMultiplicityRule());
2020 }
2021 set(
2022 $current,
2023 "upperBound",
2024 lv_upperBound_2_0,
2025 "org.eclipse.viatra.solver.language.Problem.UpperBound");
2026 afterParserOrEnumRuleCall();
2027 }
2028 )
2029 )
2030 )
2031;
2032
2033// Entry rule entryRuleExactMultiplicity
2034entryRuleExactMultiplicity returns [EObject current=null]:
2035 { newCompositeNode(grammarAccess.getExactMultiplicityRule()); }
2036 iv_ruleExactMultiplicity=ruleExactMultiplicity
2037 { $current=$iv_ruleExactMultiplicity.current; }
2038 EOF;
2039
2040// Rule ExactMultiplicity
2041ruleExactMultiplicity returns [EObject current=null]
2042@init {
2043 enterRule();
2044}
2045@after {
2046 leaveRule();
2047}:
2048 (
2049 (
2050 lv_exactValue_0_0=RULE_INT
2051 {
2052 newLeafNode(lv_exactValue_0_0, grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
2053 }
2054 {
2055 if ($current==null) {
2056 $current = createModelElement(grammarAccess.getExactMultiplicityRule());
2057 }
2058 setWithLastConsumed(
2059 $current,
2060 "exactValue",
2061 lv_exactValue_0_0,
2062 "org.eclipse.xtext.common.Terminals.INT");
2063 }
2064 )
2065 )
2066;
2067
2068// Entry rule entryRuleUpperBound
2069entryRuleUpperBound returns [String current=null]:
2070 { newCompositeNode(grammarAccess.getUpperBoundRule()); }
2071 iv_ruleUpperBound=ruleUpperBound
2072 { $current=$iv_ruleUpperBound.current.getText(); }
2073 EOF;
2074
2075// Rule UpperBound
2076ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
2077@init {
2078 enterRule();
2079}
2080@after {
2081 leaveRule();
2082}:
2083 (
2084 this_INT_0=RULE_INT
2085 {
2086 $current.merge(this_INT_0);
2087 }
2088 {
2089 newLeafNode(this_INT_0, grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
2090 }
2091 |
2092 kw='*'
2093 {
2094 $current.merge(kw);
2095 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
2096 }
2097 )
2098;
2099
2100// Entry rule entryRuleQualifiedName
2101entryRuleQualifiedName returns [String current=null]@init {
2102 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
2103}:
2104 { newCompositeNode(grammarAccess.getQualifiedNameRule()); }
2105 iv_ruleQualifiedName=ruleQualifiedName
2106 { $current=$iv_ruleQualifiedName.current.getText(); }
2107 EOF;
2108finally {
2109 myHiddenTokenState.restore();
2110}
2111
2112// Rule QualifiedName
2113ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
2114@init {
2115 enterRule();
2116 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
2117}
2118@after {
2119 leaveRule();
2120}:
2121 (
2122 this_QUOTED_ID_0=RULE_QUOTED_ID
2123 {
2124 $current.merge(this_QUOTED_ID_0);
2125 }
2126 {
2127 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_0());
2128 }
2129 |
2130 (
2131 {
2132 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0());
2133 }
2134 this_Identifier_1=ruleIdentifier
2135 {
2136 $current.merge(this_Identifier_1);
2137 }
2138 {
2139 afterParserOrEnumRuleCall();
2140 }
2141 (
2142 kw='::'
2143 {
2144 $current.merge(kw);
2145 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0());
2146 }
2147 {
2148 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
2149 }
2150 this_Identifier_3=ruleIdentifier
2151 {
2152 $current.merge(this_Identifier_3);
2153 }
2154 {
2155 afterParserOrEnumRuleCall();
2156 }
2157 )*
2158 )
2159 )
2160;
2161finally {
2162 myHiddenTokenState.restore();
2163}
2164
2165// Entry rule entryRuleIdentifier
2166entryRuleIdentifier returns [String current=null]:
2167 { newCompositeNode(grammarAccess.getIdentifierRule()); }
2168 iv_ruleIdentifier=ruleIdentifier
2169 { $current=$iv_ruleIdentifier.current.getText(); }
2170 EOF;
2171
2172// Rule Identifier
2173ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
2174@init {
2175 enterRule();
2176}
2177@after {
2178 leaveRule();
2179}:
2180 (
2181 this_ID_0=RULE_ID
2182 {
2183 $current.merge(this_ID_0);
2184 }
2185 {
2186 newLeafNode(this_ID_0, grammarAccess.getIdentifierAccess().getIDTerminalRuleCall_0());
2187 }
2188 |
2189 kw='true'
2190 {
2191 $current.merge(kw);
2192 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1());
2193 }
2194 |
2195 kw='false'
2196 {
2197 $current.merge(kw);
2198 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
2199 }
2200 )
2201;
2202
2203// Entry rule entryRuleInteger
2204entryRuleInteger returns [String current=null]@init {
2205 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
2206}:
2207 { newCompositeNode(grammarAccess.getIntegerRule()); }
2208 iv_ruleInteger=ruleInteger
2209 { $current=$iv_ruleInteger.current.getText(); }
2210 EOF;
2211finally {
2212 myHiddenTokenState.restore();
2213}
2214
2215// Rule Integer
2216ruleInteger returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
2217@init {
2218 enterRule();
2219 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
2220}
2221@after {
2222 leaveRule();
2223}:
2224 (
2225 (
2226 kw='-'
2227 {
2228 $current.merge(kw);
2229 newLeafNode(kw, grammarAccess.getIntegerAccess().getHyphenMinusKeyword_0());
2230 }
2231 )?
2232 this_INT_1=RULE_INT
2233 {
2234 $current.merge(this_INT_1);
2235 }
2236 {
2237 newLeafNode(this_INT_1, grammarAccess.getIntegerAccess().getINTTerminalRuleCall_1());
2238 }
2239 )
2240;
2241finally {
2242 myHiddenTokenState.restore();
2243}
2244
2245// Entry rule entryRuleReal
2246entryRuleReal returns [String current=null]:
2247 { newCompositeNode(grammarAccess.getRealRule()); }
2248 iv_ruleReal=ruleReal
2249 { $current=$iv_ruleReal.current.getText(); }
2250 EOF;
2251
2252// Rule Real
2253ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
2254@init {
2255 enterRule();
2256}
2257@after {
2258 leaveRule();
2259}:
2260 (
2261 (
2262 kw='-'
2263 {
2264 $current.merge(kw);
2265 newLeafNode(kw, grammarAccess.getRealAccess().getHyphenMinusKeyword_0());
2266 }
2267 )?
2268 (
2269 this_EXPONENTIAL_1=RULE_EXPONENTIAL
2270 {
2271 $current.merge(this_EXPONENTIAL_1);
2272 }
2273 {
2274 newLeafNode(this_EXPONENTIAL_1, grammarAccess.getRealAccess().getEXPONENTIALTerminalRuleCall_1_0());
2275 }
2276 |
2277 (
2278 this_INT_2=RULE_INT
2279 {
2280 $current.merge(this_INT_2);
2281 }
2282 {
2283 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1_0());
2284 }
2285 kw='.'
2286 {
2287 $current.merge(kw);
2288 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_1_1());
2289 }
2290 (
2291 this_INT_4=RULE_INT
2292 {
2293 $current.merge(this_INT_4);
2294 }
2295 {
2296 newLeafNode(this_INT_4, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1_2_0());
2297 }
2298 |
2299 this_EXPONENTIAL_5=RULE_EXPONENTIAL
2300 {
2301 $current.merge(this_EXPONENTIAL_5);
2302 }
2303 {
2304 newLeafNode(this_EXPONENTIAL_5, grammarAccess.getRealAccess().getEXPONENTIALTerminalRuleCall_1_1_2_1());
2305 }
2306 )
2307 )
2308 )
2309 )
2310;
2311
2312// Rule LogicValue
2313ruleLogicValue returns [Enumerator current=null]
2314@init {
2315 enterRule();
2316}
2317@after {
2318 leaveRule();
2319}:
2320 (
2321 (
2322 enumLiteral_0='true'
2323 {
2324 $current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
2325 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
2326 }
2327 )
2328 |
2329 (
2330 enumLiteral_1='false'
2331 {
2332 $current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
2333 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
2334 }
2335 )
2336 |
2337 (
2338 enumLiteral_2='unknown'
2339 {
2340 $current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
2341 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
2342 }
2343 )
2344 )
2345;
2346
2347// Rule ShortLogicValue
2348ruleShortLogicValue returns [Enumerator current=null]
2349@init {
2350 enterRule();
2351}
2352@after {
2353 leaveRule();
2354}:
2355 (
2356 (
2357 enumLiteral_0='!'
2358 {
2359 $current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
2360 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
2361 }
2362 )
2363 |
2364 (
2365 enumLiteral_1='?'
2366 {
2367 $current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
2368 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
2369 }
2370 )
2371 )
2372;
2373
2374RULE_ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
2375
2376RULE_EXPONENTIAL : RULE_INT ('e'|'E') ('+'|'-')? RULE_INT;
2377
2378RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"';
2379
2380RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\'';
2381
2382RULE_SL_COMMENT : ('%'|'//') ~(('\n'|'\r'))* ('\r'? '\n')?;
2383
2384RULE_INT : ('0'..'9')+;
2385
2386RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
2387
2388RULE_WS : (' '|'\t'|'\r'|'\n')+;
2389
2390RULE_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
deleted file mode 100644
index 7ceb60d6..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
+++ /dev/null
@@ -1,77 +0,0 @@
1'!'=33
2'('=30
3')'=31
4'*'=40
5'+'=34
6'+='=37
7','=18
8'-'=44
9'.'=14
10'..'=39
11':'=35
12':-'=32
13'::'=41
14';'=20
15'='=38
16'?'=46
17'['=25
18']'=26
19'abstract'=15
20'class'=16
21'contains'=23
22'enum'=22
23'error'=28
24'extends'=17
25'false'=43
26'opposite'=27
27'pred'=29
28'problem'=13
29'refers'=24
30'scope'=36
31'true'=42
32'unknown'=45
33'{'=19
34'}'=21
35RULE_ANY_OTHER=12
36RULE_EXPONENTIAL=8
37RULE_ID=5
38RULE_INT=6
39RULE_ML_COMMENT=10
40RULE_QUOTED_ID=7
41RULE_SL_COMMENT=9
42RULE_STRING=4
43RULE_WS=11
44T__13=13
45T__14=14
46T__15=15
47T__16=16
48T__17=17
49T__18=18
50T__19=19
51T__20=20
52T__21=21
53T__22=22
54T__23=23
55T__24=24
56T__25=25
57T__26=26
58T__27=27
59T__28=28
60T__29=29
61T__30=30
62T__31=31
63T__32=32
64T__33=33
65T__34=34
66T__35=35
67T__36=36
68T__37=37
69T__38=38
70T__39=39
71T__40=40
72T__41=41
73T__42=42
74T__43=43
75T__44=44
76T__45=45
77T__46=46
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
deleted file mode 100644
index cc9b39b6..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java
+++ /dev/null
@@ -1,1940 +0,0 @@
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__13=13;
21 public static final int T__14=14;
22 public static final int RULE_EXPONENTIAL=8;
23 public static final int RULE_ID=5;
24 public static final int RULE_QUOTED_ID=7;
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=6;
29 public static final int T__29=29;
30 public static final int T__22=22;
31 public static final int RULE_ML_COMMENT=10;
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=4;
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=11;
51 public static final int RULE_ANY_OTHER=12;
52 public static final int T__44=44;
53 public static final int T__45=45;
54 public static final int T__46=46;
55 public static final int T__40=40;
56 public static final int T__41=41;
57 public static final int T__42=42;
58 public static final int T__43=43;
59
60 // delegates
61 // delegators
62
63 public InternalProblemLexer() {;}
64 public InternalProblemLexer(CharStream input) {
65 this(input, new RecognizerSharedState());
66 }
67 public InternalProblemLexer(CharStream input, RecognizerSharedState state) {
68 super(input,state);
69
70 }
71 public String getGrammarFileName() { return "InternalProblem.g"; }
72
73 // $ANTLR start "T__13"
74 public final void mT__13() throws RecognitionException {
75 try {
76 int _type = T__13;
77 int _channel = DEFAULT_TOKEN_CHANNEL;
78 // InternalProblem.g:11:7: ( 'problem' )
79 // InternalProblem.g:11:9: 'problem'
80 {
81 match("problem");
82
83
84 }
85
86 state.type = _type;
87 state.channel = _channel;
88 }
89 finally {
90 }
91 }
92 // $ANTLR end "T__13"
93
94 // $ANTLR start "T__14"
95 public final void mT__14() throws RecognitionException {
96 try {
97 int _type = T__14;
98 int _channel = DEFAULT_TOKEN_CHANNEL;
99 // InternalProblem.g:12:7: ( '.' )
100 // InternalProblem.g:12:9: '.'
101 {
102 match('.');
103
104 }
105
106 state.type = _type;
107 state.channel = _channel;
108 }
109 finally {
110 }
111 }
112 // $ANTLR end "T__14"
113
114 // $ANTLR start "T__15"
115 public final void mT__15() throws RecognitionException {
116 try {
117 int _type = T__15;
118 int _channel = DEFAULT_TOKEN_CHANNEL;
119 // InternalProblem.g:13:7: ( 'abstract' )
120 // InternalProblem.g:13:9: 'abstract'
121 {
122 match("abstract");
123
124
125 }
126
127 state.type = _type;
128 state.channel = _channel;
129 }
130 finally {
131 }
132 }
133 // $ANTLR end "T__15"
134
135 // $ANTLR start "T__16"
136 public final void mT__16() throws RecognitionException {
137 try {
138 int _type = T__16;
139 int _channel = DEFAULT_TOKEN_CHANNEL;
140 // InternalProblem.g:14:7: ( 'class' )
141 // InternalProblem.g:14:9: 'class'
142 {
143 match("class");
144
145
146 }
147
148 state.type = _type;
149 state.channel = _channel;
150 }
151 finally {
152 }
153 }
154 // $ANTLR end "T__16"
155
156 // $ANTLR start "T__17"
157 public final void mT__17() throws RecognitionException {
158 try {
159 int _type = T__17;
160 int _channel = DEFAULT_TOKEN_CHANNEL;
161 // InternalProblem.g:15:7: ( 'extends' )
162 // InternalProblem.g:15:9: 'extends'
163 {
164 match("extends");
165
166
167 }
168
169 state.type = _type;
170 state.channel = _channel;
171 }
172 finally {
173 }
174 }
175 // $ANTLR end "T__17"
176
177 // $ANTLR start "T__18"
178 public final void mT__18() throws RecognitionException {
179 try {
180 int _type = T__18;
181 int _channel = DEFAULT_TOKEN_CHANNEL;
182 // InternalProblem.g:16:7: ( ',' )
183 // InternalProblem.g:16:9: ','
184 {
185 match(',');
186
187 }
188
189 state.type = _type;
190 state.channel = _channel;
191 }
192 finally {
193 }
194 }
195 // $ANTLR end "T__18"
196
197 // $ANTLR start "T__19"
198 public final void mT__19() throws RecognitionException {
199 try {
200 int _type = T__19;
201 int _channel = DEFAULT_TOKEN_CHANNEL;
202 // InternalProblem.g:17:7: ( '{' )
203 // InternalProblem.g:17:9: '{'
204 {
205 match('{');
206
207 }
208
209 state.type = _type;
210 state.channel = _channel;
211 }
212 finally {
213 }
214 }
215 // $ANTLR end "T__19"
216
217 // $ANTLR start "T__20"
218 public final void mT__20() throws RecognitionException {
219 try {
220 int _type = T__20;
221 int _channel = DEFAULT_TOKEN_CHANNEL;
222 // InternalProblem.g:18:7: ( ';' )
223 // InternalProblem.g:18:9: ';'
224 {
225 match(';');
226
227 }
228
229 state.type = _type;
230 state.channel = _channel;
231 }
232 finally {
233 }
234 }
235 // $ANTLR end "T__20"
236
237 // $ANTLR start "T__21"
238 public final void mT__21() throws RecognitionException {
239 try {
240 int _type = T__21;
241 int _channel = DEFAULT_TOKEN_CHANNEL;
242 // InternalProblem.g:19:7: ( '}' )
243 // InternalProblem.g:19:9: '}'
244 {
245 match('}');
246
247 }
248
249 state.type = _type;
250 state.channel = _channel;
251 }
252 finally {
253 }
254 }
255 // $ANTLR end "T__21"
256
257 // $ANTLR start "T__22"
258 public final void mT__22() throws RecognitionException {
259 try {
260 int _type = T__22;
261 int _channel = DEFAULT_TOKEN_CHANNEL;
262 // InternalProblem.g:20:7: ( 'enum' )
263 // InternalProblem.g:20:9: 'enum'
264 {
265 match("enum");
266
267
268 }
269
270 state.type = _type;
271 state.channel = _channel;
272 }
273 finally {
274 }
275 }
276 // $ANTLR end "T__22"
277
278 // $ANTLR start "T__23"
279 public final void mT__23() throws RecognitionException {
280 try {
281 int _type = T__23;
282 int _channel = DEFAULT_TOKEN_CHANNEL;
283 // InternalProblem.g:21:7: ( 'contains' )
284 // InternalProblem.g:21:9: 'contains'
285 {
286 match("contains");
287
288
289 }
290
291 state.type = _type;
292 state.channel = _channel;
293 }
294 finally {
295 }
296 }
297 // $ANTLR end "T__23"
298
299 // $ANTLR start "T__24"
300 public final void mT__24() throws RecognitionException {
301 try {
302 int _type = T__24;
303 int _channel = DEFAULT_TOKEN_CHANNEL;
304 // InternalProblem.g:22:7: ( 'refers' )
305 // InternalProblem.g:22:9: 'refers'
306 {
307 match("refers");
308
309
310 }
311
312 state.type = _type;
313 state.channel = _channel;
314 }
315 finally {
316 }
317 }
318 // $ANTLR end "T__24"
319
320 // $ANTLR start "T__25"
321 public final void mT__25() throws RecognitionException {
322 try {
323 int _type = T__25;
324 int _channel = DEFAULT_TOKEN_CHANNEL;
325 // InternalProblem.g:23:7: ( '[' )
326 // InternalProblem.g:23:9: '['
327 {
328 match('[');
329
330 }
331
332 state.type = _type;
333 state.channel = _channel;
334 }
335 finally {
336 }
337 }
338 // $ANTLR end "T__25"
339
340 // $ANTLR start "T__26"
341 public final void mT__26() throws RecognitionException {
342 try {
343 int _type = T__26;
344 int _channel = DEFAULT_TOKEN_CHANNEL;
345 // InternalProblem.g:24:7: ( ']' )
346 // InternalProblem.g:24:9: ']'
347 {
348 match(']');
349
350 }
351
352 state.type = _type;
353 state.channel = _channel;
354 }
355 finally {
356 }
357 }
358 // $ANTLR end "T__26"
359
360 // $ANTLR start "T__27"
361 public final void mT__27() throws RecognitionException {
362 try {
363 int _type = T__27;
364 int _channel = DEFAULT_TOKEN_CHANNEL;
365 // InternalProblem.g:25:7: ( 'opposite' )
366 // InternalProblem.g:25:9: 'opposite'
367 {
368 match("opposite");
369
370
371 }
372
373 state.type = _type;
374 state.channel = _channel;
375 }
376 finally {
377 }
378 }
379 // $ANTLR end "T__27"
380
381 // $ANTLR start "T__28"
382 public final void mT__28() throws RecognitionException {
383 try {
384 int _type = T__28;
385 int _channel = DEFAULT_TOKEN_CHANNEL;
386 // InternalProblem.g:26:7: ( 'error' )
387 // InternalProblem.g:26:9: 'error'
388 {
389 match("error");
390
391
392 }
393
394 state.type = _type;
395 state.channel = _channel;
396 }
397 finally {
398 }
399 }
400 // $ANTLR end "T__28"
401
402 // $ANTLR start "T__29"
403 public final void mT__29() throws RecognitionException {
404 try {
405 int _type = T__29;
406 int _channel = DEFAULT_TOKEN_CHANNEL;
407 // InternalProblem.g:27:7: ( 'pred' )
408 // InternalProblem.g:27:9: 'pred'
409 {
410 match("pred");
411
412
413 }
414
415 state.type = _type;
416 state.channel = _channel;
417 }
418 finally {
419 }
420 }
421 // $ANTLR end "T__29"
422
423 // $ANTLR start "T__30"
424 public final void mT__30() throws RecognitionException {
425 try {
426 int _type = T__30;
427 int _channel = DEFAULT_TOKEN_CHANNEL;
428 // InternalProblem.g:28:7: ( '(' )
429 // InternalProblem.g:28:9: '('
430 {
431 match('(');
432
433 }
434
435 state.type = _type;
436 state.channel = _channel;
437 }
438 finally {
439 }
440 }
441 // $ANTLR end "T__30"
442
443 // $ANTLR start "T__31"
444 public final void mT__31() throws RecognitionException {
445 try {
446 int _type = T__31;
447 int _channel = DEFAULT_TOKEN_CHANNEL;
448 // InternalProblem.g:29:7: ( ')' )
449 // InternalProblem.g:29:9: ')'
450 {
451 match(')');
452
453 }
454
455 state.type = _type;
456 state.channel = _channel;
457 }
458 finally {
459 }
460 }
461 // $ANTLR end "T__31"
462
463 // $ANTLR start "T__32"
464 public final void mT__32() throws RecognitionException {
465 try {
466 int _type = T__32;
467 int _channel = DEFAULT_TOKEN_CHANNEL;
468 // InternalProblem.g:30:7: ( ':-' )
469 // InternalProblem.g:30:9: ':-'
470 {
471 match(":-");
472
473
474 }
475
476 state.type = _type;
477 state.channel = _channel;
478 }
479 finally {
480 }
481 }
482 // $ANTLR end "T__32"
483
484 // $ANTLR start "T__33"
485 public final void mT__33() throws RecognitionException {
486 try {
487 int _type = T__33;
488 int _channel = DEFAULT_TOKEN_CHANNEL;
489 // InternalProblem.g:31:7: ( '!' )
490 // InternalProblem.g:31:9: '!'
491 {
492 match('!');
493
494 }
495
496 state.type = _type;
497 state.channel = _channel;
498 }
499 finally {
500 }
501 }
502 // $ANTLR end "T__33"
503
504 // $ANTLR start "T__34"
505 public final void mT__34() throws RecognitionException {
506 try {
507 int _type = T__34;
508 int _channel = DEFAULT_TOKEN_CHANNEL;
509 // InternalProblem.g:32:7: ( '+' )
510 // InternalProblem.g:32:9: '+'
511 {
512 match('+');
513
514 }
515
516 state.type = _type;
517 state.channel = _channel;
518 }
519 finally {
520 }
521 }
522 // $ANTLR end "T__34"
523
524 // $ANTLR start "T__35"
525 public final void mT__35() throws RecognitionException {
526 try {
527 int _type = T__35;
528 int _channel = DEFAULT_TOKEN_CHANNEL;
529 // InternalProblem.g:33:7: ( ':' )
530 // InternalProblem.g:33:9: ':'
531 {
532 match(':');
533
534 }
535
536 state.type = _type;
537 state.channel = _channel;
538 }
539 finally {
540 }
541 }
542 // $ANTLR end "T__35"
543
544 // $ANTLR start "T__36"
545 public final void mT__36() throws RecognitionException {
546 try {
547 int _type = T__36;
548 int _channel = DEFAULT_TOKEN_CHANNEL;
549 // InternalProblem.g:34:7: ( 'scope' )
550 // InternalProblem.g:34:9: 'scope'
551 {
552 match("scope");
553
554
555 }
556
557 state.type = _type;
558 state.channel = _channel;
559 }
560 finally {
561 }
562 }
563 // $ANTLR end "T__36"
564
565 // $ANTLR start "T__37"
566 public final void mT__37() throws RecognitionException {
567 try {
568 int _type = T__37;
569 int _channel = DEFAULT_TOKEN_CHANNEL;
570 // InternalProblem.g:35:7: ( '+=' )
571 // InternalProblem.g:35:9: '+='
572 {
573 match("+=");
574
575
576 }
577
578 state.type = _type;
579 state.channel = _channel;
580 }
581 finally {
582 }
583 }
584 // $ANTLR end "T__37"
585
586 // $ANTLR start "T__38"
587 public final void mT__38() throws RecognitionException {
588 try {
589 int _type = T__38;
590 int _channel = DEFAULT_TOKEN_CHANNEL;
591 // InternalProblem.g:36:7: ( '=' )
592 // InternalProblem.g:36:9: '='
593 {
594 match('=');
595
596 }
597
598 state.type = _type;
599 state.channel = _channel;
600 }
601 finally {
602 }
603 }
604 // $ANTLR end "T__38"
605
606 // $ANTLR start "T__39"
607 public final void mT__39() throws RecognitionException {
608 try {
609 int _type = T__39;
610 int _channel = DEFAULT_TOKEN_CHANNEL;
611 // InternalProblem.g:37:7: ( '..' )
612 // InternalProblem.g:37:9: '..'
613 {
614 match("..");
615
616
617 }
618
619 state.type = _type;
620 state.channel = _channel;
621 }
622 finally {
623 }
624 }
625 // $ANTLR end "T__39"
626
627 // $ANTLR start "T__40"
628 public final void mT__40() throws RecognitionException {
629 try {
630 int _type = T__40;
631 int _channel = DEFAULT_TOKEN_CHANNEL;
632 // InternalProblem.g:38:7: ( '*' )
633 // InternalProblem.g:38:9: '*'
634 {
635 match('*');
636
637 }
638
639 state.type = _type;
640 state.channel = _channel;
641 }
642 finally {
643 }
644 }
645 // $ANTLR end "T__40"
646
647 // $ANTLR start "T__41"
648 public final void mT__41() throws RecognitionException {
649 try {
650 int _type = T__41;
651 int _channel = DEFAULT_TOKEN_CHANNEL;
652 // InternalProblem.g:39:7: ( '::' )
653 // InternalProblem.g:39:9: '::'
654 {
655 match("::");
656
657
658 }
659
660 state.type = _type;
661 state.channel = _channel;
662 }
663 finally {
664 }
665 }
666 // $ANTLR end "T__41"
667
668 // $ANTLR start "T__42"
669 public final void mT__42() throws RecognitionException {
670 try {
671 int _type = T__42;
672 int _channel = DEFAULT_TOKEN_CHANNEL;
673 // InternalProblem.g:40:7: ( 'true' )
674 // InternalProblem.g:40:9: 'true'
675 {
676 match("true");
677
678
679 }
680
681 state.type = _type;
682 state.channel = _channel;
683 }
684 finally {
685 }
686 }
687 // $ANTLR end "T__42"
688
689 // $ANTLR start "T__43"
690 public final void mT__43() throws RecognitionException {
691 try {
692 int _type = T__43;
693 int _channel = DEFAULT_TOKEN_CHANNEL;
694 // InternalProblem.g:41:7: ( 'false' )
695 // InternalProblem.g:41:9: 'false'
696 {
697 match("false");
698
699
700 }
701
702 state.type = _type;
703 state.channel = _channel;
704 }
705 finally {
706 }
707 }
708 // $ANTLR end "T__43"
709
710 // $ANTLR start "T__44"
711 public final void mT__44() throws RecognitionException {
712 try {
713 int _type = T__44;
714 int _channel = DEFAULT_TOKEN_CHANNEL;
715 // InternalProblem.g:42:7: ( '-' )
716 // InternalProblem.g:42:9: '-'
717 {
718 match('-');
719
720 }
721
722 state.type = _type;
723 state.channel = _channel;
724 }
725 finally {
726 }
727 }
728 // $ANTLR end "T__44"
729
730 // $ANTLR start "T__45"
731 public final void mT__45() throws RecognitionException {
732 try {
733 int _type = T__45;
734 int _channel = DEFAULT_TOKEN_CHANNEL;
735 // InternalProblem.g:43:7: ( 'unknown' )
736 // InternalProblem.g:43:9: 'unknown'
737 {
738 match("unknown");
739
740
741 }
742
743 state.type = _type;
744 state.channel = _channel;
745 }
746 finally {
747 }
748 }
749 // $ANTLR end "T__45"
750
751 // $ANTLR start "T__46"
752 public final void mT__46() throws RecognitionException {
753 try {
754 int _type = T__46;
755 int _channel = DEFAULT_TOKEN_CHANNEL;
756 // InternalProblem.g:44:7: ( '?' )
757 // InternalProblem.g:44:9: '?'
758 {
759 match('?');
760
761 }
762
763 state.type = _type;
764 state.channel = _channel;
765 }
766 finally {
767 }
768 }
769 // $ANTLR end "T__46"
770
771 // $ANTLR start "RULE_ID"
772 public final void mRULE_ID() throws RecognitionException {
773 try {
774 int _type = RULE_ID;
775 int _channel = DEFAULT_TOKEN_CHANNEL;
776 // InternalProblem.g:2374:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
777 // InternalProblem.g:2374:11: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
778 {
779 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
780 input.consume();
781
782 }
783 else {
784 MismatchedSetException mse = new MismatchedSetException(null,input);
785 recover(mse);
786 throw mse;}
787
788 // InternalProblem.g:2374:35: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
789 loop1:
790 do {
791 int alt1=2;
792 int LA1_0 = input.LA(1);
793
794 if ( ((LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) {
795 alt1=1;
796 }
797
798
799 switch (alt1) {
800 case 1 :
801 // InternalProblem.g:
802 {
803 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') ) {
804 input.consume();
805
806 }
807 else {
808 MismatchedSetException mse = new MismatchedSetException(null,input);
809 recover(mse);
810 throw mse;}
811
812
813 }
814 break;
815
816 default :
817 break loop1;
818 }
819 } while (true);
820
821
822 }
823
824 state.type = _type;
825 state.channel = _channel;
826 }
827 finally {
828 }
829 }
830 // $ANTLR end "RULE_ID"
831
832 // $ANTLR start "RULE_EXPONENTIAL"
833 public final void mRULE_EXPONENTIAL() throws RecognitionException {
834 try {
835 int _type = RULE_EXPONENTIAL;
836 int _channel = DEFAULT_TOKEN_CHANNEL;
837 // InternalProblem.g:2376:18: ( RULE_INT ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )
838 // InternalProblem.g:2376:20: RULE_INT ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
839 {
840 mRULE_INT();
841 if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
842 input.consume();
843
844 }
845 else {
846 MismatchedSetException mse = new MismatchedSetException(null,input);
847 recover(mse);
848 throw mse;}
849
850 // InternalProblem.g:2376:39: ( '+' | '-' )?
851 int alt2=2;
852 int LA2_0 = input.LA(1);
853
854 if ( (LA2_0=='+'||LA2_0=='-') ) {
855 alt2=1;
856 }
857 switch (alt2) {
858 case 1 :
859 // InternalProblem.g:
860 {
861 if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
862 input.consume();
863
864 }
865 else {
866 MismatchedSetException mse = new MismatchedSetException(null,input);
867 recover(mse);
868 throw mse;}
869
870
871 }
872 break;
873
874 }
875
876 mRULE_INT();
877
878 }
879
880 state.type = _type;
881 state.channel = _channel;
882 }
883 finally {
884 }
885 }
886 // $ANTLR end "RULE_EXPONENTIAL"
887
888 // $ANTLR start "RULE_STRING"
889 public final void mRULE_STRING() throws RecognitionException {
890 try {
891 int _type = RULE_STRING;
892 int _channel = DEFAULT_TOKEN_CHANNEL;
893 // InternalProblem.g:2378:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
894 // InternalProblem.g:2378:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
895 {
896 match('\"');
897 // InternalProblem.g:2378:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
898 loop3:
899 do {
900 int alt3=3;
901 int LA3_0 = input.LA(1);
902
903 if ( (LA3_0=='\\') ) {
904 alt3=1;
905 }
906 else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) {
907 alt3=2;
908 }
909
910
911 switch (alt3) {
912 case 1 :
913 // InternalProblem.g:2378:20: '\\\\' .
914 {
915 match('\\');
916 matchAny();
917
918 }
919 break;
920 case 2 :
921 // InternalProblem.g:2378:27: ~ ( ( '\\\\' | '\"' ) )
922 {
923 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
924 input.consume();
925
926 }
927 else {
928 MismatchedSetException mse = new MismatchedSetException(null,input);
929 recover(mse);
930 throw mse;}
931
932
933 }
934 break;
935
936 default :
937 break loop3;
938 }
939 } while (true);
940
941 match('\"');
942
943 }
944
945 state.type = _type;
946 state.channel = _channel;
947 }
948 finally {
949 }
950 }
951 // $ANTLR end "RULE_STRING"
952
953 // $ANTLR start "RULE_QUOTED_ID"
954 public final void mRULE_QUOTED_ID() throws RecognitionException {
955 try {
956 int _type = RULE_QUOTED_ID;
957 int _channel = DEFAULT_TOKEN_CHANNEL;
958 // InternalProblem.g:2380:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
959 // InternalProblem.g:2380:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
960 {
961 match('\'');
962 // InternalProblem.g:2380:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
963 loop4:
964 do {
965 int alt4=3;
966 int LA4_0 = input.LA(1);
967
968 if ( (LA4_0=='\\') ) {
969 alt4=1;
970 }
971 else if ( ((LA4_0>='\u0000' && LA4_0<='&')||(LA4_0>='(' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
972 alt4=2;
973 }
974
975
976 switch (alt4) {
977 case 1 :
978 // InternalProblem.g:2380:24: '\\\\' .
979 {
980 match('\\');
981 matchAny();
982
983 }
984 break;
985 case 2 :
986 // InternalProblem.g:2380:31: ~ ( ( '\\\\' | '\\'' ) )
987 {
988 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
989 input.consume();
990
991 }
992 else {
993 MismatchedSetException mse = new MismatchedSetException(null,input);
994 recover(mse);
995 throw mse;}
996
997
998 }
999 break;
1000
1001 default :
1002 break loop4;
1003 }
1004 } while (true);
1005
1006 match('\'');
1007
1008 }
1009
1010 state.type = _type;
1011 state.channel = _channel;
1012 }
1013 finally {
1014 }
1015 }
1016 // $ANTLR end "RULE_QUOTED_ID"
1017
1018 // $ANTLR start "RULE_SL_COMMENT"
1019 public final void mRULE_SL_COMMENT() throws RecognitionException {
1020 try {
1021 int _type = RULE_SL_COMMENT;
1022 int _channel = DEFAULT_TOKEN_CHANNEL;
1023 // InternalProblem.g:2382:17: ( ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
1024 // InternalProblem.g:2382:19: ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1025 {
1026 // InternalProblem.g:2382:19: ( '%' | '//' )
1027 int alt5=2;
1028 int LA5_0 = input.LA(1);
1029
1030 if ( (LA5_0=='%') ) {
1031 alt5=1;
1032 }
1033 else if ( (LA5_0=='/') ) {
1034 alt5=2;
1035 }
1036 else {
1037 NoViableAltException nvae =
1038 new NoViableAltException("", 5, 0, input);
1039
1040 throw nvae;
1041 }
1042 switch (alt5) {
1043 case 1 :
1044 // InternalProblem.g:2382:20: '%'
1045 {
1046 match('%');
1047
1048 }
1049 break;
1050 case 2 :
1051 // InternalProblem.g:2382:24: '//'
1052 {
1053 match("//");
1054
1055
1056 }
1057 break;
1058
1059 }
1060
1061 // InternalProblem.g:2382:30: (~ ( ( '\\n' | '\\r' ) ) )*
1062 loop6:
1063 do {
1064 int alt6=2;
1065 int LA6_0 = input.LA(1);
1066
1067 if ( ((LA6_0>='\u0000' && LA6_0<='\t')||(LA6_0>='\u000B' && LA6_0<='\f')||(LA6_0>='\u000E' && LA6_0<='\uFFFF')) ) {
1068 alt6=1;
1069 }
1070
1071
1072 switch (alt6) {
1073 case 1 :
1074 // InternalProblem.g:2382:30: ~ ( ( '\\n' | '\\r' ) )
1075 {
1076 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') ) {
1077 input.consume();
1078
1079 }
1080 else {
1081 MismatchedSetException mse = new MismatchedSetException(null,input);
1082 recover(mse);
1083 throw mse;}
1084
1085
1086 }
1087 break;
1088
1089 default :
1090 break loop6;
1091 }
1092 } while (true);
1093
1094 // InternalProblem.g:2382:46: ( ( '\\r' )? '\\n' )?
1095 int alt8=2;
1096 int LA8_0 = input.LA(1);
1097
1098 if ( (LA8_0=='\n'||LA8_0=='\r') ) {
1099 alt8=1;
1100 }
1101 switch (alt8) {
1102 case 1 :
1103 // InternalProblem.g:2382:47: ( '\\r' )? '\\n'
1104 {
1105 // InternalProblem.g:2382:47: ( '\\r' )?
1106 int alt7=2;
1107 int LA7_0 = input.LA(1);
1108
1109 if ( (LA7_0=='\r') ) {
1110 alt7=1;
1111 }
1112 switch (alt7) {
1113 case 1 :
1114 // InternalProblem.g:2382:47: '\\r'
1115 {
1116 match('\r');
1117
1118 }
1119 break;
1120
1121 }
1122
1123 match('\n');
1124
1125 }
1126 break;
1127
1128 }
1129
1130
1131 }
1132
1133 state.type = _type;
1134 state.channel = _channel;
1135 }
1136 finally {
1137 }
1138 }
1139 // $ANTLR end "RULE_SL_COMMENT"
1140
1141 // $ANTLR start "RULE_INT"
1142 public final void mRULE_INT() throws RecognitionException {
1143 try {
1144 int _type = RULE_INT;
1145 int _channel = DEFAULT_TOKEN_CHANNEL;
1146 // InternalProblem.g:2384:10: ( ( '0' .. '9' )+ )
1147 // InternalProblem.g:2384:12: ( '0' .. '9' )+
1148 {
1149 // InternalProblem.g:2384:12: ( '0' .. '9' )+
1150 int cnt9=0;
1151 loop9:
1152 do {
1153 int alt9=2;
1154 int LA9_0 = input.LA(1);
1155
1156 if ( ((LA9_0>='0' && LA9_0<='9')) ) {
1157 alt9=1;
1158 }
1159
1160
1161 switch (alt9) {
1162 case 1 :
1163 // InternalProblem.g:2384:13: '0' .. '9'
1164 {
1165 matchRange('0','9');
1166
1167 }
1168 break;
1169
1170 default :
1171 if ( cnt9 >= 1 ) break loop9;
1172 EarlyExitException eee =
1173 new EarlyExitException(9, input);
1174 throw eee;
1175 }
1176 cnt9++;
1177 } while (true);
1178
1179
1180 }
1181
1182 state.type = _type;
1183 state.channel = _channel;
1184 }
1185 finally {
1186 }
1187 }
1188 // $ANTLR end "RULE_INT"
1189
1190 // $ANTLR start "RULE_ML_COMMENT"
1191 public final void mRULE_ML_COMMENT() throws RecognitionException {
1192 try {
1193 int _type = RULE_ML_COMMENT;
1194 int _channel = DEFAULT_TOKEN_CHANNEL;
1195 // InternalProblem.g:2386:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
1196 // InternalProblem.g:2386:19: '/*' ( options {greedy=false; } : . )* '*/'
1197 {
1198 match("/*");
1199
1200 // InternalProblem.g:2386:24: ( options {greedy=false; } : . )*
1201 loop10:
1202 do {
1203 int alt10=2;
1204 int LA10_0 = input.LA(1);
1205
1206 if ( (LA10_0=='*') ) {
1207 int LA10_1 = input.LA(2);
1208
1209 if ( (LA10_1=='/') ) {
1210 alt10=2;
1211 }
1212 else if ( ((LA10_1>='\u0000' && LA10_1<='.')||(LA10_1>='0' && LA10_1<='\uFFFF')) ) {
1213 alt10=1;
1214 }
1215
1216
1217 }
1218 else if ( ((LA10_0>='\u0000' && LA10_0<=')')||(LA10_0>='+' && LA10_0<='\uFFFF')) ) {
1219 alt10=1;
1220 }
1221
1222
1223 switch (alt10) {
1224 case 1 :
1225 // InternalProblem.g:2386:52: .
1226 {
1227 matchAny();
1228
1229 }
1230 break;
1231
1232 default :
1233 break loop10;
1234 }
1235 } while (true);
1236
1237 match("*/");
1238
1239
1240 }
1241
1242 state.type = _type;
1243 state.channel = _channel;
1244 }
1245 finally {
1246 }
1247 }
1248 // $ANTLR end "RULE_ML_COMMENT"
1249
1250 // $ANTLR start "RULE_WS"
1251 public final void mRULE_WS() throws RecognitionException {
1252 try {
1253 int _type = RULE_WS;
1254 int _channel = DEFAULT_TOKEN_CHANNEL;
1255 // InternalProblem.g:2388:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1256 // InternalProblem.g:2388:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1257 {
1258 // InternalProblem.g:2388:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1259 int cnt11=0;
1260 loop11:
1261 do {
1262 int alt11=2;
1263 int LA11_0 = input.LA(1);
1264
1265 if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
1266 alt11=1;
1267 }
1268
1269
1270 switch (alt11) {
1271 case 1 :
1272 // InternalProblem.g:
1273 {
1274 if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
1275 input.consume();
1276
1277 }
1278 else {
1279 MismatchedSetException mse = new MismatchedSetException(null,input);
1280 recover(mse);
1281 throw mse;}
1282
1283
1284 }
1285 break;
1286
1287 default :
1288 if ( cnt11 >= 1 ) break loop11;
1289 EarlyExitException eee =
1290 new EarlyExitException(11, input);
1291 throw eee;
1292 }
1293 cnt11++;
1294 } while (true);
1295
1296
1297 }
1298
1299 state.type = _type;
1300 state.channel = _channel;
1301 }
1302 finally {
1303 }
1304 }
1305 // $ANTLR end "RULE_WS"
1306
1307 // $ANTLR start "RULE_ANY_OTHER"
1308 public final void mRULE_ANY_OTHER() throws RecognitionException {
1309 try {
1310 int _type = RULE_ANY_OTHER;
1311 int _channel = DEFAULT_TOKEN_CHANNEL;
1312 // InternalProblem.g:2390:16: ( . )
1313 // InternalProblem.g:2390:18: .
1314 {
1315 matchAny();
1316
1317 }
1318
1319 state.type = _type;
1320 state.channel = _channel;
1321 }
1322 finally {
1323 }
1324 }
1325 // $ANTLR end "RULE_ANY_OTHER"
1326
1327 public void mTokens() throws RecognitionException {
1328 // InternalProblem.g:1:8: ( 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 | T__44 | T__45 | T__46 | RULE_ID | RULE_EXPONENTIAL | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER )
1329 int alt12=43;
1330 alt12 = dfa12.predict(input);
1331 switch (alt12) {
1332 case 1 :
1333 // InternalProblem.g:1:10: T__13
1334 {
1335 mT__13();
1336
1337 }
1338 break;
1339 case 2 :
1340 // InternalProblem.g:1:16: T__14
1341 {
1342 mT__14();
1343
1344 }
1345 break;
1346 case 3 :
1347 // InternalProblem.g:1:22: T__15
1348 {
1349 mT__15();
1350
1351 }
1352 break;
1353 case 4 :
1354 // InternalProblem.g:1:28: T__16
1355 {
1356 mT__16();
1357
1358 }
1359 break;
1360 case 5 :
1361 // InternalProblem.g:1:34: T__17
1362 {
1363 mT__17();
1364
1365 }
1366 break;
1367 case 6 :
1368 // InternalProblem.g:1:40: T__18
1369 {
1370 mT__18();
1371
1372 }
1373 break;
1374 case 7 :
1375 // InternalProblem.g:1:46: T__19
1376 {
1377 mT__19();
1378
1379 }
1380 break;
1381 case 8 :
1382 // InternalProblem.g:1:52: T__20
1383 {
1384 mT__20();
1385
1386 }
1387 break;
1388 case 9 :
1389 // InternalProblem.g:1:58: T__21
1390 {
1391 mT__21();
1392
1393 }
1394 break;
1395 case 10 :
1396 // InternalProblem.g:1:64: T__22
1397 {
1398 mT__22();
1399
1400 }
1401 break;
1402 case 11 :
1403 // InternalProblem.g:1:70: T__23
1404 {
1405 mT__23();
1406
1407 }
1408 break;
1409 case 12 :
1410 // InternalProblem.g:1:76: T__24
1411 {
1412 mT__24();
1413
1414 }
1415 break;
1416 case 13 :
1417 // InternalProblem.g:1:82: T__25
1418 {
1419 mT__25();
1420
1421 }
1422 break;
1423 case 14 :
1424 // InternalProblem.g:1:88: T__26
1425 {
1426 mT__26();
1427
1428 }
1429 break;
1430 case 15 :
1431 // InternalProblem.g:1:94: T__27
1432 {
1433 mT__27();
1434
1435 }
1436 break;
1437 case 16 :
1438 // InternalProblem.g:1:100: T__28
1439 {
1440 mT__28();
1441
1442 }
1443 break;
1444 case 17 :
1445 // InternalProblem.g:1:106: T__29
1446 {
1447 mT__29();
1448
1449 }
1450 break;
1451 case 18 :
1452 // InternalProblem.g:1:112: T__30
1453 {
1454 mT__30();
1455
1456 }
1457 break;
1458 case 19 :
1459 // InternalProblem.g:1:118: T__31
1460 {
1461 mT__31();
1462
1463 }
1464 break;
1465 case 20 :
1466 // InternalProblem.g:1:124: T__32
1467 {
1468 mT__32();
1469
1470 }
1471 break;
1472 case 21 :
1473 // InternalProblem.g:1:130: T__33
1474 {
1475 mT__33();
1476
1477 }
1478 break;
1479 case 22 :
1480 // InternalProblem.g:1:136: T__34
1481 {
1482 mT__34();
1483
1484 }
1485 break;
1486 case 23 :
1487 // InternalProblem.g:1:142: T__35
1488 {
1489 mT__35();
1490
1491 }
1492 break;
1493 case 24 :
1494 // InternalProblem.g:1:148: T__36
1495 {
1496 mT__36();
1497
1498 }
1499 break;
1500 case 25 :
1501 // InternalProblem.g:1:154: T__37
1502 {
1503 mT__37();
1504
1505 }
1506 break;
1507 case 26 :
1508 // InternalProblem.g:1:160: T__38
1509 {
1510 mT__38();
1511
1512 }
1513 break;
1514 case 27 :
1515 // InternalProblem.g:1:166: T__39
1516 {
1517 mT__39();
1518
1519 }
1520 break;
1521 case 28 :
1522 // InternalProblem.g:1:172: T__40
1523 {
1524 mT__40();
1525
1526 }
1527 break;
1528 case 29 :
1529 // InternalProblem.g:1:178: T__41
1530 {
1531 mT__41();
1532
1533 }
1534 break;
1535 case 30 :
1536 // InternalProblem.g:1:184: T__42
1537 {
1538 mT__42();
1539
1540 }
1541 break;
1542 case 31 :
1543 // InternalProblem.g:1:190: T__43
1544 {
1545 mT__43();
1546
1547 }
1548 break;
1549 case 32 :
1550 // InternalProblem.g:1:196: T__44
1551 {
1552 mT__44();
1553
1554 }
1555 break;
1556 case 33 :
1557 // InternalProblem.g:1:202: T__45
1558 {
1559 mT__45();
1560
1561 }
1562 break;
1563 case 34 :
1564 // InternalProblem.g:1:208: T__46
1565 {
1566 mT__46();
1567
1568 }
1569 break;
1570 case 35 :
1571 // InternalProblem.g:1:214: RULE_ID
1572 {
1573 mRULE_ID();
1574
1575 }
1576 break;
1577 case 36 :
1578 // InternalProblem.g:1:222: RULE_EXPONENTIAL
1579 {
1580 mRULE_EXPONENTIAL();
1581
1582 }
1583 break;
1584 case 37 :
1585 // InternalProblem.g:1:239: RULE_STRING
1586 {
1587 mRULE_STRING();
1588
1589 }
1590 break;
1591 case 38 :
1592 // InternalProblem.g:1:251: RULE_QUOTED_ID
1593 {
1594 mRULE_QUOTED_ID();
1595
1596 }
1597 break;
1598 case 39 :
1599 // InternalProblem.g:1:266: RULE_SL_COMMENT
1600 {
1601 mRULE_SL_COMMENT();
1602
1603 }
1604 break;
1605 case 40 :
1606 // InternalProblem.g:1:282: RULE_INT
1607 {
1608 mRULE_INT();
1609
1610 }
1611 break;
1612 case 41 :
1613 // InternalProblem.g:1:291: RULE_ML_COMMENT
1614 {
1615 mRULE_ML_COMMENT();
1616
1617 }
1618 break;
1619 case 42 :
1620 // InternalProblem.g:1:307: RULE_WS
1621 {
1622 mRULE_WS();
1623
1624 }
1625 break;
1626 case 43 :
1627 // InternalProblem.g:1:315: RULE_ANY_OTHER
1628 {
1629 mRULE_ANY_OTHER();
1630
1631 }
1632 break;
1633
1634 }
1635
1636 }
1637
1638
1639 protected DFA12 dfa12 = new DFA12(this);
1640 static final String DFA12_eotS =
1641 "\1\uffff\1\44\1\46\3\44\4\uffff\1\44\2\uffff\1\44\2\uffff\1\71\1\uffff\1\74\1\44\2\uffff\2\44\1\uffff\1\44\2\uffff\1\105\2\42\1\uffff\1\42\2\uffff\1\44\3\uffff\6\44\4\uffff\1\44\2\uffff\1\44\10\uffff\1\44\2\uffff\2\44\1\uffff\1\44\2\uffff\1\105\6\uffff\17\44\1\152\4\44\1\157\4\44\1\164\3\44\1\uffff\1\44\1\171\2\44\1\uffff\1\174\2\44\1\177\1\uffff\1\u0080\3\44\1\uffff\2\44\1\uffff\1\u0086\1\44\2\uffff\1\44\1\u0089\2\44\1\u008c\1\uffff\1\44\1\u008e\1\uffff\1\u008f\1\u0090\1\uffff\1\u0091\4\uffff";
1642 static final String DFA12_eofS =
1643 "\u0092\uffff";
1644 static final String DFA12_minS =
1645 "\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\uffff\1\156\2\uffff\1\60\2\0\1\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\10\uffff\1\157\2\uffff\1\165\1\154\1\uffff\1\153\2\uffff\1\60\6\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";
1646 static final String DFA12_maxS =
1647 "\1\uffff\1\162\1\56\1\142\1\157\1\170\4\uffff\1\145\2\uffff\1\160\2\uffff\1\72\1\uffff\1\75\1\143\2\uffff\1\162\1\141\1\uffff\1\156\2\uffff\1\145\2\uffff\1\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\10\uffff\1\157\2\uffff\1\165\1\154\1\uffff\1\153\2\uffff\1\145\6\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";
1648 static final String DFA12_acceptS =
1649 "\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\2\uffff\1\40\1\uffff\1\42\1\43\3\uffff\1\47\1\uffff\1\52\1\53\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\35\1\27\1\25\1\31\1\26\1\uffff\1\32\1\34\2\uffff\1\40\1\uffff\1\42\1\50\1\uffff\1\44\1\45\1\46\1\47\1\51\1\52\35\uffff\1\21\4\uffff\1\12\4\uffff\1\36\4\uffff\1\4\2\uffff\1\20\2\uffff\1\30\1\37\5\uffff\1\14\2\uffff\1\1\2\uffff\1\5\1\uffff\1\41\1\3\1\13\1\17";
1650 static final String DFA12_specialS =
1651 "\1\2\34\uffff\1\0\1\1\163\uffff}>";
1652 static final String[] DFA12_transitionS = {
1653 "\11\42\2\41\2\42\1\41\22\42\1\41\1\21\1\35\2\42\1\37\1\42\1\36\1\16\1\17\1\25\1\22\1\6\1\30\1\2\1\40\12\34\1\20\1\10\1\42\1\24\1\42\1\32\1\42\32\33\1\13\1\42\1\14\1\42\1\33\1\42\1\3\1\33\1\4\1\33\1\5\1\27\10\33\1\15\1\1\1\33\1\12\1\23\1\26\1\31\5\33\1\7\1\42\1\11\uff82\42",
1654 "\1\43",
1655 "\1\45",
1656 "\1\47",
1657 "\1\50\2\uffff\1\51",
1658 "\1\53\3\uffff\1\54\5\uffff\1\52",
1659 "",
1660 "",
1661 "",
1662 "",
1663 "\1\61",
1664 "",
1665 "",
1666 "\1\64",
1667 "",
1668 "",
1669 "\1\67\14\uffff\1\70",
1670 "",
1671 "\1\73",
1672 "\1\75",
1673 "",
1674 "",
1675 "\1\100",
1676 "\1\101",
1677 "",
1678 "\1\103",
1679 "",
1680 "",
1681 "\12\106\13\uffff\1\107\37\uffff\1\107",
1682 "\0\110",
1683 "\0\111",
1684 "",
1685 "\1\113\4\uffff\1\112",
1686 "",
1687 "",
1688 "\1\116\11\uffff\1\115",
1689 "",
1690 "",
1691 "",
1692 "\1\117",
1693 "\1\120",
1694 "\1\121",
1695 "\1\122",
1696 "\1\123",
1697 "\1\124",
1698 "",
1699 "",
1700 "",
1701 "",
1702 "\1\125",
1703 "",
1704 "",
1705 "\1\126",
1706 "",
1707 "",
1708 "",
1709 "",
1710 "",
1711 "",
1712 "",
1713 "",
1714 "\1\127",
1715 "",
1716 "",
1717 "\1\130",
1718 "\1\131",
1719 "",
1720 "\1\132",
1721 "",
1722 "",
1723 "\12\106\13\uffff\1\107\37\uffff\1\107",
1724 "",
1725 "",
1726 "",
1727 "",
1728 "",
1729 "",
1730 "\1\133",
1731 "\1\134",
1732 "\1\135",
1733 "\1\136",
1734 "\1\137",
1735 "\1\140",
1736 "\1\141",
1737 "\1\142",
1738 "\1\143",
1739 "\1\144",
1740 "\1\145",
1741 "\1\146",
1742 "\1\147",
1743 "\1\150",
1744 "\1\151",
1745 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1746 "\1\153",
1747 "\1\154",
1748 "\1\155",
1749 "\1\156",
1750 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1751 "\1\160",
1752 "\1\161",
1753 "\1\162",
1754 "\1\163",
1755 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1756 "\1\165",
1757 "\1\166",
1758 "\1\167",
1759 "",
1760 "\1\170",
1761 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1762 "\1\172",
1763 "\1\173",
1764 "",
1765 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1766 "\1\175",
1767 "\1\176",
1768 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1769 "",
1770 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1771 "\1\u0081",
1772 "\1\u0082",
1773 "\1\u0083",
1774 "",
1775 "\1\u0084",
1776 "\1\u0085",
1777 "",
1778 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1779 "\1\u0087",
1780 "",
1781 "",
1782 "\1\u0088",
1783 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1784 "\1\u008a",
1785 "\1\u008b",
1786 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1787 "",
1788 "\1\u008d",
1789 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1790 "",
1791 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1792 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1793 "",
1794 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1795 "",
1796 "",
1797 "",
1798 ""
1799 };
1800
1801 static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
1802 static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
1803 static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
1804 static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
1805 static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
1806 static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
1807 static final short[][] DFA12_transition;
1808
1809 static {
1810 int numStates = DFA12_transitionS.length;
1811 DFA12_transition = new short[numStates][];
1812 for (int i=0; i<numStates; i++) {
1813 DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
1814 }
1815 }
1816
1817 class DFA12 extends DFA {
1818
1819 public DFA12(BaseRecognizer recognizer) {
1820 this.recognizer = recognizer;
1821 this.decisionNumber = 12;
1822 this.eot = DFA12_eot;
1823 this.eof = DFA12_eof;
1824 this.min = DFA12_min;
1825 this.max = DFA12_max;
1826 this.accept = DFA12_accept;
1827 this.special = DFA12_special;
1828 this.transition = DFA12_transition;
1829 }
1830 public String getDescription() {
1831 return "1:1: Tokens : ( 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 | T__44 | T__45 | T__46 | RULE_ID | RULE_EXPONENTIAL | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER );";
1832 }
1833 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1834 IntStream input = _input;
1835 int _s = s;
1836 switch ( s ) {
1837 case 0 :
1838 int LA12_29 = input.LA(1);
1839
1840 s = -1;
1841 if ( ((LA12_29>='\u0000' && LA12_29<='\uFFFF')) ) {s = 72;}
1842
1843 else s = 34;
1844
1845 if ( s>=0 ) return s;
1846 break;
1847 case 1 :
1848 int LA12_30 = input.LA(1);
1849
1850 s = -1;
1851 if ( ((LA12_30>='\u0000' && LA12_30<='\uFFFF')) ) {s = 73;}
1852
1853 else s = 34;
1854
1855 if ( s>=0 ) return s;
1856 break;
1857 case 2 :
1858 int LA12_0 = input.LA(1);
1859
1860 s = -1;
1861 if ( (LA12_0=='p') ) {s = 1;}
1862
1863 else if ( (LA12_0=='.') ) {s = 2;}
1864
1865 else if ( (LA12_0=='a') ) {s = 3;}
1866
1867 else if ( (LA12_0=='c') ) {s = 4;}
1868
1869 else if ( (LA12_0=='e') ) {s = 5;}
1870
1871 else if ( (LA12_0==',') ) {s = 6;}
1872
1873 else if ( (LA12_0=='{') ) {s = 7;}
1874
1875 else if ( (LA12_0==';') ) {s = 8;}
1876
1877 else if ( (LA12_0=='}') ) {s = 9;}
1878
1879 else if ( (LA12_0=='r') ) {s = 10;}
1880
1881 else if ( (LA12_0=='[') ) {s = 11;}
1882
1883 else if ( (LA12_0==']') ) {s = 12;}
1884
1885 else if ( (LA12_0=='o') ) {s = 13;}
1886
1887 else if ( (LA12_0=='(') ) {s = 14;}
1888
1889 else if ( (LA12_0==')') ) {s = 15;}
1890
1891 else if ( (LA12_0==':') ) {s = 16;}
1892
1893 else if ( (LA12_0=='!') ) {s = 17;}
1894
1895 else if ( (LA12_0=='+') ) {s = 18;}
1896
1897 else if ( (LA12_0=='s') ) {s = 19;}
1898
1899 else if ( (LA12_0=='=') ) {s = 20;}
1900
1901 else if ( (LA12_0=='*') ) {s = 21;}
1902
1903 else if ( (LA12_0=='t') ) {s = 22;}
1904
1905 else if ( (LA12_0=='f') ) {s = 23;}
1906
1907 else if ( (LA12_0=='-') ) {s = 24;}
1908
1909 else if ( (LA12_0=='u') ) {s = 25;}
1910
1911 else if ( (LA12_0=='?') ) {s = 26;}
1912
1913 else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='g' && LA12_0<='n')||LA12_0=='q'||(LA12_0>='v' && LA12_0<='z')) ) {s = 27;}
1914
1915 else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 28;}
1916
1917 else if ( (LA12_0=='\"') ) {s = 29;}
1918
1919 else if ( (LA12_0=='\'') ) {s = 30;}
1920
1921 else if ( (LA12_0=='%') ) {s = 31;}
1922
1923 else if ( (LA12_0=='/') ) {s = 32;}
1924
1925 else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 33;}
1926
1927 else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||(LA12_0>='#' && LA12_0<='$')||LA12_0=='&'||LA12_0=='<'||LA12_0=='>'||LA12_0=='@'||LA12_0=='\\'||LA12_0=='^'||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 34;}
1928
1929 if ( s>=0 ) return s;
1930 break;
1931 }
1932 NoViableAltException nvae =
1933 new NoViableAltException(getDescription(), 12, _s, input);
1934 error(nvae);
1935 throw nvae;
1936 }
1937 }
1938
1939
1940} \ 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
deleted file mode 100644
index cddaa9c1..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java
+++ /dev/null
@@ -1,6752 +0,0 @@
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_STRING", "RULE_ID", "RULE_INT", "RULE_QUOTED_ID", "RULE_EXPONENTIAL", "RULE_SL_COMMENT", "RULE_ML_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__13=13;
33 public static final int T__14=14;
34 public static final int RULE_EXPONENTIAL=8;
35 public static final int RULE_ID=5;
36 public static final int RULE_QUOTED_ID=7;
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=6;
41 public static final int T__29=29;
42 public static final int T__22=22;
43 public static final int RULE_ML_COMMENT=10;
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=4;
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=11;
63 public static final int RULE_ANY_OTHER=12;
64 public static final int T__44=44;
65 public static final int T__45=45;
66 public static final int T__46=46;
67 public static final int T__40=40;
68 public static final int T__41=41;
69 public static final int T__42=42;
70 public static final int T__43=43;
71
72 // delegates
73 // delegators
74
75
76 public InternalProblemParser(TokenStream input) {
77 this(input, new RecognizerSharedState());
78 }
79 public InternalProblemParser(TokenStream input, RecognizerSharedState state) {
80 super(input, state);
81
82 }
83
84
85 public String[] getTokenNames() { return InternalProblemParser.tokenNames; }
86 public String getGrammarFileName() { return "InternalProblem.g"; }
87
88
89
90 private ProblemGrammarAccess grammarAccess;
91
92 public InternalProblemParser(TokenStream input, ProblemGrammarAccess grammarAccess) {
93 this(input);
94 this.grammarAccess = grammarAccess;
95 registerRules(grammarAccess.getGrammar());
96 }
97
98 @Override
99 protected String getFirstRuleName() {
100 return "Problem";
101 }
102
103 @Override
104 protected ProblemGrammarAccess getGrammarAccess() {
105 return grammarAccess;
106 }
107
108
109
110
111 // $ANTLR start "entryRuleProblem"
112 // InternalProblem.g:65:1: entryRuleProblem returns [EObject current=null] : iv_ruleProblem= ruleProblem EOF ;
113 public final EObject entryRuleProblem() throws RecognitionException {
114 EObject current = null;
115
116 EObject iv_ruleProblem = null;
117
118
119 try {
120 // InternalProblem.g:65:48: (iv_ruleProblem= ruleProblem EOF )
121 // InternalProblem.g:66:2: iv_ruleProblem= ruleProblem EOF
122 {
123 newCompositeNode(grammarAccess.getProblemRule());
124 pushFollow(FOLLOW_1);
125 iv_ruleProblem=ruleProblem();
126
127 state._fsp--;
128
129 current =iv_ruleProblem;
130 match(input,EOF,FOLLOW_2);
131
132 }
133
134 }
135
136 catch (RecognitionException re) {
137 recover(input,re);
138 appendSkippedTokens();
139 }
140 finally {
141 }
142 return current;
143 }
144 // $ANTLR end "entryRuleProblem"
145
146
147 // $ANTLR start "ruleProblem"
148 // InternalProblem.g:72:1: ruleProblem returns [EObject current=null] : ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) ;
149 public final EObject ruleProblem() throws RecognitionException {
150 EObject current = null;
151
152 Token otherlv_0=null;
153 Token otherlv_2=null;
154 AntlrDatatypeRuleToken lv_name_1_0 = null;
155
156 EObject lv_statements_3_0 = null;
157
158
159
160 enterRule();
161
162 try {
163 // InternalProblem.g:78:2: ( ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* ) )
164 // InternalProblem.g:79:2: ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* )
165 {
166 // InternalProblem.g:79:2: ( (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )* )
167 // InternalProblem.g:80:3: (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )? ( (lv_statements_3_0= ruleStatement ) )*
168 {
169 // InternalProblem.g:80:3: (otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' )?
170 int alt1=2;
171 int LA1_0 = input.LA(1);
172
173 if ( (LA1_0==13) ) {
174 alt1=1;
175 }
176 switch (alt1) {
177 case 1 :
178 // InternalProblem.g:81:4: otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.'
179 {
180 otherlv_0=(Token)match(input,13,FOLLOW_3);
181
182 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0());
183
184 // InternalProblem.g:85:4: ( (lv_name_1_0= ruleIdentifier ) )
185 // InternalProblem.g:86:5: (lv_name_1_0= ruleIdentifier )
186 {
187 // InternalProblem.g:86:5: (lv_name_1_0= ruleIdentifier )
188 // InternalProblem.g:87:6: lv_name_1_0= ruleIdentifier
189 {
190
191 newCompositeNode(grammarAccess.getProblemAccess().getNameIdentifierParserRuleCall_0_1_0());
192
193 pushFollow(FOLLOW_4);
194 lv_name_1_0=ruleIdentifier();
195
196 state._fsp--;
197
198
199 if (current==null) {
200 current = createModelElementForParent(grammarAccess.getProblemRule());
201 }
202 set(
203 current,
204 "name",
205 lv_name_1_0,
206 "org.eclipse.viatra.solver.language.Problem.Identifier");
207 afterParserOrEnumRuleCall();
208
209
210 }
211
212
213 }
214
215 otherlv_2=(Token)match(input,14,FOLLOW_5);
216
217 newLeafNode(otherlv_2, grammarAccess.getProblemAccess().getFullStopKeyword_0_2());
218
219
220 }
221 break;
222
223 }
224
225 // InternalProblem.g:109:3: ( (lv_statements_3_0= ruleStatement ) )*
226 loop2:
227 do {
228 int alt2=2;
229 int LA2_0 = input.LA(1);
230
231 if ( (LA2_0==RULE_ID||LA2_0==RULE_QUOTED_ID||(LA2_0>=15 && LA2_0<=16)||LA2_0==22||(LA2_0>=28 && LA2_0<=29)||LA2_0==33||LA2_0==36||(LA2_0>=42 && LA2_0<=43)||LA2_0==46) ) {
232 alt2=1;
233 }
234
235
236 switch (alt2) {
237 case 1 :
238 // InternalProblem.g:110:4: (lv_statements_3_0= ruleStatement )
239 {
240 // InternalProblem.g:110:4: (lv_statements_3_0= ruleStatement )
241 // InternalProblem.g:111:5: lv_statements_3_0= ruleStatement
242 {
243
244 newCompositeNode(grammarAccess.getProblemAccess().getStatementsStatementParserRuleCall_1_0());
245
246 pushFollow(FOLLOW_5);
247 lv_statements_3_0=ruleStatement();
248
249 state._fsp--;
250
251
252 if (current==null) {
253 current = createModelElementForParent(grammarAccess.getProblemRule());
254 }
255 add(
256 current,
257 "statements",
258 lv_statements_3_0,
259 "org.eclipse.viatra.solver.language.Problem.Statement");
260 afterParserOrEnumRuleCall();
261
262
263 }
264
265
266 }
267 break;
268
269 default :
270 break loop2;
271 }
272 } while (true);
273
274
275 }
276
277
278 }
279
280
281 leaveRule();
282
283 }
284
285 catch (RecognitionException re) {
286 recover(input,re);
287 appendSkippedTokens();
288 }
289 finally {
290 }
291 return current;
292 }
293 // $ANTLR end "ruleProblem"
294
295
296 // $ANTLR start "entryRuleStatement"
297 // InternalProblem.g:132:1: entryRuleStatement returns [EObject current=null] : iv_ruleStatement= ruleStatement EOF ;
298 public final EObject entryRuleStatement() throws RecognitionException {
299 EObject current = null;
300
301 EObject iv_ruleStatement = null;
302
303
304 try {
305 // InternalProblem.g:132:50: (iv_ruleStatement= ruleStatement EOF )
306 // InternalProblem.g:133:2: iv_ruleStatement= ruleStatement EOF
307 {
308 newCompositeNode(grammarAccess.getStatementRule());
309 pushFollow(FOLLOW_1);
310 iv_ruleStatement=ruleStatement();
311
312 state._fsp--;
313
314 current =iv_ruleStatement;
315 match(input,EOF,FOLLOW_2);
316
317 }
318
319 }
320
321 catch (RecognitionException re) {
322 recover(input,re);
323 appendSkippedTokens();
324 }
325 finally {
326 }
327 return current;
328 }
329 // $ANTLR end "entryRuleStatement"
330
331
332 // $ANTLR start "ruleStatement"
333 // 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_NodeValueAssertion_4= ruleNodeValueAssertion | this_ScopeDeclaration_5= ruleScopeDeclaration ) ;
334 public final EObject ruleStatement() throws RecognitionException {
335 EObject current = null;
336
337 EObject this_ClassDeclaration_0 = null;
338
339 EObject this_EnumDeclaration_1 = null;
340
341 EObject this_PredicateDefinition_2 = null;
342
343 EObject this_Assertion_3 = null;
344
345 EObject this_NodeValueAssertion_4 = null;
346
347 EObject this_ScopeDeclaration_5 = null;
348
349
350
351 enterRule();
352
353 try {
354 // InternalProblem.g:145:2: ( (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_NodeValueAssertion_4= ruleNodeValueAssertion | this_ScopeDeclaration_5= ruleScopeDeclaration ) )
355 // InternalProblem.g:146:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_NodeValueAssertion_4= ruleNodeValueAssertion | this_ScopeDeclaration_5= ruleScopeDeclaration )
356 {
357 // InternalProblem.g:146:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_NodeValueAssertion_4= ruleNodeValueAssertion | this_ScopeDeclaration_5= ruleScopeDeclaration )
358 int alt3=6;
359 alt3 = dfa3.predict(input);
360 switch (alt3) {
361 case 1 :
362 // InternalProblem.g:147:3: this_ClassDeclaration_0= ruleClassDeclaration
363 {
364
365 newCompositeNode(grammarAccess.getStatementAccess().getClassDeclarationParserRuleCall_0());
366
367 pushFollow(FOLLOW_2);
368 this_ClassDeclaration_0=ruleClassDeclaration();
369
370 state._fsp--;
371
372
373 current = this_ClassDeclaration_0;
374 afterParserOrEnumRuleCall();
375
376
377 }
378 break;
379 case 2 :
380 // InternalProblem.g:156:3: this_EnumDeclaration_1= ruleEnumDeclaration
381 {
382
383 newCompositeNode(grammarAccess.getStatementAccess().getEnumDeclarationParserRuleCall_1());
384
385 pushFollow(FOLLOW_2);
386 this_EnumDeclaration_1=ruleEnumDeclaration();
387
388 state._fsp--;
389
390
391 current = this_EnumDeclaration_1;
392 afterParserOrEnumRuleCall();
393
394
395 }
396 break;
397 case 3 :
398 // InternalProblem.g:165:3: this_PredicateDefinition_2= rulePredicateDefinition
399 {
400
401 newCompositeNode(grammarAccess.getStatementAccess().getPredicateDefinitionParserRuleCall_2());
402
403 pushFollow(FOLLOW_2);
404 this_PredicateDefinition_2=rulePredicateDefinition();
405
406 state._fsp--;
407
408
409 current = this_PredicateDefinition_2;
410 afterParserOrEnumRuleCall();
411
412
413 }
414 break;
415 case 4 :
416 // InternalProblem.g:174:3: this_Assertion_3= ruleAssertion
417 {
418
419 newCompositeNode(grammarAccess.getStatementAccess().getAssertionParserRuleCall_3());
420
421 pushFollow(FOLLOW_2);
422 this_Assertion_3=ruleAssertion();
423
424 state._fsp--;
425
426
427 current = this_Assertion_3;
428 afterParserOrEnumRuleCall();
429
430
431 }
432 break;
433 case 5 :
434 // InternalProblem.g:183:3: this_NodeValueAssertion_4= ruleNodeValueAssertion
435 {
436
437 newCompositeNode(grammarAccess.getStatementAccess().getNodeValueAssertionParserRuleCall_4());
438
439 pushFollow(FOLLOW_2);
440 this_NodeValueAssertion_4=ruleNodeValueAssertion();
441
442 state._fsp--;
443
444
445 current = this_NodeValueAssertion_4;
446 afterParserOrEnumRuleCall();
447
448
449 }
450 break;
451 case 6 :
452 // InternalProblem.g:192:3: this_ScopeDeclaration_5= ruleScopeDeclaration
453 {
454
455 newCompositeNode(grammarAccess.getStatementAccess().getScopeDeclarationParserRuleCall_5());
456
457 pushFollow(FOLLOW_2);
458 this_ScopeDeclaration_5=ruleScopeDeclaration();
459
460 state._fsp--;
461
462
463 current = this_ScopeDeclaration_5;
464 afterParserOrEnumRuleCall();
465
466
467 }
468 break;
469
470 }
471
472
473 }
474
475
476 leaveRule();
477
478 }
479
480 catch (RecognitionException re) {
481 recover(input,re);
482 appendSkippedTokens();
483 }
484 finally {
485 }
486 return current;
487 }
488 // $ANTLR end "ruleStatement"
489
490
491 // $ANTLR start "entryRuleClassDeclaration"
492 // InternalProblem.g:204:1: entryRuleClassDeclaration returns [EObject current=null] : iv_ruleClassDeclaration= ruleClassDeclaration EOF ;
493 public final EObject entryRuleClassDeclaration() throws RecognitionException {
494 EObject current = null;
495
496 EObject iv_ruleClassDeclaration = null;
497
498
499 try {
500 // InternalProblem.g:204:57: (iv_ruleClassDeclaration= ruleClassDeclaration EOF )
501 // InternalProblem.g:205:2: iv_ruleClassDeclaration= ruleClassDeclaration EOF
502 {
503 newCompositeNode(grammarAccess.getClassDeclarationRule());
504 pushFollow(FOLLOW_1);
505 iv_ruleClassDeclaration=ruleClassDeclaration();
506
507 state._fsp--;
508
509 current =iv_ruleClassDeclaration;
510 match(input,EOF,FOLLOW_2);
511
512 }
513
514 }
515
516 catch (RecognitionException re) {
517 recover(input,re);
518 appendSkippedTokens();
519 }
520 finally {
521 }
522 return current;
523 }
524 // $ANTLR end "entryRuleClassDeclaration"
525
526
527 // $ANTLR start "ruleClassDeclaration"
528 // InternalProblem.g:211: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= '.' ) ) ;
529 public final EObject ruleClassDeclaration() throws RecognitionException {
530 EObject current = null;
531
532 Token lv_abstract_0_0=null;
533 Token otherlv_1=null;
534 Token otherlv_3=null;
535 Token otherlv_5=null;
536 Token otherlv_7=null;
537 Token otherlv_9=null;
538 Token otherlv_10=null;
539 Token otherlv_11=null;
540 AntlrDatatypeRuleToken lv_name_2_0 = null;
541
542 EObject lv_referenceDeclarations_8_0 = null;
543
544
545
546 enterRule();
547
548 try {
549 // InternalProblem.g:217: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= '.' ) ) )
550 // InternalProblem.g:218: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= '.' ) )
551 {
552 // InternalProblem.g:218: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= '.' ) )
553 // InternalProblem.g:219: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= '.' )
554 {
555 // InternalProblem.g:219:3: ( (lv_abstract_0_0= 'abstract' ) )?
556 int alt4=2;
557 int LA4_0 = input.LA(1);
558
559 if ( (LA4_0==15) ) {
560 alt4=1;
561 }
562 switch (alt4) {
563 case 1 :
564 // InternalProblem.g:220:4: (lv_abstract_0_0= 'abstract' )
565 {
566 // InternalProblem.g:220:4: (lv_abstract_0_0= 'abstract' )
567 // InternalProblem.g:221:5: lv_abstract_0_0= 'abstract'
568 {
569 lv_abstract_0_0=(Token)match(input,15,FOLLOW_6);
570
571 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
572
573
574 if (current==null) {
575 current = createModelElement(grammarAccess.getClassDeclarationRule());
576 }
577 setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
578
579
580 }
581
582
583 }
584 break;
585
586 }
587
588 otherlv_1=(Token)match(input,16,FOLLOW_3);
589
590 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
591
592 // InternalProblem.g:237:3: ( (lv_name_2_0= ruleIdentifier ) )
593 // InternalProblem.g:238:4: (lv_name_2_0= ruleIdentifier )
594 {
595 // InternalProblem.g:238:4: (lv_name_2_0= ruleIdentifier )
596 // InternalProblem.g:239:5: lv_name_2_0= ruleIdentifier
597 {
598
599 newCompositeNode(grammarAccess.getClassDeclarationAccess().getNameIdentifierParserRuleCall_2_0());
600
601 pushFollow(FOLLOW_7);
602 lv_name_2_0=ruleIdentifier();
603
604 state._fsp--;
605
606
607 if (current==null) {
608 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
609 }
610 set(
611 current,
612 "name",
613 lv_name_2_0,
614 "org.eclipse.viatra.solver.language.Problem.Identifier");
615 afterParserOrEnumRuleCall();
616
617
618 }
619
620
621 }
622
623 // InternalProblem.g:256:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* )?
624 int alt6=2;
625 int LA6_0 = input.LA(1);
626
627 if ( (LA6_0==17) ) {
628 alt6=1;
629 }
630 switch (alt6) {
631 case 1 :
632 // InternalProblem.g:257:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
633 {
634 otherlv_3=(Token)match(input,17,FOLLOW_8);
635
636 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
637
638 // InternalProblem.g:261:4: ( ( ruleQualifiedName ) )
639 // InternalProblem.g:262:5: ( ruleQualifiedName )
640 {
641 // InternalProblem.g:262:5: ( ruleQualifiedName )
642 // InternalProblem.g:263:6: ruleQualifiedName
643 {
644
645 if (current==null) {
646 current = createModelElement(grammarAccess.getClassDeclarationRule());
647 }
648
649
650 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_1_0());
651
652 pushFollow(FOLLOW_9);
653 ruleQualifiedName();
654
655 state._fsp--;
656
657
658 afterParserOrEnumRuleCall();
659
660
661 }
662
663
664 }
665
666 // InternalProblem.g:277:4: (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
667 loop5:
668 do {
669 int alt5=2;
670 int LA5_0 = input.LA(1);
671
672 if ( (LA5_0==18) ) {
673 alt5=1;
674 }
675
676
677 switch (alt5) {
678 case 1 :
679 // InternalProblem.g:278:5: otherlv_5= ',' ( ( ruleQualifiedName ) )
680 {
681 otherlv_5=(Token)match(input,18,FOLLOW_8);
682
683 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
684
685 // InternalProblem.g:282:5: ( ( ruleQualifiedName ) )
686 // InternalProblem.g:283:6: ( ruleQualifiedName )
687 {
688 // InternalProblem.g:283:6: ( ruleQualifiedName )
689 // InternalProblem.g:284:7: ruleQualifiedName
690 {
691
692 if (current==null) {
693 current = createModelElement(grammarAccess.getClassDeclarationRule());
694 }
695
696
697 newCompositeNode(grammarAccess.getClassDeclarationAccess().getSuperTypesRelationCrossReference_3_2_1_0());
698
699 pushFollow(FOLLOW_9);
700 ruleQualifiedName();
701
702 state._fsp--;
703
704
705 afterParserOrEnumRuleCall();
706
707
708 }
709
710
711 }
712
713
714 }
715 break;
716
717 default :
718 break loop5;
719 }
720 } while (true);
721
722
723 }
724 break;
725
726 }
727
728 // InternalProblem.g:300:3: ( (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) | otherlv_11= '.' )
729 int alt9=2;
730 int LA9_0 = input.LA(1);
731
732 if ( (LA9_0==19) ) {
733 alt9=1;
734 }
735 else if ( (LA9_0==14) ) {
736 alt9=2;
737 }
738 else {
739 NoViableAltException nvae =
740 new NoViableAltException("", 9, 0, input);
741
742 throw nvae;
743 }
744 switch (alt9) {
745 case 1 :
746 // InternalProblem.g:301:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' )
747 {
748 // InternalProblem.g:301:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' )
749 // InternalProblem.g:302:5: otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}'
750 {
751 otherlv_7=(Token)match(input,19,FOLLOW_10);
752
753 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
754
755 // InternalProblem.g:306:5: ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )*
756 loop8:
757 do {
758 int alt8=2;
759 int LA8_0 = input.LA(1);
760
761 if ( (LA8_0==RULE_ID||LA8_0==RULE_QUOTED_ID||(LA8_0>=23 && LA8_0<=24)||(LA8_0>=42 && LA8_0<=43)) ) {
762 alt8=1;
763 }
764
765
766 switch (alt8) {
767 case 1 :
768 // InternalProblem.g:307:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )?
769 {
770 // InternalProblem.g:307:6: ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) )
771 // InternalProblem.g:308:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration )
772 {
773 // InternalProblem.g:308:7: (lv_referenceDeclarations_8_0= ruleReferenceDeclaration )
774 // InternalProblem.g:309:8: lv_referenceDeclarations_8_0= ruleReferenceDeclaration
775 {
776
777 newCompositeNode(grammarAccess.getClassDeclarationAccess().getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0());
778
779 pushFollow(FOLLOW_11);
780 lv_referenceDeclarations_8_0=ruleReferenceDeclaration();
781
782 state._fsp--;
783
784
785 if (current==null) {
786 current = createModelElementForParent(grammarAccess.getClassDeclarationRule());
787 }
788 add(
789 current,
790 "referenceDeclarations",
791 lv_referenceDeclarations_8_0,
792 "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
793 afterParserOrEnumRuleCall();
794
795
796 }
797
798
799 }
800
801 // InternalProblem.g:326:6: (otherlv_9= ';' )?
802 int alt7=2;
803 int LA7_0 = input.LA(1);
804
805 if ( (LA7_0==20) ) {
806 alt7=1;
807 }
808 switch (alt7) {
809 case 1 :
810 // InternalProblem.g:327:7: otherlv_9= ';'
811 {
812 otherlv_9=(Token)match(input,20,FOLLOW_10);
813
814 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1());
815
816
817 }
818 break;
819
820 }
821
822
823 }
824 break;
825
826 default :
827 break loop8;
828 }
829 } while (true);
830
831 otherlv_10=(Token)match(input,21,FOLLOW_2);
832
833 newLeafNode(otherlv_10, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2());
834
835
836 }
837
838
839 }
840 break;
841 case 2 :
842 // InternalProblem.g:339:4: otherlv_11= '.'
843 {
844 otherlv_11=(Token)match(input,14,FOLLOW_2);
845
846 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1());
847
848
849 }
850 break;
851
852 }
853
854
855 }
856
857
858 }
859
860
861 leaveRule();
862
863 }
864
865 catch (RecognitionException re) {
866 recover(input,re);
867 appendSkippedTokens();
868 }
869 finally {
870 }
871 return current;
872 }
873 // $ANTLR end "ruleClassDeclaration"
874
875
876 // $ANTLR start "entryRuleEnumDeclaration"
877 // InternalProblem.g:348:1: entryRuleEnumDeclaration returns [EObject current=null] : iv_ruleEnumDeclaration= ruleEnumDeclaration EOF ;
878 public final EObject entryRuleEnumDeclaration() throws RecognitionException {
879 EObject current = null;
880
881 EObject iv_ruleEnumDeclaration = null;
882
883
884 try {
885 // InternalProblem.g:348:56: (iv_ruleEnumDeclaration= ruleEnumDeclaration EOF )
886 // InternalProblem.g:349:2: iv_ruleEnumDeclaration= ruleEnumDeclaration EOF
887 {
888 newCompositeNode(grammarAccess.getEnumDeclarationRule());
889 pushFollow(FOLLOW_1);
890 iv_ruleEnumDeclaration=ruleEnumDeclaration();
891
892 state._fsp--;
893
894 current =iv_ruleEnumDeclaration;
895 match(input,EOF,FOLLOW_2);
896
897 }
898
899 }
900
901 catch (RecognitionException re) {
902 recover(input,re);
903 appendSkippedTokens();
904 }
905 finally {
906 }
907 return current;
908 }
909 // $ANTLR end "entryRuleEnumDeclaration"
910
911
912 // $ANTLR start "ruleEnumDeclaration"
913 // InternalProblem.g:355: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= '.' ) ) ;
914 public final EObject ruleEnumDeclaration() throws RecognitionException {
915 EObject current = null;
916
917 Token otherlv_0=null;
918 Token otherlv_2=null;
919 Token otherlv_4=null;
920 Token otherlv_6=null;
921 Token otherlv_7=null;
922 Token otherlv_8=null;
923 Token otherlv_9=null;
924 AntlrDatatypeRuleToken lv_name_1_0 = null;
925
926 EObject lv_literals_3_0 = null;
927
928 EObject lv_literals_5_0 = null;
929
930
931
932 enterRule();
933
934 try {
935 // InternalProblem.g:361: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= '.' ) ) )
936 // InternalProblem.g:362: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= '.' ) )
937 {
938 // InternalProblem.g:362: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= '.' ) )
939 // InternalProblem.g:363: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= '.' )
940 {
941 otherlv_0=(Token)match(input,22,FOLLOW_3);
942
943 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0());
944
945 // InternalProblem.g:367:3: ( (lv_name_1_0= ruleIdentifier ) )
946 // InternalProblem.g:368:4: (lv_name_1_0= ruleIdentifier )
947 {
948 // InternalProblem.g:368:4: (lv_name_1_0= ruleIdentifier )
949 // InternalProblem.g:369:5: lv_name_1_0= ruleIdentifier
950 {
951
952 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getNameIdentifierParserRuleCall_1_0());
953
954 pushFollow(FOLLOW_12);
955 lv_name_1_0=ruleIdentifier();
956
957 state._fsp--;
958
959
960 if (current==null) {
961 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
962 }
963 set(
964 current,
965 "name",
966 lv_name_1_0,
967 "org.eclipse.viatra.solver.language.Problem.Identifier");
968 afterParserOrEnumRuleCall();
969
970
971 }
972
973
974 }
975
976 // InternalProblem.g:386:3: ( (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) | otherlv_9= '.' )
977 int alt13=2;
978 int LA13_0 = input.LA(1);
979
980 if ( (LA13_0==19) ) {
981 alt13=1;
982 }
983 else if ( (LA13_0==14) ) {
984 alt13=2;
985 }
986 else {
987 NoViableAltException nvae =
988 new NoViableAltException("", 13, 0, input);
989
990 throw nvae;
991 }
992 switch (alt13) {
993 case 1 :
994 // InternalProblem.g:387:4: (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' )
995 {
996 // InternalProblem.g:387:4: (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' )
997 // InternalProblem.g:388:5: otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}'
998 {
999 otherlv_2=(Token)match(input,19,FOLLOW_13);
1000
1001 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0());
1002
1003 // InternalProblem.g:392:5: ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )?
1004 int alt12=2;
1005 int LA12_0 = input.LA(1);
1006
1007 if ( (LA12_0==RULE_ID||(LA12_0>=42 && LA12_0<=43)) ) {
1008 alt12=1;
1009 }
1010 switch (alt12) {
1011 case 1 :
1012 // InternalProblem.g:393:6: ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )?
1013 {
1014 // InternalProblem.g:393:6: ( (lv_literals_3_0= ruleEnumLiteral ) )
1015 // InternalProblem.g:394:7: (lv_literals_3_0= ruleEnumLiteral )
1016 {
1017 // InternalProblem.g:394:7: (lv_literals_3_0= ruleEnumLiteral )
1018 // InternalProblem.g:395:8: lv_literals_3_0= ruleEnumLiteral
1019 {
1020
1021 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0());
1022
1023 pushFollow(FOLLOW_14);
1024 lv_literals_3_0=ruleEnumLiteral();
1025
1026 state._fsp--;
1027
1028
1029 if (current==null) {
1030 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
1031 }
1032 add(
1033 current,
1034 "literals",
1035 lv_literals_3_0,
1036 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
1037 afterParserOrEnumRuleCall();
1038
1039
1040 }
1041
1042
1043 }
1044
1045 // InternalProblem.g:412:6: (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )*
1046 loop10:
1047 do {
1048 int alt10=2;
1049 int LA10_0 = input.LA(1);
1050
1051 if ( (LA10_0==18) ) {
1052 int LA10_1 = input.LA(2);
1053
1054 if ( (LA10_1==RULE_ID||(LA10_1>=42 && LA10_1<=43)) ) {
1055 alt10=1;
1056 }
1057
1058
1059 }
1060
1061
1062 switch (alt10) {
1063 case 1 :
1064 // InternalProblem.g:413:7: otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) )
1065 {
1066 otherlv_4=(Token)match(input,18,FOLLOW_3);
1067
1068 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
1069
1070 // InternalProblem.g:417:7: ( (lv_literals_5_0= ruleEnumLiteral ) )
1071 // InternalProblem.g:418:8: (lv_literals_5_0= ruleEnumLiteral )
1072 {
1073 // InternalProblem.g:418:8: (lv_literals_5_0= ruleEnumLiteral )
1074 // InternalProblem.g:419:9: lv_literals_5_0= ruleEnumLiteral
1075 {
1076
1077 newCompositeNode(grammarAccess.getEnumDeclarationAccess().getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0());
1078
1079 pushFollow(FOLLOW_14);
1080 lv_literals_5_0=ruleEnumLiteral();
1081
1082 state._fsp--;
1083
1084
1085 if (current==null) {
1086 current = createModelElementForParent(grammarAccess.getEnumDeclarationRule());
1087 }
1088 add(
1089 current,
1090 "literals",
1091 lv_literals_5_0,
1092 "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
1093 afterParserOrEnumRuleCall();
1094
1095
1096 }
1097
1098
1099 }
1100
1101
1102 }
1103 break;
1104
1105 default :
1106 break loop10;
1107 }
1108 } while (true);
1109
1110 // InternalProblem.g:437:6: (otherlv_6= ',' | otherlv_7= ';' )?
1111 int alt11=3;
1112 int LA11_0 = input.LA(1);
1113
1114 if ( (LA11_0==18) ) {
1115 alt11=1;
1116 }
1117 else if ( (LA11_0==20) ) {
1118 alt11=2;
1119 }
1120 switch (alt11) {
1121 case 1 :
1122 // InternalProblem.g:438:7: otherlv_6= ','
1123 {
1124 otherlv_6=(Token)match(input,18,FOLLOW_15);
1125
1126 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0());
1127
1128
1129 }
1130 break;
1131 case 2 :
1132 // InternalProblem.g:443:7: otherlv_7= ';'
1133 {
1134 otherlv_7=(Token)match(input,20,FOLLOW_15);
1135
1136 newLeafNode(otherlv_7, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1());
1137
1138
1139 }
1140 break;
1141
1142 }
1143
1144
1145 }
1146 break;
1147
1148 }
1149
1150 otherlv_8=(Token)match(input,21,FOLLOW_2);
1151
1152 newLeafNode(otherlv_8, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2());
1153
1154
1155 }
1156
1157
1158 }
1159 break;
1160 case 2 :
1161 // InternalProblem.g:455:4: otherlv_9= '.'
1162 {
1163 otherlv_9=(Token)match(input,14,FOLLOW_2);
1164
1165 newLeafNode(otherlv_9, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1());
1166
1167
1168 }
1169 break;
1170
1171 }
1172
1173
1174 }
1175
1176
1177 }
1178
1179
1180 leaveRule();
1181
1182 }
1183
1184 catch (RecognitionException re) {
1185 recover(input,re);
1186 appendSkippedTokens();
1187 }
1188 finally {
1189 }
1190 return current;
1191 }
1192 // $ANTLR end "ruleEnumDeclaration"
1193
1194
1195 // $ANTLR start "entryRuleEnumLiteral"
1196 // InternalProblem.g:464:1: entryRuleEnumLiteral returns [EObject current=null] : iv_ruleEnumLiteral= ruleEnumLiteral EOF ;
1197 public final EObject entryRuleEnumLiteral() throws RecognitionException {
1198 EObject current = null;
1199
1200 EObject iv_ruleEnumLiteral = null;
1201
1202
1203 try {
1204 // InternalProblem.g:464:52: (iv_ruleEnumLiteral= ruleEnumLiteral EOF )
1205 // InternalProblem.g:465:2: iv_ruleEnumLiteral= ruleEnumLiteral EOF
1206 {
1207 newCompositeNode(grammarAccess.getEnumLiteralRule());
1208 pushFollow(FOLLOW_1);
1209 iv_ruleEnumLiteral=ruleEnumLiteral();
1210
1211 state._fsp--;
1212
1213 current =iv_ruleEnumLiteral;
1214 match(input,EOF,FOLLOW_2);
1215
1216 }
1217
1218 }
1219
1220 catch (RecognitionException re) {
1221 recover(input,re);
1222 appendSkippedTokens();
1223 }
1224 finally {
1225 }
1226 return current;
1227 }
1228 // $ANTLR end "entryRuleEnumLiteral"
1229
1230
1231 // $ANTLR start "ruleEnumLiteral"
1232 // InternalProblem.g:471:1: ruleEnumLiteral returns [EObject current=null] : ( (lv_name_0_0= ruleIdentifier ) ) ;
1233 public final EObject ruleEnumLiteral() throws RecognitionException {
1234 EObject current = null;
1235
1236 AntlrDatatypeRuleToken lv_name_0_0 = null;
1237
1238
1239
1240 enterRule();
1241
1242 try {
1243 // InternalProblem.g:477:2: ( ( (lv_name_0_0= ruleIdentifier ) ) )
1244 // InternalProblem.g:478:2: ( (lv_name_0_0= ruleIdentifier ) )
1245 {
1246 // InternalProblem.g:478:2: ( (lv_name_0_0= ruleIdentifier ) )
1247 // InternalProblem.g:479:3: (lv_name_0_0= ruleIdentifier )
1248 {
1249 // InternalProblem.g:479:3: (lv_name_0_0= ruleIdentifier )
1250 // InternalProblem.g:480:4: lv_name_0_0= ruleIdentifier
1251 {
1252
1253 newCompositeNode(grammarAccess.getEnumLiteralAccess().getNameIdentifierParserRuleCall_0());
1254
1255 pushFollow(FOLLOW_2);
1256 lv_name_0_0=ruleIdentifier();
1257
1258 state._fsp--;
1259
1260
1261 if (current==null) {
1262 current = createModelElementForParent(grammarAccess.getEnumLiteralRule());
1263 }
1264 set(
1265 current,
1266 "name",
1267 lv_name_0_0,
1268 "org.eclipse.viatra.solver.language.Problem.Identifier");
1269 afterParserOrEnumRuleCall();
1270
1271
1272 }
1273
1274
1275 }
1276
1277
1278 }
1279
1280
1281 leaveRule();
1282
1283 }
1284
1285 catch (RecognitionException re) {
1286 recover(input,re);
1287 appendSkippedTokens();
1288 }
1289 finally {
1290 }
1291 return current;
1292 }
1293 // $ANTLR end "ruleEnumLiteral"
1294
1295
1296 // $ANTLR start "entryRuleReferenceDeclaration"
1297 // InternalProblem.g:500:1: entryRuleReferenceDeclaration returns [EObject current=null] : iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF ;
1298 public final EObject entryRuleReferenceDeclaration() throws RecognitionException {
1299 EObject current = null;
1300
1301 EObject iv_ruleReferenceDeclaration = null;
1302
1303
1304 try {
1305 // InternalProblem.g:500:61: (iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF )
1306 // InternalProblem.g:501:2: iv_ruleReferenceDeclaration= ruleReferenceDeclaration EOF
1307 {
1308 newCompositeNode(grammarAccess.getReferenceDeclarationRule());
1309 pushFollow(FOLLOW_1);
1310 iv_ruleReferenceDeclaration=ruleReferenceDeclaration();
1311
1312 state._fsp--;
1313
1314 current =iv_ruleReferenceDeclaration;
1315 match(input,EOF,FOLLOW_2);
1316
1317 }
1318
1319 }
1320
1321 catch (RecognitionException re) {
1322 recover(input,re);
1323 appendSkippedTokens();
1324 }
1325 finally {
1326 }
1327 return current;
1328 }
1329 // $ANTLR end "entryRuleReferenceDeclaration"
1330
1331
1332 // $ANTLR start "ruleReferenceDeclaration"
1333 // InternalProblem.g:507: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 ) ) )? ) ;
1334 public final EObject ruleReferenceDeclaration() throws RecognitionException {
1335 EObject current = null;
1336
1337 Token lv_containment_0_0=null;
1338 Token otherlv_1=null;
1339 Token otherlv_3=null;
1340 Token otherlv_5=null;
1341 Token otherlv_7=null;
1342 EObject lv_multiplicity_4_0 = null;
1343
1344 AntlrDatatypeRuleToken lv_name_6_0 = null;
1345
1346
1347
1348 enterRule();
1349
1350 try {
1351 // InternalProblem.g:513: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 ) ) )? ) )
1352 // InternalProblem.g:514: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 ) ) )? )
1353 {
1354 // InternalProblem.g:514: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 ) ) )? )
1355 // InternalProblem.g:515: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 ) ) )?
1356 {
1357 // InternalProblem.g:515:3: ( ( (lv_containment_0_0= 'contains' ) ) | otherlv_1= 'refers' )?
1358 int alt14=3;
1359 int LA14_0 = input.LA(1);
1360
1361 if ( (LA14_0==23) ) {
1362 alt14=1;
1363 }
1364 else if ( (LA14_0==24) ) {
1365 alt14=2;
1366 }
1367 switch (alt14) {
1368 case 1 :
1369 // InternalProblem.g:516:4: ( (lv_containment_0_0= 'contains' ) )
1370 {
1371 // InternalProblem.g:516:4: ( (lv_containment_0_0= 'contains' ) )
1372 // InternalProblem.g:517:5: (lv_containment_0_0= 'contains' )
1373 {
1374 // InternalProblem.g:517:5: (lv_containment_0_0= 'contains' )
1375 // InternalProblem.g:518:6: lv_containment_0_0= 'contains'
1376 {
1377 lv_containment_0_0=(Token)match(input,23,FOLLOW_8);
1378
1379 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
1380
1381
1382 if (current==null) {
1383 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1384 }
1385 setWithLastConsumed(current, "containment", lv_containment_0_0 != null, "contains");
1386
1387
1388 }
1389
1390
1391 }
1392
1393
1394 }
1395 break;
1396 case 2 :
1397 // InternalProblem.g:531:4: otherlv_1= 'refers'
1398 {
1399 otherlv_1=(Token)match(input,24,FOLLOW_8);
1400
1401 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
1402
1403
1404 }
1405 break;
1406
1407 }
1408
1409 // InternalProblem.g:536:3: ( ( ruleQualifiedName ) )
1410 // InternalProblem.g:537:4: ( ruleQualifiedName )
1411 {
1412 // InternalProblem.g:537:4: ( ruleQualifiedName )
1413 // InternalProblem.g:538:5: ruleQualifiedName
1414 {
1415
1416 if (current==null) {
1417 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1418 }
1419
1420
1421 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getReferenceTypeRelationCrossReference_1_0());
1422
1423 pushFollow(FOLLOW_16);
1424 ruleQualifiedName();
1425
1426 state._fsp--;
1427
1428
1429 afterParserOrEnumRuleCall();
1430
1431
1432 }
1433
1434
1435 }
1436
1437 // InternalProblem.g:552:3: (otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' )?
1438 int alt15=2;
1439 int LA15_0 = input.LA(1);
1440
1441 if ( (LA15_0==25) ) {
1442 alt15=1;
1443 }
1444 switch (alt15) {
1445 case 1 :
1446 // InternalProblem.g:553:4: otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']'
1447 {
1448 otherlv_3=(Token)match(input,25,FOLLOW_17);
1449
1450 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0());
1451
1452 // InternalProblem.g:557:4: ( (lv_multiplicity_4_0= ruleMultiplicity ) )
1453 // InternalProblem.g:558:5: (lv_multiplicity_4_0= ruleMultiplicity )
1454 {
1455 // InternalProblem.g:558:5: (lv_multiplicity_4_0= ruleMultiplicity )
1456 // InternalProblem.g:559:6: lv_multiplicity_4_0= ruleMultiplicity
1457 {
1458
1459 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getMultiplicityMultiplicityParserRuleCall_2_1_0());
1460
1461 pushFollow(FOLLOW_18);
1462 lv_multiplicity_4_0=ruleMultiplicity();
1463
1464 state._fsp--;
1465
1466
1467 if (current==null) {
1468 current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
1469 }
1470 set(
1471 current,
1472 "multiplicity",
1473 lv_multiplicity_4_0,
1474 "org.eclipse.viatra.solver.language.Problem.Multiplicity");
1475 afterParserOrEnumRuleCall();
1476
1477
1478 }
1479
1480
1481 }
1482
1483 otherlv_5=(Token)match(input,26,FOLLOW_3);
1484
1485 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2());
1486
1487
1488 }
1489 break;
1490
1491 }
1492
1493 // InternalProblem.g:581:3: ( (lv_name_6_0= ruleIdentifier ) )
1494 // InternalProblem.g:582:4: (lv_name_6_0= ruleIdentifier )
1495 {
1496 // InternalProblem.g:582:4: (lv_name_6_0= ruleIdentifier )
1497 // InternalProblem.g:583:5: lv_name_6_0= ruleIdentifier
1498 {
1499
1500 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getNameIdentifierParserRuleCall_3_0());
1501
1502 pushFollow(FOLLOW_19);
1503 lv_name_6_0=ruleIdentifier();
1504
1505 state._fsp--;
1506
1507
1508 if (current==null) {
1509 current = createModelElementForParent(grammarAccess.getReferenceDeclarationRule());
1510 }
1511 set(
1512 current,
1513 "name",
1514 lv_name_6_0,
1515 "org.eclipse.viatra.solver.language.Problem.Identifier");
1516 afterParserOrEnumRuleCall();
1517
1518
1519 }
1520
1521
1522 }
1523
1524 // InternalProblem.g:600:3: (otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) )?
1525 int alt16=2;
1526 int LA16_0 = input.LA(1);
1527
1528 if ( (LA16_0==27) ) {
1529 alt16=1;
1530 }
1531 switch (alt16) {
1532 case 1 :
1533 // InternalProblem.g:601:4: otherlv_7= 'opposite' ( ( ruleQualifiedName ) )
1534 {
1535 otherlv_7=(Token)match(input,27,FOLLOW_8);
1536
1537 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0());
1538
1539 // InternalProblem.g:605:4: ( ( ruleQualifiedName ) )
1540 // InternalProblem.g:606:5: ( ruleQualifiedName )
1541 {
1542 // InternalProblem.g:606:5: ( ruleQualifiedName )
1543 // InternalProblem.g:607:6: ruleQualifiedName
1544 {
1545
1546 if (current==null) {
1547 current = createModelElement(grammarAccess.getReferenceDeclarationRule());
1548 }
1549
1550
1551 newCompositeNode(grammarAccess.getReferenceDeclarationAccess().getOppositeReferenceDeclarationCrossReference_4_1_0());
1552
1553 pushFollow(FOLLOW_2);
1554 ruleQualifiedName();
1555
1556 state._fsp--;
1557
1558
1559 afterParserOrEnumRuleCall();
1560
1561
1562 }
1563
1564
1565 }
1566
1567
1568 }
1569 break;
1570
1571 }
1572
1573
1574 }
1575
1576
1577 }
1578
1579
1580 leaveRule();
1581
1582 }
1583
1584 catch (RecognitionException re) {
1585 recover(input,re);
1586 appendSkippedTokens();
1587 }
1588 finally {
1589 }
1590 return current;
1591 }
1592 // $ANTLR end "ruleReferenceDeclaration"
1593
1594
1595 // $ANTLR start "entryRulePredicateDefinition"
1596 // InternalProblem.g:626:1: entryRulePredicateDefinition returns [EObject current=null] : iv_rulePredicateDefinition= rulePredicateDefinition EOF ;
1597 public final EObject entryRulePredicateDefinition() throws RecognitionException {
1598 EObject current = null;
1599
1600 EObject iv_rulePredicateDefinition = null;
1601
1602
1603 try {
1604 // InternalProblem.g:626:60: (iv_rulePredicateDefinition= rulePredicateDefinition EOF )
1605 // InternalProblem.g:627:2: iv_rulePredicateDefinition= rulePredicateDefinition EOF
1606 {
1607 newCompositeNode(grammarAccess.getPredicateDefinitionRule());
1608 pushFollow(FOLLOW_1);
1609 iv_rulePredicateDefinition=rulePredicateDefinition();
1610
1611 state._fsp--;
1612
1613 current =iv_rulePredicateDefinition;
1614 match(input,EOF,FOLLOW_2);
1615
1616 }
1617
1618 }
1619
1620 catch (RecognitionException re) {
1621 recover(input,re);
1622 appendSkippedTokens();
1623 }
1624 finally {
1625 }
1626 return current;
1627 }
1628 // $ANTLR end "entryRulePredicateDefinition"
1629
1630
1631 // $ANTLR start "rulePredicateDefinition"
1632 // InternalProblem.g:633: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= '.' ) ;
1633 public final EObject rulePredicateDefinition() throws RecognitionException {
1634 EObject current = null;
1635
1636 Token lv_error_0_0=null;
1637 Token otherlv_1=null;
1638 Token otherlv_2=null;
1639 Token otherlv_4=null;
1640 Token otherlv_6=null;
1641 Token otherlv_8=null;
1642 Token otherlv_9=null;
1643 Token otherlv_11=null;
1644 Token otherlv_13=null;
1645 AntlrDatatypeRuleToken lv_name_3_0 = null;
1646
1647 EObject lv_parameters_5_0 = null;
1648
1649 EObject lv_parameters_7_0 = null;
1650
1651 EObject lv_bodies_10_0 = null;
1652
1653 EObject lv_bodies_12_0 = null;
1654
1655
1656
1657 enterRule();
1658
1659 try {
1660 // InternalProblem.g:639: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= '.' ) )
1661 // InternalProblem.g:640: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= '.' )
1662 {
1663 // InternalProblem.g:640: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= '.' )
1664 // InternalProblem.g:641: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= '.'
1665 {
1666 // InternalProblem.g:641:3: ( ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? ) | otherlv_2= 'pred' )
1667 int alt18=2;
1668 int LA18_0 = input.LA(1);
1669
1670 if ( (LA18_0==28) ) {
1671 alt18=1;
1672 }
1673 else if ( (LA18_0==29) ) {
1674 alt18=2;
1675 }
1676 else {
1677 NoViableAltException nvae =
1678 new NoViableAltException("", 18, 0, input);
1679
1680 throw nvae;
1681 }
1682 switch (alt18) {
1683 case 1 :
1684 // InternalProblem.g:642:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1685 {
1686 // InternalProblem.g:642:4: ( ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )? )
1687 // InternalProblem.g:643:5: ( (lv_error_0_0= 'error' ) ) (otherlv_1= 'pred' )?
1688 {
1689 // InternalProblem.g:643:5: ( (lv_error_0_0= 'error' ) )
1690 // InternalProblem.g:644:6: (lv_error_0_0= 'error' )
1691 {
1692 // InternalProblem.g:644:6: (lv_error_0_0= 'error' )
1693 // InternalProblem.g:645:7: lv_error_0_0= 'error'
1694 {
1695 lv_error_0_0=(Token)match(input,28,FOLLOW_20);
1696
1697 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
1698
1699
1700 if (current==null) {
1701 current = createModelElement(grammarAccess.getPredicateDefinitionRule());
1702 }
1703 setWithLastConsumed(current, "error", lv_error_0_0 != null, "error");
1704
1705
1706 }
1707
1708
1709 }
1710
1711 // InternalProblem.g:657:5: (otherlv_1= 'pred' )?
1712 int alt17=2;
1713 int LA17_0 = input.LA(1);
1714
1715 if ( (LA17_0==29) ) {
1716 alt17=1;
1717 }
1718 switch (alt17) {
1719 case 1 :
1720 // InternalProblem.g:658:6: otherlv_1= 'pred'
1721 {
1722 otherlv_1=(Token)match(input,29,FOLLOW_3);
1723
1724 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
1725
1726
1727 }
1728 break;
1729
1730 }
1731
1732
1733 }
1734
1735
1736 }
1737 break;
1738 case 2 :
1739 // InternalProblem.g:665:4: otherlv_2= 'pred'
1740 {
1741 otherlv_2=(Token)match(input,29,FOLLOW_3);
1742
1743 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
1744
1745
1746 }
1747 break;
1748
1749 }
1750
1751 // InternalProblem.g:670:3: ( (lv_name_3_0= ruleIdentifier ) )
1752 // InternalProblem.g:671:4: (lv_name_3_0= ruleIdentifier )
1753 {
1754 // InternalProblem.g:671:4: (lv_name_3_0= ruleIdentifier )
1755 // InternalProblem.g:672:5: lv_name_3_0= ruleIdentifier
1756 {
1757
1758 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getNameIdentifierParserRuleCall_1_0());
1759
1760 pushFollow(FOLLOW_21);
1761 lv_name_3_0=ruleIdentifier();
1762
1763 state._fsp--;
1764
1765
1766 if (current==null) {
1767 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1768 }
1769 set(
1770 current,
1771 "name",
1772 lv_name_3_0,
1773 "org.eclipse.viatra.solver.language.Problem.Identifier");
1774 afterParserOrEnumRuleCall();
1775
1776
1777 }
1778
1779
1780 }
1781
1782 otherlv_4=(Token)match(input,30,FOLLOW_22);
1783
1784 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
1785
1786 // InternalProblem.g:693:3: ( ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )* )?
1787 int alt20=2;
1788 int LA20_0 = input.LA(1);
1789
1790 if ( (LA20_0==RULE_ID||LA20_0==RULE_QUOTED_ID||(LA20_0>=42 && LA20_0<=43)) ) {
1791 alt20=1;
1792 }
1793 switch (alt20) {
1794 case 1 :
1795 // InternalProblem.g:694:4: ( (lv_parameters_5_0= ruleParameter ) ) (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1796 {
1797 // InternalProblem.g:694:4: ( (lv_parameters_5_0= ruleParameter ) )
1798 // InternalProblem.g:695:5: (lv_parameters_5_0= ruleParameter )
1799 {
1800 // InternalProblem.g:695:5: (lv_parameters_5_0= ruleParameter )
1801 // InternalProblem.g:696:6: lv_parameters_5_0= ruleParameter
1802 {
1803
1804 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_0_0());
1805
1806 pushFollow(FOLLOW_23);
1807 lv_parameters_5_0=ruleParameter();
1808
1809 state._fsp--;
1810
1811
1812 if (current==null) {
1813 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1814 }
1815 add(
1816 current,
1817 "parameters",
1818 lv_parameters_5_0,
1819 "org.eclipse.viatra.solver.language.Problem.Parameter");
1820 afterParserOrEnumRuleCall();
1821
1822
1823 }
1824
1825
1826 }
1827
1828 // InternalProblem.g:713:4: (otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) )*
1829 loop19:
1830 do {
1831 int alt19=2;
1832 int LA19_0 = input.LA(1);
1833
1834 if ( (LA19_0==18) ) {
1835 alt19=1;
1836 }
1837
1838
1839 switch (alt19) {
1840 case 1 :
1841 // InternalProblem.g:714:5: otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) )
1842 {
1843 otherlv_6=(Token)match(input,18,FOLLOW_8);
1844
1845 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
1846
1847 // InternalProblem.g:718:5: ( (lv_parameters_7_0= ruleParameter ) )
1848 // InternalProblem.g:719:6: (lv_parameters_7_0= ruleParameter )
1849 {
1850 // InternalProblem.g:719:6: (lv_parameters_7_0= ruleParameter )
1851 // InternalProblem.g:720:7: lv_parameters_7_0= ruleParameter
1852 {
1853
1854 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getParametersParameterParserRuleCall_3_1_1_0());
1855
1856 pushFollow(FOLLOW_23);
1857 lv_parameters_7_0=ruleParameter();
1858
1859 state._fsp--;
1860
1861
1862 if (current==null) {
1863 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1864 }
1865 add(
1866 current,
1867 "parameters",
1868 lv_parameters_7_0,
1869 "org.eclipse.viatra.solver.language.Problem.Parameter");
1870 afterParserOrEnumRuleCall();
1871
1872
1873 }
1874
1875
1876 }
1877
1878
1879 }
1880 break;
1881
1882 default :
1883 break loop19;
1884 }
1885 } while (true);
1886
1887
1888 }
1889 break;
1890
1891 }
1892
1893 otherlv_8=(Token)match(input,31,FOLLOW_24);
1894
1895 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
1896
1897 // InternalProblem.g:743:3: (otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* )?
1898 int alt22=2;
1899 int LA22_0 = input.LA(1);
1900
1901 if ( (LA22_0==32) ) {
1902 alt22=1;
1903 }
1904 switch (alt22) {
1905 case 1 :
1906 // InternalProblem.g:744:4: otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1907 {
1908 otherlv_9=(Token)match(input,32,FOLLOW_25);
1909
1910 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0());
1911
1912 // InternalProblem.g:748:4: ( (lv_bodies_10_0= ruleConjunction ) )
1913 // InternalProblem.g:749:5: (lv_bodies_10_0= ruleConjunction )
1914 {
1915 // InternalProblem.g:749:5: (lv_bodies_10_0= ruleConjunction )
1916 // InternalProblem.g:750:6: lv_bodies_10_0= ruleConjunction
1917 {
1918
1919 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_1_0());
1920
1921 pushFollow(FOLLOW_26);
1922 lv_bodies_10_0=ruleConjunction();
1923
1924 state._fsp--;
1925
1926
1927 if (current==null) {
1928 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1929 }
1930 add(
1931 current,
1932 "bodies",
1933 lv_bodies_10_0,
1934 "org.eclipse.viatra.solver.language.Problem.Conjunction");
1935 afterParserOrEnumRuleCall();
1936
1937
1938 }
1939
1940
1941 }
1942
1943 // InternalProblem.g:767:4: (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1944 loop21:
1945 do {
1946 int alt21=2;
1947 int LA21_0 = input.LA(1);
1948
1949 if ( (LA21_0==20) ) {
1950 alt21=1;
1951 }
1952
1953
1954 switch (alt21) {
1955 case 1 :
1956 // InternalProblem.g:768:5: otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) )
1957 {
1958 otherlv_11=(Token)match(input,20,FOLLOW_25);
1959
1960 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
1961
1962 // InternalProblem.g:772:5: ( (lv_bodies_12_0= ruleConjunction ) )
1963 // InternalProblem.g:773:6: (lv_bodies_12_0= ruleConjunction )
1964 {
1965 // InternalProblem.g:773:6: (lv_bodies_12_0= ruleConjunction )
1966 // InternalProblem.g:774:7: lv_bodies_12_0= ruleConjunction
1967 {
1968
1969 newCompositeNode(grammarAccess.getPredicateDefinitionAccess().getBodiesConjunctionParserRuleCall_5_2_1_0());
1970
1971 pushFollow(FOLLOW_26);
1972 lv_bodies_12_0=ruleConjunction();
1973
1974 state._fsp--;
1975
1976
1977 if (current==null) {
1978 current = createModelElementForParent(grammarAccess.getPredicateDefinitionRule());
1979 }
1980 add(
1981 current,
1982 "bodies",
1983 lv_bodies_12_0,
1984 "org.eclipse.viatra.solver.language.Problem.Conjunction");
1985 afterParserOrEnumRuleCall();
1986
1987
1988 }
1989
1990
1991 }
1992
1993
1994 }
1995 break;
1996
1997 default :
1998 break loop21;
1999 }
2000 } while (true);
2001
2002
2003 }
2004 break;
2005
2006 }
2007
2008 otherlv_13=(Token)match(input,14,FOLLOW_2);
2009
2010 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
2011
2012
2013 }
2014
2015
2016 }
2017
2018
2019 leaveRule();
2020
2021 }
2022
2023 catch (RecognitionException re) {
2024 recover(input,re);
2025 appendSkippedTokens();
2026 }
2027 finally {
2028 }
2029 return current;
2030 }
2031 // $ANTLR end "rulePredicateDefinition"
2032
2033
2034 // $ANTLR start "entryRuleParameter"
2035 // InternalProblem.g:801:1: entryRuleParameter returns [EObject current=null] : iv_ruleParameter= ruleParameter EOF ;
2036 public final EObject entryRuleParameter() throws RecognitionException {
2037 EObject current = null;
2038
2039 EObject iv_ruleParameter = null;
2040
2041
2042 try {
2043 // InternalProblem.g:801:50: (iv_ruleParameter= ruleParameter EOF )
2044 // InternalProblem.g:802:2: iv_ruleParameter= ruleParameter EOF
2045 {
2046 newCompositeNode(grammarAccess.getParameterRule());
2047 pushFollow(FOLLOW_1);
2048 iv_ruleParameter=ruleParameter();
2049
2050 state._fsp--;
2051
2052 current =iv_ruleParameter;
2053 match(input,EOF,FOLLOW_2);
2054
2055 }
2056
2057 }
2058
2059 catch (RecognitionException re) {
2060 recover(input,re);
2061 appendSkippedTokens();
2062 }
2063 finally {
2064 }
2065 return current;
2066 }
2067 // $ANTLR end "entryRuleParameter"
2068
2069
2070 // $ANTLR start "ruleParameter"
2071 // InternalProblem.g:808:1: ruleParameter returns [EObject current=null] : ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) ) ;
2072 public final EObject ruleParameter() throws RecognitionException {
2073 EObject current = null;
2074
2075 AntlrDatatypeRuleToken lv_name_1_0 = null;
2076
2077
2078
2079 enterRule();
2080
2081 try {
2082 // InternalProblem.g:814:2: ( ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) ) )
2083 // InternalProblem.g:815:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) )
2084 {
2085 // InternalProblem.g:815:2: ( ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) ) )
2086 // InternalProblem.g:816:3: ( ( ruleQualifiedName ) )? ( (lv_name_1_0= ruleIdentifier ) )
2087 {
2088 // InternalProblem.g:816:3: ( ( ruleQualifiedName ) )?
2089 int alt23=2;
2090 switch ( input.LA(1) ) {
2091 case RULE_QUOTED_ID:
2092 {
2093 alt23=1;
2094 }
2095 break;
2096 case RULE_ID:
2097 {
2098 int LA23_2 = input.LA(2);
2099
2100 if ( (LA23_2==RULE_ID||(LA23_2>=41 && LA23_2<=43)) ) {
2101 alt23=1;
2102 }
2103 }
2104 break;
2105 case 42:
2106 {
2107 int LA23_3 = input.LA(2);
2108
2109 if ( (LA23_3==RULE_ID||(LA23_3>=41 && LA23_3<=43)) ) {
2110 alt23=1;
2111 }
2112 }
2113 break;
2114 case 43:
2115 {
2116 int LA23_4 = input.LA(2);
2117
2118 if ( (LA23_4==RULE_ID||(LA23_4>=41 && LA23_4<=43)) ) {
2119 alt23=1;
2120 }
2121 }
2122 break;
2123 }
2124
2125 switch (alt23) {
2126 case 1 :
2127 // InternalProblem.g:817:4: ( ruleQualifiedName )
2128 {
2129 // InternalProblem.g:817:4: ( ruleQualifiedName )
2130 // InternalProblem.g:818:5: ruleQualifiedName
2131 {
2132
2133 if (current==null) {
2134 current = createModelElement(grammarAccess.getParameterRule());
2135 }
2136
2137
2138 newCompositeNode(grammarAccess.getParameterAccess().getParameterTypeRelationCrossReference_0_0());
2139
2140 pushFollow(FOLLOW_3);
2141 ruleQualifiedName();
2142
2143 state._fsp--;
2144
2145
2146 afterParserOrEnumRuleCall();
2147
2148
2149 }
2150
2151
2152 }
2153 break;
2154
2155 }
2156
2157 // InternalProblem.g:832:3: ( (lv_name_1_0= ruleIdentifier ) )
2158 // InternalProblem.g:833:4: (lv_name_1_0= ruleIdentifier )
2159 {
2160 // InternalProblem.g:833:4: (lv_name_1_0= ruleIdentifier )
2161 // InternalProblem.g:834:5: lv_name_1_0= ruleIdentifier
2162 {
2163
2164 newCompositeNode(grammarAccess.getParameterAccess().getNameIdentifierParserRuleCall_1_0());
2165
2166 pushFollow(FOLLOW_2);
2167 lv_name_1_0=ruleIdentifier();
2168
2169 state._fsp--;
2170
2171
2172 if (current==null) {
2173 current = createModelElementForParent(grammarAccess.getParameterRule());
2174 }
2175 set(
2176 current,
2177 "name",
2178 lv_name_1_0,
2179 "org.eclipse.viatra.solver.language.Problem.Identifier");
2180 afterParserOrEnumRuleCall();
2181
2182
2183 }
2184
2185
2186 }
2187
2188
2189 }
2190
2191
2192 }
2193
2194
2195 leaveRule();
2196
2197 }
2198
2199 catch (RecognitionException re) {
2200 recover(input,re);
2201 appendSkippedTokens();
2202 }
2203 finally {
2204 }
2205 return current;
2206 }
2207 // $ANTLR end "ruleParameter"
2208
2209
2210 // $ANTLR start "entryRuleConjunction"
2211 // InternalProblem.g:855:1: entryRuleConjunction returns [EObject current=null] : iv_ruleConjunction= ruleConjunction EOF ;
2212 public final EObject entryRuleConjunction() throws RecognitionException {
2213 EObject current = null;
2214
2215 EObject iv_ruleConjunction = null;
2216
2217
2218 try {
2219 // InternalProblem.g:855:52: (iv_ruleConjunction= ruleConjunction EOF )
2220 // InternalProblem.g:856:2: iv_ruleConjunction= ruleConjunction EOF
2221 {
2222 newCompositeNode(grammarAccess.getConjunctionRule());
2223 pushFollow(FOLLOW_1);
2224 iv_ruleConjunction=ruleConjunction();
2225
2226 state._fsp--;
2227
2228 current =iv_ruleConjunction;
2229 match(input,EOF,FOLLOW_2);
2230
2231 }
2232
2233 }
2234
2235 catch (RecognitionException re) {
2236 recover(input,re);
2237 appendSkippedTokens();
2238 }
2239 finally {
2240 }
2241 return current;
2242 }
2243 // $ANTLR end "entryRuleConjunction"
2244
2245
2246 // $ANTLR start "ruleConjunction"
2247 // InternalProblem.g:862:1: ruleConjunction returns [EObject current=null] : ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) ;
2248 public final EObject ruleConjunction() throws RecognitionException {
2249 EObject current = null;
2250
2251 Token otherlv_1=null;
2252 EObject lv_literals_0_0 = null;
2253
2254 EObject lv_literals_2_0 = null;
2255
2256
2257
2258 enterRule();
2259
2260 try {
2261 // InternalProblem.g:868:2: ( ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* ) )
2262 // InternalProblem.g:869:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
2263 {
2264 // InternalProblem.g:869:2: ( ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )* )
2265 // InternalProblem.g:870:3: ( (lv_literals_0_0= ruleLiteral ) ) (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
2266 {
2267 // InternalProblem.g:870:3: ( (lv_literals_0_0= ruleLiteral ) )
2268 // InternalProblem.g:871:4: (lv_literals_0_0= ruleLiteral )
2269 {
2270 // InternalProblem.g:871:4: (lv_literals_0_0= ruleLiteral )
2271 // InternalProblem.g:872:5: lv_literals_0_0= ruleLiteral
2272 {
2273
2274 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_0_0());
2275
2276 pushFollow(FOLLOW_27);
2277 lv_literals_0_0=ruleLiteral();
2278
2279 state._fsp--;
2280
2281
2282 if (current==null) {
2283 current = createModelElementForParent(grammarAccess.getConjunctionRule());
2284 }
2285 add(
2286 current,
2287 "literals",
2288 lv_literals_0_0,
2289 "org.eclipse.viatra.solver.language.Problem.Literal");
2290 afterParserOrEnumRuleCall();
2291
2292
2293 }
2294
2295
2296 }
2297
2298 // InternalProblem.g:889:3: (otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) )*
2299 loop24:
2300 do {
2301 int alt24=2;
2302 int LA24_0 = input.LA(1);
2303
2304 if ( (LA24_0==18) ) {
2305 alt24=1;
2306 }
2307
2308
2309 switch (alt24) {
2310 case 1 :
2311 // InternalProblem.g:890:4: otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) )
2312 {
2313 otherlv_1=(Token)match(input,18,FOLLOW_25);
2314
2315 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
2316
2317 // InternalProblem.g:894:4: ( (lv_literals_2_0= ruleLiteral ) )
2318 // InternalProblem.g:895:5: (lv_literals_2_0= ruleLiteral )
2319 {
2320 // InternalProblem.g:895:5: (lv_literals_2_0= ruleLiteral )
2321 // InternalProblem.g:896:6: lv_literals_2_0= ruleLiteral
2322 {
2323
2324 newCompositeNode(grammarAccess.getConjunctionAccess().getLiteralsLiteralParserRuleCall_1_1_0());
2325
2326 pushFollow(FOLLOW_27);
2327 lv_literals_2_0=ruleLiteral();
2328
2329 state._fsp--;
2330
2331
2332 if (current==null) {
2333 current = createModelElementForParent(grammarAccess.getConjunctionRule());
2334 }
2335 add(
2336 current,
2337 "literals",
2338 lv_literals_2_0,
2339 "org.eclipse.viatra.solver.language.Problem.Literal");
2340 afterParserOrEnumRuleCall();
2341
2342
2343 }
2344
2345
2346 }
2347
2348
2349 }
2350 break;
2351
2352 default :
2353 break loop24;
2354 }
2355 } while (true);
2356
2357
2358 }
2359
2360
2361 }
2362
2363
2364 leaveRule();
2365
2366 }
2367
2368 catch (RecognitionException re) {
2369 recover(input,re);
2370 appendSkippedTokens();
2371 }
2372 finally {
2373 }
2374 return current;
2375 }
2376 // $ANTLR end "ruleConjunction"
2377
2378
2379 // $ANTLR start "entryRuleLiteral"
2380 // InternalProblem.g:918:1: entryRuleLiteral returns [EObject current=null] : iv_ruleLiteral= ruleLiteral EOF ;
2381 public final EObject entryRuleLiteral() throws RecognitionException {
2382 EObject current = null;
2383
2384 EObject iv_ruleLiteral = null;
2385
2386
2387 try {
2388 // InternalProblem.g:918:48: (iv_ruleLiteral= ruleLiteral EOF )
2389 // InternalProblem.g:919:2: iv_ruleLiteral= ruleLiteral EOF
2390 {
2391 newCompositeNode(grammarAccess.getLiteralRule());
2392 pushFollow(FOLLOW_1);
2393 iv_ruleLiteral=ruleLiteral();
2394
2395 state._fsp--;
2396
2397 current =iv_ruleLiteral;
2398 match(input,EOF,FOLLOW_2);
2399
2400 }
2401
2402 }
2403
2404 catch (RecognitionException re) {
2405 recover(input,re);
2406 appendSkippedTokens();
2407 }
2408 finally {
2409 }
2410 return current;
2411 }
2412 // $ANTLR end "entryRuleLiteral"
2413
2414
2415 // $ANTLR start "ruleLiteral"
2416 // InternalProblem.g:925:1: ruleLiteral returns [EObject current=null] : (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) ;
2417 public final EObject ruleLiteral() throws RecognitionException {
2418 EObject current = null;
2419
2420 EObject this_Atom_0 = null;
2421
2422 EObject this_NegativeLiteral_1 = null;
2423
2424
2425
2426 enterRule();
2427
2428 try {
2429 // InternalProblem.g:931:2: ( (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral ) )
2430 // InternalProblem.g:932:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
2431 {
2432 // InternalProblem.g:932:2: (this_Atom_0= ruleAtom | this_NegativeLiteral_1= ruleNegativeLiteral )
2433 int alt25=2;
2434 int LA25_0 = input.LA(1);
2435
2436 if ( (LA25_0==RULE_ID||LA25_0==RULE_QUOTED_ID||(LA25_0>=42 && LA25_0<=43)) ) {
2437 alt25=1;
2438 }
2439 else if ( (LA25_0==33) ) {
2440 alt25=2;
2441 }
2442 else {
2443 NoViableAltException nvae =
2444 new NoViableAltException("", 25, 0, input);
2445
2446 throw nvae;
2447 }
2448 switch (alt25) {
2449 case 1 :
2450 // InternalProblem.g:933:3: this_Atom_0= ruleAtom
2451 {
2452
2453 newCompositeNode(grammarAccess.getLiteralAccess().getAtomParserRuleCall_0());
2454
2455 pushFollow(FOLLOW_2);
2456 this_Atom_0=ruleAtom();
2457
2458 state._fsp--;
2459
2460
2461 current = this_Atom_0;
2462 afterParserOrEnumRuleCall();
2463
2464
2465 }
2466 break;
2467 case 2 :
2468 // InternalProblem.g:942:3: this_NegativeLiteral_1= ruleNegativeLiteral
2469 {
2470
2471 newCompositeNode(grammarAccess.getLiteralAccess().getNegativeLiteralParserRuleCall_1());
2472
2473 pushFollow(FOLLOW_2);
2474 this_NegativeLiteral_1=ruleNegativeLiteral();
2475
2476 state._fsp--;
2477
2478
2479 current = this_NegativeLiteral_1;
2480 afterParserOrEnumRuleCall();
2481
2482
2483 }
2484 break;
2485
2486 }
2487
2488
2489 }
2490
2491
2492 leaveRule();
2493
2494 }
2495
2496 catch (RecognitionException re) {
2497 recover(input,re);
2498 appendSkippedTokens();
2499 }
2500 finally {
2501 }
2502 return current;
2503 }
2504 // $ANTLR end "ruleLiteral"
2505
2506
2507 // $ANTLR start "entryRuleNegativeLiteral"
2508 // InternalProblem.g:954:1: entryRuleNegativeLiteral returns [EObject current=null] : iv_ruleNegativeLiteral= ruleNegativeLiteral EOF ;
2509 public final EObject entryRuleNegativeLiteral() throws RecognitionException {
2510 EObject current = null;
2511
2512 EObject iv_ruleNegativeLiteral = null;
2513
2514
2515 try {
2516 // InternalProblem.g:954:56: (iv_ruleNegativeLiteral= ruleNegativeLiteral EOF )
2517 // InternalProblem.g:955:2: iv_ruleNegativeLiteral= ruleNegativeLiteral EOF
2518 {
2519 newCompositeNode(grammarAccess.getNegativeLiteralRule());
2520 pushFollow(FOLLOW_1);
2521 iv_ruleNegativeLiteral=ruleNegativeLiteral();
2522
2523 state._fsp--;
2524
2525 current =iv_ruleNegativeLiteral;
2526 match(input,EOF,FOLLOW_2);
2527
2528 }
2529
2530 }
2531
2532 catch (RecognitionException re) {
2533 recover(input,re);
2534 appendSkippedTokens();
2535 }
2536 finally {
2537 }
2538 return current;
2539 }
2540 // $ANTLR end "entryRuleNegativeLiteral"
2541
2542
2543 // $ANTLR start "ruleNegativeLiteral"
2544 // InternalProblem.g:961:1: ruleNegativeLiteral returns [EObject current=null] : (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) ;
2545 public final EObject ruleNegativeLiteral() throws RecognitionException {
2546 EObject current = null;
2547
2548 Token otherlv_0=null;
2549 EObject lv_atom_1_0 = null;
2550
2551
2552
2553 enterRule();
2554
2555 try {
2556 // InternalProblem.g:967:2: ( (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) )
2557 // InternalProblem.g:968:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2558 {
2559 // InternalProblem.g:968:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2560 // InternalProblem.g:969:3: otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) )
2561 {
2562 otherlv_0=(Token)match(input,33,FOLLOW_8);
2563
2564 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
2565
2566 // InternalProblem.g:973:3: ( (lv_atom_1_0= ruleAtom ) )
2567 // InternalProblem.g:974:4: (lv_atom_1_0= ruleAtom )
2568 {
2569 // InternalProblem.g:974:4: (lv_atom_1_0= ruleAtom )
2570 // InternalProblem.g:975:5: lv_atom_1_0= ruleAtom
2571 {
2572
2573 newCompositeNode(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0());
2574
2575 pushFollow(FOLLOW_2);
2576 lv_atom_1_0=ruleAtom();
2577
2578 state._fsp--;
2579
2580
2581 if (current==null) {
2582 current = createModelElementForParent(grammarAccess.getNegativeLiteralRule());
2583 }
2584 set(
2585 current,
2586 "atom",
2587 lv_atom_1_0,
2588 "org.eclipse.viatra.solver.language.Problem.Atom");
2589 afterParserOrEnumRuleCall();
2590
2591
2592 }
2593
2594
2595 }
2596
2597
2598 }
2599
2600
2601 }
2602
2603
2604 leaveRule();
2605
2606 }
2607
2608 catch (RecognitionException re) {
2609 recover(input,re);
2610 appendSkippedTokens();
2611 }
2612 finally {
2613 }
2614 return current;
2615 }
2616 // $ANTLR end "ruleNegativeLiteral"
2617
2618
2619 // $ANTLR start "entryRuleAtom"
2620 // InternalProblem.g:996:1: entryRuleAtom returns [EObject current=null] : iv_ruleAtom= ruleAtom EOF ;
2621 public final EObject entryRuleAtom() throws RecognitionException {
2622 EObject current = null;
2623
2624 EObject iv_ruleAtom = null;
2625
2626
2627 try {
2628 // InternalProblem.g:996:45: (iv_ruleAtom= ruleAtom EOF )
2629 // InternalProblem.g:997:2: iv_ruleAtom= ruleAtom EOF
2630 {
2631 newCompositeNode(grammarAccess.getAtomRule());
2632 pushFollow(FOLLOW_1);
2633 iv_ruleAtom=ruleAtom();
2634
2635 state._fsp--;
2636
2637 current =iv_ruleAtom;
2638 match(input,EOF,FOLLOW_2);
2639
2640 }
2641
2642 }
2643
2644 catch (RecognitionException re) {
2645 recover(input,re);
2646 appendSkippedTokens();
2647 }
2648 finally {
2649 }
2650 return current;
2651 }
2652 // $ANTLR end "entryRuleAtom"
2653
2654
2655 // $ANTLR start "ruleAtom"
2656 // InternalProblem.g:1003: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= ')' ) ;
2657 public final EObject ruleAtom() throws RecognitionException {
2658 EObject current = null;
2659
2660 Token lv_transitiveClosure_1_0=null;
2661 Token otherlv_2=null;
2662 Token otherlv_4=null;
2663 Token otherlv_6=null;
2664 EObject lv_arguments_3_0 = null;
2665
2666 EObject lv_arguments_5_0 = null;
2667
2668
2669
2670 enterRule();
2671
2672 try {
2673 // InternalProblem.g:1009:2: ( ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' ) )
2674 // InternalProblem.g:1010:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' )
2675 {
2676 // InternalProblem.g:1010:2: ( ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')' )
2677 // InternalProblem.g:1011:3: ( ( ruleQualifiedName ) ) ( (lv_transitiveClosure_1_0= '+' ) )? otherlv_2= '(' ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )? otherlv_6= ')'
2678 {
2679 // InternalProblem.g:1011:3: ( ( ruleQualifiedName ) )
2680 // InternalProblem.g:1012:4: ( ruleQualifiedName )
2681 {
2682 // InternalProblem.g:1012:4: ( ruleQualifiedName )
2683 // InternalProblem.g:1013:5: ruleQualifiedName
2684 {
2685
2686 if (current==null) {
2687 current = createModelElement(grammarAccess.getAtomRule());
2688 }
2689
2690
2691 newCompositeNode(grammarAccess.getAtomAccess().getRelationRelationCrossReference_0_0());
2692
2693 pushFollow(FOLLOW_28);
2694 ruleQualifiedName();
2695
2696 state._fsp--;
2697
2698
2699 afterParserOrEnumRuleCall();
2700
2701
2702 }
2703
2704
2705 }
2706
2707 // InternalProblem.g:1027:3: ( (lv_transitiveClosure_1_0= '+' ) )?
2708 int alt26=2;
2709 int LA26_0 = input.LA(1);
2710
2711 if ( (LA26_0==34) ) {
2712 alt26=1;
2713 }
2714 switch (alt26) {
2715 case 1 :
2716 // InternalProblem.g:1028:4: (lv_transitiveClosure_1_0= '+' )
2717 {
2718 // InternalProblem.g:1028:4: (lv_transitiveClosure_1_0= '+' )
2719 // InternalProblem.g:1029:5: lv_transitiveClosure_1_0= '+'
2720 {
2721 lv_transitiveClosure_1_0=(Token)match(input,34,FOLLOW_21);
2722
2723 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
2724
2725
2726 if (current==null) {
2727 current = createModelElement(grammarAccess.getAtomRule());
2728 }
2729 setWithLastConsumed(current, "transitiveClosure", lv_transitiveClosure_1_0 != null, "+");
2730
2731
2732 }
2733
2734
2735 }
2736 break;
2737
2738 }
2739
2740 otherlv_2=(Token)match(input,30,FOLLOW_29);
2741
2742 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
2743
2744 // InternalProblem.g:1045:3: ( ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )* )?
2745 int alt28=2;
2746 int LA28_0 = input.LA(1);
2747
2748 if ( ((LA28_0>=RULE_STRING && LA28_0<=RULE_EXPONENTIAL)||(LA28_0>=42 && LA28_0<=44)) ) {
2749 alt28=1;
2750 }
2751 switch (alt28) {
2752 case 1 :
2753 // InternalProblem.g:1046:4: ( (lv_arguments_3_0= ruleArgument ) ) (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )*
2754 {
2755 // InternalProblem.g:1046:4: ( (lv_arguments_3_0= ruleArgument ) )
2756 // InternalProblem.g:1047:5: (lv_arguments_3_0= ruleArgument )
2757 {
2758 // InternalProblem.g:1047:5: (lv_arguments_3_0= ruleArgument )
2759 // InternalProblem.g:1048:6: lv_arguments_3_0= ruleArgument
2760 {
2761
2762 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_0_0());
2763
2764 pushFollow(FOLLOW_23);
2765 lv_arguments_3_0=ruleArgument();
2766
2767 state._fsp--;
2768
2769
2770 if (current==null) {
2771 current = createModelElementForParent(grammarAccess.getAtomRule());
2772 }
2773 add(
2774 current,
2775 "arguments",
2776 lv_arguments_3_0,
2777 "org.eclipse.viatra.solver.language.Problem.Argument");
2778 afterParserOrEnumRuleCall();
2779
2780
2781 }
2782
2783
2784 }
2785
2786 // InternalProblem.g:1065:4: (otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) )*
2787 loop27:
2788 do {
2789 int alt27=2;
2790 int LA27_0 = input.LA(1);
2791
2792 if ( (LA27_0==18) ) {
2793 alt27=1;
2794 }
2795
2796
2797 switch (alt27) {
2798 case 1 :
2799 // InternalProblem.g:1066:5: otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) )
2800 {
2801 otherlv_4=(Token)match(input,18,FOLLOW_30);
2802
2803 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
2804
2805 // InternalProblem.g:1070:5: ( (lv_arguments_5_0= ruleArgument ) )
2806 // InternalProblem.g:1071:6: (lv_arguments_5_0= ruleArgument )
2807 {
2808 // InternalProblem.g:1071:6: (lv_arguments_5_0= ruleArgument )
2809 // InternalProblem.g:1072:7: lv_arguments_5_0= ruleArgument
2810 {
2811
2812 newCompositeNode(grammarAccess.getAtomAccess().getArgumentsArgumentParserRuleCall_3_1_1_0());
2813
2814 pushFollow(FOLLOW_23);
2815 lv_arguments_5_0=ruleArgument();
2816
2817 state._fsp--;
2818
2819
2820 if (current==null) {
2821 current = createModelElementForParent(grammarAccess.getAtomRule());
2822 }
2823 add(
2824 current,
2825 "arguments",
2826 lv_arguments_5_0,
2827 "org.eclipse.viatra.solver.language.Problem.Argument");
2828 afterParserOrEnumRuleCall();
2829
2830
2831 }
2832
2833
2834 }
2835
2836
2837 }
2838 break;
2839
2840 default :
2841 break loop27;
2842 }
2843 } while (true);
2844
2845
2846 }
2847 break;
2848
2849 }
2850
2851 otherlv_6=(Token)match(input,31,FOLLOW_2);
2852
2853 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
2854
2855
2856 }
2857
2858
2859 }
2860
2861
2862 leaveRule();
2863
2864 }
2865
2866 catch (RecognitionException re) {
2867 recover(input,re);
2868 appendSkippedTokens();
2869 }
2870 finally {
2871 }
2872 return current;
2873 }
2874 // $ANTLR end "ruleAtom"
2875
2876
2877 // $ANTLR start "entryRuleArgument"
2878 // InternalProblem.g:1099:1: entryRuleArgument returns [EObject current=null] : iv_ruleArgument= ruleArgument EOF ;
2879 public final EObject entryRuleArgument() throws RecognitionException {
2880 EObject current = null;
2881
2882 EObject iv_ruleArgument = null;
2883
2884
2885 try {
2886 // InternalProblem.g:1099:49: (iv_ruleArgument= ruleArgument EOF )
2887 // InternalProblem.g:1100:2: iv_ruleArgument= ruleArgument EOF
2888 {
2889 newCompositeNode(grammarAccess.getArgumentRule());
2890 pushFollow(FOLLOW_1);
2891 iv_ruleArgument=ruleArgument();
2892
2893 state._fsp--;
2894
2895 current =iv_ruleArgument;
2896 match(input,EOF,FOLLOW_2);
2897
2898 }
2899
2900 }
2901
2902 catch (RecognitionException re) {
2903 recover(input,re);
2904 appendSkippedTokens();
2905 }
2906 finally {
2907 }
2908 return current;
2909 }
2910 // $ANTLR end "entryRuleArgument"
2911
2912
2913 // $ANTLR start "ruleArgument"
2914 // InternalProblem.g:1106:1: ruleArgument returns [EObject current=null] : (this_VariableOrNodeArgument_0= ruleVariableOrNodeArgument | this_ConstantArgument_1= ruleConstantArgument ) ;
2915 public final EObject ruleArgument() throws RecognitionException {
2916 EObject current = null;
2917
2918 EObject this_VariableOrNodeArgument_0 = null;
2919
2920 EObject this_ConstantArgument_1 = null;
2921
2922
2923
2924 enterRule();
2925
2926 try {
2927 // InternalProblem.g:1112:2: ( (this_VariableOrNodeArgument_0= ruleVariableOrNodeArgument | this_ConstantArgument_1= ruleConstantArgument ) )
2928 // InternalProblem.g:1113:2: (this_VariableOrNodeArgument_0= ruleVariableOrNodeArgument | this_ConstantArgument_1= ruleConstantArgument )
2929 {
2930 // InternalProblem.g:1113:2: (this_VariableOrNodeArgument_0= ruleVariableOrNodeArgument | this_ConstantArgument_1= ruleConstantArgument )
2931 int alt29=2;
2932 int LA29_0 = input.LA(1);
2933
2934 if ( (LA29_0==RULE_ID||LA29_0==RULE_QUOTED_ID||(LA29_0>=42 && LA29_0<=43)) ) {
2935 alt29=1;
2936 }
2937 else if ( (LA29_0==RULE_STRING||LA29_0==RULE_INT||LA29_0==RULE_EXPONENTIAL||LA29_0==44) ) {
2938 alt29=2;
2939 }
2940 else {
2941 NoViableAltException nvae =
2942 new NoViableAltException("", 29, 0, input);
2943
2944 throw nvae;
2945 }
2946 switch (alt29) {
2947 case 1 :
2948 // InternalProblem.g:1114:3: this_VariableOrNodeArgument_0= ruleVariableOrNodeArgument
2949 {
2950
2951 newCompositeNode(grammarAccess.getArgumentAccess().getVariableOrNodeArgumentParserRuleCall_0());
2952
2953 pushFollow(FOLLOW_2);
2954 this_VariableOrNodeArgument_0=ruleVariableOrNodeArgument();
2955
2956 state._fsp--;
2957
2958
2959 current = this_VariableOrNodeArgument_0;
2960 afterParserOrEnumRuleCall();
2961
2962
2963 }
2964 break;
2965 case 2 :
2966 // InternalProblem.g:1123:3: this_ConstantArgument_1= ruleConstantArgument
2967 {
2968
2969 newCompositeNode(grammarAccess.getArgumentAccess().getConstantArgumentParserRuleCall_1());
2970
2971 pushFollow(FOLLOW_2);
2972 this_ConstantArgument_1=ruleConstantArgument();
2973
2974 state._fsp--;
2975
2976
2977 current = this_ConstantArgument_1;
2978 afterParserOrEnumRuleCall();
2979
2980
2981 }
2982 break;
2983
2984 }
2985
2986
2987 }
2988
2989
2990 leaveRule();
2991
2992 }
2993
2994 catch (RecognitionException re) {
2995 recover(input,re);
2996 appendSkippedTokens();
2997 }
2998 finally {
2999 }
3000 return current;
3001 }
3002 // $ANTLR end "ruleArgument"
3003
3004
3005 // $ANTLR start "entryRuleVariableOrNodeArgument"
3006 // InternalProblem.g:1135:1: entryRuleVariableOrNodeArgument returns [EObject current=null] : iv_ruleVariableOrNodeArgument= ruleVariableOrNodeArgument EOF ;
3007 public final EObject entryRuleVariableOrNodeArgument() throws RecognitionException {
3008 EObject current = null;
3009
3010 EObject iv_ruleVariableOrNodeArgument = null;
3011
3012
3013 try {
3014 // InternalProblem.g:1135:63: (iv_ruleVariableOrNodeArgument= ruleVariableOrNodeArgument EOF )
3015 // InternalProblem.g:1136:2: iv_ruleVariableOrNodeArgument= ruleVariableOrNodeArgument EOF
3016 {
3017 newCompositeNode(grammarAccess.getVariableOrNodeArgumentRule());
3018 pushFollow(FOLLOW_1);
3019 iv_ruleVariableOrNodeArgument=ruleVariableOrNodeArgument();
3020
3021 state._fsp--;
3022
3023 current =iv_ruleVariableOrNodeArgument;
3024 match(input,EOF,FOLLOW_2);
3025
3026 }
3027
3028 }
3029
3030 catch (RecognitionException re) {
3031 recover(input,re);
3032 appendSkippedTokens();
3033 }
3034 finally {
3035 }
3036 return current;
3037 }
3038 // $ANTLR end "entryRuleVariableOrNodeArgument"
3039
3040
3041 // $ANTLR start "ruleVariableOrNodeArgument"
3042 // InternalProblem.g:1142:1: ruleVariableOrNodeArgument returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
3043 public final EObject ruleVariableOrNodeArgument() throws RecognitionException {
3044 EObject current = null;
3045
3046
3047 enterRule();
3048
3049 try {
3050 // InternalProblem.g:1148:2: ( ( ( ruleQualifiedName ) ) )
3051 // InternalProblem.g:1149:2: ( ( ruleQualifiedName ) )
3052 {
3053 // InternalProblem.g:1149:2: ( ( ruleQualifiedName ) )
3054 // InternalProblem.g:1150:3: ( ruleQualifiedName )
3055 {
3056 // InternalProblem.g:1150:3: ( ruleQualifiedName )
3057 // InternalProblem.g:1151:4: ruleQualifiedName
3058 {
3059
3060 if (current==null) {
3061 current = createModelElement(grammarAccess.getVariableOrNodeArgumentRule());
3062 }
3063
3064
3065 newCompositeNode(grammarAccess.getVariableOrNodeArgumentAccess().getVariableOrNodeVariableOrNodeCrossReference_0());
3066
3067 pushFollow(FOLLOW_2);
3068 ruleQualifiedName();
3069
3070 state._fsp--;
3071
3072
3073 afterParserOrEnumRuleCall();
3074
3075
3076 }
3077
3078
3079 }
3080
3081
3082 }
3083
3084
3085 leaveRule();
3086
3087 }
3088
3089 catch (RecognitionException re) {
3090 recover(input,re);
3091 appendSkippedTokens();
3092 }
3093 finally {
3094 }
3095 return current;
3096 }
3097 // $ANTLR end "ruleVariableOrNodeArgument"
3098
3099
3100 // $ANTLR start "entryRuleConstantArgument"
3101 // InternalProblem.g:1168:1: entryRuleConstantArgument returns [EObject current=null] : iv_ruleConstantArgument= ruleConstantArgument EOF ;
3102 public final EObject entryRuleConstantArgument() throws RecognitionException {
3103 EObject current = null;
3104
3105 EObject iv_ruleConstantArgument = null;
3106
3107
3108 try {
3109 // InternalProblem.g:1168:57: (iv_ruleConstantArgument= ruleConstantArgument EOF )
3110 // InternalProblem.g:1169:2: iv_ruleConstantArgument= ruleConstantArgument EOF
3111 {
3112 newCompositeNode(grammarAccess.getConstantArgumentRule());
3113 pushFollow(FOLLOW_1);
3114 iv_ruleConstantArgument=ruleConstantArgument();
3115
3116 state._fsp--;
3117
3118 current =iv_ruleConstantArgument;
3119 match(input,EOF,FOLLOW_2);
3120
3121 }
3122
3123 }
3124
3125 catch (RecognitionException re) {
3126 recover(input,re);
3127 appendSkippedTokens();
3128 }
3129 finally {
3130 }
3131 return current;
3132 }
3133 // $ANTLR end "entryRuleConstantArgument"
3134
3135
3136 // $ANTLR start "ruleConstantArgument"
3137 // InternalProblem.g:1175:1: ruleConstantArgument returns [EObject current=null] : ( (lv_constant_0_0= ruleConstant ) ) ;
3138 public final EObject ruleConstantArgument() throws RecognitionException {
3139 EObject current = null;
3140
3141 EObject lv_constant_0_0 = null;
3142
3143
3144
3145 enterRule();
3146
3147 try {
3148 // InternalProblem.g:1181:2: ( ( (lv_constant_0_0= ruleConstant ) ) )
3149 // InternalProblem.g:1182:2: ( (lv_constant_0_0= ruleConstant ) )
3150 {
3151 // InternalProblem.g:1182:2: ( (lv_constant_0_0= ruleConstant ) )
3152 // InternalProblem.g:1183:3: (lv_constant_0_0= ruleConstant )
3153 {
3154 // InternalProblem.g:1183:3: (lv_constant_0_0= ruleConstant )
3155 // InternalProblem.g:1184:4: lv_constant_0_0= ruleConstant
3156 {
3157
3158 newCompositeNode(grammarAccess.getConstantArgumentAccess().getConstantConstantParserRuleCall_0());
3159
3160 pushFollow(FOLLOW_2);
3161 lv_constant_0_0=ruleConstant();
3162
3163 state._fsp--;
3164
3165
3166 if (current==null) {
3167 current = createModelElementForParent(grammarAccess.getConstantArgumentRule());
3168 }
3169 set(
3170 current,
3171 "constant",
3172 lv_constant_0_0,
3173 "org.eclipse.viatra.solver.language.Problem.Constant");
3174 afterParserOrEnumRuleCall();
3175
3176
3177 }
3178
3179
3180 }
3181
3182
3183 }
3184
3185
3186 leaveRule();
3187
3188 }
3189
3190 catch (RecognitionException re) {
3191 recover(input,re);
3192 appendSkippedTokens();
3193 }
3194 finally {
3195 }
3196 return current;
3197 }
3198 // $ANTLR end "ruleConstantArgument"
3199
3200
3201 // $ANTLR start "entryRuleAssertion"
3202 // InternalProblem.g:1204:1: entryRuleAssertion returns [EObject current=null] : iv_ruleAssertion= ruleAssertion EOF ;
3203 public final EObject entryRuleAssertion() throws RecognitionException {
3204 EObject current = null;
3205
3206 EObject iv_ruleAssertion = null;
3207
3208
3209 try {
3210 // InternalProblem.g:1204:50: (iv_ruleAssertion= ruleAssertion EOF )
3211 // InternalProblem.g:1205:2: iv_ruleAssertion= ruleAssertion EOF
3212 {
3213 newCompositeNode(grammarAccess.getAssertionRule());
3214 pushFollow(FOLLOW_1);
3215 iv_ruleAssertion=ruleAssertion();
3216
3217 state._fsp--;
3218
3219 current =iv_ruleAssertion;
3220 match(input,EOF,FOLLOW_2);
3221
3222 }
3223
3224 }
3225
3226 catch (RecognitionException re) {
3227 recover(input,re);
3228 appendSkippedTokens();
3229 }
3230 finally {
3231 }
3232 return current;
3233 }
3234 // $ANTLR end "entryRuleAssertion"
3235
3236
3237 // $ANTLR start "ruleAssertion"
3238 // InternalProblem.g:1211:1: ruleAssertion returns [EObject current=null] : ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' ) ;
3239 public final EObject ruleAssertion() throws RecognitionException {
3240 EObject current = null;
3241
3242 Token otherlv_1=null;
3243 Token otherlv_3=null;
3244 Token otherlv_5=null;
3245 Token otherlv_6=null;
3246 Token otherlv_10=null;
3247 Token otherlv_12=null;
3248 Token otherlv_14=null;
3249 Token otherlv_15=null;
3250 EObject lv_arguments_2_0 = null;
3251
3252 EObject lv_arguments_4_0 = null;
3253
3254 Enumerator lv_value_7_0 = null;
3255
3256 Enumerator lv_value_8_0 = null;
3257
3258 EObject lv_arguments_11_0 = null;
3259
3260 EObject lv_arguments_13_0 = null;
3261
3262
3263
3264 enterRule();
3265
3266 try {
3267 // InternalProblem.g:1217:2: ( ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' ) )
3268 // InternalProblem.g:1218:2: ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' )
3269 {
3270 // InternalProblem.g:1218:2: ( ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.' )
3271 // InternalProblem.g:1219:3: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')' ) ) otherlv_15= '.'
3272 {
3273 // InternalProblem.g:1219:3: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')' ) )
3274 int alt35=2;
3275 alt35 = dfa35.predict(input);
3276 switch (alt35) {
3277 case 1 :
3278 // InternalProblem.g:1220:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
3279 {
3280 // InternalProblem.g:1220:4: ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) )
3281 // InternalProblem.g:1221:5: ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) )
3282 {
3283 // InternalProblem.g:1221:5: ( ( ruleQualifiedName ) )
3284 // InternalProblem.g:1222:6: ( ruleQualifiedName )
3285 {
3286 // InternalProblem.g:1222:6: ( ruleQualifiedName )
3287 // InternalProblem.g:1223:7: ruleQualifiedName
3288 {
3289
3290 if (current==null) {
3291 current = createModelElement(grammarAccess.getAssertionRule());
3292 }
3293
3294
3295 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_0_0_0());
3296
3297 pushFollow(FOLLOW_21);
3298 ruleQualifiedName();
3299
3300 state._fsp--;
3301
3302
3303 afterParserOrEnumRuleCall();
3304
3305
3306 }
3307
3308
3309 }
3310
3311 otherlv_1=(Token)match(input,30,FOLLOW_29);
3312
3313 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
3314
3315 // InternalProblem.g:1241:5: ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )?
3316 int alt31=2;
3317 int LA31_0 = input.LA(1);
3318
3319 if ( ((LA31_0>=RULE_STRING && LA31_0<=RULE_EXPONENTIAL)||(LA31_0>=42 && LA31_0<=44)) ) {
3320 alt31=1;
3321 }
3322 switch (alt31) {
3323 case 1 :
3324 // InternalProblem.g:1242:6: ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )*
3325 {
3326 // InternalProblem.g:1242:6: ( (lv_arguments_2_0= ruleAssertionArgument ) )
3327 // InternalProblem.g:1243:7: (lv_arguments_2_0= ruleAssertionArgument )
3328 {
3329 // InternalProblem.g:1243:7: (lv_arguments_2_0= ruleAssertionArgument )
3330 // InternalProblem.g:1244:8: lv_arguments_2_0= ruleAssertionArgument
3331 {
3332
3333 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsAssertionArgumentParserRuleCall_0_0_2_0_0());
3334
3335 pushFollow(FOLLOW_23);
3336 lv_arguments_2_0=ruleAssertionArgument();
3337
3338 state._fsp--;
3339
3340
3341 if (current==null) {
3342 current = createModelElementForParent(grammarAccess.getAssertionRule());
3343 }
3344 add(
3345 current,
3346 "arguments",
3347 lv_arguments_2_0,
3348 "org.eclipse.viatra.solver.language.Problem.AssertionArgument");
3349 afterParserOrEnumRuleCall();
3350
3351
3352 }
3353
3354
3355 }
3356
3357 // InternalProblem.g:1261:6: (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )*
3358 loop30:
3359 do {
3360 int alt30=2;
3361 int LA30_0 = input.LA(1);
3362
3363 if ( (LA30_0==18) ) {
3364 alt30=1;
3365 }
3366
3367
3368 switch (alt30) {
3369 case 1 :
3370 // InternalProblem.g:1262:7: otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) )
3371 {
3372 otherlv_3=(Token)match(input,18,FOLLOW_30);
3373
3374 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
3375
3376 // InternalProblem.g:1266:7: ( (lv_arguments_4_0= ruleAssertionArgument ) )
3377 // InternalProblem.g:1267:8: (lv_arguments_4_0= ruleAssertionArgument )
3378 {
3379 // InternalProblem.g:1267:8: (lv_arguments_4_0= ruleAssertionArgument )
3380 // InternalProblem.g:1268:9: lv_arguments_4_0= ruleAssertionArgument
3381 {
3382
3383 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsAssertionArgumentParserRuleCall_0_0_2_1_1_0());
3384
3385 pushFollow(FOLLOW_23);
3386 lv_arguments_4_0=ruleAssertionArgument();
3387
3388 state._fsp--;
3389
3390
3391 if (current==null) {
3392 current = createModelElementForParent(grammarAccess.getAssertionRule());
3393 }
3394 add(
3395 current,
3396 "arguments",
3397 lv_arguments_4_0,
3398 "org.eclipse.viatra.solver.language.Problem.AssertionArgument");
3399 afterParserOrEnumRuleCall();
3400
3401
3402 }
3403
3404
3405 }
3406
3407
3408 }
3409 break;
3410
3411 default :
3412 break loop30;
3413 }
3414 } while (true);
3415
3416
3417 }
3418 break;
3419
3420 }
3421
3422 otherlv_5=(Token)match(input,31,FOLLOW_31);
3423
3424 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
3425
3426 otherlv_6=(Token)match(input,35,FOLLOW_32);
3427
3428 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
3429
3430 // InternalProblem.g:1295:5: ( (lv_value_7_0= ruleLogicValue ) )
3431 // InternalProblem.g:1296:6: (lv_value_7_0= ruleLogicValue )
3432 {
3433 // InternalProblem.g:1296:6: (lv_value_7_0= ruleLogicValue )
3434 // InternalProblem.g:1297:7: lv_value_7_0= ruleLogicValue
3435 {
3436
3437 newCompositeNode(grammarAccess.getAssertionAccess().getValueLogicValueEnumRuleCall_0_0_5_0());
3438
3439 pushFollow(FOLLOW_4);
3440 lv_value_7_0=ruleLogicValue();
3441
3442 state._fsp--;
3443
3444
3445 if (current==null) {
3446 current = createModelElementForParent(grammarAccess.getAssertionRule());
3447 }
3448 set(
3449 current,
3450 "value",
3451 lv_value_7_0,
3452 "org.eclipse.viatra.solver.language.Problem.LogicValue");
3453 afterParserOrEnumRuleCall();
3454
3455
3456 }
3457
3458
3459 }
3460
3461
3462 }
3463
3464
3465 }
3466 break;
3467 case 2 :
3468 // InternalProblem.g:1316:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')' )
3469 {
3470 // InternalProblem.g:1316:4: ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')' )
3471 // InternalProblem.g:1317:5: ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')'
3472 {
3473 // InternalProblem.g:1317:5: ( (lv_value_8_0= ruleShortLogicValue ) )?
3474 int alt32=2;
3475 int LA32_0 = input.LA(1);
3476
3477 if ( (LA32_0==33||LA32_0==46) ) {
3478 alt32=1;
3479 }
3480 switch (alt32) {
3481 case 1 :
3482 // InternalProblem.g:1318:6: (lv_value_8_0= ruleShortLogicValue )
3483 {
3484 // InternalProblem.g:1318:6: (lv_value_8_0= ruleShortLogicValue )
3485 // InternalProblem.g:1319:7: lv_value_8_0= ruleShortLogicValue
3486 {
3487
3488 newCompositeNode(grammarAccess.getAssertionAccess().getValueShortLogicValueEnumRuleCall_0_1_0_0());
3489
3490 pushFollow(FOLLOW_8);
3491 lv_value_8_0=ruleShortLogicValue();
3492
3493 state._fsp--;
3494
3495
3496 if (current==null) {
3497 current = createModelElementForParent(grammarAccess.getAssertionRule());
3498 }
3499 set(
3500 current,
3501 "value",
3502 lv_value_8_0,
3503 "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
3504 afterParserOrEnumRuleCall();
3505
3506
3507 }
3508
3509
3510 }
3511 break;
3512
3513 }
3514
3515 // InternalProblem.g:1336:5: ( ( ruleQualifiedName ) )
3516 // InternalProblem.g:1337:6: ( ruleQualifiedName )
3517 {
3518 // InternalProblem.g:1337:6: ( ruleQualifiedName )
3519 // InternalProblem.g:1338:7: ruleQualifiedName
3520 {
3521
3522 if (current==null) {
3523 current = createModelElement(grammarAccess.getAssertionRule());
3524 }
3525
3526
3527 newCompositeNode(grammarAccess.getAssertionAccess().getRelationRelationCrossReference_0_1_1_0());
3528
3529 pushFollow(FOLLOW_21);
3530 ruleQualifiedName();
3531
3532 state._fsp--;
3533
3534
3535 afterParserOrEnumRuleCall();
3536
3537
3538 }
3539
3540
3541 }
3542
3543 otherlv_10=(Token)match(input,30,FOLLOW_29);
3544
3545 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
3546
3547 // InternalProblem.g:1356:5: ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )?
3548 int alt34=2;
3549 int LA34_0 = input.LA(1);
3550
3551 if ( ((LA34_0>=RULE_STRING && LA34_0<=RULE_EXPONENTIAL)||(LA34_0>=42 && LA34_0<=44)) ) {
3552 alt34=1;
3553 }
3554 switch (alt34) {
3555 case 1 :
3556 // InternalProblem.g:1357:6: ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )*
3557 {
3558 // InternalProblem.g:1357:6: ( (lv_arguments_11_0= ruleAssertionArgument ) )
3559 // InternalProblem.g:1358:7: (lv_arguments_11_0= ruleAssertionArgument )
3560 {
3561 // InternalProblem.g:1358:7: (lv_arguments_11_0= ruleAssertionArgument )
3562 // InternalProblem.g:1359:8: lv_arguments_11_0= ruleAssertionArgument
3563 {
3564
3565 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsAssertionArgumentParserRuleCall_0_1_3_0_0());
3566
3567 pushFollow(FOLLOW_23);
3568 lv_arguments_11_0=ruleAssertionArgument();
3569
3570 state._fsp--;
3571
3572
3573 if (current==null) {
3574 current = createModelElementForParent(grammarAccess.getAssertionRule());
3575 }
3576 add(
3577 current,
3578 "arguments",
3579 lv_arguments_11_0,
3580 "org.eclipse.viatra.solver.language.Problem.AssertionArgument");
3581 afterParserOrEnumRuleCall();
3582
3583
3584 }
3585
3586
3587 }
3588
3589 // InternalProblem.g:1376:6: (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )*
3590 loop33:
3591 do {
3592 int alt33=2;
3593 int LA33_0 = input.LA(1);
3594
3595 if ( (LA33_0==18) ) {
3596 alt33=1;
3597 }
3598
3599
3600 switch (alt33) {
3601 case 1 :
3602 // InternalProblem.g:1377:7: otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) )
3603 {
3604 otherlv_12=(Token)match(input,18,FOLLOW_30);
3605
3606 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
3607
3608 // InternalProblem.g:1381:7: ( (lv_arguments_13_0= ruleAssertionArgument ) )
3609 // InternalProblem.g:1382:8: (lv_arguments_13_0= ruleAssertionArgument )
3610 {
3611 // InternalProblem.g:1382:8: (lv_arguments_13_0= ruleAssertionArgument )
3612 // InternalProblem.g:1383:9: lv_arguments_13_0= ruleAssertionArgument
3613 {
3614
3615 newCompositeNode(grammarAccess.getAssertionAccess().getArgumentsAssertionArgumentParserRuleCall_0_1_3_1_1_0());
3616
3617 pushFollow(FOLLOW_23);
3618 lv_arguments_13_0=ruleAssertionArgument();
3619
3620 state._fsp--;
3621
3622
3623 if (current==null) {
3624 current = createModelElementForParent(grammarAccess.getAssertionRule());
3625 }
3626 add(
3627 current,
3628 "arguments",
3629 lv_arguments_13_0,
3630 "org.eclipse.viatra.solver.language.Problem.AssertionArgument");
3631 afterParserOrEnumRuleCall();
3632
3633
3634 }
3635
3636
3637 }
3638
3639
3640 }
3641 break;
3642
3643 default :
3644 break loop33;
3645 }
3646 } while (true);
3647
3648
3649 }
3650 break;
3651
3652 }
3653
3654 otherlv_14=(Token)match(input,31,FOLLOW_4);
3655
3656 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
3657
3658
3659 }
3660
3661
3662 }
3663 break;
3664
3665 }
3666
3667 otherlv_15=(Token)match(input,14,FOLLOW_2);
3668
3669 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
3670
3671
3672 }
3673
3674
3675 }
3676
3677
3678 leaveRule();
3679
3680 }
3681
3682 catch (RecognitionException re) {
3683 recover(input,re);
3684 appendSkippedTokens();
3685 }
3686 finally {
3687 }
3688 return current;
3689 }
3690 // $ANTLR end "ruleAssertion"
3691
3692
3693 // $ANTLR start "entryRuleAssertionArgument"
3694 // InternalProblem.g:1416:1: entryRuleAssertionArgument returns [EObject current=null] : iv_ruleAssertionArgument= ruleAssertionArgument EOF ;
3695 public final EObject entryRuleAssertionArgument() throws RecognitionException {
3696 EObject current = null;
3697
3698 EObject iv_ruleAssertionArgument = null;
3699
3700
3701 try {
3702 // InternalProblem.g:1416:58: (iv_ruleAssertionArgument= ruleAssertionArgument EOF )
3703 // InternalProblem.g:1417:2: iv_ruleAssertionArgument= ruleAssertionArgument EOF
3704 {
3705 newCompositeNode(grammarAccess.getAssertionArgumentRule());
3706 pushFollow(FOLLOW_1);
3707 iv_ruleAssertionArgument=ruleAssertionArgument();
3708
3709 state._fsp--;
3710
3711 current =iv_ruleAssertionArgument;
3712 match(input,EOF,FOLLOW_2);
3713
3714 }
3715
3716 }
3717
3718 catch (RecognitionException re) {
3719 recover(input,re);
3720 appendSkippedTokens();
3721 }
3722 finally {
3723 }
3724 return current;
3725 }
3726 // $ANTLR end "entryRuleAssertionArgument"
3727
3728
3729 // $ANTLR start "ruleAssertionArgument"
3730 // InternalProblem.g:1423:1: ruleAssertionArgument returns [EObject current=null] : (this_NodeAssertionArgument_0= ruleNodeAssertionArgument | this_ConstantAssertionArgument_1= ruleConstantAssertionArgument ) ;
3731 public final EObject ruleAssertionArgument() throws RecognitionException {
3732 EObject current = null;
3733
3734 EObject this_NodeAssertionArgument_0 = null;
3735
3736 EObject this_ConstantAssertionArgument_1 = null;
3737
3738
3739
3740 enterRule();
3741
3742 try {
3743 // InternalProblem.g:1429:2: ( (this_NodeAssertionArgument_0= ruleNodeAssertionArgument | this_ConstantAssertionArgument_1= ruleConstantAssertionArgument ) )
3744 // InternalProblem.g:1430:2: (this_NodeAssertionArgument_0= ruleNodeAssertionArgument | this_ConstantAssertionArgument_1= ruleConstantAssertionArgument )
3745 {
3746 // InternalProblem.g:1430:2: (this_NodeAssertionArgument_0= ruleNodeAssertionArgument | this_ConstantAssertionArgument_1= ruleConstantAssertionArgument )
3747 int alt36=2;
3748 int LA36_0 = input.LA(1);
3749
3750 if ( (LA36_0==RULE_ID||LA36_0==RULE_QUOTED_ID||(LA36_0>=42 && LA36_0<=43)) ) {
3751 alt36=1;
3752 }
3753 else if ( (LA36_0==RULE_STRING||LA36_0==RULE_INT||LA36_0==RULE_EXPONENTIAL||LA36_0==44) ) {
3754 alt36=2;
3755 }
3756 else {
3757 NoViableAltException nvae =
3758 new NoViableAltException("", 36, 0, input);
3759
3760 throw nvae;
3761 }
3762 switch (alt36) {
3763 case 1 :
3764 // InternalProblem.g:1431:3: this_NodeAssertionArgument_0= ruleNodeAssertionArgument
3765 {
3766
3767 newCompositeNode(grammarAccess.getAssertionArgumentAccess().getNodeAssertionArgumentParserRuleCall_0());
3768
3769 pushFollow(FOLLOW_2);
3770 this_NodeAssertionArgument_0=ruleNodeAssertionArgument();
3771
3772 state._fsp--;
3773
3774
3775 current = this_NodeAssertionArgument_0;
3776 afterParserOrEnumRuleCall();
3777
3778
3779 }
3780 break;
3781 case 2 :
3782 // InternalProblem.g:1440:3: this_ConstantAssertionArgument_1= ruleConstantAssertionArgument
3783 {
3784
3785 newCompositeNode(grammarAccess.getAssertionArgumentAccess().getConstantAssertionArgumentParserRuleCall_1());
3786
3787 pushFollow(FOLLOW_2);
3788 this_ConstantAssertionArgument_1=ruleConstantAssertionArgument();
3789
3790 state._fsp--;
3791
3792
3793 current = this_ConstantAssertionArgument_1;
3794 afterParserOrEnumRuleCall();
3795
3796
3797 }
3798 break;
3799
3800 }
3801
3802
3803 }
3804
3805
3806 leaveRule();
3807
3808 }
3809
3810 catch (RecognitionException re) {
3811 recover(input,re);
3812 appendSkippedTokens();
3813 }
3814 finally {
3815 }
3816 return current;
3817 }
3818 // $ANTLR end "ruleAssertionArgument"
3819
3820
3821 // $ANTLR start "entryRuleNodeAssertionArgument"
3822 // InternalProblem.g:1452:1: entryRuleNodeAssertionArgument returns [EObject current=null] : iv_ruleNodeAssertionArgument= ruleNodeAssertionArgument EOF ;
3823 public final EObject entryRuleNodeAssertionArgument() throws RecognitionException {
3824 EObject current = null;
3825
3826 EObject iv_ruleNodeAssertionArgument = null;
3827
3828
3829 try {
3830 // InternalProblem.g:1452:62: (iv_ruleNodeAssertionArgument= ruleNodeAssertionArgument EOF )
3831 // InternalProblem.g:1453:2: iv_ruleNodeAssertionArgument= ruleNodeAssertionArgument EOF
3832 {
3833 newCompositeNode(grammarAccess.getNodeAssertionArgumentRule());
3834 pushFollow(FOLLOW_1);
3835 iv_ruleNodeAssertionArgument=ruleNodeAssertionArgument();
3836
3837 state._fsp--;
3838
3839 current =iv_ruleNodeAssertionArgument;
3840 match(input,EOF,FOLLOW_2);
3841
3842 }
3843
3844 }
3845
3846 catch (RecognitionException re) {
3847 recover(input,re);
3848 appendSkippedTokens();
3849 }
3850 finally {
3851 }
3852 return current;
3853 }
3854 // $ANTLR end "entryRuleNodeAssertionArgument"
3855
3856
3857 // $ANTLR start "ruleNodeAssertionArgument"
3858 // InternalProblem.g:1459:1: ruleNodeAssertionArgument returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
3859 public final EObject ruleNodeAssertionArgument() throws RecognitionException {
3860 EObject current = null;
3861
3862
3863 enterRule();
3864
3865 try {
3866 // InternalProblem.g:1465:2: ( ( ( ruleQualifiedName ) ) )
3867 // InternalProblem.g:1466:2: ( ( ruleQualifiedName ) )
3868 {
3869 // InternalProblem.g:1466:2: ( ( ruleQualifiedName ) )
3870 // InternalProblem.g:1467:3: ( ruleQualifiedName )
3871 {
3872 // InternalProblem.g:1467:3: ( ruleQualifiedName )
3873 // InternalProblem.g:1468:4: ruleQualifiedName
3874 {
3875
3876 if (current==null) {
3877 current = createModelElement(grammarAccess.getNodeAssertionArgumentRule());
3878 }
3879
3880
3881 newCompositeNode(grammarAccess.getNodeAssertionArgumentAccess().getNodeNodeCrossReference_0());
3882
3883 pushFollow(FOLLOW_2);
3884 ruleQualifiedName();
3885
3886 state._fsp--;
3887
3888
3889 afterParserOrEnumRuleCall();
3890
3891
3892 }
3893
3894
3895 }
3896
3897
3898 }
3899
3900
3901 leaveRule();
3902
3903 }
3904
3905 catch (RecognitionException re) {
3906 recover(input,re);
3907 appendSkippedTokens();
3908 }
3909 finally {
3910 }
3911 return current;
3912 }
3913 // $ANTLR end "ruleNodeAssertionArgument"
3914
3915
3916 // $ANTLR start "entryRuleConstantAssertionArgument"
3917 // InternalProblem.g:1485:1: entryRuleConstantAssertionArgument returns [EObject current=null] : iv_ruleConstantAssertionArgument= ruleConstantAssertionArgument EOF ;
3918 public final EObject entryRuleConstantAssertionArgument() throws RecognitionException {
3919 EObject current = null;
3920
3921 EObject iv_ruleConstantAssertionArgument = null;
3922
3923
3924 try {
3925 // InternalProblem.g:1485:66: (iv_ruleConstantAssertionArgument= ruleConstantAssertionArgument EOF )
3926 // InternalProblem.g:1486:2: iv_ruleConstantAssertionArgument= ruleConstantAssertionArgument EOF
3927 {
3928 newCompositeNode(grammarAccess.getConstantAssertionArgumentRule());
3929 pushFollow(FOLLOW_1);
3930 iv_ruleConstantAssertionArgument=ruleConstantAssertionArgument();
3931
3932 state._fsp--;
3933
3934 current =iv_ruleConstantAssertionArgument;
3935 match(input,EOF,FOLLOW_2);
3936
3937 }
3938
3939 }
3940
3941 catch (RecognitionException re) {
3942 recover(input,re);
3943 appendSkippedTokens();
3944 }
3945 finally {
3946 }
3947 return current;
3948 }
3949 // $ANTLR end "entryRuleConstantAssertionArgument"
3950
3951
3952 // $ANTLR start "ruleConstantAssertionArgument"
3953 // InternalProblem.g:1492:1: ruleConstantAssertionArgument returns [EObject current=null] : ( (lv_constant_0_0= ruleConstant ) ) ;
3954 public final EObject ruleConstantAssertionArgument() throws RecognitionException {
3955 EObject current = null;
3956
3957 EObject lv_constant_0_0 = null;
3958
3959
3960
3961 enterRule();
3962
3963 try {
3964 // InternalProblem.g:1498:2: ( ( (lv_constant_0_0= ruleConstant ) ) )
3965 // InternalProblem.g:1499:2: ( (lv_constant_0_0= ruleConstant ) )
3966 {
3967 // InternalProblem.g:1499:2: ( (lv_constant_0_0= ruleConstant ) )
3968 // InternalProblem.g:1500:3: (lv_constant_0_0= ruleConstant )
3969 {
3970 // InternalProblem.g:1500:3: (lv_constant_0_0= ruleConstant )
3971 // InternalProblem.g:1501:4: lv_constant_0_0= ruleConstant
3972 {
3973
3974 newCompositeNode(grammarAccess.getConstantAssertionArgumentAccess().getConstantConstantParserRuleCall_0());
3975
3976 pushFollow(FOLLOW_2);
3977 lv_constant_0_0=ruleConstant();
3978
3979 state._fsp--;
3980
3981
3982 if (current==null) {
3983 current = createModelElementForParent(grammarAccess.getConstantAssertionArgumentRule());
3984 }
3985 set(
3986 current,
3987 "constant",
3988 lv_constant_0_0,
3989 "org.eclipse.viatra.solver.language.Problem.Constant");
3990 afterParserOrEnumRuleCall();
3991
3992
3993 }
3994
3995
3996 }
3997
3998
3999 }
4000
4001
4002 leaveRule();
4003
4004 }
4005
4006 catch (RecognitionException re) {
4007 recover(input,re);
4008 appendSkippedTokens();
4009 }
4010 finally {
4011 }
4012 return current;
4013 }
4014 // $ANTLR end "ruleConstantAssertionArgument"
4015
4016
4017 // $ANTLR start "entryRuleNodeValueAssertion"
4018 // InternalProblem.g:1521:1: entryRuleNodeValueAssertion returns [EObject current=null] : iv_ruleNodeValueAssertion= ruleNodeValueAssertion EOF ;
4019 public final EObject entryRuleNodeValueAssertion() throws RecognitionException {
4020 EObject current = null;
4021
4022 EObject iv_ruleNodeValueAssertion = null;
4023
4024
4025 try {
4026 // InternalProblem.g:1521:59: (iv_ruleNodeValueAssertion= ruleNodeValueAssertion EOF )
4027 // InternalProblem.g:1522:2: iv_ruleNodeValueAssertion= ruleNodeValueAssertion EOF
4028 {
4029 newCompositeNode(grammarAccess.getNodeValueAssertionRule());
4030 pushFollow(FOLLOW_1);
4031 iv_ruleNodeValueAssertion=ruleNodeValueAssertion();
4032
4033 state._fsp--;
4034
4035 current =iv_ruleNodeValueAssertion;
4036 match(input,EOF,FOLLOW_2);
4037
4038 }
4039
4040 }
4041
4042 catch (RecognitionException re) {
4043 recover(input,re);
4044 appendSkippedTokens();
4045 }
4046 finally {
4047 }
4048 return current;
4049 }
4050 // $ANTLR end "entryRuleNodeValueAssertion"
4051
4052
4053 // $ANTLR start "ruleNodeValueAssertion"
4054 // InternalProblem.g:1528:1: ruleNodeValueAssertion returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) otherlv_1= ':' ( (lv_value_2_0= ruleConstant ) ) otherlv_3= '.' ) ;
4055 public final EObject ruleNodeValueAssertion() throws RecognitionException {
4056 EObject current = null;
4057
4058 Token otherlv_1=null;
4059 Token otherlv_3=null;
4060 EObject lv_value_2_0 = null;
4061
4062
4063
4064 enterRule();
4065
4066 try {
4067 // InternalProblem.g:1534:2: ( ( ( ( ruleQualifiedName ) ) otherlv_1= ':' ( (lv_value_2_0= ruleConstant ) ) otherlv_3= '.' ) )
4068 // InternalProblem.g:1535:2: ( ( ( ruleQualifiedName ) ) otherlv_1= ':' ( (lv_value_2_0= ruleConstant ) ) otherlv_3= '.' )
4069 {
4070 // InternalProblem.g:1535:2: ( ( ( ruleQualifiedName ) ) otherlv_1= ':' ( (lv_value_2_0= ruleConstant ) ) otherlv_3= '.' )
4071 // InternalProblem.g:1536:3: ( ( ruleQualifiedName ) ) otherlv_1= ':' ( (lv_value_2_0= ruleConstant ) ) otherlv_3= '.'
4072 {
4073 // InternalProblem.g:1536:3: ( ( ruleQualifiedName ) )
4074 // InternalProblem.g:1537:4: ( ruleQualifiedName )
4075 {
4076 // InternalProblem.g:1537:4: ( ruleQualifiedName )
4077 // InternalProblem.g:1538:5: ruleQualifiedName
4078 {
4079
4080 if (current==null) {
4081 current = createModelElement(grammarAccess.getNodeValueAssertionRule());
4082 }
4083
4084
4085 newCompositeNode(grammarAccess.getNodeValueAssertionAccess().getNodeNodeCrossReference_0_0());
4086
4087 pushFollow(FOLLOW_31);
4088 ruleQualifiedName();
4089
4090 state._fsp--;
4091
4092
4093 afterParserOrEnumRuleCall();
4094
4095
4096 }
4097
4098
4099 }
4100
4101 otherlv_1=(Token)match(input,35,FOLLOW_30);
4102
4103 newLeafNode(otherlv_1, grammarAccess.getNodeValueAssertionAccess().getColonKeyword_1());
4104
4105 // InternalProblem.g:1556:3: ( (lv_value_2_0= ruleConstant ) )
4106 // InternalProblem.g:1557:4: (lv_value_2_0= ruleConstant )
4107 {
4108 // InternalProblem.g:1557:4: (lv_value_2_0= ruleConstant )
4109 // InternalProblem.g:1558:5: lv_value_2_0= ruleConstant
4110 {
4111
4112 newCompositeNode(grammarAccess.getNodeValueAssertionAccess().getValueConstantParserRuleCall_2_0());
4113
4114 pushFollow(FOLLOW_4);
4115 lv_value_2_0=ruleConstant();
4116
4117 state._fsp--;
4118
4119
4120 if (current==null) {
4121 current = createModelElementForParent(grammarAccess.getNodeValueAssertionRule());
4122 }
4123 set(
4124 current,
4125 "value",
4126 lv_value_2_0,
4127 "org.eclipse.viatra.solver.language.Problem.Constant");
4128 afterParserOrEnumRuleCall();
4129
4130
4131 }
4132
4133
4134 }
4135
4136 otherlv_3=(Token)match(input,14,FOLLOW_2);
4137
4138 newLeafNode(otherlv_3, grammarAccess.getNodeValueAssertionAccess().getFullStopKeyword_3());
4139
4140
4141 }
4142
4143
4144 }
4145
4146
4147 leaveRule();
4148
4149 }
4150
4151 catch (RecognitionException re) {
4152 recover(input,re);
4153 appendSkippedTokens();
4154 }
4155 finally {
4156 }
4157 return current;
4158 }
4159 // $ANTLR end "ruleNodeValueAssertion"
4160
4161
4162 // $ANTLR start "entryRuleConstant"
4163 // InternalProblem.g:1583:1: entryRuleConstant returns [EObject current=null] : iv_ruleConstant= ruleConstant EOF ;
4164 public final EObject entryRuleConstant() throws RecognitionException {
4165 EObject current = null;
4166
4167 EObject iv_ruleConstant = null;
4168
4169
4170 try {
4171 // InternalProblem.g:1583:49: (iv_ruleConstant= ruleConstant EOF )
4172 // InternalProblem.g:1584:2: iv_ruleConstant= ruleConstant EOF
4173 {
4174 newCompositeNode(grammarAccess.getConstantRule());
4175 pushFollow(FOLLOW_1);
4176 iv_ruleConstant=ruleConstant();
4177
4178 state._fsp--;
4179
4180 current =iv_ruleConstant;
4181 match(input,EOF,FOLLOW_2);
4182
4183 }
4184
4185 }
4186
4187 catch (RecognitionException re) {
4188 recover(input,re);
4189 appendSkippedTokens();
4190 }
4191 finally {
4192 }
4193 return current;
4194 }
4195 // $ANTLR end "entryRuleConstant"
4196
4197
4198 // $ANTLR start "ruleConstant"
4199 // InternalProblem.g:1590:1: ruleConstant returns [EObject current=null] : (this_RealConstant_0= ruleRealConstant | this_IntConstant_1= ruleIntConstant | this_StringConstant_2= ruleStringConstant ) ;
4200 public final EObject ruleConstant() throws RecognitionException {
4201 EObject current = null;
4202
4203 EObject this_RealConstant_0 = null;
4204
4205 EObject this_IntConstant_1 = null;
4206
4207 EObject this_StringConstant_2 = null;
4208
4209
4210
4211 enterRule();
4212
4213 try {
4214 // InternalProblem.g:1596:2: ( (this_RealConstant_0= ruleRealConstant | this_IntConstant_1= ruleIntConstant | this_StringConstant_2= ruleStringConstant ) )
4215 // InternalProblem.g:1597:2: (this_RealConstant_0= ruleRealConstant | this_IntConstant_1= ruleIntConstant | this_StringConstant_2= ruleStringConstant )
4216 {
4217 // InternalProblem.g:1597:2: (this_RealConstant_0= ruleRealConstant | this_IntConstant_1= ruleIntConstant | this_StringConstant_2= ruleStringConstant )
4218 int alt37=3;
4219 switch ( input.LA(1) ) {
4220 case 44:
4221 {
4222 int LA37_1 = input.LA(2);
4223
4224 if ( (LA37_1==RULE_INT) ) {
4225 int LA37_3 = input.LA(3);
4226
4227 if ( (LA37_3==14) ) {
4228 int LA37_5 = input.LA(4);
4229
4230 if ( (LA37_5==EOF||LA37_5==RULE_ID||LA37_5==RULE_QUOTED_ID||(LA37_5>=15 && LA37_5<=16)||LA37_5==22||(LA37_5>=28 && LA37_5<=29)||LA37_5==33||LA37_5==36||(LA37_5>=42 && LA37_5<=43)||LA37_5==46) ) {
4231 alt37=2;
4232 }
4233 else if ( (LA37_5==RULE_INT||LA37_5==RULE_EXPONENTIAL) ) {
4234 alt37=1;
4235 }
4236 else {
4237 NoViableAltException nvae =
4238 new NoViableAltException("", 37, 5, input);
4239
4240 throw nvae;
4241 }
4242 }
4243 else if ( (LA37_3==EOF||LA37_3==18||LA37_3==31) ) {
4244 alt37=2;
4245 }
4246 else {
4247 NoViableAltException nvae =
4248 new NoViableAltException("", 37, 3, input);
4249
4250 throw nvae;
4251 }
4252 }
4253 else if ( (LA37_1==RULE_EXPONENTIAL) ) {
4254 alt37=1;
4255 }
4256 else {
4257 NoViableAltException nvae =
4258 new NoViableAltException("", 37, 1, input);
4259
4260 throw nvae;
4261 }
4262 }
4263 break;
4264 case RULE_EXPONENTIAL:
4265 {
4266 alt37=1;
4267 }
4268 break;
4269 case RULE_INT:
4270 {
4271 int LA37_3 = input.LA(2);
4272
4273 if ( (LA37_3==14) ) {
4274 int LA37_5 = input.LA(3);
4275
4276 if ( (LA37_5==EOF||LA37_5==RULE_ID||LA37_5==RULE_QUOTED_ID||(LA37_5>=15 && LA37_5<=16)||LA37_5==22||(LA37_5>=28 && LA37_5<=29)||LA37_5==33||LA37_5==36||(LA37_5>=42 && LA37_5<=43)||LA37_5==46) ) {
4277 alt37=2;
4278 }
4279 else if ( (LA37_5==RULE_INT||LA37_5==RULE_EXPONENTIAL) ) {
4280 alt37=1;
4281 }
4282 else {
4283 NoViableAltException nvae =
4284 new NoViableAltException("", 37, 5, input);
4285
4286 throw nvae;
4287 }
4288 }
4289 else if ( (LA37_3==EOF||LA37_3==18||LA37_3==31) ) {
4290 alt37=2;
4291 }
4292 else {
4293 NoViableAltException nvae =
4294 new NoViableAltException("", 37, 3, input);
4295
4296 throw nvae;
4297 }
4298 }
4299 break;
4300 case RULE_STRING:
4301 {
4302 alt37=3;
4303 }
4304 break;
4305 default:
4306 NoViableAltException nvae =
4307 new NoViableAltException("", 37, 0, input);
4308
4309 throw nvae;
4310 }
4311
4312 switch (alt37) {
4313 case 1 :
4314 // InternalProblem.g:1598:3: this_RealConstant_0= ruleRealConstant
4315 {
4316
4317 newCompositeNode(grammarAccess.getConstantAccess().getRealConstantParserRuleCall_0());
4318
4319 pushFollow(FOLLOW_2);
4320 this_RealConstant_0=ruleRealConstant();
4321
4322 state._fsp--;
4323
4324
4325 current = this_RealConstant_0;
4326 afterParserOrEnumRuleCall();
4327
4328
4329 }
4330 break;
4331 case 2 :
4332 // InternalProblem.g:1607:3: this_IntConstant_1= ruleIntConstant
4333 {
4334
4335 newCompositeNode(grammarAccess.getConstantAccess().getIntConstantParserRuleCall_1());
4336
4337 pushFollow(FOLLOW_2);
4338 this_IntConstant_1=ruleIntConstant();
4339
4340 state._fsp--;
4341
4342
4343 current = this_IntConstant_1;
4344 afterParserOrEnumRuleCall();
4345
4346
4347 }
4348 break;
4349 case 3 :
4350 // InternalProblem.g:1616:3: this_StringConstant_2= ruleStringConstant
4351 {
4352
4353 newCompositeNode(grammarAccess.getConstantAccess().getStringConstantParserRuleCall_2());
4354
4355 pushFollow(FOLLOW_2);
4356 this_StringConstant_2=ruleStringConstant();
4357
4358 state._fsp--;
4359
4360
4361 current = this_StringConstant_2;
4362 afterParserOrEnumRuleCall();
4363
4364
4365 }
4366 break;
4367
4368 }
4369
4370
4371 }
4372
4373
4374 leaveRule();
4375
4376 }
4377
4378 catch (RecognitionException re) {
4379 recover(input,re);
4380 appendSkippedTokens();
4381 }
4382 finally {
4383 }
4384 return current;
4385 }
4386 // $ANTLR end "ruleConstant"
4387
4388
4389 // $ANTLR start "entryRuleIntConstant"
4390 // InternalProblem.g:1628:1: entryRuleIntConstant returns [EObject current=null] : iv_ruleIntConstant= ruleIntConstant EOF ;
4391 public final EObject entryRuleIntConstant() throws RecognitionException {
4392 EObject current = null;
4393
4394 EObject iv_ruleIntConstant = null;
4395
4396
4397 try {
4398 // InternalProblem.g:1628:52: (iv_ruleIntConstant= ruleIntConstant EOF )
4399 // InternalProblem.g:1629:2: iv_ruleIntConstant= ruleIntConstant EOF
4400 {
4401 newCompositeNode(grammarAccess.getIntConstantRule());
4402 pushFollow(FOLLOW_1);
4403 iv_ruleIntConstant=ruleIntConstant();
4404
4405 state._fsp--;
4406
4407 current =iv_ruleIntConstant;
4408 match(input,EOF,FOLLOW_2);
4409
4410 }
4411
4412 }
4413
4414 catch (RecognitionException re) {
4415 recover(input,re);
4416 appendSkippedTokens();
4417 }
4418 finally {
4419 }
4420 return current;
4421 }
4422 // $ANTLR end "entryRuleIntConstant"
4423
4424
4425 // $ANTLR start "ruleIntConstant"
4426 // InternalProblem.g:1635:1: ruleIntConstant returns [EObject current=null] : ( (lv_intValue_0_0= ruleInteger ) ) ;
4427 public final EObject ruleIntConstant() throws RecognitionException {
4428 EObject current = null;
4429
4430 AntlrDatatypeRuleToken lv_intValue_0_0 = null;
4431
4432
4433
4434 enterRule();
4435
4436 try {
4437 // InternalProblem.g:1641:2: ( ( (lv_intValue_0_0= ruleInteger ) ) )
4438 // InternalProblem.g:1642:2: ( (lv_intValue_0_0= ruleInteger ) )
4439 {
4440 // InternalProblem.g:1642:2: ( (lv_intValue_0_0= ruleInteger ) )
4441 // InternalProblem.g:1643:3: (lv_intValue_0_0= ruleInteger )
4442 {
4443 // InternalProblem.g:1643:3: (lv_intValue_0_0= ruleInteger )
4444 // InternalProblem.g:1644:4: lv_intValue_0_0= ruleInteger
4445 {
4446
4447 newCompositeNode(grammarAccess.getIntConstantAccess().getIntValueIntegerParserRuleCall_0());
4448
4449 pushFollow(FOLLOW_2);
4450 lv_intValue_0_0=ruleInteger();
4451
4452 state._fsp--;
4453
4454
4455 if (current==null) {
4456 current = createModelElementForParent(grammarAccess.getIntConstantRule());
4457 }
4458 set(
4459 current,
4460 "intValue",
4461 lv_intValue_0_0,
4462 "org.eclipse.viatra.solver.language.Problem.Integer");
4463 afterParserOrEnumRuleCall();
4464
4465
4466 }
4467
4468
4469 }
4470
4471
4472 }
4473
4474
4475 leaveRule();
4476
4477 }
4478
4479 catch (RecognitionException re) {
4480 recover(input,re);
4481 appendSkippedTokens();
4482 }
4483 finally {
4484 }
4485 return current;
4486 }
4487 // $ANTLR end "ruleIntConstant"
4488
4489
4490 // $ANTLR start "entryRuleRealConstant"
4491 // InternalProblem.g:1664:1: entryRuleRealConstant returns [EObject current=null] : iv_ruleRealConstant= ruleRealConstant EOF ;
4492 public final EObject entryRuleRealConstant() throws RecognitionException {
4493 EObject current = null;
4494
4495 EObject iv_ruleRealConstant = null;
4496
4497
4498 try {
4499 // InternalProblem.g:1664:53: (iv_ruleRealConstant= ruleRealConstant EOF )
4500 // InternalProblem.g:1665:2: iv_ruleRealConstant= ruleRealConstant EOF
4501 {
4502 newCompositeNode(grammarAccess.getRealConstantRule());
4503 pushFollow(FOLLOW_1);
4504 iv_ruleRealConstant=ruleRealConstant();
4505
4506 state._fsp--;
4507
4508 current =iv_ruleRealConstant;
4509 match(input,EOF,FOLLOW_2);
4510
4511 }
4512
4513 }
4514
4515 catch (RecognitionException re) {
4516 recover(input,re);
4517 appendSkippedTokens();
4518 }
4519 finally {
4520 }
4521 return current;
4522 }
4523 // $ANTLR end "entryRuleRealConstant"
4524
4525
4526 // $ANTLR start "ruleRealConstant"
4527 // InternalProblem.g:1671:1: ruleRealConstant returns [EObject current=null] : ( (lv_realValue_0_0= ruleReal ) ) ;
4528 public final EObject ruleRealConstant() throws RecognitionException {
4529 EObject current = null;
4530
4531 AntlrDatatypeRuleToken lv_realValue_0_0 = null;
4532
4533
4534
4535 enterRule();
4536
4537 try {
4538 // InternalProblem.g:1677:2: ( ( (lv_realValue_0_0= ruleReal ) ) )
4539 // InternalProblem.g:1678:2: ( (lv_realValue_0_0= ruleReal ) )
4540 {
4541 // InternalProblem.g:1678:2: ( (lv_realValue_0_0= ruleReal ) )
4542 // InternalProblem.g:1679:3: (lv_realValue_0_0= ruleReal )
4543 {
4544 // InternalProblem.g:1679:3: (lv_realValue_0_0= ruleReal )
4545 // InternalProblem.g:1680:4: lv_realValue_0_0= ruleReal
4546 {
4547
4548 newCompositeNode(grammarAccess.getRealConstantAccess().getRealValueRealParserRuleCall_0());
4549
4550 pushFollow(FOLLOW_2);
4551 lv_realValue_0_0=ruleReal();
4552
4553 state._fsp--;
4554
4555
4556 if (current==null) {
4557 current = createModelElementForParent(grammarAccess.getRealConstantRule());
4558 }
4559 set(
4560 current,
4561 "realValue",
4562 lv_realValue_0_0,
4563 "org.eclipse.viatra.solver.language.Problem.Real");
4564 afterParserOrEnumRuleCall();
4565
4566
4567 }
4568
4569
4570 }
4571
4572
4573 }
4574
4575
4576 leaveRule();
4577
4578 }
4579
4580 catch (RecognitionException re) {
4581 recover(input,re);
4582 appendSkippedTokens();
4583 }
4584 finally {
4585 }
4586 return current;
4587 }
4588 // $ANTLR end "ruleRealConstant"
4589
4590
4591 // $ANTLR start "entryRuleStringConstant"
4592 // InternalProblem.g:1700:1: entryRuleStringConstant returns [EObject current=null] : iv_ruleStringConstant= ruleStringConstant EOF ;
4593 public final EObject entryRuleStringConstant() throws RecognitionException {
4594 EObject current = null;
4595
4596 EObject iv_ruleStringConstant = null;
4597
4598
4599 try {
4600 // InternalProblem.g:1700:55: (iv_ruleStringConstant= ruleStringConstant EOF )
4601 // InternalProblem.g:1701:2: iv_ruleStringConstant= ruleStringConstant EOF
4602 {
4603 newCompositeNode(grammarAccess.getStringConstantRule());
4604 pushFollow(FOLLOW_1);
4605 iv_ruleStringConstant=ruleStringConstant();
4606
4607 state._fsp--;
4608
4609 current =iv_ruleStringConstant;
4610 match(input,EOF,FOLLOW_2);
4611
4612 }
4613
4614 }
4615
4616 catch (RecognitionException re) {
4617 recover(input,re);
4618 appendSkippedTokens();
4619 }
4620 finally {
4621 }
4622 return current;
4623 }
4624 // $ANTLR end "entryRuleStringConstant"
4625
4626
4627 // $ANTLR start "ruleStringConstant"
4628 // InternalProblem.g:1707:1: ruleStringConstant returns [EObject current=null] : ( (lv_stringValue_0_0= RULE_STRING ) ) ;
4629 public final EObject ruleStringConstant() throws RecognitionException {
4630 EObject current = null;
4631
4632 Token lv_stringValue_0_0=null;
4633
4634
4635 enterRule();
4636
4637 try {
4638 // InternalProblem.g:1713:2: ( ( (lv_stringValue_0_0= RULE_STRING ) ) )
4639 // InternalProblem.g:1714:2: ( (lv_stringValue_0_0= RULE_STRING ) )
4640 {
4641 // InternalProblem.g:1714:2: ( (lv_stringValue_0_0= RULE_STRING ) )
4642 // InternalProblem.g:1715:3: (lv_stringValue_0_0= RULE_STRING )
4643 {
4644 // InternalProblem.g:1715:3: (lv_stringValue_0_0= RULE_STRING )
4645 // InternalProblem.g:1716:4: lv_stringValue_0_0= RULE_STRING
4646 {
4647 lv_stringValue_0_0=(Token)match(input,RULE_STRING,FOLLOW_2);
4648
4649 newLeafNode(lv_stringValue_0_0, grammarAccess.getStringConstantAccess().getStringValueSTRINGTerminalRuleCall_0());
4650
4651
4652 if (current==null) {
4653 current = createModelElement(grammarAccess.getStringConstantRule());
4654 }
4655 setWithLastConsumed(
4656 current,
4657 "stringValue",
4658 lv_stringValue_0_0,
4659 "org.eclipse.viatra.solver.language.Problem.STRING");
4660
4661
4662 }
4663
4664
4665 }
4666
4667
4668 }
4669
4670
4671 leaveRule();
4672
4673 }
4674
4675 catch (RecognitionException re) {
4676 recover(input,re);
4677 appendSkippedTokens();
4678 }
4679 finally {
4680 }
4681 return current;
4682 }
4683 // $ANTLR end "ruleStringConstant"
4684
4685
4686 // $ANTLR start "entryRuleScopeDeclaration"
4687 // InternalProblem.g:1735:1: entryRuleScopeDeclaration returns [EObject current=null] : iv_ruleScopeDeclaration= ruleScopeDeclaration EOF ;
4688 public final EObject entryRuleScopeDeclaration() throws RecognitionException {
4689 EObject current = null;
4690
4691 EObject iv_ruleScopeDeclaration = null;
4692
4693
4694 try {
4695 // InternalProblem.g:1735:57: (iv_ruleScopeDeclaration= ruleScopeDeclaration EOF )
4696 // InternalProblem.g:1736:2: iv_ruleScopeDeclaration= ruleScopeDeclaration EOF
4697 {
4698 newCompositeNode(grammarAccess.getScopeDeclarationRule());
4699 pushFollow(FOLLOW_1);
4700 iv_ruleScopeDeclaration=ruleScopeDeclaration();
4701
4702 state._fsp--;
4703
4704 current =iv_ruleScopeDeclaration;
4705 match(input,EOF,FOLLOW_2);
4706
4707 }
4708
4709 }
4710
4711 catch (RecognitionException re) {
4712 recover(input,re);
4713 appendSkippedTokens();
4714 }
4715 finally {
4716 }
4717 return current;
4718 }
4719 // $ANTLR end "entryRuleScopeDeclaration"
4720
4721
4722 // $ANTLR start "ruleScopeDeclaration"
4723 // InternalProblem.g:1742:1: ruleScopeDeclaration returns [EObject current=null] : (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) ;
4724 public final EObject ruleScopeDeclaration() throws RecognitionException {
4725 EObject current = null;
4726
4727 Token otherlv_0=null;
4728 Token otherlv_2=null;
4729 Token otherlv_4=null;
4730 EObject lv_typeScopes_1_0 = null;
4731
4732 EObject lv_typeScopes_3_0 = null;
4733
4734
4735
4736 enterRule();
4737
4738 try {
4739 // InternalProblem.g:1748:2: ( (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) )
4740 // InternalProblem.g:1749:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
4741 {
4742 // InternalProblem.g:1749:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
4743 // InternalProblem.g:1750:3: otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.'
4744 {
4745 otherlv_0=(Token)match(input,36,FOLLOW_33);
4746
4747 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
4748
4749 // InternalProblem.g:1754:3: ( (lv_typeScopes_1_0= ruleTypeScope ) )
4750 // InternalProblem.g:1755:4: (lv_typeScopes_1_0= ruleTypeScope )
4751 {
4752 // InternalProblem.g:1755:4: (lv_typeScopes_1_0= ruleTypeScope )
4753 // InternalProblem.g:1756:5: lv_typeScopes_1_0= ruleTypeScope
4754 {
4755
4756 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_1_0());
4757
4758 pushFollow(FOLLOW_34);
4759 lv_typeScopes_1_0=ruleTypeScope();
4760
4761 state._fsp--;
4762
4763
4764 if (current==null) {
4765 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
4766 }
4767 add(
4768 current,
4769 "typeScopes",
4770 lv_typeScopes_1_0,
4771 "org.eclipse.viatra.solver.language.Problem.TypeScope");
4772 afterParserOrEnumRuleCall();
4773
4774
4775 }
4776
4777
4778 }
4779
4780 // InternalProblem.g:1773:3: (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )*
4781 loop38:
4782 do {
4783 int alt38=2;
4784 int LA38_0 = input.LA(1);
4785
4786 if ( (LA38_0==18) ) {
4787 alt38=1;
4788 }
4789
4790
4791 switch (alt38) {
4792 case 1 :
4793 // InternalProblem.g:1774:4: otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) )
4794 {
4795 otherlv_2=(Token)match(input,18,FOLLOW_33);
4796
4797 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
4798
4799 // InternalProblem.g:1778:4: ( (lv_typeScopes_3_0= ruleTypeScope ) )
4800 // InternalProblem.g:1779:5: (lv_typeScopes_3_0= ruleTypeScope )
4801 {
4802 // InternalProblem.g:1779:5: (lv_typeScopes_3_0= ruleTypeScope )
4803 // InternalProblem.g:1780:6: lv_typeScopes_3_0= ruleTypeScope
4804 {
4805
4806 newCompositeNode(grammarAccess.getScopeDeclarationAccess().getTypeScopesTypeScopeParserRuleCall_2_1_0());
4807
4808 pushFollow(FOLLOW_34);
4809 lv_typeScopes_3_0=ruleTypeScope();
4810
4811 state._fsp--;
4812
4813
4814 if (current==null) {
4815 current = createModelElementForParent(grammarAccess.getScopeDeclarationRule());
4816 }
4817 add(
4818 current,
4819 "typeScopes",
4820 lv_typeScopes_3_0,
4821 "org.eclipse.viatra.solver.language.Problem.TypeScope");
4822 afterParserOrEnumRuleCall();
4823
4824
4825 }
4826
4827
4828 }
4829
4830
4831 }
4832 break;
4833
4834 default :
4835 break loop38;
4836 }
4837 } while (true);
4838
4839 otherlv_4=(Token)match(input,14,FOLLOW_2);
4840
4841 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
4842
4843
4844 }
4845
4846
4847 }
4848
4849
4850 leaveRule();
4851
4852 }
4853
4854 catch (RecognitionException re) {
4855 recover(input,re);
4856 appendSkippedTokens();
4857 }
4858 finally {
4859 }
4860 return current;
4861 }
4862 // $ANTLR end "ruleScopeDeclaration"
4863
4864
4865 // $ANTLR start "entryRuleTypeScope"
4866 // InternalProblem.g:1806:1: entryRuleTypeScope returns [EObject current=null] : iv_ruleTypeScope= ruleTypeScope EOF ;
4867 public final EObject entryRuleTypeScope() throws RecognitionException {
4868 EObject current = null;
4869
4870 EObject iv_ruleTypeScope = null;
4871
4872
4873 try {
4874 // InternalProblem.g:1806:50: (iv_ruleTypeScope= ruleTypeScope EOF )
4875 // InternalProblem.g:1807:2: iv_ruleTypeScope= ruleTypeScope EOF
4876 {
4877 newCompositeNode(grammarAccess.getTypeScopeRule());
4878 pushFollow(FOLLOW_1);
4879 iv_ruleTypeScope=ruleTypeScope();
4880
4881 state._fsp--;
4882
4883 current =iv_ruleTypeScope;
4884 match(input,EOF,FOLLOW_2);
4885
4886 }
4887
4888 }
4889
4890 catch (RecognitionException re) {
4891 recover(input,re);
4892 appendSkippedTokens();
4893 }
4894 finally {
4895 }
4896 return current;
4897 }
4898 // $ANTLR end "entryRuleTypeScope"
4899
4900
4901 // $ANTLR start "ruleTypeScope"
4902 // InternalProblem.g:1813:1: ruleTypeScope returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) ;
4903 public final EObject ruleTypeScope() throws RecognitionException {
4904 EObject current = null;
4905
4906 Token otherlv_0=null;
4907 Token lv_increment_1_0=null;
4908 Token otherlv_2=null;
4909 EObject lv_multiplicity_3_0 = null;
4910
4911
4912
4913 enterRule();
4914
4915 try {
4916 // InternalProblem.g:1819:2: ( ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) ) )
4917 // InternalProblem.g:1820:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) )
4918 {
4919 // InternalProblem.g:1820:2: ( ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) ) )
4920 // InternalProblem.g:1821:3: ( (otherlv_0= RULE_ID ) ) ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' ) ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) )
4921 {
4922 // InternalProblem.g:1821:3: ( (otherlv_0= RULE_ID ) )
4923 // InternalProblem.g:1822:4: (otherlv_0= RULE_ID )
4924 {
4925 // InternalProblem.g:1822:4: (otherlv_0= RULE_ID )
4926 // InternalProblem.g:1823:5: otherlv_0= RULE_ID
4927 {
4928
4929 if (current==null) {
4930 current = createModelElement(grammarAccess.getTypeScopeRule());
4931 }
4932
4933 otherlv_0=(Token)match(input,RULE_ID,FOLLOW_35);
4934
4935 newLeafNode(otherlv_0, grammarAccess.getTypeScopeAccess().getTargetTypeClassDeclarationCrossReference_0_0());
4936
4937
4938 }
4939
4940
4941 }
4942
4943 // InternalProblem.g:1834:3: ( ( (lv_increment_1_0= '+=' ) ) | otherlv_2= '=' )
4944 int alt39=2;
4945 int LA39_0 = input.LA(1);
4946
4947 if ( (LA39_0==37) ) {
4948 alt39=1;
4949 }
4950 else if ( (LA39_0==38) ) {
4951 alt39=2;
4952 }
4953 else {
4954 NoViableAltException nvae =
4955 new NoViableAltException("", 39, 0, input);
4956
4957 throw nvae;
4958 }
4959 switch (alt39) {
4960 case 1 :
4961 // InternalProblem.g:1835:4: ( (lv_increment_1_0= '+=' ) )
4962 {
4963 // InternalProblem.g:1835:4: ( (lv_increment_1_0= '+=' ) )
4964 // InternalProblem.g:1836:5: (lv_increment_1_0= '+=' )
4965 {
4966 // InternalProblem.g:1836:5: (lv_increment_1_0= '+=' )
4967 // InternalProblem.g:1837:6: lv_increment_1_0= '+='
4968 {
4969 lv_increment_1_0=(Token)match(input,37,FOLLOW_17);
4970
4971 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
4972
4973
4974 if (current==null) {
4975 current = createModelElement(grammarAccess.getTypeScopeRule());
4976 }
4977 setWithLastConsumed(current, "increment", lv_increment_1_0 != null, "+=");
4978
4979
4980 }
4981
4982
4983 }
4984
4985
4986 }
4987 break;
4988 case 2 :
4989 // InternalProblem.g:1850:4: otherlv_2= '='
4990 {
4991 otherlv_2=(Token)match(input,38,FOLLOW_17);
4992
4993 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
4994
4995
4996 }
4997 break;
4998
4999 }
5000
5001 // InternalProblem.g:1855:3: ( (lv_multiplicity_3_0= ruleDefiniteMultiplicity ) )
5002 // InternalProblem.g:1856:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity )
5003 {
5004 // InternalProblem.g:1856:4: (lv_multiplicity_3_0= ruleDefiniteMultiplicity )
5005 // InternalProblem.g:1857:5: lv_multiplicity_3_0= ruleDefiniteMultiplicity
5006 {
5007
5008 newCompositeNode(grammarAccess.getTypeScopeAccess().getMultiplicityDefiniteMultiplicityParserRuleCall_2_0());
5009
5010 pushFollow(FOLLOW_2);
5011 lv_multiplicity_3_0=ruleDefiniteMultiplicity();
5012
5013 state._fsp--;
5014
5015
5016 if (current==null) {
5017 current = createModelElementForParent(grammarAccess.getTypeScopeRule());
5018 }
5019 set(
5020 current,
5021 "multiplicity",
5022 lv_multiplicity_3_0,
5023 "org.eclipse.viatra.solver.language.Problem.DefiniteMultiplicity");
5024 afterParserOrEnumRuleCall();
5025
5026
5027 }
5028
5029
5030 }
5031
5032
5033 }
5034
5035
5036 }
5037
5038
5039 leaveRule();
5040
5041 }
5042
5043 catch (RecognitionException re) {
5044 recover(input,re);
5045 appendSkippedTokens();
5046 }
5047 finally {
5048 }
5049 return current;
5050 }
5051 // $ANTLR end "ruleTypeScope"
5052
5053
5054 // $ANTLR start "entryRuleMultiplicity"
5055 // InternalProblem.g:1878:1: entryRuleMultiplicity returns [EObject current=null] : iv_ruleMultiplicity= ruleMultiplicity EOF ;
5056 public final EObject entryRuleMultiplicity() throws RecognitionException {
5057 EObject current = null;
5058
5059 EObject iv_ruleMultiplicity = null;
5060
5061
5062 try {
5063 // InternalProblem.g:1878:53: (iv_ruleMultiplicity= ruleMultiplicity EOF )
5064 // InternalProblem.g:1879:2: iv_ruleMultiplicity= ruleMultiplicity EOF
5065 {
5066 newCompositeNode(grammarAccess.getMultiplicityRule());
5067 pushFollow(FOLLOW_1);
5068 iv_ruleMultiplicity=ruleMultiplicity();
5069
5070 state._fsp--;
5071
5072 current =iv_ruleMultiplicity;
5073 match(input,EOF,FOLLOW_2);
5074
5075 }
5076
5077 }
5078
5079 catch (RecognitionException re) {
5080 recover(input,re);
5081 appendSkippedTokens();
5082 }
5083 finally {
5084 }
5085 return current;
5086 }
5087 // $ANTLR end "entryRuleMultiplicity"
5088
5089
5090 // $ANTLR start "ruleMultiplicity"
5091 // InternalProblem.g:1885:1: ruleMultiplicity returns [EObject current=null] : (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) ;
5092 public final EObject ruleMultiplicity() throws RecognitionException {
5093 EObject current = null;
5094
5095 EObject this_UnboundedMultiplicity_0 = null;
5096
5097 EObject this_DefiniteMultiplicity_1 = null;
5098
5099
5100
5101 enterRule();
5102
5103 try {
5104 // InternalProblem.g:1891:2: ( (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity ) )
5105 // InternalProblem.g:1892:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity )
5106 {
5107 // InternalProblem.g:1892:2: (this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity | this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity )
5108 int alt40=2;
5109 int LA40_0 = input.LA(1);
5110
5111 if ( (LA40_0==EOF||LA40_0==26) ) {
5112 alt40=1;
5113 }
5114 else if ( (LA40_0==RULE_INT) ) {
5115 alt40=2;
5116 }
5117 else {
5118 NoViableAltException nvae =
5119 new NoViableAltException("", 40, 0, input);
5120
5121 throw nvae;
5122 }
5123 switch (alt40) {
5124 case 1 :
5125 // InternalProblem.g:1893:3: this_UnboundedMultiplicity_0= ruleUnboundedMultiplicity
5126 {
5127
5128 newCompositeNode(grammarAccess.getMultiplicityAccess().getUnboundedMultiplicityParserRuleCall_0());
5129
5130 pushFollow(FOLLOW_2);
5131 this_UnboundedMultiplicity_0=ruleUnboundedMultiplicity();
5132
5133 state._fsp--;
5134
5135
5136 current = this_UnboundedMultiplicity_0;
5137 afterParserOrEnumRuleCall();
5138
5139
5140 }
5141 break;
5142 case 2 :
5143 // InternalProblem.g:1902:3: this_DefiniteMultiplicity_1= ruleDefiniteMultiplicity
5144 {
5145
5146 newCompositeNode(grammarAccess.getMultiplicityAccess().getDefiniteMultiplicityParserRuleCall_1());
5147
5148 pushFollow(FOLLOW_2);
5149 this_DefiniteMultiplicity_1=ruleDefiniteMultiplicity();
5150
5151 state._fsp--;
5152
5153
5154 current = this_DefiniteMultiplicity_1;
5155 afterParserOrEnumRuleCall();
5156
5157
5158 }
5159 break;
5160
5161 }
5162
5163
5164 }
5165
5166
5167 leaveRule();
5168
5169 }
5170
5171 catch (RecognitionException re) {
5172 recover(input,re);
5173 appendSkippedTokens();
5174 }
5175 finally {
5176 }
5177 return current;
5178 }
5179 // $ANTLR end "ruleMultiplicity"
5180
5181
5182 // $ANTLR start "entryRuleDefiniteMultiplicity"
5183 // InternalProblem.g:1914:1: entryRuleDefiniteMultiplicity returns [EObject current=null] : iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF ;
5184 public final EObject entryRuleDefiniteMultiplicity() throws RecognitionException {
5185 EObject current = null;
5186
5187 EObject iv_ruleDefiniteMultiplicity = null;
5188
5189
5190 try {
5191 // InternalProblem.g:1914:61: (iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF )
5192 // InternalProblem.g:1915:2: iv_ruleDefiniteMultiplicity= ruleDefiniteMultiplicity EOF
5193 {
5194 newCompositeNode(grammarAccess.getDefiniteMultiplicityRule());
5195 pushFollow(FOLLOW_1);
5196 iv_ruleDefiniteMultiplicity=ruleDefiniteMultiplicity();
5197
5198 state._fsp--;
5199
5200 current =iv_ruleDefiniteMultiplicity;
5201 match(input,EOF,FOLLOW_2);
5202
5203 }
5204
5205 }
5206
5207 catch (RecognitionException re) {
5208 recover(input,re);
5209 appendSkippedTokens();
5210 }
5211 finally {
5212 }
5213 return current;
5214 }
5215 // $ANTLR end "entryRuleDefiniteMultiplicity"
5216
5217
5218 // $ANTLR start "ruleDefiniteMultiplicity"
5219 // InternalProblem.g:1921:1: ruleDefiniteMultiplicity returns [EObject current=null] : (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) ;
5220 public final EObject ruleDefiniteMultiplicity() throws RecognitionException {
5221 EObject current = null;
5222
5223 EObject this_RangeMultiplicity_0 = null;
5224
5225 EObject this_ExactMultiplicity_1 = null;
5226
5227
5228
5229 enterRule();
5230
5231 try {
5232 // InternalProblem.g:1927:2: ( (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity ) )
5233 // InternalProblem.g:1928:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
5234 {
5235 // InternalProblem.g:1928:2: (this_RangeMultiplicity_0= ruleRangeMultiplicity | this_ExactMultiplicity_1= ruleExactMultiplicity )
5236 int alt41=2;
5237 int LA41_0 = input.LA(1);
5238
5239 if ( (LA41_0==RULE_INT) ) {
5240 int LA41_1 = input.LA(2);
5241
5242 if ( (LA41_1==39) ) {
5243 alt41=1;
5244 }
5245 else if ( (LA41_1==EOF||LA41_1==14||LA41_1==18||LA41_1==26) ) {
5246 alt41=2;
5247 }
5248 else {
5249 NoViableAltException nvae =
5250 new NoViableAltException("", 41, 1, input);
5251
5252 throw nvae;
5253 }
5254 }
5255 else {
5256 NoViableAltException nvae =
5257 new NoViableAltException("", 41, 0, input);
5258
5259 throw nvae;
5260 }
5261 switch (alt41) {
5262 case 1 :
5263 // InternalProblem.g:1929:3: this_RangeMultiplicity_0= ruleRangeMultiplicity
5264 {
5265
5266 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getRangeMultiplicityParserRuleCall_0());
5267
5268 pushFollow(FOLLOW_2);
5269 this_RangeMultiplicity_0=ruleRangeMultiplicity();
5270
5271 state._fsp--;
5272
5273
5274 current = this_RangeMultiplicity_0;
5275 afterParserOrEnumRuleCall();
5276
5277
5278 }
5279 break;
5280 case 2 :
5281 // InternalProblem.g:1938:3: this_ExactMultiplicity_1= ruleExactMultiplicity
5282 {
5283
5284 newCompositeNode(grammarAccess.getDefiniteMultiplicityAccess().getExactMultiplicityParserRuleCall_1());
5285
5286 pushFollow(FOLLOW_2);
5287 this_ExactMultiplicity_1=ruleExactMultiplicity();
5288
5289 state._fsp--;
5290
5291
5292 current = this_ExactMultiplicity_1;
5293 afterParserOrEnumRuleCall();
5294
5295
5296 }
5297 break;
5298
5299 }
5300
5301
5302 }
5303
5304
5305 leaveRule();
5306
5307 }
5308
5309 catch (RecognitionException re) {
5310 recover(input,re);
5311 appendSkippedTokens();
5312 }
5313 finally {
5314 }
5315 return current;
5316 }
5317 // $ANTLR end "ruleDefiniteMultiplicity"
5318
5319
5320 // $ANTLR start "entryRuleUnboundedMultiplicity"
5321 // InternalProblem.g:1950:1: entryRuleUnboundedMultiplicity returns [EObject current=null] : iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF ;
5322 public final EObject entryRuleUnboundedMultiplicity() throws RecognitionException {
5323 EObject current = null;
5324
5325 EObject iv_ruleUnboundedMultiplicity = null;
5326
5327
5328 try {
5329 // InternalProblem.g:1950:62: (iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF )
5330 // InternalProblem.g:1951:2: iv_ruleUnboundedMultiplicity= ruleUnboundedMultiplicity EOF
5331 {
5332 newCompositeNode(grammarAccess.getUnboundedMultiplicityRule());
5333 pushFollow(FOLLOW_1);
5334 iv_ruleUnboundedMultiplicity=ruleUnboundedMultiplicity();
5335
5336 state._fsp--;
5337
5338 current =iv_ruleUnboundedMultiplicity;
5339 match(input,EOF,FOLLOW_2);
5340
5341 }
5342
5343 }
5344
5345 catch (RecognitionException re) {
5346 recover(input,re);
5347 appendSkippedTokens();
5348 }
5349 finally {
5350 }
5351 return current;
5352 }
5353 // $ANTLR end "entryRuleUnboundedMultiplicity"
5354
5355
5356 // $ANTLR start "ruleUnboundedMultiplicity"
5357 // InternalProblem.g:1957:1: ruleUnboundedMultiplicity returns [EObject current=null] : () ;
5358 public final EObject ruleUnboundedMultiplicity() throws RecognitionException {
5359 EObject current = null;
5360
5361
5362 enterRule();
5363
5364 try {
5365 // InternalProblem.g:1963:2: ( () )
5366 // InternalProblem.g:1964:2: ()
5367 {
5368 // InternalProblem.g:1964:2: ()
5369 // InternalProblem.g:1965:3:
5370 {
5371
5372 current = forceCreateModelElement(
5373 grammarAccess.getUnboundedMultiplicityAccess().getUnboundedMultiplicityAction(),
5374 current);
5375
5376
5377 }
5378
5379
5380 }
5381
5382
5383 leaveRule();
5384
5385 }
5386 finally {
5387 }
5388 return current;
5389 }
5390 // $ANTLR end "ruleUnboundedMultiplicity"
5391
5392
5393 // $ANTLR start "entryRuleRangeMultiplicity"
5394 // InternalProblem.g:1974:1: entryRuleRangeMultiplicity returns [EObject current=null] : iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF ;
5395 public final EObject entryRuleRangeMultiplicity() throws RecognitionException {
5396 EObject current = null;
5397
5398 EObject iv_ruleRangeMultiplicity = null;
5399
5400
5401 try {
5402 // InternalProblem.g:1974:58: (iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF )
5403 // InternalProblem.g:1975:2: iv_ruleRangeMultiplicity= ruleRangeMultiplicity EOF
5404 {
5405 newCompositeNode(grammarAccess.getRangeMultiplicityRule());
5406 pushFollow(FOLLOW_1);
5407 iv_ruleRangeMultiplicity=ruleRangeMultiplicity();
5408
5409 state._fsp--;
5410
5411 current =iv_ruleRangeMultiplicity;
5412 match(input,EOF,FOLLOW_2);
5413
5414 }
5415
5416 }
5417
5418 catch (RecognitionException re) {
5419 recover(input,re);
5420 appendSkippedTokens();
5421 }
5422 finally {
5423 }
5424 return current;
5425 }
5426 // $ANTLR end "entryRuleRangeMultiplicity"
5427
5428
5429 // $ANTLR start "ruleRangeMultiplicity"
5430 // InternalProblem.g:1981:1: ruleRangeMultiplicity returns [EObject current=null] : ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) ;
5431 public final EObject ruleRangeMultiplicity() throws RecognitionException {
5432 EObject current = null;
5433
5434 Token lv_lowerBound_0_0=null;
5435 Token otherlv_1=null;
5436 AntlrDatatypeRuleToken lv_upperBound_2_0 = null;
5437
5438
5439
5440 enterRule();
5441
5442 try {
5443 // InternalProblem.g:1987:2: ( ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) ) )
5444 // InternalProblem.g:1988:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
5445 {
5446 // InternalProblem.g:1988:2: ( ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) ) )
5447 // InternalProblem.g:1989:3: ( (lv_lowerBound_0_0= RULE_INT ) ) otherlv_1= '..' ( (lv_upperBound_2_0= ruleUpperBound ) )
5448 {
5449 // InternalProblem.g:1989:3: ( (lv_lowerBound_0_0= RULE_INT ) )
5450 // InternalProblem.g:1990:4: (lv_lowerBound_0_0= RULE_INT )
5451 {
5452 // InternalProblem.g:1990:4: (lv_lowerBound_0_0= RULE_INT )
5453 // InternalProblem.g:1991:5: lv_lowerBound_0_0= RULE_INT
5454 {
5455 lv_lowerBound_0_0=(Token)match(input,RULE_INT,FOLLOW_36);
5456
5457 newLeafNode(lv_lowerBound_0_0, grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0());
5458
5459
5460 if (current==null) {
5461 current = createModelElement(grammarAccess.getRangeMultiplicityRule());
5462 }
5463 setWithLastConsumed(
5464 current,
5465 "lowerBound",
5466 lv_lowerBound_0_0,
5467 "org.eclipse.xtext.common.Terminals.INT");
5468
5469
5470 }
5471
5472
5473 }
5474
5475 otherlv_1=(Token)match(input,39,FOLLOW_37);
5476
5477 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
5478
5479 // InternalProblem.g:2011:3: ( (lv_upperBound_2_0= ruleUpperBound ) )
5480 // InternalProblem.g:2012:4: (lv_upperBound_2_0= ruleUpperBound )
5481 {
5482 // InternalProblem.g:2012:4: (lv_upperBound_2_0= ruleUpperBound )
5483 // InternalProblem.g:2013:5: lv_upperBound_2_0= ruleUpperBound
5484 {
5485
5486 newCompositeNode(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0());
5487
5488 pushFollow(FOLLOW_2);
5489 lv_upperBound_2_0=ruleUpperBound();
5490
5491 state._fsp--;
5492
5493
5494 if (current==null) {
5495 current = createModelElementForParent(grammarAccess.getRangeMultiplicityRule());
5496 }
5497 set(
5498 current,
5499 "upperBound",
5500 lv_upperBound_2_0,
5501 "org.eclipse.viatra.solver.language.Problem.UpperBound");
5502 afterParserOrEnumRuleCall();
5503
5504
5505 }
5506
5507
5508 }
5509
5510
5511 }
5512
5513
5514 }
5515
5516
5517 leaveRule();
5518
5519 }
5520
5521 catch (RecognitionException re) {
5522 recover(input,re);
5523 appendSkippedTokens();
5524 }
5525 finally {
5526 }
5527 return current;
5528 }
5529 // $ANTLR end "ruleRangeMultiplicity"
5530
5531
5532 // $ANTLR start "entryRuleExactMultiplicity"
5533 // InternalProblem.g:2034:1: entryRuleExactMultiplicity returns [EObject current=null] : iv_ruleExactMultiplicity= ruleExactMultiplicity EOF ;
5534 public final EObject entryRuleExactMultiplicity() throws RecognitionException {
5535 EObject current = null;
5536
5537 EObject iv_ruleExactMultiplicity = null;
5538
5539
5540 try {
5541 // InternalProblem.g:2034:58: (iv_ruleExactMultiplicity= ruleExactMultiplicity EOF )
5542 // InternalProblem.g:2035:2: iv_ruleExactMultiplicity= ruleExactMultiplicity EOF
5543 {
5544 newCompositeNode(grammarAccess.getExactMultiplicityRule());
5545 pushFollow(FOLLOW_1);
5546 iv_ruleExactMultiplicity=ruleExactMultiplicity();
5547
5548 state._fsp--;
5549
5550 current =iv_ruleExactMultiplicity;
5551 match(input,EOF,FOLLOW_2);
5552
5553 }
5554
5555 }
5556
5557 catch (RecognitionException re) {
5558 recover(input,re);
5559 appendSkippedTokens();
5560 }
5561 finally {
5562 }
5563 return current;
5564 }
5565 // $ANTLR end "entryRuleExactMultiplicity"
5566
5567
5568 // $ANTLR start "ruleExactMultiplicity"
5569 // InternalProblem.g:2041:1: ruleExactMultiplicity returns [EObject current=null] : ( (lv_exactValue_0_0= RULE_INT ) ) ;
5570 public final EObject ruleExactMultiplicity() throws RecognitionException {
5571 EObject current = null;
5572
5573 Token lv_exactValue_0_0=null;
5574
5575
5576 enterRule();
5577
5578 try {
5579 // InternalProblem.g:2047:2: ( ( (lv_exactValue_0_0= RULE_INT ) ) )
5580 // InternalProblem.g:2048:2: ( (lv_exactValue_0_0= RULE_INT ) )
5581 {
5582 // InternalProblem.g:2048:2: ( (lv_exactValue_0_0= RULE_INT ) )
5583 // InternalProblem.g:2049:3: (lv_exactValue_0_0= RULE_INT )
5584 {
5585 // InternalProblem.g:2049:3: (lv_exactValue_0_0= RULE_INT )
5586 // InternalProblem.g:2050:4: lv_exactValue_0_0= RULE_INT
5587 {
5588 lv_exactValue_0_0=(Token)match(input,RULE_INT,FOLLOW_2);
5589
5590 newLeafNode(lv_exactValue_0_0, grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0());
5591
5592
5593 if (current==null) {
5594 current = createModelElement(grammarAccess.getExactMultiplicityRule());
5595 }
5596 setWithLastConsumed(
5597 current,
5598 "exactValue",
5599 lv_exactValue_0_0,
5600 "org.eclipse.xtext.common.Terminals.INT");
5601
5602
5603 }
5604
5605
5606 }
5607
5608
5609 }
5610
5611
5612 leaveRule();
5613
5614 }
5615
5616 catch (RecognitionException re) {
5617 recover(input,re);
5618 appendSkippedTokens();
5619 }
5620 finally {
5621 }
5622 return current;
5623 }
5624 // $ANTLR end "ruleExactMultiplicity"
5625
5626
5627 // $ANTLR start "entryRuleUpperBound"
5628 // InternalProblem.g:2069:1: entryRuleUpperBound returns [String current=null] : iv_ruleUpperBound= ruleUpperBound EOF ;
5629 public final String entryRuleUpperBound() throws RecognitionException {
5630 String current = null;
5631
5632 AntlrDatatypeRuleToken iv_ruleUpperBound = null;
5633
5634
5635 try {
5636 // InternalProblem.g:2069:50: (iv_ruleUpperBound= ruleUpperBound EOF )
5637 // InternalProblem.g:2070:2: iv_ruleUpperBound= ruleUpperBound EOF
5638 {
5639 newCompositeNode(grammarAccess.getUpperBoundRule());
5640 pushFollow(FOLLOW_1);
5641 iv_ruleUpperBound=ruleUpperBound();
5642
5643 state._fsp--;
5644
5645 current =iv_ruleUpperBound.getText();
5646 match(input,EOF,FOLLOW_2);
5647
5648 }
5649
5650 }
5651
5652 catch (RecognitionException re) {
5653 recover(input,re);
5654 appendSkippedTokens();
5655 }
5656 finally {
5657 }
5658 return current;
5659 }
5660 // $ANTLR end "entryRuleUpperBound"
5661
5662
5663 // $ANTLR start "ruleUpperBound"
5664 // InternalProblem.g:2076:1: ruleUpperBound returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_INT_0= RULE_INT | kw= '*' ) ;
5665 public final AntlrDatatypeRuleToken ruleUpperBound() throws RecognitionException {
5666 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
5667
5668 Token this_INT_0=null;
5669 Token kw=null;
5670
5671
5672 enterRule();
5673
5674 try {
5675 // InternalProblem.g:2082:2: ( (this_INT_0= RULE_INT | kw= '*' ) )
5676 // InternalProblem.g:2083:2: (this_INT_0= RULE_INT | kw= '*' )
5677 {
5678 // InternalProblem.g:2083:2: (this_INT_0= RULE_INT | kw= '*' )
5679 int alt42=2;
5680 int LA42_0 = input.LA(1);
5681
5682 if ( (LA42_0==RULE_INT) ) {
5683 alt42=1;
5684 }
5685 else if ( (LA42_0==40) ) {
5686 alt42=2;
5687 }
5688 else {
5689 NoViableAltException nvae =
5690 new NoViableAltException("", 42, 0, input);
5691
5692 throw nvae;
5693 }
5694 switch (alt42) {
5695 case 1 :
5696 // InternalProblem.g:2084:3: this_INT_0= RULE_INT
5697 {
5698 this_INT_0=(Token)match(input,RULE_INT,FOLLOW_2);
5699
5700 current.merge(this_INT_0);
5701
5702
5703 newLeafNode(this_INT_0, grammarAccess.getUpperBoundAccess().getINTTerminalRuleCall_0());
5704
5705
5706 }
5707 break;
5708 case 2 :
5709 // InternalProblem.g:2092:3: kw= '*'
5710 {
5711 kw=(Token)match(input,40,FOLLOW_2);
5712
5713 current.merge(kw);
5714 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
5715
5716
5717 }
5718 break;
5719
5720 }
5721
5722
5723 }
5724
5725
5726 leaveRule();
5727
5728 }
5729
5730 catch (RecognitionException re) {
5731 recover(input,re);
5732 appendSkippedTokens();
5733 }
5734 finally {
5735 }
5736 return current;
5737 }
5738 // $ANTLR end "ruleUpperBound"
5739
5740
5741 // $ANTLR start "entryRuleQualifiedName"
5742 // InternalProblem.g:2101:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
5743 public final String entryRuleQualifiedName() throws RecognitionException {
5744 String current = null;
5745
5746 AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
5747
5748
5749
5750 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
5751
5752 try {
5753 // InternalProblem.g:2103:2: (iv_ruleQualifiedName= ruleQualifiedName EOF )
5754 // InternalProblem.g:2104:2: iv_ruleQualifiedName= ruleQualifiedName EOF
5755 {
5756 newCompositeNode(grammarAccess.getQualifiedNameRule());
5757 pushFollow(FOLLOW_1);
5758 iv_ruleQualifiedName=ruleQualifiedName();
5759
5760 state._fsp--;
5761
5762 current =iv_ruleQualifiedName.getText();
5763 match(input,EOF,FOLLOW_2);
5764
5765 }
5766
5767 }
5768
5769 catch (RecognitionException re) {
5770 recover(input,re);
5771 appendSkippedTokens();
5772 }
5773 finally {
5774
5775 myHiddenTokenState.restore();
5776
5777 }
5778 return current;
5779 }
5780 // $ANTLR end "entryRuleQualifiedName"
5781
5782
5783 // $ANTLR start "ruleQualifiedName"
5784 // InternalProblem.g:2113:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* ) ) ;
5785 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
5786 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
5787
5788 Token this_QUOTED_ID_0=null;
5789 Token kw=null;
5790 AntlrDatatypeRuleToken this_Identifier_1 = null;
5791
5792 AntlrDatatypeRuleToken this_Identifier_3 = null;
5793
5794
5795
5796 enterRule();
5797 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
5798
5799 try {
5800 // InternalProblem.g:2120:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* ) ) )
5801 // InternalProblem.g:2121:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* ) )
5802 {
5803 // InternalProblem.g:2121:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* ) )
5804 int alt44=2;
5805 int LA44_0 = input.LA(1);
5806
5807 if ( (LA44_0==RULE_QUOTED_ID) ) {
5808 alt44=1;
5809 }
5810 else if ( (LA44_0==RULE_ID||(LA44_0>=42 && LA44_0<=43)) ) {
5811 alt44=2;
5812 }
5813 else {
5814 NoViableAltException nvae =
5815 new NoViableAltException("", 44, 0, input);
5816
5817 throw nvae;
5818 }
5819 switch (alt44) {
5820 case 1 :
5821 // InternalProblem.g:2122:3: this_QUOTED_ID_0= RULE_QUOTED_ID
5822 {
5823 this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
5824
5825 current.merge(this_QUOTED_ID_0);
5826
5827
5828 newLeafNode(this_QUOTED_ID_0, grammarAccess.getQualifiedNameAccess().getQUOTED_IDTerminalRuleCall_0());
5829
5830
5831 }
5832 break;
5833 case 2 :
5834 // InternalProblem.g:2130:3: (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* )
5835 {
5836 // InternalProblem.g:2130:3: (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* )
5837 // InternalProblem.g:2131:4: this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )*
5838 {
5839
5840 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0());
5841
5842 pushFollow(FOLLOW_38);
5843 this_Identifier_1=ruleIdentifier();
5844
5845 state._fsp--;
5846
5847
5848 current.merge(this_Identifier_1);
5849
5850
5851 afterParserOrEnumRuleCall();
5852
5853 // InternalProblem.g:2141:4: (kw= '::' this_Identifier_3= ruleIdentifier )*
5854 loop43:
5855 do {
5856 int alt43=2;
5857 int LA43_0 = input.LA(1);
5858
5859 if ( (LA43_0==41) ) {
5860 alt43=1;
5861 }
5862
5863
5864 switch (alt43) {
5865 case 1 :
5866 // InternalProblem.g:2142:5: kw= '::' this_Identifier_3= ruleIdentifier
5867 {
5868 kw=(Token)match(input,41,FOLLOW_3);
5869
5870 current.merge(kw);
5871 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0());
5872
5873
5874 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
5875
5876 pushFollow(FOLLOW_38);
5877 this_Identifier_3=ruleIdentifier();
5878
5879 state._fsp--;
5880
5881
5882 current.merge(this_Identifier_3);
5883
5884
5885 afterParserOrEnumRuleCall();
5886
5887
5888 }
5889 break;
5890
5891 default :
5892 break loop43;
5893 }
5894 } while (true);
5895
5896
5897 }
5898
5899
5900 }
5901 break;
5902
5903 }
5904
5905
5906 }
5907
5908
5909 leaveRule();
5910
5911 }
5912
5913 catch (RecognitionException re) {
5914 recover(input,re);
5915 appendSkippedTokens();
5916 }
5917 finally {
5918
5919 myHiddenTokenState.restore();
5920
5921 }
5922 return current;
5923 }
5924 // $ANTLR end "ruleQualifiedName"
5925
5926
5927 // $ANTLR start "entryRuleIdentifier"
5928 // InternalProblem.g:2166:1: entryRuleIdentifier returns [String current=null] : iv_ruleIdentifier= ruleIdentifier EOF ;
5929 public final String entryRuleIdentifier() throws RecognitionException {
5930 String current = null;
5931
5932 AntlrDatatypeRuleToken iv_ruleIdentifier = null;
5933
5934
5935 try {
5936 // InternalProblem.g:2166:50: (iv_ruleIdentifier= ruleIdentifier EOF )
5937 // InternalProblem.g:2167:2: iv_ruleIdentifier= ruleIdentifier EOF
5938 {
5939 newCompositeNode(grammarAccess.getIdentifierRule());
5940 pushFollow(FOLLOW_1);
5941 iv_ruleIdentifier=ruleIdentifier();
5942
5943 state._fsp--;
5944
5945 current =iv_ruleIdentifier.getText();
5946 match(input,EOF,FOLLOW_2);
5947
5948 }
5949
5950 }
5951
5952 catch (RecognitionException re) {
5953 recover(input,re);
5954 appendSkippedTokens();
5955 }
5956 finally {
5957 }
5958 return current;
5959 }
5960 // $ANTLR end "entryRuleIdentifier"
5961
5962
5963 // $ANTLR start "ruleIdentifier"
5964 // InternalProblem.g:2173:1: ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' ) ;
5965 public final AntlrDatatypeRuleToken ruleIdentifier() throws RecognitionException {
5966 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
5967
5968 Token this_ID_0=null;
5969 Token kw=null;
5970
5971
5972 enterRule();
5973
5974 try {
5975 // InternalProblem.g:2179:2: ( (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' ) )
5976 // InternalProblem.g:2180:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' )
5977 {
5978 // InternalProblem.g:2180:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' )
5979 int alt45=3;
5980 switch ( input.LA(1) ) {
5981 case RULE_ID:
5982 {
5983 alt45=1;
5984 }
5985 break;
5986 case 42:
5987 {
5988 alt45=2;
5989 }
5990 break;
5991 case 43:
5992 {
5993 alt45=3;
5994 }
5995 break;
5996 default:
5997 NoViableAltException nvae =
5998 new NoViableAltException("", 45, 0, input);
5999
6000 throw nvae;
6001 }
6002
6003 switch (alt45) {
6004 case 1 :
6005 // InternalProblem.g:2181:3: this_ID_0= RULE_ID
6006 {
6007 this_ID_0=(Token)match(input,RULE_ID,FOLLOW_2);
6008
6009 current.merge(this_ID_0);
6010
6011
6012 newLeafNode(this_ID_0, grammarAccess.getIdentifierAccess().getIDTerminalRuleCall_0());
6013
6014
6015 }
6016 break;
6017 case 2 :
6018 // InternalProblem.g:2189:3: kw= 'true'
6019 {
6020 kw=(Token)match(input,42,FOLLOW_2);
6021
6022 current.merge(kw);
6023 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1());
6024
6025
6026 }
6027 break;
6028 case 3 :
6029 // InternalProblem.g:2195:3: kw= 'false'
6030 {
6031 kw=(Token)match(input,43,FOLLOW_2);
6032
6033 current.merge(kw);
6034 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
6035
6036
6037 }
6038 break;
6039
6040 }
6041
6042
6043 }
6044
6045
6046 leaveRule();
6047
6048 }
6049
6050 catch (RecognitionException re) {
6051 recover(input,re);
6052 appendSkippedTokens();
6053 }
6054 finally {
6055 }
6056 return current;
6057 }
6058 // $ANTLR end "ruleIdentifier"
6059
6060
6061 // $ANTLR start "entryRuleInteger"
6062 // InternalProblem.g:2204:1: entryRuleInteger returns [String current=null] : iv_ruleInteger= ruleInteger EOF ;
6063 public final String entryRuleInteger() throws RecognitionException {
6064 String current = null;
6065
6066 AntlrDatatypeRuleToken iv_ruleInteger = null;
6067
6068
6069
6070 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
6071
6072 try {
6073 // InternalProblem.g:2206:2: (iv_ruleInteger= ruleInteger EOF )
6074 // InternalProblem.g:2207:2: iv_ruleInteger= ruleInteger EOF
6075 {
6076 newCompositeNode(grammarAccess.getIntegerRule());
6077 pushFollow(FOLLOW_1);
6078 iv_ruleInteger=ruleInteger();
6079
6080 state._fsp--;
6081
6082 current =iv_ruleInteger.getText();
6083 match(input,EOF,FOLLOW_2);
6084
6085 }
6086
6087 }
6088
6089 catch (RecognitionException re) {
6090 recover(input,re);
6091 appendSkippedTokens();
6092 }
6093 finally {
6094
6095 myHiddenTokenState.restore();
6096
6097 }
6098 return current;
6099 }
6100 // $ANTLR end "entryRuleInteger"
6101
6102
6103 // $ANTLR start "ruleInteger"
6104 // InternalProblem.g:2216:1: ruleInteger returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ;
6105 public final AntlrDatatypeRuleToken ruleInteger() throws RecognitionException {
6106 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
6107
6108 Token kw=null;
6109 Token this_INT_1=null;
6110
6111
6112 enterRule();
6113 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
6114
6115 try {
6116 // InternalProblem.g:2223:2: ( ( (kw= '-' )? this_INT_1= RULE_INT ) )
6117 // InternalProblem.g:2224:2: ( (kw= '-' )? this_INT_1= RULE_INT )
6118 {
6119 // InternalProblem.g:2224:2: ( (kw= '-' )? this_INT_1= RULE_INT )
6120 // InternalProblem.g:2225:3: (kw= '-' )? this_INT_1= RULE_INT
6121 {
6122 // InternalProblem.g:2225:3: (kw= '-' )?
6123 int alt46=2;
6124 int LA46_0 = input.LA(1);
6125
6126 if ( (LA46_0==44) ) {
6127 alt46=1;
6128 }
6129 switch (alt46) {
6130 case 1 :
6131 // InternalProblem.g:2226:4: kw= '-'
6132 {
6133 kw=(Token)match(input,44,FOLLOW_17);
6134
6135 current.merge(kw);
6136 newLeafNode(kw, grammarAccess.getIntegerAccess().getHyphenMinusKeyword_0());
6137
6138
6139 }
6140 break;
6141
6142 }
6143
6144 this_INT_1=(Token)match(input,RULE_INT,FOLLOW_2);
6145
6146 current.merge(this_INT_1);
6147
6148
6149 newLeafNode(this_INT_1, grammarAccess.getIntegerAccess().getINTTerminalRuleCall_1());
6150
6151
6152 }
6153
6154
6155 }
6156
6157
6158 leaveRule();
6159
6160 }
6161
6162 catch (RecognitionException re) {
6163 recover(input,re);
6164 appendSkippedTokens();
6165 }
6166 finally {
6167
6168 myHiddenTokenState.restore();
6169
6170 }
6171 return current;
6172 }
6173 // $ANTLR end "ruleInteger"
6174
6175
6176 // $ANTLR start "entryRuleReal"
6177 // InternalProblem.g:2246:1: entryRuleReal returns [String current=null] : iv_ruleReal= ruleReal EOF ;
6178 public final String entryRuleReal() throws RecognitionException {
6179 String current = null;
6180
6181 AntlrDatatypeRuleToken iv_ruleReal = null;
6182
6183
6184 try {
6185 // InternalProblem.g:2246:44: (iv_ruleReal= ruleReal EOF )
6186 // InternalProblem.g:2247:2: iv_ruleReal= ruleReal EOF
6187 {
6188 newCompositeNode(grammarAccess.getRealRule());
6189 pushFollow(FOLLOW_1);
6190 iv_ruleReal=ruleReal();
6191
6192 state._fsp--;
6193
6194 current =iv_ruleReal.getText();
6195 match(input,EOF,FOLLOW_2);
6196
6197 }
6198
6199 }
6200
6201 catch (RecognitionException re) {
6202 recover(input,re);
6203 appendSkippedTokens();
6204 }
6205 finally {
6206 }
6207 return current;
6208 }
6209 // $ANTLR end "entryRuleReal"
6210
6211
6212 // $ANTLR start "ruleReal"
6213 // InternalProblem.g:2253:1: ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? (this_EXPONENTIAL_1= RULE_EXPONENTIAL | (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) ) ) ) ;
6214 public final AntlrDatatypeRuleToken ruleReal() throws RecognitionException {
6215 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
6216
6217 Token kw=null;
6218 Token this_EXPONENTIAL_1=null;
6219 Token this_INT_2=null;
6220 Token this_INT_4=null;
6221 Token this_EXPONENTIAL_5=null;
6222
6223
6224 enterRule();
6225
6226 try {
6227 // InternalProblem.g:2259:2: ( ( (kw= '-' )? (this_EXPONENTIAL_1= RULE_EXPONENTIAL | (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) ) ) ) )
6228 // InternalProblem.g:2260:2: ( (kw= '-' )? (this_EXPONENTIAL_1= RULE_EXPONENTIAL | (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) ) ) )
6229 {
6230 // InternalProblem.g:2260:2: ( (kw= '-' )? (this_EXPONENTIAL_1= RULE_EXPONENTIAL | (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) ) ) )
6231 // InternalProblem.g:2261:3: (kw= '-' )? (this_EXPONENTIAL_1= RULE_EXPONENTIAL | (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) ) )
6232 {
6233 // InternalProblem.g:2261:3: (kw= '-' )?
6234 int alt47=2;
6235 int LA47_0 = input.LA(1);
6236
6237 if ( (LA47_0==44) ) {
6238 alt47=1;
6239 }
6240 switch (alt47) {
6241 case 1 :
6242 // InternalProblem.g:2262:4: kw= '-'
6243 {
6244 kw=(Token)match(input,44,FOLLOW_39);
6245
6246 current.merge(kw);
6247 newLeafNode(kw, grammarAccess.getRealAccess().getHyphenMinusKeyword_0());
6248
6249
6250 }
6251 break;
6252
6253 }
6254
6255 // InternalProblem.g:2268:3: (this_EXPONENTIAL_1= RULE_EXPONENTIAL | (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) ) )
6256 int alt49=2;
6257 int LA49_0 = input.LA(1);
6258
6259 if ( (LA49_0==RULE_EXPONENTIAL) ) {
6260 alt49=1;
6261 }
6262 else if ( (LA49_0==RULE_INT) ) {
6263 alt49=2;
6264 }
6265 else {
6266 NoViableAltException nvae =
6267 new NoViableAltException("", 49, 0, input);
6268
6269 throw nvae;
6270 }
6271 switch (alt49) {
6272 case 1 :
6273 // InternalProblem.g:2269:4: this_EXPONENTIAL_1= RULE_EXPONENTIAL
6274 {
6275 this_EXPONENTIAL_1=(Token)match(input,RULE_EXPONENTIAL,FOLLOW_2);
6276
6277 current.merge(this_EXPONENTIAL_1);
6278
6279
6280 newLeafNode(this_EXPONENTIAL_1, grammarAccess.getRealAccess().getEXPONENTIALTerminalRuleCall_1_0());
6281
6282
6283 }
6284 break;
6285 case 2 :
6286 // InternalProblem.g:2277:4: (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) )
6287 {
6288 // InternalProblem.g:2277:4: (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) )
6289 // InternalProblem.g:2278:5: this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL )
6290 {
6291 this_INT_2=(Token)match(input,RULE_INT,FOLLOW_4);
6292
6293 current.merge(this_INT_2);
6294
6295
6296 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1_0());
6297
6298 kw=(Token)match(input,14,FOLLOW_39);
6299
6300 current.merge(kw);
6301 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_1_1());
6302
6303 // InternalProblem.g:2290:5: (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL )
6304 int alt48=2;
6305 int LA48_0 = input.LA(1);
6306
6307 if ( (LA48_0==RULE_INT) ) {
6308 alt48=1;
6309 }
6310 else if ( (LA48_0==RULE_EXPONENTIAL) ) {
6311 alt48=2;
6312 }
6313 else {
6314 NoViableAltException nvae =
6315 new NoViableAltException("", 48, 0, input);
6316
6317 throw nvae;
6318 }
6319 switch (alt48) {
6320 case 1 :
6321 // InternalProblem.g:2291:6: this_INT_4= RULE_INT
6322 {
6323 this_INT_4=(Token)match(input,RULE_INT,FOLLOW_2);
6324
6325 current.merge(this_INT_4);
6326
6327
6328 newLeafNode(this_INT_4, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1_2_0());
6329
6330
6331 }
6332 break;
6333 case 2 :
6334 // InternalProblem.g:2299:6: this_EXPONENTIAL_5= RULE_EXPONENTIAL
6335 {
6336 this_EXPONENTIAL_5=(Token)match(input,RULE_EXPONENTIAL,FOLLOW_2);
6337
6338 current.merge(this_EXPONENTIAL_5);
6339
6340
6341 newLeafNode(this_EXPONENTIAL_5, grammarAccess.getRealAccess().getEXPONENTIALTerminalRuleCall_1_1_2_1());
6342
6343
6344 }
6345 break;
6346
6347 }
6348
6349
6350 }
6351
6352
6353 }
6354 break;
6355
6356 }
6357
6358
6359 }
6360
6361
6362 }
6363
6364
6365 leaveRule();
6366
6367 }
6368
6369 catch (RecognitionException re) {
6370 recover(input,re);
6371 appendSkippedTokens();
6372 }
6373 finally {
6374 }
6375 return current;
6376 }
6377 // $ANTLR end "ruleReal"
6378
6379
6380 // $ANTLR start "ruleLogicValue"
6381 // InternalProblem.g:2313:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ;
6382 public final Enumerator ruleLogicValue() throws RecognitionException {
6383 Enumerator current = null;
6384
6385 Token enumLiteral_0=null;
6386 Token enumLiteral_1=null;
6387 Token enumLiteral_2=null;
6388
6389
6390 enterRule();
6391
6392 try {
6393 // InternalProblem.g:2319:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) )
6394 // InternalProblem.g:2320:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
6395 {
6396 // InternalProblem.g:2320:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
6397 int alt50=3;
6398 switch ( input.LA(1) ) {
6399 case 42:
6400 {
6401 alt50=1;
6402 }
6403 break;
6404 case 43:
6405 {
6406 alt50=2;
6407 }
6408 break;
6409 case 45:
6410 {
6411 alt50=3;
6412 }
6413 break;
6414 default:
6415 NoViableAltException nvae =
6416 new NoViableAltException("", 50, 0, input);
6417
6418 throw nvae;
6419 }
6420
6421 switch (alt50) {
6422 case 1 :
6423 // InternalProblem.g:2321:3: (enumLiteral_0= 'true' )
6424 {
6425 // InternalProblem.g:2321:3: (enumLiteral_0= 'true' )
6426 // InternalProblem.g:2322:4: enumLiteral_0= 'true'
6427 {
6428 enumLiteral_0=(Token)match(input,42,FOLLOW_2);
6429
6430 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
6431 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
6432
6433
6434 }
6435
6436
6437 }
6438 break;
6439 case 2 :
6440 // InternalProblem.g:2329:3: (enumLiteral_1= 'false' )
6441 {
6442 // InternalProblem.g:2329:3: (enumLiteral_1= 'false' )
6443 // InternalProblem.g:2330:4: enumLiteral_1= 'false'
6444 {
6445 enumLiteral_1=(Token)match(input,43,FOLLOW_2);
6446
6447 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
6448 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
6449
6450
6451 }
6452
6453
6454 }
6455 break;
6456 case 3 :
6457 // InternalProblem.g:2337:3: (enumLiteral_2= 'unknown' )
6458 {
6459 // InternalProblem.g:2337:3: (enumLiteral_2= 'unknown' )
6460 // InternalProblem.g:2338:4: enumLiteral_2= 'unknown'
6461 {
6462 enumLiteral_2=(Token)match(input,45,FOLLOW_2);
6463
6464 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
6465 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
6466
6467
6468 }
6469
6470
6471 }
6472 break;
6473
6474 }
6475
6476
6477 }
6478
6479
6480 leaveRule();
6481
6482 }
6483
6484 catch (RecognitionException re) {
6485 recover(input,re);
6486 appendSkippedTokens();
6487 }
6488 finally {
6489 }
6490 return current;
6491 }
6492 // $ANTLR end "ruleLogicValue"
6493
6494
6495 // $ANTLR start "ruleShortLogicValue"
6496 // InternalProblem.g:2348:1: ruleShortLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ;
6497 public final Enumerator ruleShortLogicValue() throws RecognitionException {
6498 Enumerator current = null;
6499
6500 Token enumLiteral_0=null;
6501 Token enumLiteral_1=null;
6502
6503
6504 enterRule();
6505
6506 try {
6507 // InternalProblem.g:2354:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) )
6508 // InternalProblem.g:2355:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
6509 {
6510 // InternalProblem.g:2355:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
6511 int alt51=2;
6512 int LA51_0 = input.LA(1);
6513
6514 if ( (LA51_0==33) ) {
6515 alt51=1;
6516 }
6517 else if ( (LA51_0==46) ) {
6518 alt51=2;
6519 }
6520 else {
6521 NoViableAltException nvae =
6522 new NoViableAltException("", 51, 0, input);
6523
6524 throw nvae;
6525 }
6526 switch (alt51) {
6527 case 1 :
6528 // InternalProblem.g:2356:3: (enumLiteral_0= '!' )
6529 {
6530 // InternalProblem.g:2356:3: (enumLiteral_0= '!' )
6531 // InternalProblem.g:2357:4: enumLiteral_0= '!'
6532 {
6533 enumLiteral_0=(Token)match(input,33,FOLLOW_2);
6534
6535 current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
6536 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
6537
6538
6539 }
6540
6541
6542 }
6543 break;
6544 case 2 :
6545 // InternalProblem.g:2364:3: (enumLiteral_1= '?' )
6546 {
6547 // InternalProblem.g:2364:3: (enumLiteral_1= '?' )
6548 // InternalProblem.g:2365:4: enumLiteral_1= '?'
6549 {
6550 enumLiteral_1=(Token)match(input,46,FOLLOW_2);
6551
6552 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
6553 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
6554
6555
6556 }
6557
6558
6559 }
6560 break;
6561
6562 }
6563
6564
6565 }
6566
6567
6568 leaveRule();
6569
6570 }
6571
6572 catch (RecognitionException re) {
6573 recover(input,re);
6574 appendSkippedTokens();
6575 }
6576 finally {
6577 }
6578 return current;
6579 }
6580 // $ANTLR end "ruleShortLogicValue"
6581
6582 // Delegated rules
6583
6584
6585 protected DFA3 dfa3 = new DFA3(this);
6586 protected DFA35 dfa35 = new DFA35(this);
6587 static final String dfa_1s = "\17\uffff";
6588 static final String dfa_2s = "\1\5\3\uffff\4\36\3\uffff\1\5\3\36";
6589 static final String dfa_3s = "\1\56\3\uffff\1\43\3\51\3\uffff\1\53\3\51";
6590 static final String dfa_4s = "\1\uffff\1\1\1\2\1\3\4\uffff\1\4\1\6\1\5\4\uffff";
6591 static final String dfa_5s = "\17\uffff}>";
6592 static final String[] dfa_6s = {
6593 "\1\5\1\uffff\1\4\7\uffff\2\1\5\uffff\1\2\5\uffff\2\3\3\uffff\1\10\2\uffff\1\11\5\uffff\1\6\1\7\2\uffff\1\10",
6594 "",
6595 "",
6596 "",
6597 "\1\10\4\uffff\1\12",
6598 "\1\10\4\uffff\1\12\5\uffff\1\13",
6599 "\1\10\4\uffff\1\12\5\uffff\1\13",
6600 "\1\10\4\uffff\1\12\5\uffff\1\13",
6601 "",
6602 "",
6603 "",
6604 "\1\14\44\uffff\1\15\1\16",
6605 "\1\10\4\uffff\1\12\5\uffff\1\13",
6606 "\1\10\4\uffff\1\12\5\uffff\1\13",
6607 "\1\10\4\uffff\1\12\5\uffff\1\13"
6608 };
6609
6610 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
6611 static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
6612 static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
6613 static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
6614 static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
6615 static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
6616
6617 class DFA3 extends DFA {
6618
6619 public DFA3(BaseRecognizer recognizer) {
6620 this.recognizer = recognizer;
6621 this.decisionNumber = 3;
6622 this.eot = dfa_1;
6623 this.eof = dfa_1;
6624 this.min = dfa_2;
6625 this.max = dfa_3;
6626 this.accept = dfa_4;
6627 this.special = dfa_5;
6628 this.transition = dfa_6;
6629 }
6630 public String getDescription() {
6631 return "146:2: (this_ClassDeclaration_0= ruleClassDeclaration | this_EnumDeclaration_1= ruleEnumDeclaration | this_PredicateDefinition_2= rulePredicateDefinition | this_Assertion_3= ruleAssertion | this_NodeValueAssertion_4= ruleNodeValueAssertion | this_ScopeDeclaration_5= ruleScopeDeclaration )";
6632 }
6633 }
6634 static final String dfa_7s = "\54\uffff";
6635 static final String dfa_8s = "\1\5\4\36\1\uffff\1\4\1\5\4\22\1\6\1\22\1\16\1\22\1\16\3\36\1\4\1\5\1\6\1\uffff\4\22\1\6\1\22\1\16\6\22\1\5\1\6\5\22";
6636 static final String dfa_9s = "\1\56\1\36\3\51\1\uffff\1\54\1\53\1\37\3\51\1\10\3\37\1\43\3\51\1\54\1\53\1\10\1\uffff\1\37\3\51\1\10\3\37\3\51\2\37\1\53\1\10\3\51\2\37";
6637 static final String dfa_10s = "\5\uffff\1\2\21\uffff\1\1\24\uffff";
6638 static final String dfa_11s = "\54\uffff}>";
6639 static final String[] dfa_12s = {
6640 "\1\2\1\uffff\1\1\31\uffff\1\5\10\uffff\1\3\1\4\2\uffff\1\5",
6641 "\1\6",
6642 "\1\6\12\uffff\1\7",
6643 "\1\6\12\uffff\1\7",
6644 "\1\6\12\uffff\1\7",
6645 "",
6646 "\1\17\1\11\1\16\1\10\1\15\26\uffff\1\20\12\uffff\1\12\1\13\1\14",
6647 "\1\21\44\uffff\1\22\1\23",
6648 "\1\24\14\uffff\1\20",
6649 "\1\24\14\uffff\1\20\11\uffff\1\25",
6650 "\1\24\14\uffff\1\20\11\uffff\1\25",
6651 "\1\24\14\uffff\1\20\11\uffff\1\25",
6652 "\1\16\1\uffff\1\15",
6653 "\1\24\14\uffff\1\20",
6654 "\1\26\3\uffff\1\24\14\uffff\1\20",
6655 "\1\24\14\uffff\1\20",
6656 "\1\5\24\uffff\1\27",
6657 "\1\6\12\uffff\1\7",
6658 "\1\6\12\uffff\1\7",
6659 "\1\6\12\uffff\1\7",
6660 "\1\37\1\31\1\36\1\30\1\35\41\uffff\1\32\1\33\1\34",
6661 "\1\40\44\uffff\1\41\1\42",
6662 "\1\43\1\uffff\1\44",
6663 "",
6664 "\1\24\14\uffff\1\20",
6665 "\1\24\14\uffff\1\20\11\uffff\1\45",
6666 "\1\24\14\uffff\1\20\11\uffff\1\45",
6667 "\1\24\14\uffff\1\20\11\uffff\1\45",
6668 "\1\36\1\uffff\1\35",
6669 "\1\24\14\uffff\1\20",
6670 "\1\46\3\uffff\1\24\14\uffff\1\20",
6671 "\1\24\14\uffff\1\20",
6672 "\1\24\14\uffff\1\20\11\uffff\1\25",
6673 "\1\24\14\uffff\1\20\11\uffff\1\25",
6674 "\1\24\14\uffff\1\20\11\uffff\1\25",
6675 "\1\24\14\uffff\1\20",
6676 "\1\24\14\uffff\1\20",
6677 "\1\47\44\uffff\1\50\1\51",
6678 "\1\52\1\uffff\1\53",
6679 "\1\24\14\uffff\1\20\11\uffff\1\45",
6680 "\1\24\14\uffff\1\20\11\uffff\1\45",
6681 "\1\24\14\uffff\1\20\11\uffff\1\45",
6682 "\1\24\14\uffff\1\20",
6683 "\1\24\14\uffff\1\20"
6684 };
6685
6686 static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s);
6687 static final char[] dfa_8 = DFA.unpackEncodedStringToUnsignedChars(dfa_8s);
6688 static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
6689 static final short[] dfa_10 = DFA.unpackEncodedString(dfa_10s);
6690 static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s);
6691 static final short[][] dfa_12 = unpackEncodedStringArray(dfa_12s);
6692
6693 class DFA35 extends DFA {
6694
6695 public DFA35(BaseRecognizer recognizer) {
6696 this.recognizer = recognizer;
6697 this.decisionNumber = 35;
6698 this.eot = dfa_7;
6699 this.eof = dfa_7;
6700 this.min = dfa_8;
6701 this.max = dfa_9;
6702 this.accept = dfa_10;
6703 this.special = dfa_11;
6704 this.transition = dfa_12;
6705 }
6706 public String getDescription() {
6707 return "1219:3: ( ( ( ( ruleQualifiedName ) ) otherlv_1= '(' ( ( (lv_arguments_2_0= ruleAssertionArgument ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) )* )? otherlv_5= ')' otherlv_6= ':' ( (lv_value_7_0= ruleLogicValue ) ) ) | ( ( (lv_value_8_0= ruleShortLogicValue ) )? ( ( ruleQualifiedName ) ) otherlv_10= '(' ( ( (lv_arguments_11_0= ruleAssertionArgument ) ) (otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) )* )? otherlv_14= ')' ) )";
6708 }
6709 }
6710
6711
6712 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
6713 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
6714 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x00000C0000000020L});
6715 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000004000L});
6716 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x00004C12304180A2L});
6717 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000010000L});
6718 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x00000000000A4000L});
6719 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00000C00000000A0L});
6720 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x00000000000C4000L});
6721 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00000C0001A000A0L});
6722 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x00000C0001B000A0L});
6723 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000084000L});
6724 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x00000C0000200020L});
6725 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000340000L});
6726 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000200000L});
6727 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x00000C0002000020L});
6728 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000040L});
6729 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000004000000L});
6730 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000008000002L});
6731 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x00000C0020000020L});
6732 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000040000000L});
6733 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00000C00800000A0L});
6734 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000080040000L});
6735 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000100004000L});
6736 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x00000C02000000A0L});
6737 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000104000L});
6738 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000040002L});
6739 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000440000000L});
6740 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x00001C00800001F0L});
6741 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x00001C00000001F0L});
6742 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000800000000L});
6743 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x00002C0000000000L});
6744 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000020L});
6745 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000044000L});
6746 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000006000000000L});
6747 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000008000000000L});
6748 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000010000000040L});
6749 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000020000000002L});
6750 public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000140L});
6751
6752} \ 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
deleted file mode 100644
index 5b024d47..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/scoping/AbstractProblemScopeProvider.java
+++ /dev/null
@@ -1,9 +0,0 @@
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
deleted file mode 100644
index 0aac4924..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSemanticSequencer.java
+++ /dev/null
@@ -1,534 +0,0 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.serializer;
5
6import com.google.inject.Inject;
7import java.util.Set;
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.emf.ecore.EPackage;
10import org.eclipse.viatra.solver.language.model.problem.Assertion;
11import org.eclipse.viatra.solver.language.model.problem.Atom;
12import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
13import org.eclipse.viatra.solver.language.model.problem.Conjunction;
14import org.eclipse.viatra.solver.language.model.problem.ConstantArgument;
15import org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument;
16import org.eclipse.viatra.solver.language.model.problem.EnumDeclaration;
17import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity;
18import org.eclipse.viatra.solver.language.model.problem.IntConstant;
19import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
20import org.eclipse.viatra.solver.language.model.problem.Node;
21import org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument;
22import org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion;
23import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
24import org.eclipse.viatra.solver.language.model.problem.Problem;
25import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
26import org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity;
27import org.eclipse.viatra.solver.language.model.problem.RealConstant;
28import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
29import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration;
30import org.eclipse.viatra.solver.language.model.problem.StringConstant;
31import org.eclipse.viatra.solver.language.model.problem.TypeScope;
32import org.eclipse.viatra.solver.language.model.problem.UnboundedMultiplicity;
33import org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument;
34import org.eclipse.viatra.solver.language.services.ProblemGrammarAccess;
35import org.eclipse.xtext.Action;
36import org.eclipse.xtext.Parameter;
37import org.eclipse.xtext.ParserRule;
38import org.eclipse.xtext.serializer.ISerializationContext;
39import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
40import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
41import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
42
43@SuppressWarnings("all")
44public class ProblemSemanticSequencer extends AbstractDelegatingSemanticSequencer {
45
46 @Inject
47 private ProblemGrammarAccess grammarAccess;
48
49 @Override
50 public void sequence(ISerializationContext context, EObject semanticObject) {
51 EPackage epackage = semanticObject.eClass().getEPackage();
52 ParserRule rule = context.getParserRule();
53 Action action = context.getAssignedAction();
54 Set<Parameter> parameters = context.getEnabledBooleanParameters();
55 if (epackage == ProblemPackage.eINSTANCE)
56 switch (semanticObject.eClass().getClassifierID()) {
57 case ProblemPackage.ASSERTION:
58 sequence_Assertion(context, (Assertion) semanticObject);
59 return;
60 case ProblemPackage.ATOM:
61 sequence_Atom(context, (Atom) semanticObject);
62 return;
63 case ProblemPackage.CLASS_DECLARATION:
64 sequence_ClassDeclaration(context, (ClassDeclaration) semanticObject);
65 return;
66 case ProblemPackage.CONJUNCTION:
67 sequence_Conjunction(context, (Conjunction) semanticObject);
68 return;
69 case ProblemPackage.CONSTANT_ARGUMENT:
70 sequence_ConstantArgument(context, (ConstantArgument) semanticObject);
71 return;
72 case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT:
73 sequence_ConstantAssertionArgument(context, (ConstantAssertionArgument) semanticObject);
74 return;
75 case ProblemPackage.ENUM_DECLARATION:
76 sequence_EnumDeclaration(context, (EnumDeclaration) semanticObject);
77 return;
78 case ProblemPackage.EXACT_MULTIPLICITY:
79 sequence_ExactMultiplicity(context, (ExactMultiplicity) semanticObject);
80 return;
81 case ProblemPackage.INT_CONSTANT:
82 sequence_IntConstant(context, (IntConstant) semanticObject);
83 return;
84 case ProblemPackage.NEGATIVE_LITERAL:
85 sequence_NegativeLiteral(context, (NegativeLiteral) semanticObject);
86 return;
87 case ProblemPackage.NODE:
88 sequence_EnumLiteral(context, (Node) semanticObject);
89 return;
90 case ProblemPackage.NODE_ASSERTION_ARGUMENT:
91 sequence_NodeAssertionArgument(context, (NodeAssertionArgument) semanticObject);
92 return;
93 case ProblemPackage.NODE_VALUE_ASSERTION:
94 sequence_NodeValueAssertion(context, (NodeValueAssertion) semanticObject);
95 return;
96 case ProblemPackage.PARAMETER:
97 sequence_Parameter(context, (org.eclipse.viatra.solver.language.model.problem.Parameter) semanticObject);
98 return;
99 case ProblemPackage.PREDICATE_DEFINITION:
100 sequence_PredicateDefinition(context, (PredicateDefinition) semanticObject);
101 return;
102 case ProblemPackage.PROBLEM:
103 sequence_Problem(context, (Problem) semanticObject);
104 return;
105 case ProblemPackage.RANGE_MULTIPLICITY:
106 sequence_RangeMultiplicity(context, (RangeMultiplicity) semanticObject);
107 return;
108 case ProblemPackage.REAL_CONSTANT:
109 sequence_RealConstant(context, (RealConstant) semanticObject);
110 return;
111 case ProblemPackage.REFERENCE_DECLARATION:
112 sequence_ReferenceDeclaration(context, (ReferenceDeclaration) semanticObject);
113 return;
114 case ProblemPackage.SCOPE_DECLARATION:
115 sequence_ScopeDeclaration(context, (ScopeDeclaration) semanticObject);
116 return;
117 case ProblemPackage.STRING_CONSTANT:
118 sequence_StringConstant(context, (StringConstant) semanticObject);
119 return;
120 case ProblemPackage.TYPE_SCOPE:
121 sequence_TypeScope(context, (TypeScope) semanticObject);
122 return;
123 case ProblemPackage.UNBOUNDED_MULTIPLICITY:
124 sequence_UnboundedMultiplicity(context, (UnboundedMultiplicity) semanticObject);
125 return;
126 case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT:
127 sequence_VariableOrNodeArgument(context, (VariableOrNodeArgument) semanticObject);
128 return;
129 }
130 if (errorAcceptor != null)
131 errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
132 }
133
134 /**
135 * Contexts:
136 * Statement returns Assertion
137 * Assertion returns Assertion
138 *
139 * Constraint:
140 * (
141 * (relation=[Relation|QualifiedName] (arguments+=AssertionArgument arguments+=AssertionArgument*)? value=LogicValue) |
142 * (value=ShortLogicValue? relation=[Relation|QualifiedName] (arguments+=AssertionArgument arguments+=AssertionArgument*)?)
143 * )
144 */
145 protected void sequence_Assertion(ISerializationContext context, Assertion semanticObject) {
146 genericSequencer.createSequence(context, semanticObject);
147 }
148
149
150 /**
151 * Contexts:
152 * Literal returns Atom
153 * Atom returns Atom
154 *
155 * Constraint:
156 * (relation=[Relation|QualifiedName] transitiveClosure?='+'? (arguments+=Argument arguments+=Argument*)?)
157 */
158 protected void sequence_Atom(ISerializationContext context, Atom semanticObject) {
159 genericSequencer.createSequence(context, semanticObject);
160 }
161
162
163 /**
164 * Contexts:
165 * Statement returns ClassDeclaration
166 * ClassDeclaration returns ClassDeclaration
167 *
168 * Constraint:
169 * (
170 * abstract?='abstract'?
171 * name=Identifier
172 * (superTypes+=[Relation|QualifiedName] superTypes+=[Relation|QualifiedName]*)?
173 * referenceDeclarations+=ReferenceDeclaration*
174 * )
175 */
176 protected void sequence_ClassDeclaration(ISerializationContext context, ClassDeclaration semanticObject) {
177 genericSequencer.createSequence(context, semanticObject);
178 }
179
180
181 /**
182 * Contexts:
183 * Conjunction returns Conjunction
184 *
185 * Constraint:
186 * (literals+=Literal literals+=Literal*)
187 */
188 protected void sequence_Conjunction(ISerializationContext context, Conjunction semanticObject) {
189 genericSequencer.createSequence(context, semanticObject);
190 }
191
192
193 /**
194 * Contexts:
195 * Argument returns ConstantArgument
196 * ConstantArgument returns ConstantArgument
197 *
198 * Constraint:
199 * constant=Constant
200 */
201 protected void sequence_ConstantArgument(ISerializationContext context, ConstantArgument semanticObject) {
202 if (errorAcceptor != null) {
203 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.CONSTANT_ARGUMENT__CONSTANT) == ValueTransient.YES)
204 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.CONSTANT_ARGUMENT__CONSTANT));
205 }
206 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
207 feeder.accept(grammarAccess.getConstantArgumentAccess().getConstantConstantParserRuleCall_0(), semanticObject.getConstant());
208 feeder.finish();
209 }
210
211
212 /**
213 * Contexts:
214 * AssertionArgument returns ConstantAssertionArgument
215 * ConstantAssertionArgument returns ConstantAssertionArgument
216 *
217 * Constraint:
218 * constant=Constant
219 */
220 protected void sequence_ConstantAssertionArgument(ISerializationContext context, ConstantAssertionArgument semanticObject) {
221 if (errorAcceptor != null) {
222 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.CONSTANT_ASSERTION_ARGUMENT__CONSTANT) == ValueTransient.YES)
223 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.CONSTANT_ASSERTION_ARGUMENT__CONSTANT));
224 }
225 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
226 feeder.accept(grammarAccess.getConstantAssertionArgumentAccess().getConstantConstantParserRuleCall_0(), semanticObject.getConstant());
227 feeder.finish();
228 }
229
230
231 /**
232 * Contexts:
233 * Statement returns EnumDeclaration
234 * EnumDeclaration returns EnumDeclaration
235 *
236 * Constraint:
237 * (name=Identifier (literals+=EnumLiteral literals+=EnumLiteral*)?)
238 */
239 protected void sequence_EnumDeclaration(ISerializationContext context, EnumDeclaration semanticObject) {
240 genericSequencer.createSequence(context, semanticObject);
241 }
242
243
244 /**
245 * Contexts:
246 * EnumLiteral returns Node
247 *
248 * Constraint:
249 * name=Identifier
250 */
251 protected void sequence_EnumLiteral(ISerializationContext context, Node semanticObject) {
252 if (errorAcceptor != null) {
253 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME) == ValueTransient.YES)
254 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NAMED_ELEMENT__NAME));
255 }
256 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
257 feeder.accept(grammarAccess.getEnumLiteralAccess().getNameIdentifierParserRuleCall_0(), semanticObject.getName());
258 feeder.finish();
259 }
260
261
262 /**
263 * Contexts:
264 * Multiplicity returns ExactMultiplicity
265 * DefiniteMultiplicity returns ExactMultiplicity
266 * ExactMultiplicity returns ExactMultiplicity
267 *
268 * Constraint:
269 * exactValue=INT
270 */
271 protected void sequence_ExactMultiplicity(ISerializationContext context, ExactMultiplicity semanticObject) {
272 if (errorAcceptor != null) {
273 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.EXACT_MULTIPLICITY__EXACT_VALUE) == ValueTransient.YES)
274 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.EXACT_MULTIPLICITY__EXACT_VALUE));
275 }
276 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
277 feeder.accept(grammarAccess.getExactMultiplicityAccess().getExactValueINTTerminalRuleCall_0(), semanticObject.getExactValue());
278 feeder.finish();
279 }
280
281
282 /**
283 * Contexts:
284 * Constant returns IntConstant
285 * IntConstant returns IntConstant
286 *
287 * Constraint:
288 * intValue=Integer
289 */
290 protected void sequence_IntConstant(ISerializationContext context, IntConstant semanticObject) {
291 if (errorAcceptor != null) {
292 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.INT_CONSTANT__INT_VALUE) == ValueTransient.YES)
293 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.INT_CONSTANT__INT_VALUE));
294 }
295 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
296 feeder.accept(grammarAccess.getIntConstantAccess().getIntValueIntegerParserRuleCall_0(), semanticObject.getIntValue());
297 feeder.finish();
298 }
299
300
301 /**
302 * Contexts:
303 * Literal returns NegativeLiteral
304 * NegativeLiteral returns NegativeLiteral
305 *
306 * Constraint:
307 * atom=Atom
308 */
309 protected void sequence_NegativeLiteral(ISerializationContext context, NegativeLiteral semanticObject) {
310 if (errorAcceptor != null) {
311 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NEGATIVE_LITERAL__ATOM) == ValueTransient.YES)
312 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NEGATIVE_LITERAL__ATOM));
313 }
314 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
315 feeder.accept(grammarAccess.getNegativeLiteralAccess().getAtomAtomParserRuleCall_1_0(), semanticObject.getAtom());
316 feeder.finish();
317 }
318
319
320 /**
321 * Contexts:
322 * AssertionArgument returns NodeAssertionArgument
323 * NodeAssertionArgument returns NodeAssertionArgument
324 *
325 * Constraint:
326 * node=[Node|QualifiedName]
327 */
328 protected void sequence_NodeAssertionArgument(ISerializationContext context, NodeAssertionArgument semanticObject) {
329 if (errorAcceptor != null) {
330 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NODE_ASSERTION_ARGUMENT__NODE) == ValueTransient.YES)
331 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NODE_ASSERTION_ARGUMENT__NODE));
332 }
333 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
334 feeder.accept(grammarAccess.getNodeAssertionArgumentAccess().getNodeNodeQualifiedNameParserRuleCall_0_1(), semanticObject.eGet(ProblemPackage.Literals.NODE_ASSERTION_ARGUMENT__NODE, false));
335 feeder.finish();
336 }
337
338
339 /**
340 * Contexts:
341 * Statement returns NodeValueAssertion
342 * NodeValueAssertion returns NodeValueAssertion
343 *
344 * Constraint:
345 * (node=[Node|QualifiedName] value=Constant)
346 */
347 protected void sequence_NodeValueAssertion(ISerializationContext context, NodeValueAssertion semanticObject) {
348 if (errorAcceptor != null) {
349 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NODE_VALUE_ASSERTION__NODE) == ValueTransient.YES)
350 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NODE_VALUE_ASSERTION__NODE));
351 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.NODE_VALUE_ASSERTION__VALUE) == ValueTransient.YES)
352 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.NODE_VALUE_ASSERTION__VALUE));
353 }
354 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
355 feeder.accept(grammarAccess.getNodeValueAssertionAccess().getNodeNodeQualifiedNameParserRuleCall_0_0_1(), semanticObject.eGet(ProblemPackage.Literals.NODE_VALUE_ASSERTION__NODE, false));
356 feeder.accept(grammarAccess.getNodeValueAssertionAccess().getValueConstantParserRuleCall_2_0(), semanticObject.getValue());
357 feeder.finish();
358 }
359
360
361 /**
362 * Contexts:
363 * Parameter returns Parameter
364 *
365 * Constraint:
366 * (parameterType=[Relation|QualifiedName]? name=Identifier)
367 */
368 protected void sequence_Parameter(ISerializationContext context, org.eclipse.viatra.solver.language.model.problem.Parameter semanticObject) {
369 genericSequencer.createSequence(context, semanticObject);
370 }
371
372
373 /**
374 * Contexts:
375 * Statement returns PredicateDefinition
376 * PredicateDefinition returns PredicateDefinition
377 *
378 * Constraint:
379 * (error?='error'? name=Identifier (parameters+=Parameter parameters+=Parameter*)? (bodies+=Conjunction bodies+=Conjunction*)?)
380 */
381 protected void sequence_PredicateDefinition(ISerializationContext context, PredicateDefinition semanticObject) {
382 genericSequencer.createSequence(context, semanticObject);
383 }
384
385
386 /**
387 * Contexts:
388 * Problem returns Problem
389 *
390 * Constraint:
391 * ((name=Identifier statements+=Statement+) | statements+=Statement+)?
392 */
393 protected void sequence_Problem(ISerializationContext context, Problem semanticObject) {
394 genericSequencer.createSequence(context, semanticObject);
395 }
396
397
398 /**
399 * Contexts:
400 * Multiplicity returns RangeMultiplicity
401 * DefiniteMultiplicity returns RangeMultiplicity
402 * RangeMultiplicity returns RangeMultiplicity
403 *
404 * Constraint:
405 * (lowerBound=INT upperBound=UpperBound)
406 */
407 protected void sequence_RangeMultiplicity(ISerializationContext context, RangeMultiplicity semanticObject) {
408 if (errorAcceptor != null) {
409 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__LOWER_BOUND) == ValueTransient.YES)
410 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__LOWER_BOUND));
411 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__UPPER_BOUND) == ValueTransient.YES)
412 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.RANGE_MULTIPLICITY__UPPER_BOUND));
413 }
414 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
415 feeder.accept(grammarAccess.getRangeMultiplicityAccess().getLowerBoundINTTerminalRuleCall_0_0(), semanticObject.getLowerBound());
416 feeder.accept(grammarAccess.getRangeMultiplicityAccess().getUpperBoundUpperBoundParserRuleCall_2_0(), semanticObject.getUpperBound());
417 feeder.finish();
418 }
419
420
421 /**
422 * Contexts:
423 * Constant returns RealConstant
424 * RealConstant returns RealConstant
425 *
426 * Constraint:
427 * realValue=Real
428 */
429 protected void sequence_RealConstant(ISerializationContext context, RealConstant semanticObject) {
430 if (errorAcceptor != null) {
431 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.REAL_CONSTANT__REAL_VALUE) == ValueTransient.YES)
432 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.REAL_CONSTANT__REAL_VALUE));
433 }
434 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
435 feeder.accept(grammarAccess.getRealConstantAccess().getRealValueRealParserRuleCall_0(), semanticObject.getRealValue());
436 feeder.finish();
437 }
438
439
440 /**
441 * Contexts:
442 * ReferenceDeclaration returns ReferenceDeclaration
443 *
444 * Constraint:
445 * (
446 * containment?='contains'?
447 * referenceType=[Relation|QualifiedName]
448 * multiplicity=Multiplicity?
449 * name=Identifier
450 * opposite=[ReferenceDeclaration|QualifiedName]?
451 * )
452 */
453 protected void sequence_ReferenceDeclaration(ISerializationContext context, ReferenceDeclaration semanticObject) {
454 genericSequencer.createSequence(context, semanticObject);
455 }
456
457
458 /**
459 * Contexts:
460 * Statement returns ScopeDeclaration
461 * ScopeDeclaration returns ScopeDeclaration
462 *
463 * Constraint:
464 * (typeScopes+=TypeScope typeScopes+=TypeScope*)
465 */
466 protected void sequence_ScopeDeclaration(ISerializationContext context, ScopeDeclaration semanticObject) {
467 genericSequencer.createSequence(context, semanticObject);
468 }
469
470
471 /**
472 * Contexts:
473 * Constant returns StringConstant
474 * StringConstant returns StringConstant
475 *
476 * Constraint:
477 * stringValue=STRING
478 */
479 protected void sequence_StringConstant(ISerializationContext context, StringConstant semanticObject) {
480 if (errorAcceptor != null) {
481 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.STRING_CONSTANT__STRING_VALUE) == ValueTransient.YES)
482 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.STRING_CONSTANT__STRING_VALUE));
483 }
484 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
485 feeder.accept(grammarAccess.getStringConstantAccess().getStringValueSTRINGTerminalRuleCall_0(), semanticObject.getStringValue());
486 feeder.finish();
487 }
488
489
490 /**
491 * Contexts:
492 * TypeScope returns TypeScope
493 *
494 * Constraint:
495 * (targetType=[ClassDeclaration|ID] increment?='+='? multiplicity=DefiniteMultiplicity)
496 */
497 protected void sequence_TypeScope(ISerializationContext context, TypeScope semanticObject) {
498 genericSequencer.createSequence(context, semanticObject);
499 }
500
501
502 /**
503 * Contexts:
504 * Multiplicity returns UnboundedMultiplicity
505 * UnboundedMultiplicity returns UnboundedMultiplicity
506 *
507 * Constraint:
508 * {UnboundedMultiplicity}
509 */
510 protected void sequence_UnboundedMultiplicity(ISerializationContext context, UnboundedMultiplicity semanticObject) {
511 genericSequencer.createSequence(context, semanticObject);
512 }
513
514
515 /**
516 * Contexts:
517 * Argument returns VariableOrNodeArgument
518 * VariableOrNodeArgument returns VariableOrNodeArgument
519 *
520 * Constraint:
521 * variableOrNode=[VariableOrNode|QualifiedName]
522 */
523 protected void sequence_VariableOrNodeArgument(ISerializationContext context, VariableOrNodeArgument semanticObject) {
524 if (errorAcceptor != null) {
525 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE) == ValueTransient.YES)
526 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE));
527 }
528 SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
529 feeder.accept(grammarAccess.getVariableOrNodeArgumentAccess().getVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1(), semanticObject.eGet(ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE, false));
530 feeder.finish();
531 }
532
533
534}
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
deleted file mode 100644
index 3f0a3f05..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/serializer/ProblemSyntacticSequencer.java
+++ /dev/null
@@ -1,139 +0,0 @@
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
deleted file mode 100644
index 01188c37..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java
+++ /dev/null
@@ -1,2071 +0,0 @@
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 cNodeValueAssertionParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
78 private final RuleCall cScopeDeclarationParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
79
80 //Statement:
81 // ClassDeclaration | EnumDeclaration | PredicateDefinition | Assertion | NodeValueAssertion | ScopeDeclaration;
82 @Override public ParserRule getRule() { return rule; }
83
84 //ClassDeclaration | EnumDeclaration | PredicateDefinition | Assertion | NodeValueAssertion | ScopeDeclaration
85 public Alternatives getAlternatives() { return cAlternatives; }
86
87 //ClassDeclaration
88 public RuleCall getClassDeclarationParserRuleCall_0() { return cClassDeclarationParserRuleCall_0; }
89
90 //EnumDeclaration
91 public RuleCall getEnumDeclarationParserRuleCall_1() { return cEnumDeclarationParserRuleCall_1; }
92
93 //PredicateDefinition
94 public RuleCall getPredicateDefinitionParserRuleCall_2() { return cPredicateDefinitionParserRuleCall_2; }
95
96 //Assertion
97 public RuleCall getAssertionParserRuleCall_3() { return cAssertionParserRuleCall_3; }
98
99 //NodeValueAssertion
100 public RuleCall getNodeValueAssertionParserRuleCall_4() { return cNodeValueAssertionParserRuleCall_4; }
101
102 //ScopeDeclaration
103 public RuleCall getScopeDeclarationParserRuleCall_5() { return cScopeDeclarationParserRuleCall_5; }
104 }
105 public class ClassDeclarationElements extends AbstractParserRuleElementFinder {
106 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ClassDeclaration");
107 private final Group cGroup = (Group)rule.eContents().get(1);
108 private final Assignment cAbstractAssignment_0 = (Assignment)cGroup.eContents().get(0);
109 private final Keyword cAbstractAbstractKeyword_0_0 = (Keyword)cAbstractAssignment_0.eContents().get(0);
110 private final Keyword cClassKeyword_1 = (Keyword)cGroup.eContents().get(1);
111 private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
112 private final RuleCall cNameIdentifierParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
113 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
114 private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
115 private final Assignment cSuperTypesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
116 private final CrossReference cSuperTypesRelationCrossReference_3_1_0 = (CrossReference)cSuperTypesAssignment_3_1.eContents().get(0);
117 private final RuleCall cSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1 = (RuleCall)cSuperTypesRelationCrossReference_3_1_0.eContents().get(1);
118 private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
119 private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
120 private final Assignment cSuperTypesAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
121 private final CrossReference cSuperTypesRelationCrossReference_3_2_1_0 = (CrossReference)cSuperTypesAssignment_3_2_1.eContents().get(0);
122 private final RuleCall cSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1 = (RuleCall)cSuperTypesRelationCrossReference_3_2_1_0.eContents().get(1);
123 private final Alternatives cAlternatives_4 = (Alternatives)cGroup.eContents().get(4);
124 private final Group cGroup_4_0 = (Group)cAlternatives_4.eContents().get(0);
125 private final Keyword cLeftCurlyBracketKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
126 private final Group cGroup_4_0_1 = (Group)cGroup_4_0.eContents().get(1);
127 private final Assignment cReferenceDeclarationsAssignment_4_0_1_0 = (Assignment)cGroup_4_0_1.eContents().get(0);
128 private final RuleCall cReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0 = (RuleCall)cReferenceDeclarationsAssignment_4_0_1_0.eContents().get(0);
129 private final Keyword cSemicolonKeyword_4_0_1_1 = (Keyword)cGroup_4_0_1.eContents().get(1);
130 private final Keyword cRightCurlyBracketKeyword_4_0_2 = (Keyword)cGroup_4_0.eContents().get(2);
131 private final Keyword cFullStopKeyword_4_1 = (Keyword)cAlternatives_4.eContents().get(1);
132
133 //ClassDeclaration:
134 // abstract?="abstract"? "class"
135 // name=Identifier
136 // ("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
137 // ("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".");
138 @Override public ParserRule getRule() { return rule; }
139
140 //abstract?="abstract"? "class"
141 //name=Identifier
142 //("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
143 //("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".")
144 public Group getGroup() { return cGroup; }
145
146 //abstract?="abstract"?
147 public Assignment getAbstractAssignment_0() { return cAbstractAssignment_0; }
148
149 //"abstract"
150 public Keyword getAbstractAbstractKeyword_0_0() { return cAbstractAbstractKeyword_0_0; }
151
152 //"class"
153 public Keyword getClassKeyword_1() { return cClassKeyword_1; }
154
155 //name=Identifier
156 public Assignment getNameAssignment_2() { return cNameAssignment_2; }
157
158 //Identifier
159 public RuleCall getNameIdentifierParserRuleCall_2_0() { return cNameIdentifierParserRuleCall_2_0; }
160
161 //("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
162 public Group getGroup_3() { return cGroup_3; }
163
164 //"extends"
165 public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; }
166
167 //superTypes+=[Relation|QualifiedName]
168 public Assignment getSuperTypesAssignment_3_1() { return cSuperTypesAssignment_3_1; }
169
170 //[Relation|QualifiedName]
171 public CrossReference getSuperTypesRelationCrossReference_3_1_0() { return cSuperTypesRelationCrossReference_3_1_0; }
172
173 //QualifiedName
174 public RuleCall getSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1() { return cSuperTypesRelationQualifiedNameParserRuleCall_3_1_0_1; }
175
176 //("," superTypes+=[Relation|QualifiedName])*
177 public Group getGroup_3_2() { return cGroup_3_2; }
178
179 //","
180 public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }
181
182 //superTypes+=[Relation|QualifiedName]
183 public Assignment getSuperTypesAssignment_3_2_1() { return cSuperTypesAssignment_3_2_1; }
184
185 //[Relation|QualifiedName]
186 public CrossReference getSuperTypesRelationCrossReference_3_2_1_0() { return cSuperTypesRelationCrossReference_3_2_1_0; }
187
188 //QualifiedName
189 public RuleCall getSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1() { return cSuperTypesRelationQualifiedNameParserRuleCall_3_2_1_0_1; }
190
191 //("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".")
192 public Alternatives getAlternatives_4() { return cAlternatives_4; }
193
194 //"{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}"
195 public Group getGroup_4_0() { return cGroup_4_0; }
196
197 //"{"
198 public Keyword getLeftCurlyBracketKeyword_4_0_0() { return cLeftCurlyBracketKeyword_4_0_0; }
199
200 //(referenceDeclarations+=ReferenceDeclaration ";"?)*
201 public Group getGroup_4_0_1() { return cGroup_4_0_1; }
202
203 //referenceDeclarations+=ReferenceDeclaration
204 public Assignment getReferenceDeclarationsAssignment_4_0_1_0() { return cReferenceDeclarationsAssignment_4_0_1_0; }
205
206 //ReferenceDeclaration
207 public RuleCall getReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0() { return cReferenceDeclarationsReferenceDeclarationParserRuleCall_4_0_1_0_0; }
208
209 //";"?
210 public Keyword getSemicolonKeyword_4_0_1_1() { return cSemicolonKeyword_4_0_1_1; }
211
212 //"}"
213 public Keyword getRightCurlyBracketKeyword_4_0_2() { return cRightCurlyBracketKeyword_4_0_2; }
214
215 //"."
216 public Keyword getFullStopKeyword_4_1() { return cFullStopKeyword_4_1; }
217 }
218 public class EnumDeclarationElements extends AbstractParserRuleElementFinder {
219 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.EnumDeclaration");
220 private final Group cGroup = (Group)rule.eContents().get(1);
221 private final Keyword cEnumKeyword_0 = (Keyword)cGroup.eContents().get(0);
222 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
223 private final RuleCall cNameIdentifierParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
224 private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
225 private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
226 private final Keyword cLeftCurlyBracketKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
227 private final Group cGroup_2_0_1 = (Group)cGroup_2_0.eContents().get(1);
228 private final Assignment cLiteralsAssignment_2_0_1_0 = (Assignment)cGroup_2_0_1.eContents().get(0);
229 private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0 = (RuleCall)cLiteralsAssignment_2_0_1_0.eContents().get(0);
230 private final Group cGroup_2_0_1_1 = (Group)cGroup_2_0_1.eContents().get(1);
231 private final Keyword cCommaKeyword_2_0_1_1_0 = (Keyword)cGroup_2_0_1_1.eContents().get(0);
232 private final Assignment cLiteralsAssignment_2_0_1_1_1 = (Assignment)cGroup_2_0_1_1.eContents().get(1);
233 private final RuleCall cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0 = (RuleCall)cLiteralsAssignment_2_0_1_1_1.eContents().get(0);
234 private final Alternatives cAlternatives_2_0_1_2 = (Alternatives)cGroup_2_0_1.eContents().get(2);
235 private final Keyword cCommaKeyword_2_0_1_2_0 = (Keyword)cAlternatives_2_0_1_2.eContents().get(0);
236 private final Keyword cSemicolonKeyword_2_0_1_2_1 = (Keyword)cAlternatives_2_0_1_2.eContents().get(1);
237 private final Keyword cRightCurlyBracketKeyword_2_0_2 = (Keyword)cGroup_2_0.eContents().get(2);
238 private final Keyword cFullStopKeyword_2_1 = (Keyword)cAlternatives_2.eContents().get(1);
239
240 //EnumDeclaration:
241 // "enum"
242 // name=Identifier
243 // ("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".");
244 @Override public ParserRule getRule() { return rule; }
245
246 //"enum"
247 //name=Identifier
248 //("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".")
249 public Group getGroup() { return cGroup; }
250
251 //"enum"
252 public Keyword getEnumKeyword_0() { return cEnumKeyword_0; }
253
254 //name=Identifier
255 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
256
257 //Identifier
258 public RuleCall getNameIdentifierParserRuleCall_1_0() { return cNameIdentifierParserRuleCall_1_0; }
259
260 //("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".")
261 public Alternatives getAlternatives_2() { return cAlternatives_2; }
262
263 //"{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}"
264 public Group getGroup_2_0() { return cGroup_2_0; }
265
266 //"{"
267 public Keyword getLeftCurlyBracketKeyword_2_0_0() { return cLeftCurlyBracketKeyword_2_0_0; }
268
269 //(literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)?
270 public Group getGroup_2_0_1() { return cGroup_2_0_1; }
271
272 //literals+=EnumLiteral
273 public Assignment getLiteralsAssignment_2_0_1_0() { return cLiteralsAssignment_2_0_1_0; }
274
275 //EnumLiteral
276 public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_0_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_0_0; }
277
278 //("," literals+=EnumLiteral)*
279 public Group getGroup_2_0_1_1() { return cGroup_2_0_1_1; }
280
281 //","
282 public Keyword getCommaKeyword_2_0_1_1_0() { return cCommaKeyword_2_0_1_1_0; }
283
284 //literals+=EnumLiteral
285 public Assignment getLiteralsAssignment_2_0_1_1_1() { return cLiteralsAssignment_2_0_1_1_1; }
286
287 //EnumLiteral
288 public RuleCall getLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0() { return cLiteralsEnumLiteralParserRuleCall_2_0_1_1_1_0; }
289
290 //("," | ";")?
291 public Alternatives getAlternatives_2_0_1_2() { return cAlternatives_2_0_1_2; }
292
293 //","
294 public Keyword getCommaKeyword_2_0_1_2_0() { return cCommaKeyword_2_0_1_2_0; }
295
296 //";"
297 public Keyword getSemicolonKeyword_2_0_1_2_1() { return cSemicolonKeyword_2_0_1_2_1; }
298
299 //"}"
300 public Keyword getRightCurlyBracketKeyword_2_0_2() { return cRightCurlyBracketKeyword_2_0_2; }
301
302 //"."
303 public Keyword getFullStopKeyword_2_1() { return cFullStopKeyword_2_1; }
304 }
305 public class EnumLiteralElements extends AbstractParserRuleElementFinder {
306 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.EnumLiteral");
307 private final Assignment cNameAssignment = (Assignment)rule.eContents().get(1);
308 private final RuleCall cNameIdentifierParserRuleCall_0 = (RuleCall)cNameAssignment.eContents().get(0);
309
310 //EnumLiteral returns Node:
311 // name=Identifier;
312 @Override public ParserRule getRule() { return rule; }
313
314 //name=Identifier
315 public Assignment getNameAssignment() { return cNameAssignment; }
316
317 //Identifier
318 public RuleCall getNameIdentifierParserRuleCall_0() { return cNameIdentifierParserRuleCall_0; }
319 }
320 public class ReferenceDeclarationElements extends AbstractParserRuleElementFinder {
321 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ReferenceDeclaration");
322 private final Group cGroup = (Group)rule.eContents().get(1);
323 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
324 private final Assignment cContainmentAssignment_0_0 = (Assignment)cAlternatives_0.eContents().get(0);
325 private final Keyword cContainmentContainsKeyword_0_0_0 = (Keyword)cContainmentAssignment_0_0.eContents().get(0);
326 private final Keyword cRefersKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
327 private final Assignment cReferenceTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
328 private final CrossReference cReferenceTypeRelationCrossReference_1_0 = (CrossReference)cReferenceTypeAssignment_1.eContents().get(0);
329 private final RuleCall cReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cReferenceTypeRelationCrossReference_1_0.eContents().get(1);
330 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
331 private final Keyword cLeftSquareBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
332 private final Assignment cMultiplicityAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
333 private final RuleCall cMultiplicityMultiplicityParserRuleCall_2_1_0 = (RuleCall)cMultiplicityAssignment_2_1.eContents().get(0);
334 private final Keyword cRightSquareBracketKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
335 private final Assignment cNameAssignment_3 = (Assignment)cGroup.eContents().get(3);
336 private final RuleCall cNameIdentifierParserRuleCall_3_0 = (RuleCall)cNameAssignment_3.eContents().get(0);
337 private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
338 private final Keyword cOppositeKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
339 private final Assignment cOppositeAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
340 private final CrossReference cOppositeReferenceDeclarationCrossReference_4_1_0 = (CrossReference)cOppositeAssignment_4_1.eContents().get(0);
341 private final RuleCall cOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1 = (RuleCall)cOppositeReferenceDeclarationCrossReference_4_1_0.eContents().get(1);
342
343 //ReferenceDeclaration:
344 // (containment?="contains" | "refers")?
345 // referenceType=[Relation|QualifiedName]
346 // ("[" multiplicity=Multiplicity "]")?
347 // name=Identifier
348 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
349 @Override public ParserRule getRule() { return rule; }
350
351 //(containment?="contains" | "refers")?
352 //referenceType=[Relation|QualifiedName]
353 //("[" multiplicity=Multiplicity "]")?
354 //name=Identifier
355 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])?
356 public Group getGroup() { return cGroup; }
357
358 //(containment?="contains" | "refers")?
359 public Alternatives getAlternatives_0() { return cAlternatives_0; }
360
361 //containment?="contains"
362 public Assignment getContainmentAssignment_0_0() { return cContainmentAssignment_0_0; }
363
364 //"contains"
365 public Keyword getContainmentContainsKeyword_0_0_0() { return cContainmentContainsKeyword_0_0_0; }
366
367 //"refers"
368 public Keyword getRefersKeyword_0_1() { return cRefersKeyword_0_1; }
369
370 //referenceType=[Relation|QualifiedName]
371 public Assignment getReferenceTypeAssignment_1() { return cReferenceTypeAssignment_1; }
372
373 //[Relation|QualifiedName]
374 public CrossReference getReferenceTypeRelationCrossReference_1_0() { return cReferenceTypeRelationCrossReference_1_0; }
375
376 //QualifiedName
377 public RuleCall getReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1() { return cReferenceTypeRelationQualifiedNameParserRuleCall_1_0_1; }
378
379 //("[" multiplicity=Multiplicity "]")?
380 public Group getGroup_2() { return cGroup_2; }
381
382 //"["
383 public Keyword getLeftSquareBracketKeyword_2_0() { return cLeftSquareBracketKeyword_2_0; }
384
385 //multiplicity=Multiplicity
386 public Assignment getMultiplicityAssignment_2_1() { return cMultiplicityAssignment_2_1; }
387
388 //Multiplicity
389 public RuleCall getMultiplicityMultiplicityParserRuleCall_2_1_0() { return cMultiplicityMultiplicityParserRuleCall_2_1_0; }
390
391 //"]"
392 public Keyword getRightSquareBracketKeyword_2_2() { return cRightSquareBracketKeyword_2_2; }
393
394 //name=Identifier
395 public Assignment getNameAssignment_3() { return cNameAssignment_3; }
396
397 //Identifier
398 public RuleCall getNameIdentifierParserRuleCall_3_0() { return cNameIdentifierParserRuleCall_3_0; }
399
400 //("opposite" opposite=[ReferenceDeclaration|QualifiedName])?
401 public Group getGroup_4() { return cGroup_4; }
402
403 //"opposite"
404 public Keyword getOppositeKeyword_4_0() { return cOppositeKeyword_4_0; }
405
406 //opposite=[ReferenceDeclaration|QualifiedName]
407 public Assignment getOppositeAssignment_4_1() { return cOppositeAssignment_4_1; }
408
409 //[ReferenceDeclaration|QualifiedName]
410 public CrossReference getOppositeReferenceDeclarationCrossReference_4_1_0() { return cOppositeReferenceDeclarationCrossReference_4_1_0; }
411
412 //QualifiedName
413 public RuleCall getOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1() { return cOppositeReferenceDeclarationQualifiedNameParserRuleCall_4_1_0_1; }
414 }
415 public class PredicateDefinitionElements extends AbstractParserRuleElementFinder {
416 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.PredicateDefinition");
417 private final Group cGroup = (Group)rule.eContents().get(1);
418 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
419 private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0);
420 private final Assignment cErrorAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0);
421 private final Keyword cErrorErrorKeyword_0_0_0_0 = (Keyword)cErrorAssignment_0_0_0.eContents().get(0);
422 private final Keyword cPredKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1);
423 private final Keyword cPredKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
424 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
425 private final RuleCall cNameIdentifierParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
426 private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
427 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
428 private final Assignment cParametersAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
429 private final RuleCall cParametersParameterParserRuleCall_3_0_0 = (RuleCall)cParametersAssignment_3_0.eContents().get(0);
430 private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1);
431 private final Keyword cCommaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
432 private final Assignment cParametersAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
433 private final RuleCall cParametersParameterParserRuleCall_3_1_1_0 = (RuleCall)cParametersAssignment_3_1_1.eContents().get(0);
434 private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
435 private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
436 private final Keyword cColonHyphenMinusKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
437 private final Assignment cBodiesAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
438 private final RuleCall cBodiesConjunctionParserRuleCall_5_1_0 = (RuleCall)cBodiesAssignment_5_1.eContents().get(0);
439 private final Group cGroup_5_2 = (Group)cGroup_5.eContents().get(2);
440 private final Keyword cSemicolonKeyword_5_2_0 = (Keyword)cGroup_5_2.eContents().get(0);
441 private final Assignment cBodiesAssignment_5_2_1 = (Assignment)cGroup_5_2.eContents().get(1);
442 private final RuleCall cBodiesConjunctionParserRuleCall_5_2_1_0 = (RuleCall)cBodiesAssignment_5_2_1.eContents().get(0);
443 private final Keyword cFullStopKeyword_6 = (Keyword)cGroup.eContents().get(6);
444
445 //PredicateDefinition:
446 // (error?="error" "pred"? | "pred")
447 // name=Identifier
448 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
449 // (":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
450 // ".";
451 @Override public ParserRule getRule() { return rule; }
452
453 //(error?="error" "pred"? | "pred")
454 //name=Identifier
455 //"(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
456 //(":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
457 //"."
458 public Group getGroup() { return cGroup; }
459
460 //(error?="error" "pred"? | "pred")
461 public Alternatives getAlternatives_0() { return cAlternatives_0; }
462
463 //error?="error" "pred"?
464 public Group getGroup_0_0() { return cGroup_0_0; }
465
466 //error?="error"
467 public Assignment getErrorAssignment_0_0_0() { return cErrorAssignment_0_0_0; }
468
469 //"error"
470 public Keyword getErrorErrorKeyword_0_0_0_0() { return cErrorErrorKeyword_0_0_0_0; }
471
472 //"pred"?
473 public Keyword getPredKeyword_0_0_1() { return cPredKeyword_0_0_1; }
474
475 //"pred"
476 public Keyword getPredKeyword_0_1() { return cPredKeyword_0_1; }
477
478 //name=Identifier
479 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
480
481 //Identifier
482 public RuleCall getNameIdentifierParserRuleCall_1_0() { return cNameIdentifierParserRuleCall_1_0; }
483
484 //"("
485 public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
486
487 //(parameters+=Parameter ("," parameters+=Parameter)*)?
488 public Group getGroup_3() { return cGroup_3; }
489
490 //parameters+=Parameter
491 public Assignment getParametersAssignment_3_0() { return cParametersAssignment_3_0; }
492
493 //Parameter
494 public RuleCall getParametersParameterParserRuleCall_3_0_0() { return cParametersParameterParserRuleCall_3_0_0; }
495
496 //("," parameters+=Parameter)*
497 public Group getGroup_3_1() { return cGroup_3_1; }
498
499 //","
500 public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; }
501
502 //parameters+=Parameter
503 public Assignment getParametersAssignment_3_1_1() { return cParametersAssignment_3_1_1; }
504
505 //Parameter
506 public RuleCall getParametersParameterParserRuleCall_3_1_1_0() { return cParametersParameterParserRuleCall_3_1_1_0; }
507
508 //")"
509 public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
510
511 //(":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
512 public Group getGroup_5() { return cGroup_5; }
513
514 //":-"
515 public Keyword getColonHyphenMinusKeyword_5_0() { return cColonHyphenMinusKeyword_5_0; }
516
517 //bodies+=Conjunction
518 public Assignment getBodiesAssignment_5_1() { return cBodiesAssignment_5_1; }
519
520 //Conjunction
521 public RuleCall getBodiesConjunctionParserRuleCall_5_1_0() { return cBodiesConjunctionParserRuleCall_5_1_0; }
522
523 //(";" bodies+=Conjunction)*
524 public Group getGroup_5_2() { return cGroup_5_2; }
525
526 //";"
527 public Keyword getSemicolonKeyword_5_2_0() { return cSemicolonKeyword_5_2_0; }
528
529 //bodies+=Conjunction
530 public Assignment getBodiesAssignment_5_2_1() { return cBodiesAssignment_5_2_1; }
531
532 //Conjunction
533 public RuleCall getBodiesConjunctionParserRuleCall_5_2_1_0() { return cBodiesConjunctionParserRuleCall_5_2_1_0; }
534
535 //"."
536 public Keyword getFullStopKeyword_6() { return cFullStopKeyword_6; }
537 }
538 public class ParameterElements extends AbstractParserRuleElementFinder {
539 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Parameter");
540 private final Group cGroup = (Group)rule.eContents().get(1);
541 private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
542 private final CrossReference cParameterTypeRelationCrossReference_0_0 = (CrossReference)cParameterTypeAssignment_0.eContents().get(0);
543 private final RuleCall cParameterTypeRelationQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cParameterTypeRelationCrossReference_0_0.eContents().get(1);
544 private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
545 private final RuleCall cNameIdentifierParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
546
547 //Parameter:
548 // parameterType=[Relation|QualifiedName]? name=Identifier;
549 @Override public ParserRule getRule() { return rule; }
550
551 //parameterType=[Relation|QualifiedName]? name=Identifier
552 public Group getGroup() { return cGroup; }
553
554 //parameterType=[Relation|QualifiedName]?
555 public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; }
556
557 //[Relation|QualifiedName]
558 public CrossReference getParameterTypeRelationCrossReference_0_0() { return cParameterTypeRelationCrossReference_0_0; }
559
560 //QualifiedName
561 public RuleCall getParameterTypeRelationQualifiedNameParserRuleCall_0_0_1() { return cParameterTypeRelationQualifiedNameParserRuleCall_0_0_1; }
562
563 //name=Identifier
564 public Assignment getNameAssignment_1() { return cNameAssignment_1; }
565
566 //Identifier
567 public RuleCall getNameIdentifierParserRuleCall_1_0() { return cNameIdentifierParserRuleCall_1_0; }
568 }
569 public class ConjunctionElements extends AbstractParserRuleElementFinder {
570 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Conjunction");
571 private final Group cGroup = (Group)rule.eContents().get(1);
572 private final Assignment cLiteralsAssignment_0 = (Assignment)cGroup.eContents().get(0);
573 private final RuleCall cLiteralsLiteralParserRuleCall_0_0 = (RuleCall)cLiteralsAssignment_0.eContents().get(0);
574 private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
575 private final Keyword cCommaKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
576 private final Assignment cLiteralsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
577 private final RuleCall cLiteralsLiteralParserRuleCall_1_1_0 = (RuleCall)cLiteralsAssignment_1_1.eContents().get(0);
578
579 //Conjunction:
580 // literals+=Literal ("," literals+=Literal)*;
581 @Override public ParserRule getRule() { return rule; }
582
583 //literals+=Literal ("," literals+=Literal)*
584 public Group getGroup() { return cGroup; }
585
586 //literals+=Literal
587 public Assignment getLiteralsAssignment_0() { return cLiteralsAssignment_0; }
588
589 //Literal
590 public RuleCall getLiteralsLiteralParserRuleCall_0_0() { return cLiteralsLiteralParserRuleCall_0_0; }
591
592 //("," literals+=Literal)*
593 public Group getGroup_1() { return cGroup_1; }
594
595 //","
596 public Keyword getCommaKeyword_1_0() { return cCommaKeyword_1_0; }
597
598 //literals+=Literal
599 public Assignment getLiteralsAssignment_1_1() { return cLiteralsAssignment_1_1; }
600
601 //Literal
602 public RuleCall getLiteralsLiteralParserRuleCall_1_1_0() { return cLiteralsLiteralParserRuleCall_1_1_0; }
603 }
604 public class LiteralElements extends AbstractParserRuleElementFinder {
605 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Literal");
606 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
607 private final RuleCall cAtomParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
608 private final RuleCall cNegativeLiteralParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
609
610 //Literal:
611 // Atom | NegativeLiteral;
612 @Override public ParserRule getRule() { return rule; }
613
614 //Atom | NegativeLiteral
615 public Alternatives getAlternatives() { return cAlternatives; }
616
617 //Atom
618 public RuleCall getAtomParserRuleCall_0() { return cAtomParserRuleCall_0; }
619
620 //NegativeLiteral
621 public RuleCall getNegativeLiteralParserRuleCall_1() { return cNegativeLiteralParserRuleCall_1; }
622 }
623 public class NegativeLiteralElements extends AbstractParserRuleElementFinder {
624 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.NegativeLiteral");
625 private final Group cGroup = (Group)rule.eContents().get(1);
626 private final Keyword cExclamationMarkKeyword_0 = (Keyword)cGroup.eContents().get(0);
627 private final Assignment cAtomAssignment_1 = (Assignment)cGroup.eContents().get(1);
628 private final RuleCall cAtomAtomParserRuleCall_1_0 = (RuleCall)cAtomAssignment_1.eContents().get(0);
629
630 //NegativeLiteral:
631 // "!" atom=Atom;
632 @Override public ParserRule getRule() { return rule; }
633
634 //"!" atom=Atom
635 public Group getGroup() { return cGroup; }
636
637 //"!"
638 public Keyword getExclamationMarkKeyword_0() { return cExclamationMarkKeyword_0; }
639
640 //atom=Atom
641 public Assignment getAtomAssignment_1() { return cAtomAssignment_1; }
642
643 //Atom
644 public RuleCall getAtomAtomParserRuleCall_1_0() { return cAtomAtomParserRuleCall_1_0; }
645 }
646 public class AtomElements extends AbstractParserRuleElementFinder {
647 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Atom");
648 private final Group cGroup = (Group)rule.eContents().get(1);
649 private final Assignment cRelationAssignment_0 = (Assignment)cGroup.eContents().get(0);
650 private final CrossReference cRelationRelationCrossReference_0_0 = (CrossReference)cRelationAssignment_0.eContents().get(0);
651 private final RuleCall cRelationRelationQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cRelationRelationCrossReference_0_0.eContents().get(1);
652 private final Assignment cTransitiveClosureAssignment_1 = (Assignment)cGroup.eContents().get(1);
653 private final Keyword cTransitiveClosurePlusSignKeyword_1_0 = (Keyword)cTransitiveClosureAssignment_1.eContents().get(0);
654 private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
655 private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
656 private final Assignment cArgumentsAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
657 private final RuleCall cArgumentsArgumentParserRuleCall_3_0_0 = (RuleCall)cArgumentsAssignment_3_0.eContents().get(0);
658 private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1);
659 private final Keyword cCommaKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
660 private final Assignment cArgumentsAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
661 private final RuleCall cArgumentsArgumentParserRuleCall_3_1_1_0 = (RuleCall)cArgumentsAssignment_3_1_1.eContents().get(0);
662 private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
663
664 //Atom:
665 // relation=[Relation|QualifiedName]
666 // transitiveClosure?="+"?
667 // "(" (arguments+=Argument ("," arguments+=Argument)*)? ")";
668 @Override public ParserRule getRule() { return rule; }
669
670 //relation=[Relation|QualifiedName]
671 //transitiveClosure?="+"?
672 //"(" (arguments+=Argument ("," arguments+=Argument)*)? ")"
673 public Group getGroup() { return cGroup; }
674
675 //relation=[Relation|QualifiedName]
676 public Assignment getRelationAssignment_0() { return cRelationAssignment_0; }
677
678 //[Relation|QualifiedName]
679 public CrossReference getRelationRelationCrossReference_0_0() { return cRelationRelationCrossReference_0_0; }
680
681 //QualifiedName
682 public RuleCall getRelationRelationQualifiedNameParserRuleCall_0_0_1() { return cRelationRelationQualifiedNameParserRuleCall_0_0_1; }
683
684 //transitiveClosure?="+"?
685 public Assignment getTransitiveClosureAssignment_1() { return cTransitiveClosureAssignment_1; }
686
687 //"+"
688 public Keyword getTransitiveClosurePlusSignKeyword_1_0() { return cTransitiveClosurePlusSignKeyword_1_0; }
689
690 //"("
691 public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
692
693 //(arguments+=Argument ("," arguments+=Argument)*)?
694 public Group getGroup_3() { return cGroup_3; }
695
696 //arguments+=Argument
697 public Assignment getArgumentsAssignment_3_0() { return cArgumentsAssignment_3_0; }
698
699 //Argument
700 public RuleCall getArgumentsArgumentParserRuleCall_3_0_0() { return cArgumentsArgumentParserRuleCall_3_0_0; }
701
702 //("," arguments+=Argument)*
703 public Group getGroup_3_1() { return cGroup_3_1; }
704
705 //","
706 public Keyword getCommaKeyword_3_1_0() { return cCommaKeyword_3_1_0; }
707
708 //arguments+=Argument
709 public Assignment getArgumentsAssignment_3_1_1() { return cArgumentsAssignment_3_1_1; }
710
711 //Argument
712 public RuleCall getArgumentsArgumentParserRuleCall_3_1_1_0() { return cArgumentsArgumentParserRuleCall_3_1_1_0; }
713
714 //")"
715 public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
716 }
717 public class ArgumentElements extends AbstractParserRuleElementFinder {
718 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Argument");
719 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
720 private final RuleCall cVariableOrNodeArgumentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
721 private final RuleCall cConstantArgumentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
722
723 //Argument:
724 // VariableOrNodeArgument | ConstantArgument;
725 @Override public ParserRule getRule() { return rule; }
726
727 //VariableOrNodeArgument | ConstantArgument
728 public Alternatives getAlternatives() { return cAlternatives; }
729
730 //VariableOrNodeArgument
731 public RuleCall getVariableOrNodeArgumentParserRuleCall_0() { return cVariableOrNodeArgumentParserRuleCall_0; }
732
733 //ConstantArgument
734 public RuleCall getConstantArgumentParserRuleCall_1() { return cConstantArgumentParserRuleCall_1; }
735 }
736 public class VariableOrNodeArgumentElements extends AbstractParserRuleElementFinder {
737 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.VariableOrNodeArgument");
738 private final Assignment cVariableOrNodeAssignment = (Assignment)rule.eContents().get(1);
739 private final CrossReference cVariableOrNodeVariableOrNodeCrossReference_0 = (CrossReference)cVariableOrNodeAssignment.eContents().get(0);
740 private final RuleCall cVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1 = (RuleCall)cVariableOrNodeVariableOrNodeCrossReference_0.eContents().get(1);
741
742 //VariableOrNodeArgument:
743 // variableOrNode=[VariableOrNode|QualifiedName];
744 @Override public ParserRule getRule() { return rule; }
745
746 //variableOrNode=[VariableOrNode|QualifiedName]
747 public Assignment getVariableOrNodeAssignment() { return cVariableOrNodeAssignment; }
748
749 //[VariableOrNode|QualifiedName]
750 public CrossReference getVariableOrNodeVariableOrNodeCrossReference_0() { return cVariableOrNodeVariableOrNodeCrossReference_0; }
751
752 //QualifiedName
753 public RuleCall getVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1() { return cVariableOrNodeVariableOrNodeQualifiedNameParserRuleCall_0_1; }
754 }
755 public class ConstantArgumentElements extends AbstractParserRuleElementFinder {
756 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ConstantArgument");
757 private final Assignment cConstantAssignment = (Assignment)rule.eContents().get(1);
758 private final RuleCall cConstantConstantParserRuleCall_0 = (RuleCall)cConstantAssignment.eContents().get(0);
759
760 //ConstantArgument:
761 // constant=Constant;
762 @Override public ParserRule getRule() { return rule; }
763
764 //constant=Constant
765 public Assignment getConstantAssignment() { return cConstantAssignment; }
766
767 //Constant
768 public RuleCall getConstantConstantParserRuleCall_0() { return cConstantConstantParserRuleCall_0; }
769 }
770 public class AssertionElements extends AbstractParserRuleElementFinder {
771 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Assertion");
772 private final Group cGroup = (Group)rule.eContents().get(1);
773 private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
774 private final Group cGroup_0_0 = (Group)cAlternatives_0.eContents().get(0);
775 private final Assignment cRelationAssignment_0_0_0 = (Assignment)cGroup_0_0.eContents().get(0);
776 private final CrossReference cRelationRelationCrossReference_0_0_0_0 = (CrossReference)cRelationAssignment_0_0_0.eContents().get(0);
777 private final RuleCall cRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1 = (RuleCall)cRelationRelationCrossReference_0_0_0_0.eContents().get(1);
778 private final Keyword cLeftParenthesisKeyword_0_0_1 = (Keyword)cGroup_0_0.eContents().get(1);
779 private final Group cGroup_0_0_2 = (Group)cGroup_0_0.eContents().get(2);
780 private final Assignment cArgumentsAssignment_0_0_2_0 = (Assignment)cGroup_0_0_2.eContents().get(0);
781 private final RuleCall cArgumentsAssertionArgumentParserRuleCall_0_0_2_0_0 = (RuleCall)cArgumentsAssignment_0_0_2_0.eContents().get(0);
782 private final Group cGroup_0_0_2_1 = (Group)cGroup_0_0_2.eContents().get(1);
783 private final Keyword cCommaKeyword_0_0_2_1_0 = (Keyword)cGroup_0_0_2_1.eContents().get(0);
784 private final Assignment cArgumentsAssignment_0_0_2_1_1 = (Assignment)cGroup_0_0_2_1.eContents().get(1);
785 private final RuleCall cArgumentsAssertionArgumentParserRuleCall_0_0_2_1_1_0 = (RuleCall)cArgumentsAssignment_0_0_2_1_1.eContents().get(0);
786 private final Keyword cRightParenthesisKeyword_0_0_3 = (Keyword)cGroup_0_0.eContents().get(3);
787 private final Keyword cColonKeyword_0_0_4 = (Keyword)cGroup_0_0.eContents().get(4);
788 private final Assignment cValueAssignment_0_0_5 = (Assignment)cGroup_0_0.eContents().get(5);
789 private final RuleCall cValueLogicValueEnumRuleCall_0_0_5_0 = (RuleCall)cValueAssignment_0_0_5.eContents().get(0);
790 private final Group cGroup_0_1 = (Group)cAlternatives_0.eContents().get(1);
791 private final Assignment cValueAssignment_0_1_0 = (Assignment)cGroup_0_1.eContents().get(0);
792 private final RuleCall cValueShortLogicValueEnumRuleCall_0_1_0_0 = (RuleCall)cValueAssignment_0_1_0.eContents().get(0);
793 private final Assignment cRelationAssignment_0_1_1 = (Assignment)cGroup_0_1.eContents().get(1);
794 private final CrossReference cRelationRelationCrossReference_0_1_1_0 = (CrossReference)cRelationAssignment_0_1_1.eContents().get(0);
795 private final RuleCall cRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1 = (RuleCall)cRelationRelationCrossReference_0_1_1_0.eContents().get(1);
796 private final Keyword cLeftParenthesisKeyword_0_1_2 = (Keyword)cGroup_0_1.eContents().get(2);
797 private final Group cGroup_0_1_3 = (Group)cGroup_0_1.eContents().get(3);
798 private final Assignment cArgumentsAssignment_0_1_3_0 = (Assignment)cGroup_0_1_3.eContents().get(0);
799 private final RuleCall cArgumentsAssertionArgumentParserRuleCall_0_1_3_0_0 = (RuleCall)cArgumentsAssignment_0_1_3_0.eContents().get(0);
800 private final Group cGroup_0_1_3_1 = (Group)cGroup_0_1_3.eContents().get(1);
801 private final Keyword cCommaKeyword_0_1_3_1_0 = (Keyword)cGroup_0_1_3_1.eContents().get(0);
802 private final Assignment cArgumentsAssignment_0_1_3_1_1 = (Assignment)cGroup_0_1_3_1.eContents().get(1);
803 private final RuleCall cArgumentsAssertionArgumentParserRuleCall_0_1_3_1_1_0 = (RuleCall)cArgumentsAssignment_0_1_3_1_1.eContents().get(0);
804 private final Keyword cRightParenthesisKeyword_0_1_4 = (Keyword)cGroup_0_1.eContents().get(4);
805 private final Keyword cFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
806
807 //Assertion:
808 // (relation=[Relation|QualifiedName]
809 // "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")"
810 // ":" value=LogicValue |
811 // value=ShortLogicValue?
812 // relation=[Relation|QualifiedName]
813 // "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")")
814 // ".";
815 @Override public ParserRule getRule() { return rule; }
816
817 //(relation=[Relation|QualifiedName]
818 //"(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")"
819 //":" value=LogicValue |
820 //value=ShortLogicValue?
821 //relation=[Relation|QualifiedName]
822 //"(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")")
823 //"."
824 public Group getGroup() { return cGroup; }
825
826 //(relation=[Relation|QualifiedName]
827 //"(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")"
828 //":" value=LogicValue |
829 //value=ShortLogicValue?
830 //relation=[Relation|QualifiedName]
831 //"(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")")
832 public Alternatives getAlternatives_0() { return cAlternatives_0; }
833
834 //relation=[Relation|QualifiedName]
835 // "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")"
836 // ":" value=LogicValue
837 public Group getGroup_0_0() { return cGroup_0_0; }
838
839 //relation=[Relation|QualifiedName]
840 public Assignment getRelationAssignment_0_0_0() { return cRelationAssignment_0_0_0; }
841
842 //[Relation|QualifiedName]
843 public CrossReference getRelationRelationCrossReference_0_0_0_0() { return cRelationRelationCrossReference_0_0_0_0; }
844
845 //QualifiedName
846 public RuleCall getRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1() { return cRelationRelationQualifiedNameParserRuleCall_0_0_0_0_1; }
847
848 //"("
849 public Keyword getLeftParenthesisKeyword_0_0_1() { return cLeftParenthesisKeyword_0_0_1; }
850
851 //(arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)?
852 public Group getGroup_0_0_2() { return cGroup_0_0_2; }
853
854 //arguments+=AssertionArgument
855 public Assignment getArgumentsAssignment_0_0_2_0() { return cArgumentsAssignment_0_0_2_0; }
856
857 //AssertionArgument
858 public RuleCall getArgumentsAssertionArgumentParserRuleCall_0_0_2_0_0() { return cArgumentsAssertionArgumentParserRuleCall_0_0_2_0_0; }
859
860 //("," arguments+=AssertionArgument)*
861 public Group getGroup_0_0_2_1() { return cGroup_0_0_2_1; }
862
863 //","
864 public Keyword getCommaKeyword_0_0_2_1_0() { return cCommaKeyword_0_0_2_1_0; }
865
866 //arguments+=AssertionArgument
867 public Assignment getArgumentsAssignment_0_0_2_1_1() { return cArgumentsAssignment_0_0_2_1_1; }
868
869 //AssertionArgument
870 public RuleCall getArgumentsAssertionArgumentParserRuleCall_0_0_2_1_1_0() { return cArgumentsAssertionArgumentParserRuleCall_0_0_2_1_1_0; }
871
872 //")"
873 public Keyword getRightParenthesisKeyword_0_0_3() { return cRightParenthesisKeyword_0_0_3; }
874
875 //":"
876 public Keyword getColonKeyword_0_0_4() { return cColonKeyword_0_0_4; }
877
878 //value=LogicValue
879 public Assignment getValueAssignment_0_0_5() { return cValueAssignment_0_0_5; }
880
881 //LogicValue
882 public RuleCall getValueLogicValueEnumRuleCall_0_0_5_0() { return cValueLogicValueEnumRuleCall_0_0_5_0; }
883
884 //value=ShortLogicValue?
885 //relation=[Relation|QualifiedName]
886 //"(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")"
887 public Group getGroup_0_1() { return cGroup_0_1; }
888
889 //value=ShortLogicValue?
890 public Assignment getValueAssignment_0_1_0() { return cValueAssignment_0_1_0; }
891
892 //ShortLogicValue
893 public RuleCall getValueShortLogicValueEnumRuleCall_0_1_0_0() { return cValueShortLogicValueEnumRuleCall_0_1_0_0; }
894
895 //relation=[Relation|QualifiedName]
896 public Assignment getRelationAssignment_0_1_1() { return cRelationAssignment_0_1_1; }
897
898 //[Relation|QualifiedName]
899 public CrossReference getRelationRelationCrossReference_0_1_1_0() { return cRelationRelationCrossReference_0_1_1_0; }
900
901 //QualifiedName
902 public RuleCall getRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1() { return cRelationRelationQualifiedNameParserRuleCall_0_1_1_0_1; }
903
904 //"("
905 public Keyword getLeftParenthesisKeyword_0_1_2() { return cLeftParenthesisKeyword_0_1_2; }
906
907 //(arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)?
908 public Group getGroup_0_1_3() { return cGroup_0_1_3; }
909
910 //arguments+=AssertionArgument
911 public Assignment getArgumentsAssignment_0_1_3_0() { return cArgumentsAssignment_0_1_3_0; }
912
913 //AssertionArgument
914 public RuleCall getArgumentsAssertionArgumentParserRuleCall_0_1_3_0_0() { return cArgumentsAssertionArgumentParserRuleCall_0_1_3_0_0; }
915
916 //("," arguments+=AssertionArgument)*
917 public Group getGroup_0_1_3_1() { return cGroup_0_1_3_1; }
918
919 //","
920 public Keyword getCommaKeyword_0_1_3_1_0() { return cCommaKeyword_0_1_3_1_0; }
921
922 //arguments+=AssertionArgument
923 public Assignment getArgumentsAssignment_0_1_3_1_1() { return cArgumentsAssignment_0_1_3_1_1; }
924
925 //AssertionArgument
926 public RuleCall getArgumentsAssertionArgumentParserRuleCall_0_1_3_1_1_0() { return cArgumentsAssertionArgumentParserRuleCall_0_1_3_1_1_0; }
927
928 //")"
929 public Keyword getRightParenthesisKeyword_0_1_4() { return cRightParenthesisKeyword_0_1_4; }
930
931 //"."
932 public Keyword getFullStopKeyword_1() { return cFullStopKeyword_1; }
933 }
934 public class AssertionArgumentElements extends AbstractParserRuleElementFinder {
935 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.AssertionArgument");
936 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
937 private final RuleCall cNodeAssertionArgumentParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
938 private final RuleCall cConstantAssertionArgumentParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
939
940 //AssertionArgument:
941 // NodeAssertionArgument | ConstantAssertionArgument;
942 @Override public ParserRule getRule() { return rule; }
943
944 //NodeAssertionArgument | ConstantAssertionArgument
945 public Alternatives getAlternatives() { return cAlternatives; }
946
947 //NodeAssertionArgument
948 public RuleCall getNodeAssertionArgumentParserRuleCall_0() { return cNodeAssertionArgumentParserRuleCall_0; }
949
950 //ConstantAssertionArgument
951 public RuleCall getConstantAssertionArgumentParserRuleCall_1() { return cConstantAssertionArgumentParserRuleCall_1; }
952 }
953 public class NodeAssertionArgumentElements extends AbstractParserRuleElementFinder {
954 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.NodeAssertionArgument");
955 private final Assignment cNodeAssignment = (Assignment)rule.eContents().get(1);
956 private final CrossReference cNodeNodeCrossReference_0 = (CrossReference)cNodeAssignment.eContents().get(0);
957 private final RuleCall cNodeNodeQualifiedNameParserRuleCall_0_1 = (RuleCall)cNodeNodeCrossReference_0.eContents().get(1);
958
959 //NodeAssertionArgument:
960 // node=[Node|QualifiedName];
961 @Override public ParserRule getRule() { return rule; }
962
963 //node=[Node|QualifiedName]
964 public Assignment getNodeAssignment() { return cNodeAssignment; }
965
966 //[Node|QualifiedName]
967 public CrossReference getNodeNodeCrossReference_0() { return cNodeNodeCrossReference_0; }
968
969 //QualifiedName
970 public RuleCall getNodeNodeQualifiedNameParserRuleCall_0_1() { return cNodeNodeQualifiedNameParserRuleCall_0_1; }
971 }
972 public class ConstantAssertionArgumentElements extends AbstractParserRuleElementFinder {
973 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ConstantAssertionArgument");
974 private final Assignment cConstantAssignment = (Assignment)rule.eContents().get(1);
975 private final RuleCall cConstantConstantParserRuleCall_0 = (RuleCall)cConstantAssignment.eContents().get(0);
976
977 //ConstantAssertionArgument:
978 // constant=Constant;
979 @Override public ParserRule getRule() { return rule; }
980
981 //constant=Constant
982 public Assignment getConstantAssignment() { return cConstantAssignment; }
983
984 //Constant
985 public RuleCall getConstantConstantParserRuleCall_0() { return cConstantConstantParserRuleCall_0; }
986 }
987 public class NodeValueAssertionElements extends AbstractParserRuleElementFinder {
988 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.NodeValueAssertion");
989 private final Group cGroup = (Group)rule.eContents().get(1);
990 private final Assignment cNodeAssignment_0 = (Assignment)cGroup.eContents().get(0);
991 private final CrossReference cNodeNodeCrossReference_0_0 = (CrossReference)cNodeAssignment_0.eContents().get(0);
992 private final RuleCall cNodeNodeQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cNodeNodeCrossReference_0_0.eContents().get(1);
993 private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
994 private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
995 private final RuleCall cValueConstantParserRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
996 private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
997
998 //NodeValueAssertion:
999 // node=[Node|QualifiedName] ":" value=Constant ".";
1000 @Override public ParserRule getRule() { return rule; }
1001
1002 //node=[Node|QualifiedName] ":" value=Constant "."
1003 public Group getGroup() { return cGroup; }
1004
1005 //node=[Node|QualifiedName]
1006 public Assignment getNodeAssignment_0() { return cNodeAssignment_0; }
1007
1008 //[Node|QualifiedName]
1009 public CrossReference getNodeNodeCrossReference_0_0() { return cNodeNodeCrossReference_0_0; }
1010
1011 //QualifiedName
1012 public RuleCall getNodeNodeQualifiedNameParserRuleCall_0_0_1() { return cNodeNodeQualifiedNameParserRuleCall_0_0_1; }
1013
1014 //":"
1015 public Keyword getColonKeyword_1() { return cColonKeyword_1; }
1016
1017 //value=Constant
1018 public Assignment getValueAssignment_2() { return cValueAssignment_2; }
1019
1020 //Constant
1021 public RuleCall getValueConstantParserRuleCall_2_0() { return cValueConstantParserRuleCall_2_0; }
1022
1023 //"."
1024 public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }
1025 }
1026 public class ConstantElements extends AbstractParserRuleElementFinder {
1027 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Constant");
1028 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1029 private final RuleCall cRealConstantParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1030 private final RuleCall cIntConstantParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1031 private final RuleCall cStringConstantParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
1032
1033 //Constant:
1034 // RealConstant | IntConstant | StringConstant;
1035 @Override public ParserRule getRule() { return rule; }
1036
1037 //RealConstant | IntConstant | StringConstant
1038 public Alternatives getAlternatives() { return cAlternatives; }
1039
1040 //RealConstant
1041 public RuleCall getRealConstantParserRuleCall_0() { return cRealConstantParserRuleCall_0; }
1042
1043 //IntConstant
1044 public RuleCall getIntConstantParserRuleCall_1() { return cIntConstantParserRuleCall_1; }
1045
1046 //StringConstant
1047 public RuleCall getStringConstantParserRuleCall_2() { return cStringConstantParserRuleCall_2; }
1048 }
1049 public class IntConstantElements extends AbstractParserRuleElementFinder {
1050 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.IntConstant");
1051 private final Assignment cIntValueAssignment = (Assignment)rule.eContents().get(1);
1052 private final RuleCall cIntValueIntegerParserRuleCall_0 = (RuleCall)cIntValueAssignment.eContents().get(0);
1053
1054 //IntConstant:
1055 // intValue=Integer;
1056 @Override public ParserRule getRule() { return rule; }
1057
1058 //intValue=Integer
1059 public Assignment getIntValueAssignment() { return cIntValueAssignment; }
1060
1061 //Integer
1062 public RuleCall getIntValueIntegerParserRuleCall_0() { return cIntValueIntegerParserRuleCall_0; }
1063 }
1064 public class RealConstantElements extends AbstractParserRuleElementFinder {
1065 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.RealConstant");
1066 private final Assignment cRealValueAssignment = (Assignment)rule.eContents().get(1);
1067 private final RuleCall cRealValueRealParserRuleCall_0 = (RuleCall)cRealValueAssignment.eContents().get(0);
1068
1069 //RealConstant:
1070 // realValue=Real;
1071 @Override public ParserRule getRule() { return rule; }
1072
1073 //realValue=Real
1074 public Assignment getRealValueAssignment() { return cRealValueAssignment; }
1075
1076 //Real
1077 public RuleCall getRealValueRealParserRuleCall_0() { return cRealValueRealParserRuleCall_0; }
1078 }
1079 public class StringConstantElements extends AbstractParserRuleElementFinder {
1080 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.StringConstant");
1081 private final Assignment cStringValueAssignment = (Assignment)rule.eContents().get(1);
1082 private final RuleCall cStringValueSTRINGTerminalRuleCall_0 = (RuleCall)cStringValueAssignment.eContents().get(0);
1083
1084 //StringConstant:
1085 // stringValue=STRING;
1086 @Override public ParserRule getRule() { return rule; }
1087
1088 //stringValue=STRING
1089 public Assignment getStringValueAssignment() { return cStringValueAssignment; }
1090
1091 //STRING
1092 public RuleCall getStringValueSTRINGTerminalRuleCall_0() { return cStringValueSTRINGTerminalRuleCall_0; }
1093 }
1094 public class ScopeDeclarationElements extends AbstractParserRuleElementFinder {
1095 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ScopeDeclaration");
1096 private final Group cGroup = (Group)rule.eContents().get(1);
1097 private final Keyword cScopeKeyword_0 = (Keyword)cGroup.eContents().get(0);
1098 private final Assignment cTypeScopesAssignment_1 = (Assignment)cGroup.eContents().get(1);
1099 private final RuleCall cTypeScopesTypeScopeParserRuleCall_1_0 = (RuleCall)cTypeScopesAssignment_1.eContents().get(0);
1100 private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
1101 private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
1102 private final Assignment cTypeScopesAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
1103 private final RuleCall cTypeScopesTypeScopeParserRuleCall_2_1_0 = (RuleCall)cTypeScopesAssignment_2_1.eContents().get(0);
1104 private final Keyword cFullStopKeyword_3 = (Keyword)cGroup.eContents().get(3);
1105
1106 //ScopeDeclaration:
1107 // "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* ".";
1108 @Override public ParserRule getRule() { return rule; }
1109
1110 //"scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* "."
1111 public Group getGroup() { return cGroup; }
1112
1113 //"scope"
1114 public Keyword getScopeKeyword_0() { return cScopeKeyword_0; }
1115
1116 //typeScopes+=TypeScope
1117 public Assignment getTypeScopesAssignment_1() { return cTypeScopesAssignment_1; }
1118
1119 //TypeScope
1120 public RuleCall getTypeScopesTypeScopeParserRuleCall_1_0() { return cTypeScopesTypeScopeParserRuleCall_1_0; }
1121
1122 //("," typeScopes+=TypeScope)*
1123 public Group getGroup_2() { return cGroup_2; }
1124
1125 //","
1126 public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }
1127
1128 //typeScopes+=TypeScope
1129 public Assignment getTypeScopesAssignment_2_1() { return cTypeScopesAssignment_2_1; }
1130
1131 //TypeScope
1132 public RuleCall getTypeScopesTypeScopeParserRuleCall_2_1_0() { return cTypeScopesTypeScopeParserRuleCall_2_1_0; }
1133
1134 //"."
1135 public Keyword getFullStopKeyword_3() { return cFullStopKeyword_3; }
1136 }
1137 public class TypeScopeElements extends AbstractParserRuleElementFinder {
1138 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.TypeScope");
1139 private final Group cGroup = (Group)rule.eContents().get(1);
1140 private final Assignment cTargetTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
1141 private final CrossReference cTargetTypeClassDeclarationCrossReference_0_0 = (CrossReference)cTargetTypeAssignment_0.eContents().get(0);
1142 private final RuleCall cTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1 = (RuleCall)cTargetTypeClassDeclarationCrossReference_0_0.eContents().get(1);
1143 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
1144 private final Assignment cIncrementAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
1145 private final Keyword cIncrementPlusSignEqualsSignKeyword_1_0_0 = (Keyword)cIncrementAssignment_1_0.eContents().get(0);
1146 private final Keyword cEqualsSignKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
1147 private final Assignment cMultiplicityAssignment_2 = (Assignment)cGroup.eContents().get(2);
1148 private final RuleCall cMultiplicityDefiniteMultiplicityParserRuleCall_2_0 = (RuleCall)cMultiplicityAssignment_2.eContents().get(0);
1149
1150 //TypeScope:
1151 // targetType=[ClassDeclaration]
1152 // (increment?="+=" | "=")
1153 // multiplicity=DefiniteMultiplicity;
1154 @Override public ParserRule getRule() { return rule; }
1155
1156 //targetType=[ClassDeclaration]
1157 //(increment?="+=" | "=")
1158 //multiplicity=DefiniteMultiplicity
1159 public Group getGroup() { return cGroup; }
1160
1161 //targetType=[ClassDeclaration]
1162 public Assignment getTargetTypeAssignment_0() { return cTargetTypeAssignment_0; }
1163
1164 //[ClassDeclaration]
1165 public CrossReference getTargetTypeClassDeclarationCrossReference_0_0() { return cTargetTypeClassDeclarationCrossReference_0_0; }
1166
1167 //ID
1168 public RuleCall getTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1() { return cTargetTypeClassDeclarationIDTerminalRuleCall_0_0_1; }
1169
1170 //(increment?="+=" | "=")
1171 public Alternatives getAlternatives_1() { return cAlternatives_1; }
1172
1173 //increment?="+="
1174 public Assignment getIncrementAssignment_1_0() { return cIncrementAssignment_1_0; }
1175
1176 //"+="
1177 public Keyword getIncrementPlusSignEqualsSignKeyword_1_0_0() { return cIncrementPlusSignEqualsSignKeyword_1_0_0; }
1178
1179 //"="
1180 public Keyword getEqualsSignKeyword_1_1() { return cEqualsSignKeyword_1_1; }
1181
1182 //multiplicity=DefiniteMultiplicity
1183 public Assignment getMultiplicityAssignment_2() { return cMultiplicityAssignment_2; }
1184
1185 //DefiniteMultiplicity
1186 public RuleCall getMultiplicityDefiniteMultiplicityParserRuleCall_2_0() { return cMultiplicityDefiniteMultiplicityParserRuleCall_2_0; }
1187 }
1188 public class MultiplicityElements extends AbstractParserRuleElementFinder {
1189 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Multiplicity");
1190 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1191 private final RuleCall cUnboundedMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1192 private final RuleCall cDefiniteMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1193
1194 //Multiplicity:
1195 // UnboundedMultiplicity | DefiniteMultiplicity;
1196 @Override public ParserRule getRule() { return rule; }
1197
1198 //UnboundedMultiplicity | DefiniteMultiplicity
1199 public Alternatives getAlternatives() { return cAlternatives; }
1200
1201 //UnboundedMultiplicity
1202 public RuleCall getUnboundedMultiplicityParserRuleCall_0() { return cUnboundedMultiplicityParserRuleCall_0; }
1203
1204 //DefiniteMultiplicity
1205 public RuleCall getDefiniteMultiplicityParserRuleCall_1() { return cDefiniteMultiplicityParserRuleCall_1; }
1206 }
1207 public class DefiniteMultiplicityElements extends AbstractParserRuleElementFinder {
1208 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.DefiniteMultiplicity");
1209 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1210 private final RuleCall cRangeMultiplicityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1211 private final RuleCall cExactMultiplicityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1212
1213 //DefiniteMultiplicity returns Multiplicity:
1214 // RangeMultiplicity | ExactMultiplicity;
1215 @Override public ParserRule getRule() { return rule; }
1216
1217 //RangeMultiplicity | ExactMultiplicity
1218 public Alternatives getAlternatives() { return cAlternatives; }
1219
1220 //RangeMultiplicity
1221 public RuleCall getRangeMultiplicityParserRuleCall_0() { return cRangeMultiplicityParserRuleCall_0; }
1222
1223 //ExactMultiplicity
1224 public RuleCall getExactMultiplicityParserRuleCall_1() { return cExactMultiplicityParserRuleCall_1; }
1225 }
1226 public class UnboundedMultiplicityElements extends AbstractParserRuleElementFinder {
1227 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.UnboundedMultiplicity");
1228 private final Action cUnboundedMultiplicityAction = (Action)rule.eContents().get(1);
1229
1230 //UnboundedMultiplicity:
1231 // {UnboundedMultiplicity};
1232 @Override public ParserRule getRule() { return rule; }
1233
1234 //{UnboundedMultiplicity}
1235 public Action getUnboundedMultiplicityAction() { return cUnboundedMultiplicityAction; }
1236 }
1237 public class RangeMultiplicityElements extends AbstractParserRuleElementFinder {
1238 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.RangeMultiplicity");
1239 private final Group cGroup = (Group)rule.eContents().get(1);
1240 private final Assignment cLowerBoundAssignment_0 = (Assignment)cGroup.eContents().get(0);
1241 private final RuleCall cLowerBoundINTTerminalRuleCall_0_0 = (RuleCall)cLowerBoundAssignment_0.eContents().get(0);
1242 private final Keyword cFullStopFullStopKeyword_1 = (Keyword)cGroup.eContents().get(1);
1243 private final Assignment cUpperBoundAssignment_2 = (Assignment)cGroup.eContents().get(2);
1244 private final RuleCall cUpperBoundUpperBoundParserRuleCall_2_0 = (RuleCall)cUpperBoundAssignment_2.eContents().get(0);
1245
1246 //RangeMultiplicity:
1247 // lowerBound=INT ".." upperBound=UpperBound;
1248 @Override public ParserRule getRule() { return rule; }
1249
1250 //lowerBound=INT ".." upperBound=UpperBound
1251 public Group getGroup() { return cGroup; }
1252
1253 //lowerBound=INT
1254 public Assignment getLowerBoundAssignment_0() { return cLowerBoundAssignment_0; }
1255
1256 //INT
1257 public RuleCall getLowerBoundINTTerminalRuleCall_0_0() { return cLowerBoundINTTerminalRuleCall_0_0; }
1258
1259 //".."
1260 public Keyword getFullStopFullStopKeyword_1() { return cFullStopFullStopKeyword_1; }
1261
1262 //upperBound=UpperBound
1263 public Assignment getUpperBoundAssignment_2() { return cUpperBoundAssignment_2; }
1264
1265 //UpperBound
1266 public RuleCall getUpperBoundUpperBoundParserRuleCall_2_0() { return cUpperBoundUpperBoundParserRuleCall_2_0; }
1267 }
1268 public class ExactMultiplicityElements extends AbstractParserRuleElementFinder {
1269 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ExactMultiplicity");
1270 private final Assignment cExactValueAssignment = (Assignment)rule.eContents().get(1);
1271 private final RuleCall cExactValueINTTerminalRuleCall_0 = (RuleCall)cExactValueAssignment.eContents().get(0);
1272
1273 //ExactMultiplicity:
1274 // exactValue=INT;
1275 @Override public ParserRule getRule() { return rule; }
1276
1277 //exactValue=INT
1278 public Assignment getExactValueAssignment() { return cExactValueAssignment; }
1279
1280 //INT
1281 public RuleCall getExactValueINTTerminalRuleCall_0() { return cExactValueINTTerminalRuleCall_0; }
1282 }
1283 public class UpperBoundElements extends AbstractParserRuleElementFinder {
1284 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.UpperBound");
1285 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1286 private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1287 private final Keyword cAsteriskKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
1288
1289 //UpperBound returns ecore::EInt:
1290 // INT | "*";
1291 @Override public ParserRule getRule() { return rule; }
1292
1293 //INT | "*"
1294 public Alternatives getAlternatives() { return cAlternatives; }
1295
1296 //INT
1297 public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }
1298
1299 //"*"
1300 public Keyword getAsteriskKeyword_1() { return cAsteriskKeyword_1; }
1301 }
1302 public class QualifiedNameElements extends AbstractParserRuleElementFinder {
1303 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QualifiedName");
1304 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1305 private final RuleCall cQUOTED_IDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1306 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
1307 private final RuleCall cIdentifierParserRuleCall_1_0 = (RuleCall)cGroup_1.eContents().get(0);
1308 private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
1309 private final Keyword cColonColonKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
1310 private final RuleCall cIdentifierParserRuleCall_1_1_1 = (RuleCall)cGroup_1_1.eContents().get(1);
1311
1312 //QualifiedName hidden():
1313 // QUOTED_ID | Identifier ("::" Identifier)*;
1314 @Override public ParserRule getRule() { return rule; }
1315
1316 //QUOTED_ID | Identifier ("::" Identifier)*
1317 public Alternatives getAlternatives() { return cAlternatives; }
1318
1319 //QUOTED_ID
1320 public RuleCall getQUOTED_IDTerminalRuleCall_0() { return cQUOTED_IDTerminalRuleCall_0; }
1321
1322 //Identifier ("::" Identifier)*
1323 public Group getGroup_1() { return cGroup_1; }
1324
1325 //Identifier
1326 public RuleCall getIdentifierParserRuleCall_1_0() { return cIdentifierParserRuleCall_1_0; }
1327
1328 //("::" Identifier)*
1329 public Group getGroup_1_1() { return cGroup_1_1; }
1330
1331 //"::"
1332 public Keyword getColonColonKeyword_1_1_0() { return cColonColonKeyword_1_1_0; }
1333
1334 //Identifier
1335 public RuleCall getIdentifierParserRuleCall_1_1_1() { return cIdentifierParserRuleCall_1_1_1; }
1336 }
1337 public class IdentifierElements extends AbstractParserRuleElementFinder {
1338 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Identifier");
1339 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1340 private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1341 private final Keyword cTrueKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
1342 private final Keyword cFalseKeyword_2 = (Keyword)cAlternatives.eContents().get(2);
1343
1344 //Identifier:
1345 // ID | "true" | "false";
1346 @Override public ParserRule getRule() { return rule; }
1347
1348 //ID | "true" | "false"
1349 public Alternatives getAlternatives() { return cAlternatives; }
1350
1351 //ID
1352 public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }
1353
1354 //"true"
1355 public Keyword getTrueKeyword_1() { return cTrueKeyword_1; }
1356
1357 //"false"
1358 public Keyword getFalseKeyword_2() { return cFalseKeyword_2; }
1359 }
1360 public class IntegerElements extends AbstractParserRuleElementFinder {
1361 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Integer");
1362 private final Group cGroup = (Group)rule.eContents().get(1);
1363 private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
1364 private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
1365
1366 //Integer returns ecore::EInt hidden():
1367 // "-"? INT;
1368 @Override public ParserRule getRule() { return rule; }
1369
1370 //"-"? INT
1371 public Group getGroup() { return cGroup; }
1372
1373 //"-"?
1374 public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
1375
1376 //INT
1377 public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; }
1378 }
1379 public class RealElements extends AbstractParserRuleElementFinder {
1380 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Real");
1381 private final Group cGroup = (Group)rule.eContents().get(1);
1382 private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
1383 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
1384 private final RuleCall cEXPONENTIALTerminalRuleCall_1_0 = (RuleCall)cAlternatives_1.eContents().get(0);
1385 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
1386 private final RuleCall cINTTerminalRuleCall_1_1_0 = (RuleCall)cGroup_1_1.eContents().get(0);
1387 private final Keyword cFullStopKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
1388 private final Alternatives cAlternatives_1_1_2 = (Alternatives)cGroup_1_1.eContents().get(2);
1389 private final RuleCall cINTTerminalRuleCall_1_1_2_0 = (RuleCall)cAlternatives_1_1_2.eContents().get(0);
1390 private final RuleCall cEXPONENTIALTerminalRuleCall_1_1_2_1 = (RuleCall)cAlternatives_1_1_2.eContents().get(1);
1391
1392 //Real returns ecore::EDouble:
1393 // "-"? (EXPONENTIAL | INT "." (INT | EXPONENTIAL));
1394 @Override public ParserRule getRule() { return rule; }
1395
1396 //"-"? (EXPONENTIAL | INT "." (INT | EXPONENTIAL))
1397 public Group getGroup() { return cGroup; }
1398
1399 //"-"?
1400 public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
1401
1402 //(EXPONENTIAL | INT "." (INT | EXPONENTIAL))
1403 public Alternatives getAlternatives_1() { return cAlternatives_1; }
1404
1405 //EXPONENTIAL
1406 public RuleCall getEXPONENTIALTerminalRuleCall_1_0() { return cEXPONENTIALTerminalRuleCall_1_0; }
1407
1408 //INT "." (INT | EXPONENTIAL)
1409 public Group getGroup_1_1() { return cGroup_1_1; }
1410
1411 //INT
1412 public RuleCall getINTTerminalRuleCall_1_1_0() { return cINTTerminalRuleCall_1_1_0; }
1413
1414 //"."
1415 public Keyword getFullStopKeyword_1_1_1() { return cFullStopKeyword_1_1_1; }
1416
1417 //(INT | EXPONENTIAL)
1418 public Alternatives getAlternatives_1_1_2() { return cAlternatives_1_1_2; }
1419
1420 //INT
1421 public RuleCall getINTTerminalRuleCall_1_1_2_0() { return cINTTerminalRuleCall_1_1_2_0; }
1422
1423 //EXPONENTIAL
1424 public RuleCall getEXPONENTIALTerminalRuleCall_1_1_2_1() { return cEXPONENTIALTerminalRuleCall_1_1_2_1; }
1425 }
1426
1427 public class LogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
1428 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.LogicValue");
1429 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1430 private final EnumLiteralDeclaration cTRUEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
1431 private final Keyword cTRUETrueKeyword_0_0 = (Keyword)cTRUEEnumLiteralDeclaration_0.eContents().get(0);
1432 private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
1433 private final Keyword cFALSEFalseKeyword_1_0 = (Keyword)cFALSEEnumLiteralDeclaration_1.eContents().get(0);
1434 private final EnumLiteralDeclaration cUNKNOWNEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
1435 private final Keyword cUNKNOWNUnknownKeyword_2_0 = (Keyword)cUNKNOWNEnumLiteralDeclaration_2.eContents().get(0);
1436
1437 //enum LogicValue:
1438 // TRUE="true" | FALSE="false" | UNKNOWN="unknown";
1439 public EnumRule getRule() { return rule; }
1440
1441 //TRUE="true" | FALSE="false" | UNKNOWN="unknown"
1442 public Alternatives getAlternatives() { return cAlternatives; }
1443
1444 //TRUE="true"
1445 public EnumLiteralDeclaration getTRUEEnumLiteralDeclaration_0() { return cTRUEEnumLiteralDeclaration_0; }
1446
1447 //"true"
1448 public Keyword getTRUETrueKeyword_0_0() { return cTRUETrueKeyword_0_0; }
1449
1450 //FALSE="false"
1451 public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_1() { return cFALSEEnumLiteralDeclaration_1; }
1452
1453 //"false"
1454 public Keyword getFALSEFalseKeyword_1_0() { return cFALSEFalseKeyword_1_0; }
1455
1456 //UNKNOWN="unknown"
1457 public EnumLiteralDeclaration getUNKNOWNEnumLiteralDeclaration_2() { return cUNKNOWNEnumLiteralDeclaration_2; }
1458
1459 //"unknown"
1460 public Keyword getUNKNOWNUnknownKeyword_2_0() { return cUNKNOWNUnknownKeyword_2_0; }
1461 }
1462 public class ShortLogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
1463 private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ShortLogicValue");
1464 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1465 private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
1466 private final Keyword cFALSEExclamationMarkKeyword_0_0 = (Keyword)cFALSEEnumLiteralDeclaration_0.eContents().get(0);
1467 private final EnumLiteralDeclaration cUNKNOWNEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
1468 private final Keyword cUNKNOWNQuestionMarkKeyword_1_0 = (Keyword)cUNKNOWNEnumLiteralDeclaration_1.eContents().get(0);
1469
1470 //enum ShortLogicValue returns LogicValue:
1471 // FALSE="!" | UNKNOWN="?";
1472 public EnumRule getRule() { return rule; }
1473
1474 //FALSE="!" | UNKNOWN="?"
1475 public Alternatives getAlternatives() { return cAlternatives; }
1476
1477 //FALSE="!"
1478 public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_0() { return cFALSEEnumLiteralDeclaration_0; }
1479
1480 //"!"
1481 public Keyword getFALSEExclamationMarkKeyword_0_0() { return cFALSEExclamationMarkKeyword_0_0; }
1482
1483 //UNKNOWN="?"
1484 public EnumLiteralDeclaration getUNKNOWNEnumLiteralDeclaration_1() { return cUNKNOWNEnumLiteralDeclaration_1; }
1485
1486 //"?"
1487 public Keyword getUNKNOWNQuestionMarkKeyword_1_0() { return cUNKNOWNQuestionMarkKeyword_1_0; }
1488 }
1489
1490 private final ProblemElements pProblem;
1491 private final StatementElements pStatement;
1492 private final ClassDeclarationElements pClassDeclaration;
1493 private final EnumDeclarationElements pEnumDeclaration;
1494 private final EnumLiteralElements pEnumLiteral;
1495 private final ReferenceDeclarationElements pReferenceDeclaration;
1496 private final PredicateDefinitionElements pPredicateDefinition;
1497 private final ParameterElements pParameter;
1498 private final ConjunctionElements pConjunction;
1499 private final LiteralElements pLiteral;
1500 private final NegativeLiteralElements pNegativeLiteral;
1501 private final AtomElements pAtom;
1502 private final ArgumentElements pArgument;
1503 private final VariableOrNodeArgumentElements pVariableOrNodeArgument;
1504 private final ConstantArgumentElements pConstantArgument;
1505 private final AssertionElements pAssertion;
1506 private final AssertionArgumentElements pAssertionArgument;
1507 private final NodeAssertionArgumentElements pNodeAssertionArgument;
1508 private final ConstantAssertionArgumentElements pConstantAssertionArgument;
1509 private final LogicValueElements eLogicValue;
1510 private final ShortLogicValueElements eShortLogicValue;
1511 private final NodeValueAssertionElements pNodeValueAssertion;
1512 private final ConstantElements pConstant;
1513 private final IntConstantElements pIntConstant;
1514 private final RealConstantElements pRealConstant;
1515 private final StringConstantElements pStringConstant;
1516 private final ScopeDeclarationElements pScopeDeclaration;
1517 private final TypeScopeElements pTypeScope;
1518 private final MultiplicityElements pMultiplicity;
1519 private final DefiniteMultiplicityElements pDefiniteMultiplicity;
1520 private final UnboundedMultiplicityElements pUnboundedMultiplicity;
1521 private final RangeMultiplicityElements pRangeMultiplicity;
1522 private final ExactMultiplicityElements pExactMultiplicity;
1523 private final UpperBoundElements pUpperBound;
1524 private final QualifiedNameElements pQualifiedName;
1525 private final IdentifierElements pIdentifier;
1526 private final IntegerElements pInteger;
1527 private final RealElements pReal;
1528 private final TerminalRule tID;
1529 private final TerminalRule tEXPONENTIAL;
1530 private final TerminalRule tSTRING;
1531 private final TerminalRule tQUOTED_ID;
1532 private final TerminalRule tSL_COMMENT;
1533
1534 private final Grammar grammar;
1535
1536 private final TerminalsGrammarAccess gaTerminals;
1537
1538 @Inject
1539 public ProblemGrammarAccess(GrammarProvider grammarProvider,
1540 TerminalsGrammarAccess gaTerminals) {
1541 this.grammar = internalFindGrammar(grammarProvider);
1542 this.gaTerminals = gaTerminals;
1543 this.pProblem = new ProblemElements();
1544 this.pStatement = new StatementElements();
1545 this.pClassDeclaration = new ClassDeclarationElements();
1546 this.pEnumDeclaration = new EnumDeclarationElements();
1547 this.pEnumLiteral = new EnumLiteralElements();
1548 this.pReferenceDeclaration = new ReferenceDeclarationElements();
1549 this.pPredicateDefinition = new PredicateDefinitionElements();
1550 this.pParameter = new ParameterElements();
1551 this.pConjunction = new ConjunctionElements();
1552 this.pLiteral = new LiteralElements();
1553 this.pNegativeLiteral = new NegativeLiteralElements();
1554 this.pAtom = new AtomElements();
1555 this.pArgument = new ArgumentElements();
1556 this.pVariableOrNodeArgument = new VariableOrNodeArgumentElements();
1557 this.pConstantArgument = new ConstantArgumentElements();
1558 this.pAssertion = new AssertionElements();
1559 this.pAssertionArgument = new AssertionArgumentElements();
1560 this.pNodeAssertionArgument = new NodeAssertionArgumentElements();
1561 this.pConstantAssertionArgument = new ConstantAssertionArgumentElements();
1562 this.eLogicValue = new LogicValueElements();
1563 this.eShortLogicValue = new ShortLogicValueElements();
1564 this.pNodeValueAssertion = new NodeValueAssertionElements();
1565 this.pConstant = new ConstantElements();
1566 this.pIntConstant = new IntConstantElements();
1567 this.pRealConstant = new RealConstantElements();
1568 this.pStringConstant = new StringConstantElements();
1569 this.pScopeDeclaration = new ScopeDeclarationElements();
1570 this.pTypeScope = new TypeScopeElements();
1571 this.pMultiplicity = new MultiplicityElements();
1572 this.pDefiniteMultiplicity = new DefiniteMultiplicityElements();
1573 this.pUnboundedMultiplicity = new UnboundedMultiplicityElements();
1574 this.pRangeMultiplicity = new RangeMultiplicityElements();
1575 this.pExactMultiplicity = new ExactMultiplicityElements();
1576 this.pUpperBound = new UpperBoundElements();
1577 this.pQualifiedName = new QualifiedNameElements();
1578 this.pIdentifier = new IdentifierElements();
1579 this.pInteger = new IntegerElements();
1580 this.pReal = new RealElements();
1581 this.tID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ID");
1582 this.tEXPONENTIAL = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.EXPONENTIAL");
1583 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.STRING");
1584 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QUOTED_ID");
1585 this.tSL_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.SL_COMMENT");
1586 }
1587
1588 protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
1589 Grammar grammar = grammarProvider.getGrammar(this);
1590 while (grammar != null) {
1591 if ("org.eclipse.viatra.solver.language.Problem".equals(grammar.getName())) {
1592 return grammar;
1593 }
1594 List<Grammar> grammars = grammar.getUsedGrammars();
1595 if (!grammars.isEmpty()) {
1596 grammar = grammars.iterator().next();
1597 } else {
1598 return null;
1599 }
1600 }
1601 return grammar;
1602 }
1603
1604 @Override
1605 public Grammar getGrammar() {
1606 return grammar;
1607 }
1608
1609
1610 public TerminalsGrammarAccess getTerminalsGrammarAccess() {
1611 return gaTerminals;
1612 }
1613
1614
1615 //Problem:
1616 // ("problem" name=Identifier ".")?
1617 // statements+=Statement*;
1618 public ProblemElements getProblemAccess() {
1619 return pProblem;
1620 }
1621
1622 public ParserRule getProblemRule() {
1623 return getProblemAccess().getRule();
1624 }
1625
1626 //Statement:
1627 // ClassDeclaration | EnumDeclaration | PredicateDefinition | Assertion | NodeValueAssertion | ScopeDeclaration;
1628 public StatementElements getStatementAccess() {
1629 return pStatement;
1630 }
1631
1632 public ParserRule getStatementRule() {
1633 return getStatementAccess().getRule();
1634 }
1635
1636 //ClassDeclaration:
1637 // abstract?="abstract"? "class"
1638 // name=Identifier
1639 // ("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
1640 // ("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | ".");
1641 public ClassDeclarationElements getClassDeclarationAccess() {
1642 return pClassDeclaration;
1643 }
1644
1645 public ParserRule getClassDeclarationRule() {
1646 return getClassDeclarationAccess().getRule();
1647 }
1648
1649 //EnumDeclaration:
1650 // "enum"
1651 // name=Identifier
1652 // ("{" (literals+=EnumLiteral ("," literals+=EnumLiteral)* ("," | ";")?)? "}" | ".");
1653 public EnumDeclarationElements getEnumDeclarationAccess() {
1654 return pEnumDeclaration;
1655 }
1656
1657 public ParserRule getEnumDeclarationRule() {
1658 return getEnumDeclarationAccess().getRule();
1659 }
1660
1661 //EnumLiteral returns Node:
1662 // name=Identifier;
1663 public EnumLiteralElements getEnumLiteralAccess() {
1664 return pEnumLiteral;
1665 }
1666
1667 public ParserRule getEnumLiteralRule() {
1668 return getEnumLiteralAccess().getRule();
1669 }
1670
1671 //ReferenceDeclaration:
1672 // (containment?="contains" | "refers")?
1673 // referenceType=[Relation|QualifiedName]
1674 // ("[" multiplicity=Multiplicity "]")?
1675 // name=Identifier
1676 // ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
1677 public ReferenceDeclarationElements getReferenceDeclarationAccess() {
1678 return pReferenceDeclaration;
1679 }
1680
1681 public ParserRule getReferenceDeclarationRule() {
1682 return getReferenceDeclarationAccess().getRule();
1683 }
1684
1685 //PredicateDefinition:
1686 // (error?="error" "pred"? | "pred")
1687 // name=Identifier
1688 // "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
1689 // (":-" bodies+=Conjunction (";" bodies+=Conjunction)*)?
1690 // ".";
1691 public PredicateDefinitionElements getPredicateDefinitionAccess() {
1692 return pPredicateDefinition;
1693 }
1694
1695 public ParserRule getPredicateDefinitionRule() {
1696 return getPredicateDefinitionAccess().getRule();
1697 }
1698
1699 //Parameter:
1700 // parameterType=[Relation|QualifiedName]? name=Identifier;
1701 public ParameterElements getParameterAccess() {
1702 return pParameter;
1703 }
1704
1705 public ParserRule getParameterRule() {
1706 return getParameterAccess().getRule();
1707 }
1708
1709 //Conjunction:
1710 // literals+=Literal ("," literals+=Literal)*;
1711 public ConjunctionElements getConjunctionAccess() {
1712 return pConjunction;
1713 }
1714
1715 public ParserRule getConjunctionRule() {
1716 return getConjunctionAccess().getRule();
1717 }
1718
1719 //Literal:
1720 // Atom | NegativeLiteral;
1721 public LiteralElements getLiteralAccess() {
1722 return pLiteral;
1723 }
1724
1725 public ParserRule getLiteralRule() {
1726 return getLiteralAccess().getRule();
1727 }
1728
1729 //NegativeLiteral:
1730 // "!" atom=Atom;
1731 public NegativeLiteralElements getNegativeLiteralAccess() {
1732 return pNegativeLiteral;
1733 }
1734
1735 public ParserRule getNegativeLiteralRule() {
1736 return getNegativeLiteralAccess().getRule();
1737 }
1738
1739 //Atom:
1740 // relation=[Relation|QualifiedName]
1741 // transitiveClosure?="+"?
1742 // "(" (arguments+=Argument ("," arguments+=Argument)*)? ")";
1743 public AtomElements getAtomAccess() {
1744 return pAtom;
1745 }
1746
1747 public ParserRule getAtomRule() {
1748 return getAtomAccess().getRule();
1749 }
1750
1751 //Argument:
1752 // VariableOrNodeArgument | ConstantArgument;
1753 public ArgumentElements getArgumentAccess() {
1754 return pArgument;
1755 }
1756
1757 public ParserRule getArgumentRule() {
1758 return getArgumentAccess().getRule();
1759 }
1760
1761 //VariableOrNodeArgument:
1762 // variableOrNode=[VariableOrNode|QualifiedName];
1763 public VariableOrNodeArgumentElements getVariableOrNodeArgumentAccess() {
1764 return pVariableOrNodeArgument;
1765 }
1766
1767 public ParserRule getVariableOrNodeArgumentRule() {
1768 return getVariableOrNodeArgumentAccess().getRule();
1769 }
1770
1771 //ConstantArgument:
1772 // constant=Constant;
1773 public ConstantArgumentElements getConstantArgumentAccess() {
1774 return pConstantArgument;
1775 }
1776
1777 public ParserRule getConstantArgumentRule() {
1778 return getConstantArgumentAccess().getRule();
1779 }
1780
1781 //Assertion:
1782 // (relation=[Relation|QualifiedName]
1783 // "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")"
1784 // ":" value=LogicValue |
1785 // value=ShortLogicValue?
1786 // relation=[Relation|QualifiedName]
1787 // "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")")
1788 // ".";
1789 public AssertionElements getAssertionAccess() {
1790 return pAssertion;
1791 }
1792
1793 public ParserRule getAssertionRule() {
1794 return getAssertionAccess().getRule();
1795 }
1796
1797 //AssertionArgument:
1798 // NodeAssertionArgument | ConstantAssertionArgument;
1799 public AssertionArgumentElements getAssertionArgumentAccess() {
1800 return pAssertionArgument;
1801 }
1802
1803 public ParserRule getAssertionArgumentRule() {
1804 return getAssertionArgumentAccess().getRule();
1805 }
1806
1807 //NodeAssertionArgument:
1808 // node=[Node|QualifiedName];
1809 public NodeAssertionArgumentElements getNodeAssertionArgumentAccess() {
1810 return pNodeAssertionArgument;
1811 }
1812
1813 public ParserRule getNodeAssertionArgumentRule() {
1814 return getNodeAssertionArgumentAccess().getRule();
1815 }
1816
1817 //ConstantAssertionArgument:
1818 // constant=Constant;
1819 public ConstantAssertionArgumentElements getConstantAssertionArgumentAccess() {
1820 return pConstantAssertionArgument;
1821 }
1822
1823 public ParserRule getConstantAssertionArgumentRule() {
1824 return getConstantAssertionArgumentAccess().getRule();
1825 }
1826
1827 //enum LogicValue:
1828 // TRUE="true" | FALSE="false" | UNKNOWN="unknown";
1829 public LogicValueElements getLogicValueAccess() {
1830 return eLogicValue;
1831 }
1832
1833 public EnumRule getLogicValueRule() {
1834 return getLogicValueAccess().getRule();
1835 }
1836
1837 //enum ShortLogicValue returns LogicValue:
1838 // FALSE="!" | UNKNOWN="?";
1839 public ShortLogicValueElements getShortLogicValueAccess() {
1840 return eShortLogicValue;
1841 }
1842
1843 public EnumRule getShortLogicValueRule() {
1844 return getShortLogicValueAccess().getRule();
1845 }
1846
1847 //NodeValueAssertion:
1848 // node=[Node|QualifiedName] ":" value=Constant ".";
1849 public NodeValueAssertionElements getNodeValueAssertionAccess() {
1850 return pNodeValueAssertion;
1851 }
1852
1853 public ParserRule getNodeValueAssertionRule() {
1854 return getNodeValueAssertionAccess().getRule();
1855 }
1856
1857 //Constant:
1858 // RealConstant | IntConstant | StringConstant;
1859 public ConstantElements getConstantAccess() {
1860 return pConstant;
1861 }
1862
1863 public ParserRule getConstantRule() {
1864 return getConstantAccess().getRule();
1865 }
1866
1867 //IntConstant:
1868 // intValue=Integer;
1869 public IntConstantElements getIntConstantAccess() {
1870 return pIntConstant;
1871 }
1872
1873 public ParserRule getIntConstantRule() {
1874 return getIntConstantAccess().getRule();
1875 }
1876
1877 //RealConstant:
1878 // realValue=Real;
1879 public RealConstantElements getRealConstantAccess() {
1880 return pRealConstant;
1881 }
1882
1883 public ParserRule getRealConstantRule() {
1884 return getRealConstantAccess().getRule();
1885 }
1886
1887 //StringConstant:
1888 // stringValue=STRING;
1889 public StringConstantElements getStringConstantAccess() {
1890 return pStringConstant;
1891 }
1892
1893 public ParserRule getStringConstantRule() {
1894 return getStringConstantAccess().getRule();
1895 }
1896
1897 //ScopeDeclaration:
1898 // "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* ".";
1899 public ScopeDeclarationElements getScopeDeclarationAccess() {
1900 return pScopeDeclaration;
1901 }
1902
1903 public ParserRule getScopeDeclarationRule() {
1904 return getScopeDeclarationAccess().getRule();
1905 }
1906
1907 //TypeScope:
1908 // targetType=[ClassDeclaration]
1909 // (increment?="+=" | "=")
1910 // multiplicity=DefiniteMultiplicity;
1911 public TypeScopeElements getTypeScopeAccess() {
1912 return pTypeScope;
1913 }
1914
1915 public ParserRule getTypeScopeRule() {
1916 return getTypeScopeAccess().getRule();
1917 }
1918
1919 //Multiplicity:
1920 // UnboundedMultiplicity | DefiniteMultiplicity;
1921 public MultiplicityElements getMultiplicityAccess() {
1922 return pMultiplicity;
1923 }
1924
1925 public ParserRule getMultiplicityRule() {
1926 return getMultiplicityAccess().getRule();
1927 }
1928
1929 //DefiniteMultiplicity returns Multiplicity:
1930 // RangeMultiplicity | ExactMultiplicity;
1931 public DefiniteMultiplicityElements getDefiniteMultiplicityAccess() {
1932 return pDefiniteMultiplicity;
1933 }
1934
1935 public ParserRule getDefiniteMultiplicityRule() {
1936 return getDefiniteMultiplicityAccess().getRule();
1937 }
1938
1939 //UnboundedMultiplicity:
1940 // {UnboundedMultiplicity};
1941 public UnboundedMultiplicityElements getUnboundedMultiplicityAccess() {
1942 return pUnboundedMultiplicity;
1943 }
1944
1945 public ParserRule getUnboundedMultiplicityRule() {
1946 return getUnboundedMultiplicityAccess().getRule();
1947 }
1948
1949 //RangeMultiplicity:
1950 // lowerBound=INT ".." upperBound=UpperBound;
1951 public RangeMultiplicityElements getRangeMultiplicityAccess() {
1952 return pRangeMultiplicity;
1953 }
1954
1955 public ParserRule getRangeMultiplicityRule() {
1956 return getRangeMultiplicityAccess().getRule();
1957 }
1958
1959 //ExactMultiplicity:
1960 // exactValue=INT;
1961 public ExactMultiplicityElements getExactMultiplicityAccess() {
1962 return pExactMultiplicity;
1963 }
1964
1965 public ParserRule getExactMultiplicityRule() {
1966 return getExactMultiplicityAccess().getRule();
1967 }
1968
1969 //UpperBound returns ecore::EInt:
1970 // INT | "*";
1971 public UpperBoundElements getUpperBoundAccess() {
1972 return pUpperBound;
1973 }
1974
1975 public ParserRule getUpperBoundRule() {
1976 return getUpperBoundAccess().getRule();
1977 }
1978
1979 //QualifiedName hidden():
1980 // QUOTED_ID | Identifier ("::" Identifier)*;
1981 public QualifiedNameElements getQualifiedNameAccess() {
1982 return pQualifiedName;
1983 }
1984
1985 public ParserRule getQualifiedNameRule() {
1986 return getQualifiedNameAccess().getRule();
1987 }
1988
1989 //Identifier:
1990 // ID | "true" | "false";
1991 public IdentifierElements getIdentifierAccess() {
1992 return pIdentifier;
1993 }
1994
1995 public ParserRule getIdentifierRule() {
1996 return getIdentifierAccess().getRule();
1997 }
1998
1999 //Integer returns ecore::EInt hidden():
2000 // "-"? INT;
2001 public IntegerElements getIntegerAccess() {
2002 return pInteger;
2003 }
2004
2005 public ParserRule getIntegerRule() {
2006 return getIntegerAccess().getRule();
2007 }
2008
2009 //Real returns ecore::EDouble:
2010 // "-"? (EXPONENTIAL | INT "." (INT | EXPONENTIAL));
2011 public RealElements getRealAccess() {
2012 return pReal;
2013 }
2014
2015 public ParserRule getRealRule() {
2016 return getRealAccess().getRule();
2017 }
2018
2019 //@Override
2020 //terminal ID:
2021 // ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
2022 public TerminalRule getIDRule() {
2023 return tID;
2024 }
2025
2026 //terminal EXPONENTIAL:
2027 // INT ("e" | "E") ("+" | "-")? INT;
2028 public TerminalRule getEXPONENTIALRule() {
2029 return tEXPONENTIAL;
2030 }
2031
2032 //@Override
2033 //terminal STRING:
2034 // '"' ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | '"'))* '"';
2035 public TerminalRule getSTRINGRule() {
2036 return tSTRING;
2037 }
2038
2039 //terminal QUOTED_ID:
2040 // "'" ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | "'"))* "'";
2041 public TerminalRule getQUOTED_IDRule() {
2042 return tQUOTED_ID;
2043 }
2044
2045 //@Override
2046 //terminal SL_COMMENT:
2047 // ('%' | '//') !('\n' | '\r')* ('\r'? '\n')?;
2048 public TerminalRule getSL_COMMENTRule() {
2049 return tSL_COMMENT;
2050 }
2051
2052 //terminal INT returns ecore::EInt: ('0'..'9')+;
2053 public TerminalRule getINTRule() {
2054 return gaTerminals.getINTRule();
2055 }
2056
2057 //terminal ML_COMMENT : '/*' -> '*/';
2058 public TerminalRule getML_COMMENTRule() {
2059 return gaTerminals.getML_COMMENTRule();
2060 }
2061
2062 //terminal WS : (' '|'\t'|'\r'|'\n')+;
2063 public TerminalRule getWSRule() {
2064 return gaTerminals.getWSRule();
2065 }
2066
2067 //terminal ANY_OTHER: .;
2068 public TerminalRule getANY_OTHERRule() {
2069 return gaTerminals.getANY_OTHERRule();
2070 }
2071}
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
deleted file mode 100644
index 9cd73e1e..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/AbstractProblemValidator.java
+++ /dev/null
@@ -1,19 +0,0 @@
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
deleted file mode 100644
index f5a0d87d..00000000
--- a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/validation/ProblemConfigurableIssueCodesProvider.java
+++ /dev/null
@@ -1,22 +0,0 @@
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/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
deleted file mode 100644
index 7d0ef1bb..00000000
--- a/language/src/test/xtext-gen/org/eclipse/viatra/solver/language/tests/ProblemInjectorProvider.java
+++ /dev/null
@@ -1,69 +0,0 @@
1/*
2 * generated by Xtext 2.26.0.M1
3 */
4package org.eclipse.viatra.solver.language.tests;
5
6import com.google.inject.Guice;
7import com.google.inject.Injector;
8import org.eclipse.viatra.solver.language.ProblemRuntimeModule;
9import org.eclipse.viatra.solver.language.ProblemStandaloneSetup;
10import org.eclipse.xtext.testing.GlobalRegistries;
11import org.eclipse.xtext.testing.GlobalRegistries.GlobalStateMemento;
12import org.eclipse.xtext.testing.IInjectorProvider;
13import org.eclipse.xtext.testing.IRegistryConfigurator;
14
15public class ProblemInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
16
17 protected GlobalStateMemento stateBeforeInjectorCreation;
18 protected GlobalStateMemento stateAfterInjectorCreation;
19 protected Injector injector;
20
21 static {
22 GlobalRegistries.initializeDefaults();
23 }
24
25 @Override
26 public Injector getInjector() {
27 if (injector == null) {
28 this.injector = internalCreateInjector();
29 stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
30 }
31 return injector;
32 }
33
34 protected Injector internalCreateInjector() {
35 return new ProblemStandaloneSetup() {
36 @Override
37 public Injector createInjector() {
38 return Guice.createInjector(createRuntimeModule());
39 }
40 }.createInjectorAndDoEMFRegistration();
41 }
42
43 protected ProblemRuntimeModule createRuntimeModule() {
44 // make it work also with Maven/Tycho and OSGI
45 // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=493672
46 return new ProblemRuntimeModule() {
47 @Override
48 public ClassLoader bindClassLoaderToInstance() {
49 return ProblemInjectorProvider.class
50 .getClassLoader();
51 }
52 };
53 }
54
55 @Override
56 public void restoreRegistry() {
57 stateBeforeInjectorCreation.restoreGlobalState();
58 stateBeforeInjectorCreation = null;
59 }
60
61 @Override
62 public void setupRegistry() {
63 stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
64 if (injector == null) {
65 getInjector();
66 }
67 stateAfterInjectorCreation.restoreGlobalState();
68 }
69}