boolean (PsiBuilder b, int level_, String mode, boolean onOff, Parser whenOn, Parser whenOff) { Object2LongMap<String> map = getParsingModes(b); long prev = map.getLong(mode); boolean change = ((prev & 1) == 0) == onOff; if (change) map.put(mode, prev << 1 | (onOff ? 1 : 0)); boolean result = (change ? whenOn : whenOff).parse(b, level_); if (change) map.put(mode, prev); return result; }