/** * Implements the <code>parse</code> method. Calls <code>parseTerm(false)</code> * and throws an exception if the next token is not the end-of-string. * * @return The generated term. * @throws ParseException if a parse error occurs */ private Term parseImpl() throws ParseException { final Term expr = parseTerm(false); final int tt = tokenizer.next(); if (tt != Tokenizer.TT_EOS) { reportError("Incomplete expression."); /*I18N*/ } return expr; }
tokenizer.next(); if (isKeyword("if")) { Term t1 = parseTerm(true); tokenizer.next(); if (isKeyword("then")) { Term t2 = parseTerm(true); tokenizer.next(); if (isKeyword("else")) { reportError("Boolean operand expected after 'if' in conditional term."); Term t3 = parseTerm(true); return createConditionTerm(t1, t2, t3); } else { int tt = tokenizer.next(); if (tt == '?') { Term t2 = parseTerm(true); tt = tokenizer.next(); if (tt == ':') { reportError("Boolean operand expected before '?' in conditional term."); Term t3 = parseTerm(true); t1 = createConditionTerm(t1, t2, t3); } else {
t1 = parseCallOrRef(name); } else if (tt == '(') { t1 = parseTerm(true); tt = tokenizer.next(); if (tt != ')') {