asclass ILCCompactIndex { S its(int idx) { ret itemToString(idx); } abstract S itemToString(int idx); abstract int[] getLeftPairs(int symbol); abstract int[] getRightPairs(int symbol); abstract int getProdLength(int idx); abstract int getOccurrences(int idx); abstract int lookupLiteral(char c); int pairLeft(int idx) { ret firstIntFromLong(getPair(idx)); } int pairRight(int idx) { ret secondIntFromLong(getPair(idx)); } abstract long getPair(int idx); abstract IntegerIterator getRightPairsStartingWith(int symbol, S from, S to); abstract IntegerIterator getLeftPairsEndingWith(int symbol, S from, S to); abstract L symbolToFiles(int symbol); abstract S symbolToProtocol(int symbol); }