forked from jasder/antlr
wipe out config lookup in ATNConfigSet when it goes readonly.
This commit is contained in:
parent
54fd28c29d
commit
7ff5544573
|
@ -63,7 +63,7 @@ import java.util.Set;
|
||||||
1 12
|
1 12
|
||||||
1 119 <- max size
|
1 119 <- max size
|
||||||
|
|
||||||
322 set size for SLL parser java.*
|
322 set size for SLL parser java.* in DFA states:
|
||||||
|
|
||||||
888 1
|
888 1
|
||||||
411 54
|
411 54
|
||||||
|
@ -142,6 +142,91 @@ import java.util.Set;
|
||||||
1 9
|
1 9
|
||||||
1 2
|
1 2
|
||||||
|
|
||||||
|
javalr, java.* all atnconfigsets; max size = 322, num sets = 269088
|
||||||
|
|
||||||
|
114186 1 <-- optimize
|
||||||
|
35712 6
|
||||||
|
28081 78
|
||||||
|
15252 54
|
||||||
|
14171 56
|
||||||
|
13159 12
|
||||||
|
11810 88
|
||||||
|
6873 86
|
||||||
|
6158 80
|
||||||
|
5169 4
|
||||||
|
3773 118
|
||||||
|
2350 16
|
||||||
|
1002 112
|
||||||
|
915 28
|
||||||
|
898 44
|
||||||
|
734 2
|
||||||
|
632 62
|
||||||
|
575 8
|
||||||
|
566 59
|
||||||
|
474 20
|
||||||
|
388 84
|
||||||
|
343 48
|
||||||
|
333 55
|
||||||
|
328 47
|
||||||
|
311 41
|
||||||
|
306 38
|
||||||
|
277 81
|
||||||
|
263 79
|
||||||
|
255 66
|
||||||
|
245 90
|
||||||
|
245 87
|
||||||
|
234 50
|
||||||
|
224 10
|
||||||
|
220 60
|
||||||
|
194 64
|
||||||
|
186 32
|
||||||
|
184 82
|
||||||
|
150 18
|
||||||
|
125 7
|
||||||
|
121 132
|
||||||
|
116 30
|
||||||
|
103 51
|
||||||
|
95 114
|
||||||
|
84 36
|
||||||
|
82 40
|
||||||
|
78 22
|
||||||
|
77 89
|
||||||
|
55 9
|
||||||
|
53 174
|
||||||
|
48 152
|
||||||
|
44 67
|
||||||
|
44 5
|
||||||
|
42 115
|
||||||
|
41 58
|
||||||
|
38 122
|
||||||
|
37 134
|
||||||
|
34 13
|
||||||
|
34 116
|
||||||
|
29 45
|
||||||
|
29 3
|
||||||
|
29 24
|
||||||
|
27 144
|
||||||
|
26 146
|
||||||
|
25 91
|
||||||
|
24 113
|
||||||
|
20 27
|
||||||
|
...
|
||||||
|
|
||||||
|
number with 1-9 elements:
|
||||||
|
|
||||||
|
114186 1
|
||||||
|
35712 6
|
||||||
|
5169 4
|
||||||
|
734 2
|
||||||
|
575 8
|
||||||
|
125 7
|
||||||
|
55 9
|
||||||
|
44 5
|
||||||
|
29 3
|
||||||
|
|
||||||
|
Can cover 60% of sizes with size up to 6
|
||||||
|
Can cover 44% of sizes with size up to 4
|
||||||
|
Can cover 42% of sizes with size up to 1
|
||||||
*/
|
*/
|
||||||
public class ATNConfigSet implements Set<ATNConfig> {
|
public class ATNConfigSet implements Set<ATNConfig> {
|
||||||
/*
|
/*
|
||||||
|
@ -366,6 +451,7 @@ public class ATNConfigSet implements Set<ATNConfig> {
|
||||||
|
|
||||||
public void setReadonly(boolean readonly) {
|
public void setReadonly(boolean readonly) {
|
||||||
this.readonly = readonly;
|
this.readonly = readonly;
|
||||||
|
configLookup.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -651,9 +651,6 @@ public class ParserATNSimulator<Symbol extends Token> extends ATNSimulator {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( reach.size()==0 ) return null;
|
if ( reach.size()==0 ) return null;
|
||||||
|
|
||||||
// reach.setConflictingAlts(getConflictingAlts(reach, false));
|
|
||||||
//
|
|
||||||
return reach;
|
return reach;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -270,7 +270,7 @@ public class Array2DHashSet<T> implements Set<T> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void clear() {
|
public void clear() {
|
||||||
buckets = (T[][])new Object[buckets.length][];
|
buckets = (T[][])new Object[INITAL_CAPACITY][];
|
||||||
n = 0;
|
n = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue