Package gnu.expr
Class CompiledProc
- java.lang.Object
-
- gnu.mapping.PropertySet
-
- gnu.mapping.Procedure
-
- gnu.mapping.ProcedureN
-
- gnu.mapping.MethodProc
-
- gnu.expr.CompiledProc
-
- All Implemented Interfaces:
Named
public class CompiledProc extends MethodProc
-
-
Field Summary
Fields Modifier and Type Field Description protected int
numArgs
-
Fields inherited from class gnu.mapping.MethodProc
applyToConsumerDefaultMP, argTypes, NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_GUARD_FALSE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGS, NO_MATCH_UNUSED_KEYWORD, THROW_ON_EXCEPTION
-
Fields inherited from class gnu.mapping.ProcedureN
applyToObject, noArgs
-
Fields inherited from class gnu.mapping.Procedure
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKey
-
Fields inherited from class gnu.mapping.PropertySet
nameKey
-
-
Constructor Summary
Constructors Constructor Description CompiledProc(boolean resultGoesToConsumer, MethodHandle applyMethod, Object name, int numArgs, Object argTypes)
CompiledProc(Object module, boolean resultGoesToConsumer, MethodHandle applyMethod, Object name, int numArgs)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
getModule()
Class
getModuleClass()
CompiledProc
init(boolean resultGoesToConsumer, MethodHandle applyMethod, Object name, int numArgs)
void
initResultToConsumer(Object module, MethodHandle applyMethod, Object name, int numArgs)
void
initResultToObject(Object module, MethodHandle applyMethod, Object name, int numArgs)
static CompiledProc
makeResultToConsumer(Object module, MethodHandle applyMethod, Object name, int numArgs)
static CompiledProc
makeResultToObject(Object module, MethodHandle applyMethod, Object name, int numArgs)
int
numArgs()
ReturnminArgs()|(maxArgs<<12)
.protected void
resolveParameterTypes()
Figure out parameter types.-
Methods inherited from class gnu.mapping.MethodProc
applyToConsumerDefaultMP, getParameterType, isApplicable, matchFailAsException, mostSpecific, numParameters, overrideEquivalent
-
Methods inherited from class gnu.mapping.ProcedureN
applyToObject
-
Methods inherited from class gnu.mapping.Procedure
apply0, apply1, apply2, apply3, apply4, applyL, applyN, applyToConsumerDefault, applyToObjectDefault, checkArgCount, checkBadCode, getApplyMethod, getApplyToConsumerMethod, getApplyToObjectMethod, getReturnType, getSetter, getSourceLocation, isSideEffectFree, lookupApplyHandle, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toString
-
Methods inherited from class gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
-
-
-
-
Constructor Detail
-
CompiledProc
public CompiledProc(Object module, boolean resultGoesToConsumer, MethodHandle applyMethod, Object name, int numArgs)
-
CompiledProc
public CompiledProc(boolean resultGoesToConsumer, MethodHandle applyMethod, Object name, int numArgs, Object argTypes)
-
-
Method Detail
-
getModule
public Object getModule()
-
getModuleClass
public Class getModuleClass()
-
makeResultToObject
public static CompiledProc makeResultToObject(Object module, MethodHandle applyMethod, Object name, int numArgs)
-
makeResultToConsumer
public static CompiledProc makeResultToConsumer(Object module, MethodHandle applyMethod, Object name, int numArgs)
-
initResultToObject
public void initResultToObject(Object module, MethodHandle applyMethod, Object name, int numArgs)
-
initResultToConsumer
public void initResultToConsumer(Object module, MethodHandle applyMethod, Object name, int numArgs)
-
init
public CompiledProc init(boolean resultGoesToConsumer, MethodHandle applyMethod, Object name, int numArgs)
-
resolveParameterTypes
protected void resolveParameterTypes()
Figure out parameter types. Uses reflection to get method parameter types. INCOMPLETE - does not handle procedures with optional or rest args, or with patterns.- Overrides:
resolveParameterTypes
in classMethodProc
-
numArgs
public int numArgs()
Description copied from class:Procedure
ReturnminArgs()|(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.
-
-