// map: index of opening bracket -> index of closing bracket static Map getBracketMap(L tok) { new TreeMap map; new L stack; for (int i = 1; i < l(tok); i+= 2) { if (getBracketMap_opening.contains(tok.get(i))) stack.add(i); else if (getBracketMap_closing.contains(tok.get(i))) { if (!empty(stack)) map.put(liftLast(stack), i); } } ret map; } static L getBracketMap_opening = ll("{", "("); static L getBracketMap_closing = ll("}", ")");