fix atn decode
This commit is contained in:
parent
7c955e3cae
commit
c7603c24ea
|
@ -247,7 +247,7 @@ public class ATNSerializer {
|
||||||
int loopBackStateNumber = ATNSimulator.toInt(data[p++]);
|
int loopBackStateNumber = ATNSimulator.toInt(data[p++]);
|
||||||
arg = " "+loopBackStateNumber;
|
arg = " "+loopBackStateNumber;
|
||||||
}
|
}
|
||||||
else if ( stype == ATNState.PLUS_BLOCK_START || stype == ATNState.STAR_BLOCK_START ) {
|
else if ( stype == ATNState.PLUS_BLOCK_START || stype == ATNState.STAR_BLOCK_START || stype == ATNState.BLOCK_START ) {
|
||||||
int endStateNumber = ATNSimulator.toInt(data[p++]);
|
int endStateNumber = ATNSimulator.toInt(data[p++]);
|
||||||
arg = " "+endStateNumber;
|
arg = " "+endStateNumber;
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,23 +153,23 @@ public class TestATNSerialization extends BaseTest {
|
||||||
"a : A | A B ;");
|
"a : A | A B ;");
|
||||||
String expecting =
|
String expecting =
|
||||||
"max type 2\n" +
|
"max type 2\n" +
|
||||||
"0:RULE_START 0\n" +
|
"0:RULE_START 0\n" +
|
||||||
"1:RULE_STOP 0\n" +
|
"1:RULE_STOP 0\n" +
|
||||||
"2:BASIC 0\n" +
|
"2:BASIC 0\n" +
|
||||||
"4:BASIC 0\n" +
|
"3:BASIC 0\n" +
|
||||||
"6:BASIC 0\n" +
|
"4:BASIC 0\n" +
|
||||||
"8:BLOCK_START 0\n" +
|
"5:BLOCK_START 0 6\n" +
|
||||||
"9:BLOCK_END 0\n" +
|
"6:BLOCK_END 0\n" +
|
||||||
"10:BASIC 0\n" +
|
"7:BASIC 0\n" +
|
||||||
"rule 0:0\n" +
|
"rule 0:0\n" +
|
||||||
"0->8 EPSILON 0,0,0\n" +
|
"0->5 EPSILON 0,0,0\n" +
|
||||||
"2->9 ATOM 1,0,0\n" +
|
"2->6 ATOM 1,0,0\n" +
|
||||||
"4->6 ATOM 1,0,0\n" +
|
"3->4 ATOM 1,0,0\n" +
|
||||||
"6->9 ATOM 2,0,0\n" +
|
"4->6 ATOM 2,0,0\n" +
|
||||||
"8->2 EPSILON 0,0,0\n" +
|
"5->2 EPSILON 0,0,0\n" +
|
||||||
"8->4 EPSILON 0,0,0\n" +
|
"5->3 EPSILON 0,0,0\n" +
|
||||||
"9->1 EPSILON 0,0,0\n" +
|
"6->1 EPSILON 0,0,0\n" +
|
||||||
"0:8 1\n";
|
"0:5 1\n";
|
||||||
ATN atn = createATN(g);
|
ATN atn = createATN(g);
|
||||||
String result = ATNSerializer.getDecoded(g, atn);
|
String result = ATNSerializer.getDecoded(g, atn);
|
||||||
assertEquals(expecting, result);
|
assertEquals(expecting, result);
|
||||||
|
@ -181,31 +181,30 @@ public class TestATNSerialization extends BaseTest {
|
||||||
"a : A | A B | A B C ;");
|
"a : A | A B | A B C ;");
|
||||||
String expecting =
|
String expecting =
|
||||||
"max type 3\n" +
|
"max type 3\n" +
|
||||||
"0:RULE_START 0\n" +
|
"0:RULE_START 0\n" +
|
||||||
"1:RULE_STOP 0\n" +
|
"1:RULE_STOP 0\n" +
|
||||||
"2:BASIC 0\n" +
|
"2:BASIC 0\n" +
|
||||||
"4:BASIC 0\n" +
|
"3:BASIC 0\n" +
|
||||||
"6:BASIC 0\n" +
|
"4:BASIC 0\n" +
|
||||||
"8:BASIC 0\n" +
|
"5:BASIC 0\n" +
|
||||||
"10:BASIC 0\n" +
|
"6:BASIC 0\n" +
|
||||||
"12:BASIC 0\n" +
|
"7:BASIC 0\n" +
|
||||||
"14:BLOCK_START 0\n" +
|
"8:BLOCK_START 0 9\n" +
|
||||||
"15:BLOCK_END 0\n" +
|
"9:BLOCK_END 0\n" +
|
||||||
"16:BASIC 0\n" +
|
"10:BASIC 0\n" +
|
||||||
"rule 0:0\n" +
|
"rule 0:0\n" +
|
||||||
"0->14 EPSILON 0,0,0\n" +
|
"0->8 EPSILON 0,0,0\n" +
|
||||||
"1->16 ATOM -1,0,0\n" +
|
"2->9 ATOM 1,0,0\n" +
|
||||||
"2->15 ATOM 1,0,0\n" +
|
"3->4 ATOM 1,0,0\n" +
|
||||||
"4->6 ATOM 1,0,0\n" +
|
"4->9 ATOM 2,0,0\n" +
|
||||||
"6->15 ATOM 2,0,0\n" +
|
"5->6 ATOM 1,0,0\n" +
|
||||||
"8->10 ATOM 1,0,0\n" +
|
"6->7 ATOM 2,0,0\n" +
|
||||||
"10->12 ATOM 2,0,0\n" +
|
"7->9 ATOM 3,0,0\n" +
|
||||||
"12->15 ATOM 3,0,0\n" +
|
"8->2 EPSILON 0,0,0\n" +
|
||||||
"14->2 EPSILON 0,0,0\n" +
|
"8->3 EPSILON 0,0,0\n" +
|
||||||
"14->4 EPSILON 0,0,0\n" +
|
"8->5 EPSILON 0,0,0\n" +
|
||||||
"14->8 EPSILON 0,0,0\n" +
|
"9->1 EPSILON 0,0,0\n" +
|
||||||
"15->1 EPSILON 0,0,0\n" +
|
"0:8 1\n";
|
||||||
"0:14 1\n";
|
|
||||||
ATN atn = createATN(g);
|
ATN atn = createATN(g);
|
||||||
String result = ATNSerializer.getDecoded(g, atn);
|
String result = ATNSerializer.getDecoded(g, atn);
|
||||||
assertEquals(expecting, result);
|
assertEquals(expecting, result);
|
||||||
|
@ -359,26 +358,24 @@ public class TestATNSerialization extends BaseTest {
|
||||||
"INT : 'a' (EOF|'\n') ;\n");
|
"INT : 'a' (EOF|'\n') ;\n");
|
||||||
String expecting =
|
String expecting =
|
||||||
"max type 1\n" +
|
"max type 1\n" +
|
||||||
"0:TOKEN_START -1\n" +
|
"0:TOKEN_START -1\n" +
|
||||||
"1:RULE_START 0\n" +
|
"1:RULE_START 0\n" +
|
||||||
"2:RULE_STOP 0\n" +
|
"2:RULE_STOP 0\n" +
|
||||||
"3:BASIC 0\n" +
|
"3:BASIC 0\n" +
|
||||||
"5:BASIC 0\n" +
|
"4:BASIC 0\n" +
|
||||||
"7:BASIC 0\n" +
|
"5:BLOCK_START 0 6\n" +
|
||||||
"9:BLOCK_START 0\n" +
|
"6:BLOCK_END 0\n" +
|
||||||
"10:BLOCK_END 0\n" +
|
"rule 0:1 1,-1\n" +
|
||||||
"rule 0:1 1,-1\n" +
|
"mode 0:0\n" +
|
||||||
"mode 0:0\n" +
|
"0:EOF..EOF, '\\n'..'\\n'\n" +
|
||||||
"0->1 EPSILON 0,0,0\n" +
|
"0->1 EPSILON 0,0,0\n" +
|
||||||
"1->3 EPSILON 0,0,0\n" +
|
"1->3 EPSILON 0,0,0\n" +
|
||||||
"3->9 ATOM 97,0,0\n" +
|
"3->5 ATOM 97,0,0\n" +
|
||||||
"5->10 ATOM -1,0,0\n" +
|
"4->6 SET 0,0,0\n" +
|
||||||
"7->10 ATOM 10,0,0\n" +
|
"5->4 EPSILON 0,0,0\n" +
|
||||||
"9->5 EPSILON 0,0,0\n" +
|
"6->2 EPSILON 0,0,0\n" +
|
||||||
"9->7 EPSILON 0,0,0\n" +
|
"0:0 1\n" +
|
||||||
"10->2 EPSILON 0,0,0\n" +
|
"1:5 1\n";
|
||||||
"0:0 1\n" +
|
|
||||||
"1:9 1\n";
|
|
||||||
ATN atn = createATN(lg);
|
ATN atn = createATN(lg);
|
||||||
String result = ATNSerializer.getDecoded(lg, atn);
|
String result = ATNSerializer.getDecoded(lg, atn);
|
||||||
assertEquals(expecting, result);
|
assertEquals(expecting, result);
|
||||||
|
|
Loading…
Reference in New Issue