gnu.mapping
Class Procedure

java.lang.Object
  |
  +--gnu.mapping.Procedure
Direct Known Subclasses:
AutoloadProcedure, Procedure0, Procedure0or1, Procedure1, Procedure1or2, Procedure2, Procedure3, Procedure4, ProcedureN

public abstract class Procedure
extends java.lang.Object
implements Named, Printable

The abstract parent for all Scheme functions.


Field Summary
protected static java.lang.Object[] noArgs
           
protected  java.lang.String sym_name
           
 
Constructor Summary
Procedure()
           
Procedure(java.lang.String n)
           
 
Method Summary
 void apply(CallStack stack)
          Call this Procedure using the explicit-CallStack-convention.
abstract  java.lang.Object apply0()
           
abstract  java.lang.Object apply1(java.lang.Object arg1)
           
abstract  java.lang.Object apply2(java.lang.Object arg1, java.lang.Object arg2)
           
abstract  java.lang.Object apply3(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
           
abstract  java.lang.Object apply4(java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)
           
abstract  java.lang.Object applyN(java.lang.Object[] args)
           
static void checkArgCount(Procedure proc, int argCount)
          Check that the number of arguments in a call is valid.
 java.lang.String getName()
           
 Procedure getSetter()
           
 int maxArgs()
          Maximum number of arguments allowed, or -1 for unlimited.
 int minArgs()
          Minimum number of arguments required.
 java.lang.String name()
          Deprecated.  
 int numArgs()
          Return minArgs()|(maxArgs<<12).
 void print(java.io.PrintWriter ps)
           
 void set0(java.lang.Object result)
          If HasSetter, the Procedure is called in the LHS of an assignment.
 void set1(java.lang.Object result, java.lang.Object arg1)
           
 void setN(java.lang.Object[] args)
           
 void setName(java.lang.String name)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

noArgs

protected static java.lang.Object[] noArgs

sym_name

protected java.lang.String sym_name
Constructor Detail

Procedure

public Procedure()

Procedure

public Procedure(java.lang.String n)
Method Detail

getName

public java.lang.String getName()
Specified by:
getName in interface Named

name

public final java.lang.String name()
Deprecated.  


setName

public final void setName(java.lang.String name)
Specified by:
setName in interface Named

applyN

public abstract java.lang.Object applyN(java.lang.Object[] args)

apply0

public abstract java.lang.Object apply0()

apply1

public abstract java.lang.Object apply1(java.lang.Object arg1)

apply2

public abstract java.lang.Object apply2(java.lang.Object arg1,
                                        java.lang.Object arg2)

apply3

public abstract java.lang.Object apply3(java.lang.Object arg1,
                                        java.lang.Object arg2,
                                        java.lang.Object arg3)

apply4

public abstract java.lang.Object apply4(java.lang.Object arg1,
                                        java.lang.Object arg2,
                                        java.lang.Object arg3,
                                        java.lang.Object arg4)

minArgs

public final int minArgs()
Minimum number of arguments required.

maxArgs

public final int maxArgs()
Maximum number of arguments allowed, or -1 for unlimited.

checkArgCount

public static void checkArgCount(Procedure proc,
                                 int argCount)
Check that the number of arguments in a call is valid.
Parameters:
proc - the Procedure being called
argCount - the number of arguments in the call
Returns:
nothing, if the number of arguments is ok
Throws:
WrongArguments - there are too many or too few actual arguments

numArgs

public int numArgs()
Return minArgs()|(maxArgs<<12).

apply

public void apply(CallStack stack)
Call this Procedure using the explicit-CallStack-convention. The input arguments are (by default) in stack.args; the result is (by default) left in stack.value.

getSetter

public Procedure getSetter()

set0

public void set0(java.lang.Object result)
If HasSetter, the Procedure is called in the LHS of an assignment.

set1

public void set1(java.lang.Object result,
                 java.lang.Object arg1)

setN

public void setN(java.lang.Object[] args)

print

public void print(java.io.PrintWriter ps)
Specified by:
print in interface Printable