gnu.xquery.util
Class RelativeStep

java.lang.Object
  extended by gnu.mapping.PropertySet
      extended by gnu.mapping.Procedure
          extended by gnu.mapping.ProcedureN
              extended by gnu.mapping.MethodProc
                  extended by 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)).


Field Summary
static RelativeStep relativeStep
           
 
Fields inherited from class gnu.mapping.MethodProc
argTypes, NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGS
 
Fields inherited from class gnu.mapping.ProcedureN
noArgs
 
Constructor Summary
RelativeStep()
           
 
Method Summary
 void apply(CallContext ctx)
          Call this Procedure using the explicit-CallContext-convention.
 void compile(ApplyExp exp, Compilation comp, Target target)
           
static TreeScanner extractStep(Expression exp)
           
 Type getReturnType(Expression[] args)
           
 Expression inline(ApplyExp exp, ExpWalker walker)
          Inline an application of this Procedure and return result.
 int numArgs()
          Return minArgs()|(maxArgs<<12).
 
Methods inherited from class gnu.mapping.MethodProc
applyN, getParameterType, isApplicable, matchFailAsException, mostSpecific, mostSpecific, numParameters, resolveParameterTypes
 
Methods inherited from class gnu.mapping.ProcedureN
apply0, apply1, apply2, apply3, apply4
 
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 gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

relativeStep

public static final RelativeStep relativeStep
Constructor Detail

RelativeStep

public RelativeStep()
Method Detail

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,
                         ExpWalker walker)
Description copied from interface: CanInline
Inline an application of this Procedure and return result. Can return original expression.

Specified by:
inline in interface CanInline

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)