gnu.xquery.util
Class RelativeStep
java.lang.Object
gnu.mapping.PropertySet
gnu.mapping.Procedure
gnu.mapping.ProcedureN
gnu.mapping.MethodProc
gnu.xquery.util.RelativeStep
- All Implemented Interfaces:
- CanInline, Inlineable, Named
public class RelativeStep
- extends MethodProc
- implements CanInline, Inlineable
Implements XPath path expression.
The XPath expression E1/E2 is compiled into:
(relative-step E1 (lambda (dot position last) E2)).
Methods inherited from class gnu.mapping.Procedure |
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, match0, match1, match2, match3, match4, matchN, maxArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
relativeStep
public static final RelativeStep relativeStep
RelativeStep
public RelativeStep()
numArgs
public int numArgs()
- Description copied from class:
Procedure
- Return minArgs()|(maxArgs<<12).
- Overrides:
numArgs
in class Procedure
apply
public void apply(CallContext ctx)
throws java.lang.Throwable
- Description copied from class:
Procedure
- Call this Procedure using the explicit-CallContext-convention.
The input arguments are (by default) in stack.args;
the result is written to ctx.consumer.
- Overrides:
apply
in class Procedure
- Throws:
java.lang.Throwable
inline
public Expression inline(ApplyExp exp,
InlineCalls walker,
boolean argsInlined)
- Description copied from interface:
CanInline
- Inline an application of this Procedure and return result.
Unless
argsInlined
is true, then this method
is responsible for walking exp.getArgs()
;
you can handle this using exp.getArgs(walker, argsInlined)
.
(The exp.getFunction()
has been walked, regardless.)
- Specified by:
inline
in interface CanInline
argsInlined
- true if the arguments have been inlined.
Can return original expression.
compile
public void compile(ApplyExp exp,
Compilation comp,
Target target)
- Specified by:
compile
in interface Inlineable
getReturnType
public Type getReturnType(Expression[] args)
- Specified by:
getReturnType
in interface Inlineable
extractStep
public static TreeScanner extractStep(Expression exp)