sisc.data
Class Procedure

java.lang.Object
  extended by sisc.util.Util
      extended by sisc.data.Expression
          extended by sisc.data.Value
              extended by sisc.data.Procedure
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, Immediate, ExpressionVisitee, Version
Direct Known Subclasses:
ApplyParentFrame, CallFrame, Closure, NativeProcedure, Parameter

public abstract class Procedure
extends Value

The Procedure class is the base class for any Scheme Procedure. A procedure is an entity that can be applied to zero or more arguments to return a value or cause additional expressions to be evaluated.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class sisc.data.Expression
annotations, EMPTYSET
 
Fields inherited from class sisc.util.Util
BACKQUOTE, BEGIN, bundles, caseSensitive, EMPTYLIST, EMPTYVEC, EOF, ERRORK, EVAL, EXPSC, EXPTOP, FALSE, FCONT, FIVE, JEXCEPTION, LAMBDA, LOCATION, maxFloatPrecision, MESSAGE, minFloatPrecision, NAME, OTHER, PARENT, permitInterrupts, QUOTE, QUOTESYM, REPORT, SETBANG, SISC, SISC_SPECIFIC, SISCB, SOURCE_COLUMN, SOURCE_FILE, SOURCE_LINE, SYMENV, THIS, TOPLEVEL, TRUE, UNQUOTE, UNQUOTE_SPLICING, VOID, ZV
 
Fields inherited from interface sisc.util.Version
VERSION
 
Constructor Summary
Procedure()
           
 
Method Summary
abstract  void apply(Interpreter r)
          Called when applying this procedure to a number of arguments in the Interpreter's vlr register.
static void error(Interpreter r, Value where, NestedPrimRuntimeException parent)
           
static void throwArgSizeException()
           
static void throwNestedPrimException(SchemeException e)
           
static void throwNestedPrimException(java.lang.String message, SchemeException e)
           
static void throwPrimException(java.lang.String message)
           
 
Methods inherited from class sisc.data.Value
display, displayNamedOpaque, equals, eqv, eval, express, getValue, synopsis, synopsis, toString, valueEqual, valueHashCode, write, writeReplace
 
Methods inherited from class sisc.data.Expression
deserialize, deserializeAnnotations, getAnnotation, getAnnotation, getAnnotationKeys, getAnnotations, getName, readExternal, readResolve, serialize, serializeAnnotations, setAnnotation, setAnnotation, setName, visit, visitAnnotations, writeExternal
 
Methods inherited from class sisc.util.Util
annotated, annotatedAppEval, append, argCheck, argsToSymbols, assq, bininport, bininstream, binoutport, binoutstream, box, character, charinport, charinreader, charoutport, charoutwriter, charsetFromString, chr, cont, currentClassLoader, env, error, error, error, error, error, error, error, expr, getDefaultCharacterSet, immutablePair, immutableVector, inport, javaExceptionToString, javaWrap, justify, length, liMessage, liMessage, liMessage, liMessage, liMessage, liMessage, liMessage, list, list, list, list, list, makeURL, mapcar, memq, nlib, num, outport, pair, pairToExpressions, pairToExpVect, pairToValues, proc, read, registerBundle, reverse, reverseInPlace, simpleErrorToString, sourceAnnotations, str, string, sym, symbol, symval, truePair, truth, truth, typeError, typeError, updateName, url, url, url, valArrayToList, valArrayToList, valArrayToVec, vec, warn, warn, warn
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Procedure

public Procedure()
Method Detail

apply

public abstract void apply(Interpreter r)
                    throws ContinuationException
Called when applying this procedure to a number of arguments in the Interpreter's vlr register. The code can return a value by setting the Interpreter's acc register and/or cause additional expressions to be evaluated by setting the Interpreter's nxp register.

Overrides:
apply in class Value
Parameters:
r - the Interpreter
Throws:
ContinuationException

throwPrimException

public static void throwPrimException(java.lang.String message)

throwNestedPrimException

public static void throwNestedPrimException(java.lang.String message,
                                            SchemeException e)

throwNestedPrimException

public static void throwNestedPrimException(SchemeException e)

throwArgSizeException

public static void throwArgSizeException()

error

public static void error(Interpreter r,
                         Value where,
                         NestedPrimRuntimeException parent)
                  throws ContinuationException
Throws:
ContinuationException