transient sclass DoubleWordIndex {
new WordIndex index1; // forwards (normal words)
new WordIndex index2; // backwards (reversed words)
*() {}
*(Comparator valueComparator) {
index1 = new WordIndex(valueComparator);
index2 = new WordIndex(valueComparator);
}
*(Map map) { fOr (A a, S text : map) add(a, text); }
void add(A a, S text) {
index1.add(a, text);
index2.add(a, text);
}
Set get(S word) {
ret index1.get(word);
}
L wordRanges(S text) {
ret index1.wordRanges(text);
}
}