protected Node visitBetweenPredicate(final BetweenPredicate node, final Object context) {
if (node.getLocation().isPresent()) {
return new BetweenPredicate(node.getLocation().get(),
(Expression) process(node.getValue(), context),
(Expression) process(node.getMin(), context),
(Expression) process(node.getMax(), context));
} else {
return new BetweenPredicate((Expression) process(node.getValue(), context),
(Expression) process(node.getMin(), context),
(Expression) process(node.getMax(), context));
}
}