gnu.kawa.functions
Class ValuesMap
java.lang.Object
gnu.mapping.PropertySet
gnu.mapping.Procedure
gnu.mapping.ProcedureN
gnu.mapping.MethodProc
gnu.kawa.functions.ValuesMap
- All Implemented Interfaces:
- Inlineable, Named
public class ValuesMap
- extends MethodProc
- implements 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.
Methods inherited from class gnu.mapping.Procedure |
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, isSideEffectFree, match0, match1, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
valuesMap
public static final ValuesMap valuesMap
valuesMapWithPos
public static final ValuesMap valuesMapWithPos
numArgs
public int numArgs()
- Description copied from class:
Procedure
- Return
minArgs()|(maxArgs<<12)
.
We use a single virtual function to reduce the number of methods
in the system, as well as the number of virtual method table entries.
We shift by 12 so the number can normally be represented using a
sipush instruction, without requiring a constant pool entry.
- 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
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)
- Description copied from class:
Procedure
- Semi-deprecated - instead should be set at Inline time. FIXME
- Overrides:
getReturnType
in class Procedure