List<ASTNode> predicates = null;
ASTNode pathNode = rpen.getPath();
if (ASTTag.AXIS_STEP.equals(pathNode.getTag())) {
AxisStepNode axisNode = (AxisStepNode) pathNode;
predicates = axisNode.getPredicates();
AxisStepNode.Axis axis = axisNode.getAxis();
if (ctxExpr == null) {
ctxExpr = vre(tCtx.varScope.lookupVariable(XMLQueryCompilerConstants.DOT_VAR_NAME)
.getLogicalVariable());
}
Function axisFn = translateAxis(axis);
NodeType nt = translateNodeTest(axis, axisNode.getNodeTest());
int ntCode = currCtx.encodeSequenceType(SequenceType.create(nt, Quantifier.QUANT_ONE));
ctxExpr = sfce(axisFn,
treat(ctxExpr, SequenceType.create(AnyNodeType.INSTANCE, Quantifier.QUANT_STAR)),
ce(SequenceType.create(BuiltinTypeRegistry.XS_INT, Quantifier.QUANT_ONE), ntCode));
asc = isForwardAxis(axis);