sisc.nativefun
Class NativeProcedure

java.lang.Object
  extended by sisc.util.Util
      extended by sisc.data.Expression
          extended by sisc.data.Value
              extended by sisc.data.Procedure
                  extended by sisc.nativefun.NativeProcedure
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, Immediate, NamedValue, ExpressionVisitee, Version
Direct Known Subclasses:
FixableProcedure, IndexedProcedure

public abstract class NativeProcedure
extends Procedure
implements NamedValue

A native procedure is a Scheme procedure whose behavior when applied is implemented in Java code.

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
NativeProcedure()
           
 
Method Summary
 void apply(Interpreter r)
          Called when applying this procedure to a number of arguments in the Interpreter's vlr register.
 void display(ValueWriter w)
           
abstract  Value doApply(Interpreter r)
          A NativeProcedure instance must implement this method, which performs the actual processing specific to that procedure, and returns a Value.
 
Methods inherited from class sisc.data.Procedure
error, throwArgSizeException, throwNestedPrimException, throwNestedPrimException, throwPrimException
 
Methods inherited from class sisc.data.Value
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
 
Methods inherited from interface sisc.data.NamedValue
getName, setName
 

Constructor Detail

NativeProcedure

public NativeProcedure()
Method Detail

doApply

public abstract Value doApply(Interpreter r)
                       throws ContinuationException
A NativeProcedure instance must implement this method, which performs the actual processing specific to that procedure, and returns a Value.

Throws:
ContinuationException

apply

public void apply(Interpreter r)
           throws ContinuationException
Description copied from class: Procedure
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.

Specified by:
apply in class Procedure
Parameters:
r - the Interpreter
Throws:
ContinuationException

display

public void display(ValueWriter w)
             throws java.io.IOException
Specified by:
display in class Value
Throws:
java.io.IOException