com.jclark.xsl.expr

Class PrecedingAxisExpr

Implemented Interfaces:
NodeSetExpr

(package private) class PrecedingAxisExpr
extends ReverseAxisExpr

The algorithm is:
(define (preceding x)
(define (reverse-subtree x)
(append (map reverse-subtree (reverse (children x)))
(list x)))
(map (lambda (y)
(map reverse-subtree (preceding-sibling y)))
(ancestor-or-self x)))

Nested Class Summary

(package private) static class
PrecedingAxisExpr.AppendNodeIterator
(package private) static class
PrecedingAxisExpr.LeftExpr
(package private) static class
PrecedingAxisExpr.ReverseSubtreeExpr

Field Summary

Fields inherited from class com.jclark.xsl.expr.ConvertibleNodeSetExpr

SINGLE_LEVEL, STAYS_IN_SUBTREE

Method Summary

NodeIterator
eval(Node node, ExprContext context)
evaluate the expression with a contextNode and ExprContext

Methods inherited from class com.jclark.xsl.expr.ReverseAxisExpr

makeDocumentOrderExpr

Methods inherited from class com.jclark.xsl.expr.AxisExpr

makeDocumentOrderExpr, makeFilterExpr

Methods inherited from class com.jclark.xsl.expr.ConvertibleNodeSetExpr

compose, getChildrenNodePattern, getOptimizeFlags, makeBooleanExpr, makeNodeSetExpr, makeStringExpr, makeVariantExpr

Methods inherited from class com.jclark.xsl.expr.ConvertibleExpr

makeBooleanExpr, makeNodeSetExpr, makeNumberExpr, makePredicateExpr, makeStringExpr, makeVariantExpr

Method Details

eval

public NodeIterator eval(Node node,
                         ExprContext context)
            throws XSLException
evaluate the expression with a contextNode and ExprContext
Specified by:
eval in interface NodeSetExpr