gnu.kawa.functions

Class ValuesMap

Implemented Interfaces:
CanInline, Inlineable, Named

public class ValuesMap
extends MethodProc
implements CanInline, Inlineable

Map a function over a value sequence, yielding a new sequence. Normally, the function takes one argument, the item in the sequence. If startCounter is non-negative, a position index is also passed. Used to implement XQuery's 'for' form.

Field Summary

static ValuesMap
valuesMap
static ValuesMap
valuesMapWithPos

Fields inherited from class gnu.mapping.MethodProc

NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGS, argTypes

Fields inherited from class gnu.mapping.ProcedureN

noArgs

Method Summary

void
apply(CallContext ctx)
void
compile(ApplyExp exp, Compilation comp, Target target)
static void
compileInlined(LambdaExp lambda, Expression vals, int startCounter, Method matchesMethod, Compilation comp, Target target)
Type
getReturnType(Expression[] args)
Expression
inline(ApplyExp exp, ExpWalker walker)
int
numArgs()

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, applyN

Methods inherited from class gnu.mapping.Procedure

apply, apply, apply0, apply1, apply2, apply3, apply4, applyN, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, match0, match1, match2, match3, match4, matchN, maxArgs, minArgs, numArgs, set0, set1, setN, setSetter, setSourceLocation, toString

Methods inherited from class gnu.mapping.PropertySet

getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol

Field Details

valuesMap

public static final ValuesMap valuesMap

valuesMapWithPos

public static final ValuesMap valuesMapWithPos

Method Details

apply

public void apply(CallContext ctx)
            throws Throwable
Overrides:
apply in interface Procedure

compile

public void compile(ApplyExp exp,
                    Compilation comp,
                    Target target)
Specified by:
compile in interface Inlineable

compileInlined

public static void compileInlined(LambdaExp lambda,
                                  Expression vals,
                                  int startCounter,
                                  Method matchesMethod,
                                  Compilation comp,
                                  Target target)

getReturnType

public Type getReturnType(Expression[] args)
Specified by:
getReturnType in interface Inlineable

inline

public Expression inline(ApplyExp exp,
                         ExpWalker walker)
Specified by:
inline in interface CanInline

numArgs

public int numArgs()
Overrides:
numArgs in interface Procedure