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
-
Field Summary
FieldsFields 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
ConstructorsConstructorDescriptionCompiledProc
(boolean resultGoesToConsumer, MethodHandle applyMethod, Object name, int numArgs, Object argTypes) CompiledProc
(Object module, boolean resultGoesToConsumer, MethodHandle applyMethod, Object name, int numArgs) -
Method Summary
Modifier and TypeMethodDescriptioninit
(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
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
-
Field Details
-
numArgs
protected int numArgs
-
-
Constructor Details
-
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 Details
-
getModule
-
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
-
initResultToConsumer
-
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.
-