switch (chartype) { case CHARTYPE_OPEN_PAREN: // '(' addToken(tokens, XPath.Tokens.EXPRTOKEN_OPEN_PAREN); starIsMultiplyOperator = false; if (++currentOffset == endOffset) { addToken(tokens, XPath.Tokens.EXPRTOKEN_CLOSE_PAREN); starIsMultiplyOperator = true; if (++currentOffset == endOffset) { addToken(tokens, XPath.Tokens.EXPRTOKEN_OPEN_BRACKET); starIsMultiplyOperator = false; if (++currentOffset == endOffset) { addToken(tokens, XPath.Tokens.EXPRTOKEN_CLOSE_BRACKET); starIsMultiplyOperator = true; if (++currentOffset == endOffset) { addToken(tokens, XPath.Tokens.EXPRTOKEN_PERIOD); starIsMultiplyOperator = true; currentOffset++; addToken(tokens, XPath.Tokens.EXPRTOKEN_DOUBLE_PERIOD); starIsMultiplyOperator = true; currentOffset += 2; } else if (ch >= '0' && ch <= '9') { addToken(tokens, XPath.Tokens.EXPRTOKEN_NUMBER); starIsMultiplyOperator = true; currentOffset = scanNumber(tokens, data, endOffset, currentOffset/*, encoding*/);
boolean success = scanner.scanExpr(fSymbolTable, xtokens, fExpression, 0, length); if(!success)
protected void addToken(XPath.Tokens tokens, int token) throws XPathException { if ( token == XPath.Tokens.EXPRTOKEN_ATSIGN || token == XPath.Tokens.EXPRTOKEN_NAMETEST_QNAME || token == XPath.Tokens.EXPRTOKEN_OPERATOR_SLASH || token == XPath.Tokens.EXPRTOKEN_PERIOD || token == XPath.Tokens.EXPRTOKEN_NAMETEST_ANY || token == XPath.Tokens.EXPRTOKEN_NAMETEST_NAMESPACE || token == XPath.Tokens.EXPRTOKEN_OPERATOR_DOUBLE_SLASH || token == XPath.Tokens.EXPRTOKEN_OPERATOR_UNION || token == XPath.Tokens.EXPRTOKEN_AXISNAME_CHILD || token == XPath.Tokens.EXPRTOKEN_AXISNAME_ATTRIBUTE || token == XPath.Tokens.EXPRTOKEN_DOUBLE_COLON // ) { super.addToken(tokens, token); return; } throw new XPathException("c-general-xpath"); } };