static IterableIterator gJMatch(final S pat) { final L log = gLog(); ret new IterableIterator() { int i = l(log); new Matches m; public bool hasNext() { while (--i >= 0 && !jmatch(pat, get(log, i), m)); ret i >= 0; } public Matches next() { ret m; } }; }