in src/main/java/org/apache/accumulo/access/ParsedAccessExpressionImpl.java [127:157]
private static ParsedAccessExpressionImpl parseExpression(Tokenizer tokenizer,
boolean wrappedWithParens) {
int beginOffset = tokenizer.curentOffset();
ParsedAccessExpressionImpl node = parseParenExpressionOrAuthorization(tokenizer);
if (tokenizer.hasNext()) {
var operator = tokenizer.peek();
if (isAndOrOperator(operator)) {
List<ParsedAccessExpression> nodes = new ArrayList<>();
nodes.add(node);
do {
tokenizer.advance();
ParsedAccessExpression next = parseParenExpressionOrAuthorization(tokenizer);
nodes.add(next);
} while (tokenizer.hasNext() && tokenizer.peek() == operator);
if (tokenizer.hasNext() && isAndOrOperator(tokenizer.peek())) {
// A case of mixed operators, lets give a clear error message
tokenizer.error("Cannot mix '|' and '&'");
}
int endOffset = tokenizer.curentOffset();
node = new ParsedAccessExpressionImpl(operator, tokenizer.expression(), beginOffset,
endOffset - beginOffset, nodes);
}
}
return node;
}