aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-06-27 17:59:54 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-06-27 18:09:46 +0200
commit5785f36b17d2b290d88c05fee54e39060a07b6d4 (patch)
tree31f4f319b493d6f29e13ef63fe46eb18935178b5
parentFix running outside of Eclipse (diff)
downloadrefinery-5785f36b17d2b290d88c05fee54e39060a07b6d4.tar.gz
refinery-5785f36b17d2b290d88c05fee54e39060a07b6d4.tar.zst
refinery-5785f36b17d2b290d88c05fee54e39060a07b6d4.zip
Customize client-side CodeMirror mode
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g16
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens16
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java696
-rw-r--r--language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java146
-rw-r--r--language-mwe2/build.gradle3
-rw-r--r--language-mwe2/src/main/java/org/eclipse/viatra/solver/language/mwe2/ProblemWebIntegrationFragment.java59
-rw-r--r--language-web/src/main/webapp/index.html4
-rw-r--r--language-web/src/main/webapp/script.js2
-rw-r--r--language-web/src/main/webapp/style.css11
-rw-r--r--language-web/src/main/webapp/xtext-resources/generated/mode-problem.js30
-rw-r--r--language/build.gradle1
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe220
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/Problem.xtext6
-rw-r--r--language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java2
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/Problem.xtextbinbin6159 -> 6292 bytes
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.g12
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens14
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemLexer.java694
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblemParser.java179
-rw-r--r--language/src/main/xtext-gen/org/eclipse/viatra/solver/language/services/ProblemGrammarAccess.java38
-rw-r--r--settings.gradle1
21 files changed, 1086 insertions, 864 deletions
diff --git a/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g b/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g
index 0a7c03ba..c53ed3c4 100644
--- a/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g
+++ b/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.g
@@ -4135,9 +4135,9 @@ rule__QualifiedName__Group_1_1__0__Impl
4135 } 4135 }
4136: 4136:
4137( 4137(
4138 { before(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); } 4138 { before(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0()); }
4139 ':' 4139 '::'
4140 { after(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); } 4140 { after(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0()); }
4141) 4141)
4142; 4142;
4143finally { 4143finally {
@@ -4189,9 +4189,9 @@ rule__QualifiedName__Group_1_2__0__Impl
4189 } 4189 }
4190: 4190:
4191( 4191(
4192 { before(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0()); } 4192 { before(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_2_0()); }
4193 ':' 4193 '::'
4194 { after(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0()); } 4194 { after(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_2_0()); }
4195) 4195)
4196; 4196;
4197finally { 4197finally {
@@ -5025,14 +5025,14 @@ RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"';
5025 5025
5026RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\''; 5026RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\'';
5027 5027
5028RULE_SL_COMMENT : ('%'|'//') ~(('\n'|'\r'))* ('\r'? '\n')?;
5029
5028RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; 5030RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
5029 5031
5030RULE_INT : ('0'..'9')+; 5032RULE_INT : ('0'..'9')+;
5031 5033
5032RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; 5034RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
5033 5035
5034RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
5035
5036RULE_WS : (' '|'\t'|'\r'|'\n')+; 5036RULE_WS : (' '|'\t'|'\r'|'\n')+;
5037 5037
5038RULE_ANY_OTHER : .; 5038RULE_ANY_OTHER : .;
diff --git a/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens b/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens
index c0cdd3c6..49838545 100644
--- a/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens
+++ b/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblem.tokens
@@ -2,23 +2,24 @@
2'('=33 2'('=33
3')'=34 3')'=34
4'*'=18 4'*'=18
5'+'=42 5'+'=43
6'+='=43 6'+='=44
7','=13 7','=13
8'.'=12 8'.'=12
9'..'=38 9'..'=38
10':'=36 10':'=36
11':-'=35 11':-'=35
12'::'=39
12';'=14 13';'=14
13'='=17 14'='=17
14'?'=23 15'?'=23
15'['=30 16'['=30
16']'=31 17']'=31
17'abstract'=39 18'abstract'=40
18'class'=25 19'class'=25
19'contains'=40 20'contains'=41
20'enum'=29 21'enum'=29
21'error'=41 22'error'=42
22'extends'=26 23'extends'=26
23'false'=20 24'false'=20
24'opposite'=32 25'opposite'=32
@@ -33,9 +34,9 @@
33RULE_ANY_OTHER=11 34RULE_ANY_OTHER=11
34RULE_ID=6 35RULE_ID=6
35RULE_INT=4 36RULE_INT=4
36RULE_ML_COMMENT=8 37RULE_ML_COMMENT=9
37RULE_QUOTED_ID=5 38RULE_QUOTED_ID=5
38RULE_SL_COMMENT=9 39RULE_SL_COMMENT=8
39RULE_STRING=7 40RULE_STRING=7
40RULE_WS=10 41RULE_WS=10
41T__12=12 42T__12=12
@@ -70,3 +71,4 @@ T__40=40
70T__41=41 71T__41=41
71T__42=42 72T__42=42
72T__43=43 73T__43=43
74T__44=44
diff --git a/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java b/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java
index e8f6f12d..36b14a55 100644
--- a/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java
+++ b/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemLexer.java
@@ -28,14 +28,14 @@ public class InternalProblemLexer extends Lexer {
28 public static final int RULE_INT=4; 28 public static final int RULE_INT=4;
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=8; 31 public static final int RULE_ML_COMMENT=9;
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=7; 37 public static final int RULE_STRING=7;
38 public static final int RULE_SL_COMMENT=9; 38 public static final int RULE_SL_COMMENT=8;
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;
@@ -49,6 +49,7 @@ public class InternalProblemLexer extends Lexer {
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=10;
51 public static final int RULE_ANY_OTHER=11; 51 public static final int RULE_ANY_OTHER=11;
52 public static final int T__44=44;
52 public static final int T__40=40; 53 public static final int T__40=40;
53 public static final int T__41=41; 54 public static final int T__41=41;
54 public static final int T__42=42; 55 public static final int T__42=42;
@@ -625,10 +626,10 @@ public class InternalProblemLexer extends Lexer {
625 try { 626 try {
626 int _type = T__39; 627 int _type = T__39;
627 int _channel = DEFAULT_TOKEN_CHANNEL; 628 int _channel = DEFAULT_TOKEN_CHANNEL;
628 // InternalProblem.g:38:7: ( 'abstract' ) 629 // InternalProblem.g:38:7: ( '::' )
629 // InternalProblem.g:38:9: 'abstract' 630 // InternalProblem.g:38:9: '::'
630 { 631 {
631 match("abstract"); 632 match("::");
632 633
633 634
634 } 635 }
@@ -646,10 +647,10 @@ public class InternalProblemLexer extends Lexer {
646 try { 647 try {
647 int _type = T__40; 648 int _type = T__40;
648 int _channel = DEFAULT_TOKEN_CHANNEL; 649 int _channel = DEFAULT_TOKEN_CHANNEL;
649 // InternalProblem.g:39:7: ( 'contains' ) 650 // InternalProblem.g:39:7: ( 'abstract' )
650 // InternalProblem.g:39:9: 'contains' 651 // InternalProblem.g:39:9: 'abstract'
651 { 652 {
652 match("contains"); 653 match("abstract");
653 654
654 655
655 } 656 }
@@ -667,10 +668,10 @@ public class InternalProblemLexer extends Lexer {
667 try { 668 try {
668 int _type = T__41; 669 int _type = T__41;
669 int _channel = DEFAULT_TOKEN_CHANNEL; 670 int _channel = DEFAULT_TOKEN_CHANNEL;
670 // InternalProblem.g:40:7: ( 'error' ) 671 // InternalProblem.g:40:7: ( 'contains' )
671 // InternalProblem.g:40:9: 'error' 672 // InternalProblem.g:40:9: 'contains'
672 { 673 {
673 match("error"); 674 match("contains");
674 675
675 676
676 } 677 }
@@ -688,10 +689,11 @@ public class InternalProblemLexer extends Lexer {
688 try { 689 try {
689 int _type = T__42; 690 int _type = T__42;
690 int _channel = DEFAULT_TOKEN_CHANNEL; 691 int _channel = DEFAULT_TOKEN_CHANNEL;
691 // InternalProblem.g:41:7: ( '+' ) 692 // InternalProblem.g:41:7: ( 'error' )
692 // InternalProblem.g:41:9: '+' 693 // InternalProblem.g:41:9: 'error'
693 { 694 {
694 match('+'); 695 match("error");
696
695 697
696 } 698 }
697 699
@@ -708,8 +710,28 @@ public class InternalProblemLexer extends Lexer {
708 try { 710 try {
709 int _type = T__43; 711 int _type = T__43;
710 int _channel = DEFAULT_TOKEN_CHANNEL; 712 int _channel = DEFAULT_TOKEN_CHANNEL;
711 // InternalProblem.g:42:7: ( '+=' ) 713 // InternalProblem.g:42:7: ( '+' )
712 // InternalProblem.g:42:9: '+=' 714 // InternalProblem.g:42:9: '+'
715 {
716 match('+');
717
718 }
719
720 state.type = _type;
721 state.channel = _channel;
722 }
723 finally {
724 }
725 }
726 // $ANTLR end "T__43"
727
728 // $ANTLR start "T__44"
729 public final void mT__44() throws RecognitionException {
730 try {
731 int _type = T__44;
732 int _channel = DEFAULT_TOKEN_CHANNEL;
733 // InternalProblem.g:43:7: ( '+=' )
734 // InternalProblem.g:43:9: '+='
713 { 735 {
714 match("+="); 736 match("+=");
715 737
@@ -722,7 +744,7 @@ public class InternalProblemLexer extends Lexer {
722 finally { 744 finally {
723 } 745 }
724 } 746 }
725 // $ANTLR end "T__43" 747 // $ANTLR end "T__44"
726 748
727 // $ANTLR start "RULE_STRING" 749 // $ANTLR start "RULE_STRING"
728 public final void mRULE_STRING() throws RecognitionException { 750 public final void mRULE_STRING() throws RecognitionException {
@@ -854,57 +876,65 @@ public class InternalProblemLexer extends Lexer {
854 } 876 }
855 // $ANTLR end "RULE_QUOTED_ID" 877 // $ANTLR end "RULE_QUOTED_ID"
856 878
857 // $ANTLR start "RULE_ID" 879 // $ANTLR start "RULE_SL_COMMENT"
858 public final void mRULE_ID() throws RecognitionException { 880 public final void mRULE_SL_COMMENT() throws RecognitionException {
859 try { 881 try {
860 int _type = RULE_ID; 882 int _type = RULE_SL_COMMENT;
861 int _channel = DEFAULT_TOKEN_CHANNEL; 883 int _channel = DEFAULT_TOKEN_CHANNEL;
862 // InternalProblem.g:5028:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) 884 // InternalProblem.g:5028:17: ( ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
863 // InternalProblem.g:5028:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 885 // InternalProblem.g:5028:19: ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
864 { 886 {
865 // InternalProblem.g:5028:11: ( '^' )? 887 // InternalProblem.g:5028:19: ( '%' | '//' )
866 int alt3=2; 888 int alt3=2;
867 int LA3_0 = input.LA(1); 889 int LA3_0 = input.LA(1);
868 890
869 if ( (LA3_0=='^') ) { 891 if ( (LA3_0=='%') ) {
870 alt3=1; 892 alt3=1;
871 } 893 }
894 else if ( (LA3_0=='/') ) {
895 alt3=2;
896 }
897 else {
898 NoViableAltException nvae =
899 new NoViableAltException("", 3, 0, input);
900
901 throw nvae;
902 }
872 switch (alt3) { 903 switch (alt3) {
873 case 1 : 904 case 1 :
874 // InternalProblem.g:5028:11: '^' 905 // InternalProblem.g:5028:20: '%'
875 { 906 {
876 match('^'); 907 match('%');
877 908
878 } 909 }
879 break; 910 break;
911 case 2 :
912 // InternalProblem.g:5028:24: '//'
913 {
914 match("//");
880 915
881 }
882 916
883 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { 917 }
884 input.consume(); 918 break;
885 919
886 } 920 }
887 else {
888 MismatchedSetException mse = new MismatchedSetException(null,input);
889 recover(mse);
890 throw mse;}
891 921
892 // InternalProblem.g:5028:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 922 // InternalProblem.g:5028:30: (~ ( ( '\\n' | '\\r' ) ) )*
893 loop4: 923 loop4:
894 do { 924 do {
895 int alt4=2; 925 int alt4=2;
896 int LA4_0 = input.LA(1); 926 int LA4_0 = input.LA(1);
897 927
898 if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) { 928 if ( ((LA4_0>='\u0000' && LA4_0<='\t')||(LA4_0>='\u000B' && LA4_0<='\f')||(LA4_0>='\u000E' && LA4_0<='\uFFFF')) ) {
899 alt4=1; 929 alt4=1;
900 } 930 }
901 931
902 932
903 switch (alt4) { 933 switch (alt4) {
904 case 1 : 934 case 1 :
905 // InternalProblem.g: 935 // InternalProblem.g:5028:30: ~ ( ( '\\n' | '\\r' ) )
906 { 936 {
907 if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { 937 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') ) {
908 input.consume(); 938 input.consume();
909 939
910 } 940 }
@@ -922,6 +952,42 @@ public class InternalProblemLexer extends Lexer {
922 } 952 }
923 } while (true); 953 } while (true);
924 954
955 // InternalProblem.g:5028:46: ( ( '\\r' )? '\\n' )?
956 int alt6=2;
957 int LA6_0 = input.LA(1);
958
959 if ( (LA6_0=='\n'||LA6_0=='\r') ) {
960 alt6=1;
961 }
962 switch (alt6) {
963 case 1 :
964 // InternalProblem.g:5028:47: ( '\\r' )? '\\n'
965 {
966 // InternalProblem.g:5028:47: ( '\\r' )?
967 int alt5=2;
968 int LA5_0 = input.LA(1);
969
970 if ( (LA5_0=='\r') ) {
971 alt5=1;
972 }
973 switch (alt5) {
974 case 1 :
975 // InternalProblem.g:5028:47: '\\r'
976 {
977 match('\r');
978
979 }
980 break;
981
982 }
983
984 match('\n');
985
986 }
987 break;
988
989 }
990
925 991
926 } 992 }
927 993
@@ -931,44 +997,74 @@ public class InternalProblemLexer extends Lexer {
931 finally { 997 finally {
932 } 998 }
933 } 999 }
934 // $ANTLR end "RULE_ID" 1000 // $ANTLR end "RULE_SL_COMMENT"
935 1001
936 // $ANTLR start "RULE_INT" 1002 // $ANTLR start "RULE_ID"
937 public final void mRULE_INT() throws RecognitionException { 1003 public final void mRULE_ID() throws RecognitionException {
938 try { 1004 try {
939 int _type = RULE_INT; 1005 int _type = RULE_ID;
940 int _channel = DEFAULT_TOKEN_CHANNEL; 1006 int _channel = DEFAULT_TOKEN_CHANNEL;
941 // InternalProblem.g:5030:10: ( ( '0' .. '9' )+ ) 1007 // InternalProblem.g:5030:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
942 // InternalProblem.g:5030:12: ( '0' .. '9' )+ 1008 // InternalProblem.g:5030:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
943 { 1009 {
944 // InternalProblem.g:5030:12: ( '0' .. '9' )+ 1010 // InternalProblem.g:5030:11: ( '^' )?
945 int cnt5=0; 1011 int alt7=2;
946 loop5: 1012 int LA7_0 = input.LA(1);
1013
1014 if ( (LA7_0=='^') ) {
1015 alt7=1;
1016 }
1017 switch (alt7) {
1018 case 1 :
1019 // InternalProblem.g:5030:11: '^'
1020 {
1021 match('^');
1022
1023 }
1024 break;
1025
1026 }
1027
1028 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
1029 input.consume();
1030
1031 }
1032 else {
1033 MismatchedSetException mse = new MismatchedSetException(null,input);
1034 recover(mse);
1035 throw mse;}
1036
1037 // InternalProblem.g:5030:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
1038 loop8:
947 do { 1039 do {
948 int alt5=2; 1040 int alt8=2;
949 int LA5_0 = input.LA(1); 1041 int LA8_0 = input.LA(1);
950 1042
951 if ( ((LA5_0>='0' && LA5_0<='9')) ) { 1043 if ( ((LA8_0>='0' && LA8_0<='9')||(LA8_0>='A' && LA8_0<='Z')||LA8_0=='_'||(LA8_0>='a' && LA8_0<='z')) ) {
952 alt5=1; 1044 alt8=1;
953 } 1045 }
954 1046
955 1047
956 switch (alt5) { 1048 switch (alt8) {
957 case 1 : 1049 case 1 :
958 // InternalProblem.g:5030:13: '0' .. '9' 1050 // InternalProblem.g:
959 { 1051 {
960 matchRange('0','9'); 1052 if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
1053 input.consume();
1054
1055 }
1056 else {
1057 MismatchedSetException mse = new MismatchedSetException(null,input);
1058 recover(mse);
1059 throw mse;}
1060
961 1061
962 } 1062 }
963 break; 1063 break;
964 1064
965 default : 1065 default :
966 if ( cnt5 >= 1 ) break loop5; 1066 break loop8;
967 EarlyExitException eee =
968 new EarlyExitException(5, input);
969 throw eee;
970 } 1067 }
971 cnt5++;
972 } while (true); 1068 } while (true);
973 1069
974 1070
@@ -980,57 +1076,46 @@ public class InternalProblemLexer extends Lexer {
980 finally { 1076 finally {
981 } 1077 }
982 } 1078 }
983 // $ANTLR end "RULE_INT" 1079 // $ANTLR end "RULE_ID"
984 1080
985 // $ANTLR start "RULE_ML_COMMENT" 1081 // $ANTLR start "RULE_INT"
986 public final void mRULE_ML_COMMENT() throws RecognitionException { 1082 public final void mRULE_INT() throws RecognitionException {
987 try { 1083 try {
988 int _type = RULE_ML_COMMENT; 1084 int _type = RULE_INT;
989 int _channel = DEFAULT_TOKEN_CHANNEL; 1085 int _channel = DEFAULT_TOKEN_CHANNEL;
990 // InternalProblem.g:5032:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 1086 // InternalProblem.g:5032:10: ( ( '0' .. '9' )+ )
991 // InternalProblem.g:5032:19: '/*' ( options {greedy=false; } : . )* '*/' 1087 // InternalProblem.g:5032:12: ( '0' .. '9' )+
992 { 1088 {
993 match("/*"); 1089 // InternalProblem.g:5032:12: ( '0' .. '9' )+
994 1090 int cnt9=0;
995 // InternalProblem.g:5032:24: ( options {greedy=false; } : . )* 1091 loop9:
996 loop6:
997 do { 1092 do {
998 int alt6=2; 1093 int alt9=2;
999 int LA6_0 = input.LA(1); 1094 int LA9_0 = input.LA(1);
1000
1001 if ( (LA6_0=='*') ) {
1002 int LA6_1 = input.LA(2);
1003 1095
1004 if ( (LA6_1=='/') ) { 1096 if ( ((LA9_0>='0' && LA9_0<='9')) ) {
1005 alt6=2; 1097 alt9=1;
1006 }
1007 else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) {
1008 alt6=1;
1009 }
1010
1011
1012 }
1013 else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) {
1014 alt6=1;
1015 } 1098 }
1016 1099
1017 1100
1018 switch (alt6) { 1101 switch (alt9) {
1019 case 1 : 1102 case 1 :
1020 // InternalProblem.g:5032:52: . 1103 // InternalProblem.g:5032:13: '0' .. '9'
1021 { 1104 {
1022 matchAny(); 1105 matchRange('0','9');
1023 1106
1024 } 1107 }
1025 break; 1108 break;
1026 1109
1027 default : 1110 default :
1028 break loop6; 1111 if ( cnt9 >= 1 ) break loop9;
1112 EarlyExitException eee =
1113 new EarlyExitException(9, input);
1114 throw eee;
1029 } 1115 }
1116 cnt9++;
1030 } while (true); 1117 } while (true);
1031 1118
1032 match("*/");
1033
1034 1119
1035 } 1120 }
1036 1121
@@ -1040,86 +1125,56 @@ public class InternalProblemLexer extends Lexer {
1040 finally { 1125 finally {
1041 } 1126 }
1042 } 1127 }
1043 // $ANTLR end "RULE_ML_COMMENT" 1128 // $ANTLR end "RULE_INT"
1044 1129
1045 // $ANTLR start "RULE_SL_COMMENT" 1130 // $ANTLR start "RULE_ML_COMMENT"
1046 public final void mRULE_SL_COMMENT() throws RecognitionException { 1131 public final void mRULE_ML_COMMENT() throws RecognitionException {
1047 try { 1132 try {
1048 int _type = RULE_SL_COMMENT; 1133 int _type = RULE_ML_COMMENT;
1049 int _channel = DEFAULT_TOKEN_CHANNEL; 1134 int _channel = DEFAULT_TOKEN_CHANNEL;
1050 // InternalProblem.g:5034:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 1135 // InternalProblem.g:5034:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
1051 // InternalProblem.g:5034:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 1136 // InternalProblem.g:5034:19: '/*' ( options {greedy=false; } : . )* '*/'
1052 { 1137 {
1053 match("//"); 1138 match("/*");
1054 1139
1055 // InternalProblem.g:5034:24: (~ ( ( '\\n' | '\\r' ) ) )* 1140 // InternalProblem.g:5034:24: ( options {greedy=false; } : . )*
1056 loop7: 1141 loop10:
1057 do { 1142 do {
1058 int alt7=2; 1143 int alt10=2;
1059 int LA7_0 = input.LA(1); 1144 int LA10_0 = input.LA(1);
1145
1146 if ( (LA10_0=='*') ) {
1147 int LA10_1 = input.LA(2);
1148
1149 if ( (LA10_1=='/') ) {
1150 alt10=2;
1151 }
1152 else if ( ((LA10_1>='\u0000' && LA10_1<='.')||(LA10_1>='0' && LA10_1<='\uFFFF')) ) {
1153 alt10=1;
1154 }
1060 1155
1061 if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) { 1156
1062 alt7=1; 1157 }
1158 else if ( ((LA10_0>='\u0000' && LA10_0<=')')||(LA10_0>='+' && LA10_0<='\uFFFF')) ) {
1159 alt10=1;
1063 } 1160 }
1064 1161
1065 1162
1066 switch (alt7) { 1163 switch (alt10) {
1067 case 1 : 1164 case 1 :
1068 // InternalProblem.g:5034:24: ~ ( ( '\\n' | '\\r' ) ) 1165 // InternalProblem.g:5034:52: .
1069 { 1166 {
1070 if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { 1167 matchAny();
1071 input.consume();
1072
1073 }
1074 else {
1075 MismatchedSetException mse = new MismatchedSetException(null,input);
1076 recover(mse);
1077 throw mse;}
1078
1079 1168
1080 } 1169 }
1081 break; 1170 break;
1082 1171
1083 default : 1172 default :
1084 break loop7; 1173 break loop10;
1085 } 1174 }
1086 } while (true); 1175 } while (true);
1087 1176
1088 // InternalProblem.g:5034:40: ( ( '\\r' )? '\\n' )? 1177 match("*/");
1089 int alt9=2;
1090 int LA9_0 = input.LA(1);
1091
1092 if ( (LA9_0=='\n'||LA9_0=='\r') ) {
1093 alt9=1;
1094 }
1095 switch (alt9) {
1096 case 1 :
1097 // InternalProblem.g:5034:41: ( '\\r' )? '\\n'
1098 {
1099 // InternalProblem.g:5034:41: ( '\\r' )?
1100 int alt8=2;
1101 int LA8_0 = input.LA(1);
1102
1103 if ( (LA8_0=='\r') ) {
1104 alt8=1;
1105 }
1106 switch (alt8) {
1107 case 1 :
1108 // InternalProblem.g:5034:41: '\\r'
1109 {
1110 match('\r');
1111
1112 }
1113 break;
1114
1115 }
1116
1117 match('\n');
1118
1119 }
1120 break;
1121
1122 }
1123 1178
1124 1179
1125 } 1180 }
@@ -1130,7 +1185,7 @@ public class InternalProblemLexer extends Lexer {
1130 finally { 1185 finally {
1131 } 1186 }
1132 } 1187 }
1133 // $ANTLR end "RULE_SL_COMMENT" 1188 // $ANTLR end "RULE_ML_COMMENT"
1134 1189
1135 // $ANTLR start "RULE_WS" 1190 // $ANTLR start "RULE_WS"
1136 public final void mRULE_WS() throws RecognitionException { 1191 public final void mRULE_WS() throws RecognitionException {
@@ -1141,18 +1196,18 @@ public class InternalProblemLexer extends Lexer {
1141 // InternalProblem.g:5036:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1196 // InternalProblem.g:5036:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1142 { 1197 {
1143 // InternalProblem.g:5036:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1198 // InternalProblem.g:5036:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1144 int cnt10=0; 1199 int cnt11=0;
1145 loop10: 1200 loop11:
1146 do { 1201 do {
1147 int alt10=2; 1202 int alt11=2;
1148 int LA10_0 = input.LA(1); 1203 int LA11_0 = input.LA(1);
1149 1204
1150 if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) { 1205 if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
1151 alt10=1; 1206 alt11=1;
1152 } 1207 }
1153 1208
1154 1209
1155 switch (alt10) { 1210 switch (alt11) {
1156 case 1 : 1211 case 1 :
1157 // InternalProblem.g: 1212 // InternalProblem.g:
1158 { 1213 {
@@ -1170,12 +1225,12 @@ public class InternalProblemLexer extends Lexer {
1170 break; 1225 break;
1171 1226
1172 default : 1227 default :
1173 if ( cnt10 >= 1 ) break loop10; 1228 if ( cnt11 >= 1 ) break loop11;
1174 EarlyExitException eee = 1229 EarlyExitException eee =
1175 new EarlyExitException(10, input); 1230 new EarlyExitException(11, input);
1176 throw eee; 1231 throw eee;
1177 } 1232 }
1178 cnt10++; 1233 cnt11++;
1179 } while (true); 1234 } while (true);
1180 1235
1181 1236
@@ -1210,10 +1265,10 @@ public class InternalProblemLexer extends Lexer {
1210 // $ANTLR end "RULE_ANY_OTHER" 1265 // $ANTLR end "RULE_ANY_OTHER"
1211 1266
1212 public void mTokens() throws RecognitionException { 1267 public void mTokens() throws RecognitionException {
1213 // InternalProblem.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) 1268 // 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 | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER )
1214 int alt11=40; 1269 int alt12=41;
1215 alt11 = dfa11.predict(input); 1270 alt12 = dfa12.predict(input);
1216 switch (alt11) { 1271 switch (alt12) {
1217 case 1 : 1272 case 1 :
1218 // InternalProblem.g:1:10: T__12 1273 // InternalProblem.g:1:10: T__12
1219 { 1274 {
@@ -1439,56 +1494,63 @@ public class InternalProblemLexer extends Lexer {
1439 } 1494 }
1440 break; 1495 break;
1441 case 33 : 1496 case 33 :
1442 // InternalProblem.g:1:202: RULE_STRING 1497 // InternalProblem.g:1:202: T__44
1443 { 1498 {
1444 mRULE_STRING(); 1499 mT__44();
1445 1500
1446 } 1501 }
1447 break; 1502 break;
1448 case 34 : 1503 case 34 :
1449 // InternalProblem.g:1:214: RULE_QUOTED_ID 1504 // InternalProblem.g:1:208: RULE_STRING
1450 { 1505 {
1451 mRULE_QUOTED_ID(); 1506 mRULE_STRING();
1452 1507
1453 } 1508 }
1454 break; 1509 break;
1455 case 35 : 1510 case 35 :
1456 // InternalProblem.g:1:229: RULE_ID 1511 // InternalProblem.g:1:220: RULE_QUOTED_ID
1457 { 1512 {
1458 mRULE_ID(); 1513 mRULE_QUOTED_ID();
1459 1514
1460 } 1515 }
1461 break; 1516 break;
1462 case 36 : 1517 case 36 :
1463 // InternalProblem.g:1:237: RULE_INT 1518 // InternalProblem.g:1:235: RULE_SL_COMMENT
1464 { 1519 {
1465 mRULE_INT(); 1520 mRULE_SL_COMMENT();
1466 1521
1467 } 1522 }
1468 break; 1523 break;
1469 case 37 : 1524 case 37 :
1470 // InternalProblem.g:1:246: RULE_ML_COMMENT 1525 // InternalProblem.g:1:251: RULE_ID
1471 { 1526 {
1472 mRULE_ML_COMMENT(); 1527 mRULE_ID();
1473 1528
1474 } 1529 }
1475 break; 1530 break;
1476 case 38 : 1531 case 38 :
1477 // InternalProblem.g:1:262: RULE_SL_COMMENT 1532 // InternalProblem.g:1:259: RULE_INT
1478 { 1533 {
1479 mRULE_SL_COMMENT(); 1534 mRULE_INT();
1480 1535
1481 } 1536 }
1482 break; 1537 break;
1483 case 39 : 1538 case 39 :
1484 // InternalProblem.g:1:278: RULE_WS 1539 // InternalProblem.g:1:268: RULE_ML_COMMENT
1485 { 1540 {
1486 mRULE_WS(); 1541 mRULE_ML_COMMENT();
1487 1542
1488 } 1543 }
1489 break; 1544 break;
1490 case 40 : 1545 case 40 :
1491 // InternalProblem.g:1:286: RULE_ANY_OTHER 1546 // InternalProblem.g:1:284: RULE_WS
1547 {
1548 mRULE_WS();
1549
1550 }
1551 break;
1552 case 41 :
1553 // InternalProblem.g:1:292: RULE_ANY_OTHER
1492 { 1554 {
1493 mRULE_ANY_OTHER(); 1555 mRULE_ANY_OTHER();
1494 1556
@@ -1500,84 +1562,86 @@ public class InternalProblemLexer extends Lexer {
1500 } 1562 }
1501 1563
1502 1564
1503 protected DFA11 dfa11 = new DFA11(this); 1565 protected DFA12 dfa12 = new DFA12(this);
1504 static final String DFA11_eotS = 1566 static final String DFA12_eotS =
1505 "\1\uffff\1\43\2\uffff\2\47\2\uffff\3\47\2\uffff\2\47\4\uffff\1\47\2\uffff\1\75\2\47\1\101\3\41\2\uffff\1\41\6\uffff\1\47\1\uffff\1\47\2\uffff\3\47\2\uffff\5\47\4\uffff\1\47\4\uffff\2\47\10\uffff\17\47\1\145\1\47\1\147\5\47\1\155\5\47\1\uffff\1\47\1\uffff\1\164\1\47\1\166\2\47\1\uffff\1\171\1\47\1\173\1\47\1\175\1\47\1\uffff\1\47\1\uffff\2\47\1\uffff\1\47\1\uffff\1\47\1\uffff\1\u0084\1\u0085\1\47\1\u0087\2\47\2\uffff\1\u008a\1\uffff\1\u008b\1\u008c\3\uffff"; 1567 "\1\uffff\1\44\2\uffff\2\50\2\uffff\3\50\2\uffff\2\50\4\uffff\1\50\2\uffff\1\77\2\50\1\103\2\42\1\uffff\2\42\10\uffff\1\50\1\uffff\1\50\2\uffff\3\50\2\uffff\5\50\4\uffff\1\50\5\uffff\2\50\10\uffff\17\50\1\147\1\50\1\151\5\50\1\157\5\50\1\uffff\1\50\1\uffff\1\166\1\50\1\170\2\50\1\uffff\1\173\1\50\1\175\1\50\1\177\1\50\1\uffff\1\50\1\uffff\2\50\1\uffff\1\50\1\uffff\1\50\1\uffff\1\u0086\1\u0087\1\50\1\u0089\2\50\2\uffff\1\u008c\1\uffff\1\u008d\1\u008e\3\uffff";
1506 static final String DFA11_eofS = 1568 static final String DFA12_eofS =
1507 "\u008d\uffff"; 1569 "\u008f\uffff";
1508 static final String DFA11_minS = 1570 static final String DFA12_minS =
1509 "\1\0\1\56\2\uffff\1\145\1\162\2\uffff\1\162\1\141\1\156\2\uffff\1\154\1\156\4\uffff\1\160\2\uffff\1\55\1\143\1\142\1\75\2\0\1\101\2\uffff\1\52\6\uffff\1\146\1\uffff\1\145\2\uffff\1\165\1\154\1\153\2\uffff\1\141\1\156\1\164\1\165\1\162\4\uffff\1\160\4\uffff\1\157\1\163\10\uffff\1\145\1\144\1\142\1\145\1\163\1\156\1\163\1\164\1\145\1\155\2\157\1\160\1\164\1\162\1\60\1\154\1\60\1\145\1\157\1\163\1\141\1\156\1\60\1\162\1\163\1\145\1\162\1\163\1\uffff\1\145\1\uffff\1\60\1\167\1\60\1\151\1\144\1\uffff\1\60\1\151\1\60\1\141\1\60\1\155\1\uffff\1\156\1\uffff\1\156\1\163\1\uffff\1\164\1\uffff\1\143\1\uffff\2\60\1\163\1\60\1\145\1\164\2\uffff\1\60\1\uffff\2\60\3\uffff"; 1571 "\1\0\1\56\2\uffff\1\145\1\162\2\uffff\1\162\1\141\1\156\2\uffff\1\154\1\156\4\uffff\1\160\2\uffff\1\55\1\143\1\142\1\75\2\0\1\uffff\1\52\1\101\10\uffff\1\146\1\uffff\1\145\2\uffff\1\165\1\154\1\153\2\uffff\1\141\1\156\1\164\1\165\1\162\4\uffff\1\160\5\uffff\1\157\1\163\10\uffff\1\145\1\144\1\142\1\145\1\163\1\156\1\163\1\164\1\145\1\155\2\157\1\160\1\164\1\162\1\60\1\154\1\60\1\145\1\157\1\163\1\141\1\156\1\60\1\162\1\163\1\145\1\162\1\163\1\uffff\1\145\1\uffff\1\60\1\167\1\60\1\151\1\144\1\uffff\1\60\1\151\1\60\1\141\1\60\1\155\1\uffff\1\156\1\uffff\1\156\1\163\1\uffff\1\164\1\uffff\1\143\1\uffff\2\60\1\163\1\60\1\145\1\164\2\uffff\1\60\1\uffff\2\60\3\uffff";
1510 static final String DFA11_maxS = 1572 static final String DFA12_maxS =
1511 "\1\uffff\1\56\2\uffff\1\145\1\162\2\uffff\1\162\1\141\1\156\2\uffff\1\157\1\170\4\uffff\1\160\2\uffff\1\55\1\143\1\142\1\75\2\uffff\1\172\2\uffff\1\57\6\uffff\1\146\1\uffff\1\157\2\uffff\1\165\1\154\1\153\2\uffff\1\141\1\156\1\164\1\165\1\162\4\uffff\1\160\4\uffff\1\157\1\163\10\uffff\1\145\1\144\1\142\1\145\1\163\1\156\1\163\1\164\1\145\1\155\2\157\1\160\1\164\1\162\1\172\1\154\1\172\1\145\1\157\1\163\1\141\1\156\1\172\1\162\1\163\1\145\1\162\1\163\1\uffff\1\145\1\uffff\1\172\1\167\1\172\1\151\1\144\1\uffff\1\172\1\151\1\172\1\141\1\172\1\155\1\uffff\1\156\1\uffff\1\156\1\163\1\uffff\1\164\1\uffff\1\143\1\uffff\2\172\1\163\1\172\1\145\1\164\2\uffff\1\172\1\uffff\2\172\3\uffff"; 1573 "\1\uffff\1\56\2\uffff\1\145\1\162\2\uffff\1\162\1\141\1\156\2\uffff\1\157\1\170\4\uffff\1\160\2\uffff\1\72\1\143\1\142\1\75\2\uffff\1\uffff\1\57\1\172\10\uffff\1\146\1\uffff\1\157\2\uffff\1\165\1\154\1\153\2\uffff\1\141\1\156\1\164\1\165\1\162\4\uffff\1\160\5\uffff\1\157\1\163\10\uffff\1\145\1\144\1\142\1\145\1\163\1\156\1\163\1\164\1\145\1\155\2\157\1\160\1\164\1\162\1\172\1\154\1\172\1\145\1\157\1\163\1\141\1\156\1\172\1\162\1\163\1\145\1\162\1\163\1\uffff\1\145\1\uffff\1\172\1\167\1\172\1\151\1\144\1\uffff\1\172\1\151\1\172\1\141\1\172\1\155\1\uffff\1\156\1\uffff\1\156\1\163\1\uffff\1\164\1\uffff\1\143\1\uffff\2\172\1\163\1\172\1\145\1\164\2\uffff\1\172\1\uffff\2\172\3\uffff";
1512 static final String DFA11_acceptS = 1574 static final String DFA12_acceptS =
1513 "\2\uffff\1\2\1\3\2\uffff\1\6\1\7\3\uffff\1\13\1\14\2\uffff\1\20\1\21\1\23\1\24\1\uffff\1\26\1\27\7\uffff\1\43\1\44\1\uffff\1\47\1\50\1\33\1\1\1\2\1\3\1\uffff\1\43\1\uffff\1\6\1\7\3\uffff\1\13\1\14\5\uffff\1\20\1\21\1\23\1\24\1\uffff\1\26\1\27\1\30\1\31\2\uffff\1\40\1\37\1\41\1\42\1\44\1\45\1\46\1\47\35\uffff\1\5\1\uffff\1\10\5\uffff\1\22\6\uffff\1\11\1\uffff\1\16\2\uffff\1\36\1\uffff\1\32\1\uffff\1\4\6\uffff\1\15\1\12\1\uffff\1\17\2\uffff\1\35\1\25\1\34"; 1575 "\2\uffff\1\2\1\3\2\uffff\1\6\1\7\3\uffff\1\13\1\14\2\uffff\1\20\1\21\1\23\1\24\1\uffff\1\26\1\27\6\uffff\1\44\2\uffff\1\45\1\46\1\50\1\51\1\33\1\1\1\2\1\3\1\uffff\1\45\1\uffff\1\6\1\7\3\uffff\1\13\1\14\5\uffff\1\20\1\21\1\23\1\24\1\uffff\1\26\1\27\1\30\1\34\1\31\2\uffff\1\41\1\40\1\42\1\43\1\44\1\47\1\46\1\50\35\uffff\1\5\1\uffff\1\10\5\uffff\1\22\6\uffff\1\11\1\uffff\1\16\2\uffff\1\37\1\uffff\1\32\1\uffff\1\4\6\uffff\1\15\1\12\1\uffff\1\17\2\uffff\1\36\1\25\1\35";
1514 static final String DFA11_specialS = 1576 static final String DFA12_specialS =
1515 "\1\2\31\uffff\1\1\1\0\161\uffff}>"; 1577 "\1\0\31\uffff\1\2\1\1\163\uffff}>";
1516 static final String[] DFA11_transitionS = { 1578 static final String[] DFA12_transitionS = {
1517 "\11\41\2\40\2\41\1\40\22\41\1\40\1\13\1\32\4\41\1\33\1\24\1\25\1\7\1\31\1\2\1\41\1\1\1\37\12\36\1\26\1\3\1\41\1\6\1\41\1\14\1\41\32\35\1\21\1\41\1\22\1\34\1\35\1\41\1\30\1\35\1\15\1\35\1\16\1\11\10\35\1\23\1\5\1\35\1\4\1\27\1\10\1\12\5\35\1\17\1\41\1\20\uff82\41", 1579 "\11\42\2\41\2\42\1\41\22\42\1\41\1\13\1\32\2\42\1\34\1\42\1\33\1\24\1\25\1\7\1\31\1\2\1\42\1\1\1\35\12\40\1\26\1\3\1\42\1\6\1\42\1\14\1\42\32\37\1\21\1\42\1\22\1\36\1\37\1\42\1\30\1\37\1\15\1\37\1\16\1\11\10\37\1\23\1\5\1\37\1\4\1\27\1\10\1\12\5\37\1\17\1\42\1\20\uff82\42",
1518 "\1\42", 1580 "\1\43",
1519 "", 1581 "",
1520 "", 1582 "",
1521 "\1\46", 1583 "\1\47",
1522 "\1\50", 1584 "\1\51",
1523 "", 1585 "",
1524 "", 1586 "",
1525 "\1\53",
1526 "\1\54", 1587 "\1\54",
1527 "\1\55", 1588 "\1\55",
1589 "\1\56",
1528 "", 1590 "",
1529 "", 1591 "",
1530 "\1\60\2\uffff\1\61", 1592 "\1\61\2\uffff\1\62",
1531 "\1\63\3\uffff\1\64\5\uffff\1\62", 1593 "\1\64\3\uffff\1\65\5\uffff\1\63",
1532 "", 1594 "",
1533 "", 1595 "",
1534 "", 1596 "",
1535 "", 1597 "",
1536 "\1\71", 1598 "\1\72",
1537 "", 1599 "",
1538 "", 1600 "",
1539 "\1\74", 1601 "\1\75\14\uffff\1\76",
1540 "\1\76",
1541 "\1\77",
1542 "\1\100", 1602 "\1\100",
1543 "\0\102", 1603 "\1\101",
1544 "\0\103", 1604 "\1\102",
1545 "\32\47\4\uffff\1\47\1\uffff\32\47", 1605 "\0\104",
1606 "\0\105",
1546 "", 1607 "",
1608 "\1\107\4\uffff\1\106",
1609 "\32\50\4\uffff\1\50\1\uffff\32\50",
1547 "", 1610 "",
1548 "\1\105\4\uffff\1\106",
1549 "", 1611 "",
1550 "", 1612 "",
1551 "", 1613 "",
1552 "", 1614 "",
1553 "", 1615 "",
1554 "", 1616 "",
1555 "\1\110",
1556 "", 1617 "",
1557 "\1\111\11\uffff\1\112", 1618 "\1\112",
1558 "", 1619 "",
1559 "", 1620 "\1\113\11\uffff\1\114",
1560 "\1\113",
1561 "\1\114",
1562 "\1\115",
1563 "", 1621 "",
1564 "", 1622 "",
1623 "\1\115",
1565 "\1\116", 1624 "\1\116",
1566 "\1\117", 1625 "\1\117",
1626 "",
1627 "",
1567 "\1\120", 1628 "\1\120",
1568 "\1\121", 1629 "\1\121",
1569 "\1\122", 1630 "\1\122",
1631 "\1\123",
1632 "\1\124",
1570 "", 1633 "",
1571 "", 1634 "",
1572 "", 1635 "",
1573 "", 1636 "",
1574 "\1\123", 1637 "\1\125",
1575 "", 1638 "",
1576 "", 1639 "",
1577 "", 1640 "",
1578 "", 1641 "",
1579 "\1\124", 1642 "",
1580 "\1\125", 1643 "\1\126",
1644 "\1\127",
1581 "", 1645 "",
1582 "", 1646 "",
1583 "", 1647 "",
@@ -1586,8 +1650,6 @@ public class InternalProblemLexer extends Lexer {
1586 "", 1650 "",
1587 "", 1651 "",
1588 "", 1652 "",
1589 "\1\126",
1590 "\1\127",
1591 "\1\130", 1653 "\1\130",
1592 "\1\131", 1654 "\1\131",
1593 "\1\132", 1655 "\1\132",
@@ -1601,193 +1663,197 @@ public class InternalProblemLexer extends Lexer {
1601 "\1\142", 1663 "\1\142",
1602 "\1\143", 1664 "\1\143",
1603 "\1\144", 1665 "\1\144",
1604 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1666 "\1\145",
1605 "\1\146", 1667 "\1\146",
1606 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1668 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1607 "\1\150", 1669 "\1\150",
1608 "\1\151", 1670 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1609 "\1\152", 1671 "\1\152",
1610 "\1\153", 1672 "\1\153",
1611 "\1\154", 1673 "\1\154",
1612 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1674 "\1\155",
1613 "\1\156", 1675 "\1\156",
1614 "\1\157", 1676 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1615 "\1\160", 1677 "\1\160",
1616 "\1\161", 1678 "\1\161",
1617 "\1\162", 1679 "\1\162",
1618 "",
1619 "\1\163", 1680 "\1\163",
1681 "\1\164",
1620 "", 1682 "",
1621 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47",
1622 "\1\165", 1683 "\1\165",
1623 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47",
1624 "\1\167",
1625 "\1\170",
1626 "", 1684 "",
1627 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1685 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1686 "\1\167",
1687 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1688 "\1\171",
1628 "\1\172", 1689 "\1\172",
1629 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1690 "",
1691 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1630 "\1\174", 1692 "\1\174",
1631 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1693 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1632 "\1\176", 1694 "\1\176",
1633 "", 1695 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1634 "\1\177",
1635 "",
1636 "\1\u0080", 1696 "\1\u0080",
1697 "",
1637 "\1\u0081", 1698 "\1\u0081",
1638 "", 1699 "",
1639 "\1\u0082", 1700 "\1\u0082",
1640 "",
1641 "\1\u0083", 1701 "\1\u0083",
1642 "", 1702 "",
1643 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1703 "\1\u0084",
1644 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1704 "",
1645 "\1\u0086", 1705 "\1\u0085",
1646 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1706 "",
1707 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1708 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1647 "\1\u0088", 1709 "\1\u0088",
1648 "\1\u0089", 1710 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1711 "\1\u008a",
1712 "\1\u008b",
1649 "", 1713 "",
1650 "", 1714 "",
1651 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1715 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1652 "", 1716 "",
1653 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1717 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1654 "\12\47\7\uffff\32\47\4\uffff\1\47\1\uffff\32\47", 1718 "\12\50\7\uffff\32\50\4\uffff\1\50\1\uffff\32\50",
1655 "", 1719 "",
1656 "", 1720 "",
1657 "" 1721 ""
1658 }; 1722 };
1659 1723
1660 static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS); 1724 static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
1661 static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS); 1725 static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
1662 static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS); 1726 static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
1663 static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS); 1727 static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
1664 static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS); 1728 static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
1665 static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS); 1729 static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
1666 static final short[][] DFA11_transition; 1730 static final short[][] DFA12_transition;
1667 1731
1668 static { 1732 static {
1669 int numStates = DFA11_transitionS.length; 1733 int numStates = DFA12_transitionS.length;
1670 DFA11_transition = new short[numStates][]; 1734 DFA12_transition = new short[numStates][];
1671 for (int i=0; i<numStates; i++) { 1735 for (int i=0; i<numStates; i++) {
1672 DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]); 1736 DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
1673 } 1737 }
1674 } 1738 }
1675 1739
1676 class DFA11 extends DFA { 1740 class DFA12 extends DFA {
1677 1741
1678 public DFA11(BaseRecognizer recognizer) { 1742 public DFA12(BaseRecognizer recognizer) {
1679 this.recognizer = recognizer; 1743 this.recognizer = recognizer;
1680 this.decisionNumber = 11; 1744 this.decisionNumber = 12;
1681 this.eot = DFA11_eot; 1745 this.eot = DFA12_eot;
1682 this.eof = DFA11_eof; 1746 this.eof = DFA12_eof;
1683 this.min = DFA11_min; 1747 this.min = DFA12_min;
1684 this.max = DFA11_max; 1748 this.max = DFA12_max;
1685 this.accept = DFA11_accept; 1749 this.accept = DFA12_accept;
1686 this.special = DFA11_special; 1750 this.special = DFA12_special;
1687 this.transition = DFA11_transition; 1751 this.transition = DFA12_transition;
1688 } 1752 }
1689 public String getDescription() { 1753 public String getDescription() {
1690 return "1:1: Tokens : ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; 1754 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 | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER );";
1691 } 1755 }
1692 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 1756 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1693 IntStream input = _input; 1757 IntStream input = _input;
1694 int _s = s; 1758 int _s = s;
1695 switch ( s ) { 1759 switch ( s ) {
1696 case 0 : 1760 case 0 :
1697 int LA11_27 = input.LA(1); 1761 int LA12_0 = input.LA(1);
1698 1762
1699 s = -1; 1763 s = -1;
1700 if ( ((LA11_27>='\u0000' && LA11_27<='\uFFFF')) ) {s = 67;} 1764 if ( (LA12_0=='.') ) {s = 1;}
1701 1765
1702 else s = 33; 1766 else if ( (LA12_0==',') ) {s = 2;}
1703 1767
1704 if ( s>=0 ) return s; 1768 else if ( (LA12_0==';') ) {s = 3;}
1705 break;
1706 case 1 :
1707 int LA11_26 = input.LA(1);
1708 1769
1709 s = -1; 1770 else if ( (LA12_0=='r') ) {s = 4;}
1710 if ( ((LA11_26>='\u0000' && LA11_26<='\uFFFF')) ) {s = 66;}
1711 1771
1712 else s = 33; 1772 else if ( (LA12_0=='p') ) {s = 5;}
1713 1773
1714 if ( s>=0 ) return s; 1774 else if ( (LA12_0=='=') ) {s = 6;}
1715 break;
1716 case 2 :
1717 int LA11_0 = input.LA(1);
1718 1775
1719 s = -1; 1776 else if ( (LA12_0=='*') ) {s = 7;}
1720 if ( (LA11_0=='.') ) {s = 1;}
1721 1777
1722 else if ( (LA11_0==',') ) {s = 2;} 1778 else if ( (LA12_0=='t') ) {s = 8;}
1723 1779
1724 else if ( (LA11_0==';') ) {s = 3;} 1780 else if ( (LA12_0=='f') ) {s = 9;}
1725 1781
1726 else if ( (LA11_0=='r') ) {s = 4;} 1782 else if ( (LA12_0=='u') ) {s = 10;}
1727 1783
1728 else if ( (LA11_0=='p') ) {s = 5;} 1784 else if ( (LA12_0=='!') ) {s = 11;}
1729 1785
1730 else if ( (LA11_0=='=') ) {s = 6;} 1786 else if ( (LA12_0=='?') ) {s = 12;}
1731 1787
1732 else if ( (LA11_0=='*') ) {s = 7;} 1788 else if ( (LA12_0=='c') ) {s = 13;}
1733 1789
1734 else if ( (LA11_0=='t') ) {s = 8;} 1790 else if ( (LA12_0=='e') ) {s = 14;}
1735 1791
1736 else if ( (LA11_0=='f') ) {s = 9;} 1792 else if ( (LA12_0=='{') ) {s = 15;}
1737 1793
1738 else if ( (LA11_0=='u') ) {s = 10;} 1794 else if ( (LA12_0=='}') ) {s = 16;}
1739 1795
1740 else if ( (LA11_0=='!') ) {s = 11;} 1796 else if ( (LA12_0=='[') ) {s = 17;}
1741 1797
1742 else if ( (LA11_0=='?') ) {s = 12;} 1798 else if ( (LA12_0==']') ) {s = 18;}
1743 1799
1744 else if ( (LA11_0=='c') ) {s = 13;} 1800 else if ( (LA12_0=='o') ) {s = 19;}
1745 1801
1746 else if ( (LA11_0=='e') ) {s = 14;} 1802 else if ( (LA12_0=='(') ) {s = 20;}
1747 1803
1748 else if ( (LA11_0=='{') ) {s = 15;} 1804 else if ( (LA12_0==')') ) {s = 21;}
1749 1805
1750 else if ( (LA11_0=='}') ) {s = 16;} 1806 else if ( (LA12_0==':') ) {s = 22;}
1751 1807
1752 else if ( (LA11_0=='[') ) {s = 17;} 1808 else if ( (LA12_0=='s') ) {s = 23;}
1753 1809
1754 else if ( (LA11_0==']') ) {s = 18;} 1810 else if ( (LA12_0=='a') ) {s = 24;}
1755 1811
1756 else if ( (LA11_0=='o') ) {s = 19;} 1812 else if ( (LA12_0=='+') ) {s = 25;}
1757 1813
1758 else if ( (LA11_0=='(') ) {s = 20;} 1814 else if ( (LA12_0=='\"') ) {s = 26;}
1759 1815
1760 else if ( (LA11_0==')') ) {s = 21;} 1816 else if ( (LA12_0=='\'') ) {s = 27;}
1761 1817
1762 else if ( (LA11_0==':') ) {s = 22;} 1818 else if ( (LA12_0=='%') ) {s = 28;}
1763 1819
1764 else if ( (LA11_0=='s') ) {s = 23;} 1820 else if ( (LA12_0=='/') ) {s = 29;}
1765 1821
1766 else if ( (LA11_0=='a') ) {s = 24;} 1822 else if ( (LA12_0=='^') ) {s = 30;}
1767 1823
1768 else if ( (LA11_0=='+') ) {s = 25;} 1824 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 = 31;}
1769 1825
1770 else if ( (LA11_0=='\"') ) {s = 26;} 1826 else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 32;}
1771 1827
1772 else if ( (LA11_0=='\'') ) {s = 27;} 1828 else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 33;}
1773 1829
1774 else if ( (LA11_0=='^') ) {s = 28;} 1830 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;}
1775 1831
1776 else if ( ((LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||LA11_0=='b'||LA11_0=='d'||(LA11_0>='g' && LA11_0<='n')||LA11_0=='q'||(LA11_0>='v' && LA11_0<='z')) ) {s = 29;} 1832 if ( s>=0 ) return s;
1833 break;
1834 case 1 :
1835 int LA12_27 = input.LA(1);
1777 1836
1778 else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 30;} 1837 s = -1;
1838 if ( ((LA12_27>='\u0000' && LA12_27<='\uFFFF')) ) {s = 69;}
1779 1839
1780 else if ( (LA11_0=='/') ) {s = 31;} 1840 else s = 34;
1781 1841
1782 else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 32;} 1842 if ( s>=0 ) return s;
1843 break;
1844 case 2 :
1845 int LA12_26 = input.LA(1);
1846
1847 s = -1;
1848 if ( ((LA12_26>='\u0000' && LA12_26<='\uFFFF')) ) {s = 68;}
1783 1849
1784 else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='#' && LA11_0<='&')||LA11_0=='-'||LA11_0=='<'||LA11_0=='>'||LA11_0=='@'||LA11_0=='\\'||LA11_0=='`'||LA11_0=='|'||(LA11_0>='~' && LA11_0<='\uFFFF')) ) {s = 33;} 1850 else s = 34;
1785 1851
1786 if ( s>=0 ) return s; 1852 if ( s>=0 ) return s;
1787 break; 1853 break;
1788 } 1854 }
1789 NoViableAltException nvae = 1855 NoViableAltException nvae =
1790 new NoViableAltException(getDescription(), 11, _s, input); 1856 new NoViableAltException(getDescription(), 12, _s, input);
1791 error(nvae); 1857 error(nvae);
1792 throw nvae; 1858 throw nvae;
1793 } 1859 }
diff --git a/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java b/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java
index 0f70a158..c93cb758 100644
--- a/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java
+++ b/language-ide/src/main/xtext-gen/org/eclipse/viatra/solver/language/ide/contentassist/antlr/internal/InternalProblemParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
22@SuppressWarnings("all") 22@SuppressWarnings("all")
23public class InternalProblemParser extends AbstractInternalContentAssistParser { 23public class InternalProblemParser extends AbstractInternalContentAssistParser {
24 public static final String[] tokenNames = new String[] { 24 public static final String[] tokenNames = new String[] {
25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_QUOTED_ID", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'.'", "','", "';'", "'refers'", "'pred'", "'='", "'*'", "'true'", "'false'", "'unknown'", "'!'", "'?'", "'problem'", "'class'", "'extends'", "'{'", "'}'", "'enum'", "'['", "']'", "'opposite'", "'('", "')'", "':-'", "':'", "'scope'", "'..'", "'abstract'", "'contains'", "'error'", "'+'", "'+='" 25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_QUOTED_ID", "RULE_ID", "RULE_STRING", "RULE_SL_COMMENT", "RULE_ML_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'.'", "','", "';'", "'refers'", "'pred'", "'='", "'*'", "'true'", "'false'", "'unknown'", "'!'", "'?'", "'problem'", "'class'", "'extends'", "'{'", "'}'", "'enum'", "'['", "']'", "'opposite'", "'('", "')'", "':-'", "':'", "'scope'", "'..'", "'::'", "'abstract'", "'contains'", "'error'", "'+'", "'+='"
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;
@@ -40,14 +40,14 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
40 public static final int RULE_INT=4; 40 public static final int RULE_INT=4;
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=8; 43 public static final int RULE_ML_COMMENT=9;
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=7; 49 public static final int RULE_STRING=7;
50 public static final int RULE_SL_COMMENT=9; 50 public static final int RULE_SL_COMMENT=8;
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;
@@ -61,6 +61,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
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=10;
63 public static final int RULE_ANY_OTHER=11; 63 public static final int RULE_ANY_OTHER=11;
64 public static final int T__44=44;
64 public static final int T__40=40; 65 public static final int T__40=40;
65 public static final int T__41=41; 66 public static final int T__41=41;
66 public static final int T__42=42; 67 public static final int T__42=42;
@@ -2121,7 +2122,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
2121 int alt1=5; 2122 int alt1=5;
2122 switch ( input.LA(1) ) { 2123 switch ( input.LA(1) ) {
2123 case 25: 2124 case 25:
2124 case 39: 2125 case 40:
2125 { 2126 {
2126 alt1=1; 2127 alt1=1;
2127 } 2128 }
@@ -2132,7 +2133,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
2132 } 2133 }
2133 break; 2134 break;
2134 case 16: 2135 case 16:
2135 case 41: 2136 case 42:
2136 { 2137 {
2137 alt1=3; 2138 alt1=3;
2138 } 2139 }
@@ -2516,7 +2517,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
2516 int alt5=2; 2517 int alt5=2;
2517 int LA5_0 = input.LA(1); 2518 int LA5_0 = input.LA(1);
2518 2519
2519 if ( (LA5_0==40) ) { 2520 if ( (LA5_0==41) ) {
2520 alt5=1; 2521 alt5=1;
2521 } 2522 }
2522 else if ( (LA5_0==15) ) { 2523 else if ( (LA5_0==15) ) {
@@ -2597,7 +2598,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
2597 int alt6=2; 2598 int alt6=2;
2598 int LA6_0 = input.LA(1); 2599 int LA6_0 = input.LA(1);
2599 2600
2600 if ( (LA6_0==41) ) { 2601 if ( (LA6_0==42) ) {
2601 alt6=1; 2602 alt6=1;
2602 } 2603 }
2603 else if ( (LA6_0==16) ) { 2604 else if ( (LA6_0==16) ) {
@@ -2835,7 +2836,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
2835 int alt9=2; 2836 int alt9=2;
2836 int LA9_0 = input.LA(1); 2837 int LA9_0 = input.LA(1);
2837 2838
2838 if ( (LA9_0==43) ) { 2839 if ( (LA9_0==44) ) {
2839 alt9=1; 2840 alt9=1;
2840 } 2841 }
2841 else if ( (LA9_0==17) ) { 2842 else if ( (LA9_0==17) ) {
@@ -3740,7 +3741,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
3740 int alt19=2; 3741 int alt19=2;
3741 int LA19_0 = input.LA(1); 3742 int LA19_0 = input.LA(1);
3742 3743
3743 if ( ((LA19_0>=RULE_QUOTED_ID && LA19_0<=RULE_ID)||LA19_0==16||(LA19_0>=19 && LA19_0<=20)||(LA19_0>=22 && LA19_0<=23)||LA19_0==25||LA19_0==29||LA19_0==37||LA19_0==39||LA19_0==41) ) { 3744 if ( ((LA19_0>=RULE_QUOTED_ID && LA19_0<=RULE_ID)||LA19_0==16||(LA19_0>=19 && LA19_0<=20)||(LA19_0>=22 && LA19_0<=23)||LA19_0==25||LA19_0==29||LA19_0==37||LA19_0==40||LA19_0==42) ) {
3744 alt19=1; 3745 alt19=1;
3745 } 3746 }
3746 3747
@@ -4071,7 +4072,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
4071 int alt20=2; 4072 int alt20=2;
4072 int LA20_0 = input.LA(1); 4073 int LA20_0 = input.LA(1);
4073 4074
4074 if ( (LA20_0==39) ) { 4075 if ( (LA20_0==40) ) {
4075 alt20=1; 4076 alt20=1;
4076 } 4077 }
4077 switch (alt20) { 4078 switch (alt20) {
@@ -4993,7 +4994,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
4993 int alt23=2; 4994 int alt23=2;
4994 int LA23_0 = input.LA(1); 4995 int LA23_0 = input.LA(1);
4995 4996
4996 if ( ((LA23_0>=RULE_QUOTED_ID && LA23_0<=RULE_ID)||LA23_0==15||(LA23_0>=19 && LA23_0<=20)||LA23_0==40) ) { 4997 if ( ((LA23_0>=RULE_QUOTED_ID && LA23_0<=RULE_ID)||LA23_0==15||(LA23_0>=19 && LA23_0<=20)||LA23_0==41) ) {
4997 alt23=1; 4998 alt23=1;
4998 } 4999 }
4999 5000
@@ -6257,7 +6258,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
6257 int alt28=2; 6258 int alt28=2;
6258 int LA28_0 = input.LA(1); 6259 int LA28_0 = input.LA(1);
6259 6260
6260 if ( (LA28_0==15||LA28_0==40) ) { 6261 if ( (LA28_0==15||LA28_0==41) ) {
6261 alt28=1; 6262 alt28=1;
6262 } 6263 }
6263 switch (alt28) { 6264 switch (alt28) {
@@ -8608,7 +8609,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
8608 { 8609 {
8609 int LA36_2 = input.LA(2); 8610 int LA36_2 = input.LA(2);
8610 8611
8611 if ( (LA36_2==RULE_ID||(LA36_2>=19 && LA36_2<=20)||LA36_2==36) ) { 8612 if ( (LA36_2==RULE_ID||(LA36_2>=19 && LA36_2<=20)||LA36_2==39) ) {
8612 alt36=1; 8613 alt36=1;
8613 } 8614 }
8614 } 8615 }
@@ -8617,7 +8618,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
8617 { 8618 {
8618 int LA36_3 = input.LA(2); 8619 int LA36_3 = input.LA(2);
8619 8620
8620 if ( (LA36_3==RULE_ID||(LA36_3>=19 && LA36_3<=20)||LA36_3==36) ) { 8621 if ( (LA36_3==RULE_ID||(LA36_3>=19 && LA36_3<=20)||LA36_3==39) ) {
8621 alt36=1; 8622 alt36=1;
8622 } 8623 }
8623 } 8624 }
@@ -8626,7 +8627,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
8626 { 8627 {
8627 int LA36_4 = input.LA(2); 8628 int LA36_4 = input.LA(2);
8628 8629
8629 if ( (LA36_4==RULE_ID||(LA36_4>=19 && LA36_4<=20)||LA36_4==36) ) { 8630 if ( (LA36_4==RULE_ID||(LA36_4>=19 && LA36_4<=20)||LA36_4==39) ) {
8630 alt36=1; 8631 alt36=1;
8631 } 8632 }
8632 } 8633 }
@@ -9384,7 +9385,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
9384 int alt38=2; 9385 int alt38=2;
9385 int LA38_0 = input.LA(1); 9386 int LA38_0 = input.LA(1);
9386 9387
9387 if ( (LA38_0==42) ) { 9388 if ( (LA38_0==43) ) {
9388 alt38=1; 9389 alt38=1;
9389 } 9390 }
9390 switch (alt38) { 9391 switch (alt38) {
@@ -12730,7 +12731,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
12730 // InternalProblem.g:4043:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ) 12731 // InternalProblem.g:4043:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
12731 // InternalProblem.g:4044:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 12732 // InternalProblem.g:4044:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
12732 { 12733 {
12733 pushFollow(FOLLOW_29); 12734 pushFollow(FOLLOW_37);
12734 rule__QualifiedName__Group_1__0__Impl(); 12735 rule__QualifiedName__Group_1__0__Impl();
12735 12736
12736 state._fsp--; 12737 state._fsp--;
@@ -12809,7 +12810,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
12809 // InternalProblem.g:4070:1: ( rule__QualifiedName__Group_1__1__Impl rule__QualifiedName__Group_1__2 ) 12810 // InternalProblem.g:4070:1: ( rule__QualifiedName__Group_1__1__Impl rule__QualifiedName__Group_1__2 )
12810 // InternalProblem.g:4071:2: rule__QualifiedName__Group_1__1__Impl rule__QualifiedName__Group_1__2 12811 // InternalProblem.g:4071:2: rule__QualifiedName__Group_1__1__Impl rule__QualifiedName__Group_1__2
12811 { 12812 {
12812 pushFollow(FOLLOW_29); 12813 pushFollow(FOLLOW_37);
12813 rule__QualifiedName__Group_1__1__Impl(); 12814 rule__QualifiedName__Group_1__1__Impl();
12814 12815
12815 state._fsp--; 12816 state._fsp--;
@@ -12857,7 +12858,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
12857 int alt47=2; 12858 int alt47=2;
12858 int LA47_0 = input.LA(1); 12859 int LA47_0 = input.LA(1);
12859 12860
12860 if ( (LA47_0==36) ) { 12861 if ( (LA47_0==39) ) {
12861 int LA47_1 = input.LA(2); 12862 int LA47_1 = input.LA(2);
12862 12863
12863 if ( (LA47_1==RULE_ID||(LA47_1>=19 && LA47_1<=20)) ) { 12864 if ( (LA47_1==RULE_ID||(LA47_1>=19 && LA47_1<=20)) ) {
@@ -12872,7 +12873,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
12872 case 1 : 12873 case 1 :
12873 // InternalProblem.g:4085:3: rule__QualifiedName__Group_1_1__0 12874 // InternalProblem.g:4085:3: rule__QualifiedName__Group_1_1__0
12874 { 12875 {
12875 pushFollow(FOLLOW_37); 12876 pushFollow(FOLLOW_38);
12876 rule__QualifiedName__Group_1_1__0(); 12877 rule__QualifiedName__Group_1_1__0();
12877 12878
12878 state._fsp--; 12879 state._fsp--;
@@ -12959,7 +12960,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
12959 int alt48=2; 12960 int alt48=2;
12960 int LA48_0 = input.LA(1); 12961 int LA48_0 = input.LA(1);
12961 12962
12962 if ( (LA48_0==36) ) { 12963 if ( (LA48_0==39) ) {
12963 alt48=1; 12964 alt48=1;
12964 } 12965 }
12965 switch (alt48) { 12966 switch (alt48) {
@@ -13038,21 +13039,21 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
13038 13039
13039 13040
13040 // $ANTLR start "rule__QualifiedName__Group_1_1__0__Impl" 13041 // $ANTLR start "rule__QualifiedName__Group_1_1__0__Impl"
13041 // InternalProblem.g:4132:1: rule__QualifiedName__Group_1_1__0__Impl : ( ':' ) ; 13042 // InternalProblem.g:4132:1: rule__QualifiedName__Group_1_1__0__Impl : ( '::' ) ;
13042 public final void rule__QualifiedName__Group_1_1__0__Impl() throws RecognitionException { 13043 public final void rule__QualifiedName__Group_1_1__0__Impl() throws RecognitionException {
13043 13044
13044 int stackSize = keepStackSize(); 13045 int stackSize = keepStackSize();
13045 13046
13046 try { 13047 try {
13047 // InternalProblem.g:4136:1: ( ( ':' ) ) 13048 // InternalProblem.g:4136:1: ( ( '::' ) )
13048 // InternalProblem.g:4137:1: ( ':' ) 13049 // InternalProblem.g:4137:1: ( '::' )
13049 { 13050 {
13050 // InternalProblem.g:4137:1: ( ':' ) 13051 // InternalProblem.g:4137:1: ( '::' )
13051 // InternalProblem.g:4138:2: ':' 13052 // InternalProblem.g:4138:2: '::'
13052 { 13053 {
13053 before(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); 13054 before(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0());
13054 match(input,36,FOLLOW_2); 13055 match(input,39,FOLLOW_2);
13055 after(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); 13056 after(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0());
13056 13057
13057 } 13058 }
13058 13059
@@ -13158,7 +13159,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
13158 // InternalProblem.g:4178:1: ( rule__QualifiedName__Group_1_2__0__Impl rule__QualifiedName__Group_1_2__1 ) 13159 // InternalProblem.g:4178:1: ( rule__QualifiedName__Group_1_2__0__Impl rule__QualifiedName__Group_1_2__1 )
13159 // InternalProblem.g:4179:2: rule__QualifiedName__Group_1_2__0__Impl rule__QualifiedName__Group_1_2__1 13160 // InternalProblem.g:4179:2: rule__QualifiedName__Group_1_2__0__Impl rule__QualifiedName__Group_1_2__1
13160 { 13161 {
13161 pushFollow(FOLLOW_38); 13162 pushFollow(FOLLOW_39);
13162 rule__QualifiedName__Group_1_2__0__Impl(); 13163 rule__QualifiedName__Group_1_2__0__Impl();
13163 13164
13164 state._fsp--; 13165 state._fsp--;
@@ -13187,21 +13188,21 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
13187 13188
13188 13189
13189 // $ANTLR start "rule__QualifiedName__Group_1_2__0__Impl" 13190 // $ANTLR start "rule__QualifiedName__Group_1_2__0__Impl"
13190 // InternalProblem.g:4186:1: rule__QualifiedName__Group_1_2__0__Impl : ( ':' ) ; 13191 // InternalProblem.g:4186:1: rule__QualifiedName__Group_1_2__0__Impl : ( '::' ) ;
13191 public final void rule__QualifiedName__Group_1_2__0__Impl() throws RecognitionException { 13192 public final void rule__QualifiedName__Group_1_2__0__Impl() throws RecognitionException {
13192 13193
13193 int stackSize = keepStackSize(); 13194 int stackSize = keepStackSize();
13194 13195
13195 try { 13196 try {
13196 // InternalProblem.g:4190:1: ( ( ':' ) ) 13197 // InternalProblem.g:4190:1: ( ( '::' ) )
13197 // InternalProblem.g:4191:1: ( ':' ) 13198 // InternalProblem.g:4191:1: ( '::' )
13198 { 13199 {
13199 // InternalProblem.g:4191:1: ( ':' ) 13200 // InternalProblem.g:4191:1: ( '::' )
13200 // InternalProblem.g:4192:2: ':' 13201 // InternalProblem.g:4192:2: '::'
13201 { 13202 {
13202 before(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0()); 13203 before(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_2_0());
13203 match(input,36,FOLLOW_2); 13204 match(input,39,FOLLOW_2);
13204 after(grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0()); 13205 after(grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_2_0());
13205 13206
13206 } 13207 }
13207 13208
@@ -13393,7 +13394,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
13393 // InternalProblem.g:4266:4: 'abstract' 13394 // InternalProblem.g:4266:4: 'abstract'
13394 { 13395 {
13395 before(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); 13396 before(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
13396 match(input,39,FOLLOW_2); 13397 match(input,40,FOLLOW_2);
13397 after(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0()); 13398 after(grammarAccess.getClassDeclarationAccess().getAbstractAbstractKeyword_0_0());
13398 13399
13399 } 13400 }
@@ -13782,7 +13783,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
13782 // InternalProblem.g:4413:4: 'contains' 13783 // InternalProblem.g:4413:4: 'contains'
13783 { 13784 {
13784 before(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); 13785 before(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
13785 match(input,40,FOLLOW_2); 13786 match(input,41,FOLLOW_2);
13786 after(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0()); 13787 after(grammarAccess.getReferenceDeclarationAccess().getContainmentContainsKeyword_0_0_0());
13787 13788
13788 } 13789 }
@@ -14007,7 +14008,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
14007 // InternalProblem.g:4500:4: 'error' 14008 // InternalProblem.g:4500:4: 'error'
14008 { 14009 {
14009 before(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); 14010 before(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
14010 match(input,41,FOLLOW_2); 14011 match(input,42,FOLLOW_2);
14011 after(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0()); 14012 after(grammarAccess.getPredicateDefinitionAccess().getErrorErrorKeyword_0_0_0_0());
14012 14013
14013 } 14014 }
@@ -14519,7 +14520,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
14519 // InternalProblem.g:4692:4: '+' 14520 // InternalProblem.g:4692:4: '+'
14520 { 14521 {
14521 before(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); 14522 before(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
14522 match(input,42,FOLLOW_2); 14523 match(input,43,FOLLOW_2);
14523 after(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0()); 14524 after(grammarAccess.getAtomAccess().getTransitiveClosurePlusSignKeyword_1_0());
14524 14525
14525 } 14526 }
@@ -15198,7 +15199,7 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
15198 // InternalProblem.g:4953:4: '+=' 15199 // InternalProblem.g:4953:4: '+='
15199 { 15200 {
15200 before(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); 15201 before(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
15201 match(input,43,FOLLOW_2); 15202 match(input,44,FOLLOW_2);
15202 after(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0()); 15203 after(grammarAccess.getTypeScopeAccess().getIncrementPlusSignEqualsSignKeyword_1_0_0());
15203 15204
15204 } 15205 }
@@ -15386,43 +15387,43 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
15386 protected DFA8 dfa8 = new DFA8(this); 15387 protected DFA8 dfa8 = new DFA8(this);
15387 static final String dfa_1s = "\41\uffff"; 15388 static final String dfa_1s = "\41\uffff";
15388 static final String dfa_2s = "\1\5\4\41\1\uffff\2\5\4\15\1\14\4\41\2\5\1\uffff\10\15\1\5\4\15"; 15389 static final String dfa_2s = "\1\5\4\41\1\uffff\2\5\4\15\1\14\4\41\2\5\1\uffff\10\15\1\5\4\15";
15389 static final String dfa_3s = "\1\27\1\41\3\44\1\uffff\1\42\1\24\1\42\4\44\1\41\3\44\2\24\1\uffff\1\42\6\44\1\42\1\24\1\42\3\44"; 15390 static final String dfa_3s = "\1\27\1\41\3\47\1\uffff\1\42\1\24\1\42\3\47\1\44\1\41\3\47\2\24\1\uffff\1\42\6\47\1\42\1\24\1\42\3\47";
15390 static final String dfa_4s = "\5\uffff\1\2\15\uffff\1\1\15\uffff"; 15391 static final String dfa_4s = "\5\uffff\1\2\15\uffff\1\1\15\uffff";
15391 static final String dfa_5s = "\41\uffff}>"; 15392 static final String dfa_5s = "\41\uffff}>";
15392 static final String[] dfa_6s = { 15393 static final String[] dfa_6s = {
15393 "\1\1\1\2\14\uffff\1\3\1\4\1\uffff\2\5", 15394 "\1\1\1\2\14\uffff\1\3\1\4\1\uffff\2\5",
15394 "\1\6", 15395 "\1\6",
15395 "\1\6\2\uffff\1\7", 15396 "\1\6\5\uffff\1\7",
15396 "\1\6\2\uffff\1\7", 15397 "\1\6\5\uffff\1\7",
15397 "\1\6\2\uffff\1\7", 15398 "\1\6\5\uffff\1\7",
15398 "", 15399 "",
15399 "\1\10\1\11\14\uffff\1\12\1\13\15\uffff\1\14", 15400 "\1\10\1\11\14\uffff\1\12\1\13\15\uffff\1\14",
15400 "\1\15\1\16\14\uffff\1\17\1\20", 15401 "\1\15\1\16\14\uffff\1\17\1\20",
15401 "\1\21\24\uffff\1\14", 15402 "\1\21\24\uffff\1\14",
15402 "\1\21\24\uffff\1\14\1\uffff\1\22", 15403 "\1\21\24\uffff\1\14\4\uffff\1\22",
15403 "\1\21\24\uffff\1\14\1\uffff\1\22", 15404 "\1\21\24\uffff\1\14\4\uffff\1\22",
15404 "\1\21\24\uffff\1\14\1\uffff\1\22", 15405 "\1\21\24\uffff\1\14\4\uffff\1\22",
15405 "\1\5\27\uffff\1\23", 15406 "\1\5\27\uffff\1\23",
15406 "\1\6", 15407 "\1\6",
15407 "\1\6\2\uffff\1\7", 15408 "\1\6\5\uffff\1\7",
15408 "\1\6\2\uffff\1\7", 15409 "\1\6\5\uffff\1\7",
15409 "\1\6\2\uffff\1\7", 15410 "\1\6\5\uffff\1\7",
15410 "\1\24\1\25\14\uffff\1\26\1\27", 15411 "\1\24\1\25\14\uffff\1\26\1\27",
15411 "\1\33\1\30\14\uffff\1\31\1\32", 15412 "\1\33\1\30\14\uffff\1\31\1\32",
15412 "", 15413 "",
15413 "\1\21\24\uffff\1\14", 15414 "\1\21\24\uffff\1\14",
15414 "\1\21\24\uffff\1\14\1\uffff\1\34", 15415 "\1\21\24\uffff\1\14\4\uffff\1\34",
15415 "\1\21\24\uffff\1\14\1\uffff\1\34", 15416 "\1\21\24\uffff\1\14\4\uffff\1\34",
15416 "\1\21\24\uffff\1\14\1\uffff\1\34", 15417 "\1\21\24\uffff\1\14\4\uffff\1\34",
15417 "\1\21\24\uffff\1\14\1\uffff\1\22", 15418 "\1\21\24\uffff\1\14\4\uffff\1\22",
15418 "\1\21\24\uffff\1\14\1\uffff\1\22", 15419 "\1\21\24\uffff\1\14\4\uffff\1\22",
15419 "\1\21\24\uffff\1\14\1\uffff\1\22", 15420 "\1\21\24\uffff\1\14\4\uffff\1\22",
15420 "\1\21\24\uffff\1\14", 15421 "\1\21\24\uffff\1\14",
15421 "\1\35\1\36\14\uffff\1\37\1\40", 15422 "\1\35\1\36\14\uffff\1\37\1\40",
15422 "\1\21\24\uffff\1\14", 15423 "\1\21\24\uffff\1\14",
15423 "\1\21\24\uffff\1\14\1\uffff\1\34", 15424 "\1\21\24\uffff\1\14\4\uffff\1\34",
15424 "\1\21\24\uffff\1\14\1\uffff\1\34", 15425 "\1\21\24\uffff\1\14\4\uffff\1\34",
15425 "\1\21\24\uffff\1\14\1\uffff\1\34" 15426 "\1\21\24\uffff\1\14\4\uffff\1\34"
15426 }; 15427 };
15427 15428
15428 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s); 15429 static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
@@ -15453,21 +15454,21 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
15453 15454
15454 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); 15455 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
15455 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); 15456 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
15456 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x000002A022D90060L}); 15457 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000052022D90060L});
15457 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x000002A022D90062L}); 15458 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000052022D90062L});
15458 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000180060L}); 15459 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000180060L});
15459 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000001000L}); 15460 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000001000L});
15460 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000008002000000L}); 15461 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000010002000000L});
15461 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x000000000C001000L}); 15462 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x000000000C001000L});
15462 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000002000L}); 15463 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000002000L});
15463 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000002002L}); 15464 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000002002L});
15464 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000010010188060L}); 15465 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000020010188060L});
15465 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000010000188062L}); 15466 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000020000188062L});
15466 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000004000L}); 15467 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000004000L});
15467 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000008001000L}); 15468 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000008001000L});
15468 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000010180060L}); 15469 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000010180060L});
15469 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000006000L}); 15470 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000006000L});
15470 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000010000188060L}); 15471 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000020000188060L});
15471 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000040180060L}); 15472 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000040180060L});
15472 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000100000000L}); 15473 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000100000000L});
15473 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000010L}); 15474 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000010L});
@@ -15478,16 +15479,17 @@ public class InternalProblemParser extends AbstractInternalContentAssistParser {
15478 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000010000L}); 15479 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000010000L});
15479 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000580060L}); 15480 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000580060L});
15480 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000004002L}); 15481 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000004002L});
15481 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000040200000000L}); 15482 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000080200000000L});
15482 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000001000000000L}); 15483 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000001000000000L});
15483 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000380000L}); 15484 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000380000L});
15484 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000D80060L}); 15485 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000D80060L});
15485 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000040L}); 15486 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000040L});
15486 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000003000L}); 15487 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000003000L});
15487 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000080000020000L}); 15488 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000100000020000L});
15488 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000004000000000L}); 15489 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000004000000000L});
15489 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000040010L}); 15490 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000040010L});
15490 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000001000000002L}); 15491 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000008000000000L});
15491 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000020L}); 15492 public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000008000000002L});
15493 public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000020L});
15492 15494
15493} \ No newline at end of file 15495} \ No newline at end of file
diff --git a/language-mwe2/build.gradle b/language-mwe2/build.gradle
new file mode 100644
index 00000000..8596b4c1
--- /dev/null
+++ b/language-mwe2/build.gradle
@@ -0,0 +1,3 @@
1dependencies {
2 compile "org.eclipse.xtext:org.eclipse.xtext.xtext.generator:${xtextVersion}"
3}
diff --git a/language-mwe2/src/main/java/org/eclipse/viatra/solver/language/mwe2/ProblemWebIntegrationFragment.java b/language-mwe2/src/main/java/org/eclipse/viatra/solver/language/mwe2/ProblemWebIntegrationFragment.java
new file mode 100644
index 00000000..7cc736bc
--- /dev/null
+++ b/language-mwe2/src/main/java/org/eclipse/viatra/solver/language/mwe2/ProblemWebIntegrationFragment.java
@@ -0,0 +1,59 @@
1package org.eclipse.viatra.solver.language.mwe2;
2
3import java.util.Set;
4
5import org.eclipse.xtext.xtext.generator.web.WebIntegrationFragment;
6
7import com.google.common.collect.Multimap;
8
9public class ProblemWebIntegrationFragment extends WebIntegrationFragment {
10 public ProblemWebIntegrationFragment() {
11 setFramework(Framework.CODEMIRROR.name());
12 // We use our custom token style for single-quoted names
13 addSuppressPattern("string_singleQuote");
14 // Use the CodeMirror default .cm-number instead of .cm-constant.cm-numeric
15 addSuppressPattern("number_decimal");
16 // We use our own custom single-line comments
17 addSuppressPattern("comment_singleLine");
18 // Override bracket indentation behavior
19 addSuppressPattern("bracket_open");
20 addSuppressPattern("parenthesis_open");
21 addSuppressPattern("brace_open");
22 addSuppressPattern("bracket_close");
23 addSuppressPattern("parenthesis_close");
24 addSuppressPattern("brace_close");
25 }
26
27 @Override
28 public void setFramework(String frameworkName) {
29 if (!frameworkName.toUpperCase().equals(Framework.CODEMIRROR.name())) {
30 throw new IllegalStateException("Framework cannot be changed from CodeMirror");
31 }
32 super.setFramework(frameworkName);
33 }
34
35 @Override
36 protected Multimap<String, String> createCodeMirrorPatterns(String langId, Set<String> keywords) {
37 Multimap<String, String> patterns = super.createCodeMirrorPatterns(langId, keywords);
38 // We use our custom token style for single-quoted names
39 patterns.put("start", "{token: \"quoted-name\", regex: \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"}");
40 // Use the CodeMirror default .cm-number instead of .cm-constant.cm-numeric
41 patterns.put("start",
42 "{token: \"number\", regex: \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"}");
43 patterns.put("start", "{token: \"number\", regex: \"[*]\"}");
44 // We use our own custom single-line comments
45 patterns.put("start", "{token: \"comment\", regex: \"%.*$\"}");
46 patterns.put("start", "{token: \"comment\", regex: \"\\\\/\\\\/.*$\"}");
47 patterns.put("meta", "lineComment: \"%\"");
48 // Override indentation behavior
49 patterns.put("start", "{token: \"lparen\", indent: true, regex: \"[[({]\"}");
50 patterns.put("start", "{token: \"rparen\", dedent: true, dedentIfLineStart: true, regex: \"[\\\\])}]\"}");
51 patterns.putAll("predicateBody", patterns.get("start"));
52 patterns.put("start", "{indent: true, push: \"predicateBody\", regex: \":-\"}");
53 patterns.put("predicateBody", "{dedent: true, dedentIfLineStart: false, pop: true, regex: \"\\\\.\\\\s*$\"}");
54 // We must repeat the keyword rule here, because Xtext only adds it to "main" later.
55 patterns.put("predicateBody", "{token: \"keyword\", regex: \"\\\\b(?:\" + keywords + \")\\\\b\"}");
56 patterns.put("meta", "electricChars: \"])]\"");
57 return patterns;
58 }
59}
diff --git a/language-web/src/main/webapp/index.html b/language-web/src/main/webapp/index.html
index 3fb66d62..753ed63a 100644
--- a/language-web/src/main/webapp/index.html
+++ b/language-web/src/main/webapp/index.html
@@ -30,6 +30,7 @@ enum TaxStatus {
30 child, student, adult, retired 30 child, student, adult, retired
31} 31}
32 32
33% A child cannot have any dependents.
33error invalidTaxStatus(Person p) :- 34error invalidTaxStatus(Person p) :-
34 taxStatus(p, child), children(p, _q). 35 taxStatus(p, child), children(p, _q).
35 36
@@ -41,7 +42,8 @@ children(anne, ciri).
41?children(bob, ciri). 42?children(bob, ciri).
42taxStatus(anne, adult). 43taxStatus(anne, adult).
43 44
44scope Family = 1, Person += 5..10.</pre></div> 45scope Family = 1, Person += 5..10.
46</pre></div>
45 </div> 47 </div>
46 </div> 48 </div>
47 <script type="text/javascript" src="webjars/requirejs/2.3.6/require.min.js"></script> 49 <script type="text/javascript" src="webjars/requirejs/2.3.6/require.min.js"></script>
diff --git a/language-web/src/main/webapp/script.js b/language-web/src/main/webapp/script.js
index dced7eca..818a056c 100644
--- a/language-web/src/main/webapp/script.js
+++ b/language-web/src/main/webapp/script.js
@@ -16,5 +16,5 @@ require.config({
16 }] 16 }]
17}); 17});
18require(["xtext-resources/generated/mode-problem", "xtext/xtext-codemirror"], function(mode, xtext) { 18require(["xtext-resources/generated/mode-problem", "xtext/xtext-codemirror"], function(mode, xtext) {
19 window.xtextEditor = xtext.createEditor({baseUrl: baseUrl,}); 19 xtext.createEditor({baseUrl: baseUrl, indentUnit: 4,});
20}); 20});
diff --git a/language-web/src/main/webapp/style.css b/language-web/src/main/webapp/style.css
index 9a89dd81..03018f93 100644
--- a/language-web/src/main/webapp/style.css
+++ b/language-web/src/main/webapp/style.css
@@ -59,7 +59,7 @@ a:hover {
59 bottom: 16px; 59 bottom: 16px;
60 left: 16px; 60 left: 16px;
61 right: 16px; 61 right: 16px;
62 border: 1px solid #aaa; 62 border: 1px solid #999;
63} 63}
64 64
65.problem-class { 65.problem-class {
@@ -82,12 +82,7 @@ a:hover {
82 font-weight: bold; 82 font-weight: bold;
83} 83}
84 84
85 85.CodeMirror .cm-quoted-name, .problem-enum-node {
86.CodeMirror .problem-node {
87 color: inherit;
88}
89
90.problem-enum-node {
91 color: #1a1a1a !important; 86 color: #1a1a1a !important;
92 font-weight: bold; 87 font-weight: bold;
93} 88}
@@ -101,5 +96,5 @@ a:hover {
101} 96}
102 97
103.problem-singleton-variable { 98.problem-singleton-variable {
104 opacity: 0.7; 99 color: #a1706f;
105} 100}
diff --git a/language-web/src/main/webapp/xtext-resources/generated/mode-problem.js b/language-web/src/main/webapp/xtext-resources/generated/mode-problem.js
index 89373b1c..1640d13d 100644
--- a/language-web/src/main/webapp/xtext-resources/generated/mode-problem.js
+++ b/language-web/src/main/webapp/xtext-resources/generated/mode-problem.js
@@ -2,12 +2,16 @@ define(["codemirror", "codemirror/addon/mode/simple"], function(CodeMirror, Simp
2 var keywords = "abstract|class|contains|enum|error|extends|false|opposite|pred|problem|refers|scope|true|unknown"; 2 var keywords = "abstract|class|contains|enum|error|extends|false|opposite|pred|problem|refers|scope|true|unknown";
3 CodeMirror.defineSimpleMode("xtext/problem", { 3 CodeMirror.defineSimpleMode("xtext/problem", {
4 start: [ 4 start: [
5 {token: "comment", regex: "\\/\\/.*$"},
6 {token: "comment", regex: "\\/\\*", next : "comment"}, 5 {token: "comment", regex: "\\/\\*", next : "comment"},
7 {token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'}, 6 {token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},
8 {token: "constant.numeric", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"}, 7 {token: "quoted-name", regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},
9 {token: "lparen", regex: "[\\[({]"}, 8 {token: "number", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},
10 {token: "rparen", regex: "[\\])}]"}, 9 {token: "number", regex: "[*]"},
10 {token: "comment", regex: "%.*$"},
11 {token: "comment", regex: "\\/\\/.*$"},
12 {token: "lparen", indent: true, regex: "[[({]"},
13 {token: "rparen", dedent: true, dedentIfLineStart: true, regex: "[\\])}]"},
14 {indent: true, push: "predicateBody", regex: ":-"},
11 {token: "keyword", regex: "\\b(?:" + keywords + ")\\b"} 15 {token: "keyword", regex: "\\b(?:" + keywords + ")\\b"}
12 ], 16 ],
13 comment: [ 17 comment: [
@@ -16,7 +20,21 @@ define(["codemirror", "codemirror/addon/mode/simple"], function(CodeMirror, Simp
16 ], 20 ],
17 meta: { 21 meta: {
18 dontIndentStates: ["comment"], 22 dontIndentStates: ["comment"],
19 lineComment: "//" 23 lineComment: "%",
20 } 24 electricChars: "])]"
25 },
26 predicateBody: [
27 {token: "comment", regex: "\\/\\*", next : "comment"},
28 {token: "string", regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},
29 {token: "quoted-name", regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},
30 {token: "number", regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},
31 {token: "number", regex: "[*]"},
32 {token: "comment", regex: "%.*$"},
33 {token: "comment", regex: "\\/\\/.*$"},
34 {token: "lparen", indent: true, regex: "[[({]"},
35 {token: "rparen", dedent: true, dedentIfLineStart: true, regex: "[\\])}]"},
36 {dedent: true, dedentIfLineStart: false, pop: true, regex: "\\.\\s*$"},
37 {token: "keyword", regex: "\\b(?:" + keywords + ")\\b"}
38 ]
21 }); 39 });
22}); 40});
diff --git a/language/build.gradle b/language/build.gradle
index f32a60e1..855b0a7f 100644
--- a/language/build.gradle
+++ b/language/build.gradle
@@ -20,6 +20,7 @@ dependencies {
20 mwe2 "org.eclipse.xtext:org.eclipse.xtext.common.types:${xtextVersion}" 20 mwe2 "org.eclipse.xtext:org.eclipse.xtext.common.types:${xtextVersion}"
21 mwe2 "org.eclipse.xtext:org.eclipse.xtext.xtext.generator:${xtextVersion}" 21 mwe2 "org.eclipse.xtext:org.eclipse.xtext.xtext.generator:${xtextVersion}"
22 mwe2 'org.eclipse.xtext:xtext-antlr-generator' 22 mwe2 'org.eclipse.xtext:xtext-antlr-generator'
23 mwe2 project(':language-mwe2')
23} 24}
24 25
25task generateXtextLanguage(type: JavaExec) { 26task generateXtextLanguage(type: JavaExec) {
diff --git a/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2 b/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2
index 76563e2c..a63681c8 100644
--- a/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2
@@ -3,6 +3,8 @@ module org.eclipse.viatra.solver.language.GenerateProblem
3import org.eclipse.xtext.xtext.generator.* 3import org.eclipse.xtext.xtext.generator.*
4import org.eclipse.xtext.xtext.generator.model.project.* 4import org.eclipse.xtext.xtext.generator.model.project.*
5 5
6import org.eclipse.viatra.solver.language.mwe2.*
7
6var rootPath = ".." 8var rootPath = ".."
7 9
8Workflow { 10Workflow {
@@ -14,12 +16,12 @@ Workflow {
14 runtimeTest = { 16 runtimeTest = {
15 enabled = true 17 enabled = true
16 } 18 }
17 genericIde = { 19 genericIde = {
18 name = "language-ide" 20 name = "language-ide"
19 } 21 }
20 web = { 22 web = {
21 enabled = true 23 enabled = true
22 name = "language-web" 24 name = "language-web"
23 } 25 }
24 mavenLayout = true 26 mavenLayout = true
25 } 27 }
@@ -30,18 +32,15 @@ Workflow {
30 preferXtendStubs = false 32 preferXtendStubs = false
31 } 33 }
32 } 34 }
33 35
34 language = StandardLanguage { 36 language = StandardLanguage {
35 name = "org.eclipse.viatra.solver.language.Problem" 37 name = "org.eclipse.viatra.solver.language.Problem"
36 fileExtensions = "problem" 38 fileExtensions = "problem"
37 referencedResource = "platform:/resource/language-model/model/problem.genmodel" 39 referencedResource = "platform:/resource/language-model/model/problem.genmodel"
38
39 serializer = { 40 serializer = {
40 generateStub = false 41 generateStub = false
41 } 42 }
42 validator = { 43 validator = {
43 // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
44 // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage
45 generateDeprecationValidation = true 44 generateDeprecationValidation = true
46 } 45 }
47 generator = { 46 generator = {
@@ -50,10 +49,7 @@ Workflow {
50 junitSupport = { 49 junitSupport = {
51 junitVersion = "5" 50 junitVersion = "5"
52 } 51 }
53 webSupport = { 52 webSupport = ProblemWebIntegrationFragment {}
54 framework = "CodeMirror"
55 suppressPattern = "string_singleQuote"
56 }
57 } 53 }
58 } 54 }
59} 55}
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 5f8b35f3..466988d8 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
@@ -103,7 +103,7 @@ QuotedOrUnquotedId:
103 QUOTED_ID | Identifier; 103 QUOTED_ID | Identifier;
104 104
105QualifiedName: 105QualifiedName:
106 QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)?; 106 QUOTED_ID | Identifier ("::" Identifier)* ("::" QUOTED_ID)?;
107 107
108Identifier: 108Identifier:
109 ID | "true" | "false"; 109 ID | "true" | "false";
@@ -114,3 +114,7 @@ terminal STRING:
114 114
115terminal QUOTED_ID: 115terminal QUOTED_ID:
116 "'" ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | "'"))* "'"; 116 "'" ('\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\' | "'"))* "'";
117
118@Override
119terminal SL_COMMENT:
120 ('%' | '//') !('\n'|'\r')* ('\r'? '\n')?;
diff --git a/language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java b/language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java
index 3cee31f3..e55e5dda 100644
--- a/language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java
+++ b/language/src/main/java/org/eclipse/viatra/solver/language/naming/ProblemQualifiedNameConverter.java
@@ -6,7 +6,7 @@ import com.google.inject.Singleton;
6 6
7@Singleton 7@Singleton
8public class ProblemQualifiedNameConverter extends IQualifiedNameConverter.DefaultImpl { 8public class ProblemQualifiedNameConverter extends IQualifiedNameConverter.DefaultImpl {
9 public static final String DELIMITER = ":"; 9 public static final String DELIMITER = "::";
10 10
11 @Override 11 @Override
12 public String getDelimiter() { 12 public String getDelimiter() {
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 cabf6537..dc21001d 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 64db0417..3a368756 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
@@ -1758,10 +1758,10 @@ ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleT
1758 afterParserOrEnumRuleCall(); 1758 afterParserOrEnumRuleCall();
1759 } 1759 }
1760 ( 1760 (
1761 kw=':' 1761 kw='::'
1762 { 1762 {
1763 $current.merge(kw); 1763 $current.merge(kw);
1764 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); 1764 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0());
1765 } 1765 }
1766 { 1766 {
1767 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1()); 1767 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
@@ -1775,10 +1775,10 @@ ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleT
1775 } 1775 }
1776 )* 1776 )*
1777 ( 1777 (
1778 kw=':' 1778 kw='::'
1779 { 1779 {
1780 $current.merge(kw); 1780 $current.merge(kw);
1781 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0()); 1781 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_2_0());
1782 } 1782 }
1783 this_QUOTED_ID_5=RULE_QUOTED_ID 1783 this_QUOTED_ID_5=RULE_QUOTED_ID
1784 { 1784 {
@@ -1896,14 +1896,14 @@ RULE_STRING : '"' ('\\' .|~(('\\'|'"')))* '"';
1896 1896
1897RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\''; 1897RULE_QUOTED_ID : '\'' ('\\' .|~(('\\'|'\'')))* '\'';
1898 1898
1899RULE_SL_COMMENT : ('%'|'//') ~(('\n'|'\r'))* ('\r'? '\n')?;
1900
1899RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; 1901RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
1900 1902
1901RULE_INT : ('0'..'9')+; 1903RULE_INT : ('0'..'9')+;
1902 1904
1903RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/'; 1905RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
1904 1906
1905RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
1906
1907RULE_WS : (' '|'\t'|'\r'|'\n')+; 1907RULE_WS : (' '|'\t'|'\r'|'\n')+;
1908 1908
1909RULE_ANY_OTHER : .; 1909RULE_ANY_OTHER : .;
diff --git a/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens b/language/src/main/xtext-gen/org/eclipse/viatra/solver/language/parser/antlr/internal/InternalProblem.tokens
index e968ac14..7b308424 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
@@ -9,9 +9,10 @@
9'..'=38 9'..'=38
10':'=34 10':'=34
11':-'=31 11':-'=31
12'::'=40
12';'=19 13';'=19
13'='=37 14'='=37
14'?'=43 15'?'=44
15'['=24 16'['=24
16']'=25 17']'=25
17'abstract'=14 18'abstract'=14
@@ -20,22 +21,22 @@
20'enum'=21 21'enum'=21
21'error'=27 22'error'=27
22'extends'=16 23'extends'=16
23'false'=41 24'false'=42
24'opposite'=26 25'opposite'=26
25'pred'=28 26'pred'=28
26'problem'=12 27'problem'=12
27'refers'=23 28'refers'=23
28'scope'=35 29'scope'=35
29'true'=40 30'true'=41
30'unknown'=42 31'unknown'=43
31'{'=18 32'{'=18
32'}'=20 33'}'=20
33RULE_ANY_OTHER=11 34RULE_ANY_OTHER=11
34RULE_ID=4 35RULE_ID=4
35RULE_INT=5 36RULE_INT=5
36RULE_ML_COMMENT=8 37RULE_ML_COMMENT=9
37RULE_QUOTED_ID=6 38RULE_QUOTED_ID=6
38RULE_SL_COMMENT=9 39RULE_SL_COMMENT=8
39RULE_STRING=7 40RULE_STRING=7
40RULE_WS=10 41RULE_WS=10
41T__12=12 42T__12=12
@@ -70,3 +71,4 @@ T__40=40
70T__41=41 71T__41=41
71T__42=42 72T__42=42
72T__43=43 73T__43=43
74T__44=44
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 1fd1e166..c6298afc 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
@@ -28,14 +28,14 @@ public class InternalProblemLexer extends Lexer {
28 public static final int RULE_INT=5; 28 public static final int RULE_INT=5;
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=8; 31 public static final int RULE_ML_COMMENT=9;
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=7; 37 public static final int RULE_STRING=7;
38 public static final int RULE_SL_COMMENT=9; 38 public static final int RULE_SL_COMMENT=8;
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;
@@ -49,6 +49,7 @@ public class InternalProblemLexer extends Lexer {
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=10;
51 public static final int RULE_ANY_OTHER=11; 51 public static final int RULE_ANY_OTHER=11;
52 public static final int T__44=44;
52 public static final int T__40=40; 53 public static final int T__40=40;
53 public static final int T__41=41; 54 public static final int T__41=41;
54 public static final int T__42=42; 55 public static final int T__42=42;
@@ -646,10 +647,10 @@ public class InternalProblemLexer extends Lexer {
646 try { 647 try {
647 int _type = T__40; 648 int _type = T__40;
648 int _channel = DEFAULT_TOKEN_CHANNEL; 649 int _channel = DEFAULT_TOKEN_CHANNEL;
649 // InternalProblem.g:39:7: ( 'true' ) 650 // InternalProblem.g:39:7: ( '::' )
650 // InternalProblem.g:39:9: 'true' 651 // InternalProblem.g:39:9: '::'
651 { 652 {
652 match("true"); 653 match("::");
653 654
654 655
655 } 656 }
@@ -667,10 +668,10 @@ public class InternalProblemLexer extends Lexer {
667 try { 668 try {
668 int _type = T__41; 669 int _type = T__41;
669 int _channel = DEFAULT_TOKEN_CHANNEL; 670 int _channel = DEFAULT_TOKEN_CHANNEL;
670 // InternalProblem.g:40:7: ( 'false' ) 671 // InternalProblem.g:40:7: ( 'true' )
671 // InternalProblem.g:40:9: 'false' 672 // InternalProblem.g:40:9: 'true'
672 { 673 {
673 match("false"); 674 match("true");
674 675
675 676
676 } 677 }
@@ -688,10 +689,10 @@ public class InternalProblemLexer extends Lexer {
688 try { 689 try {
689 int _type = T__42; 690 int _type = T__42;
690 int _channel = DEFAULT_TOKEN_CHANNEL; 691 int _channel = DEFAULT_TOKEN_CHANNEL;
691 // InternalProblem.g:41:7: ( 'unknown' ) 692 // InternalProblem.g:41:7: ( 'false' )
692 // InternalProblem.g:41:9: 'unknown' 693 // InternalProblem.g:41:9: 'false'
693 { 694 {
694 match("unknown"); 695 match("false");
695 696
696 697
697 } 698 }
@@ -709,10 +710,11 @@ public class InternalProblemLexer extends Lexer {
709 try { 710 try {
710 int _type = T__43; 711 int _type = T__43;
711 int _channel = DEFAULT_TOKEN_CHANNEL; 712 int _channel = DEFAULT_TOKEN_CHANNEL;
712 // InternalProblem.g:42:7: ( '?' ) 713 // InternalProblem.g:42:7: ( 'unknown' )
713 // InternalProblem.g:42:9: '?' 714 // InternalProblem.g:42:9: 'unknown'
714 { 715 {
715 match('?'); 716 match("unknown");
717
716 718
717 } 719 }
718 720
@@ -724,6 +726,26 @@ public class InternalProblemLexer extends Lexer {
724 } 726 }
725 // $ANTLR end "T__43" 727 // $ANTLR end "T__43"
726 728
729 // $ANTLR start "T__44"
730 public final void mT__44() throws RecognitionException {
731 try {
732 int _type = T__44;
733 int _channel = DEFAULT_TOKEN_CHANNEL;
734 // InternalProblem.g:43:7: ( '?' )
735 // InternalProblem.g:43:9: '?'
736 {
737 match('?');
738
739 }
740
741 state.type = _type;
742 state.channel = _channel;
743 }
744 finally {
745 }
746 }
747 // $ANTLR end "T__44"
748
727 // $ANTLR start "RULE_STRING" 749 // $ANTLR start "RULE_STRING"
728 public final void mRULE_STRING() throws RecognitionException { 750 public final void mRULE_STRING() throws RecognitionException {
729 try { 751 try {
@@ -854,57 +876,65 @@ public class InternalProblemLexer extends Lexer {
854 } 876 }
855 // $ANTLR end "RULE_QUOTED_ID" 877 // $ANTLR end "RULE_QUOTED_ID"
856 878
857 // $ANTLR start "RULE_ID" 879 // $ANTLR start "RULE_SL_COMMENT"
858 public final void mRULE_ID() throws RecognitionException { 880 public final void mRULE_SL_COMMENT() throws RecognitionException {
859 try { 881 try {
860 int _type = RULE_ID; 882 int _type = RULE_SL_COMMENT;
861 int _channel = DEFAULT_TOKEN_CHANNEL; 883 int _channel = DEFAULT_TOKEN_CHANNEL;
862 // InternalProblem.g:1899:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) 884 // InternalProblem.g:1899:17: ( ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
863 // InternalProblem.g:1899:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 885 // InternalProblem.g:1899:19: ( '%' | '//' ) (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
864 { 886 {
865 // InternalProblem.g:1899:11: ( '^' )? 887 // InternalProblem.g:1899:19: ( '%' | '//' )
866 int alt3=2; 888 int alt3=2;
867 int LA3_0 = input.LA(1); 889 int LA3_0 = input.LA(1);
868 890
869 if ( (LA3_0=='^') ) { 891 if ( (LA3_0=='%') ) {
870 alt3=1; 892 alt3=1;
871 } 893 }
894 else if ( (LA3_0=='/') ) {
895 alt3=2;
896 }
897 else {
898 NoViableAltException nvae =
899 new NoViableAltException("", 3, 0, input);
900
901 throw nvae;
902 }
872 switch (alt3) { 903 switch (alt3) {
873 case 1 : 904 case 1 :
874 // InternalProblem.g:1899:11: '^' 905 // InternalProblem.g:1899:20: '%'
875 { 906 {
876 match('^'); 907 match('%');
877 908
878 } 909 }
879 break; 910 break;
911 case 2 :
912 // InternalProblem.g:1899:24: '//'
913 {
914 match("//");
880 915
881 }
882 916
883 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { 917 }
884 input.consume(); 918 break;
885 919
886 } 920 }
887 else {
888 MismatchedSetException mse = new MismatchedSetException(null,input);
889 recover(mse);
890 throw mse;}
891 921
892 // InternalProblem.g:1899:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* 922 // InternalProblem.g:1899:30: (~ ( ( '\\n' | '\\r' ) ) )*
893 loop4: 923 loop4:
894 do { 924 do {
895 int alt4=2; 925 int alt4=2;
896 int LA4_0 = input.LA(1); 926 int LA4_0 = input.LA(1);
897 927
898 if ( ((LA4_0>='0' && LA4_0<='9')||(LA4_0>='A' && LA4_0<='Z')||LA4_0=='_'||(LA4_0>='a' && LA4_0<='z')) ) { 928 if ( ((LA4_0>='\u0000' && LA4_0<='\t')||(LA4_0>='\u000B' && LA4_0<='\f')||(LA4_0>='\u000E' && LA4_0<='\uFFFF')) ) {
899 alt4=1; 929 alt4=1;
900 } 930 }
901 931
902 932
903 switch (alt4) { 933 switch (alt4) {
904 case 1 : 934 case 1 :
905 // InternalProblem.g: 935 // InternalProblem.g:1899:30: ~ ( ( '\\n' | '\\r' ) )
906 { 936 {
907 if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { 937 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') ) {
908 input.consume(); 938 input.consume();
909 939
910 } 940 }
@@ -922,6 +952,42 @@ public class InternalProblemLexer extends Lexer {
922 } 952 }
923 } while (true); 953 } while (true);
924 954
955 // InternalProblem.g:1899:46: ( ( '\\r' )? '\\n' )?
956 int alt6=2;
957 int LA6_0 = input.LA(1);
958
959 if ( (LA6_0=='\n'||LA6_0=='\r') ) {
960 alt6=1;
961 }
962 switch (alt6) {
963 case 1 :
964 // InternalProblem.g:1899:47: ( '\\r' )? '\\n'
965 {
966 // InternalProblem.g:1899:47: ( '\\r' )?
967 int alt5=2;
968 int LA5_0 = input.LA(1);
969
970 if ( (LA5_0=='\r') ) {
971 alt5=1;
972 }
973 switch (alt5) {
974 case 1 :
975 // InternalProblem.g:1899:47: '\\r'
976 {
977 match('\r');
978
979 }
980 break;
981
982 }
983
984 match('\n');
985
986 }
987 break;
988
989 }
990
925 991
926 } 992 }
927 993
@@ -931,44 +997,74 @@ public class InternalProblemLexer extends Lexer {
931 finally { 997 finally {
932 } 998 }
933 } 999 }
934 // $ANTLR end "RULE_ID" 1000 // $ANTLR end "RULE_SL_COMMENT"
935 1001
936 // $ANTLR start "RULE_INT" 1002 // $ANTLR start "RULE_ID"
937 public final void mRULE_INT() throws RecognitionException { 1003 public final void mRULE_ID() throws RecognitionException {
938 try { 1004 try {
939 int _type = RULE_INT; 1005 int _type = RULE_ID;
940 int _channel = DEFAULT_TOKEN_CHANNEL; 1006 int _channel = DEFAULT_TOKEN_CHANNEL;
941 // InternalProblem.g:1901:10: ( ( '0' .. '9' )+ ) 1007 // InternalProblem.g:1901:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
942 // InternalProblem.g:1901:12: ( '0' .. '9' )+ 1008 // InternalProblem.g:1901:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
943 { 1009 {
944 // InternalProblem.g:1901:12: ( '0' .. '9' )+ 1010 // InternalProblem.g:1901:11: ( '^' )?
945 int cnt5=0; 1011 int alt7=2;
946 loop5: 1012 int LA7_0 = input.LA(1);
1013
1014 if ( (LA7_0=='^') ) {
1015 alt7=1;
1016 }
1017 switch (alt7) {
1018 case 1 :
1019 // InternalProblem.g:1901:11: '^'
1020 {
1021 match('^');
1022
1023 }
1024 break;
1025
1026 }
1027
1028 if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
1029 input.consume();
1030
1031 }
1032 else {
1033 MismatchedSetException mse = new MismatchedSetException(null,input);
1034 recover(mse);
1035 throw mse;}
1036
1037 // InternalProblem.g:1901:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
1038 loop8:
947 do { 1039 do {
948 int alt5=2; 1040 int alt8=2;
949 int LA5_0 = input.LA(1); 1041 int LA8_0 = input.LA(1);
950 1042
951 if ( ((LA5_0>='0' && LA5_0<='9')) ) { 1043 if ( ((LA8_0>='0' && LA8_0<='9')||(LA8_0>='A' && LA8_0<='Z')||LA8_0=='_'||(LA8_0>='a' && LA8_0<='z')) ) {
952 alt5=1; 1044 alt8=1;
953 } 1045 }
954 1046
955 1047
956 switch (alt5) { 1048 switch (alt8) {
957 case 1 : 1049 case 1 :
958 // InternalProblem.g:1901:13: '0' .. '9' 1050 // InternalProblem.g:
959 { 1051 {
960 matchRange('0','9'); 1052 if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
1053 input.consume();
1054
1055 }
1056 else {
1057 MismatchedSetException mse = new MismatchedSetException(null,input);
1058 recover(mse);
1059 throw mse;}
1060
961 1061
962 } 1062 }
963 break; 1063 break;
964 1064
965 default : 1065 default :
966 if ( cnt5 >= 1 ) break loop5; 1066 break loop8;
967 EarlyExitException eee =
968 new EarlyExitException(5, input);
969 throw eee;
970 } 1067 }
971 cnt5++;
972 } while (true); 1068 } while (true);
973 1069
974 1070
@@ -980,57 +1076,46 @@ public class InternalProblemLexer extends Lexer {
980 finally { 1076 finally {
981 } 1077 }
982 } 1078 }
983 // $ANTLR end "RULE_INT" 1079 // $ANTLR end "RULE_ID"
984 1080
985 // $ANTLR start "RULE_ML_COMMENT" 1081 // $ANTLR start "RULE_INT"
986 public final void mRULE_ML_COMMENT() throws RecognitionException { 1082 public final void mRULE_INT() throws RecognitionException {
987 try { 1083 try {
988 int _type = RULE_ML_COMMENT; 1084 int _type = RULE_INT;
989 int _channel = DEFAULT_TOKEN_CHANNEL; 1085 int _channel = DEFAULT_TOKEN_CHANNEL;
990 // InternalProblem.g:1903:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) 1086 // InternalProblem.g:1903:10: ( ( '0' .. '9' )+ )
991 // InternalProblem.g:1903:19: '/*' ( options {greedy=false; } : . )* '*/' 1087 // InternalProblem.g:1903:12: ( '0' .. '9' )+
992 { 1088 {
993 match("/*"); 1089 // InternalProblem.g:1903:12: ( '0' .. '9' )+
994 1090 int cnt9=0;
995 // InternalProblem.g:1903:24: ( options {greedy=false; } : . )* 1091 loop9:
996 loop6:
997 do { 1092 do {
998 int alt6=2; 1093 int alt9=2;
999 int LA6_0 = input.LA(1); 1094 int LA9_0 = input.LA(1);
1000
1001 if ( (LA6_0=='*') ) {
1002 int LA6_1 = input.LA(2);
1003 1095
1004 if ( (LA6_1=='/') ) { 1096 if ( ((LA9_0>='0' && LA9_0<='9')) ) {
1005 alt6=2; 1097 alt9=1;
1006 }
1007 else if ( ((LA6_1>='\u0000' && LA6_1<='.')||(LA6_1>='0' && LA6_1<='\uFFFF')) ) {
1008 alt6=1;
1009 }
1010
1011
1012 }
1013 else if ( ((LA6_0>='\u0000' && LA6_0<=')')||(LA6_0>='+' && LA6_0<='\uFFFF')) ) {
1014 alt6=1;
1015 } 1098 }
1016 1099
1017 1100
1018 switch (alt6) { 1101 switch (alt9) {
1019 case 1 : 1102 case 1 :
1020 // InternalProblem.g:1903:52: . 1103 // InternalProblem.g:1903:13: '0' .. '9'
1021 { 1104 {
1022 matchAny(); 1105 matchRange('0','9');
1023 1106
1024 } 1107 }
1025 break; 1108 break;
1026 1109
1027 default : 1110 default :
1028 break loop6; 1111 if ( cnt9 >= 1 ) break loop9;
1112 EarlyExitException eee =
1113 new EarlyExitException(9, input);
1114 throw eee;
1029 } 1115 }
1116 cnt9++;
1030 } while (true); 1117 } while (true);
1031 1118
1032 match("*/");
1033
1034 1119
1035 } 1120 }
1036 1121
@@ -1040,86 +1125,56 @@ public class InternalProblemLexer extends Lexer {
1040 finally { 1125 finally {
1041 } 1126 }
1042 } 1127 }
1043 // $ANTLR end "RULE_ML_COMMENT" 1128 // $ANTLR end "RULE_INT"
1044 1129
1045 // $ANTLR start "RULE_SL_COMMENT" 1130 // $ANTLR start "RULE_ML_COMMENT"
1046 public final void mRULE_SL_COMMENT() throws RecognitionException { 1131 public final void mRULE_ML_COMMENT() throws RecognitionException {
1047 try { 1132 try {
1048 int _type = RULE_SL_COMMENT; 1133 int _type = RULE_ML_COMMENT;
1049 int _channel = DEFAULT_TOKEN_CHANNEL; 1134 int _channel = DEFAULT_TOKEN_CHANNEL;
1050 // InternalProblem.g:1905:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? ) 1135 // InternalProblem.g:1905:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
1051 // InternalProblem.g:1905:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? 1136 // InternalProblem.g:1905:19: '/*' ( options {greedy=false; } : . )* '*/'
1052 { 1137 {
1053 match("//"); 1138 match("/*");
1054 1139
1055 // InternalProblem.g:1905:24: (~ ( ( '\\n' | '\\r' ) ) )* 1140 // InternalProblem.g:1905:24: ( options {greedy=false; } : . )*
1056 loop7: 1141 loop10:
1057 do { 1142 do {
1058 int alt7=2; 1143 int alt10=2;
1059 int LA7_0 = input.LA(1); 1144 int LA10_0 = input.LA(1);
1145
1146 if ( (LA10_0=='*') ) {
1147 int LA10_1 = input.LA(2);
1148
1149 if ( (LA10_1=='/') ) {
1150 alt10=2;
1151 }
1152 else if ( ((LA10_1>='\u0000' && LA10_1<='.')||(LA10_1>='0' && LA10_1<='\uFFFF')) ) {
1153 alt10=1;
1154 }
1155
1060 1156
1061 if ( ((LA7_0>='\u0000' && LA7_0<='\t')||(LA7_0>='\u000B' && LA7_0<='\f')||(LA7_0>='\u000E' && LA7_0<='\uFFFF')) ) { 1157 }
1062 alt7=1; 1158 else if ( ((LA10_0>='\u0000' && LA10_0<=')')||(LA10_0>='+' && LA10_0<='\uFFFF')) ) {
1159 alt10=1;
1063 } 1160 }
1064 1161
1065 1162
1066 switch (alt7) { 1163 switch (alt10) {
1067 case 1 : 1164 case 1 :
1068 // InternalProblem.g:1905:24: ~ ( ( '\\n' | '\\r' ) ) 1165 // InternalProblem.g:1905:52: .
1069 { 1166 {
1070 if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) { 1167 matchAny();
1071 input.consume();
1072
1073 }
1074 else {
1075 MismatchedSetException mse = new MismatchedSetException(null,input);
1076 recover(mse);
1077 throw mse;}
1078
1079 1168
1080 } 1169 }
1081 break; 1170 break;
1082 1171
1083 default : 1172 default :
1084 break loop7; 1173 break loop10;
1085 } 1174 }
1086 } while (true); 1175 } while (true);
1087 1176
1088 // InternalProblem.g:1905:40: ( ( '\\r' )? '\\n' )? 1177 match("*/");
1089 int alt9=2;
1090 int LA9_0 = input.LA(1);
1091
1092 if ( (LA9_0=='\n'||LA9_0=='\r') ) {
1093 alt9=1;
1094 }
1095 switch (alt9) {
1096 case 1 :
1097 // InternalProblem.g:1905:41: ( '\\r' )? '\\n'
1098 {
1099 // InternalProblem.g:1905:41: ( '\\r' )?
1100 int alt8=2;
1101 int LA8_0 = input.LA(1);
1102
1103 if ( (LA8_0=='\r') ) {
1104 alt8=1;
1105 }
1106 switch (alt8) {
1107 case 1 :
1108 // InternalProblem.g:1905:41: '\\r'
1109 {
1110 match('\r');
1111
1112 }
1113 break;
1114
1115 }
1116
1117 match('\n');
1118
1119 }
1120 break;
1121
1122 }
1123 1178
1124 1179
1125 } 1180 }
@@ -1130,7 +1185,7 @@ public class InternalProblemLexer extends Lexer {
1130 finally { 1185 finally {
1131 } 1186 }
1132 } 1187 }
1133 // $ANTLR end "RULE_SL_COMMENT" 1188 // $ANTLR end "RULE_ML_COMMENT"
1134 1189
1135 // $ANTLR start "RULE_WS" 1190 // $ANTLR start "RULE_WS"
1136 public final void mRULE_WS() throws RecognitionException { 1191 public final void mRULE_WS() throws RecognitionException {
@@ -1141,18 +1196,18 @@ public class InternalProblemLexer extends Lexer {
1141 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1196 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1142 { 1197 {
1143 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ 1198 // InternalProblem.g:1907:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
1144 int cnt10=0; 1199 int cnt11=0;
1145 loop10: 1200 loop11:
1146 do { 1201 do {
1147 int alt10=2; 1202 int alt11=2;
1148 int LA10_0 = input.LA(1); 1203 int LA11_0 = input.LA(1);
1149 1204
1150 if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0=='\r'||LA10_0==' ') ) { 1205 if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
1151 alt10=1; 1206 alt11=1;
1152 } 1207 }
1153 1208
1154 1209
1155 switch (alt10) { 1210 switch (alt11) {
1156 case 1 : 1211 case 1 :
1157 // InternalProblem.g: 1212 // InternalProblem.g:
1158 { 1213 {
@@ -1170,12 +1225,12 @@ public class InternalProblemLexer extends Lexer {
1170 break; 1225 break;
1171 1226
1172 default : 1227 default :
1173 if ( cnt10 >= 1 ) break loop10; 1228 if ( cnt11 >= 1 ) break loop11;
1174 EarlyExitException eee = 1229 EarlyExitException eee =
1175 new EarlyExitException(10, input); 1230 new EarlyExitException(11, input);
1176 throw eee; 1231 throw eee;
1177 } 1232 }
1178 cnt10++; 1233 cnt11++;
1179 } while (true); 1234 } while (true);
1180 1235
1181 1236
@@ -1210,10 +1265,10 @@ public class InternalProblemLexer extends Lexer {
1210 // $ANTLR end "RULE_ANY_OTHER" 1265 // $ANTLR end "RULE_ANY_OTHER"
1211 1266
1212 public void mTokens() throws RecognitionException { 1267 public void mTokens() throws RecognitionException {
1213 // InternalProblem.g:1:8: ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) 1268 // 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 | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER )
1214 int alt11=40; 1269 int alt12=41;
1215 alt11 = dfa11.predict(input); 1270 alt12 = dfa12.predict(input);
1216 switch (alt11) { 1271 switch (alt12) {
1217 case 1 : 1272 case 1 :
1218 // InternalProblem.g:1:10: T__12 1273 // InternalProblem.g:1:10: T__12
1219 { 1274 {
@@ -1439,56 +1494,63 @@ public class InternalProblemLexer extends Lexer {
1439 } 1494 }
1440 break; 1495 break;
1441 case 33 : 1496 case 33 :
1442 // InternalProblem.g:1:202: RULE_STRING 1497 // InternalProblem.g:1:202: T__44
1443 { 1498 {
1444 mRULE_STRING(); 1499 mT__44();
1445 1500
1446 } 1501 }
1447 break; 1502 break;
1448 case 34 : 1503 case 34 :
1449 // InternalProblem.g:1:214: RULE_QUOTED_ID 1504 // InternalProblem.g:1:208: RULE_STRING
1450 { 1505 {
1451 mRULE_QUOTED_ID(); 1506 mRULE_STRING();
1452 1507
1453 } 1508 }
1454 break; 1509 break;
1455 case 35 : 1510 case 35 :
1456 // InternalProblem.g:1:229: RULE_ID 1511 // InternalProblem.g:1:220: RULE_QUOTED_ID
1457 { 1512 {
1458 mRULE_ID(); 1513 mRULE_QUOTED_ID();
1459 1514
1460 } 1515 }
1461 break; 1516 break;
1462 case 36 : 1517 case 36 :
1463 // InternalProblem.g:1:237: RULE_INT 1518 // InternalProblem.g:1:235: RULE_SL_COMMENT
1464 { 1519 {
1465 mRULE_INT(); 1520 mRULE_SL_COMMENT();
1466 1521
1467 } 1522 }
1468 break; 1523 break;
1469 case 37 : 1524 case 37 :
1470 // InternalProblem.g:1:246: RULE_ML_COMMENT 1525 // InternalProblem.g:1:251: RULE_ID
1471 { 1526 {
1472 mRULE_ML_COMMENT(); 1527 mRULE_ID();
1473 1528
1474 } 1529 }
1475 break; 1530 break;
1476 case 38 : 1531 case 38 :
1477 // InternalProblem.g:1:262: RULE_SL_COMMENT 1532 // InternalProblem.g:1:259: RULE_INT
1478 { 1533 {
1479 mRULE_SL_COMMENT(); 1534 mRULE_INT();
1480 1535
1481 } 1536 }
1482 break; 1537 break;
1483 case 39 : 1538 case 39 :
1484 // InternalProblem.g:1:278: RULE_WS 1539 // InternalProblem.g:1:268: RULE_ML_COMMENT
1485 { 1540 {
1486 mRULE_WS(); 1541 mRULE_ML_COMMENT();
1487 1542
1488 } 1543 }
1489 break; 1544 break;
1490 case 40 : 1545 case 40 :
1491 // InternalProblem.g:1:286: RULE_ANY_OTHER 1546 // InternalProblem.g:1:284: RULE_WS
1547 {
1548 mRULE_WS();
1549
1550 }
1551 break;
1552 case 41 :
1553 // InternalProblem.g:1:292: RULE_ANY_OTHER
1492 { 1554 {
1493 mRULE_ANY_OTHER(); 1555 mRULE_ANY_OTHER();
1494 1556
@@ -1500,85 +1562,87 @@ public class InternalProblemLexer extends Lexer {
1500 } 1562 }
1501 1563
1502 1564
1503 protected DFA11 dfa11 = new DFA11(this); 1565 protected DFA12 dfa12 = new DFA12(this);
1504 static final String DFA11_eotS = 1566 static final String DFA12_eotS =
1505 "\1\uffff\1\43\1\45\3\43\4\uffff\1\43\2\uffff\1\43\2\uffff\1\67\1\uffff\1\72\1\43\2\uffff\3\43\1\uffff\3\41\2\uffff\1\41\2\uffff\1\43\3\uffff\6\43\4\uffff\1\43\2\uffff\1\43\7\uffff\1\43\2\uffff\3\43\7\uffff\17\43\1\145\4\43\1\152\4\43\1\157\3\43\1\uffff\1\43\1\164\2\43\1\uffff\1\167\2\43\1\172\1\uffff\1\173\3\43\1\uffff\2\43\1\uffff\1\u0081\1\43\2\uffff\1\43\1\u0084\2\43\1\u0087\1\uffff\1\43\1\u0089\1\uffff\1\u008a\1\u008b\1\uffff\1\u008c\4\uffff"; 1567 "\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\3\44\1\uffff\2\42\1\uffff\2\42\4\uffff\1\44\3\uffff\6\44\4\uffff\1\44\2\uffff\1\44\10\uffff\1\44\2\uffff\3\44\7\uffff\17\44\1\147\4\44\1\154\4\44\1\161\3\44\1\uffff\1\44\1\166\2\44\1\uffff\1\171\2\44\1\174\1\uffff\1\175\3\44\1\uffff\2\44\1\uffff\1\u0083\1\44\2\uffff\1\44\1\u0086\2\44\1\u0089\1\uffff\1\44\1\u008b\1\uffff\1\u008c\1\u008d\1\uffff\1\u008e\4\uffff";
1506 static final String DFA11_eofS = 1568 static final String DFA12_eofS =
1507 "\u008d\uffff"; 1569 "\u008f\uffff";
1508 static final String DFA11_minS = 1570 static final String DFA12_minS =
1509 "\1\0\1\162\1\56\1\142\1\154\1\156\4\uffff\1\145\2\uffff\1\160\2\uffff\1\55\1\uffff\1\75\1\143\2\uffff\1\162\1\141\1\156\1\uffff\2\0\1\101\2\uffff\1\52\2\uffff\1\145\3\uffff\1\163\1\141\1\156\1\164\1\165\1\162\4\uffff\1\146\2\uffff\1\160\7\uffff\1\157\2\uffff\1\165\1\154\1\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\60\1\162\1\163\1\141\1\156\1\60\2\162\1\163\1\145\1\60\1\145\1\157\1\145\1\uffff\1\141\1\60\1\151\1\144\1\uffff\1\60\1\163\1\151\1\60\1\uffff\1\60\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\60\1\164\2\uffff\1\156\1\60\1\164\1\163\1\60\1\uffff\1\145\1\60\1\uffff\2\60\1\uffff\1\60\4\uffff"; 1571 "\1\0\1\162\1\56\1\142\1\154\1\156\4\uffff\1\145\2\uffff\1\160\2\uffff\1\55\1\uffff\1\75\1\143\2\uffff\1\162\1\141\1\156\1\uffff\2\0\1\uffff\1\52\1\101\4\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\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\60\1\162\1\163\1\141\1\156\1\60\2\162\1\163\1\145\1\60\1\145\1\157\1\145\1\uffff\1\141\1\60\1\151\1\144\1\uffff\1\60\1\163\1\151\1\60\1\uffff\1\60\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\60\1\164\2\uffff\1\156\1\60\1\164\1\163\1\60\1\uffff\1\145\1\60\1\uffff\2\60\1\uffff\1\60\4\uffff";
1510 static final String DFA11_maxS = 1572 static final String DFA12_maxS =
1511 "\1\uffff\1\162\1\56\1\142\1\157\1\170\4\uffff\1\145\2\uffff\1\160\2\uffff\1\55\1\uffff\1\75\1\143\2\uffff\1\162\1\141\1\156\1\uffff\2\uffff\1\172\2\uffff\1\57\2\uffff\1\157\3\uffff\1\163\1\141\1\156\1\164\1\165\1\162\4\uffff\1\146\2\uffff\1\160\7\uffff\1\157\2\uffff\1\165\1\154\1\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\172\1\162\1\163\1\141\1\156\1\172\2\162\1\163\1\145\1\172\1\145\1\157\1\145\1\uffff\1\141\1\172\1\151\1\144\1\uffff\1\172\1\163\1\151\1\172\1\uffff\1\172\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\172\1\164\2\uffff\1\156\1\172\1\164\1\163\1\172\1\uffff\1\145\1\172\1\uffff\2\172\1\uffff\1\172\4\uffff"; 1573 "\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\156\1\uffff\2\uffff\1\uffff\1\57\1\172\4\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\153\7\uffff\1\142\1\144\1\164\1\163\1\164\1\145\1\155\1\157\1\145\1\157\1\160\1\145\1\163\1\156\1\154\1\172\1\162\1\163\1\141\1\156\1\172\2\162\1\163\1\145\1\172\1\145\1\157\1\145\1\uffff\1\141\1\172\1\151\1\144\1\uffff\1\172\1\163\1\151\1\172\1\uffff\1\172\1\167\1\155\1\143\1\uffff\1\156\1\163\1\uffff\1\172\1\164\2\uffff\1\156\1\172\1\164\1\163\1\172\1\uffff\1\145\1\172\1\uffff\2\172\1\uffff\1\172\4\uffff";
1512 static final String DFA11_acceptS = 1574 static final String DFA12_acceptS =
1513 "\6\uffff\1\6\1\7\1\10\1\11\1\uffff\1\15\1\16\1\uffff\1\22\1\23\1\uffff\1\25\2\uffff\1\32\1\34\3\uffff\1\40\3\uffff\1\43\1\44\1\uffff\1\47\1\50\1\uffff\1\43\1\33\1\2\6\uffff\1\6\1\7\1\10\1\11\1\uffff\1\15\1\16\1\uffff\1\22\1\23\1\24\1\27\1\25\1\31\1\26\1\uffff\1\32\1\34\3\uffff\1\40\1\41\1\42\1\44\1\45\1\46\1\47\35\uffff\1\21\4\uffff\1\12\4\uffff\1\35\4\uffff\1\4\2\uffff\1\20\2\uffff\1\30\1\36\5\uffff\1\14\2\uffff\1\1\2\uffff\1\5\1\uffff\1\37\1\3\1\13\1\17"; 1575 "\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\41\2\uffff\1\44\2\uffff\1\45\1\46\1\50\1\51\1\uffff\1\45\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\3\uffff\1\41\1\42\1\43\1\44\1\47\1\46\1\50\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\40\1\3\1\13\1\17";
1514 static final String DFA11_specialS = 1576 static final String DFA12_specialS =
1515 "\1\2\31\uffff\1\1\1\0\161\uffff}>"; 1577 "\1\0\31\uffff\1\2\1\1\163\uffff}>";
1516 static final String[] DFA11_transitionS = { 1578 static final String[] DFA12_transitionS = {
1517 "\11\41\2\40\2\41\1\40\22\41\1\40\1\21\1\32\4\41\1\33\1\16\1\17\1\25\1\22\1\6\1\41\1\2\1\37\12\36\1\20\1\10\1\41\1\24\1\41\1\31\1\41\32\35\1\13\1\41\1\14\1\34\1\35\1\41\1\3\1\35\1\4\1\35\1\5\1\27\10\35\1\15\1\1\1\35\1\12\1\23\1\26\1\30\5\35\1\7\1\41\1\11\uff82\41", 1579 "\11\42\2\41\2\42\1\41\22\42\1\41\1\21\1\32\2\42\1\34\1\42\1\33\1\16\1\17\1\25\1\22\1\6\1\42\1\2\1\35\12\40\1\20\1\10\1\42\1\24\1\42\1\31\1\42\32\37\1\13\1\42\1\14\1\36\1\37\1\42\1\3\1\37\1\4\1\37\1\5\1\27\10\37\1\15\1\1\1\37\1\12\1\23\1\26\1\30\5\37\1\7\1\42\1\11\uff82\42",
1518 "\1\42", 1580 "\1\43",
1519 "\1\44", 1581 "\1\45",
1520 "\1\46", 1582 "\1\47",
1521 "\1\47\2\uffff\1\50", 1583 "\1\50\2\uffff\1\51",
1522 "\1\52\3\uffff\1\53\5\uffff\1\51", 1584 "\1\53\3\uffff\1\54\5\uffff\1\52",
1523 "", 1585 "",
1524 "", 1586 "",
1525 "", 1587 "",
1526 "", 1588 "",
1527 "\1\60", 1589 "\1\61",
1528 "", 1590 "",
1529 "", 1591 "",
1530 "\1\63", 1592 "\1\64",
1531 "", 1593 "",
1532 "", 1594 "",
1533 "\1\66", 1595 "\1\67\14\uffff\1\70",
1534 "", 1596 "",
1535 "\1\71",
1536 "\1\73", 1597 "\1\73",
1598 "\1\75",
1537 "", 1599 "",
1538 "", 1600 "",
1539 "\1\76",
1540 "\1\77",
1541 "\1\100", 1601 "\1\100",
1602 "\1\101",
1603 "\1\102",
1604 "",
1605 "\0\104",
1606 "\0\105",
1542 "", 1607 "",
1543 "\0\102", 1608 "\1\107\4\uffff\1\106",
1544 "\0\103", 1609 "\32\44\4\uffff\1\44\1\uffff\32\44",
1545 "\32\43\4\uffff\1\43\1\uffff\32\43",
1546 "", 1610 "",
1547 "", 1611 "",
1548 "\1\105\4\uffff\1\106",
1549 "", 1612 "",
1550 "", 1613 "",
1551 "\1\111\11\uffff\1\110", 1614 "\1\113\11\uffff\1\112",
1552 "", 1615 "",
1553 "", 1616 "",
1554 "", 1617 "",
1555 "\1\112",
1556 "\1\113",
1557 "\1\114", 1618 "\1\114",
1558 "\1\115", 1619 "\1\115",
1559 "\1\116", 1620 "\1\116",
1560 "\1\117", 1621 "\1\117",
1622 "\1\120",
1623 "\1\121",
1561 "", 1624 "",
1562 "", 1625 "",
1563 "", 1626 "",
1564 "", 1627 "",
1565 "\1\120", 1628 "\1\122",
1566 "",
1567 "", 1629 "",
1568 "\1\121",
1569 "", 1630 "",
1631 "\1\123",
1570 "", 1632 "",
1571 "", 1633 "",
1572 "", 1634 "",
1573 "", 1635 "",
1574 "", 1636 "",
1575 "", 1637 "",
1576 "\1\122",
1577 "", 1638 "",
1578 "", 1639 "",
1579 "\1\123",
1580 "\1\124", 1640 "\1\124",
1641 "",
1642 "",
1581 "\1\125", 1643 "\1\125",
1644 "\1\126",
1645 "\1\127",
1582 "", 1646 "",
1583 "", 1647 "",
1584 "", 1648 "",
@@ -1586,8 +1650,6 @@ public class InternalProblemLexer extends Lexer {
1586 "", 1650 "",
1587 "", 1651 "",
1588 "", 1652 "",
1589 "\1\126",
1590 "\1\127",
1591 "\1\130", 1653 "\1\130",
1592 "\1\131", 1654 "\1\131",
1593 "\1\132", 1655 "\1\132",
@@ -1601,193 +1663,197 @@ public class InternalProblemLexer extends Lexer {
1601 "\1\142", 1663 "\1\142",
1602 "\1\143", 1664 "\1\143",
1603 "\1\144", 1665 "\1\144",
1604 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1666 "\1\145",
1605 "\1\146", 1667 "\1\146",
1606 "\1\147", 1668 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1607 "\1\150", 1669 "\1\150",
1608 "\1\151", 1670 "\1\151",
1609 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1671 "\1\152",
1610 "\1\153", 1672 "\1\153",
1611 "\1\154", 1673 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1612 "\1\155", 1674 "\1\155",
1613 "\1\156", 1675 "\1\156",
1614 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1676 "\1\157",
1615 "\1\160", 1677 "\1\160",
1616 "\1\161", 1678 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1617 "\1\162", 1679 "\1\162",
1618 "",
1619 "\1\163", 1680 "\1\163",
1620 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1681 "\1\164",
1621 "\1\165",
1622 "\1\166",
1623 "", 1682 "",
1624 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1683 "\1\165",
1684 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1685 "\1\167",
1625 "\1\170", 1686 "\1\170",
1626 "\1\171",
1627 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1628 "", 1687 "",
1629 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1688 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1630 "\1\174", 1689 "\1\172",
1631 "\1\175", 1690 "\1\173",
1632 "\1\176", 1691 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1633 "", 1692 "",
1693 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1694 "\1\176",
1634 "\1\177", 1695 "\1\177",
1635 "\1\u0080", 1696 "\1\u0080",
1636 "", 1697 "",
1637 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1698 "\1\u0081",
1638 "\1\u0082", 1699 "\1\u0082",
1639 "", 1700 "",
1701 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1702 "\1\u0084",
1640 "", 1703 "",
1641 "\1\u0083",
1642 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1643 "\1\u0085",
1644 "\1\u0086",
1645 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43",
1646 "", 1704 "",
1705 "\1\u0085",
1706 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1707 "\1\u0087",
1647 "\1\u0088", 1708 "\1\u0088",
1648 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1709 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1710 "",
1711 "\1\u008a",
1712 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1649 "", 1713 "",
1650 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1714 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1651 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1715 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1652 "", 1716 "",
1653 "\12\43\7\uffff\32\43\4\uffff\1\43\1\uffff\32\43", 1717 "\12\44\7\uffff\32\44\4\uffff\1\44\1\uffff\32\44",
1654 "", 1718 "",
1655 "", 1719 "",
1656 "", 1720 "",
1657 "" 1721 ""
1658 }; 1722 };
1659 1723
1660 static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS); 1724 static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
1661 static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS); 1725 static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
1662 static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS); 1726 static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
1663 static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS); 1727 static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
1664 static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS); 1728 static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
1665 static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS); 1729 static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
1666 static final short[][] DFA11_transition; 1730 static final short[][] DFA12_transition;
1667 1731
1668 static { 1732 static {
1669 int numStates = DFA11_transitionS.length; 1733 int numStates = DFA12_transitionS.length;
1670 DFA11_transition = new short[numStates][]; 1734 DFA12_transition = new short[numStates][];
1671 for (int i=0; i<numStates; i++) { 1735 for (int i=0; i<numStates; i++) {
1672 DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]); 1736 DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
1673 } 1737 }
1674 } 1738 }
1675 1739
1676 class DFA11 extends DFA { 1740 class DFA12 extends DFA {
1677 1741
1678 public DFA11(BaseRecognizer recognizer) { 1742 public DFA12(BaseRecognizer recognizer) {
1679 this.recognizer = recognizer; 1743 this.recognizer = recognizer;
1680 this.decisionNumber = 11; 1744 this.decisionNumber = 12;
1681 this.eot = DFA11_eot; 1745 this.eot = DFA12_eot;
1682 this.eof = DFA11_eof; 1746 this.eof = DFA12_eof;
1683 this.min = DFA11_min; 1747 this.min = DFA12_min;
1684 this.max = DFA11_max; 1748 this.max = DFA12_max;
1685 this.accept = DFA11_accept; 1749 this.accept = DFA12_accept;
1686 this.special = DFA11_special; 1750 this.special = DFA12_special;
1687 this.transition = DFA11_transition; 1751 this.transition = DFA12_transition;
1688 } 1752 }
1689 public String getDescription() { 1753 public String getDescription() {
1690 return "1:1: Tokens : ( T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; 1754 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 | RULE_STRING | RULE_QUOTED_ID | RULE_SL_COMMENT | RULE_ID | RULE_INT | RULE_ML_COMMENT | RULE_WS | RULE_ANY_OTHER );";
1691 } 1755 }
1692 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { 1756 public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
1693 IntStream input = _input; 1757 IntStream input = _input;
1694 int _s = s; 1758 int _s = s;
1695 switch ( s ) { 1759 switch ( s ) {
1696 case 0 : 1760 case 0 :
1697 int LA11_27 = input.LA(1); 1761 int LA12_0 = input.LA(1);
1698 1762
1699 s = -1; 1763 s = -1;
1700 if ( ((LA11_27>='\u0000' && LA11_27<='\uFFFF')) ) {s = 67;} 1764 if ( (LA12_0=='p') ) {s = 1;}
1701 1765
1702 else s = 33; 1766 else if ( (LA12_0=='.') ) {s = 2;}
1703 1767
1704 if ( s>=0 ) return s; 1768 else if ( (LA12_0=='a') ) {s = 3;}
1705 break;
1706 case 1 :
1707 int LA11_26 = input.LA(1);
1708 1769
1709 s = -1; 1770 else if ( (LA12_0=='c') ) {s = 4;}
1710 if ( ((LA11_26>='\u0000' && LA11_26<='\uFFFF')) ) {s = 66;}
1711 1771
1712 else s = 33; 1772 else if ( (LA12_0=='e') ) {s = 5;}
1713 1773
1714 if ( s>=0 ) return s; 1774 else if ( (LA12_0==',') ) {s = 6;}
1715 break;
1716 case 2 :
1717 int LA11_0 = input.LA(1);
1718 1775
1719 s = -1; 1776 else if ( (LA12_0=='{') ) {s = 7;}
1720 if ( (LA11_0=='p') ) {s = 1;}
1721 1777
1722 else if ( (LA11_0=='.') ) {s = 2;} 1778 else if ( (LA12_0==';') ) {s = 8;}
1723 1779
1724 else if ( (LA11_0=='a') ) {s = 3;} 1780 else if ( (LA12_0=='}') ) {s = 9;}
1725 1781
1726 else if ( (LA11_0=='c') ) {s = 4;} 1782 else if ( (LA12_0=='r') ) {s = 10;}
1727 1783
1728 else if ( (LA11_0=='e') ) {s = 5;} 1784 else if ( (LA12_0=='[') ) {s = 11;}
1729 1785
1730 else if ( (LA11_0==',') ) {s = 6;} 1786 else if ( (LA12_0==']') ) {s = 12;}
1731 1787
1732 else if ( (LA11_0=='{') ) {s = 7;} 1788 else if ( (LA12_0=='o') ) {s = 13;}
1733 1789
1734 else if ( (LA11_0==';') ) {s = 8;} 1790 else if ( (LA12_0=='(') ) {s = 14;}
1735 1791
1736 else if ( (LA11_0=='}') ) {s = 9;} 1792 else if ( (LA12_0==')') ) {s = 15;}
1737 1793
1738 else if ( (LA11_0=='r') ) {s = 10;} 1794 else if ( (LA12_0==':') ) {s = 16;}
1739 1795
1740 else if ( (LA11_0=='[') ) {s = 11;} 1796 else if ( (LA12_0=='!') ) {s = 17;}
1741 1797
1742 else if ( (LA11_0==']') ) {s = 12;} 1798 else if ( (LA12_0=='+') ) {s = 18;}
1743 1799
1744 else if ( (LA11_0=='o') ) {s = 13;} 1800 else if ( (LA12_0=='s') ) {s = 19;}
1745 1801
1746 else if ( (LA11_0=='(') ) {s = 14;} 1802 else if ( (LA12_0=='=') ) {s = 20;}
1747 1803
1748 else if ( (LA11_0==')') ) {s = 15;} 1804 else if ( (LA12_0=='*') ) {s = 21;}
1749 1805
1750 else if ( (LA11_0==':') ) {s = 16;} 1806 else if ( (LA12_0=='t') ) {s = 22;}
1751 1807
1752 else if ( (LA11_0=='!') ) {s = 17;} 1808 else if ( (LA12_0=='f') ) {s = 23;}
1753 1809
1754 else if ( (LA11_0=='+') ) {s = 18;} 1810 else if ( (LA12_0=='u') ) {s = 24;}
1755 1811
1756 else if ( (LA11_0=='s') ) {s = 19;} 1812 else if ( (LA12_0=='?') ) {s = 25;}
1757 1813
1758 else if ( (LA11_0=='=') ) {s = 20;} 1814 else if ( (LA12_0=='\"') ) {s = 26;}
1759 1815
1760 else if ( (LA11_0=='*') ) {s = 21;} 1816 else if ( (LA12_0=='\'') ) {s = 27;}
1761 1817
1762 else if ( (LA11_0=='t') ) {s = 22;} 1818 else if ( (LA12_0=='%') ) {s = 28;}
1763 1819
1764 else if ( (LA11_0=='f') ) {s = 23;} 1820 else if ( (LA12_0=='/') ) {s = 29;}
1765 1821
1766 else if ( (LA11_0=='u') ) {s = 24;} 1822 else if ( (LA12_0=='^') ) {s = 30;}
1767 1823
1768 else if ( (LA11_0=='?') ) {s = 25;} 1824 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 = 31;}
1769 1825
1770 else if ( (LA11_0=='\"') ) {s = 26;} 1826 else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 32;}
1771 1827
1772 else if ( (LA11_0=='\'') ) {s = 27;} 1828 else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 33;}
1773 1829
1774 else if ( (LA11_0=='^') ) {s = 28;} 1830 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;}
1775 1831
1776 else if ( ((LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||LA11_0=='b'||LA11_0=='d'||(LA11_0>='g' && LA11_0<='n')||LA11_0=='q'||(LA11_0>='v' && LA11_0<='z')) ) {s = 29;} 1832 if ( s>=0 ) return s;
1833 break;
1834 case 1 :
1835 int LA12_27 = input.LA(1);
1777 1836
1778 else if ( ((LA11_0>='0' && LA11_0<='9')) ) {s = 30;} 1837 s = -1;
1838 if ( ((LA12_27>='\u0000' && LA12_27<='\uFFFF')) ) {s = 69;}
1779 1839
1780 else if ( (LA11_0=='/') ) {s = 31;} 1840 else s = 34;
1781 1841
1782 else if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {s = 32;} 1842 if ( s>=0 ) return s;
1843 break;
1844 case 2 :
1845 int LA12_26 = input.LA(1);
1846
1847 s = -1;
1848 if ( ((LA12_26>='\u0000' && LA12_26<='\uFFFF')) ) {s = 68;}
1783 1849
1784 else if ( ((LA11_0>='\u0000' && LA11_0<='\b')||(LA11_0>='\u000B' && LA11_0<='\f')||(LA11_0>='\u000E' && LA11_0<='\u001F')||(LA11_0>='#' && LA11_0<='&')||LA11_0=='-'||LA11_0=='<'||LA11_0=='>'||LA11_0=='@'||LA11_0=='\\'||LA11_0=='`'||LA11_0=='|'||(LA11_0>='~' && LA11_0<='\uFFFF')) ) {s = 33;} 1850 else s = 34;
1785 1851
1786 if ( s>=0 ) return s; 1852 if ( s>=0 ) return s;
1787 break; 1853 break;
1788 } 1854 }
1789 NoViableAltException nvae = 1855 NoViableAltException nvae =
1790 new NoViableAltException(getDescription(), 11, _s, input); 1856 new NoViableAltException(getDescription(), 12, _s, input);
1791 error(nvae); 1857 error(nvae);
1792 throw nvae; 1858 throw nvae;
1793 } 1859 }
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 28b54551..fa8643aa 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,7 +22,7 @@ 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_ID", "RULE_INT", "RULE_QUOTED_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'problem'", "'.'", "'abstract'", "'class'", "'extends'", "','", "'{'", "';'", "'}'", "'enum'", "'contains'", "'refers'", "'['", "']'", "'opposite'", "'error'", "'pred'", "'('", "')'", "':-'", "'!'", "'+'", "':'", "'scope'", "'+='", "'='", "'..'", "'*'", "'true'", "'false'", "'unknown'", "'?'" 25 "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_QUOTED_ID", "RULE_STRING", "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;
@@ -40,14 +40,14 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
40 public static final int RULE_INT=5; 40 public static final int RULE_INT=5;
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=8; 43 public static final int RULE_ML_COMMENT=9;
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=7; 49 public static final int RULE_STRING=7;
50 public static final int RULE_SL_COMMENT=9; 50 public static final int RULE_SL_COMMENT=8;
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;
@@ -61,6 +61,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
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=10;
63 public static final int RULE_ANY_OTHER=11; 63 public static final int RULE_ANY_OTHER=11;
64 public static final int T__44=44;
64 public static final int T__40=40; 65 public static final int T__40=40;
65 public static final int T__41=41; 66 public static final int T__41=41;
66 public static final int T__42=42; 67 public static final int T__42=42;
@@ -225,7 +226,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
225 int alt2=2; 226 int alt2=2;
226 int LA2_0 = input.LA(1); 227 int LA2_0 = input.LA(1);
227 228
228 if ( (LA2_0==RULE_ID||LA2_0==RULE_QUOTED_ID||(LA2_0>=14 && LA2_0<=15)||LA2_0==21||(LA2_0>=27 && LA2_0<=28)||LA2_0==32||LA2_0==35||(LA2_0>=40 && LA2_0<=41)||LA2_0==43) ) { 229 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<=42)||LA2_0==44) ) {
229 alt2=1; 230 alt2=1;
230 } 231 }
231 232
@@ -372,9 +373,9 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
372 case RULE_ID: 373 case RULE_ID:
373 case RULE_QUOTED_ID: 374 case RULE_QUOTED_ID:
374 case 32: 375 case 32:
375 case 40:
376 case 41: 376 case 41:
377 case 43: 377 case 42:
378 case 44:
378 { 379 {
379 alt3=4; 380 alt3=4;
380 } 381 }
@@ -774,7 +775,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
774 int alt8=2; 775 int alt8=2;
775 int LA8_0 = input.LA(1); 776 int LA8_0 = input.LA(1);
776 777
777 if ( (LA8_0==RULE_ID||LA8_0==RULE_QUOTED_ID||(LA8_0>=22 && LA8_0<=23)||(LA8_0>=40 && LA8_0<=41)) ) { 778 if ( (LA8_0==RULE_ID||LA8_0==RULE_QUOTED_ID||(LA8_0>=22 && LA8_0<=23)||(LA8_0>=41 && LA8_0<=42)) ) {
778 alt8=1; 779 alt8=1;
779 } 780 }
780 781
@@ -1020,7 +1021,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1020 int alt12=2; 1021 int alt12=2;
1021 int LA12_0 = input.LA(1); 1022 int LA12_0 = input.LA(1);
1022 1023
1023 if ( (LA12_0==RULE_ID||LA12_0==RULE_QUOTED_ID||(LA12_0>=40 && LA12_0<=41)) ) { 1024 if ( (LA12_0==RULE_ID||LA12_0==RULE_QUOTED_ID||(LA12_0>=41 && LA12_0<=42)) ) {
1024 alt12=1; 1025 alt12=1;
1025 } 1026 }
1026 switch (alt12) { 1027 switch (alt12) {
@@ -1067,7 +1068,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1067 if ( (LA10_0==17) ) { 1068 if ( (LA10_0==17) ) {
1068 int LA10_1 = input.LA(2); 1069 int LA10_1 = input.LA(2);
1069 1070
1070 if ( (LA10_1==RULE_ID||LA10_1==RULE_QUOTED_ID||(LA10_1>=40 && LA10_1<=41)) ) { 1071 if ( (LA10_1==RULE_ID||LA10_1==RULE_QUOTED_ID||(LA10_1>=41 && LA10_1<=42)) ) {
1071 alt10=1; 1072 alt10=1;
1072 } 1073 }
1073 1074
@@ -1803,7 +1804,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
1803 int alt20=2; 1804 int alt20=2;
1804 int LA20_0 = input.LA(1); 1805 int LA20_0 = input.LA(1);
1805 1806
1806 if ( (LA20_0==RULE_ID||LA20_0==RULE_QUOTED_ID||(LA20_0>=40 && LA20_0<=41)) ) { 1807 if ( (LA20_0==RULE_ID||LA20_0==RULE_QUOTED_ID||(LA20_0>=41 && LA20_0<=42)) ) {
1807 alt20=1; 1808 alt20=1;
1808 } 1809 }
1809 switch (alt20) { 1810 switch (alt20) {
@@ -2113,25 +2114,25 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2113 { 2114 {
2114 int LA23_2 = input.LA(2); 2115 int LA23_2 = input.LA(2);
2115 2116
2116 if ( (LA23_2==RULE_ID||LA23_2==34||(LA23_2>=40 && LA23_2<=41)) ) { 2117 if ( (LA23_2==RULE_ID||(LA23_2>=40 && LA23_2<=42)) ) {
2117 alt23=1; 2118 alt23=1;
2118 } 2119 }
2119 } 2120 }
2120 break; 2121 break;
2121 case 40: 2122 case 41:
2122 { 2123 {
2123 int LA23_3 = input.LA(2); 2124 int LA23_3 = input.LA(2);
2124 2125
2125 if ( (LA23_3==RULE_ID||LA23_3==34||(LA23_3>=40 && LA23_3<=41)) ) { 2126 if ( (LA23_3==RULE_ID||(LA23_3>=40 && LA23_3<=42)) ) {
2126 alt23=1; 2127 alt23=1;
2127 } 2128 }
2128 } 2129 }
2129 break; 2130 break;
2130 case 41: 2131 case 42:
2131 { 2132 {
2132 int LA23_4 = input.LA(2); 2133 int LA23_4 = input.LA(2);
2133 2134
2134 if ( (LA23_4==RULE_ID||LA23_4==34||(LA23_4>=40 && LA23_4<=41)) ) { 2135 if ( (LA23_4==RULE_ID||(LA23_4>=40 && LA23_4<=42)) ) {
2135 alt23=1; 2136 alt23=1;
2136 } 2137 }
2137 } 2138 }
@@ -2449,7 +2450,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2449 int alt25=2; 2450 int alt25=2;
2450 int LA25_0 = input.LA(1); 2451 int LA25_0 = input.LA(1);
2451 2452
2452 if ( (LA25_0==RULE_ID||LA25_0==RULE_QUOTED_ID||(LA25_0>=40 && LA25_0<=41)) ) { 2453 if ( (LA25_0==RULE_ID||LA25_0==RULE_QUOTED_ID||(LA25_0>=41 && LA25_0<=42)) ) {
2453 alt25=1; 2454 alt25=1;
2454 } 2455 }
2455 else if ( (LA25_0==32) ) { 2456 else if ( (LA25_0==32) ) {
@@ -2761,7 +2762,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
2761 int alt28=2; 2762 int alt28=2;
2762 int LA28_0 = input.LA(1); 2763 int LA28_0 = input.LA(1);
2763 2764
2764 if ( (LA28_0==RULE_ID||LA28_0==RULE_QUOTED_ID||(LA28_0>=40 && LA28_0<=41)) ) { 2765 if ( (LA28_0==RULE_ID||LA28_0==RULE_QUOTED_ID||(LA28_0>=41 && LA28_0<=42)) ) {
2765 alt28=1; 2766 alt28=1;
2766 } 2767 }
2767 switch (alt28) { 2768 switch (alt28) {
@@ -3095,7 +3096,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3095 int alt30=2; 3096 int alt30=2;
3096 int LA30_0 = input.LA(1); 3097 int LA30_0 = input.LA(1);
3097 3098
3098 if ( (LA30_0==RULE_ID||LA30_0==RULE_QUOTED_ID||(LA30_0>=40 && LA30_0<=41)) ) { 3099 if ( (LA30_0==RULE_ID||LA30_0==RULE_QUOTED_ID||(LA30_0>=41 && LA30_0<=42)) ) {
3099 alt30=1; 3100 alt30=1;
3100 } 3101 }
3101 switch (alt30) { 3102 switch (alt30) {
@@ -3247,7 +3248,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3247 int alt31=2; 3248 int alt31=2;
3248 int LA31_0 = input.LA(1); 3249 int LA31_0 = input.LA(1);
3249 3250
3250 if ( (LA31_0==32||LA31_0==43) ) { 3251 if ( (LA31_0==32||LA31_0==44) ) {
3251 alt31=1; 3252 alt31=1;
3252 } 3253 }
3253 switch (alt31) { 3254 switch (alt31) {
@@ -3321,7 +3322,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
3321 int alt33=2; 3322 int alt33=2;
3322 int LA33_0 = input.LA(1); 3323 int LA33_0 = input.LA(1);
3323 3324
3324 if ( (LA33_0==RULE_ID||LA33_0==RULE_QUOTED_ID||(LA33_0>=40 && LA33_0<=41)) ) { 3325 if ( (LA33_0==RULE_ID||LA33_0==RULE_QUOTED_ID||(LA33_0>=41 && LA33_0<=42)) ) {
3325 alt33=1; 3326 alt33=1;
3326 } 3327 }
3327 switch (alt33) { 3328 switch (alt33) {
@@ -4571,7 +4572,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4571 if ( (LA40_0==RULE_QUOTED_ID) ) { 4572 if ( (LA40_0==RULE_QUOTED_ID) ) {
4572 alt40=1; 4573 alt40=1;
4573 } 4574 }
4574 else if ( (LA40_0==RULE_ID||(LA40_0>=40 && LA40_0<=41)) ) { 4575 else if ( (LA40_0==RULE_ID||(LA40_0>=41 && LA40_0<=42)) ) {
4575 alt40=2; 4576 alt40=2;
4576 } 4577 }
4577 else { 4578 else {
@@ -4673,7 +4674,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4673 4674
4674 4675
4675 // $ANTLR start "ruleQualifiedName" 4676 // $ANTLR start "ruleQualifiedName"
4676 // InternalProblem.g:1733:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) ; 4677 // InternalProblem.g:1733:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* (kw= '::' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) ;
4677 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException { 4678 public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
4678 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken(); 4679 AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
4679 4680
@@ -4689,17 +4690,17 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4689 enterRule(); 4690 enterRule();
4690 4691
4691 try { 4692 try {
4692 // InternalProblem.g:1739:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) ) 4693 // InternalProblem.g:1739:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* (kw= '::' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) )
4693 // InternalProblem.g:1740:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) 4694 // InternalProblem.g:1740:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* (kw= '::' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) )
4694 { 4695 {
4695 // InternalProblem.g:1740:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) ) 4696 // InternalProblem.g:1740:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* (kw= '::' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) )
4696 int alt43=2; 4697 int alt43=2;
4697 int LA43_0 = input.LA(1); 4698 int LA43_0 = input.LA(1);
4698 4699
4699 if ( (LA43_0==RULE_QUOTED_ID) ) { 4700 if ( (LA43_0==RULE_QUOTED_ID) ) {
4700 alt43=1; 4701 alt43=1;
4701 } 4702 }
4702 else if ( (LA43_0==RULE_ID||(LA43_0>=40 && LA43_0<=41)) ) { 4703 else if ( (LA43_0==RULE_ID||(LA43_0>=41 && LA43_0<=42)) ) {
4703 alt43=2; 4704 alt43=2;
4704 } 4705 }
4705 else { 4706 else {
@@ -4723,10 +4724,10 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4723 } 4724 }
4724 break; 4725 break;
4725 case 2 : 4726 case 2 :
4726 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) 4727 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* (kw= '::' this_QUOTED_ID_5= RULE_QUOTED_ID )? )
4727 { 4728 {
4728 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? ) 4729 // InternalProblem.g:1749:3: (this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* (kw= '::' this_QUOTED_ID_5= RULE_QUOTED_ID )? )
4729 // InternalProblem.g:1750:4: this_Identifier_1= ruleIdentifier (kw= ':' this_Identifier_3= ruleIdentifier )* (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? 4730 // InternalProblem.g:1750:4: this_Identifier_1= ruleIdentifier (kw= '::' this_Identifier_3= ruleIdentifier )* (kw= '::' this_QUOTED_ID_5= RULE_QUOTED_ID )?
4730 { 4731 {
4731 4732
4732 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0()); 4733 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_0());
@@ -4742,16 +4743,16 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4742 4743
4743 afterParserOrEnumRuleCall(); 4744 afterParserOrEnumRuleCall();
4744 4745
4745 // InternalProblem.g:1760:4: (kw= ':' this_Identifier_3= ruleIdentifier )* 4746 // InternalProblem.g:1760:4: (kw= '::' this_Identifier_3= ruleIdentifier )*
4746 loop41: 4747 loop41:
4747 do { 4748 do {
4748 int alt41=2; 4749 int alt41=2;
4749 int LA41_0 = input.LA(1); 4750 int LA41_0 = input.LA(1);
4750 4751
4751 if ( (LA41_0==34) ) { 4752 if ( (LA41_0==40) ) {
4752 int LA41_1 = input.LA(2); 4753 int LA41_1 = input.LA(2);
4753 4754
4754 if ( (LA41_1==RULE_ID||(LA41_1>=40 && LA41_1<=41)) ) { 4755 if ( (LA41_1==RULE_ID||(LA41_1>=41 && LA41_1<=42)) ) {
4755 alt41=1; 4756 alt41=1;
4756 } 4757 }
4757 4758
@@ -4761,12 +4762,12 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4761 4762
4762 switch (alt41) { 4763 switch (alt41) {
4763 case 1 : 4764 case 1 :
4764 // InternalProblem.g:1761:5: kw= ':' this_Identifier_3= ruleIdentifier 4765 // InternalProblem.g:1761:5: kw= '::' this_Identifier_3= ruleIdentifier
4765 { 4766 {
4766 kw=(Token)match(input,34,FOLLOW_3); 4767 kw=(Token)match(input,40,FOLLOW_3);
4767 4768
4768 current.merge(kw); 4769 current.merge(kw);
4769 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_1_0()); 4770 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_1_0());
4770 4771
4771 4772
4772 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1()); 4773 newCompositeNode(grammarAccess.getQualifiedNameAccess().getIdentifierParserRuleCall_1_1_1());
@@ -4791,21 +4792,21 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4791 } 4792 }
4792 } while (true); 4793 } while (true);
4793 4794
4794 // InternalProblem.g:1777:4: (kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID )? 4795 // InternalProblem.g:1777:4: (kw= '::' this_QUOTED_ID_5= RULE_QUOTED_ID )?
4795 int alt42=2; 4796 int alt42=2;
4796 int LA42_0 = input.LA(1); 4797 int LA42_0 = input.LA(1);
4797 4798
4798 if ( (LA42_0==34) ) { 4799 if ( (LA42_0==40) ) {
4799 alt42=1; 4800 alt42=1;
4800 } 4801 }
4801 switch (alt42) { 4802 switch (alt42) {
4802 case 1 : 4803 case 1 :
4803 // InternalProblem.g:1778:5: kw= ':' this_QUOTED_ID_5= RULE_QUOTED_ID 4804 // InternalProblem.g:1778:5: kw= '::' this_QUOTED_ID_5= RULE_QUOTED_ID
4804 { 4805 {
4805 kw=(Token)match(input,34,FOLLOW_37); 4806 kw=(Token)match(input,40,FOLLOW_37);
4806 4807
4807 current.merge(kw); 4808 current.merge(kw);
4808 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonKeyword_1_2_0()); 4809 newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getColonColonKeyword_1_2_0());
4809 4810
4810 this_QUOTED_ID_5=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); 4811 this_QUOTED_ID_5=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2);
4811 4812
@@ -4907,12 +4908,12 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4907 alt44=1; 4908 alt44=1;
4908 } 4909 }
4909 break; 4910 break;
4910 case 40: 4911 case 41:
4911 { 4912 {
4912 alt44=2; 4913 alt44=2;
4913 } 4914 }
4914 break; 4915 break;
4915 case 41: 4916 case 42:
4916 { 4917 {
4917 alt44=3; 4918 alt44=3;
4918 } 4919 }
@@ -4941,7 +4942,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4941 case 2 : 4942 case 2 :
4942 // InternalProblem.g:1819:3: kw= 'true' 4943 // InternalProblem.g:1819:3: kw= 'true'
4943 { 4944 {
4944 kw=(Token)match(input,40,FOLLOW_2); 4945 kw=(Token)match(input,41,FOLLOW_2);
4945 4946
4946 current.merge(kw); 4947 current.merge(kw);
4947 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1()); 4948 newLeafNode(kw, grammarAccess.getIdentifierAccess().getTrueKeyword_1());
@@ -4952,7 +4953,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
4952 case 3 : 4953 case 3 :
4953 // InternalProblem.g:1825:3: kw= 'false' 4954 // InternalProblem.g:1825:3: kw= 'false'
4954 { 4955 {
4955 kw=(Token)match(input,41,FOLLOW_2); 4956 kw=(Token)match(input,42,FOLLOW_2);
4956 4957
4957 current.merge(kw); 4958 current.merge(kw);
4958 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2()); 4959 newLeafNode(kw, grammarAccess.getIdentifierAccess().getFalseKeyword_2());
@@ -5001,17 +5002,17 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5001 // InternalProblem.g:1841:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) ) 5002 // InternalProblem.g:1841:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) | (enumLiteral_2= 'unknown' ) )
5002 int alt45=3; 5003 int alt45=3;
5003 switch ( input.LA(1) ) { 5004 switch ( input.LA(1) ) {
5004 case 40: 5005 case 41:
5005 { 5006 {
5006 alt45=1; 5007 alt45=1;
5007 } 5008 }
5008 break; 5009 break;
5009 case 41: 5010 case 42:
5010 { 5011 {
5011 alt45=2; 5012 alt45=2;
5012 } 5013 }
5013 break; 5014 break;
5014 case 42: 5015 case 43:
5015 { 5016 {
5016 alt45=3; 5017 alt45=3;
5017 } 5018 }
@@ -5030,7 +5031,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5030 // InternalProblem.g:1842:3: (enumLiteral_0= 'true' ) 5031 // InternalProblem.g:1842:3: (enumLiteral_0= 'true' )
5031 // InternalProblem.g:1843:4: enumLiteral_0= 'true' 5032 // InternalProblem.g:1843:4: enumLiteral_0= 'true'
5032 { 5033 {
5033 enumLiteral_0=(Token)match(input,40,FOLLOW_2); 5034 enumLiteral_0=(Token)match(input,41,FOLLOW_2);
5034 5035
5035 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance(); 5036 current = grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
5036 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0()); 5037 newLeafNode(enumLiteral_0, grammarAccess.getLogicValueAccess().getTRUEEnumLiteralDeclaration_0());
@@ -5047,7 +5048,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5047 // InternalProblem.g:1850:3: (enumLiteral_1= 'false' ) 5048 // InternalProblem.g:1850:3: (enumLiteral_1= 'false' )
5048 // InternalProblem.g:1851:4: enumLiteral_1= 'false' 5049 // InternalProblem.g:1851:4: enumLiteral_1= 'false'
5049 { 5050 {
5050 enumLiteral_1=(Token)match(input,41,FOLLOW_2); 5051 enumLiteral_1=(Token)match(input,42,FOLLOW_2);
5051 5052
5052 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 5053 current = grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
5053 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1()); 5054 newLeafNode(enumLiteral_1, grammarAccess.getLogicValueAccess().getFALSEEnumLiteralDeclaration_1());
@@ -5064,7 +5065,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5064 // InternalProblem.g:1858:3: (enumLiteral_2= 'unknown' ) 5065 // InternalProblem.g:1858:3: (enumLiteral_2= 'unknown' )
5065 // InternalProblem.g:1859:4: enumLiteral_2= 'unknown' 5066 // InternalProblem.g:1859:4: enumLiteral_2= 'unknown'
5066 { 5067 {
5067 enumLiteral_2=(Token)match(input,42,FOLLOW_2); 5068 enumLiteral_2=(Token)match(input,43,FOLLOW_2);
5068 5069
5069 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance(); 5070 current = grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
5070 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2()); 5071 newLeafNode(enumLiteral_2, grammarAccess.getLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_2());
@@ -5119,7 +5120,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5119 if ( (LA46_0==32) ) { 5120 if ( (LA46_0==32) ) {
5120 alt46=1; 5121 alt46=1;
5121 } 5122 }
5122 else if ( (LA46_0==43) ) { 5123 else if ( (LA46_0==44) ) {
5123 alt46=2; 5124 alt46=2;
5124 } 5125 }
5125 else { 5126 else {
@@ -5152,7 +5153,7 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5152 // InternalProblem.g:1885:3: (enumLiteral_1= '?' ) 5153 // InternalProblem.g:1885:3: (enumLiteral_1= '?' )
5153 // InternalProblem.g:1886:4: enumLiteral_1= '?' 5154 // InternalProblem.g:1886:4: enumLiteral_1= '?'
5154 { 5155 {
5155 enumLiteral_1=(Token)match(input,43,FOLLOW_2); 5156 enumLiteral_1=(Token)match(input,44,FOLLOW_2);
5156 5157
5157 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance(); 5158 current = grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
5158 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1()); 5159 newLeafNode(enumLiteral_1, grammarAccess.getShortLogicValueAccess().getUNKNOWNEnumLiteralDeclaration_1());
@@ -5190,42 +5191,42 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5190 protected DFA34 dfa34 = new DFA34(this); 5191 protected DFA34 dfa34 = new DFA34(this);
5191 static final String dfa_1s = "\41\uffff"; 5192 static final String dfa_1s = "\41\uffff";
5192 static final String dfa_2s = "\1\4\4\35\1\uffff\2\4\4\21\1\15\4\35\2\4\1\uffff\10\21\1\4\4\21"; 5193 static final String dfa_2s = "\1\4\4\35\1\uffff\2\4\4\21\1\15\4\35\2\4\1\uffff\10\21\1\4\4\21";
5193 static final String dfa_3s = "\1\53\1\35\3\42\1\uffff\2\51\1\36\7\42\1\35\2\51\1\uffff\1\36\6\42\1\36\1\51\3\42\1\36"; 5194 static final String dfa_3s = "\1\54\1\35\3\50\1\uffff\2\52\1\36\3\50\1\42\3\50\1\35\2\52\1\uffff\1\36\6\50\1\36\1\52\3\50\1\36";
5194 static final String dfa_4s = "\5\uffff\1\2\15\uffff\1\1\15\uffff"; 5195 static final String dfa_4s = "\5\uffff\1\2\15\uffff\1\1\15\uffff";
5195 static final String dfa_5s = "\41\uffff}>"; 5196 static final String dfa_5s = "\41\uffff}>";
5196 static final String[] dfa_6s = { 5197 static final String[] dfa_6s = {
5197 "\1\2\1\uffff\1\1\31\uffff\1\5\7\uffff\1\3\1\4\1\uffff\1\5", 5198 "\1\2\1\uffff\1\1\31\uffff\1\5\10\uffff\1\3\1\4\1\uffff\1\5",
5198 "\1\6", 5199 "\1\6",
5199 "\1\6\4\uffff\1\7", 5200 "\1\6\12\uffff\1\7",
5200 "\1\6\4\uffff\1\7", 5201 "\1\6\12\uffff\1\7",
5201 "\1\6\4\uffff\1\7", 5202 "\1\6\12\uffff\1\7",
5202 "", 5203 "",
5203 "\1\11\1\uffff\1\10\27\uffff\1\14\11\uffff\1\12\1\13", 5204 "\1\11\1\uffff\1\10\27\uffff\1\14\12\uffff\1\12\1\13",
5204 "\1\15\1\uffff\1\20\41\uffff\1\16\1\17", 5205 "\1\15\1\uffff\1\20\42\uffff\1\16\1\17",
5205 "\1\21\14\uffff\1\14", 5206 "\1\21\14\uffff\1\14",
5206 "\1\21\14\uffff\1\14\3\uffff\1\22", 5207 "\1\21\14\uffff\1\14\11\uffff\1\22",
5207 "\1\21\14\uffff\1\14\3\uffff\1\22", 5208 "\1\21\14\uffff\1\14\11\uffff\1\22",
5208 "\1\21\14\uffff\1\14\3\uffff\1\22", 5209 "\1\21\14\uffff\1\14\11\uffff\1\22",
5209 "\1\5\24\uffff\1\23", 5210 "\1\5\24\uffff\1\23",
5210 "\1\6\4\uffff\1\7", 5211 "\1\6\12\uffff\1\7",
5211 "\1\6\4\uffff\1\7", 5212 "\1\6\12\uffff\1\7",
5212 "\1\6\4\uffff\1\7", 5213 "\1\6\12\uffff\1\7",
5213 "\1\6", 5214 "\1\6",
5214 "\1\25\1\uffff\1\24\41\uffff\1\26\1\27", 5215 "\1\25\1\uffff\1\24\42\uffff\1\26\1\27",
5215 "\1\30\1\uffff\1\33\41\uffff\1\31\1\32", 5216 "\1\30\1\uffff\1\33\42\uffff\1\31\1\32",
5216 "", 5217 "",
5217 "\1\21\14\uffff\1\14", 5218 "\1\21\14\uffff\1\14",
5218 "\1\21\14\uffff\1\14\3\uffff\1\34", 5219 "\1\21\14\uffff\1\14\11\uffff\1\34",
5219 "\1\21\14\uffff\1\14\3\uffff\1\34", 5220 "\1\21\14\uffff\1\14\11\uffff\1\34",
5220 "\1\21\14\uffff\1\14\3\uffff\1\34", 5221 "\1\21\14\uffff\1\14\11\uffff\1\34",
5221 "\1\21\14\uffff\1\14\3\uffff\1\22", 5222 "\1\21\14\uffff\1\14\11\uffff\1\22",
5222 "\1\21\14\uffff\1\14\3\uffff\1\22", 5223 "\1\21\14\uffff\1\14\11\uffff\1\22",
5223 "\1\21\14\uffff\1\14\3\uffff\1\22", 5224 "\1\21\14\uffff\1\14\11\uffff\1\22",
5224 "\1\21\14\uffff\1\14", 5225 "\1\21\14\uffff\1\14",
5225 "\1\35\1\uffff\1\40\41\uffff\1\36\1\37", 5226 "\1\35\1\uffff\1\40\42\uffff\1\36\1\37",
5226 "\1\21\14\uffff\1\14\3\uffff\1\34", 5227 "\1\21\14\uffff\1\14\11\uffff\1\34",
5227 "\1\21\14\uffff\1\14\3\uffff\1\34", 5228 "\1\21\14\uffff\1\14\11\uffff\1\34",
5228 "\1\21\14\uffff\1\14\3\uffff\1\34", 5229 "\1\21\14\uffff\1\14\11\uffff\1\34",
5229 "\1\21\14\uffff\1\14" 5230 "\1\21\14\uffff\1\14"
5230 }; 5231 };
5231 5232
@@ -5257,40 +5258,40 @@ public class InternalProblemParser extends AbstractInternalAntlrParser {
5257 5258
5258 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L}); 5259 public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
5259 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L}); 5260 public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
5260 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000030000000010L}); 5261 public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000060000000010L});
5261 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000002000L}); 5262 public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000002000L});
5262 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x00000B091820C052L}); 5263 public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x000016091820C052L});
5263 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000008000L}); 5264 public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000008000L});
5264 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000052000L}); 5265 public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000052000L});
5265 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000030000000050L}); 5266 public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000060000000050L});
5266 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000062000L}); 5267 public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000062000L});
5267 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000030000D00050L}); 5268 public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000060000D00050L});
5268 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000030000D80050L}); 5269 public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000060000D80050L});
5269 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000042000L}); 5270 public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000042000L});
5270 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000030000100050L}); 5271 public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000060000100050L});
5271 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x00000000001A0000L}); 5272 public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x00000000001A0000L});
5272 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100000L}); 5273 public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100000L});
5273 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000030001000010L}); 5274 public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000060001000010L});
5274 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000020L}); 5275 public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000020L});
5275 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000002000000L}); 5276 public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000002000000L});
5276 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004000002L}); 5277 public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004000002L});
5277 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000030010000010L}); 5278 public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000060010000010L});
5278 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000000L}); 5279 public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000000L});
5279 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000030040000050L}); 5280 public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000060040000050L});
5280 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000040020000L}); 5281 public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000040020000L});
5281 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000080002000L}); 5282 public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000080002000L});
5282 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000030100000050L}); 5283 public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000060100000050L});
5283 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000082000L}); 5284 public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000082000L});
5284 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000020002L}); 5285 public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000020002L});
5285 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000220000000L}); 5286 public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000220000000L});
5286 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000400000000L}); 5287 public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000400000000L});
5287 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000070000000000L}); 5288 public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x00000E0000000000L});
5288 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000010L}); 5289 public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000010L});
5289 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000022000L}); 5290 public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000022000L});
5290 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000003000000000L}); 5291 public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000003000000000L});
5291 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000004000000000L}); 5292 public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000004000000000L});
5292 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000008000000020L}); 5293 public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000008000000020L});
5293 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000400000002L}); 5294 public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000010000000002L});
5294 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000040L}); 5295 public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000040L});
5295 5296
5296} \ No newline at end of file 5297} \ 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 4368036b..13f92444 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
@@ -1143,42 +1143,42 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1143 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1); 1143 private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
1144 private final RuleCall cIdentifierParserRuleCall_1_0 = (RuleCall)cGroup_1.eContents().get(0); 1144 private final RuleCall cIdentifierParserRuleCall_1_0 = (RuleCall)cGroup_1.eContents().get(0);
1145 private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1); 1145 private final Group cGroup_1_1 = (Group)cGroup_1.eContents().get(1);
1146 private final Keyword cColonKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0); 1146 private final Keyword cColonColonKeyword_1_1_0 = (Keyword)cGroup_1_1.eContents().get(0);
1147 private final RuleCall cIdentifierParserRuleCall_1_1_1 = (RuleCall)cGroup_1_1.eContents().get(1); 1147 private final RuleCall cIdentifierParserRuleCall_1_1_1 = (RuleCall)cGroup_1_1.eContents().get(1);
1148 private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2); 1148 private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2);
1149 private final Keyword cColonKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0); 1149 private final Keyword cColonColonKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0);
1150 private final RuleCall cQUOTED_IDTerminalRuleCall_1_2_1 = (RuleCall)cGroup_1_2.eContents().get(1); 1150 private final RuleCall cQUOTED_IDTerminalRuleCall_1_2_1 = (RuleCall)cGroup_1_2.eContents().get(1);
1151 1151
1152 //QualifiedName: 1152 //QualifiedName:
1153 // QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)?; 1153 // QUOTED_ID | Identifier ("::" Identifier)* ("::" QUOTED_ID)?;
1154 @Override public ParserRule getRule() { return rule; } 1154 @Override public ParserRule getRule() { return rule; }
1155 1155
1156 //QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)? 1156 //QUOTED_ID | Identifier ("::" Identifier)* ("::" QUOTED_ID)?
1157 public Alternatives getAlternatives() { return cAlternatives; } 1157 public Alternatives getAlternatives() { return cAlternatives; }
1158 1158
1159 //QUOTED_ID 1159 //QUOTED_ID
1160 public RuleCall getQUOTED_IDTerminalRuleCall_0() { return cQUOTED_IDTerminalRuleCall_0; } 1160 public RuleCall getQUOTED_IDTerminalRuleCall_0() { return cQUOTED_IDTerminalRuleCall_0; }
1161 1161
1162 //Identifier (":" Identifier)* (":" QUOTED_ID)? 1162 //Identifier ("::" Identifier)* ("::" QUOTED_ID)?
1163 public Group getGroup_1() { return cGroup_1; } 1163 public Group getGroup_1() { return cGroup_1; }
1164 1164
1165 //Identifier 1165 //Identifier
1166 public RuleCall getIdentifierParserRuleCall_1_0() { return cIdentifierParserRuleCall_1_0; } 1166 public RuleCall getIdentifierParserRuleCall_1_0() { return cIdentifierParserRuleCall_1_0; }
1167 1167
1168 //(":" Identifier)* 1168 //("::" Identifier)*
1169 public Group getGroup_1_1() { return cGroup_1_1; } 1169 public Group getGroup_1_1() { return cGroup_1_1; }
1170 1170
1171 //":" 1171 //"::"
1172 public Keyword getColonKeyword_1_1_0() { return cColonKeyword_1_1_0; } 1172 public Keyword getColonColonKeyword_1_1_0() { return cColonColonKeyword_1_1_0; }
1173 1173
1174 //Identifier 1174 //Identifier
1175 public RuleCall getIdentifierParserRuleCall_1_1_1() { return cIdentifierParserRuleCall_1_1_1; } 1175 public RuleCall getIdentifierParserRuleCall_1_1_1() { return cIdentifierParserRuleCall_1_1_1; }
1176 1176
1177 //(":" QUOTED_ID)? 1177 //("::" QUOTED_ID)?
1178 public Group getGroup_1_2() { return cGroup_1_2; } 1178 public Group getGroup_1_2() { return cGroup_1_2; }
1179 1179
1180 //":" 1180 //"::"
1181 public Keyword getColonKeyword_1_2_0() { return cColonKeyword_1_2_0; } 1181 public Keyword getColonColonKeyword_1_2_0() { return cColonColonKeyword_1_2_0; }
1182 1182
1183 //QUOTED_ID 1183 //QUOTED_ID
1184 public RuleCall getQUOTED_IDTerminalRuleCall_1_2_1() { return cQUOTED_IDTerminalRuleCall_1_2_1; } 1184 public RuleCall getQUOTED_IDTerminalRuleCall_1_2_1() { return cQUOTED_IDTerminalRuleCall_1_2_1; }
@@ -1299,6 +1299,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1299 private final IdentifierElements pIdentifier; 1299 private final IdentifierElements pIdentifier;
1300 private final TerminalRule tSTRING; 1300 private final TerminalRule tSTRING;
1301 private final TerminalRule tQUOTED_ID; 1301 private final TerminalRule tQUOTED_ID;
1302 private final TerminalRule tSL_COMMENT;
1302 1303
1303 private final Grammar grammar; 1304 private final Grammar grammar;
1304 1305
@@ -1338,6 +1339,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1338 this.pIdentifier = new IdentifierElements(); 1339 this.pIdentifier = new IdentifierElements();
1339 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.STRING"); 1340 this.tSTRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.STRING");
1340 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QUOTED_ID"); 1341 this.tQUOTED_ID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.QUOTED_ID");
1342 this.tSL_COMMENT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.viatra.solver.language.Problem.SL_COMMENT");
1341 } 1343 }
1342 1344
1343 protected Grammar internalFindGrammar(GrammarProvider grammarProvider) { 1345 protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
@@ -1642,7 +1644,7 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1642 } 1644 }
1643 1645
1644 //QualifiedName: 1646 //QualifiedName:
1645 // QUOTED_ID | Identifier (":" Identifier)* (":" QUOTED_ID)?; 1647 // QUOTED_ID | Identifier ("::" Identifier)* ("::" QUOTED_ID)?;
1646 public QualifiedNameElements getQualifiedNameAccess() { 1648 public QualifiedNameElements getQualifiedNameAccess() {
1647 return pQualifiedName; 1649 return pQualifiedName;
1648 } 1650 }
@@ -1674,6 +1676,13 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1674 return tQUOTED_ID; 1676 return tQUOTED_ID;
1675 } 1677 }
1676 1678
1679 //@Override
1680 //terminal SL_COMMENT:
1681 // ('%' | '//') !('\n'|'\r')* ('\r'? '\n')?;
1682 public TerminalRule getSL_COMMENTRule() {
1683 return tSL_COMMENT;
1684 }
1685
1677 //terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; 1686 //terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
1678 public TerminalRule getIDRule() { 1687 public TerminalRule getIDRule() {
1679 return gaTerminals.getIDRule(); 1688 return gaTerminals.getIDRule();
@@ -1689,11 +1698,6 @@ public class ProblemGrammarAccess extends AbstractElementFinder.AbstractGrammarE
1689 return gaTerminals.getML_COMMENTRule(); 1698 return gaTerminals.getML_COMMENTRule();
1690 } 1699 }
1691 1700
1692 //terminal SL_COMMENT : '//' !('\n'|'\r')* ('\r'? '\n')?;
1693 public TerminalRule getSL_COMMENTRule() {
1694 return gaTerminals.getSL_COMMENTRule();
1695 }
1696
1697 //terminal WS : (' '|'\t'|'\r'|'\n')+; 1701 //terminal WS : (' '|'\t'|'\r'|'\n')+;
1698 public TerminalRule getWSRule() { 1702 public TerminalRule getWSRule() {
1699 return gaTerminals.getWSRule(); 1703 return gaTerminals.getWSRule();
diff --git a/settings.gradle b/settings.gradle
index 237e5772..94abfdbe 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,4 +1,5 @@
1include 'language' 1include 'language'
2include 'language-ide' 2include 'language-ide'
3include 'language-model' 3include 'language-model'
4include 'language-mwe2'
4include 'language-web' 5include 'language-web'