/** * Parses a bitwise OR expression <i>x '|' y</i>. * * @param required true, if the expression is required. * @return The generated term. * @throws ParseException if a parse error occurs */ private Term parseBitwiseOr(final boolean required) throws ParseException { Term t1 = parseBtwiseXOr(required); while (t1 != null) { int tt = tokenizer.next(); if (tt == '|') { Term t2 = parseBtwiseXOr(true); if ((t1.isI() && t2.isI()) || !isTypeChecking()) { t1 = new Term.OrI(t1, t2); } else { reportTypeErrorI2("'|'"); } } else { tokenizer.pushBack(); break; } } return t1; }