// map: index of opening bracket -> index of closing bracket static Map curlyBracketMap(L tok) { new TreeMap map; new L stack; int n = l(tok); for (int i = 1; i < n; i += 2) { S t = tok.get(i); if (eq(t, "{")) stack.add(i); else if (eq(t, "}") && nempty(stack)) map.put(liftLast(stack), i); } ret map; }