aboutsummaryrefslogtreecommitdiffstats
path: root/language
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <marussy@mit.bme.hu>2021-06-28 17:16:56 +0200
committerLibravatar Kristóf Marussy <marussy@mit.bme.hu>2021-06-28 17:16:56 +0200
commit82a2ca3c963e47611d1ba55f6938e7665488fc5a (patch)
tree6913165e6941526730c60f2cd3ed6678c387df44 /language
parentAdd scoping tests and simplify implicit nodes (diff)
downloadrefinery-82a2ca3c963e47611d1ba55f6938e7665488fc5a.tar.gz
refinery-82a2ca3c963e47611d1ba55f6938e7665488fc5a.tar.zst
refinery-82a2ca3c963e47611d1ba55f6938e7665488fc5a.zip
Fix real literals
Diffstat (limited to 'language')
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext11
-rw-r--r--language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem2
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbinbin7550 -> 7566 bytes
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g111
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens81
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java999
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java972
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java128
-rw-r--r--language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend46
-rw-r--r--language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemScopingTest.xtend33
-rw-r--r--language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemTestUtil.xtend10
11 files changed, 1077 insertions, 1316 deletions
diff --git a/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext b/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext
index 495f50e4..4aeb0acd 100644
--- a/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext
@@ -92,7 +92,7 @@ NodeValueAssertion:
92 node=[Node|QualifiedName] ":" value=Constant "."; 92 node=[Node|QualifiedName] ":" value=Constant ".";
93 93
94Constant: 94Constant:
95 IntConstant | RealConstant | StringConstant; 95 RealConstant | IntConstant | StringConstant;
96 96
97IntConstant: 97IntConstant:
98 intValue=Integer; 98 intValue=Integer;
@@ -133,18 +133,21 @@ QualifiedName hidden():
133 QUOTED_ID | Identifier ("::" Identifier)*; 133 QUOTED_ID | Identifier ("::" Identifier)*;
134 134
135Identifier: 135Identifier:
136 ID | "true" | "false" | "e" | "E"; 136 ID | "true" | "false";
137 137
138Integer returns ecore::EInt hidden(): 138Integer returns ecore::EInt hidden():
139 "-"? INT; 139 "-"? INT;
140 140
141Real returns ecore::EDouble hidden(): 141Real returns ecore::EDouble:
142 "-"? INT ("." INT | ("." INT)? ("e" | "E") ("-" | "+")? INT); 142 "-"? (EXPONENTIAL | INT "." (INT | EXPONENTIAL));
143 143
144@Override 144@Override
145terminal ID: 145terminal ID:
146 ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; 146 ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
147 147
148terminal EXPONENTIAL:
149 INT ("e" | "E") ("+" | "-")? INT;
150
148@Override 151@Override
149terminal STRING: 152terminal STRING:
150 '"' ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | '"'))* '"'; 153 '"' ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | '"'))* '"';
diff --git a/language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem b/language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem
index 7ece2db0..7c4f6685 100644
--- a/language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem
+++ b/language/src/main/resources/org/eclipse/viatra/solver/language/builtin.problem
@@ -16,6 +16,6 @@ enum bool {
16 16
17class real extends data. 17class real extends data.
18 18
19class int extends real. 19class int extends data.
20 20
21class string extends data. 21class string extends data.
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
index 9528b778..0b613873 100644
--- 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
Binary files differ
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
index f9372e7b..583f8c1c 100644
--- 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
@@ -1596,20 +1596,20 @@ ruleConstant returns [EObject current=null]
1596}: 1596}:
1597 ( 1597 (
1598 { 1598 {
1599 newCompositeNode(grammarAccess.getConstantAccess().getIntConstantParserRuleCall_0()); 1599 newCompositeNode(grammarAccess.getConstantAccess().getRealConstantParserRuleCall_0());
1600 } 1600 }
1601 this_IntConstant_0=ruleIntConstant 1601 this_RealConstant_0=ruleRealConstant
1602 { 1602 {
1603 $current = $this_IntConstant_0.current; 1603 $current = $this_RealConstant_0.current;
1604 afterParserOrEnumRuleCall(); 1604 afterParserOrEnumRuleCall();
1605 } 1605 }
1606 | 1606 |
1607 { 1607 {
1608 newCompositeNode(grammarAccess.getConstantAccess().getRealConstantParserRuleCall_1()); 1608 newCompositeNode(grammarAccess.getConstantAccess().getIntConstantParserRuleCall_1());
1609 } 1609 }
1610 this_RealConstant_1=ruleRealConstant 1610 this_IntConstant_1=ruleIntConstant
1611 { 1611 {
1612 $current = $this_RealConstant_1.current; 1612 $current = $this_IntConstant_1.current;
1613 afterParserOrEnumRuleCall(); 1613 afterParserOrEnumRuleCall();
1614 } 1614 }
1615 | 1615 |
@@ -2197,18 +2197,6 @@ ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToke
2197 $current.merge(kw); 2197 $current.merge(kw);
2198 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2()); 2198 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
2199 } 2199 }
2200 |
2201 kw='e'
2202 {
2203 $current.merge(kw);
2204 newLeafNode(kw, grammarAccess.getIdentifierAccess().getEKeyword_3());
2205 }
2206 |
2207 kw='E'
2208 {
2209 $current.merge(kw);
2210 newLeafNode(kw, grammarAccess.getIdentifierAccess().getEKeyword_4());
2211 }
2212 ) 2200 )
2213; 2201;
2214 2202
@@ -2255,22 +2243,16 @@ finally {
2255} 2243}
2256 2244
2257// Entry rule entryRuleReal 2245// Entry rule entryRuleReal
2258entryRuleReal returns [String current=null]@init { 2246entryRuleReal returns [String current=null]:
2259 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
2260}:
2261 { newCompositeNode(grammarAccess.getRealRule()); } 2247 { newCompositeNode(grammarAccess.getRealRule()); }
2262 iv_ruleReal=ruleReal 2248 iv_ruleReal=ruleReal
2263 { $current=$iv_ruleReal.current.getText(); } 2249 { $current=$iv_ruleReal.current.getText(); }
2264 EOF; 2250 EOF;
2265finally {
2266 myHiddenTokenState.restore();
2267}
2268 2251
2269// Rule Real 2252// Rule Real
2270ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 2253ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
2271@init { 2254@init {
2272 enterRule(); 2255 enterRule();
2273 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
2274} 2256}
2275@after { 2257@after {
2276 leaveRule(); 2258 leaveRule();
@@ -2283,84 +2265,49 @@ ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
2283 newLeafNode(kw, grammarAccess.getRealAccess().getHyphenMinusKeyword_0()); 2265 newLeafNode(kw, grammarAccess.getRealAccess().getHyphenMinusKeyword_0());
2284 } 2266 }
2285 )? 2267 )?
2286 this_INT_1=RULE_INT
2287 {
2288 $current.merge(this_INT_1);
2289 }
2290 {
2291 newLeafNode(this_INT_1, grammarAccess.getRealAccess().getINTTerminalRuleCall_1());
2292 }
2293 ( 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 |
2294 ( 2277 (
2295 kw='.' 2278 this_INT_2=RULE_INT
2296 { 2279 {
2297 $current.merge(kw); 2280 $current.merge(this_INT_2);
2298 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_2_0_0());
2299 } 2281 }
2300 this_INT_3=RULE_INT
2301 { 2282 {
2302 $current.merge(this_INT_3); 2283 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1_0());
2303 } 2284 }
2285 kw='.'
2304 { 2286 {
2305 newLeafNode(this_INT_3, grammarAccess.getRealAccess().getINTTerminalRuleCall_2_0_1()); 2287 $current.merge(kw);
2288 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_1_1());
2306 } 2289 }
2307 )
2308 |
2309 (
2310 ( 2290 (
2311 kw='.' 2291 this_INT_4=RULE_INT
2312 {
2313 $current.merge(kw);
2314 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_2_1_0_0());
2315 }
2316 this_INT_5=RULE_INT
2317 { 2292 {
2318 $current.merge(this_INT_5); 2293 $current.merge(this_INT_4);
2319 } 2294 }
2320 { 2295 {
2321 newLeafNode(this_INT_5, grammarAccess.getRealAccess().getINTTerminalRuleCall_2_1_0_1()); 2296 newLeafNode(this_INT_4, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1_2_0());
2322 }
2323 )?
2324 (
2325 kw='e'
2326 {
2327 $current.merge(kw);
2328 newLeafNode(kw, grammarAccess.getRealAccess().getEKeyword_2_1_1_0());
2329 } 2297 }
2330 | 2298 |
2331 kw='E' 2299 this_EXPONENTIAL_5=RULE_EXPONENTIAL
2332 {
2333 $current.merge(kw);
2334 newLeafNode(kw, grammarAccess.getRealAccess().getEKeyword_2_1_1_1());
2335 }
2336 )
2337 (
2338 kw='-'
2339 { 2300 {
2340 $current.merge(kw); 2301 $current.merge(this_EXPONENTIAL_5);
2341 newLeafNode(kw, grammarAccess.getRealAccess().getHyphenMinusKeyword_2_1_2_0());
2342 } 2302 }
2343 |
2344 kw='+'
2345 { 2303 {
2346 $current.merge(kw); 2304 newLeafNode(this_EXPONENTIAL_5, grammarAccess.getRealAccess().getEXPONENTIALTerminalRuleCall_1_1_2_1());
2347 newLeafNode(kw, grammarAccess.getRealAccess().getPlusSignKeyword_2_1_2_1());
2348 } 2305 }
2349 )? 2306 )
2350 this_INT_10=RULE_INT
2351 {
2352 $current.merge(this_INT_10);
2353 }
2354 {
2355 newLeafNode(this_INT_10, grammarAccess.getRealAccess().getINTTerminalRuleCall_2_1_3());
2356 }
2357 ) 2307 )
2358 ) 2308 )
2359 ) 2309 )
2360; 2310;
2361finally {
2362 myHiddenTokenState.restore();
2363}
2364 2311
2365// Rule LogicValue 2312// Rule LogicValue
2366ruleLogicValue returns [Enumerator current=null] 2313ruleLogicValue returns [Enumerator current=null]
@@ -2426,6 +2373,8 @@ ruleShortLogicValue returns [Enumerator current=null]
2426 2373
2427RULE_ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; 2374RULE_ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
2428 2375
2376RULE_EXPONENTIAL : RULE_INT ('e'|'E') ('+'|'-')? RULE_INT;
2377
2429RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"'; 2378RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"';
2430 2379
2431RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\''; 2380RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\'';
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
index 763a9cc8..7ceb60d6 100644
--- 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
@@ -1,48 +1,46 @@
1'!'=32 1'!'=33
2'('=29 2'('=30
3')'=30 3')'=31
4'*'=39 4'*'=40
5'+'=33 5'+'=34
6'+='=36 6'+='=37
7','=17 7','=18
8'-'=45 8'-'=44
9'.'=13 9'.'=14
10'..'=38 10'..'=39
11':'=34 11':'=35
12':-'=31 12':-'=32
13'::'=40 13'::'=41
14';'=19 14';'=20
15'='=37 15'='=38
16'?'=47 16'?'=46
17'E'=44 17'['=25
18'['=24 18']'=26
19']'=25 19'abstract'=15
20'abstract'=14 20'class'=16
21'class'=15 21'contains'=23
22'contains'=22 22'enum'=22
23'e'=43 23'error'=28
24'enum'=21 24'extends'=17
25'error'=27 25'false'=43
26'extends'=16 26'opposite'=27
27'false'=42 27'pred'=29
28'opposite'=26 28'problem'=13
29'pred'=28 29'refers'=24
30'problem'=12 30'scope'=36
31'refers'=23 31'true'=42
32'scope'=35 32'unknown'=45
33'true'=41 33'{'=19
34'unknown'=46 34'}'=21
35'{'=18 35RULE_ANY_OTHER=12
36'}'=20 36RULE_EXPONENTIAL=8
37RULE_ANY_OTHER=11
38RULE_ID=5 37RULE_ID=5
39RULE_INT=6 38RULE_INT=6
40RULE_ML_COMMENT=9 39RULE_ML_COMMENT=10
41RULE_QUOTED_ID=7 40RULE_QUOTED_ID=7
42RULE_SL_COMMENT=8 41RULE_SL_COMMENT=9
43RULE_STRING=4 42RULE_STRING=4
44RULE_WS=10 43RULE_WS=11
45T__12=12
46T__13=13 44T__13=13
47T__14=14 45T__14=14
48T__15=15 46T__15=15
@@ -77,4 +75,3 @@ T__43=43
77T__44=44 75T__44=44
78T__45=45 76T__45=45
79T__46=46 77T__46=46
80T__47=47
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
index 8adc6935..cc9b39b6 100644
--- 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
@@ -17,9 +17,9 @@ public class InternalProblemLexer extends Lexer {
17 public static final int T__16=16; 17 public static final int T__16=16;
18 public static final int T__17=17; 18 public static final int T__17=17;
19 public static final int T__18=18; 19 public static final int T__18=18;
20 public static final int T__12=12;
21 public static final int T__13=13; 20 public static final int T__13=13;
22 public static final int T__14=14; 21 public static final int T__14=14;
22 public static final int RULE_EXPONENTIAL=8;
23 public static final int RULE_ID=5; 23 public static final int RULE_ID=5;
24 public static final int RULE_QUOTED_ID=7; 24 public static final int RULE_QUOTED_ID=7;
25 public static final int T__26=26; 25 public static final int T__26=26;
@@ -28,14 +28,14 @@ public class InternalProblemLexer extends Lexer {
28 public static final int RULE_INT=6; 28 public static final int RULE_INT=6;
29 public static final int T__29=29; 29 public static final int T__29=29;
30 public static final int T__22=22; 30 public static final int T__22=22;
31 public static final int RULE_ML_COMMENT=9; 31 public static final int RULE_ML_COMMENT=10;
32 public static final int T__23=23; 32 public static final int T__23=23;
33 public static final int T__24=24; 33 public static final int T__24=24;
34 public static final int T__25=25; 34 public static final int T__25=25;
35 public static final int T__20=20; 35 public static final int T__20=20;
36 public static final int T__21=21; 36 public static final int T__21=21;
37 public static final int RULE_STRING=4; 37 public static final int RULE_STRING=4;
38 public static final int RULE_SL_COMMENT=8; 38 public static final int RULE_SL_COMMENT=9;
39 public static final int T__37=37; 39 public static final int T__37=37;
40 public static final int T__38=38; 40 public static final int T__38=38;
41 public static final int T__39=39; 41 public static final int T__39=39;
@@ -47,12 +47,11 @@ public class InternalProblemLexer extends Lexer {
47 public static final int T__30=30; 47 public static final int T__30=30;
48 public static final int T__31=31; 48 public static final int T__31=31;
49 public static final int T__32=32; 49 public static final int T__32=32;
50 public static final int RULE_WS=10; 50 public static final int RULE_WS=11;
51 public static final int RULE_ANY_OTHER=11; 51 public static final int RULE_ANY_OTHER=12;
52 public static final int T__44=44; 52 public static final int T__44=44;
53 public static final int T__45=45; 53 public static final int T__45=45;
54 public static final int T__46=46; 54 public static final int T__46=46;
55 public static final int T__47=47;
56 public static final int T__40=40; 55 public static final int T__40=40;
57 public static final int T__41=41; 56 public static final int T__41=41;
58 public static final int T__42=42; 57 public static final int T__42=42;
@@ -71,10 +70,10 @@ public class InternalProblemLexer extends Lexer {
71 } 70 }
72 public String getGrammarFileName() { return "InternalProblem.g"; } 71 public String getGrammarFileName() { return "InternalProblem.g"; }
73 72
74 // $ANTLR start "T__12" 73 // $ANTLR start "T__13"
75 public final void mT__12() throws RecognitionException { 74 public final void mT__13() throws RecognitionException {
76 try { 75 try {
77 int _type = T__12; 76 int _type = T__13;
78 int _channel = DEFAULT_TOKEN_CHANNEL; 77 int _channel = DEFAULT_TOKEN_CHANNEL;
79 // InternalProblem.g:11:7: ( 'problem' ) 78 // InternalProblem.g:11:7: ( 'problem' )
80 // InternalProblem.g:11:9: 'problem' 79 // InternalProblem.g:11:9: 'problem'
@@ -90,26 +89,6 @@ public class InternalProblemLexer extends Lexer {
90 finally { 89 finally {
91 } 90 }
92 } 91 }
93 // $ANTLR end "T__12"
94
95 // $ANTLR start "T__13"
96 public final void mT__13() throws RecognitionException {
97 try {
98 int _type = T__13;
99 int _channel = DEFAULT_TOKEN_CHANNEL;
100 // InternalProblem.g:12:7: ( '.' )
101 // InternalProblem.g:12:9: '.'
102 {
103 match('.');
104
105 }
106
107 state.type = _type;
108 state.channel = _channel;
109 }
110 finally {
111 }
112 }
113 // $ANTLR end "T__13" 92 // $ANTLR end "T__13"
114 93
115 // $ANTLR start "T__14" 94 // $ANTLR start "T__14"
@@ -117,11 +96,10 @@ public class InternalProblemLexer extends Lexer {
117 try { 96 try {
118 int _type = T__14; 97 int _type = T__14;
119 int _channel = DEFAULT_TOKEN_CHANNEL; 98 int _channel = DEFAULT_TOKEN_CHANNEL;
120 // InternalProblem.g:13:7: ( 'abstract' ) 99 // InternalProblem.g:12:7: ( '.' )
121 // InternalProblem.g:13:9: 'abstract' 100 // InternalProblem.g:12:9: '.'
122 { 101 {
123 match("abstract"); 102 match('.');
124
125 103
126 } 104 }
127 105
@@ -138,10 +116,10 @@ public class InternalProblemLexer extends Lexer {
138 try { 116 try {
139 int _type = T__15; 117 int _type = T__15;
140 int _channel = DEFAULT_TOKEN_CHANNEL; 118 int _channel = DEFAULT_TOKEN_CHANNEL;
141 // InternalProblem.g:14:7: ( 'class' ) 119 // InternalProblem.g:13:7: ( 'abstract' )
142 // InternalProblem.g:14:9: 'class' 120 // InternalProblem.g:13:9: 'abstract'
143 { 121 {
144 match("class"); 122 match("abstract");
145 123
146 124
147 } 125 }
@@ -159,10 +137,10 @@ public class InternalProblemLexer extends Lexer {
159 try { 137 try {
160 int _type = T__16; 138 int _type = T__16;
161 int _channel = DEFAULT_TOKEN_CHANNEL; 139 int _channel = DEFAULT_TOKEN_CHANNEL;
162 // InternalProblem.g:15:7: ( 'extends' ) 140 // InternalProblem.g:14:7: ( 'class' )
163 // InternalProblem.g:15:9: 'extends' 141 // InternalProblem.g:14:9: 'class'
164 { 142 {
165 match("extends"); 143 match("class");
166 144
167 145
168 } 146 }
@@ -180,10 +158,11 @@ public class InternalProblemLexer extends Lexer {
180 try { 158 try {
181 int _type = T__17; 159 int _type = T__17;
182 int _channel = DEFAULT_TOKEN_CHANNEL; 160 int _channel = DEFAULT_TOKEN_CHANNEL;
183 // InternalProblem.g:16:7: ( ',' ) 161 // InternalProblem.g:15:7: ( 'extends' )
184 // InternalProblem.g:16:9: ',' 162 // InternalProblem.g:15:9: 'extends'
185 { 163 {
186 match(','); 164 match("extends");
165
187 166
188 } 167 }
189 168
@@ -200,10 +179,10 @@ public class InternalProblemLexer extends Lexer {
200 try { 179 try {
201 int _type = T__18; 180 int _type = T__18;
202 int _channel = DEFAULT_TOKEN_CHANNEL; 181 int _channel = DEFAULT_TOKEN_CHANNEL;
203 // InternalProblem.g:17:7: ( '{' ) 182 // InternalProblem.g:16:7: ( ',' )
204 // InternalProblem.g:17:9: '{' 183 // InternalProblem.g:16:9: ','
205 { 184 {
206 match('{'); 185 match(',');
207 186
208 } 187 }
209 188
@@ -220,10 +199,10 @@ public class InternalProblemLexer extends Lexer {
220 try { 199 try {
221 int _type = T__19; 200 int _type = T__19;
222 int _channel = DEFAULT_TOKEN_CHANNEL; 201 int _channel = DEFAULT_TOKEN_CHANNEL;
223 // InternalProblem.g:18:7: ( ';' ) 202 // InternalProblem.g:17:7: ( '{' )
224 // InternalProblem.g:18:9: ';' 203 // InternalProblem.g:17:9: '{'
225 { 204 {
226 match(';'); 205 match('{');
227 206
228 } 207 }
229 208
@@ -240,10 +219,10 @@ public class InternalProblemLexer extends Lexer {
240 try { 219 try {
241 int _type = T__20; 220 int _type = T__20;
242 int _channel = DEFAULT_TOKEN_CHANNEL; 221 int _channel = DEFAULT_TOKEN_CHANNEL;
243 // InternalProblem.g:19:7: ( '}' ) 222 // InternalProblem.g:18:7: ( ';' )
244 // InternalProblem.g:19:9: '}' 223 // InternalProblem.g:18:9: ';'
245 { 224 {
246 match('}'); 225 match(';');
247 226
248 } 227 }
249 228
@@ -260,11 +239,10 @@ public class InternalProblemLexer extends Lexer {
260 try { 239 try {
261 int _type = T__21; 240 int _type = T__21;
262 int _channel = DEFAULT_TOKEN_CHANNEL; 241 int _channel = DEFAULT_TOKEN_CHANNEL;
263 // InternalProblem.g:20:7: ( 'enum' ) 242 // InternalProblem.g:19:7: ( '}' )
264 // InternalProblem.g:20:9: 'enum' 243 // InternalProblem.g:19:9: '}'
265 { 244 {
266 match("enum"); 245 match('}');
267
268 246
269 } 247 }
270 248
@@ -281,10 +259,10 @@ public class InternalProblemLexer extends Lexer {
281 try { 259 try {
282 int _type = T__22; 260 int _type = T__22;
283 int _channel = DEFAULT_TOKEN_CHANNEL; 261 int _channel = DEFAULT_TOKEN_CHANNEL;
284 // InternalProblem.g:21:7: ( 'contains' ) 262 // InternalProblem.g:20:7: ( 'enum' )
285 // InternalProblem.g:21:9: 'contains' 263 // InternalProblem.g:20:9: 'enum'
286 { 264 {
287 match("contains"); 265 match("enum");
288 266
289 267
290 } 268 }
@@ -302,10 +280,10 @@ public class InternalProblemLexer extends Lexer {
302 try { 280 try {
303 int _type = T__23; 281 int _type = T__23;
304 int _channel = DEFAULT_TOKEN_CHANNEL; 282 int _channel = DEFAULT_TOKEN_CHANNEL;
305 // InternalProblem.g:22:7: ( 'refers' ) 283 // InternalProblem.g:21:7: ( 'contains' )
306 // InternalProblem.g:22:9: 'refers' 284 // InternalProblem.g:21:9: 'contains'
307 { 285 {
308 match("refers"); 286 match("contains");
309 287
310 288
311 } 289 }
@@ -323,10 +301,11 @@ public class InternalProblemLexer extends Lexer {
323 try { 301 try {
324 int _type = T__24; 302 int _type = T__24;
325 int _channel = DEFAULT_TOKEN_CHANNEL; 303 int _channel = DEFAULT_TOKEN_CHANNEL;
326 // InternalProblem.g:23:7: ( '[' ) 304 // InternalProblem.g:22:7: ( 'refers' )
327 // InternalProblem.g:23:9: '[' 305 // InternalProblem.g:22:9: 'refers'
328 { 306 {
329 match('['); 307 match("refers");
308
330 309
331 } 310 }
332 311
@@ -343,10 +322,10 @@ public class InternalProblemLexer extends Lexer {
343 try { 322 try {
344 int _type = T__25; 323 int _type = T__25;
345 int _channel = DEFAULT_TOKEN_CHANNEL; 324 int _channel = DEFAULT_TOKEN_CHANNEL;
346 // InternalProblem.g:24:7: ( ']' ) 325 // InternalProblem.g:23:7: ( '[' )
347 // InternalProblem.g:24:9: ']' 326 // InternalProblem.g:23:9: '['
348 { 327 {
349 match(']'); 328 match('[');
350 329
351 } 330 }
352 331
@@ -363,11 +342,10 @@ public class InternalProblemLexer extends Lexer {
363 try { 342 try {
364 int _type = T__26; 343 int _type = T__26;
365 int _channel = DEFAULT_TOKEN_CHANNEL; 344 int _channel = DEFAULT_TOKEN_CHANNEL;
366 // InternalProblem.g:25:7: ( 'opposite' ) 345 // InternalProblem.g:24:7: ( ']' )
367 // InternalProblem.g:25:9: 'opposite' 346 // InternalProblem.g:24:9: ']'
368 { 347 {
369 match("opposite"); 348 match(']');
370
371 349
372 } 350 }
373 351
@@ -384,10 +362,10 @@ public class InternalProblemLexer extends Lexer {
384 try { 362 try {
385 int _type = T__27; 363 int _type = T__27;
386 int _channel = DEFAULT_TOKEN_CHANNEL; 364 int _channel = DEFAULT_TOKEN_CHANNEL;
387 // InternalProblem.g:26:7: ( 'error' ) 365 // InternalProblem.g:25:7: ( 'opposite' )
388 // InternalProblem.g:26:9: 'error' 366 // InternalProblem.g:25:9: 'opposite'
389 { 367 {
390 match("error"); 368 match("opposite");
391 369
392 370
393 } 371 }
@@ -405,10 +383,10 @@ public class InternalProblemLexer extends Lexer {
405 try { 383 try {
406 int _type = T__28; 384 int _type = T__28;
407 int _channel = DEFAULT_TOKEN_CHANNEL; 385 int _channel = DEFAULT_TOKEN_CHANNEL;
408 // InternalProblem.g:27:7: ( 'pred' ) 386 // InternalProblem.g:26:7: ( 'error' )
409 // InternalProblem.g:27:9: 'pred' 387 // InternalProblem.g:26:9: 'error'
410 { 388 {
411 match("pred"); 389 match("error");
412 390
413 391
414 } 392 }
@@ -426,10 +404,11 @@ public class InternalProblemLexer extends Lexer {
426 try { 404 try {
427 int _type = T__29; 405 int _type = T__29;
428 int _channel = DEFAULT_TOKEN_CHANNEL; 406 int _channel = DEFAULT_TOKEN_CHANNEL;
429 // InternalProblem.g:28:7: ( '(' ) 407 // InternalProblem.g:27:7: ( 'pred' )
430 // InternalProblem.g:28:9: '(' 408 // InternalProblem.g:27:9: 'pred'
431 { 409 {
432 match('('); 410 match("pred");
411
433 412
434 } 413 }
435 414
@@ -446,10 +425,10 @@ public class InternalProblemLexer extends Lexer {
446 try { 425 try {
447 int _type = T__30; 426 int _type = T__30;
448 int _channel = DEFAULT_TOKEN_CHANNEL; 427 int _channel = DEFAULT_TOKEN_CHANNEL;
449 // InternalProblem.g:29:7: ( ')' ) 428 // InternalProblem.g:28:7: ( '(' )
450 // InternalProblem.g:29:9: ')' 429 // InternalProblem.g:28:9: '('
451 { 430 {
452 match(')'); 431 match('(');
453 432
454 } 433 }
455 434
@@ -466,11 +445,10 @@ public class InternalProblemLexer extends Lexer {
466 try { 445 try {
467 int _type = T__31; 446 int _type = T__31;
468 int _channel = DEFAULT_TOKEN_CHANNEL; 447 int _channel = DEFAULT_TOKEN_CHANNEL;
469 // InternalProblem.g:30:7: ( ':-' ) 448 // InternalProblem.g:29:7: ( ')' )
470 // InternalProblem.g:30:9: ':-' 449 // InternalProblem.g:29:9: ')'
471 { 450 {
472 match(":-"); 451 match(')');
473
474 452
475 } 453 }
476 454
@@ -487,10 +465,11 @@ public class InternalProblemLexer extends Lexer {
487 try { 465 try {
488 int _type = T__32; 466 int _type = T__32;
489 int _channel = DEFAULT_TOKEN_CHANNEL; 467 int _channel = DEFAULT_TOKEN_CHANNEL;
490 // InternalProblem.g:31:7: ( '!' ) 468 // InternalProblem.g:30:7: ( ':-' )
491 // InternalProblem.g:31:9: '!' 469 // InternalProblem.g:30:9: ':-'
492 { 470 {
493 match('!'); 471 match(":-");
472
494 473
495 } 474 }
496 475
@@ -507,10 +486,10 @@ public class InternalProblemLexer extends Lexer {
507 try { 486 try {
508 int _type = T__33; 487 int _type = T__33;
509 int _channel = DEFAULT_TOKEN_CHANNEL; 488 int _channel = DEFAULT_TOKEN_CHANNEL;
510 // InternalProblem.g:32:7: ( '+' ) 489 // InternalProblem.g:31:7: ( '!' )
511 // InternalProblem.g:32:9: '+' 490 // InternalProblem.g:31:9: '!'
512 { 491 {
513 match('+'); 492 match('!');
514 493
515 } 494 }
516 495
@@ -527,10 +506,10 @@ public class InternalProblemLexer extends Lexer {
527 try { 506 try {
528 int _type = T__34; 507 int _type = T__34;
529 int _channel = DEFAULT_TOKEN_CHANNEL; 508 int _channel = DEFAULT_TOKEN_CHANNEL;
530 // InternalProblem.g:33:7: ( ':' ) 509 // InternalProblem.g:32:7: ( '+' )
531 // InternalProblem.g:33:9: ':' 510 // InternalProblem.g:32:9: '+'
532 { 511 {
533 match(':'); 512 match('+');
534 513
535 } 514 }
536 515
@@ -547,11 +526,10 @@ public class InternalProblemLexer extends Lexer {
547 try { 526 try {
548 int _type = T__35; 527 int _type = T__35;
549 int _channel = DEFAULT_TOKEN_CHANNEL; 528 int _channel = DEFAULT_TOKEN_CHANNEL;
550 // InternalProblem.g:34:7: ( 'scope' ) 529 // InternalProblem.g:33:7: ( ':' )
551 // InternalProblem.g:34:9: 'scope' 530 // InternalProblem.g:33:9: ':'
552 { 531 {
553 match("scope"); 532 match(':');
554
555 533
556 } 534 }
557 535
@@ -568,10 +546,10 @@ public class InternalProblemLexer extends Lexer {
568 try { 546 try {
569 int _type = T__36; 547 int _type = T__36;
570 int _channel = DEFAULT_TOKEN_CHANNEL; 548 int _channel = DEFAULT_TOKEN_CHANNEL;
571 // InternalProblem.g:35:7: ( '+=' ) 549 // InternalProblem.g:34:7: ( 'scope' )
572 // InternalProblem.g:35:9: '+=' 550 // InternalProblem.g:34:9: 'scope'
573 { 551 {
574 match("+="); 552 match("scope");
575 553
576 554
577 } 555 }
@@ -589,10 +567,11 @@ public class InternalProblemLexer extends Lexer {
589 try { 567 try {
590 int _type = T__37; 568 int _type = T__37;
591 int _channel = DEFAULT_TOKEN_CHANNEL; 569 int _channel = DEFAULT_TOKEN_CHANNEL;
592 // InternalProblem.g:36:7: ( '=' ) 570 // InternalProblem.g:35:7: ( '+=' )
593 // InternalProblem.g:36:9: '=' 571 // InternalProblem.g:35:9: '+='
594 { 572 {
595 match('='); 573 match("+=");
574
596 575
597 } 576 }
598 577
@@ -609,11 +588,10 @@ public class InternalProblemLexer extends Lexer {
609 try { 588 try {
610 int _type = T__38; 589 int _type = T__38;
611 int _channel = DEFAULT_TOKEN_CHANNEL; 590 int _channel = DEFAULT_TOKEN_CHANNEL;
612 // InternalProblem.g:37:7: ( '..' ) 591 // InternalProblem.g:36:7: ( '=' )
613 // InternalProblem.g:37:9: '..' 592 // InternalProblem.g:36:9: '='
614 { 593 {
615 match(".."); 594 match('=');
616
617 595
618 } 596 }
619 597
@@ -630,10 +608,11 @@ public class InternalProblemLexer extends Lexer {
630 try { 608 try {
631 int _type = T__39; 609 int _type = T__39;
632 int _channel = DEFAULT_TOKEN_CHANNEL; 610 int _channel = DEFAULT_TOKEN_CHANNEL;
633 // InternalProblem.g:38:7: ( '*' ) 611 // InternalProblem.g:37:7: ( '..' )
634 // InternalProblem.g:38:9: '*' 612 // InternalProblem.g:37:9: '..'
635 { 613 {
636 match('*'); 614 match("..");
615
637 616
638 } 617 }
639 618
@@ -650,11 +629,10 @@ public class InternalProblemLexer extends Lexer {
650 try { 629 try {
651 int _type = T__40; 630 int _type = T__40;
652 int _channel = DEFAULT_TOKEN_CHANNEL; 631 int _channel = DEFAULT_TOKEN_CHANNEL;
653 // InternalProblem.g:39:7: ( '::' ) 632 // InternalProblem.g:38:7: ( '*' )
654 // InternalProblem.g:39:9: '::' 633 // InternalProblem.g:38:9: '*'
655 { 634 {
656 match("::"); 635 match('*');
657
658 636
659 } 637 }
660 638
@@ -671,10 +649,10 @@ public class InternalProblemLexer extends Lexer {
671 try { 649 try {
672 int _type = T__41; 650 int _type = T__41;
673 int _channel = DEFAULT_TOKEN_CHANNEL; 651 int _channel = DEFAULT_TOKEN_CHANNEL;
674 // InternalProblem.g:40:7: ( 'true' ) 652 // InternalProblem.g:39:7: ( '::' )
675 // InternalProblem.g:40:9: 'true' 653 // InternalProblem.g:39:9: '::'
676 { 654 {
677 match("true"); 655 match("::");
678 656
679 657
680 } 658 }
@@ -692,10 +670,10 @@ public class InternalProblemLexer extends Lexer {
692 try { 670 try {
693 int _type = T__42; 671 int _type = T__42;
694 int _channel = DEFAULT_TOKEN_CHANNEL; 672 int _channel = DEFAULT_TOKEN_CHANNEL;
695 // InternalProblem.g:41:7: ( 'false' ) 673 // InternalProblem.g:40:7: ( 'true' )
696 // InternalProblem.g:41:9: 'false' 674 // InternalProblem.g:40:9: 'true'
697 { 675 {
698 match("false"); 676 match("true");
699 677
700 678
701 } 679 }
@@ -713,10 +691,11 @@ public class InternalProblemLexer extends Lexer {
713 try { 691 try {
714 int _type = T__43; 692 int _type = T__43;
715 int _channel = DEFAULT_TOKEN_CHANNEL; 693 int _channel = DEFAULT_TOKEN_CHANNEL;
716 // InternalProblem.g:42:7: ( 'e' ) 694 // InternalProblem.g:41:7: ( 'false' )
717 // InternalProblem.g:42:9: 'e' 695 // InternalProblem.g:41:9: 'false'
718 { 696 {
719 match('e'); 697 match("false");
698
720 699
721 } 700 }
722 701
@@ -733,10 +712,10 @@ public class InternalProblemLexer extends Lexer {
733 try { 712 try {
734 int _type = T__44; 713 int _type = T__44;
735 int _channel = DEFAULT_TOKEN_CHANNEL; 714 int _channel = DEFAULT_TOKEN_CHANNEL;
736 // InternalProblem.g:43:7: ( 'E' ) 715 // InternalProblem.g:42:7: ( '-' )
737 // InternalProblem.g:43:9: 'E' 716 // InternalProblem.g:42:9: '-'
738 { 717 {
739 match('E'); 718 match('-');
740 719
741 } 720 }
742 721
@@ -753,10 +732,11 @@ public class InternalProblemLexer extends Lexer {
753 try { 732 try {
754 int _type = T__45; 733 int _type = T__45;
755 int _channel = DEFAULT_TOKEN_CHANNEL; 734 int _channel = DEFAULT_TOKEN_CHANNEL;
756 // InternalProblem.g:44:7: ( '-' ) 735 // InternalProblem.g:43:7: ( 'unknown' )
757 // InternalProblem.g:44:9: '-' 736 // InternalProblem.g:43:9: 'unknown'
758 { 737 {
759 match('-'); 738 match("unknown");
739
760 740
761 } 741 }
762 742
@@ -773,29 +753,8 @@ public class InternalProblemLexer extends Lexer {
773 try { 753 try {
774 int _type = T__46; 754 int _type = T__46;
775 int _channel = DEFAULT_TOKEN_CHANNEL; 755 int _channel = DEFAULT_TOKEN_CHANNEL;
776 // InternalProblem.g:45:7: ( 'unknown' ) 756 // InternalProblem.g:44:7: ( '?' )
777 // InternalProblem.g:45:9: 'unknown' 757 // InternalProblem.g:44:9: '?'
778 {
779 match("unknown");
780
781
782 }
783
784 state.type = _type;
785 state.channel = _channel;
786 }
787 finally {
788 }
789 }
790 // $ANTLR end "T__46"
791
792 // $ANTLR start "T__47"
793 public final void mT__47() throws RecognitionException {
794 try {
795 int _type = T__47;
796 int _channel = DEFAULT_TOKEN_CHANNEL;
797 // InternalProblem.g:46:7: ( '?' )
798 // InternalProblem.g:46:9: '?'
799 { 758 {
800 match('?'); 759 match('?');
801 760
@@ -807,15 +766,15 @@ public class InternalProblemLexer extends Lexer {
807 finally { 766 finally {
808 } 767 }
809 } 768 }
810 // $ANTLR end "T__47" 769 // $ANTLR end "T__46"
811 770
812 // $ANTLR start "RULE_ID" 771 // $ANTLR start "RULE_ID"
813 public final void mRULE_ID() throws RecognitionException { 772 public final void mRULE_ID() throws RecognitionException {
814 try { 773 try {
815 int _type = RULE_ID; 774 int _type = RULE_ID;
816 int _channel = DEFAULT_TOKEN_CHANNEL; 775 int _channel = DEFAULT_TOKEN_CHANNEL;
817 // InternalProblem.g:2427:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) 776 // InternalProblem.g:2374:9: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
818 // InternalProblem.g:2427:11: ( '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' )*
819 { 778 {
820 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { 779 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
821 input.consume(); 780 input.consume();
@@ -826,7 +785,7 @@ public class InternalProblemLexer extends Lexer {
826 recover(mse); 785 recover(mse);
827 throw mse;} 786 throw mse;}
828 787
829 // InternalProblem.g:2427:35: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 788 // InternalProblem.g:2374:35: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
830 loop1: 789 loop1:
831 do { 790 do {
832 int alt1=2; 791 int alt1=2;
@@ -870,32 +829,88 @@ public class InternalProblemLexer extends Lexer {
870 } 829 }
871 // $ANTLR end "RULE_ID" 830 // $ANTLR end "RULE_ID"
872 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
873 // $ANTLR start "RULE_STRING" 888 // $ANTLR start "RULE_STRING"
874 public final void mRULE_STRING() throws RecognitionException { 889 public final void mRULE_STRING() throws RecognitionException {
875 try { 890 try {
876 int _type = RULE_STRING; 891 int _type = RULE_STRING;
877 int _channel = DEFAULT_TOKEN_CHANNEL; 892 int _channel = DEFAULT_TOKEN_CHANNEL;
878 // InternalProblem.g:2429:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' ) 893 // InternalProblem.g:2378:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
879 // InternalProblem.g:2429:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' 894 // InternalProblem.g:2378:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
880 { 895 {
881 match('\"'); 896 match('\"');
882 // InternalProblem.g:2429:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* 897 // InternalProblem.g:2378:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
883 loop2: 898 loop3:
884 do { 899 do {
885 int alt2=3; 900 int alt3=3;
886 int LA2_0 = input.LA(1); 901 int LA3_0 = input.LA(1);
887 902
888 if ( (LA2_0=='\\') ) { 903 if ( (LA3_0=='\\') ) {
889 alt2=1; 904 alt3=1;
890 } 905 }
891 else if ( ((LA2_0>='\u0000' && LA2_0<='!')||(LA2_0>='#' && LA2_0<='[')||(LA2_0>=']' && LA2_0<='\uFFFF')) ) { 906 else if ( ((LA3_0>='\u0000' && LA3_0<='!')||(LA3_0>='#' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) {
892 alt2=2; 907 alt3=2;
893 } 908 }
894 909
895 910
896 switch (alt2) { 911 switch (alt3) {
897 case 1 : 912 case 1 :
898 // InternalProblem.g:2429:20: '\\\\' . 913 // InternalProblem.g:2378:20: '\\\\' .
899 { 914 {
900 match('\\'); 915 match('\\');
901 matchAny(); 916 matchAny();
@@ -903,7 +918,7 @@ public class InternalProblemLexer extends Lexer {
903 } 918 }
904 break; 919 break;
905 case 2 : 920 case 2 :
906 // InternalProblem.g:2429:27: ~ ( ( '\\\\' | '\"' ) ) 921 // InternalProblem.g:2378:27: ~ ( ( '\\\\' | '\"' ) )
907 { 922 {
908 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 923 if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
909 input.consume(); 924 input.consume();
@@ -919,7 +934,7 @@ public class InternalProblemLexer extends Lexer {
919 break; 934 break;
920 935
921 default : 936 default :
922 break loop2; 937 break loop3;
923 } 938 }
924 } while (true); 939 } while (true);
925 940
@@ -940,27 +955,27 @@ public class InternalProblemLexer extends Lexer {
940 try { 955 try {
941 int _type = RULE_QUOTED_ID; 956 int _type = RULE_QUOTED_ID;
942 int _channel = DEFAULT_TOKEN_CHANNEL; 957 int _channel = DEFAULT_TOKEN_CHANNEL;
943 // InternalProblem.g:2431:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) 958 // InternalProblem.g:2380:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
944 // InternalProblem.g:2431:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' 959 // InternalProblem.g:2380:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
945 { 960 {
946 match('\''); 961 match('\'');
947 // InternalProblem.g:2431:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* 962 // InternalProblem.g:2380:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
948 loop3: 963 loop4:
949 do { 964 do {
950 int alt3=3; 965 int alt4=3;
951 int LA3_0 = input.LA(1); 966 int LA4_0 = input.LA(1);
952 967
953 if ( (LA3_0=='\\') ) { 968 if ( (LA4_0=='\\') ) {
954 alt3=1; 969 alt4=1;
955 } 970 }
956 else if ( ((LA3_0>='\u0000' && LA3_0<='&')||(LA3_0>='(' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) { 971 else if ( ((LA4_0>='\u0000' && LA4_0<='&')||(LA4_0>='(' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
957 alt3=2; 972 alt4=2;
958 } 973 }
959 974
960 975
961 switch (alt3) { 976 switch (alt4) {
962 case 1 : 977 case 1 :
963 // InternalProblem.g:2431:24: '\\\\' . 978 // InternalProblem.g:2380:24: '\\\\' .
964 { 979 {
965 match('\\'); 980 match('\\');
966 matchAny(); 981 matchAny();
@@ -968,7 +983,7 @@ public class InternalProblemLexer extends Lexer {
968 } 983 }
969 break; 984 break;
970 case 2 : 985 case 2 :
971 // InternalProblem.g:2431:31: ~ ( ( '\\\\' | '\\'' ) ) 986 // InternalProblem.g:2380:31: ~ ( ( '\\\\' | '\\'' ) )
972 { 987 {
973 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) { 988 if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
974 input.consume(); 989 input.consume();
@@ -984,7 +999,7 @@ public class InternalProblemLexer extends Lexer {
984 break; 999 break;
985 1000
986 default : 1001 default :
987 break loop3; 1002 break loop4;
988 } 1003 }
989 } while (true); 1004 } while (true);
990 1005
@@ -1005,35 +1020,35 @@ public class InternalProblemLexer extends Lexer {
1005 try { 1020 try {
1006 int _type = RULE_SL_COMMENT; 1021 int _type = RULE_SL_COMMENT;
1007 int _channel = DEFAULT_TOKEN_CHANNEL; 1022 int _channel = DEFAULT_TOKEN_CHANNEL;
1008 // InternalProblem.g:2433:17: ( ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 1023 // InternalProblem.g:2382:17: ( ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
1009 // InternalProblem.g:2433:19: ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 1024 // InternalProblem.g:2382:19: ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
1010 { 1025 {
1011 // InternalProblem.g:2433:19: ( '%' | '//' ) 1026 // InternalProblem.g:2382:19: ( '%' | '//' )
1012 int alt4=2; 1027 int alt5=2;
1013 int LA4_0 = input.LA(1); 1028 int LA5_0 = input.LA(1);
1014 1029
1015 if ( (LA4_0=='%') ) { 1030 if ( (LA5_0=='%') ) {
1016 alt4=1; 1031 alt5=1;
1017 } 1032 }
1018 else if ( (LA4_0=='/') ) { 1033 else if ( (LA5_0=='/') ) {
1019 alt4=2; 1034 alt5=2;
1020 } 1035 }
1021 else { 1036 else {
1022 NoViableAltException nvae = 1037 NoViableAltException nvae =
1023 new NoViableAltException("", 4, 0, input); 1038 new NoViableAltException("", 5, 0, input);
1024 1039
1025 throw nvae; 1040 throw nvae;
1026 } 1041 }
1027 switch (alt4) { 1042 switch (alt5) {
1028 case 1 : 1043 case 1 :
1029 // InternalProblem.g:2433:20: '%' 1044 // InternalProblem.g:2382:20: '%'
1030 { 1045 {
1031 match('%'); 1046 match('%');
1032 1047
1033 } 1048 }
1034 break; 1049 break;
1035 case 2 : 1050 case 2 :
1036 // InternalProblem.g:2433:24: '//' 1051 // InternalProblem.g:2382:24: '//'
1037 { 1052 {
1038 match("//"); 1053 match("//");
1039 1054
@@ -1043,20 +1058,20 @@ public class InternalProblemLexer extends Lexer {
1043 1058
1044 } 1059 }
1045 1060
1046 // InternalProblem.g:2433:30: (~ ( ( '\\n' | '\\r' ) ) )* 1061 // InternalProblem.g:2382:30: (~ ( ( '\\n' | '\\r' ) ) )*
1047 loop5: 1062 loop6:
1048 do { 1063 do {
1049 int alt5=2; 1064 int alt6=2;
1050 int LA5_0 = input.LA(1); 1065 int LA6_0 = input.LA(1);
1051 1066
1052 if ( ((LA5_0>='\u0000' && LA5_0<='\t')||(LA5_0>='\u000B' && LA5_0<='\f')||(LA5_0>='\u000E' && LA5_0<='\uFFFF')) ) { 1067 if ( ((LA6_0>='\u0000' && LA6_0<='\t')||(LA6_0>='\u000B' && LA6_0<='\f')||(LA6_0>='\u000E' && LA6_0<='\uFFFF')) ) {
1053 alt5=1; 1068 alt6=1;
1054 } 1069 }
1055 1070
1056 1071
1057 switch (alt5) { 1072 switch (alt6) {
1058 case 1 : 1073 case 1 :
1059 // InternalProblem.g:2433:30: ~ ( ( '\\n' | '\\r' ) ) 1074 // InternalProblem.g:2382:30: ~ ( ( '\\n' | '\\r' ) )
1060 { 1075 {
1061 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') ) { 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') ) {
1062 input.consume(); 1077 input.consume();
@@ -1072,31 +1087,31 @@ public class InternalProblemLexer extends Lexer {
1072 break; 1087 break;
1073 1088
1074 default : 1089 default :
1075 break loop5; 1090 break loop6;
1076 } 1091 }
1077 } while (true); 1092 } while (true);
1078 1093
1079 // InternalProblem.g:2433:46: ( ( '\\r' )? '\\n' )? 1094 // InternalProblem.g:2382:46: ( ( '\\r' )? '\\n' )?
1080 int alt7=2; 1095 int alt8=2;
1081 int LA7_0 = input.LA(1); 1096 int LA8_0 = input.LA(1);
1082 1097
1083 if ( (LA7_0=='\n'||LA7_0=='\r') ) { 1098 if ( (LA8_0=='\n'||LA8_0=='\r') ) {
1084 alt7=1; 1099 alt8=1;
1085 } 1100 }
1086 switch (alt7) { 1101 switch (alt8) {
1087 case 1 : 1102 case 1 :
1088 // InternalProblem.g:2433:47: ( '\\r' )? '\\n' 1103 // InternalProblem.g:2382:47: ( '\\r' )? '\\n'
1089 { 1104 {
1090 // InternalProblem.g:2433:47: ( '\\r' )? 1105 // InternalProblem.g:2382:47: ( '\\r' )?
1091 int alt6=2; 1106 int alt7=2;
1092 int LA6_0 = input.LA(1); 1107 int LA7_0 = input.LA(1);
1093 1108
1094 if ( (LA6_0=='\r') ) { 1109 if ( (LA7_0=='\r') ) {
1095 alt6=1; 1110 alt7=1;
1096 } 1111 }
1097 switch (alt6) { 1112 switch (alt7) {
1098 case 1 : 1113 case 1 :
1099 // InternalProblem.g:2433:47: '\\r' 1114 // InternalProblem.g:2382:47: '\\r'
1100 { 1115 {
1101 match('\r'); 1116 match('\r');
1102 1117
@@ -1128,24 +1143,24 @@ public class InternalProblemLexer extends Lexer {
1128 try { 1143 try {
1129 int _type = RULE_INT; 1144 int _type = RULE_INT;
1130 int _channel = DEFAULT_TOKEN_CHANNEL; 1145 int _channel = DEFAULT_TOKEN_CHANNEL;
1131 // InternalProblem.g:2435:10: ( ( '0' .. '9' )+ ) 1146 // InternalProblem.g:2384:10: ( ( '0' .. '9' )+ )
1132 // InternalProblem.g:2435:12: ( '0' .. '9' )+ 1147 // InternalProblem.g:2384:12: ( '0' .. '9' )+
1133 { 1148 {
1134 // InternalProblem.g:2435:12: ( '0' .. '9' )+ 1149 // InternalProblem.g:2384:12: ( '0' .. '9' )+
1135 int cnt8=0; 1150 int cnt9=0;
1136 loop8: 1151 loop9:
1137 do { 1152 do {
1138 int alt8=2; 1153 int alt9=2;
1139 int LA8_0 = input.LA(1); 1154 int LA9_0 = input.LA(1);
1140 1155
1141 if ( ((LA8_0>='0' && LA8_0<='9')) ) { 1156 if ( ((LA9_0>='0' && LA9_0<='9')) ) {
1142 alt8=1; 1157 alt9=1;
1143 } 1158 }
1144 1159
1145 1160
1146 switch (alt8) { 1161 switch (alt9) {
1147 case 1 : 1162 case 1 :
1148 // InternalProblem.g:2435:13: '0' .. '9' 1163 // InternalProblem.g:2384:13: '0' .. '9'
1149 { 1164 {
1150 matchRange('0','9'); 1165 matchRange('0','9');
1151 1166
@@ -1153,12 +1168,12 @@ public class InternalProblemLexer extends Lexer {
1153 break; 1168 break;
1154 1169
1155 default : 1170 default :
1156 if ( cnt8 >= 1 ) break loop8; 1171 if ( cnt9 >= 1 ) break loop9;
1157 EarlyExitException eee = 1172 EarlyExitException eee =
1158 new EarlyExitException(8, input); 1173 new EarlyExitException(9, input);
1159 throw eee; 1174 throw eee;
1160 } 1175 }
1161 cnt8++; 1176 cnt9++;
1162 } while (true); 1177 } while (true);
1163 1178
1164 1179
@@ -1177,37 +1192,37 @@ public class InternalProblemLexer extends Lexer {
1177 try { 1192 try {
1178 int _type = RULE_ML_COMMENT; 1193 int _type = RULE_ML_COMMENT;
1179 int _channel = DEFAULT_TOKEN_CHANNEL; 1194 int _channel = DEFAULT_TOKEN_CHANNEL;
1180 // InternalProblem.g:2437:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 1195 // InternalProblem.g:2386:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
1181 // InternalProblem.g:2437:19: '/*' ( options {greedy=false; } : . )* '*/' 1196 // InternalProblem.g:2386:19: '/*' ( options {greedy=false; } : . )* '*/'
1182 { 1197 {
1183 match("/*"); 1198 match("/*");
1184 1199
1185 // InternalProblem.g:2437:24: ( options {greedy=false; } : . )* 1200 // InternalProblem.g:2386:24: ( options {greedy=false; } : . )*
1186 loop9: 1201 loop10:
1187 do { 1202 do {
1188 int alt9=2; 1203 int alt10=2;
1189 int LA9_0 = input.LA(1); 1204 int LA10_0 = input.LA(1);
1190 1205
1191 if ( (LA9_0=='*') ) { 1206 if ( (LA10_0=='*') ) {
1192 int LA9_1 = input.LA(2); 1207 int LA10_1 = input.LA(2);
1193 1208
1194 if ( (LA9_1=='/') ) { 1209 if ( (LA10_1=='/') ) {
1195 alt9=2; 1210 alt10=2;
1196 } 1211 }
1197 else if ( ((LA9_1>='\u0000' && LA9_1<='.')||(LA9_1>='0' && LA9_1<='\uFFFF')) ) { 1212 else if ( ((LA10_1>='\u0000' && LA10_1<='.')||(LA10_1>='0' && LA10_1<='\uFFFF')) ) {
1198 alt9=1; 1213 alt10=1;
1199 } 1214 }
1200 1215
1201 1216
1202 } 1217 }
1203 else if ( ((LA9_0>='\u0000' && LA9_0<=')')||(LA9_0>='+' && LA9_0<='\uFFFF')) ) { 1218 else if ( ((LA10_0>='\u0000' && LA10_0<=')')||(LA10_0>='+' && LA10_0<='\uFFFF')) ) {
1204 alt9=1; 1219 alt10=1;
1205 } 1220 }
1206 1221
1207 1222
1208 switch (alt9) { 1223 switch (alt10) {
1209 case 1 : 1224 case 1 :
1210 // InternalProblem.g:2437:52: . 1225 // InternalProblem.g:2386:52: .
1211 { 1226 {
1212 matchAny(); 1227 matchAny();
1213 1228
@@ -1215,7 +1230,7 @@ public class InternalProblemLexer extends Lexer {
1215 break; 1230 break;
1216 1231
1217 default : 1232 default :
1218 break loop9; 1233 break loop10;
1219 } 1234 }
1220 } while (true); 1235 } while (true);
1221 1236
@@ -1237,22 +1252,22 @@ public class InternalProblemLexer extends Lexer {
1237 try { 1252 try {
1238 int _type = RULE_WS; 1253 int _type = RULE_WS;
1239 int _channel = DEFAULT_TOKEN_CHANNEL; 1254 int _channel = DEFAULT_TOKEN_CHANNEL;
1240 // InternalProblem.g:2439:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) 1255 // InternalProblem.g:2388:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
1241 // InternalProblem.g:2439:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1256 // InternalProblem.g:2388:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1242 { 1257 {
1243 // InternalProblem.g:2439:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1258 // InternalProblem.g:2388:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1244 int cnt10=0; 1259 int cnt11=0;
1245 loop10: 1260 loop11:
1246 do { 1261 do {
1247 int alt10=2; 1262 int alt11=2;
1248 int LA10_0 = input.LA(1); 1263 int LA11_0 = input.LA(1);
1249 1264
1250 if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) { 1265 if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
1251 alt10=1; 1266 alt11=1;
1252 } 1267 }
1253 1268
1254 1269
1255 switch (alt10) { 1270 switch (alt11) {
1256 case 1 : 1271 case 1 :
1257 // InternalProblem.g: 1272 // InternalProblem.g:
1258 { 1273 {
@@ -1270,12 +1285,12 @@ public class InternalProblemLexer extends Lexer {
1270 break; 1285 break;
1271 1286
1272 default : 1287 default :
1273 if ( cnt10 >= 1 ) break loop10; 1288 if ( cnt11 >= 1 ) break loop11;
1274 EarlyExitException eee = 1289 EarlyExitException eee =
1275 new EarlyExitException(10, input); 1290 new EarlyExitException(11, input);
1276 throw eee; 1291 throw eee;
1277 } 1292 }
1278 cnt10++; 1293 cnt11++;
1279 } while (true); 1294 } while (true);
1280 1295
1281 1296
@@ -1294,8 +1309,8 @@ public class InternalProblemLexer extends Lexer {
1294 try { 1309 try {
1295 int _type = RULE_ANY_OTHER; 1310 int _type = RULE_ANY_OTHER;
1296 int _channel = DEFAULT_TOKEN_CHANNEL; 1311 int _channel = DEFAULT_TOKEN_CHANNEL;
1297 // InternalProblem.g:2441:16: ( . ) 1312 // InternalProblem.g:2390:16: ( . )
1298 // InternalProblem.g:2441:18: . 1313 // InternalProblem.g:2390:18: .
1299 { 1314 {
1300 matchAny(); 1315 matchAny();
1301 1316
@@ -1310,313 +1325,306 @@ public class InternalProblemLexer extends Lexer {
1310 // $ANTLR end "RULE_ANY_OTHER" 1325 // $ANTLR end "RULE_ANY_OTHER"
1311 1326
1312 public void mTokens() throws RecognitionException { 1327 public void mTokens() throws RecognitionException {
1313 // InternalProblem.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | RULE_ID | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER ) 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 )
1314 int alt11=44; 1329 int alt12=43;
1315 alt11 = dfa11.predict(input); 1330 alt12 = dfa12.predict(input);
1316 switch (alt11) { 1331 switch (alt12) {
1317 case 1 : 1332 case 1 :
1318 // InternalProblem.g:1:10: T__12 1333 // InternalProblem.g:1:10: T__13
1319 { 1334 {
1320 mT__12(); 1335 mT__13();
1321 1336
1322 } 1337 }
1323 break; 1338 break;
1324 case 2 : 1339 case 2 :
1325 // InternalProblem.g:1:16: T__13 1340 // InternalProblem.g:1:16: T__14
1326 { 1341 {
1327 mT__13(); 1342 mT__14();
1328 1343
1329 } 1344 }
1330 break; 1345 break;
1331 case 3 : 1346 case 3 :
1332 // InternalProblem.g:1:22: T__14 1347 // InternalProblem.g:1:22: T__15
1333 { 1348 {
1334 mT__14(); 1349 mT__15();
1335 1350
1336 } 1351 }
1337 break; 1352 break;
1338 case 4 : 1353 case 4 :
1339 // InternalProblem.g:1:28: T__15 1354 // InternalProblem.g:1:28: T__16
1340 { 1355 {
1341 mT__15(); 1356 mT__16();
1342 1357
1343 } 1358 }
1344 break; 1359 break;
1345 case 5 : 1360 case 5 :
1346 // InternalProblem.g:1:34: T__16 1361 // InternalProblem.g:1:34: T__17
1347 { 1362 {
1348 mT__16(); 1363 mT__17();
1349 1364
1350 } 1365 }
1351 break; 1366 break;
1352 case 6 : 1367 case 6 :
1353 // InternalProblem.g:1:40: T__17 1368 // InternalProblem.g:1:40: T__18
1354 { 1369 {
1355 mT__17(); 1370 mT__18();
1356 1371
1357 } 1372 }
1358 break; 1373 break;
1359 case 7 : 1374 case 7 :
1360 // InternalProblem.g:1:46: T__18 1375 // InternalProblem.g:1:46: T__19
1361 { 1376 {
1362 mT__18(); 1377 mT__19();
1363 1378
1364 } 1379 }
1365 break; 1380 break;
1366 case 8 : 1381 case 8 :
1367 // InternalProblem.g:1:52: T__19 1382 // InternalProblem.g:1:52: T__20
1368 { 1383 {
1369 mT__19(); 1384 mT__20();
1370 1385
1371 } 1386 }
1372 break; 1387 break;
1373 case 9 : 1388 case 9 :
1374 // InternalProblem.g:1:58: T__20 1389 // InternalProblem.g:1:58: T__21
1375 { 1390 {
1376 mT__20(); 1391 mT__21();
1377 1392
1378 } 1393 }
1379 break; 1394 break;
1380 case 10 : 1395 case 10 :
1381 // InternalProblem.g:1:64: T__21 1396 // InternalProblem.g:1:64: T__22
1382 { 1397 {
1383 mT__21(); 1398 mT__22();
1384 1399
1385 } 1400 }
1386 break; 1401 break;
1387 case 11 : 1402 case 11 :
1388 // InternalProblem.g:1:70: T__22 1403 // InternalProblem.g:1:70: T__23
1389 { 1404 {
1390 mT__22(); 1405 mT__23();
1391 1406
1392 } 1407 }
1393 break; 1408 break;
1394 case 12 : 1409 case 12 :
1395 // InternalProblem.g:1:76: T__23 1410 // InternalProblem.g:1:76: T__24
1396 { 1411 {
1397 mT__23(); 1412 mT__24();
1398 1413
1399 } 1414 }
1400 break; 1415 break;
1401 case 13 : 1416 case 13 :
1402 // InternalProblem.g:1:82: T__24 1417 // InternalProblem.g:1:82: T__25
1403 { 1418 {
1404 mT__24(); 1419 mT__25();
1405 1420
1406 } 1421 }
1407 break; 1422 break;
1408 case 14 : 1423 case 14 :
1409 // InternalProblem.g:1:88: T__25 1424 // InternalProblem.g:1:88: T__26
1410 { 1425 {
1411 mT__25(); 1426 mT__26();
1412 1427
1413 } 1428 }
1414 break; 1429 break;
1415 case 15 : 1430 case 15 :
1416 // InternalProblem.g:1:94: T__26 1431 // InternalProblem.g:1:94: T__27
1417 { 1432 {
1418 mT__26(); 1433 mT__27();
1419 1434
1420 } 1435 }
1421 break; 1436 break;
1422 case 16 : 1437 case 16 :
1423 // InternalProblem.g:1:100: T__27 1438 // InternalProblem.g:1:100: T__28
1424 { 1439 {
1425 mT__27(); 1440 mT__28();
1426 1441
1427 } 1442 }
1428 break; 1443 break;
1429 case 17 : 1444 case 17 :
1430 // InternalProblem.g:1:106: T__28 1445 // InternalProblem.g:1:106: T__29
1431 { 1446 {
1432 mT__28(); 1447 mT__29();
1433 1448
1434 } 1449 }
1435 break; 1450 break;
1436 case 18 : 1451 case 18 :
1437 // InternalProblem.g:1:112: T__29 1452 // InternalProblem.g:1:112: T__30
1438 { 1453 {
1439 mT__29(); 1454 mT__30();
1440 1455
1441 } 1456 }
1442 break; 1457 break;
1443 case 19 : 1458 case 19 :
1444 // InternalProblem.g:1:118: T__30 1459 // InternalProblem.g:1:118: T__31
1445 { 1460 {
1446 mT__30(); 1461 mT__31();
1447 1462
1448 } 1463 }
1449 break; 1464 break;
1450 case 20 : 1465 case 20 :
1451 // InternalProblem.g:1:124: T__31 1466 // InternalProblem.g:1:124: T__32
1452 { 1467 {
1453 mT__31(); 1468 mT__32();
1454 1469
1455 } 1470 }
1456 break; 1471 break;
1457 case 21 : 1472 case 21 :
1458 // InternalProblem.g:1:130: T__32 1473 // InternalProblem.g:1:130: T__33
1459 { 1474 {
1460 mT__32(); 1475 mT__33();
1461 1476
1462 } 1477 }
1463 break; 1478 break;
1464 case 22 : 1479 case 22 :
1465 // InternalProblem.g:1:136: T__33 1480 // InternalProblem.g:1:136: T__34
1466 { 1481 {
1467 mT__33(); 1482 mT__34();
1468 1483
1469 } 1484 }
1470 break; 1485 break;
1471 case 23 : 1486 case 23 :
1472 // InternalProblem.g:1:142: T__34 1487 // InternalProblem.g:1:142: T__35
1473 { 1488 {
1474 mT__34(); 1489 mT__35();
1475 1490
1476 } 1491 }
1477 break; 1492 break;
1478 case 24 : 1493 case 24 :
1479 // InternalProblem.g:1:148: T__35 1494 // InternalProblem.g:1:148: T__36
1480 { 1495 {
1481 mT__35(); 1496 mT__36();
1482 1497
1483 } 1498 }
1484 break; 1499 break;
1485 case 25 : 1500 case 25 :
1486 // InternalProblem.g:1:154: T__36 1501 // InternalProblem.g:1:154: T__37
1487 { 1502 {
1488 mT__36(); 1503 mT__37();
1489 1504
1490 } 1505 }
1491 break; 1506 break;
1492 case 26 : 1507 case 26 :
1493 // InternalProblem.g:1:160: T__37 1508 // InternalProblem.g:1:160: T__38
1494 { 1509 {
1495 mT__37(); 1510 mT__38();
1496 1511
1497 } 1512 }
1498 break; 1513 break;
1499 case 27 : 1514 case 27 :
1500 // InternalProblem.g:1:166: T__38 1515 // InternalProblem.g:1:166: T__39
1501 { 1516 {
1502 mT__38(); 1517 mT__39();
1503 1518
1504 } 1519 }
1505 break; 1520 break;
1506 case 28 : 1521 case 28 :
1507 // InternalProblem.g:1:172: T__39 1522 // InternalProblem.g:1:172: T__40
1508 { 1523 {
1509 mT__39(); 1524 mT__40();
1510 1525
1511 } 1526 }
1512 break; 1527 break;
1513 case 29 : 1528 case 29 :
1514 // InternalProblem.g:1:178: T__40 1529 // InternalProblem.g:1:178: T__41
1515 { 1530 {
1516 mT__40(); 1531 mT__41();
1517 1532
1518 } 1533 }
1519 break; 1534 break;
1520 case 30 : 1535 case 30 :
1521 // InternalProblem.g:1:184: T__41 1536 // InternalProblem.g:1:184: T__42
1522 { 1537 {
1523 mT__41(); 1538 mT__42();
1524 1539
1525 } 1540 }
1526 break; 1541 break;
1527 case 31 : 1542 case 31 :
1528 // InternalProblem.g:1:190: T__42 1543 // InternalProblem.g:1:190: T__43
1529 { 1544 {
1530 mT__42(); 1545 mT__43();
1531 1546
1532 } 1547 }
1533 break; 1548 break;
1534 case 32 : 1549 case 32 :
1535 // InternalProblem.g:1:196: T__43 1550 // InternalProblem.g:1:196: T__44
1536 { 1551 {
1537 mT__43(); 1552 mT__44();
1538 1553
1539 } 1554 }
1540 break; 1555 break;
1541 case 33 : 1556 case 33 :
1542 // InternalProblem.g:1:202: T__44 1557 // InternalProblem.g:1:202: T__45
1543 { 1558 {
1544 mT__44(); 1559 mT__45();
1545 1560
1546 } 1561 }
1547 break; 1562 break;
1548 case 34 : 1563 case 34 :
1549 // InternalProblem.g:1:208: T__45 1564 // InternalProblem.g:1:208: T__46
1550 { 1565 {
1551 mT__45(); 1566 mT__46();
1552 1567
1553 } 1568 }
1554 break; 1569 break;
1555 case 35 : 1570 case 35 :
1556 // InternalProblem.g:1:214: T__46 1571 // InternalProblem.g:1:214: RULE_ID
1557 { 1572 {
1558 mT__46(); 1573 mRULE_ID();
1559 1574
1560 } 1575 }
1561 break; 1576 break;
1562 case 36 : 1577 case 36 :
1563 // InternalProblem.g:1:220: T__47 1578 // InternalProblem.g:1:222: RULE_EXPONENTIAL
1564 { 1579 {
1565 mT__47(); 1580 mRULE_EXPONENTIAL();
1566 1581
1567 } 1582 }
1568 break; 1583 break;
1569 case 37 : 1584 case 37 :
1570 // InternalProblem.g:1:226: RULE_ID 1585 // InternalProblem.g:1:239: RULE_STRING
1571 {
1572 mRULE_ID();
1573
1574 }
1575 break;
1576 case 38 :
1577 // InternalProblem.g:1:234: RULE_STRING
1578 { 1586 {
1579 mRULE_STRING(); 1587 mRULE_STRING();
1580 1588
1581 } 1589 }
1582 break; 1590 break;
1583 case 39 : 1591 case 38 :
1584 // InternalProblem.g:1:246: RULE_QUOTED_ID 1592 // InternalProblem.g:1:251: RULE_QUOTED_ID
1585 { 1593 {
1586 mRULE_QUOTED_ID(); 1594 mRULE_QUOTED_ID();
1587 1595
1588 } 1596 }
1589 break; 1597 break;
1590 case 40 : 1598 case 39 :
1591 // InternalProblem.g:1:261: RULE_SL_COMMENT 1599 // InternalProblem.g:1:266: RULE_SL_COMMENT
1592 { 1600 {
1593 mRULE_SL_COMMENT(); 1601 mRULE_SL_COMMENT();
1594 1602
1595 } 1603 }
1596 break; 1604 break;
1597 case 41 : 1605 case 40 :
1598 // InternalProblem.g:1:277: RULE_INT 1606 // InternalProblem.g:1:282: RULE_INT
1599 { 1607 {
1600 mRULE_INT(); 1608 mRULE_INT();
1601 1609
1602 } 1610 }
1603 break; 1611 break;
1604 case 42 : 1612 case 41 :
1605 // InternalProblem.g:1:286: RULE_ML_COMMENT 1613 // InternalProblem.g:1:291: RULE_ML_COMMENT
1606 { 1614 {
1607 mRULE_ML_COMMENT(); 1615 mRULE_ML_COMMENT();
1608 1616
1609 } 1617 }
1610 break; 1618 break;
1611 case 43 : 1619 case 42 :
1612 // InternalProblem.g:1:302: RULE_WS 1620 // InternalProblem.g:1:307: RULE_WS
1613 { 1621 {
1614 mRULE_WS(); 1622 mRULE_WS();
1615 1623
1616 } 1624 }
1617 break; 1625 break;
1618 case 44 : 1626 case 43 :
1619 // InternalProblem.g:1:310: RULE_ANY_OTHER 1627 // InternalProblem.g:1:315: RULE_ANY_OTHER
1620 { 1628 {
1621 mRULE_ANY_OTHER(); 1629 mRULE_ANY_OTHER();
1622 1630
@@ -1628,98 +1636,98 @@ public class InternalProblemLexer extends Lexer {
1628 } 1636 }
1629 1637
1630 1638
1631 protected DFA11 dfa11 = new DFA11(this); 1639 protected DFA12 dfa12 = new DFA12(this);
1632 static final String DFA11_eotS = 1640 static final String DFA12_eotS =
1633 "\1\uffff\1\45\1\47\2\45\1\56\4\uffff\1\45\2\uffff\1\45\2\uffff\1\73\1\uffff\1\76\1\45\2\uffff\2\45\1\104\1\uffff\1\45\2\uffff\2\43\1\uffff\1\43\3\uffff\1\45\3\uffff\6\45\5\uffff\1\45\2\uffff\1\45\10\uffff\1\45\2\uffff\2\45\2\uffff\1\45\7\uffff\17\45\1\153\4\45\1\160\4\45\1\165\3\45\1\uffff\1\45\1\172\2\45\1\uffff\1\175\2\45\1\u0080\1\uffff\1\u0081\3\45\1\uffff\2\45\1\uffff\1\u0087\1\45\2\uffff\1\45\1\u008a\2\45\1\u008d\1\uffff\1\45\1\u008f\1\uffff\1\u0090\1\u0091\1\uffff\1\u0092\4\uffff"; 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";
1634 static final String DFA11_eofS = 1642 static final String DFA12_eofS =
1635 "\u0093\uffff"; 1643 "\u0092\uffff";
1636 static final String DFA11_minS = 1644 static final String DFA12_minS =
1637 "\1\0\1\162\1\56\1\142\1\154\1\60\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\60\1\uffff\1\156\2\uffff\2\0\1\uffff\1\52\3\uffff\1\145\3\uffff\1\163\1\141\1\156\1\164\1\165\1\162\5\uffff\1\146\2\uffff\1\160\10\uffff\1\157\2\uffff\1\165\1\154\2\uffff\1\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\60\1\162\1\163\1\141\1\156\1\60\2\162\1\163\1\145\1\60\1\145\1\157\1\145\1\uffff\1\141\1\60\1\151\1\144\1\uffff\1\60\1\163\1\151\1\60\1\uffff\1\60\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\60\1\164\2\uffff\1\156\1\60\1\164\1\163\1\60\1\uffff\1\145\1\60\1\uffff\2\60\1\uffff\1\60\4\uffff"; 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";
1638 static final String DFA11_maxS = 1646 static final String DFA12_maxS =
1639 "\1\uffff\1\162\1\56\1\142\1\157\1\172\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\172\1\uffff\1\156\2\uffff\2\uffff\1\uffff\1\57\3\uffff\1\157\3\uffff\1\163\1\141\1\156\1\164\1\165\1\162\5\uffff\1\146\2\uffff\1\160\10\uffff\1\157\2\uffff\1\165\1\154\2\uffff\1\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\172\1\162\1\163\1\141\1\156\1\172\2\162\1\163\1\145\1\172\1\145\1\157\1\145\1\uffff\1\141\1\172\1\151\1\144\1\uffff\1\172\1\163\1\151\1\172\1\uffff\1\172\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\172\1\164\2\uffff\1\156\1\172\1\164\1\163\1\172\1\uffff\1\145\1\172\1\uffff\2\172\1\uffff\1\172\4\uffff"; 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";
1640 static final String DFA11_acceptS = 1648 static final String DFA12_acceptS =
1641 "\6\uffff\1\6\1\7\1\10\1\11\1\uffff\1\15\1\16\1\uffff\1\22\1\23\1\uffff\1\25\2\uffff\1\32\1\34\3\uffff\1\42\1\uffff\1\44\1\45\2\uffff\1\50\1\uffff\1\51\1\53\1\54\1\uffff\1\45\1\33\1\2\6\uffff\1\40\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\41\1\42\1\uffff\1\44\1\46\1\47\1\50\1\52\1\51\1\53\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\43\1\3\1\13\1\17"; 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";
1642 static final String DFA11_specialS = 1650 static final String DFA12_specialS =
1643 "\1\1\34\uffff\1\2\1\0\164\uffff}>"; 1651 "\1\2\34\uffff\1\0\1\1\163\uffff}>";
1644 static final String[] DFA11_transitionS = { 1652 static final String[] DFA12_transitionS = {
1645 "\11\43\2\42\2\43\1\42\22\43\1\42\1\21\1\35\2\43\1\37\1\43\1\36\1\16\1\17\1\25\1\22\1\6\1\31\1\2\1\40\12\41\1\20\1\10\1\43\1\24\1\43\1\33\1\43\4\34\1\30\25\34\1\13\1\43\1\14\1\43\1\34\1\43\1\3\1\34\1\4\1\34\1\5\1\27\10\34\1\15\1\1\1\34\1\12\1\23\1\26\1\32\5\34\1\7\1\43\1\11\uff82\43", 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",
1646 "\1\44", 1654 "\1\43",
1647 "\1\46", 1655 "\1\45",
1648 "\1\50", 1656 "\1\47",
1649 "\1\51\2\uffff\1\52", 1657 "\1\50\2\uffff\1\51",
1650 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\15\45\1\54\3\45\1\55\5\45\1\53\2\45", 1658 "\1\53\3\uffff\1\54\5\uffff\1\52",
1651 "", 1659 "",
1652 "", 1660 "",
1653 "", 1661 "",
1654 "", 1662 "",
1655 "\1\63", 1663 "\1\61",
1656 "", 1664 "",
1657 "", 1665 "",
1658 "\1\66", 1666 "\1\64",
1659 "", 1667 "",
1660 "", 1668 "",
1661 "\1\71\14\uffff\1\72", 1669 "\1\67\14\uffff\1\70",
1662 "", 1670 "",
1671 "\1\73",
1663 "\1\75", 1672 "\1\75",
1664 "\1\77",
1665 "", 1673 "",
1666 "", 1674 "",
1667 "\1\102", 1675 "\1\100",
1668 "\1\103", 1676 "\1\101",
1669 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
1670 "", 1677 "",
1671 "\1\106", 1678 "\1\103",
1672 "", 1679 "",
1673 "", 1680 "",
1681 "\12\106\13\uffff\1\107\37\uffff\1\107",
1674 "\0\110", 1682 "\0\110",
1675 "\0\111", 1683 "\0\111",
1676 "", 1684 "",
1677 "\1\113\4\uffff\1\112", 1685 "\1\113\4\uffff\1\112",
1678 "", 1686 "",
1679 "", 1687 "",
1680 "", 1688 "\1\116\11\uffff\1\115",
1681 "\1\117\11\uffff\1\116",
1682 "", 1689 "",
1683 "", 1690 "",
1684 "", 1691 "",
1692 "\1\117",
1685 "\1\120", 1693 "\1\120",
1686 "\1\121", 1694 "\1\121",
1687 "\1\122", 1695 "\1\122",
1688 "\1\123", 1696 "\1\123",
1689 "\1\124", 1697 "\1\124",
1690 "\1\125",
1691 "", 1698 "",
1692 "", 1699 "",
1693 "", 1700 "",
1694 "", 1701 "",
1702 "\1\125",
1703 "",
1695 "", 1704 "",
1696 "\1\126", 1705 "\1\126",
1697 "", 1706 "",
1698 "", 1707 "",
1699 "\1\127",
1700 "", 1708 "",
1701 "", 1709 "",
1702 "", 1710 "",
1703 "", 1711 "",
1704 "", 1712 "",
1705 "", 1713 "",
1714 "\1\127",
1706 "", 1715 "",
1707 "", 1716 "",
1708 "\1\130", 1717 "\1\130",
1709 "",
1710 "",
1711 "\1\131", 1718 "\1\131",
1712 "\1\132",
1713 "", 1719 "",
1720 "\1\132",
1714 "", 1721 "",
1715 "\1\133",
1716 "", 1722 "",
1723 "\12\106\13\uffff\1\107\37\uffff\1\107",
1717 "", 1724 "",
1718 "", 1725 "",
1719 "", 1726 "",
1720 "", 1727 "",
1721 "", 1728 "",
1722 "", 1729 "",
1730 "\1\133",
1723 "\1\134", 1731 "\1\134",
1724 "\1\135", 1732 "\1\135",
1725 "\1\136", 1733 "\1\136",
@@ -1734,198 +1742,195 @@ public class InternalProblemLexer extends Lexer {
1734 "\1\147", 1742 "\1\147",
1735 "\1\150", 1743 "\1\150",
1736 "\1\151", 1744 "\1\151",
1737 "\1\152", 1745 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1738 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1746 "\1\153",
1739 "\1\154", 1747 "\1\154",
1740 "\1\155", 1748 "\1\155",
1741 "\1\156", 1749 "\1\156",
1742 "\1\157", 1750 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1743 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1751 "\1\160",
1744 "\1\161", 1752 "\1\161",
1745 "\1\162", 1753 "\1\162",
1746 "\1\163", 1754 "\1\163",
1747 "\1\164", 1755 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1748 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1756 "\1\165",
1749 "\1\166", 1757 "\1\166",
1750 "\1\167", 1758 "\1\167",
1751 "\1\170",
1752 "", 1759 "",
1753 "\1\171", 1760 "\1\170",
1754 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1761 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1762 "\1\172",
1755 "\1\173", 1763 "\1\173",
1756 "\1\174",
1757 "", 1764 "",
1758 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1765 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1766 "\1\175",
1759 "\1\176", 1767 "\1\176",
1760 "\1\177", 1768 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1761 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
1762 "", 1769 "",
1763 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1770 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1771 "\1\u0081",
1764 "\1\u0082", 1772 "\1\u0082",
1765 "\1\u0083", 1773 "\1\u0083",
1766 "\1\u0084",
1767 "", 1774 "",
1775 "\1\u0084",
1768 "\1\u0085", 1776 "\1\u0085",
1769 "\1\u0086",
1770 "", 1777 "",
1771 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1778 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1772 "\1\u0088", 1779 "\1\u0087",
1773 "", 1780 "",
1774 "", 1781 "",
1775 "\1\u0089", 1782 "\1\u0088",
1776 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1783 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1784 "\1\u008a",
1777 "\1\u008b", 1785 "\1\u008b",
1778 "\1\u008c", 1786 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1779 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45",
1780 "", 1787 "",
1781 "\1\u008e", 1788 "\1\u008d",
1782 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1789 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1783 "", 1790 "",
1784 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1791 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1785 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1792 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1786 "", 1793 "",
1787 "\12\45\7\uffff\32\45\4\uffff\1\45\1\uffff\32\45", 1794 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1788 "", 1795 "",
1789 "", 1796 "",
1790 "", 1797 "",
1791 "" 1798 ""
1792 }; 1799 };
1793 1800
1794 static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS); 1801 static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
1795 static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS); 1802 static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
1796 static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS); 1803 static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
1797 static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS); 1804 static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
1798 static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS); 1805 static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
1799 static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS); 1806 static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
1800 static final short[][] DFA11_transition; 1807 static final short[][] DFA12_transition;
1801 1808
1802 static { 1809 static {
1803 int numStates = DFA11_transitionS.length; 1810 int numStates = DFA12_transitionS.length;
1804 DFA11_transition = new short[numStates][]; 1811 DFA12_transition = new short[numStates][];
1805 for (int i=0; i<numStates; i++) { 1812 for (int i=0; i<numStates; i++) {
1806 DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]); 1813 DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
1807 } 1814 }
1808 } 1815 }
1809 1816
1810 class DFA11 extends DFA { 1817 class DFA12 extends DFA {
1811 1818
1812 public DFA11(BaseRecognizer recognizer) { 1819 public DFA12(BaseRecognizer recognizer) {
1813 this.recognizer = recognizer; 1820 this.recognizer = recognizer;
1814 this.decisionNumber = 11; 1821 this.decisionNumber = 12;
1815 this.eot = DFA11_eot; 1822 this.eot = DFA12_eot;
1816 this.eof = DFA11_eof; 1823 this.eof = DFA12_eof;
1817 this.min = DFA11_min; 1824 this.min = DFA12_min;
1818 this.max = DFA11_max; 1825 this.max = DFA12_max;
1819 this.accept = DFA11_accept; 1826 this.accept = DFA12_accept;
1820 this.special = DFA11_special; 1827 this.special = DFA12_special;
1821 this.transition = DFA11_transition; 1828 this.transition = DFA12_transition;
1822 } 1829 }
1823 public String getDescription() { 1830 public String getDescription() {
1824 return "1:1: Tokens : ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | RULE_ID | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER );"; 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 );";
1825 } 1832 }
1826 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 1833 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1827 IntStream input = _input; 1834 IntStream input = _input;
1828 int _s = s; 1835 int _s = s;
1829 switch ( s ) { 1836 switch ( s ) {
1830 case 0 : 1837 case 0 :
1831 int LA11_30 = input.LA(1); 1838 int LA12_29 = input.LA(1);
1832 1839
1833 s = -1; 1840 s = -1;
1834 if ( ((LA11_30>='\u0000' && LA11_30<='\uFFFF')) ) {s = 73;} 1841 if ( ((LA12_29>='\u0000' && LA12_29<='\uFFFF')) ) {s = 72;}
1835 1842
1836 else s = 35; 1843 else s = 34;
1837 1844
1838 if ( s>=0 ) return s; 1845 if ( s>=0 ) return s;
1839 break; 1846 break;
1840 case 1 : 1847 case 1 :
1841 int LA11_0 = input.LA(1); 1848 int LA12_30 = input.LA(1);
1842 1849
1843 s = -1; 1850 s = -1;
1844 if ( (LA11_0=='p') ) {s = 1;} 1851 if ( ((LA12_30>='\u0000' && LA12_30<='\uFFFF')) ) {s = 73;}
1845 1852
1846 else if ( (LA11_0=='.') ) {s = 2;} 1853 else s = 34;
1847 1854
1848 else if ( (LA11_0=='a') ) {s = 3;} 1855 if ( s>=0 ) return s;
1849 1856 break;
1850 else if ( (LA11_0=='c') ) {s = 4;} 1857 case 2 :
1858 int LA12_0 = input.LA(1);
1851 1859
1852 else if ( (LA11_0=='e') ) {s = 5;} 1860 s = -1;
1861 if ( (LA12_0=='p') ) {s = 1;}
1853 1862
1854 else if ( (LA11_0==',') ) {s = 6;} 1863 else if ( (LA12_0=='.') ) {s = 2;}
1855 1864
1856 else if ( (LA11_0=='{') ) {s = 7;} 1865 else if ( (LA12_0=='a') ) {s = 3;}
1857 1866
1858 else if ( (LA11_0==';') ) {s = 8;} 1867 else if ( (LA12_0=='c') ) {s = 4;}
1859 1868
1860 else if ( (LA11_0=='}') ) {s = 9;} 1869 else if ( (LA12_0=='e') ) {s = 5;}
1861 1870
1862 else if ( (LA11_0=='r') ) {s = 10;} 1871 else if ( (LA12_0==',') ) {s = 6;}
1863 1872
1864 else if ( (LA11_0=='[') ) {s = 11;} 1873 else if ( (LA12_0=='{') ) {s = 7;}
1865 1874
1866 else if ( (LA11_0==']') ) {s = 12;} 1875 else if ( (LA12_0==';') ) {s = 8;}
1867 1876
1868 else if ( (LA11_0=='o') ) {s = 13;} 1877 else if ( (LA12_0=='}') ) {s = 9;}
1869 1878
1870 else if ( (LA11_0=='(') ) {s = 14;} 1879 else if ( (LA12_0=='r') ) {s = 10;}
1871 1880
1872 else if ( (LA11_0==')') ) {s = 15;} 1881 else if ( (LA12_0=='[') ) {s = 11;}
1873 1882
1874 else if ( (LA11_0==':') ) {s = 16;} 1883 else if ( (LA12_0==']') ) {s = 12;}
1875 1884
1876 else if ( (LA11_0=='!') ) {s = 17;} 1885 else if ( (LA12_0=='o') ) {s = 13;}
1877 1886
1878 else if ( (LA11_0=='+') ) {s = 18;} 1887 else if ( (LA12_0=='(') ) {s = 14;}
1879 1888
1880 else if ( (LA11_0=='s') ) {s = 19;} 1889 else if ( (LA12_0==')') ) {s = 15;}
1881 1890
1882 else if ( (LA11_0=='=') ) {s = 20;} 1891 else if ( (LA12_0==':') ) {s = 16;}
1883 1892
1884 else if ( (LA11_0=='*') ) {s = 21;} 1893 else if ( (LA12_0=='!') ) {s = 17;}
1885 1894
1886 else if ( (LA11_0=='t') ) {s = 22;} 1895 else if ( (LA12_0=='+') ) {s = 18;}
1887 1896
1888 else if ( (LA11_0=='f') ) {s = 23;} 1897 else if ( (LA12_0=='s') ) {s = 19;}
1889 1898
1890 else if ( (LA11_0=='E') ) {s = 24;} 1899 else if ( (LA12_0=='=') ) {s = 20;}
1891 1900
1892 else if ( (LA11_0=='-') ) {s = 25;} 1901 else if ( (LA12_0=='*') ) {s = 21;}
1893 1902
1894 else if ( (LA11_0=='u') ) {s = 26;} 1903 else if ( (LA12_0=='t') ) {s = 22;}
1895 1904
1896 else if ( (LA11_0=='?') ) {s = 27;} 1905 else if ( (LA12_0=='f') ) {s = 23;}
1897 1906
1898 else if ( ((LA11_0>='A' && LA11_0<='D')||(LA11_0>='F' && LA11_0<='Z')||LA11_0=='_'||LA11_0=='b'||LA11_0=='d'||(LA11_0>='g' && LA11_0<='n')||LA11_0=='q'||(LA11_0>='v' && LA11_0<='z')) ) {s = 28;} 1907 else if ( (LA12_0=='-') ) {s = 24;}
1899 1908
1900 else if ( (LA11_0=='\"') ) {s = 29;} 1909 else if ( (LA12_0=='u') ) {s = 25;}
1901 1910
1902 else if ( (LA11_0=='\'') ) {s = 30;} 1911 else if ( (LA12_0=='?') ) {s = 26;}
1903 1912
1904 else if ( (LA11_0=='%') ) {s = 31;} 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;}
1905 1914
1906 else if ( (LA11_0=='/') ) {s = 32;} 1915 else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 28;}
1907 1916
1908 else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 33;} 1917 else if ( (LA12_0=='\"') ) {s = 29;}
1909 1918
1910 else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 34;} 1919 else if ( (LA12_0=='\'') ) {s = 30;}
1911 1920
1912 else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='#' && LA11_0<='$')||LA11_0=='&'||LA11_0=='<'||LA11_0=='>'||LA11_0=='@'||LA11_0=='\\'||LA11_0=='^'||LA11_0=='`'||LA11_0=='|'||(LA11_0>='~' && LA11_0<='\uFFFF')) ) {s = 35;} 1921 else if ( (LA12_0=='%') ) {s = 31;}
1913 1922
1914 if ( s>=0 ) return s; 1923 else if ( (LA12_0=='/') ) {s = 32;}
1915 break;
1916 case 2 :
1917 int LA11_29 = input.LA(1);
1918 1924
1919 s = -1; 1925 else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 33;}
1920 if ( ((LA11_29>='\u0000' && LA11_29<='\uFFFF')) ) {s = 72;}
1921 1926
1922 else s = 35; 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;}
1923 1928
1924 if ( s>=0 ) return s; 1929 if ( s>=0 ) return s;
1925 break; 1930 break;
1926 } 1931 }
1927 NoViableAltException nvae = 1932 NoViableAltException nvae =
1928 new NoViableAltException(getDescription(), 11, _s, input); 1933 new NoViableAltException(getDescription(), 12, _s, input);
1929 error(nvae); 1934 error(nvae);
1930 throw nvae; 1935 throw nvae;
1931 } 1936 }
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
index f0a69c90..cddaa9c1 100644
--- 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
@@ -22,16 +22,16 @@ import java.util.ArrayList;
22@SuppressWarnings("all") 22@SuppressWarnings("all")
23public class InternalProblemParser extends AbstractInternalAntlrParser { 23public class InternalProblemParser extends AbstractInternalAntlrParser {
24 public static final String[] tokenNames = new String[] { 24 public static final String[] tokenNames = new String[] {
25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_QUOTED_ID", "RULE_SL_COMMENT", "RULE_ML_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'problem'", "'.'", "'abstract'", "'class'", "'extends'", "','", "'{'", "';'", "'}'", "'enum'", "'contains'", "'refers'", "'['", "']'", "'opposite'", "'error'", "'pred'", "'('", "')'", "':-'", "'!'", "'+'", "':'", "'scope'", "'+='", "'='", "'..'", "'*'", "'::'", "'true'", "'false'", "'e'", "'E'", "'-'", "'unknown'", "'?'" 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 }; 26 };
27 public static final int T__19=19; 27 public static final int T__19=19;
28 public static final int T__15=15; 28 public static final int T__15=15;
29 public static final int T__16=16; 29 public static final int T__16=16;
30 public static final int T__17=17; 30 public static final int T__17=17;
31 public static final int T__18=18; 31 public static final int T__18=18;
32 public static final int T__12=12;
33 public static final int T__13=13; 32 public static final int T__13=13;
34 public static final int T__14=14; 33 public static final int T__14=14;
34 public static final int RULE_EXPONENTIAL=8;
35 public static final int RULE_ID=5; 35 public static final int RULE_ID=5;
36 public static final int RULE_QUOTED_ID=7; 36 public static final int RULE_QUOTED_ID=7;
37 public static final int T__26=26; 37 public static final int T__26=26;
@@ -40,14 +40,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
40 public static final int RULE_INT=6; 40 public static final int RULE_INT=6;
41 public static final int T__29=29; 41 public static final int T__29=29;
42 public static final int T__22=22; 42 public static final int T__22=22;
43 public static final int RULE_ML_COMMENT=9; 43 public static final int RULE_ML_COMMENT=10;
44 public static final int T__23=23; 44 public static final int T__23=23;
45 public static final int T__24=24; 45 public static final int T__24=24;
46 public static final int T__25=25; 46 public static final int T__25=25;
47 public static final int T__20=20; 47 public static final int T__20=20;
48 public static final int T__21=21; 48 public static final int T__21=21;
49 public static final int RULE_STRING=4; 49 public static final int RULE_STRING=4;
50 public static final int RULE_SL_COMMENT=8; 50 public static final int RULE_SL_COMMENT=9;
51 public static final int T__37=37; 51 public static final int T__37=37;
52 public static final int T__38=38; 52 public static final int T__38=38;
53 public static final int T__39=39; 53 public static final int T__39=39;
@@ -59,12 +59,11 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
59 public static final int T__30=30; 59 public static final int T__30=30;
60 public static final int T__31=31; 60 public static final int T__31=31;
61 public static final int T__32=32; 61 public static final int T__32=32;
62 public static final int RULE_WS=10; 62 public static final int RULE_WS=11;
63 public static final int RULE_ANY_OTHER=11; 63 public static final int RULE_ANY_OTHER=12;
64 public static final int T__44=44; 64 public static final int T__44=44;
65 public static final int T__45=45; 65 public static final int T__45=45;
66 public static final int T__46=46; 66 public static final int T__46=46;
67 public static final int T__47=47;
68 public static final int T__40=40; 67 public static final int T__40=40;
69 public static final int T__41=41; 68 public static final int T__41=41;
70 public static final int T__42=42; 69 public static final int T__42=42;
@@ -171,14 +170,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
171 int alt1=2; 170 int alt1=2;
172 int LA1_0 = input.LA(1); 171 int LA1_0 = input.LA(1);
173 172
174 if ( (LA1_0==12) ) { 173 if ( (LA1_0==13) ) {
175 alt1=1; 174 alt1=1;
176 } 175 }
177 switch (alt1) { 176 switch (alt1) {
178 case 1 : 177 case 1 :
179 // InternalProblem.g:81:4: otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.' 178 // InternalProblem.g:81:4: otherlv_0= 'problem' ( (lv_name_1_0= ruleIdentifier ) ) otherlv_2= '.'
180 { 179 {
181 otherlv_0=(Token)match(input,12,FOLLOW_3); 180 otherlv_0=(Token)match(input,13,FOLLOW_3);
182 181
183 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0()); 182 newLeafNode(otherlv_0, grammarAccess.getProblemAccess().getProblemKeyword_0_0());
184 183
@@ -213,7 +212,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
213 212
214 } 213 }
215 214
216 otherlv_2=(Token)match(input,13,FOLLOW_5); 215 otherlv_2=(Token)match(input,14,FOLLOW_5);
217 216
218 newLeafNode(otherlv_2, grammarAccess.getProblemAccess().getFullStopKeyword_0_2()); 217 newLeafNode(otherlv_2, grammarAccess.getProblemAccess().getFullStopKeyword_0_2());
219 218
@@ -229,7 +228,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
229 int alt2=2; 228 int alt2=2;
230 int LA2_0 = input.LA(1); 229 int LA2_0 = input.LA(1);
231 230
232 if ( (LA2_0==RULE_ID||LA2_0==RULE_QUOTED_ID||(LA2_0>=14 && LA2_0<=15)||LA2_0==21||(LA2_0>=27 && LA2_0<=28)||LA2_0==32||LA2_0==35||(LA2_0>=41 && LA2_0<=44)||LA2_0==47) ) { 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) ) {
233 alt2=1; 232 alt2=1;
234 } 233 }
235 234
@@ -557,7 +556,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
557 int alt4=2; 556 int alt4=2;
558 int LA4_0 = input.LA(1); 557 int LA4_0 = input.LA(1);
559 558
560 if ( (LA4_0==14) ) { 559 if ( (LA4_0==15) ) {
561 alt4=1; 560 alt4=1;
562 } 561 }
563 switch (alt4) { 562 switch (alt4) {
@@ -567,7 +566,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
567 // InternalProblem.g:220:4: (lv_abstract_0_0= 'abstract' ) 566 // InternalProblem.g:220:4: (lv_abstract_0_0= 'abstract' )
568 // InternalProblem.g:221:5: lv_abstract_0_0= 'abstract' 567 // InternalProblem.g:221:5: lv_abstract_0_0= 'abstract'
569 { 568 {
570 lv_abstract_0_0=(Token)match(input,14,FOLLOW_6); 569 lv_abstract_0_0=(Token)match(input,15,FOLLOW_6);
571 570
572 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); 571 newLeafNode(lv_abstract_0_0, grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
573 572
@@ -586,7 +585,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
586 585
587 } 586 }
588 587
589 otherlv_1=(Token)match(input,15,FOLLOW_3); 588 otherlv_1=(Token)match(input,16,FOLLOW_3);
590 589
591 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1()); 590 newLeafNode(otherlv_1, grammarAccess.getClassDeclarationAccess().getClassKeyword_1());
592 591
@@ -625,14 +624,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
625 int alt6=2; 624 int alt6=2;
626 int LA6_0 = input.LA(1); 625 int LA6_0 = input.LA(1);
627 626
628 if ( (LA6_0==16) ) { 627 if ( (LA6_0==17) ) {
629 alt6=1; 628 alt6=1;
630 } 629 }
631 switch (alt6) { 630 switch (alt6) {
632 case 1 : 631 case 1 :
633 // InternalProblem.g:257:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )* 632 // InternalProblem.g:257:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) ) (otherlv_5= ',' ( ( ruleQualifiedName ) ) )*
634 { 633 {
635 otherlv_3=(Token)match(input,16,FOLLOW_8); 634 otherlv_3=(Token)match(input,17,FOLLOW_8);
636 635
637 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0()); 636 newLeafNode(otherlv_3, grammarAccess.getClassDeclarationAccess().getExtendsKeyword_3_0());
638 637
@@ -670,7 +669,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
670 int alt5=2; 669 int alt5=2;
671 int LA5_0 = input.LA(1); 670 int LA5_0 = input.LA(1);
672 671
673 if ( (LA5_0==17) ) { 672 if ( (LA5_0==18) ) {
674 alt5=1; 673 alt5=1;
675 } 674 }
676 675
@@ -679,7 +678,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
679 case 1 : 678 case 1 :
680 // InternalProblem.g:278:5: otherlv_5= ',' ( ( ruleQualifiedName ) ) 679 // InternalProblem.g:278:5: otherlv_5= ',' ( ( ruleQualifiedName ) )
681 { 680 {
682 otherlv_5=(Token)match(input,17,FOLLOW_8); 681 otherlv_5=(Token)match(input,18,FOLLOW_8);
683 682
684 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0()); 683 newLeafNode(otherlv_5, grammarAccess.getClassDeclarationAccess().getCommaKeyword_3_2_0());
685 684
@@ -730,10 +729,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
730 int alt9=2; 729 int alt9=2;
731 int LA9_0 = input.LA(1); 730 int LA9_0 = input.LA(1);
732 731
733 if ( (LA9_0==18) ) { 732 if ( (LA9_0==19) ) {
734 alt9=1; 733 alt9=1;
735 } 734 }
736 else if ( (LA9_0==13) ) { 735 else if ( (LA9_0==14) ) {
737 alt9=2; 736 alt9=2;
738 } 737 }
739 else { 738 else {
@@ -749,7 +748,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
749 // InternalProblem.g:301:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' ) 748 // InternalProblem.g:301:4: (otherlv_7= '{' ( ( (lv_referenceDeclarations_8_0= ruleReferenceDeclaration ) ) (otherlv_9= ';' )? )* otherlv_10= '}' )
750 // InternalProblem.g:302:5: 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= '}'
751 { 750 {
752 otherlv_7=(Token)match(input,18,FOLLOW_10); 751 otherlv_7=(Token)match(input,19,FOLLOW_10);
753 752
754 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0()); 753 newLeafNode(otherlv_7, grammarAccess.getClassDeclarationAccess().getLeftCurlyBracketKeyword_4_0_0());
755 754
@@ -759,7 +758,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
759 int alt8=2; 758 int alt8=2;
760 int LA8_0 = input.LA(1); 759 int LA8_0 = input.LA(1);
761 760
762 if ( (LA8_0==RULE_ID||LA8_0==RULE_QUOTED_ID||(LA8_0>=22 && LA8_0<=23)||(LA8_0>=41 && LA8_0<=44)) ) { 761 if ( (LA8_0==RULE_ID||LA8_0==RULE_QUOTED_ID||(LA8_0>=23 && LA8_0<=24)||(LA8_0>=42 && LA8_0<=43)) ) {
763 alt8=1; 762 alt8=1;
764 } 763 }
765 764
@@ -803,14 +802,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
803 int alt7=2; 802 int alt7=2;
804 int LA7_0 = input.LA(1); 803 int LA7_0 = input.LA(1);
805 804
806 if ( (LA7_0==19) ) { 805 if ( (LA7_0==20) ) {
807 alt7=1; 806 alt7=1;
808 } 807 }
809 switch (alt7) { 808 switch (alt7) {
810 case 1 : 809 case 1 :
811 // InternalProblem.g:327:7: otherlv_9= ';' 810 // InternalProblem.g:327:7: otherlv_9= ';'
812 { 811 {
813 otherlv_9=(Token)match(input,19,FOLLOW_10); 812 otherlv_9=(Token)match(input,20,FOLLOW_10);
814 813
815 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1()); 814 newLeafNode(otherlv_9, grammarAccess.getClassDeclarationAccess().getSemicolonKeyword_4_0_1_1());
816 815
@@ -829,7 +828,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
829 } 828 }
830 } while (true); 829 } while (true);
831 830
832 otherlv_10=(Token)match(input,20,FOLLOW_2); 831 otherlv_10=(Token)match(input,21,FOLLOW_2);
833 832
834 newLeafNode(otherlv_10, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2()); 833 newLeafNode(otherlv_10, grammarAccess.getClassDeclarationAccess().getRightCurlyBracketKeyword_4_0_2());
835 834
@@ -842,7 +841,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
842 case 2 : 841 case 2 :
843 // InternalProblem.g:339:4: otherlv_11= '.' 842 // InternalProblem.g:339:4: otherlv_11= '.'
844 { 843 {
845 otherlv_11=(Token)match(input,13,FOLLOW_2); 844 otherlv_11=(Token)match(input,14,FOLLOW_2);
846 845
847 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1()); 846 newLeafNode(otherlv_11, grammarAccess.getClassDeclarationAccess().getFullStopKeyword_4_1());
848 847
@@ -939,7 +938,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
939 // 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= '.' ) ) 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= '.' ) )
940 // 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= '.' ) 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= '.' )
941 { 940 {
942 otherlv_0=(Token)match(input,21,FOLLOW_3); 941 otherlv_0=(Token)match(input,22,FOLLOW_3);
943 942
944 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0()); 943 newLeafNode(otherlv_0, grammarAccess.getEnumDeclarationAccess().getEnumKeyword_0());
945 944
@@ -978,10 +977,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
978 int alt13=2; 977 int alt13=2;
979 int LA13_0 = input.LA(1); 978 int LA13_0 = input.LA(1);
980 979
981 if ( (LA13_0==18) ) { 980 if ( (LA13_0==19) ) {
982 alt13=1; 981 alt13=1;
983 } 982 }
984 else if ( (LA13_0==13) ) { 983 else if ( (LA13_0==14) ) {
985 alt13=2; 984 alt13=2;
986 } 985 }
987 else { 986 else {
@@ -997,7 +996,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
997 // InternalProblem.g:387:4: (otherlv_2= '{' ( ( (lv_literals_3_0= ruleEnumLiteral ) ) (otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) )* (otherlv_6= ',' | otherlv_7= ';' )? )? otherlv_8= '}' ) 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= '}' )
998 // InternalProblem.g:388:5: 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= '}'
999 { 998 {
1000 otherlv_2=(Token)match(input,18,FOLLOW_13); 999 otherlv_2=(Token)match(input,19,FOLLOW_13);
1001 1000
1002 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0()); 1001 newLeafNode(otherlv_2, grammarAccess.getEnumDeclarationAccess().getLeftCurlyBracketKeyword_2_0_0());
1003 1002
@@ -1005,7 +1004,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1005 int alt12=2; 1004 int alt12=2;
1006 int LA12_0 = input.LA(1); 1005 int LA12_0 = input.LA(1);
1007 1006
1008 if ( (LA12_0==RULE_ID||(LA12_0>=41 && LA12_0<=44)) ) { 1007 if ( (LA12_0==RULE_ID||(LA12_0>=42 && LA12_0<=43)) ) {
1009 alt12=1; 1008 alt12=1;
1010 } 1009 }
1011 switch (alt12) { 1010 switch (alt12) {
@@ -1049,10 +1048,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1049 int alt10=2; 1048 int alt10=2;
1050 int LA10_0 = input.LA(1); 1049 int LA10_0 = input.LA(1);
1051 1050
1052 if ( (LA10_0==17) ) { 1051 if ( (LA10_0==18) ) {
1053 int LA10_1 = input.LA(2); 1052 int LA10_1 = input.LA(2);
1054 1053
1055 if ( (LA10_1==RULE_ID||(LA10_1>=41 && LA10_1<=44)) ) { 1054 if ( (LA10_1==RULE_ID||(LA10_1>=42 && LA10_1<=43)) ) {
1056 alt10=1; 1055 alt10=1;
1057 } 1056 }
1058 1057
@@ -1064,7 +1063,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1064 case 1 : 1063 case 1 :
1065 // InternalProblem.g:413:7: otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) ) 1064 // InternalProblem.g:413:7: otherlv_4= ',' ( (lv_literals_5_0= ruleEnumLiteral ) )
1066 { 1065 {
1067 otherlv_4=(Token)match(input,17,FOLLOW_3); 1066 otherlv_4=(Token)match(input,18,FOLLOW_3);
1068 1067
1069 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0()); 1068 newLeafNode(otherlv_4, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_1_0());
1070 1069
@@ -1112,17 +1111,17 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1112 int alt11=3; 1111 int alt11=3;
1113 int LA11_0 = input.LA(1); 1112 int LA11_0 = input.LA(1);
1114 1113
1115 if ( (LA11_0==17) ) { 1114 if ( (LA11_0==18) ) {
1116 alt11=1; 1115 alt11=1;
1117 } 1116 }
1118 else if ( (LA11_0==19) ) { 1117 else if ( (LA11_0==20) ) {
1119 alt11=2; 1118 alt11=2;
1120 } 1119 }
1121 switch (alt11) { 1120 switch (alt11) {
1122 case 1 : 1121 case 1 :
1123 // InternalProblem.g:438:7: otherlv_6= ',' 1122 // InternalProblem.g:438:7: otherlv_6= ','
1124 { 1123 {
1125 otherlv_6=(Token)match(input,17,FOLLOW_15); 1124 otherlv_6=(Token)match(input,18,FOLLOW_15);
1126 1125
1127 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0()); 1126 newLeafNode(otherlv_6, grammarAccess.getEnumDeclarationAccess().getCommaKeyword_2_0_1_2_0());
1128 1127
@@ -1132,7 +1131,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1132 case 2 : 1131 case 2 :
1133 // InternalProblem.g:443:7: otherlv_7= ';' 1132 // InternalProblem.g:443:7: otherlv_7= ';'
1134 { 1133 {
1135 otherlv_7=(Token)match(input,19,FOLLOW_15); 1134 otherlv_7=(Token)match(input,20,FOLLOW_15);
1136 1135
1137 newLeafNode(otherlv_7, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1()); 1136 newLeafNode(otherlv_7, grammarAccess.getEnumDeclarationAccess().getSemicolonKeyword_2_0_1_2_1());
1138 1137
@@ -1148,7 +1147,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1148 1147
1149 } 1148 }
1150 1149
1151 otherlv_8=(Token)match(input,20,FOLLOW_2); 1150 otherlv_8=(Token)match(input,21,FOLLOW_2);
1152 1151
1153 newLeafNode(otherlv_8, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2()); 1152 newLeafNode(otherlv_8, grammarAccess.getEnumDeclarationAccess().getRightCurlyBracketKeyword_2_0_2());
1154 1153
@@ -1161,7 +1160,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1161 case 2 : 1160 case 2 :
1162 // InternalProblem.g:455:4: otherlv_9= '.' 1161 // InternalProblem.g:455:4: otherlv_9= '.'
1163 { 1162 {
1164 otherlv_9=(Token)match(input,13,FOLLOW_2); 1163 otherlv_9=(Token)match(input,14,FOLLOW_2);
1165 1164
1166 newLeafNode(otherlv_9, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1()); 1165 newLeafNode(otherlv_9, grammarAccess.getEnumDeclarationAccess().getFullStopKeyword_2_1());
1167 1166
@@ -1359,10 +1358,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1359 int alt14=3; 1358 int alt14=3;
1360 int LA14_0 = input.LA(1); 1359 int LA14_0 = input.LA(1);
1361 1360
1362 if ( (LA14_0==22) ) { 1361 if ( (LA14_0==23) ) {
1363 alt14=1; 1362 alt14=1;
1364 } 1363 }
1365 else if ( (LA14_0==23) ) { 1364 else if ( (LA14_0==24) ) {
1366 alt14=2; 1365 alt14=2;
1367 } 1366 }
1368 switch (alt14) { 1367 switch (alt14) {
@@ -1375,7 +1374,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1375 // InternalProblem.g:517:5: (lv_containment_0_0= 'contains' ) 1374 // InternalProblem.g:517:5: (lv_containment_0_0= 'contains' )
1376 // InternalProblem.g:518:6: lv_containment_0_0= 'contains' 1375 // InternalProblem.g:518:6: lv_containment_0_0= 'contains'
1377 { 1376 {
1378 lv_containment_0_0=(Token)match(input,22,FOLLOW_8); 1377 lv_containment_0_0=(Token)match(input,23,FOLLOW_8);
1379 1378
1380 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); 1379 newLeafNode(lv_containment_0_0, grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
1381 1380
@@ -1397,7 +1396,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1397 case 2 : 1396 case 2 :
1398 // InternalProblem.g:531:4: otherlv_1= 'refers' 1397 // InternalProblem.g:531:4: otherlv_1= 'refers'
1399 { 1398 {
1400 otherlv_1=(Token)match(input,23,FOLLOW_8); 1399 otherlv_1=(Token)match(input,24,FOLLOW_8);
1401 1400
1402 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1()); 1401 newLeafNode(otherlv_1, grammarAccess.getReferenceDeclarationAccess().getRefersKeyword_0_1());
1403 1402
@@ -1439,14 +1438,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1439 int alt15=2; 1438 int alt15=2;
1440 int LA15_0 = input.LA(1); 1439 int LA15_0 = input.LA(1);
1441 1440
1442 if ( (LA15_0==24) ) { 1441 if ( (LA15_0==25) ) {
1443 alt15=1; 1442 alt15=1;
1444 } 1443 }
1445 switch (alt15) { 1444 switch (alt15) {
1446 case 1 : 1445 case 1 :
1447 // InternalProblem.g:553:4: otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']' 1446 // InternalProblem.g:553:4: otherlv_3= '[' ( (lv_multiplicity_4_0= ruleMultiplicity ) ) otherlv_5= ']'
1448 { 1447 {
1449 otherlv_3=(Token)match(input,24,FOLLOW_17); 1448 otherlv_3=(Token)match(input,25,FOLLOW_17);
1450 1449
1451 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0()); 1450 newLeafNode(otherlv_3, grammarAccess.getReferenceDeclarationAccess().getLeftSquareBracketKeyword_2_0());
1452 1451
@@ -1481,7 +1480,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1481 1480
1482 } 1481 }
1483 1482
1484 otherlv_5=(Token)match(input,25,FOLLOW_3); 1483 otherlv_5=(Token)match(input,26,FOLLOW_3);
1485 1484
1486 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2()); 1485 newLeafNode(otherlv_5, grammarAccess.getReferenceDeclarationAccess().getRightSquareBracketKeyword_2_2());
1487 1486
@@ -1526,14 +1525,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1526 int alt16=2; 1525 int alt16=2;
1527 int LA16_0 = input.LA(1); 1526 int LA16_0 = input.LA(1);
1528 1527
1529 if ( (LA16_0==26) ) { 1528 if ( (LA16_0==27) ) {
1530 alt16=1; 1529 alt16=1;
1531 } 1530 }
1532 switch (alt16) { 1531 switch (alt16) {
1533 case 1 : 1532 case 1 :
1534 // InternalProblem.g:601:4: otherlv_7= 'opposite' ( ( ruleQualifiedName ) ) 1533 // InternalProblem.g:601:4: otherlv_7= 'opposite' ( ( ruleQualifiedName ) )
1535 { 1534 {
1536 otherlv_7=(Token)match(input,26,FOLLOW_8); 1535 otherlv_7=(Token)match(input,27,FOLLOW_8);
1537 1536
1538 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0()); 1537 newLeafNode(otherlv_7, grammarAccess.getReferenceDeclarationAccess().getOppositeKeyword_4_0());
1539 1538
@@ -1668,10 +1667,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1668 int alt18=2; 1667 int alt18=2;
1669 int LA18_0 = input.LA(1); 1668 int LA18_0 = input.LA(1);
1670 1669
1671 if ( (LA18_0==27) ) { 1670 if ( (LA18_0==28) ) {
1672 alt18=1; 1671 alt18=1;
1673 } 1672 }
1674 else if ( (LA18_0==28) ) { 1673 else if ( (LA18_0==29) ) {
1675 alt18=2; 1674 alt18=2;
1676 } 1675 }
1677 else { 1676 else {
@@ -1693,7 +1692,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1693 // InternalProblem.g:644:6: (lv_error_0_0= 'error' ) 1692 // InternalProblem.g:644:6: (lv_error_0_0= 'error' )
1694 // InternalProblem.g:645:7: lv_error_0_0= 'error' 1693 // InternalProblem.g:645:7: lv_error_0_0= 'error'
1695 { 1694 {
1696 lv_error_0_0=(Token)match(input,27,FOLLOW_20); 1695 lv_error_0_0=(Token)match(input,28,FOLLOW_20);
1697 1696
1698 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); 1697 newLeafNode(lv_error_0_0, grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
1699 1698
@@ -1713,14 +1712,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1713 int alt17=2; 1712 int alt17=2;
1714 int LA17_0 = input.LA(1); 1713 int LA17_0 = input.LA(1);
1715 1714
1716 if ( (LA17_0==28) ) { 1715 if ( (LA17_0==29) ) {
1717 alt17=1; 1716 alt17=1;
1718 } 1717 }
1719 switch (alt17) { 1718 switch (alt17) {
1720 case 1 : 1719 case 1 :
1721 // InternalProblem.g:658:6: otherlv_1= 'pred' 1720 // InternalProblem.g:658:6: otherlv_1= 'pred'
1722 { 1721 {
1723 otherlv_1=(Token)match(input,28,FOLLOW_3); 1722 otherlv_1=(Token)match(input,29,FOLLOW_3);
1724 1723
1725 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1()); 1724 newLeafNode(otherlv_1, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_0_1());
1726 1725
@@ -1739,7 +1738,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1739 case 2 : 1738 case 2 :
1740 // InternalProblem.g:665:4: otherlv_2= 'pred' 1739 // InternalProblem.g:665:4: otherlv_2= 'pred'
1741 { 1740 {
1742 otherlv_2=(Token)match(input,28,FOLLOW_3); 1741 otherlv_2=(Token)match(input,29,FOLLOW_3);
1743 1742
1744 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1()); 1743 newLeafNode(otherlv_2, grammarAccess.getPredicateDefinitionAccess().getPredKeyword_0_1());
1745 1744
@@ -1780,7 +1779,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1780 1779
1781 } 1780 }
1782 1781
1783 otherlv_4=(Token)match(input,29,FOLLOW_22); 1782 otherlv_4=(Token)match(input,30,FOLLOW_22);
1784 1783
1785 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2()); 1784 newLeafNode(otherlv_4, grammarAccess.getPredicateDefinitionAccess().getLeftParenthesisKeyword_2());
1786 1785
@@ -1788,7 +1787,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1788 int alt20=2; 1787 int alt20=2;
1789 int LA20_0 = input.LA(1); 1788 int LA20_0 = input.LA(1);
1790 1789
1791 if ( (LA20_0==RULE_ID||LA20_0==RULE_QUOTED_ID||(LA20_0>=41 && LA20_0<=44)) ) { 1790 if ( (LA20_0==RULE_ID||LA20_0==RULE_QUOTED_ID||(LA20_0>=42 && LA20_0<=43)) ) {
1792 alt20=1; 1791 alt20=1;
1793 } 1792 }
1794 switch (alt20) { 1793 switch (alt20) {
@@ -1832,7 +1831,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1832 int alt19=2; 1831 int alt19=2;
1833 int LA19_0 = input.LA(1); 1832 int LA19_0 = input.LA(1);
1834 1833
1835 if ( (LA19_0==17) ) { 1834 if ( (LA19_0==18) ) {
1836 alt19=1; 1835 alt19=1;
1837 } 1836 }
1838 1837
@@ -1841,7 +1840,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1841 case 1 : 1840 case 1 :
1842 // InternalProblem.g:714:5: otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) ) 1841 // InternalProblem.g:714:5: otherlv_6= ',' ( (lv_parameters_7_0= ruleParameter ) )
1843 { 1842 {
1844 otherlv_6=(Token)match(input,17,FOLLOW_8); 1843 otherlv_6=(Token)match(input,18,FOLLOW_8);
1845 1844
1846 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0()); 1845 newLeafNode(otherlv_6, grammarAccess.getPredicateDefinitionAccess().getCommaKeyword_3_1_0());
1847 1846
@@ -1891,7 +1890,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1891 1890
1892 } 1891 }
1893 1892
1894 otherlv_8=(Token)match(input,30,FOLLOW_24); 1893 otherlv_8=(Token)match(input,31,FOLLOW_24);
1895 1894
1896 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4()); 1895 newLeafNode(otherlv_8, grammarAccess.getPredicateDefinitionAccess().getRightParenthesisKeyword_4());
1897 1896
@@ -1899,14 +1898,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1899 int alt22=2; 1898 int alt22=2;
1900 int LA22_0 = input.LA(1); 1899 int LA22_0 = input.LA(1);
1901 1900
1902 if ( (LA22_0==31) ) { 1901 if ( (LA22_0==32) ) {
1903 alt22=1; 1902 alt22=1;
1904 } 1903 }
1905 switch (alt22) { 1904 switch (alt22) {
1906 case 1 : 1905 case 1 :
1907 // InternalProblem.g:744:4: otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )* 1906 // InternalProblem.g:744:4: otherlv_9= ':-' ( (lv_bodies_10_0= ruleConjunction ) ) (otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) )*
1908 { 1907 {
1909 otherlv_9=(Token)match(input,31,FOLLOW_25); 1908 otherlv_9=(Token)match(input,32,FOLLOW_25);
1910 1909
1911 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0()); 1910 newLeafNode(otherlv_9, grammarAccess.getPredicateDefinitionAccess().getColonHyphenMinusKeyword_5_0());
1912 1911
@@ -1947,7 +1946,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1947 int alt21=2; 1946 int alt21=2;
1948 int LA21_0 = input.LA(1); 1947 int LA21_0 = input.LA(1);
1949 1948
1950 if ( (LA21_0==19) ) { 1949 if ( (LA21_0==20) ) {
1951 alt21=1; 1950 alt21=1;
1952 } 1951 }
1953 1952
@@ -1956,7 +1955,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1956 case 1 : 1955 case 1 :
1957 // InternalProblem.g:768:5: otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) ) 1956 // InternalProblem.g:768:5: otherlv_11= ';' ( (lv_bodies_12_0= ruleConjunction ) )
1958 { 1957 {
1959 otherlv_11=(Token)match(input,19,FOLLOW_25); 1958 otherlv_11=(Token)match(input,20,FOLLOW_25);
1960 1959
1961 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0()); 1960 newLeafNode(otherlv_11, grammarAccess.getPredicateDefinitionAccess().getSemicolonKeyword_5_2_0());
1962 1961
@@ -2006,7 +2005,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2006 2005
2007 } 2006 }
2008 2007
2009 otherlv_13=(Token)match(input,13,FOLLOW_2); 2008 otherlv_13=(Token)match(input,14,FOLLOW_2);
2010 2009
2011 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6()); 2010 newLeafNode(otherlv_13, grammarAccess.getPredicateDefinitionAccess().getFullStopKeyword_6());
2012 2011
@@ -2098,43 +2097,25 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2098 { 2097 {
2099 int LA23_2 = input.LA(2); 2098 int LA23_2 = input.LA(2);
2100 2099
2101 if ( (LA23_2==RULE_ID||(LA23_2>=40 && LA23_2<=44)) ) { 2100 if ( (LA23_2==RULE_ID||(LA23_2>=41 && LA23_2<=43)) ) {
2102 alt23=1;
2103 }
2104 }
2105 break;
2106 case 41:
2107 {
2108 int LA23_3 = input.LA(2);
2109
2110 if ( (LA23_3==RULE_ID||(LA23_3>=40 && LA23_3<=44)) ) {
2111 alt23=1; 2101 alt23=1;
2112 } 2102 }
2113 } 2103 }
2114 break; 2104 break;
2115 case 42: 2105 case 42:
2116 { 2106 {
2117 int LA23_4 = input.LA(2); 2107 int LA23_3 = input.LA(2);
2118 2108
2119 if ( (LA23_4==RULE_ID||(LA23_4>=40 && LA23_4<=44)) ) { 2109 if ( (LA23_3==RULE_ID||(LA23_3>=41 && LA23_3<=43)) ) {
2120 alt23=1; 2110 alt23=1;
2121 } 2111 }
2122 } 2112 }
2123 break; 2113 break;
2124 case 43: 2114 case 43:
2125 { 2115 {
2126 int LA23_5 = input.LA(2); 2116 int LA23_4 = input.LA(2);
2127
2128 if ( (LA23_5==RULE_ID||(LA23_5>=40 && LA23_5<=44)) ) {
2129 alt23=1;
2130 }
2131 }
2132 break;
2133 case 44:
2134 {
2135 int LA23_6 = input.LA(2);
2136 2117
2137 if ( (LA23_6==RULE_ID||(LA23_6>=40 && LA23_6<=44)) ) { 2118 if ( (LA23_4==RULE_ID||(LA23_4>=41 && LA23_4<=43)) ) {
2138 alt23=1; 2119 alt23=1;
2139 } 2120 }
2140 } 2121 }
@@ -2320,7 +2301,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2320 int alt24=2; 2301 int alt24=2;
2321 int LA24_0 = input.LA(1); 2302 int LA24_0 = input.LA(1);
2322 2303
2323 if ( (LA24_0==17) ) { 2304 if ( (LA24_0==18) ) {
2324 alt24=1; 2305 alt24=1;
2325 } 2306 }
2326 2307
@@ -2329,7 +2310,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2329 case 1 : 2310 case 1 :
2330 // InternalProblem.g:890:4: otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) ) 2311 // InternalProblem.g:890:4: otherlv_1= ',' ( (lv_literals_2_0= ruleLiteral ) )
2331 { 2312 {
2332 otherlv_1=(Token)match(input,17,FOLLOW_25); 2313 otherlv_1=(Token)match(input,18,FOLLOW_25);
2333 2314
2334 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0()); 2315 newLeafNode(otherlv_1, grammarAccess.getConjunctionAccess().getCommaKeyword_1_0());
2335 2316
@@ -2452,10 +2433,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2452 int alt25=2; 2433 int alt25=2;
2453 int LA25_0 = input.LA(1); 2434 int LA25_0 = input.LA(1);
2454 2435
2455 if ( (LA25_0==RULE_ID||LA25_0==RULE_QUOTED_ID||(LA25_0>=41 && LA25_0<=44)) ) { 2436 if ( (LA25_0==RULE_ID||LA25_0==RULE_QUOTED_ID||(LA25_0>=42 && LA25_0<=43)) ) {
2456 alt25=1; 2437 alt25=1;
2457 } 2438 }
2458 else if ( (LA25_0==32) ) { 2439 else if ( (LA25_0==33) ) {
2459 alt25=2; 2440 alt25=2;
2460 } 2441 }
2461 else { 2442 else {
@@ -2578,7 +2559,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2578 // InternalProblem.g:968:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) ) 2559 // InternalProblem.g:968:2: (otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) )
2579 // InternalProblem.g:969:3: otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) ) 2560 // InternalProblem.g:969:3: otherlv_0= '!' ( (lv_atom_1_0= ruleAtom ) )
2580 { 2561 {
2581 otherlv_0=(Token)match(input,32,FOLLOW_8); 2562 otherlv_0=(Token)match(input,33,FOLLOW_8);
2582 2563
2583 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0()); 2564 newLeafNode(otherlv_0, grammarAccess.getNegativeLiteralAccess().getExclamationMarkKeyword_0());
2584 2565
@@ -2727,7 +2708,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2727 int alt26=2; 2708 int alt26=2;
2728 int LA26_0 = input.LA(1); 2709 int LA26_0 = input.LA(1);
2729 2710
2730 if ( (LA26_0==33) ) { 2711 if ( (LA26_0==34) ) {
2731 alt26=1; 2712 alt26=1;
2732 } 2713 }
2733 switch (alt26) { 2714 switch (alt26) {
@@ -2737,7 +2718,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2737 // InternalProblem.g:1028:4: (lv_transitiveClosure_1_0= '+' ) 2718 // InternalProblem.g:1028:4: (lv_transitiveClosure_1_0= '+' )
2738 // InternalProblem.g:1029:5: lv_transitiveClosure_1_0= '+' 2719 // InternalProblem.g:1029:5: lv_transitiveClosure_1_0= '+'
2739 { 2720 {
2740 lv_transitiveClosure_1_0=(Token)match(input,33,FOLLOW_21); 2721 lv_transitiveClosure_1_0=(Token)match(input,34,FOLLOW_21);
2741 2722
2742 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); 2723 newLeafNode(lv_transitiveClosure_1_0, grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
2743 2724
@@ -2756,7 +2737,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2756 2737
2757 } 2738 }
2758 2739
2759 otherlv_2=(Token)match(input,29,FOLLOW_29); 2740 otherlv_2=(Token)match(input,30,FOLLOW_29);
2760 2741
2761 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2()); 2742 newLeafNode(otherlv_2, grammarAccess.getAtomAccess().getLeftParenthesisKeyword_2());
2762 2743
@@ -2764,7 +2745,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2764 int alt28=2; 2745 int alt28=2;
2765 int LA28_0 = input.LA(1); 2746 int LA28_0 = input.LA(1);
2766 2747
2767 if ( ((LA28_0>=RULE_STRING && LA28_0<=RULE_QUOTED_ID)||(LA28_0>=41 && LA28_0<=45)) ) { 2748 if ( ((LA28_0>=RULE_STRING && LA28_0<=RULE_EXPONENTIAL)||(LA28_0>=42 && LA28_0<=44)) ) {
2768 alt28=1; 2749 alt28=1;
2769 } 2750 }
2770 switch (alt28) { 2751 switch (alt28) {
@@ -2808,7 +2789,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2808 int alt27=2; 2789 int alt27=2;
2809 int LA27_0 = input.LA(1); 2790 int LA27_0 = input.LA(1);
2810 2791
2811 if ( (LA27_0==17) ) { 2792 if ( (LA27_0==18) ) {
2812 alt27=1; 2793 alt27=1;
2813 } 2794 }
2814 2795
@@ -2817,7 +2798,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2817 case 1 : 2798 case 1 :
2818 // InternalProblem.g:1066:5: otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) ) 2799 // InternalProblem.g:1066:5: otherlv_4= ',' ( (lv_arguments_5_0= ruleArgument ) )
2819 { 2800 {
2820 otherlv_4=(Token)match(input,17,FOLLOW_30); 2801 otherlv_4=(Token)match(input,18,FOLLOW_30);
2821 2802
2822 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0()); 2803 newLeafNode(otherlv_4, grammarAccess.getAtomAccess().getCommaKeyword_3_1_0());
2823 2804
@@ -2867,7 +2848,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2867 2848
2868 } 2849 }
2869 2850
2870 otherlv_6=(Token)match(input,30,FOLLOW_2); 2851 otherlv_6=(Token)match(input,31,FOLLOW_2);
2871 2852
2872 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4()); 2853 newLeafNode(otherlv_6, grammarAccess.getAtomAccess().getRightParenthesisKeyword_4());
2873 2854
@@ -2950,10 +2931,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2950 int alt29=2; 2931 int alt29=2;
2951 int LA29_0 = input.LA(1); 2932 int LA29_0 = input.LA(1);
2952 2933
2953 if ( (LA29_0==RULE_ID||LA29_0==RULE_QUOTED_ID||(LA29_0>=41 && LA29_0<=44)) ) { 2934 if ( (LA29_0==RULE_ID||LA29_0==RULE_QUOTED_ID||(LA29_0>=42 && LA29_0<=43)) ) {
2954 alt29=1; 2935 alt29=1;
2955 } 2936 }
2956 else if ( (LA29_0==RULE_STRING||LA29_0==RULE_INT||LA29_0==45) ) { 2937 else if ( (LA29_0==RULE_STRING||LA29_0==RULE_INT||LA29_0==RULE_EXPONENTIAL||LA29_0==44) ) {
2957 alt29=2; 2938 alt29=2;
2958 } 2939 }
2959 else { 2940 else {
@@ -3327,7 +3308,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3327 3308
3328 } 3309 }
3329 3310
3330 otherlv_1=(Token)match(input,29,FOLLOW_29); 3311 otherlv_1=(Token)match(input,30,FOLLOW_29);
3331 3312
3332 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1()); 3313 newLeafNode(otherlv_1, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_0_1());
3333 3314
@@ -3335,7 +3316,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3335 int alt31=2; 3316 int alt31=2;
3336 int LA31_0 = input.LA(1); 3317 int LA31_0 = input.LA(1);
3337 3318
3338 if ( ((LA31_0>=RULE_STRING && LA31_0<=RULE_QUOTED_ID)||(LA31_0>=41 && LA31_0<=45)) ) { 3319 if ( ((LA31_0>=RULE_STRING && LA31_0<=RULE_EXPONENTIAL)||(LA31_0>=42 && LA31_0<=44)) ) {
3339 alt31=1; 3320 alt31=1;
3340 } 3321 }
3341 switch (alt31) { 3322 switch (alt31) {
@@ -3379,7 +3360,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3379 int alt30=2; 3360 int alt30=2;
3380 int LA30_0 = input.LA(1); 3361 int LA30_0 = input.LA(1);
3381 3362
3382 if ( (LA30_0==17) ) { 3363 if ( (LA30_0==18) ) {
3383 alt30=1; 3364 alt30=1;
3384 } 3365 }
3385 3366
@@ -3388,7 +3369,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3388 case 1 : 3369 case 1 :
3389 // InternalProblem.g:1262:7: otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) ) 3370 // InternalProblem.g:1262:7: otherlv_3= ',' ( (lv_arguments_4_0= ruleAssertionArgument ) )
3390 { 3371 {
3391 otherlv_3=(Token)match(input,17,FOLLOW_30); 3372 otherlv_3=(Token)match(input,18,FOLLOW_30);
3392 3373
3393 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0()); 3374 newLeafNode(otherlv_3, grammarAccess.getAssertionAccess().getCommaKeyword_0_0_2_1_0());
3394 3375
@@ -3438,11 +3419,11 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3438 3419
3439 } 3420 }
3440 3421
3441 otherlv_5=(Token)match(input,30,FOLLOW_31); 3422 otherlv_5=(Token)match(input,31,FOLLOW_31);
3442 3423
3443 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3()); 3424 newLeafNode(otherlv_5, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_0_3());
3444 3425
3445 otherlv_6=(Token)match(input,34,FOLLOW_32); 3426 otherlv_6=(Token)match(input,35,FOLLOW_32);
3446 3427
3447 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4()); 3428 newLeafNode(otherlv_6, grammarAccess.getAssertionAccess().getColonKeyword_0_0_4());
3448 3429
@@ -3493,7 +3474,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3493 int alt32=2; 3474 int alt32=2;
3494 int LA32_0 = input.LA(1); 3475 int LA32_0 = input.LA(1);
3495 3476
3496 if ( (LA32_0==32||LA32_0==47) ) { 3477 if ( (LA32_0==33||LA32_0==46) ) {
3497 alt32=1; 3478 alt32=1;
3498 } 3479 }
3499 switch (alt32) { 3480 switch (alt32) {
@@ -3559,7 +3540,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3559 3540
3560 } 3541 }
3561 3542
3562 otherlv_10=(Token)match(input,29,FOLLOW_29); 3543 otherlv_10=(Token)match(input,30,FOLLOW_29);
3563 3544
3564 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2()); 3545 newLeafNode(otherlv_10, grammarAccess.getAssertionAccess().getLeftParenthesisKeyword_0_1_2());
3565 3546
@@ -3567,7 +3548,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3567 int alt34=2; 3548 int alt34=2;
3568 int LA34_0 = input.LA(1); 3549 int LA34_0 = input.LA(1);
3569 3550
3570 if ( ((LA34_0>=RULE_STRING && LA34_0<=RULE_QUOTED_ID)||(LA34_0>=41 && LA34_0<=45)) ) { 3551 if ( ((LA34_0>=RULE_STRING && LA34_0<=RULE_EXPONENTIAL)||(LA34_0>=42 && LA34_0<=44)) ) {
3571 alt34=1; 3552 alt34=1;
3572 } 3553 }
3573 switch (alt34) { 3554 switch (alt34) {
@@ -3611,7 +3592,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3611 int alt33=2; 3592 int alt33=2;
3612 int LA33_0 = input.LA(1); 3593 int LA33_0 = input.LA(1);
3613 3594
3614 if ( (LA33_0==17) ) { 3595 if ( (LA33_0==18) ) {
3615 alt33=1; 3596 alt33=1;
3616 } 3597 }
3617 3598
@@ -3620,7 +3601,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3620 case 1 : 3601 case 1 :
3621 // InternalProblem.g:1377:7: otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) ) 3602 // InternalProblem.g:1377:7: otherlv_12= ',' ( (lv_arguments_13_0= ruleAssertionArgument ) )
3622 { 3603 {
3623 otherlv_12=(Token)match(input,17,FOLLOW_30); 3604 otherlv_12=(Token)match(input,18,FOLLOW_30);
3624 3605
3625 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0()); 3606 newLeafNode(otherlv_12, grammarAccess.getAssertionAccess().getCommaKeyword_0_1_3_1_0());
3626 3607
@@ -3670,7 +3651,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3670 3651
3671 } 3652 }
3672 3653
3673 otherlv_14=(Token)match(input,30,FOLLOW_4); 3654 otherlv_14=(Token)match(input,31,FOLLOW_4);
3674 3655
3675 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4()); 3656 newLeafNode(otherlv_14, grammarAccess.getAssertionAccess().getRightParenthesisKeyword_0_1_4());
3676 3657
@@ -3683,7 +3664,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3683 3664
3684 } 3665 }
3685 3666
3686 otherlv_15=(Token)match(input,13,FOLLOW_2); 3667 otherlv_15=(Token)match(input,14,FOLLOW_2);
3687 3668
3688 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1()); 3669 newLeafNode(otherlv_15, grammarAccess.getAssertionAccess().getFullStopKeyword_1());
3689 3670
@@ -3766,10 +3747,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3766 int alt36=2; 3747 int alt36=2;
3767 int LA36_0 = input.LA(1); 3748 int LA36_0 = input.LA(1);
3768 3749
3769 if ( (LA36_0==RULE_ID||LA36_0==RULE_QUOTED_ID||(LA36_0>=41 && LA36_0<=44)) ) { 3750 if ( (LA36_0==RULE_ID||LA36_0==RULE_QUOTED_ID||(LA36_0>=42 && LA36_0<=43)) ) {
3770 alt36=1; 3751 alt36=1;
3771 } 3752 }
3772 else if ( (LA36_0==RULE_STRING||LA36_0==RULE_INT||LA36_0==45) ) { 3753 else if ( (LA36_0==RULE_STRING||LA36_0==RULE_INT||LA36_0==RULE_EXPONENTIAL||LA36_0==44) ) {
3773 alt36=2; 3754 alt36=2;
3774 } 3755 }
3775 else { 3756 else {
@@ -4117,7 +4098,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4117 4098
4118 } 4099 }
4119 4100
4120 otherlv_1=(Token)match(input,34,FOLLOW_30); 4101 otherlv_1=(Token)match(input,35,FOLLOW_30);
4121 4102
4122 newLeafNode(otherlv_1, grammarAccess.getNodeValueAssertionAccess().getColonKeyword_1()); 4103 newLeafNode(otherlv_1, grammarAccess.getNodeValueAssertionAccess().getColonKeyword_1());
4123 4104
@@ -4152,7 +4133,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4152 4133
4153 } 4134 }
4154 4135
4155 otherlv_3=(Token)match(input,13,FOLLOW_2); 4136 otherlv_3=(Token)match(input,14,FOLLOW_2);
4156 4137
4157 newLeafNode(otherlv_3, grammarAccess.getNodeValueAssertionAccess().getFullStopKeyword_3()); 4138 newLeafNode(otherlv_3, grammarAccess.getNodeValueAssertionAccess().getFullStopKeyword_3());
4158 4139
@@ -4215,13 +4196,13 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4215 4196
4216 4197
4217 // $ANTLR start "ruleConstant" 4198 // $ANTLR start "ruleConstant"
4218 // InternalProblem.g:1590:1: ruleConstant returns [EObject current=null] : (this_IntConstant_0= ruleIntConstant | this_RealConstant_1= ruleRealConstant | this_StringConstant_2= ruleStringConstant ) ; 4199 // InternalProblem.g:1590:1: ruleConstant returns [EObject current=null] : (this_RealConstant_0= ruleRealConstant | this_IntConstant_1= ruleIntConstant | this_StringConstant_2= ruleStringConstant ) ;
4219 public final EObject ruleConstant() throws RecognitionException { 4200 public final EObject ruleConstant() throws RecognitionException {
4220 EObject current = null; 4201 EObject current = null;
4221 4202
4222 EObject this_IntConstant_0 = null; 4203 EObject this_RealConstant_0 = null;
4223 4204
4224 EObject this_RealConstant_1 = null; 4205 EObject this_IntConstant_1 = null;
4225 4206
4226 EObject this_StringConstant_2 = null; 4207 EObject this_StringConstant_2 = null;
4227 4208
@@ -4230,56 +4211,47 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4230 enterRule(); 4211 enterRule();
4231 4212
4232 try { 4213 try {
4233 // InternalProblem.g:1596:2: ( (this_IntConstant_0= ruleIntConstant | this_RealConstant_1= ruleRealConstant | this_StringConstant_2= ruleStringConstant ) ) 4214 // InternalProblem.g:1596:2: ( (this_RealConstant_0= ruleRealConstant | this_IntConstant_1= ruleIntConstant | this_StringConstant_2= ruleStringConstant ) )
4234 // InternalProblem.g:1597:2: (this_IntConstant_0= ruleIntConstant | this_RealConstant_1= ruleRealConstant | this_StringConstant_2= ruleStringConstant ) 4215 // InternalProblem.g:1597:2: (this_RealConstant_0= ruleRealConstant | this_IntConstant_1= ruleIntConstant | this_StringConstant_2= ruleStringConstant )
4235 { 4216 {
4236 // InternalProblem.g:1597:2: (this_IntConstant_0= ruleIntConstant | this_RealConstant_1= ruleRealConstant | this_StringConstant_2= ruleStringConstant ) 4217 // InternalProblem.g:1597:2: (this_RealConstant_0= ruleRealConstant | this_IntConstant_1= ruleIntConstant | this_StringConstant_2= ruleStringConstant )
4237 int alt37=3; 4218 int alt37=3;
4238 switch ( input.LA(1) ) { 4219 switch ( input.LA(1) ) {
4239 case 45: 4220 case 44:
4240 { 4221 {
4241 int LA37_1 = input.LA(2); 4222 int LA37_1 = input.LA(2);
4242 4223
4243 if ( (LA37_1==RULE_INT) ) { 4224 if ( (LA37_1==RULE_INT) ) {
4244 switch ( input.LA(3) ) { 4225 int LA37_3 = input.LA(3);
4245 case EOF: 4226
4246 case 17: 4227 if ( (LA37_3==14) ) {
4247 case 30:
4248 {
4249 alt37=1;
4250 }
4251 break;
4252 case 13:
4253 {
4254 int LA37_5 = input.LA(4); 4228 int LA37_5 = input.LA(4);
4255 4229
4256 if ( (LA37_5==EOF||LA37_5==RULE_ID||LA37_5==RULE_QUOTED_ID||(LA37_5>=14 && LA37_5<=15)||LA37_5==21||(LA37_5>=27 && LA37_5<=28)||LA37_5==32||LA37_5==35||(LA37_5>=41 && LA37_5<=44)||LA37_5==47) ) { 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) ) {
4257 alt37=1;
4258 }
4259 else if ( (LA37_5==RULE_INT) ) {
4260 alt37=2; 4231 alt37=2;
4261 } 4232 }
4233 else if ( (LA37_5==RULE_INT||LA37_5==RULE_EXPONENTIAL) ) {
4234 alt37=1;
4235 }
4262 else { 4236 else {
4263 NoViableAltException nvae = 4237 NoViableAltException nvae =
4264 new NoViableAltException("", 37, 5, input); 4238 new NoViableAltException("", 37, 5, input);
4265 4239
4266 throw nvae; 4240 throw nvae;
4267 } 4241 }
4268 } 4242 }
4269 break; 4243 else if ( (LA37_3==EOF||LA37_3==18||LA37_3==31) ) {
4270 case 43:
4271 case 44:
4272 {
4273 alt37=2; 4244 alt37=2;
4274 } 4245 }
4275 break; 4246 else {
4276 default:
4277 NoViableAltException nvae = 4247 NoViableAltException nvae =
4278 new NoViableAltException("", 37, 2, input); 4248 new NoViableAltException("", 37, 3, input);
4279 4249
4280 throw nvae; 4250 throw nvae;
4281 } 4251 }
4282 4252 }
4253 else if ( (LA37_1==RULE_EXPONENTIAL) ) {
4254 alt37=1;
4283 } 4255 }
4284 else { 4256 else {
4285 NoViableAltException nvae = 4257 NoViableAltException nvae =
@@ -4289,47 +4261,40 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4289 } 4261 }
4290 } 4262 }
4291 break; 4263 break;
4264 case RULE_EXPONENTIAL:
4265 {
4266 alt37=1;
4267 }
4268 break;
4292 case RULE_INT: 4269 case RULE_INT:
4293 { 4270 {
4294 switch ( input.LA(2) ) { 4271 int LA37_3 = input.LA(2);
4295 case EOF: 4272
4296 case 17: 4273 if ( (LA37_3==14) ) {
4297 case 30:
4298 {
4299 alt37=1;
4300 }
4301 break;
4302 case 13:
4303 {
4304 int LA37_5 = input.LA(3); 4274 int LA37_5 = input.LA(3);
4305 4275
4306 if ( (LA37_5==EOF||LA37_5==RULE_ID||LA37_5==RULE_QUOTED_ID||(LA37_5>=14 && LA37_5<=15)||LA37_5==21||(LA37_5>=27 && LA37_5<=28)||LA37_5==32||LA37_5==35||(LA37_5>=41 && LA37_5<=44)||LA37_5==47) ) { 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) ) {
4307 alt37=1;
4308 }
4309 else if ( (LA37_5==RULE_INT) ) {
4310 alt37=2; 4277 alt37=2;
4311 } 4278 }
4279 else if ( (LA37_5==RULE_INT||LA37_5==RULE_EXPONENTIAL) ) {
4280 alt37=1;
4281 }
4312 else { 4282 else {
4313 NoViableAltException nvae = 4283 NoViableAltException nvae =
4314 new NoViableAltException("", 37, 5, input); 4284 new NoViableAltException("", 37, 5, input);
4315 4285
4316 throw nvae; 4286 throw nvae;
4317 } 4287 }
4318 } 4288 }
4319 break; 4289 else if ( (LA37_3==EOF||LA37_3==18||LA37_3==31) ) {
4320 case 43:
4321 case 44:
4322 {
4323 alt37=2; 4290 alt37=2;
4324 } 4291 }
4325 break; 4292 else {
4326 default:
4327 NoViableAltException nvae = 4293 NoViableAltException nvae =
4328 new NoViableAltException("", 37, 2, input); 4294 new NoViableAltException("", 37, 3, input);
4329 4295
4330 throw nvae; 4296 throw nvae;
4331 } 4297 }
4332
4333 } 4298 }
4334 break; 4299 break;
4335 case RULE_STRING: 4300 case RULE_STRING:
@@ -4346,36 +4311,36 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4346 4311
4347 switch (alt37) { 4312 switch (alt37) {
4348 case 1 : 4313 case 1 :
4349 // InternalProblem.g:1598:3: this_IntConstant_0= ruleIntConstant 4314 // InternalProblem.g:1598:3: this_RealConstant_0= ruleRealConstant
4350 { 4315 {
4351 4316
4352 newCompositeNode(grammarAccess.getConstantAccess().getIntConstantParserRuleCall_0()); 4317 newCompositeNode(grammarAccess.getConstantAccess().getRealConstantParserRuleCall_0());
4353 4318
4354 pushFollow(FOLLOW_2); 4319 pushFollow(FOLLOW_2);
4355 this_IntConstant_0=ruleIntConstant(); 4320 this_RealConstant_0=ruleRealConstant();
4356 4321
4357 state._fsp--; 4322 state._fsp--;
4358 4323
4359 4324
4360 current = this_IntConstant_0; 4325 current = this_RealConstant_0;
4361 afterParserOrEnumRuleCall(); 4326 afterParserOrEnumRuleCall();
4362 4327
4363 4328
4364 } 4329 }
4365 break; 4330 break;
4366 case 2 : 4331 case 2 :
4367 // InternalProblem.g:1607:3: this_RealConstant_1= ruleRealConstant 4332 // InternalProblem.g:1607:3: this_IntConstant_1= ruleIntConstant
4368 { 4333 {
4369 4334
4370 newCompositeNode(grammarAccess.getConstantAccess().getRealConstantParserRuleCall_1()); 4335 newCompositeNode(grammarAccess.getConstantAccess().getIntConstantParserRuleCall_1());
4371 4336
4372 pushFollow(FOLLOW_2); 4337 pushFollow(FOLLOW_2);
4373 this_RealConstant_1=ruleRealConstant(); 4338 this_IntConstant_1=ruleIntConstant();
4374 4339
4375 state._fsp--; 4340 state._fsp--;
4376 4341
4377 4342
4378 current = this_RealConstant_1; 4343 current = this_IntConstant_1;
4379 afterParserOrEnumRuleCall(); 4344 afterParserOrEnumRuleCall();
4380 4345
4381 4346
@@ -4777,7 +4742,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4777 // InternalProblem.g:1749:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' ) 4742 // InternalProblem.g:1749:2: (otherlv_0= 'scope' ( (lv_typeScopes_1_0= ruleTypeScope ) ) (otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) )* otherlv_4= '.' )
4778 // InternalProblem.g:1750:3: 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= '.'
4779 { 4744 {
4780 otherlv_0=(Token)match(input,35,FOLLOW_33); 4745 otherlv_0=(Token)match(input,36,FOLLOW_33);
4781 4746
4782 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0()); 4747 newLeafNode(otherlv_0, grammarAccess.getScopeDeclarationAccess().getScopeKeyword_0());
4783 4748
@@ -4818,7 +4783,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4818 int alt38=2; 4783 int alt38=2;
4819 int LA38_0 = input.LA(1); 4784 int LA38_0 = input.LA(1);
4820 4785
4821 if ( (LA38_0==17) ) { 4786 if ( (LA38_0==18) ) {
4822 alt38=1; 4787 alt38=1;
4823 } 4788 }
4824 4789
@@ -4827,7 +4792,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4827 case 1 : 4792 case 1 :
4828 // InternalProblem.g:1774:4: otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) ) 4793 // InternalProblem.g:1774:4: otherlv_2= ',' ( (lv_typeScopes_3_0= ruleTypeScope ) )
4829 { 4794 {
4830 otherlv_2=(Token)match(input,17,FOLLOW_33); 4795 otherlv_2=(Token)match(input,18,FOLLOW_33);
4831 4796
4832 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0()); 4797 newLeafNode(otherlv_2, grammarAccess.getScopeDeclarationAccess().getCommaKeyword_2_0());
4833 4798
@@ -4871,7 +4836,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4871 } 4836 }
4872 } while (true); 4837 } while (true);
4873 4838
4874 otherlv_4=(Token)match(input,13,FOLLOW_2); 4839 otherlv_4=(Token)match(input,14,FOLLOW_2);
4875 4840
4876 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3()); 4841 newLeafNode(otherlv_4, grammarAccess.getScopeDeclarationAccess().getFullStopKeyword_3());
4877 4842
@@ -4979,10 +4944,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4979 int alt39=2; 4944 int alt39=2;
4980 int LA39_0 = input.LA(1); 4945 int LA39_0 = input.LA(1);
4981 4946
4982 if ( (LA39_0==36) ) { 4947 if ( (LA39_0==37) ) {
4983 alt39=1; 4948 alt39=1;
4984 } 4949 }
4985 else if ( (LA39_0==37) ) { 4950 else if ( (LA39_0==38) ) {
4986 alt39=2; 4951 alt39=2;
4987 } 4952 }
4988 else { 4953 else {
@@ -5001,7 +4966,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5001 // InternalProblem.g:1836:5: (lv_increment_1_0= '+=' ) 4966 // InternalProblem.g:1836:5: (lv_increment_1_0= '+=' )
5002 // InternalProblem.g:1837:6: lv_increment_1_0= '+=' 4967 // InternalProblem.g:1837:6: lv_increment_1_0= '+='
5003 { 4968 {
5004 lv_increment_1_0=(Token)match(input,36,FOLLOW_17); 4969 lv_increment_1_0=(Token)match(input,37,FOLLOW_17);
5005 4970
5006 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); 4971 newLeafNode(lv_increment_1_0, grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
5007 4972
@@ -5023,7 +4988,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5023 case 2 : 4988 case 2 :
5024 // InternalProblem.g:1850:4: otherlv_2= '=' 4989 // InternalProblem.g:1850:4: otherlv_2= '='
5025 { 4990 {
5026 otherlv_2=(Token)match(input,37,FOLLOW_17); 4991 otherlv_2=(Token)match(input,38,FOLLOW_17);
5027 4992
5028 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1()); 4993 newLeafNode(otherlv_2, grammarAccess.getTypeScopeAccess().getEqualsSignKeyword_1_1());
5029 4994
@@ -5143,7 +5108,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5143 int alt40=2; 5108 int alt40=2;
5144 int LA40_0 = input.LA(1); 5109 int LA40_0 = input.LA(1);
5145 5110
5146 if ( (LA40_0==EOF||LA40_0==25) ) { 5111 if ( (LA40_0==EOF||LA40_0==26) ) {
5147 alt40=1; 5112 alt40=1;
5148 } 5113 }
5149 else if ( (LA40_0==RULE_INT) ) { 5114 else if ( (LA40_0==RULE_INT) ) {
@@ -5274,10 +5239,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5274 if ( (LA41_0==RULE_INT) ) { 5239 if ( (LA41_0==RULE_INT) ) {
5275 int LA41_1 = input.LA(2); 5240 int LA41_1 = input.LA(2);
5276 5241
5277 if ( (LA41_1==38) ) { 5242 if ( (LA41_1==39) ) {
5278 alt41=1; 5243 alt41=1;
5279 } 5244 }
5280 else if ( (LA41_1==EOF||LA41_1==13||LA41_1==17||LA41_1==25) ) { 5245 else if ( (LA41_1==EOF||LA41_1==14||LA41_1==18||LA41_1==26) ) {
5281 alt41=2; 5246 alt41=2;
5282 } 5247 }
5283 else { 5248 else {
@@ -5507,7 +5472,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5507 5472
5508 } 5473 }
5509 5474
5510 otherlv_1=(Token)match(input,38,FOLLOW_37); 5475 otherlv_1=(Token)match(input,39,FOLLOW_37);
5511 5476
5512 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1()); 5477 newLeafNode(otherlv_1, grammarAccess.getRangeMultiplicityAccess().getFullStopFullStopKeyword_1());
5513 5478
@@ -5717,7 +5682,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5717 if ( (LA42_0==RULE_INT) ) { 5682 if ( (LA42_0==RULE_INT) ) {
5718 alt42=1; 5683 alt42=1;
5719 } 5684 }
5720 else if ( (LA42_0==39) ) { 5685 else if ( (LA42_0==40) ) {
5721 alt42=2; 5686 alt42=2;
5722 } 5687 }
5723 else { 5688 else {
@@ -5743,7 +5708,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5743 case 2 : 5708 case 2 :
5744 // InternalProblem.g:2092:3: kw= '*' 5709 // InternalProblem.g:2092:3: kw= '*'
5745 { 5710 {
5746 kw=(Token)match(input,39,FOLLOW_2); 5711 kw=(Token)match(input,40,FOLLOW_2);
5747 5712
5748 current.merge(kw); 5713 current.merge(kw);
5749 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1()); 5714 newLeafNode(kw, grammarAccess.getUpperBoundAccess().getAsteriskKeyword_1());
@@ -5842,7 +5807,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5842 if ( (LA44_0==RULE_QUOTED_ID) ) { 5807 if ( (LA44_0==RULE_QUOTED_ID) ) {
5843 alt44=1; 5808 alt44=1;
5844 } 5809 }
5845 else if ( (LA44_0==RULE_ID||(LA44_0>=41 && LA44_0<=44)) ) { 5810 else if ( (LA44_0==RULE_ID||(LA44_0>=42 && LA44_0<=43)) ) {
5846 alt44=2; 5811 alt44=2;
5847 } 5812 }
5848 else { 5813 else {
@@ -5891,7 +5856,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5891 int alt43=2; 5856 int alt43=2;
5892 int LA43_0 = input.LA(1); 5857 int LA43_0 = input.LA(1);
5893 5858
5894 if ( (LA43_0==40) ) { 5859 if ( (LA43_0==41) ) {
5895 alt43=1; 5860 alt43=1;
5896 } 5861 }
5897 5862
@@ -5900,7 +5865,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5900 case 1 : 5865 case 1 :
5901 // InternalProblem.g:2142:5: kw= '::' this_Identifier_3= ruleIdentifier 5866 // InternalProblem.g:2142:5: kw= '::' this_Identifier_3= ruleIdentifier
5902 { 5867 {
5903 kw=(Token)match(input,40,FOLLOW_3); 5868 kw=(Token)match(input,41,FOLLOW_3);
5904 5869
5905 current.merge(kw); 5870 current.merge(kw);
5906 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0()); 5871 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0());
@@ -5996,7 +5961,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5996 5961
5997 5962
5998 // $ANTLR start "ruleIdentifier" 5963 // $ANTLR start "ruleIdentifier"
5999 // InternalProblem.g:2173:1: ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' | kw= 'e' | kw= 'E' ) ; 5964 // InternalProblem.g:2173:1: ruleIdentifier returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' ) ;
6000 public final AntlrDatatypeRuleToken ruleIdentifier() throws RecognitionException { 5965 public final AntlrDatatypeRuleToken ruleIdentifier() throws RecognitionException {
6001 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 5966 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
6002 5967
@@ -6007,35 +5972,25 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6007 enterRule(); 5972 enterRule();
6008 5973
6009 try { 5974 try {
6010 // InternalProblem.g:2179:2: ( (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' | kw= 'e' | kw= 'E' ) ) 5975 // InternalProblem.g:2179:2: ( (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' ) )
6011 // InternalProblem.g:2180:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' | kw= 'e' | kw= 'E' ) 5976 // InternalProblem.g:2180:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' )
6012 { 5977 {
6013 // InternalProblem.g:2180:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' | kw= 'e' | kw= 'E' ) 5978 // InternalProblem.g:2180:2: (this_ID_0= RULE_ID | kw= 'true' | kw= 'false' )
6014 int alt45=5; 5979 int alt45=3;
6015 switch ( input.LA(1) ) { 5980 switch ( input.LA(1) ) {
6016 case RULE_ID: 5981 case RULE_ID:
6017 { 5982 {
6018 alt45=1; 5983 alt45=1;
6019 } 5984 }
6020 break; 5985 break;
6021 case 41:
6022 {
6023 alt45=2;
6024 }
6025 break;
6026 case 42: 5986 case 42:
6027 { 5987 {
6028 alt45=3; 5988 alt45=2;
6029 } 5989 }
6030 break; 5990 break;
6031 case 43: 5991 case 43:
6032 { 5992 {
6033 alt45=4; 5993 alt45=3;
6034 }
6035 break;
6036 case 44:
6037 {
6038 alt45=5;
6039 } 5994 }
6040 break; 5995 break;
6041 default: 5996 default:
@@ -6062,7 +6017,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6062 case 2 : 6017 case 2 :
6063 // InternalProblem.g:2189:3: kw= 'true' 6018 // InternalProblem.g:2189:3: kw= 'true'
6064 { 6019 {
6065 kw=(Token)match(input,41,FOLLOW_2); 6020 kw=(Token)match(input,42,FOLLOW_2);
6066 6021
6067 current.merge(kw); 6022 current.merge(kw);
6068 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1()); 6023 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1());
@@ -6073,32 +6028,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6073 case 3 : 6028 case 3 :
6074 // InternalProblem.g:2195:3: kw= 'false' 6029 // InternalProblem.g:2195:3: kw= 'false'
6075 { 6030 {
6076 kw=(Token)match(input,42,FOLLOW_2);
6077
6078 current.merge(kw);
6079 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
6080
6081
6082 }
6083 break;
6084 case 4 :
6085 // InternalProblem.g:2201:3: kw= 'e'
6086 {
6087 kw=(Token)match(input,43,FOLLOW_2); 6031 kw=(Token)match(input,43,FOLLOW_2);
6088 6032
6089 current.merge(kw); 6033 current.merge(kw);
6090 newLeafNode(kw, grammarAccess.getIdentifierAccess().getEKeyword_3()); 6034 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
6091
6092
6093 }
6094 break;
6095 case 5 :
6096 // InternalProblem.g:2207:3: kw= 'E'
6097 {
6098 kw=(Token)match(input,44,FOLLOW_2);
6099
6100 current.merge(kw);
6101 newLeafNode(kw, grammarAccess.getIdentifierAccess().getEKeyword_4());
6102 6035
6103 6036
6104 } 6037 }
@@ -6126,7 +6059,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6126 6059
6127 6060
6128 // $ANTLR start "entryRuleInteger" 6061 // $ANTLR start "entryRuleInteger"
6129 // InternalProblem.g:2216:1: entryRuleInteger returns [String current=null] : iv_ruleInteger= ruleInteger EOF ; 6062 // InternalProblem.g:2204:1: entryRuleInteger returns [String current=null] : iv_ruleInteger= ruleInteger EOF ;
6130 public final String entryRuleInteger() throws RecognitionException { 6063 public final String entryRuleInteger() throws RecognitionException {
6131 String current = null; 6064 String current = null;
6132 6065
@@ -6137,8 +6070,8 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6137 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); 6070 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
6138 6071
6139 try { 6072 try {
6140 // InternalProblem.g:2218:2: (iv_ruleInteger= ruleInteger EOF ) 6073 // InternalProblem.g:2206:2: (iv_ruleInteger= ruleInteger EOF )
6141 // InternalProblem.g:2219:2: iv_ruleInteger= ruleInteger EOF 6074 // InternalProblem.g:2207:2: iv_ruleInteger= ruleInteger EOF
6142 { 6075 {
6143 newCompositeNode(grammarAccess.getIntegerRule()); 6076 newCompositeNode(grammarAccess.getIntegerRule());
6144 pushFollow(FOLLOW_1); 6077 pushFollow(FOLLOW_1);
@@ -6168,7 +6101,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6168 6101
6169 6102
6170 // $ANTLR start "ruleInteger" 6103 // $ANTLR start "ruleInteger"
6171 // InternalProblem.g:2228:1: ruleInteger returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ; 6104 // InternalProblem.g:2216:1: ruleInteger returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ) ;
6172 public final AntlrDatatypeRuleToken ruleInteger() throws RecognitionException { 6105 public final AntlrDatatypeRuleToken ruleInteger() throws RecognitionException {
6173 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 6106 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
6174 6107
@@ -6180,24 +6113,24 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6180 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens(); 6113 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
6181 6114
6182 try { 6115 try {
6183 // InternalProblem.g:2235:2: ( ( (kw= '-' )? this_INT_1= RULE_INT ) ) 6116 // InternalProblem.g:2223:2: ( ( (kw= '-' )? this_INT_1= RULE_INT ) )
6184 // InternalProblem.g:2236:2: ( (kw= '-' )? this_INT_1= RULE_INT ) 6117 // InternalProblem.g:2224:2: ( (kw= '-' )? this_INT_1= RULE_INT )
6185 { 6118 {
6186 // InternalProblem.g:2236:2: ( (kw= '-' )? this_INT_1= RULE_INT ) 6119 // InternalProblem.g:2224:2: ( (kw= '-' )? this_INT_1= RULE_INT )
6187 // InternalProblem.g:2237:3: (kw= '-' )? this_INT_1= RULE_INT 6120 // InternalProblem.g:2225:3: (kw= '-' )? this_INT_1= RULE_INT
6188 { 6121 {
6189 // InternalProblem.g:2237:3: (kw= '-' )? 6122 // InternalProblem.g:2225:3: (kw= '-' )?
6190 int alt46=2; 6123 int alt46=2;
6191 int LA46_0 = input.LA(1); 6124 int LA46_0 = input.LA(1);
6192 6125
6193 if ( (LA46_0==45) ) { 6126 if ( (LA46_0==44) ) {
6194 alt46=1; 6127 alt46=1;
6195 } 6128 }
6196 switch (alt46) { 6129 switch (alt46) {
6197 case 1 : 6130 case 1 :
6198 // InternalProblem.g:2238:4: kw= '-' 6131 // InternalProblem.g:2226:4: kw= '-'
6199 { 6132 {
6200 kw=(Token)match(input,45,FOLLOW_17); 6133 kw=(Token)match(input,44,FOLLOW_17);
6201 6134
6202 current.merge(kw); 6135 current.merge(kw);
6203 newLeafNode(kw, grammarAccess.getIntegerAccess().getHyphenMinusKeyword_0()); 6136 newLeafNode(kw, grammarAccess.getIntegerAccess().getHyphenMinusKeyword_0());
@@ -6241,19 +6174,16 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6241 6174
6242 6175
6243 // $ANTLR start "entryRuleReal" 6176 // $ANTLR start "entryRuleReal"
6244 // InternalProblem.g:2258:1: entryRuleReal returns [String current=null] : iv_ruleReal= ruleReal EOF ; 6177 // InternalProblem.g:2246:1: entryRuleReal returns [String current=null] : iv_ruleReal= ruleReal EOF ;
6245 public final String entryRuleReal() throws RecognitionException { 6178 public final String entryRuleReal() throws RecognitionException {
6246 String current = null; 6179 String current = null;
6247 6180
6248 AntlrDatatypeRuleToken iv_ruleReal = null; 6181 AntlrDatatypeRuleToken iv_ruleReal = null;
6249 6182
6250 6183
6251
6252 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
6253
6254 try { 6184 try {
6255 // InternalProblem.g:2260:2: (iv_ruleReal= ruleReal EOF ) 6185 // InternalProblem.g:2246:44: (iv_ruleReal= ruleReal EOF )
6256 // InternalProblem.g:2261:2: iv_ruleReal= ruleReal EOF 6186 // InternalProblem.g:2247:2: iv_ruleReal= ruleReal EOF
6257 { 6187 {
6258 newCompositeNode(grammarAccess.getRealRule()); 6188 newCompositeNode(grammarAccess.getRealRule());
6259 pushFollow(FOLLOW_1); 6189 pushFollow(FOLLOW_1);
@@ -6273,9 +6203,6 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6273 appendSkippedTokens(); 6203 appendSkippedTokens();
6274 } 6204 }
6275 finally { 6205 finally {
6276
6277 myHiddenTokenState.restore();
6278
6279 } 6206 }
6280 return current; 6207 return current;
6281 } 6208 }
@@ -6283,39 +6210,38 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6283 6210
6284 6211
6285 // $ANTLR start "ruleReal" 6212 // $ANTLR start "ruleReal"
6286 // InternalProblem.g:2270:1: ruleReal returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : ( (kw= '-' )? this_INT_1= RULE_INT ( (kw= '.' this_INT_3= RULE_INT ) | ( (kw= '.' this_INT_5= RULE_INT )? (kw= 'e' | kw= 'E' ) (kw= '-' | kw= '+' )? this_INT_10= RULE_INT ) ) ) ; 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 ) ) ) ) ;
6287 public final AntlrDatatypeRuleToken ruleReal() throws RecognitionException { 6214 public final AntlrDatatypeRuleToken ruleReal() throws RecognitionException {
6288 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 6215 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
6289 6216
6290 Token kw=null; 6217 Token kw=null;
6291 Token this_INT_1=null; 6218 Token this_EXPONENTIAL_1=null;
6292 Token this_INT_3=null; 6219 Token this_INT_2=null;
6293 Token this_INT_5=null; 6220 Token this_INT_4=null;
6294 Token this_INT_10=null; 6221 Token this_EXPONENTIAL_5=null;
6295 6222
6296 6223
6297 enterRule(); 6224 enterRule();
6298 HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
6299 6225
6300 try { 6226 try {
6301 // InternalProblem.g:2277:2: ( ( (kw= '-' )? this_INT_1= RULE_INT ( (kw= '.' this_INT_3= RULE_INT ) | ( (kw= '.' this_INT_5= RULE_INT )? (kw= 'e' | kw= 'E' ) (kw= '-' | kw= '+' )? this_INT_10= RULE_INT ) ) ) ) 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 ) ) ) ) )
6302 // InternalProblem.g:2278:2: ( (kw= '-' )? this_INT_1= RULE_INT ( (kw= '.' this_INT_3= RULE_INT ) | ( (kw= '.' this_INT_5= RULE_INT )? (kw= 'e' | kw= 'E' ) (kw= '-' | kw= '+' )? this_INT_10= RULE_INT ) ) ) 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 ) ) ) )
6303 { 6229 {
6304 // InternalProblem.g:2278:2: ( (kw= '-' )? this_INT_1= RULE_INT ( (kw= '.' this_INT_3= RULE_INT ) | ( (kw= '.' this_INT_5= RULE_INT )? (kw= 'e' | kw= 'E' ) (kw= '-' | kw= '+' )? this_INT_10= RULE_INT ) ) ) 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 ) ) ) )
6305 // InternalProblem.g:2279:3: (kw= '-' )? this_INT_1= RULE_INT ( (kw= '.' this_INT_3= RULE_INT ) | ( (kw= '.' this_INT_5= RULE_INT )? (kw= 'e' | kw= 'E' ) (kw= '-' | kw= '+' )? this_INT_10= RULE_INT ) ) 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 ) ) )
6306 { 6232 {
6307 // InternalProblem.g:2279:3: (kw= '-' )? 6233 // InternalProblem.g:2261:3: (kw= '-' )?
6308 int alt47=2; 6234 int alt47=2;
6309 int LA47_0 = input.LA(1); 6235 int LA47_0 = input.LA(1);
6310 6236
6311 if ( (LA47_0==45) ) { 6237 if ( (LA47_0==44) ) {
6312 alt47=1; 6238 alt47=1;
6313 } 6239 }
6314 switch (alt47) { 6240 switch (alt47) {
6315 case 1 : 6241 case 1 :
6316 // InternalProblem.g:2280:4: kw= '-' 6242 // InternalProblem.g:2262:4: kw= '-'
6317 { 6243 {
6318 kw=(Token)match(input,45,FOLLOW_17); 6244 kw=(Token)match(input,44,FOLLOW_39);
6319 6245
6320 current.merge(kw); 6246 current.merge(kw);
6321 newLeafNode(kw, grammarAccess.getRealAccess().getHyphenMinusKeyword_0()); 6247 newLeafNode(kw, grammarAccess.getRealAccess().getHyphenMinusKeyword_0());
@@ -6326,183 +6252,93 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6326 6252
6327 } 6253 }
6328 6254
6329 this_INT_1=(Token)match(input,RULE_INT,FOLLOW_39); 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);
6330 6258
6331 current.merge(this_INT_1); 6259 if ( (LA49_0==RULE_EXPONENTIAL) ) {
6332 6260 alt49=1;
6333
6334 newLeafNode(this_INT_1, grammarAccess.getRealAccess().getINTTerminalRuleCall_1());
6335
6336 // InternalProblem.g:2293:3: ( (kw= '.' this_INT_3= RULE_INT ) | ( (kw= '.' this_INT_5= RULE_INT )? (kw= 'e' | kw= 'E' ) (kw= '-' | kw= '+' )? this_INT_10= RULE_INT ) )
6337 int alt51=2;
6338 int LA51_0 = input.LA(1);
6339
6340 if ( (LA51_0==13) ) {
6341 int LA51_1 = input.LA(2);
6342
6343 if ( (LA51_1==RULE_INT) ) {
6344 int LA51_3 = input.LA(3);
6345
6346 if ( (LA51_3==EOF||LA51_3==13||LA51_3==17||LA51_3==30) ) {
6347 alt51=1;
6348 }
6349 else if ( ((LA51_3>=43 && LA51_3<=44)) ) {
6350 alt51=2;
6351 }
6352 else {
6353 NoViableAltException nvae =
6354 new NoViableAltException("", 51, 3, input);
6355
6356 throw nvae;
6357 }
6358 }
6359 else {
6360 NoViableAltException nvae =
6361 new NoViableAltException("", 51, 1, input);
6362
6363 throw nvae;
6364 }
6365 } 6261 }
6366 else if ( ((LA51_0>=43 && LA51_0<=44)) ) { 6262 else if ( (LA49_0==RULE_INT) ) {
6367 alt51=2; 6263 alt49=2;
6368 } 6264 }
6369 else { 6265 else {
6370 NoViableAltException nvae = 6266 NoViableAltException nvae =
6371 new NoViableAltException("", 51, 0, input); 6267 new NoViableAltException("", 49, 0, input);
6372 6268
6373 throw nvae; 6269 throw nvae;
6374 } 6270 }
6375 switch (alt51) { 6271 switch (alt49) {
6376 case 1 : 6272 case 1 :
6377 // InternalProblem.g:2294:4: (kw= '.' this_INT_3= RULE_INT ) 6273 // InternalProblem.g:2269:4: this_EXPONENTIAL_1= RULE_EXPONENTIAL
6378 {
6379 // InternalProblem.g:2294:4: (kw= '.' this_INT_3= RULE_INT )
6380 // InternalProblem.g:2295:5: kw= '.' this_INT_3= RULE_INT
6381 { 6274 {
6382 kw=(Token)match(input,13,FOLLOW_17); 6275 this_EXPONENTIAL_1=(Token)match(input,RULE_EXPONENTIAL,FOLLOW_2);
6383
6384 current.merge(kw);
6385 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_2_0_0());
6386
6387 this_INT_3=(Token)match(input,RULE_INT,FOLLOW_2);
6388
6389 current.merge(this_INT_3);
6390
6391
6392 newLeafNode(this_INT_3, grammarAccess.getRealAccess().getINTTerminalRuleCall_2_0_1());
6393
6394 6276
6395 } 6277 current.merge(this_EXPONENTIAL_1);
6278
6396 6279
6280 newLeafNode(this_EXPONENTIAL_1, grammarAccess.getRealAccess().getEXPONENTIALTerminalRuleCall_1_0());
6281
6397 6282
6398 } 6283 }
6399 break; 6284 break;
6400 case 2 : 6285 case 2 :
6401 // InternalProblem.g:2309:4: ( (kw= '.' this_INT_5= RULE_INT )? (kw= 'e' | kw= 'E' ) (kw= '-' | kw= '+' )? this_INT_10= RULE_INT ) 6286 // InternalProblem.g:2277:4: (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) )
6402 { 6287 {
6403 // InternalProblem.g:2309:4: ( (kw= '.' this_INT_5= RULE_INT )? (kw= 'e' | kw= 'E' ) (kw= '-' | kw= '+' )? this_INT_10= RULE_INT ) 6288 // InternalProblem.g:2277:4: (this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL ) )
6404 // InternalProblem.g:2310:5: (kw= '.' this_INT_5= RULE_INT )? (kw= 'e' | kw= 'E' ) (kw= '-' | kw= '+' )? this_INT_10= RULE_INT 6289 // InternalProblem.g:2278:5: this_INT_2= RULE_INT kw= '.' (this_INT_4= RULE_INT | this_EXPONENTIAL_5= RULE_EXPONENTIAL )
6405 { 6290 {
6406 // InternalProblem.g:2310:5: (kw= '.' this_INT_5= RULE_INT )? 6291 this_INT_2=(Token)match(input,RULE_INT,FOLLOW_4);
6407 int alt48=2;
6408 int LA48_0 = input.LA(1);
6409
6410 if ( (LA48_0==13) ) {
6411 alt48=1;
6412 }
6413 switch (alt48) {
6414 case 1 :
6415 // InternalProblem.g:2311:6: kw= '.' this_INT_5= RULE_INT
6416 {
6417 kw=(Token)match(input,13,FOLLOW_17);
6418
6419 current.merge(kw);
6420 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_2_1_0_0());
6421
6422 this_INT_5=(Token)match(input,RULE_INT,FOLLOW_40);
6423
6424 current.merge(this_INT_5);
6425
6426 6292
6427 newLeafNode(this_INT_5, grammarAccess.getRealAccess().getINTTerminalRuleCall_2_1_0_1()); 6293 current.merge(this_INT_2);
6428 6294
6429
6430 }
6431 break;
6432 6295
6433 } 6296 newLeafNode(this_INT_2, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1_0());
6297
6298 kw=(Token)match(input,14,FOLLOW_39);
6434 6299
6435 // InternalProblem.g:2324:5: (kw= 'e' | kw= 'E' ) 6300 current.merge(kw);
6436 int alt49=2; 6301 newLeafNode(kw, grammarAccess.getRealAccess().getFullStopKeyword_1_1_1());
6437 int LA49_0 = input.LA(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);
6438 6306
6439 if ( (LA49_0==43) ) { 6307 if ( (LA48_0==RULE_INT) ) {
6440 alt49=1; 6308 alt48=1;
6441 } 6309 }
6442 else if ( (LA49_0==44) ) { 6310 else if ( (LA48_0==RULE_EXPONENTIAL) ) {
6443 alt49=2; 6311 alt48=2;
6444 } 6312 }
6445 else { 6313 else {
6446 NoViableAltException nvae = 6314 NoViableAltException nvae =
6447 new NoViableAltException("", 49, 0, input); 6315 new NoViableAltException("", 48, 0, input);
6448 6316
6449 throw nvae; 6317 throw nvae;
6450 } 6318 }
6451 switch (alt49) { 6319 switch (alt48) {
6452 case 1 : 6320 case 1 :
6453 // InternalProblem.g:2325:6: kw= 'e' 6321 // InternalProblem.g:2291:6: this_INT_4= RULE_INT
6454 { 6322 {
6455 kw=(Token)match(input,43,FOLLOW_41); 6323 this_INT_4=(Token)match(input,RULE_INT,FOLLOW_2);
6456 6324
6457 current.merge(kw); 6325 current.merge(this_INT_4);
6458 newLeafNode(kw, grammarAccess.getRealAccess().getEKeyword_2_1_1_0());
6459 6326
6460 6327
6461 } 6328 newLeafNode(this_INT_4, grammarAccess.getRealAccess().getINTTerminalRuleCall_1_1_2_0());
6462 break;
6463 case 2 :
6464 // InternalProblem.g:2331:6: kw= 'E'
6465 {
6466 kw=(Token)match(input,44,FOLLOW_41);
6467
6468 current.merge(kw);
6469 newLeafNode(kw, grammarAccess.getRealAccess().getEKeyword_2_1_1_1());
6470 6329
6471 6330
6472 } 6331 }
6473 break; 6332 break;
6474 6333 case 2 :
6475 } 6334 // InternalProblem.g:2299:6: this_EXPONENTIAL_5= RULE_EXPONENTIAL
6476
6477 // InternalProblem.g:2337:5: (kw= '-' | kw= '+' )?
6478 int alt50=3;
6479 int LA50_0 = input.LA(1);
6480
6481 if ( (LA50_0==45) ) {
6482 alt50=1;
6483 }
6484 else if ( (LA50_0==33) ) {
6485 alt50=2;
6486 }
6487 switch (alt50) {
6488 case 1 :
6489 // InternalProblem.g:2338:6: kw= '-'
6490 { 6335 {
6491 kw=(Token)match(input,45,FOLLOW_17); 6336 this_EXPONENTIAL_5=(Token)match(input,RULE_EXPONENTIAL,FOLLOW_2);
6492 6337
6493 current.merge(kw); 6338 current.merge(this_EXPONENTIAL_5);
6494 newLeafNode(kw, grammarAccess.getRealAccess().getHyphenMinusKeyword_2_1_2_0());
6495 6339
6496 6340
6497 } 6341 newLeafNode(this_EXPONENTIAL_5, grammarAccess.getRealAccess().getEXPONENTIALTerminalRuleCall_1_1_2_1());
6498 break;
6499 case 2 :
6500 // InternalProblem.g:2344:6: kw= '+'
6501 {
6502 kw=(Token)match(input,33,FOLLOW_17);
6503
6504 current.merge(kw);
6505 newLeafNode(kw, grammarAccess.getRealAccess().getPlusSignKeyword_2_1_2_1());
6506 6342
6507 6343
6508 } 6344 }
@@ -6510,13 +6346,6 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6510 6346
6511 } 6347 }
6512 6348
6513 this_INT_10=(Token)match(input,RULE_INT,FOLLOW_2);
6514
6515 current.merge(this_INT_10);
6516
6517
6518 newLeafNode(this_INT_10, grammarAccess.getRealAccess().getINTTerminalRuleCall_2_1_3());
6519
6520 6349
6521 } 6350 }
6522 6351
@@ -6542,9 +6371,6 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6542 appendSkippedTokens(); 6371 appendSkippedTokens();
6543 } 6372 }
6544 finally { 6373 finally {
6545
6546 myHiddenTokenState.restore();
6547
6548 } 6374 }
6549 return current; 6375 return current;
6550 } 6376 }
@@ -6552,7 +6378,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6552 6378
6553 6379
6554 // $ANTLR start "ruleLogicValue" 6380 // $ANTLR start "ruleLogicValue"
6555 // InternalProblem.g:2366:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ; 6381 // InternalProblem.g:2313:1: ruleLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ;
6556 public final Enumerator ruleLogicValue() throws RecognitionException { 6382 public final Enumerator ruleLogicValue() throws RecognitionException {
6557 Enumerator current = null; 6383 Enumerator current = null;
6558 6384
@@ -6564,42 +6390,42 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6564 enterRule(); 6390 enterRule();
6565 6391
6566 try { 6392 try {
6567 // InternalProblem.g:2372:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) ) 6393 // InternalProblem.g:2319:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) )
6568 // InternalProblem.g:2373:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) 6394 // InternalProblem.g:2320:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
6569 { 6395 {
6570 // InternalProblem.g:2373:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) 6396 // InternalProblem.g:2320:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
6571 int alt52=3; 6397 int alt50=3;
6572 switch ( input.LA(1) ) { 6398 switch ( input.LA(1) ) {
6573 case 41: 6399 case 42:
6574 { 6400 {
6575 alt52=1; 6401 alt50=1;
6576 } 6402 }
6577 break; 6403 break;
6578 case 42: 6404 case 43:
6579 { 6405 {
6580 alt52=2; 6406 alt50=2;
6581 } 6407 }
6582 break; 6408 break;
6583 case 46: 6409 case 45:
6584 { 6410 {
6585 alt52=3; 6411 alt50=3;
6586 } 6412 }
6587 break; 6413 break;
6588 default: 6414 default:
6589 NoViableAltException nvae = 6415 NoViableAltException nvae =
6590 new NoViableAltException("", 52, 0, input); 6416 new NoViableAltException("", 50, 0, input);
6591 6417
6592 throw nvae; 6418 throw nvae;
6593 } 6419 }
6594 6420
6595 switch (alt52) { 6421 switch (alt50) {
6596 case 1 : 6422 case 1 :
6597 // InternalProblem.g:2374:3: (enumLiteral_0= 'true' ) 6423 // InternalProblem.g:2321:3: (enumLiteral_0= 'true' )
6598 { 6424 {
6599 // InternalProblem.g:2374:3: (enumLiteral_0= 'true' ) 6425 // InternalProblem.g:2321:3: (enumLiteral_0= 'true' )
6600 // InternalProblem.g:2375:4: enumLiteral_0= 'true' 6426 // InternalProblem.g:2322:4: enumLiteral_0= 'true'
6601 { 6427 {
6602 enumLiteral_0=(Token)match(input,41,FOLLOW_2); 6428 enumLiteral_0=(Token)match(input,42,FOLLOW_2);
6603 6429
6604 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 6430 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
6605 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0()); 6431 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
@@ -6611,12 +6437,12 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6611 } 6437 }
6612 break; 6438 break;
6613 case 2 : 6439 case 2 :
6614 // InternalProblem.g:2382:3: (enumLiteral_1= 'false' ) 6440 // InternalProblem.g:2329:3: (enumLiteral_1= 'false' )
6615 { 6441 {
6616 // InternalProblem.g:2382:3: (enumLiteral_1= 'false' ) 6442 // InternalProblem.g:2329:3: (enumLiteral_1= 'false' )
6617 // InternalProblem.g:2383:4: enumLiteral_1= 'false' 6443 // InternalProblem.g:2330:4: enumLiteral_1= 'false'
6618 { 6444 {
6619 enumLiteral_1=(Token)match(input,42,FOLLOW_2); 6445 enumLiteral_1=(Token)match(input,43,FOLLOW_2);
6620 6446
6621 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 6447 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
6622 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1()); 6448 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
@@ -6628,12 +6454,12 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6628 } 6454 }
6629 break; 6455 break;
6630 case 3 : 6456 case 3 :
6631 // InternalProblem.g:2390:3: (enumLiteral_2= 'unknown' ) 6457 // InternalProblem.g:2337:3: (enumLiteral_2= 'unknown' )
6632 { 6458 {
6633 // InternalProblem.g:2390:3: (enumLiteral_2= 'unknown' ) 6459 // InternalProblem.g:2337:3: (enumLiteral_2= 'unknown' )
6634 // InternalProblem.g:2391:4: enumLiteral_2= 'unknown' 6460 // InternalProblem.g:2338:4: enumLiteral_2= 'unknown'
6635 { 6461 {
6636 enumLiteral_2=(Token)match(input,46,FOLLOW_2); 6462 enumLiteral_2=(Token)match(input,45,FOLLOW_2);
6637 6463
6638 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); 6464 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
6639 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2()); 6465 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
@@ -6667,7 +6493,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6667 6493
6668 6494
6669 // $ANTLR start "ruleShortLogicValue" 6495 // $ANTLR start "ruleShortLogicValue"
6670 // InternalProblem.g:2401:1: ruleShortLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ; 6496 // InternalProblem.g:2348:1: ruleShortLogicValue returns [Enumerator current=null] : ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ;
6671 public final Enumerator ruleShortLogicValue() throws RecognitionException { 6497 public final Enumerator ruleShortLogicValue() throws RecognitionException {
6672 Enumerator current = null; 6498 Enumerator current = null;
6673 6499
@@ -6678,33 +6504,33 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6678 enterRule(); 6504 enterRule();
6679 6505
6680 try { 6506 try {
6681 // InternalProblem.g:2407:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) ) 6507 // InternalProblem.g:2354:2: ( ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) )
6682 // InternalProblem.g:2408:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) 6508 // InternalProblem.g:2355:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
6683 { 6509 {
6684 // InternalProblem.g:2408:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) ) 6510 // InternalProblem.g:2355:2: ( (enumLiteral_0= '!' ) | (enumLiteral_1= '?' ) )
6685 int alt53=2; 6511 int alt51=2;
6686 int LA53_0 = input.LA(1); 6512 int LA51_0 = input.LA(1);
6687 6513
6688 if ( (LA53_0==32) ) { 6514 if ( (LA51_0==33) ) {
6689 alt53=1; 6515 alt51=1;
6690 } 6516 }
6691 else if ( (LA53_0==47) ) { 6517 else if ( (LA51_0==46) ) {
6692 alt53=2; 6518 alt51=2;
6693 } 6519 }
6694 else { 6520 else {
6695 NoViableAltException nvae = 6521 NoViableAltException nvae =
6696 new NoViableAltException("", 53, 0, input); 6522 new NoViableAltException("", 51, 0, input);
6697 6523
6698 throw nvae; 6524 throw nvae;
6699 } 6525 }
6700 switch (alt53) { 6526 switch (alt51) {
6701 case 1 : 6527 case 1 :
6702 // InternalProblem.g:2409:3: (enumLiteral_0= '!' ) 6528 // InternalProblem.g:2356:3: (enumLiteral_0= '!' )
6703 { 6529 {
6704 // InternalProblem.g:2409:3: (enumLiteral_0= '!' ) 6530 // InternalProblem.g:2356:3: (enumLiteral_0= '!' )
6705 // InternalProblem.g:2410:4: enumLiteral_0= '!' 6531 // InternalProblem.g:2357:4: enumLiteral_0= '!'
6706 { 6532 {
6707 enumLiteral_0=(Token)match(input,32,FOLLOW_2); 6533 enumLiteral_0=(Token)match(input,33,FOLLOW_2);
6708 6534
6709 current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 6535 current = grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
6710 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0()); 6536 newLeafNode(enumLiteral_0, grammarAccess.getShortLogicValueAccess().getFALSEEnumLiteralDeclaration_0());
@@ -6716,12 +6542,12 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6716 } 6542 }
6717 break; 6543 break;
6718 case 2 : 6544 case 2 :
6719 // InternalProblem.g:2417:3: (enumLiteral_1= '?' ) 6545 // InternalProblem.g:2364:3: (enumLiteral_1= '?' )
6720 { 6546 {
6721 // InternalProblem.g:2417:3: (enumLiteral_1= '?' ) 6547 // InternalProblem.g:2364:3: (enumLiteral_1= '?' )
6722 // InternalProblem.g:2418:4: enumLiteral_1= '?' 6548 // InternalProblem.g:2365:4: enumLiteral_1= '?'
6723 { 6549 {
6724 enumLiteral_1=(Token)match(input,47,FOLLOW_2); 6550 enumLiteral_1=(Token)match(input,46,FOLLOW_2);
6725 6551
6726 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 6552 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
6727 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1()); 6553 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
@@ -6758,31 +6584,27 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6758 6584
6759 protected DFA3 dfa3 = new DFA3(this); 6585 protected DFA3 dfa3 = new DFA3(this);
6760 protected DFA35 dfa35 = new DFA35(this); 6586 protected DFA35 dfa35 = new DFA35(this);
6761 static final String dfa_1s = "\23\uffff"; 6587 static final String dfa_1s = "\17\uffff";
6762 static final String dfa_2s = "\1\5\3\uffff\6\35\3\uffff\1\5\5\35"; 6588 static final String dfa_2s = "\1\5\3\uffff\4\36\3\uffff\1\5\3\36";
6763 static final String dfa_3s = "\1\57\3\uffff\1\42\5\50\3\uffff\1\54\5\50"; 6589 static final String dfa_3s = "\1\56\3\uffff\1\43\3\51\3\uffff\1\53\3\51";
6764 static final String dfa_4s = "\1\uffff\1\1\1\2\1\3\6\uffff\1\4\1\6\1\5\6\uffff"; 6590 static final String dfa_4s = "\1\uffff\1\1\1\2\1\3\4\uffff\1\4\1\6\1\5\4\uffff";
6765 static final String dfa_5s = "\23\uffff}>"; 6591 static final String dfa_5s = "\17\uffff}>";
6766 static final String[] dfa_6s = { 6592 static final String[] dfa_6s = {
6767 "\1\5\1\uffff\1\4\6\uffff\2\1\5\uffff\1\2\5\uffff\2\3\3\uffff\1\12\2\uffff\1\13\5\uffff\1\6\1\7\1\10\1\11\2\uffff\1\12", 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",
6768 "", 6594 "",
6769 "", 6595 "",
6770 "", 6596 "",
6771 "\1\12\4\uffff\1\14", 6597 "\1\10\4\uffff\1\12",
6772 "\1\12\4\uffff\1\14\5\uffff\1\15", 6598 "\1\10\4\uffff\1\12\5\uffff\1\13",
6773 "\1\12\4\uffff\1\14\5\uffff\1\15", 6599 "\1\10\4\uffff\1\12\5\uffff\1\13",
6774 "\1\12\4\uffff\1\14\5\uffff\1\15", 6600 "\1\10\4\uffff\1\12\5\uffff\1\13",
6775 "\1\12\4\uffff\1\14\5\uffff\1\15",
6776 "\1\12\4\uffff\1\14\5\uffff\1\15",
6777 "", 6601 "",
6778 "", 6602 "",
6779 "", 6603 "",
6780 "\1\16\43\uffff\1\17\1\20\1\21\1\22", 6604 "\1\14\44\uffff\1\15\1\16",
6781 "\1\12\4\uffff\1\14\5\uffff\1\15", 6605 "\1\10\4\uffff\1\12\5\uffff\1\13",
6782 "\1\12\4\uffff\1\14\5\uffff\1\15", 6606 "\1\10\4\uffff\1\12\5\uffff\1\13",
6783 "\1\12\4\uffff\1\14\5\uffff\1\15", 6607 "\1\10\4\uffff\1\12\5\uffff\1\13"
6784 "\1\12\4\uffff\1\14\5\uffff\1\15",
6785 "\1\12\4\uffff\1\14\5\uffff\1\15"
6786 }; 6608 };
6787 6609
6788 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); 6610 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -6809,74 +6631,56 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6809 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 )"; 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 )";
6810 } 6632 }
6811 } 6633 }
6812 static final String dfa_7s = "\76\uffff"; 6634 static final String dfa_7s = "\54\uffff";
6813 static final String dfa_8s = "\1\5\6\35\1\uffff\1\4\1\5\6\21\1\6\1\15\1\21\1\15\5\35\1\4\1\5\3\6\1\uffff\6\21\1\6\1\15\7\21\2\6\1\21\1\5\3\6\6\21\2\6\1\21"; 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";
6814 static final String dfa_9s = "\1\57\1\35\5\50\1\uffff\1\55\1\54\1\36\5\50\1\6\1\54\1\36\1\42\5\50\1\55\1\54\1\6\2\55\1\uffff\1\36\5\50\1\6\1\54\1\36\5\50\1\54\2\6\1\36\1\54\1\6\2\55\5\50\1\54\2\6\1\36"; 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";
6815 static final String dfa_10s = "\7\uffff\1\2\26\uffff\1\1\37\uffff"; 6637 static final String dfa_10s = "\5\uffff\1\2\21\uffff\1\1\24\uffff";
6816 static final String dfa_11s = "\76\uffff}>"; 6638 static final String dfa_11s = "\54\uffff}>";
6817 static final String[] dfa_12s = { 6639 static final String[] dfa_12s = {
6818 "\1\2\1\uffff\1\1\30\uffff\1\7\10\uffff\1\3\1\4\1\5\1\6\2\uffff\1\7", 6640 "\1\2\1\uffff\1\1\31\uffff\1\5\10\uffff\1\3\1\4\2\uffff\1\5",
6819 "\1\10", 6641 "\1\6",
6820 "\1\10\12\uffff\1\11", 6642 "\1\6\12\uffff\1\7",
6821 "\1\10\12\uffff\1\11", 6643 "\1\6\12\uffff\1\7",
6822 "\1\10\12\uffff\1\11", 6644 "\1\6\12\uffff\1\7",
6823 "\1\10\12\uffff\1\11",
6824 "\1\10\12\uffff\1\11",
6825 "", 6645 "",
6826 "\1\22\1\13\1\21\1\12\26\uffff\1\23\12\uffff\1\14\1\15\1\16\1\17\1\20", 6646 "\1\17\1\11\1\16\1\10\1\15\26\uffff\1\20\12\uffff\1\12\1\13\1\14",
6827 "\1\24\43\uffff\1\25\1\26\1\27\1\30", 6647 "\1\21\44\uffff\1\22\1\23",
6828 "\1\31\14\uffff\1\23", 6648 "\1\24\14\uffff\1\20",
6829 "\1\31\14\uffff\1\23\11\uffff\1\32", 6649 "\1\24\14\uffff\1\20\11\uffff\1\25",
6830 "\1\31\14\uffff\1\23\11\uffff\1\32", 6650 "\1\24\14\uffff\1\20\11\uffff\1\25",
6831 "\1\31\14\uffff\1\23\11\uffff\1\32", 6651 "\1\24\14\uffff\1\20\11\uffff\1\25",
6832 "\1\31\14\uffff\1\23\11\uffff\1\32", 6652 "\1\16\1\uffff\1\15",
6833 "\1\31\14\uffff\1\23\11\uffff\1\32", 6653 "\1\24\14\uffff\1\20",
6834 "\1\21", 6654 "\1\26\3\uffff\1\24\14\uffff\1\20",
6835 "\1\33\3\uffff\1\31\14\uffff\1\23\14\uffff\1\34\1\35", 6655 "\1\24\14\uffff\1\20",
6836 "\1\31\14\uffff\1\23", 6656 "\1\5\24\uffff\1\27",
6837 "\1\7\24\uffff\1\36", 6657 "\1\6\12\uffff\1\7",
6838 "\1\10\12\uffff\1\11", 6658 "\1\6\12\uffff\1\7",
6839 "\1\10\12\uffff\1\11", 6659 "\1\6\12\uffff\1\7",
6840 "\1\10\12\uffff\1\11", 6660 "\1\37\1\31\1\36\1\30\1\35\41\uffff\1\32\1\33\1\34",
6841 "\1\10\12\uffff\1\11", 6661 "\1\40\44\uffff\1\41\1\42",
6842 "\1\10\12\uffff\1\11", 6662 "\1\43\1\uffff\1\44",
6843 "\1\47\1\40\1\46\1\37\41\uffff\1\41\1\42\1\43\1\44\1\45",
6844 "\1\50\43\uffff\1\51\1\52\1\53\1\54",
6845 "\1\55",
6846 "\1\60\32\uffff\1\57\13\uffff\1\56",
6847 "\1\60\32\uffff\1\57\13\uffff\1\56",
6848 "", 6663 "",
6849 "\1\31\14\uffff\1\23", 6664 "\1\24\14\uffff\1\20",
6850 "\1\31\14\uffff\1\23\11\uffff\1\61", 6665 "\1\24\14\uffff\1\20\11\uffff\1\45",
6851 "\1\31\14\uffff\1\23\11\uffff\1\61", 6666 "\1\24\14\uffff\1\20\11\uffff\1\45",
6852 "\1\31\14\uffff\1\23\11\uffff\1\61", 6667 "\1\24\14\uffff\1\20\11\uffff\1\45",
6853 "\1\31\14\uffff\1\23\11\uffff\1\61", 6668 "\1\36\1\uffff\1\35",
6854 "\1\31\14\uffff\1\23\11\uffff\1\61", 6669 "\1\24\14\uffff\1\20",
6855 "\1\46", 6670 "\1\46\3\uffff\1\24\14\uffff\1\20",
6856 "\1\62\3\uffff\1\31\14\uffff\1\23\14\uffff\1\63\1\64", 6671 "\1\24\14\uffff\1\20",
6857 "\1\31\14\uffff\1\23", 6672 "\1\24\14\uffff\1\20\11\uffff\1\25",
6858 "\1\31\14\uffff\1\23\11\uffff\1\32", 6673 "\1\24\14\uffff\1\20\11\uffff\1\25",
6859 "\1\31\14\uffff\1\23\11\uffff\1\32", 6674 "\1\24\14\uffff\1\20\11\uffff\1\25",
6860 "\1\31\14\uffff\1\23\11\uffff\1\32", 6675 "\1\24\14\uffff\1\20",
6861 "\1\31\14\uffff\1\23\11\uffff\1\32", 6676 "\1\24\14\uffff\1\20",
6862 "\1\31\14\uffff\1\23\11\uffff\1\32", 6677 "\1\47\44\uffff\1\50\1\51",
6863 "\1\31\14\uffff\1\23\14\uffff\1\34\1\35", 6678 "\1\52\1\uffff\1\53",
6864 "\1\60", 6679 "\1\24\14\uffff\1\20\11\uffff\1\45",
6865 "\1\60", 6680 "\1\24\14\uffff\1\20\11\uffff\1\45",
6866 "\1\31\14\uffff\1\23", 6681 "\1\24\14\uffff\1\20\11\uffff\1\45",
6867 "\1\65\43\uffff\1\66\1\67\1\70\1\71", 6682 "\1\24\14\uffff\1\20",
6868 "\1\72", 6683 "\1\24\14\uffff\1\20"
6869 "\1\75\32\uffff\1\74\13\uffff\1\73",
6870 "\1\75\32\uffff\1\74\13\uffff\1\73",
6871 "\1\31\14\uffff\1\23\11\uffff\1\61",
6872 "\1\31\14\uffff\1\23\11\uffff\1\61",
6873 "\1\31\14\uffff\1\23\11\uffff\1\61",
6874 "\1\31\14\uffff\1\23\11\uffff\1\61",
6875 "\1\31\14\uffff\1\23\11\uffff\1\61",
6876 "\1\31\14\uffff\1\23\14\uffff\1\63\1\64",
6877 "\1\75",
6878 "\1\75",
6879 "\1\31\14\uffff\1\23"
6880 }; 6684 };
6881 6685
6882 static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s); 6686 static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s);
@@ -6907,44 +6711,42 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
6907 6711
6908 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); 6712 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
6909 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); 6713 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
6910 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x00001E0000000020L}); 6714 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x00000C0000000020L});
6911 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000002000L}); 6715 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000004000L});
6912 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x00009E091820C0A2L}); 6716 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x00004C12304180A2L});
6913 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000008000L}); 6717 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000010000L});
6914 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000052000L}); 6718 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x00000000000A4000L});
6915 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00001E00000000A0L}); 6719 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00000C00000000A0L});
6916 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000062000L}); 6720 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x00000000000C4000L});
6917 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00001E0000D000A0L}); 6721 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00000C0001A000A0L});
6918 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x00001E0000D800A0L}); 6722 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x00000C0001B000A0L});
6919 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000042000L}); 6723 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000084000L});
6920 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x00001E0000100020L}); 6724 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x00000C0000200020L});
6921 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x00000000001A0000L}); 6725 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000340000L});
6922 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100000L}); 6726 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000200000L});
6923 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x00001E0001000020L}); 6727 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x00000C0002000020L});
6924 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000040L}); 6728 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000040L});
6925 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000002000000L}); 6729 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000004000000L});
6926 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004000002L}); 6730 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000008000002L});
6927 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x00001E0010000020L}); 6731 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x00000C0020000020L});
6928 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000000L}); 6732 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000040000000L});
6929 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00001E00400000A0L}); 6733 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00000C00800000A0L});
6930 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000040020000L}); 6734 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000080040000L});
6931 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000080002000L}); 6735 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000100004000L});
6932 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x00001E01000000A0L}); 6736 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x00000C02000000A0L});
6933 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000082000L}); 6737 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000104000L});
6934 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000020002L}); 6738 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000040002L});
6935 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000220000000L}); 6739 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000440000000L});
6936 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x00003E00400000F0L}); 6740 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x00001C00800001F0L});
6937 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x00003E00000000F0L}); 6741 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x00001C00000001F0L});
6938 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000400000000L}); 6742 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000800000000L});
6939 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000460000000000L}); 6743 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x00002C0000000000L});
6940 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000020L}); 6744 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000020L});
6941 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000022000L}); 6745 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000044000L});
6942 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000003000000000L}); 6746 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000006000000000L});
6943 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000004000000000L}); 6747 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000008000000000L});
6944 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000008000000040L}); 6748 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000010000000040L});
6945 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000010000000002L}); 6749 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000020000000002L});
6946 public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000180000002000L}); 6750 public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000140L});
6947 public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000180000000000L});
6948 public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000200200000040L});
6949 6751
6950} \ No newline at end of file 6752} \ No newline at end of file
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
index 603f12e3..01188c37 100644
--- 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
@@ -1026,22 +1026,22 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1026 public class ConstantElements extends AbstractParserRuleElementFinder { 1026 public class ConstantElements extends AbstractParserRuleElementFinder {
1027 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Constant"); 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); 1028 private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
1029 private final RuleCall cIntConstantParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1029 private final RuleCall cRealConstantParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1030 private final RuleCall cRealConstantParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1); 1030 private final RuleCall cIntConstantParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
1031 private final RuleCall cStringConstantParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2); 1031 private final RuleCall cStringConstantParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
1032 1032
1033 //Constant: 1033 //Constant:
1034 // IntConstant | RealConstant | StringConstant; 1034 // RealConstant | IntConstant | StringConstant;
1035 @Override public ParserRule getRule() { return rule; } 1035 @Override public ParserRule getRule() { return rule; }
1036 1036
1037 //IntConstant | RealConstant | StringConstant 1037 //RealConstant | IntConstant | StringConstant
1038 public Alternatives getAlternatives() { return cAlternatives; } 1038 public Alternatives getAlternatives() { return cAlternatives; }
1039 1039
1040 //IntConstant
1041 public RuleCall getIntConstantParserRuleCall_0() { return cIntConstantParserRuleCall_0; }
1042
1043 //RealConstant 1040 //RealConstant
1044 public RuleCall getRealConstantParserRuleCall_1() { return cRealConstantParserRuleCall_1; } 1041 public RuleCall getRealConstantParserRuleCall_0() { return cRealConstantParserRuleCall_0; }
1042
1043 //IntConstant
1044 public RuleCall getIntConstantParserRuleCall_1() { return cIntConstantParserRuleCall_1; }
1045 1045
1046 //StringConstant 1046 //StringConstant
1047 public RuleCall getStringConstantParserRuleCall_2() { return cStringConstantParserRuleCall_2; } 1047 public RuleCall getStringConstantParserRuleCall_2() { return cStringConstantParserRuleCall_2; }
@@ -1340,14 +1340,12 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1340 private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0); 1340 private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
1341 private final Keyword cTrueKeyword_1 = (Keyword)cAlternatives.eContents().get(1); 1341 private final Keyword cTrueKeyword_1 = (Keyword)cAlternatives.eContents().get(1);
1342 private final Keyword cFalseKeyword_2 = (Keyword)cAlternatives.eContents().get(2); 1342 private final Keyword cFalseKeyword_2 = (Keyword)cAlternatives.eContents().get(2);
1343 private final Keyword cEKeyword_3 = (Keyword)cAlternatives.eContents().get(3);
1344 private final Keyword cEKeyword_4 = (Keyword)cAlternatives.eContents().get(4);
1345 1343
1346 //Identifier: 1344 //Identifier:
1347 // ID | "true" | "false" | "e" | "E"; 1345 // ID | "true" | "false";
1348 @Override public ParserRule getRule() { return rule; } 1346 @Override public ParserRule getRule() { return rule; }
1349 1347
1350 //ID | "true" | "false" | "e" | "E" 1348 //ID | "true" | "false"
1351 public Alternatives getAlternatives() { return cAlternatives; } 1349 public Alternatives getAlternatives() { return cAlternatives; }
1352 1350
1353 //ID 1351 //ID
@@ -1358,12 +1356,6 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1358 1356
1359 //"false" 1357 //"false"
1360 public Keyword getFalseKeyword_2() { return cFalseKeyword_2; } 1358 public Keyword getFalseKeyword_2() { return cFalseKeyword_2; }
1361
1362 //"e"
1363 public Keyword getEKeyword_3() { return cEKeyword_3; }
1364
1365 //"E"
1366 public Keyword getEKeyword_4() { return cEKeyword_4; }
1367 } 1359 }
1368 public class IntegerElements extends AbstractParserRuleElementFinder { 1360 public class IntegerElements extends AbstractParserRuleElementFinder {
1369 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Integer"); 1361 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Integer");
@@ -1388,80 +1380,48 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1388 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Real"); 1380 private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.Real");
1389 private final Group cGroup = (Group)rule.eContents().get(1); 1381 private final Group cGroup = (Group)rule.eContents().get(1);
1390 private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0); 1382 private final Keyword cHyphenMinusKeyword_0 = (Keyword)cGroup.eContents().get(0);
1391 private final RuleCall cINTTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1); 1383 private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
1392 private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2); 1384 private final RuleCall cEXPONENTIALTerminalRuleCall_1_0 = (RuleCall)cAlternatives_1.eContents().get(0);
1393 private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0); 1385 private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
1394 private final Keyword cFullStopKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0); 1386 private final RuleCall cINTTerminalRuleCall_1_1_0 = (RuleCall)cGroup_1_1.eContents().get(0);
1395 private final RuleCall cINTTerminalRuleCall_2_0_1 = (RuleCall)cGroup_2_0.eContents().get(1); 1387 private final Keyword cFullStopKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
1396 private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1); 1388 private final Alternatives cAlternatives_1_1_2 = (Alternatives)cGroup_1_1.eContents().get(2);
1397 private final Group cGroup_2_1_0 = (Group)cGroup_2_1.eContents().get(0); 1389 private final RuleCall cINTTerminalRuleCall_1_1_2_0 = (RuleCall)cAlternatives_1_1_2.eContents().get(0);
1398 private final Keyword cFullStopKeyword_2_1_0_0 = (Keyword)cGroup_2_1_0.eContents().get(0); 1390 private final RuleCall cEXPONENTIALTerminalRuleCall_1_1_2_1 = (RuleCall)cAlternatives_1_1_2.eContents().get(1);
1399 private final RuleCall cINTTerminalRuleCall_2_1_0_1 = (RuleCall)cGroup_2_1_0.eContents().get(1); 1391
1400 private final Alternatives cAlternatives_2_1_1 = (Alternatives)cGroup_2_1.eContents().get(1); 1392 //Real returns ecore::EDouble:
1401 private final Keyword cEKeyword_2_1_1_0 = (Keyword)cAlternatives_2_1_1.eContents().get(0); 1393 // "-"? (EXPONENTIAL | INT "." (INT | EXPONENTIAL));
1402 private final Keyword cEKeyword_2_1_1_1 = (Keyword)cAlternatives_2_1_1.eContents().get(1);
1403 private final Alternatives cAlternatives_2_1_2 = (Alternatives)cGroup_2_1.eContents().get(2);
1404 private final Keyword cHyphenMinusKeyword_2_1_2_0 = (Keyword)cAlternatives_2_1_2.eContents().get(0);
1405 private final Keyword cPlusSignKeyword_2_1_2_1 = (Keyword)cAlternatives_2_1_2.eContents().get(1);
1406 private final RuleCall cINTTerminalRuleCall_2_1_3 = (RuleCall)cGroup_2_1.eContents().get(3);
1407
1408 //Real returns ecore::EDouble hidden():
1409 // "-"? INT ("." INT | ("." INT)? ("e" | "E") ("-" | "+")? INT);
1410 @Override public ParserRule getRule() { return rule; } 1394 @Override public ParserRule getRule() { return rule; }
1411 1395
1412 //"-"? INT ("." INT | ("." INT)? ("e" | "E") ("-" | "+")? INT) 1396 //"-"? (EXPONENTIAL | INT "." (INT | EXPONENTIAL))
1413 public Group getGroup() { return cGroup; } 1397 public Group getGroup() { return cGroup; }
1414 1398
1415 //"-"? 1399 //"-"?
1416 public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; } 1400 public Keyword getHyphenMinusKeyword_0() { return cHyphenMinusKeyword_0; }
1417 1401
1418 //INT 1402 //(EXPONENTIAL | INT "." (INT | EXPONENTIAL))
1419 public RuleCall getINTTerminalRuleCall_1() { return cINTTerminalRuleCall_1; } 1403 public Alternatives getAlternatives_1() { return cAlternatives_1; }
1420
1421 //("." INT | ("." INT)? ("e" | "E") ("-" | "+")? INT)
1422 public Alternatives getAlternatives_2() { return cAlternatives_2; }
1423 1404
1424 //"." INT 1405 //EXPONENTIAL
1425 public Group getGroup_2_0() { return cGroup_2_0; } 1406 public RuleCall getEXPONENTIALTerminalRuleCall_1_0() { return cEXPONENTIALTerminalRuleCall_1_0; }
1426 1407
1427 //"." 1408 //INT "." (INT | EXPONENTIAL)
1428 public Keyword getFullStopKeyword_2_0_0() { return cFullStopKeyword_2_0_0; } 1409 public Group getGroup_1_1() { return cGroup_1_1; }
1429 1410
1430 //INT 1411 //INT
1431 public RuleCall getINTTerminalRuleCall_2_0_1() { return cINTTerminalRuleCall_2_0_1; } 1412 public RuleCall getINTTerminalRuleCall_1_1_0() { return cINTTerminalRuleCall_1_1_0; }
1432
1433 //("." INT)? ("e" | "E") ("-" | "+")? INT
1434 public Group getGroup_2_1() { return cGroup_2_1; }
1435
1436 //("." INT)?
1437 public Group getGroup_2_1_0() { return cGroup_2_1_0; }
1438 1413
1439 //"." 1414 //"."
1440 public Keyword getFullStopKeyword_2_1_0_0() { return cFullStopKeyword_2_1_0_0; } 1415 public Keyword getFullStopKeyword_1_1_1() { return cFullStopKeyword_1_1_1; }
1441
1442 //INT
1443 public RuleCall getINTTerminalRuleCall_2_1_0_1() { return cINTTerminalRuleCall_2_1_0_1; }
1444
1445 //("e" | "E")
1446 public Alternatives getAlternatives_2_1_1() { return cAlternatives_2_1_1; }
1447
1448 //"e"
1449 public Keyword getEKeyword_2_1_1_0() { return cEKeyword_2_1_1_0; }
1450 1416
1451 //"E" 1417 //(INT | EXPONENTIAL)
1452 public Keyword getEKeyword_2_1_1_1() { return cEKeyword_2_1_1_1; } 1418 public Alternatives getAlternatives_1_1_2() { return cAlternatives_1_1_2; }
1453
1454 //("-" | "+")?
1455 public Alternatives getAlternatives_2_1_2() { return cAlternatives_2_1_2; }
1456
1457 //"-"
1458 public Keyword getHyphenMinusKeyword_2_1_2_0() { return cHyphenMinusKeyword_2_1_2_0; }
1459
1460 //"+"
1461 public Keyword getPlusSignKeyword_2_1_2_1() { return cPlusSignKeyword_2_1_2_1; }
1462 1419
1463 //INT 1420 //INT
1464 public RuleCall getINTTerminalRuleCall_2_1_3() { return cINTTerminalRuleCall_2_1_3; } 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; }
1465 } 1425 }
1466 1426
1467 public class LogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder { 1427 public class LogicValueElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
@@ -1566,6 +1526,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1566 private final IntegerElements pInteger; 1526 private final IntegerElements pInteger;
1567 private final RealElements pReal; 1527 private final RealElements pReal;
1568 private final TerminalRule tID; 1528 private final TerminalRule tID;
1529 private final TerminalRule tEXPONENTIAL;
1569 private final TerminalRule tSTRING; 1530 private final TerminalRule tSTRING;
1570 private final TerminalRule tQUOTED_ID; 1531 private final TerminalRule tQUOTED_ID;
1571 private final TerminalRule tSL_COMMENT; 1532 private final TerminalRule tSL_COMMENT;
@@ -1618,6 +1579,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1618 this.pInteger = new IntegerElements(); 1579 this.pInteger = new IntegerElements();
1619 this.pReal = new RealElements(); 1580 this.pReal = new RealElements();
1620 this.tID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.ID"); 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");
1621 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.STRING"); 1583 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.STRING");
1622 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QUOTED_ID"); 1584 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QUOTED_ID");
1623 this.tSL_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.SL_COMMENT"); 1585 this.tSL_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.SL_COMMENT");
@@ -1893,7 +1855,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1893 } 1855 }
1894 1856
1895 //Constant: 1857 //Constant:
1896 // IntConstant | RealConstant | StringConstant; 1858 // RealConstant | IntConstant | StringConstant;
1897 public ConstantElements getConstantAccess() { 1859 public ConstantElements getConstantAccess() {
1898 return pConstant; 1860 return pConstant;
1899 } 1861 }
@@ -2025,7 +1987,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
2025 } 1987 }
2026 1988
2027 //Identifier: 1989 //Identifier:
2028 // ID | "true" | "false" | "e" | "E"; 1990 // ID | "true" | "false";
2029 public IdentifierElements getIdentifierAccess() { 1991 public IdentifierElements getIdentifierAccess() {
2030 return pIdentifier; 1992 return pIdentifier;
2031 } 1993 }
@@ -2044,8 +2006,8 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
2044 return getIntegerAccess().getRule(); 2006 return getIntegerAccess().getRule();
2045 } 2007 }
2046 2008
2047 //Real returns ecore::EDouble hidden(): 2009 //Real returns ecore::EDouble:
2048 // "-"? INT ("." INT | ("." INT)? ("e" | "E") ("-" | "+")? INT); 2010 // "-"? (EXPONENTIAL | INT "." (INT | EXPONENTIAL));
2049 public RealElements getRealAccess() { 2011 public RealElements getRealAccess() {
2050 return pReal; 2012 return pReal;
2051 } 2013 }
@@ -2061,6 +2023,12 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
2061 return tID; 2023 return tID;
2062 } 2024 }
2063 2025
2026 //terminal EXPONENTIAL:
2027 // INT ("e" | "E") ("+" | "-")? INT;
2028 public TerminalRule getEXPONENTIALRule() {
2029 return tEXPONENTIAL;
2030 }
2031
2064 //@Override 2032 //@Override
2065 //terminal STRING: 2033 //terminal STRING:
2066 // '"' ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | '"'))* '"'; 2034 // '"' ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | '"'))* '"';
diff --git a/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend
index 9b1bb698..7a6eec6a 100644
--- a/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend
+++ b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemParsingTest.xtend
@@ -8,23 +8,55 @@ import org.eclipse.viatra.solver.language.model.problem.Problem
8import org.eclipse.xtext.testing.InjectWith 8import org.eclipse.xtext.testing.InjectWith
9import org.eclipse.xtext.testing.extensions.InjectionExtension 9import org.eclipse.xtext.testing.extensions.InjectionExtension
10import org.eclipse.xtext.testing.util.ParseHelper 10import org.eclipse.xtext.testing.util.ParseHelper
11import org.junit.jupiter.api.Assertions
12import org.junit.jupiter.api.Test 11import org.junit.jupiter.api.Test
13import org.junit.jupiter.api.^extension.ExtendWith 12import org.junit.jupiter.api.^extension.ExtendWith
14 13
14import static org.hamcrest.MatcherAssert.assertThat
15import static org.hamcrest.Matchers.*
16
15@ExtendWith(InjectionExtension) 17@ExtendWith(InjectionExtension)
16@InjectWith(ProblemInjectorProvider) 18@InjectWith(ProblemInjectorProvider)
17class ProblemParsingTest { 19class ProblemParsingTest {
18 @Inject 20 @Inject
19 ParseHelper<Problem> parseHelper 21 ParseHelper<Problem> parseHelper
20 22
23 @Inject
24 extension ProblemTestUtil
25
21 @Test 26 @Test
22 def void loadModel() { 27 def void exampleTest() {
23 val result = parseHelper.parse(''' 28 val it = parseHelper.parse('''
24 Hello Xtext! 29 class Family {
30 contains Person[] members
31 }
32
33 class Person {
34 Person[0..*] children opposite parent
35 Person[0..1] parent opposite children
36 int age
37 TaxStatus taxStatus
38 }
39
40 enum TaxStatus {
41 child, student, adult, retired
42 }
43
44 % A child cannot have any dependents.
45 error invalidTaxStatus(Person p) :-
46 taxStatus(p, child), children(p, _q).
47
48 Family('family').
49 members('family', anne): true.
50 members('family', bob).
51 members('family', ciri).
52 children(anne, ciri).
53 ?children(bob, ciri).
54 taxStatus(anne, adult).
55 age(anne, 35).
56 bobAge: 27.
57 age(bob, bobAge).
58 !age(ciri, bobAge).
25 ''') 59 ''')
26 Assertions.assertNotNull(result) 60 assertThat(errors, empty)
27 val errors = result.eResource.errors
28 Assertions.assertTrue(errors.isEmpty, '''Unexpected errors: «errors.join(", ")»''')
29 } 61 }
30} 62}
diff --git a/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemScopingTest.xtend b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemScopingTest.xtend
index 7872b0f7..7686e39e 100644
--- a/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemScopingTest.xtend
+++ b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemScopingTest.xtend
@@ -27,7 +27,8 @@ class ProblemScopingTest {
27 def void builtInArgumentTypeTest() { 27 def void builtInArgumentTypeTest() {
28 val it = parseHelper.parse(''' 28 val it = parseHelper.parse('''
29 pred predicate(node a, data b, int c). 29 pred predicate(node a, data b, int c).
30 ''').assertNoErrors 30 ''')
31 assertThat(errors, empty)
31 assertThat(pred('predicate').param(0).parameterType, equalTo(builtin.findClass('node'))) 32 assertThat(pred('predicate').param(0).parameterType, equalTo(builtin.findClass('node')))
32 assertThat(pred('predicate').param(1).parameterType, equalTo(builtin.findClass('data'))) 33 assertThat(pred('predicate').param(1).parameterType, equalTo(builtin.findClass('data')))
33 assertThat(pred('predicate').param(2).parameterType, equalTo(builtin.findClass('int'))) 34 assertThat(pred('predicate').param(2).parameterType, equalTo(builtin.findClass('int')))
@@ -37,7 +38,8 @@ class ProblemScopingTest {
37 def void builtiQualifiedArgumentTypeTest() { 38 def void builtiQualifiedArgumentTypeTest() {
38 val it = parseHelper.parse(''' 39 val it = parseHelper.parse('''
39 pred predicate(builtin::node a, builtin::data b, builtin::int c). 40 pred predicate(builtin::node a, builtin::data b, builtin::int c).
40 ''').assertNoErrors 41 ''')
42 assertThat(errors, empty)
41 assertThat(pred('predicate').param(0).parameterType, equalTo(builtin.findClass('node'))) 43 assertThat(pred('predicate').param(0).parameterType, equalTo(builtin.findClass('node')))
42 assertThat(pred('predicate').param(1).parameterType, equalTo(builtin.findClass('data'))) 44 assertThat(pred('predicate').param(1).parameterType, equalTo(builtin.findClass('data')))
43 assertThat(pred('predicate').param(2).parameterType, equalTo(builtin.findClass('int'))) 45 assertThat(pred('predicate').param(2).parameterType, equalTo(builtin.findClass('int')))
@@ -49,7 +51,8 @@ class ProblemScopingTest {
49 pred predicate(node a, node b). 51 pred predicate(node a, node b).
50 predicate(a, a). 52 predicate(a, a).
51 ?predicate(a, b). 53 ?predicate(a, b).
52 ''').assertNoErrors 54 ''')
55 assertThat(errors, empty)
53 assertThat(nodeNames, hasItems('a', 'b')) 56 assertThat(nodeNames, hasItems('a', 'b'))
54 assertThat(assertion(0).arg(0).node, equalTo(node('a'))) 57 assertThat(assertion(0).arg(0).node, equalTo(node('a')))
55 assertThat(assertion(0).arg(1).node, equalTo(node('a'))) 58 assertThat(assertion(0).arg(1).node, equalTo(node('a')))
@@ -63,7 +66,8 @@ class ProblemScopingTest {
63 pred predicate(node a, node b). 66 pred predicate(node a, node b).
64 predicate('a', 'a'). 67 predicate('a', 'a').
65 ?predicate('a', 'b'). 68 ?predicate('a', 'b').
66 ''').assertNoErrors 69 ''')
70 assertThat(errors, empty)
67 assertThat(nodeNames, hasItems("'a'", "'b'")) 71 assertThat(nodeNames, hasItems("'a'", "'b'"))
68 assertThat(assertion(0).arg(0).node, equalTo(node("'a'"))) 72 assertThat(assertion(0).arg(0).node, equalTo(node("'a'")))
69 assertThat(assertion(0).arg(1).node, equalTo(node("'a'"))) 73 assertThat(assertion(0).arg(1).node, equalTo(node("'a'")))
@@ -76,7 +80,8 @@ class ProblemScopingTest {
76 val it = parseHelper.parse(''' 80 val it = parseHelper.parse('''
77 pred predicate(node a). 81 pred predicate(node a).
78 predicate(int::new). 82 predicate(int::new).
79 ''').assertNoErrors 83 ''')
84 assertThat(errors, empty)
80 assertThat(nodes, empty) 85 assertThat(nodes, empty)
81 assertThat(assertion(0).arg(0).node, equalTo(builtin.findClass('int').newNode)) 86 assertThat(assertion(0).arg(0).node, equalTo(builtin.findClass('int').newNode))
82 } 87 }
@@ -86,7 +91,8 @@ class ProblemScopingTest {
86 val it = parseHelper.parse(''' 91 val it = parseHelper.parse('''
87 pred predicate(node a). 92 pred predicate(node a).
88 predicate(builtin::int::new). 93 predicate(builtin::int::new).
89 ''').assertNoErrors 94 ''')
95 assertThat(errors, empty)
90 assertThat(nodes, empty) 96 assertThat(nodes, empty)
91 assertThat(assertion(0).arg(0).node, equalTo(builtin.findClass('int').newNode)) 97 assertThat(assertion(0).arg(0).node, equalTo(builtin.findClass('int').newNode))
92 } 98 }
@@ -97,7 +103,8 @@ class ProblemScopingTest {
97 class Foo. 103 class Foo.
98 pred predicate(node a). 104 pred predicate(node a).
99 predicate(Foo::new). 105 predicate(Foo::new).
100 ''').assertNoErrors 106 ''')
107 assertThat(errors, empty)
101 assertThat(nodes, empty) 108 assertThat(nodes, empty)
102 assertThat(assertion(0).arg(0).node, equalTo(findClass('Foo').newNode)) 109 assertThat(assertion(0).arg(0).node, equalTo(findClass('Foo').newNode))
103 } 110 }
@@ -110,7 +117,8 @@ class ProblemScopingTest {
110 class Foo. 117 class Foo.
111 pred predicate(node a). 118 pred predicate(node a).
112 predicate(test::Foo::new). 119 predicate(test::Foo::new).
113 ''').assertNoErrors 120 ''')
121 assertThat(errors, empty)
114 assertThat(nodes, empty) 122 assertThat(nodes, empty)
115 assertThat(assertion(0).arg(0).node, equalTo(findClass('Foo').newNode)) 123 assertThat(assertion(0).arg(0).node, equalTo(findClass('Foo').newNode))
116 } 124 }
@@ -121,7 +129,8 @@ class ProblemScopingTest {
121 class Foo. 129 class Foo.
122 pred predicate(node a). 130 pred predicate(node a).
123 predicate(new). 131 predicate(new).
124 ''').assertNoErrors 132 ''')
133 assertThat(errors, empty)
125 assertThat(nodeNames, hasItem('new')) 134 assertThat(nodeNames, hasItem('new'))
126 assertThat(assertion(0).arg(0).node, not(equalTo(findClass('Foo').newNode))) 135 assertThat(assertion(0).arg(0).node, not(equalTo(findClass('Foo').newNode)))
127 } 136 }
@@ -131,7 +140,8 @@ class ProblemScopingTest {
131 val it = parseHelper.parse(''' 140 val it = parseHelper.parse('''
132 pred predicate(node a) :- node(b). 141 pred predicate(node a) :- node(b).
133 predicate(b). 142 predicate(b).
134 ''').assertNoErrors 143 ''')
144 assertThat(errors, empty)
135 assertThat(nodeNames, hasItem("b")) 145 assertThat(nodeNames, hasItem("b"))
136 assertThat(pred("predicate").conj(0).lit(0).arg(0).node, equalTo(node("b"))) 146 assertThat(pred("predicate").conj(0).lit(0).arg(0).node, equalTo(node("b")))
137 assertThat(assertion(0).arg(0).node, equalTo(node("b"))) 147 assertThat(assertion(0).arg(0).node, equalTo(node("b")))
@@ -141,7 +151,8 @@ class ProblemScopingTest {
141 def void quotedNodeInPredicateTest() { 151 def void quotedNodeInPredicateTest() {
142 val it = parseHelper.parse(''' 152 val it = parseHelper.parse('''
143 pred predicate(node a) :- node('b'). 153 pred predicate(node a) :- node('b').
144 ''').assertNoErrors 154 ''')
155 assertThat(errors, empty)
145 assertThat(nodeNames, hasItem("'b'")) 156 assertThat(nodeNames, hasItem("'b'"))
146 assertThat(pred("predicate").conj(0).lit(0).arg(0).node, equalTo(node("'b'"))) 157 assertThat(pred("predicate").conj(0).lit(0).arg(0).node, equalTo(node("'b'")))
147 } 158 }
diff --git a/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemTestUtil.xtend b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemTestUtil.xtend
index 98b53675..b16de2b5 100644
--- a/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemTestUtil.xtend
+++ b/language/src/test/java/org/eclipse/viatra/solver/language/tests/ProblemTestUtil.xtend
@@ -1,6 +1,5 @@
1package org.eclipse.viatra.solver.language.tests 1package org.eclipse.viatra.solver.language.tests
2 2
3import org.eclipse.emf.ecore.util.EcoreUtil
4import org.eclipse.viatra.solver.language.ProblemUtil 3import org.eclipse.viatra.solver.language.ProblemUtil
5import org.eclipse.viatra.solver.language.model.problem.Argument 4import org.eclipse.viatra.solver.language.model.problem.Argument
6import org.eclipse.viatra.solver.language.model.problem.Assertion 5import org.eclipse.viatra.solver.language.model.problem.Assertion
@@ -17,19 +16,14 @@ import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition
17import org.eclipse.viatra.solver.language.model.problem.Problem 16import org.eclipse.viatra.solver.language.model.problem.Problem
18import org.eclipse.viatra.solver.language.model.problem.Variable 17import org.eclipse.viatra.solver.language.model.problem.Variable
19import org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument 18import org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument
20import org.junit.jupiter.api.Assertions
21 19
22class ProblemTestUtil { 20class ProblemTestUtil {
23 def builtin(Problem it) { 21 def builtin(Problem it) {
24 ProblemUtil.getBuiltInLibrary(it).get 22 ProblemUtil.getBuiltInLibrary(it).get
25 } 23 }
26 24
27 def assertNoErrors(Problem it) { 25 def errors(Problem it) {
28 Assertions.assertNotNull(it) 26 eResource.errors
29 EcoreUtil.resolveAll(it)
30 val errors = eResource.errors
31 Assertions.assertTrue(errors.isEmpty, '''Unexpected errors: «errors.join(", ")»''')
32 it
33 } 27 }
34 28
35 def nodeNames(Problem it) { 29 def nodeNames(Problem it) {