sisc.exprs
Class LambdaExp
java.lang.Object
sisc.util.Util
sisc.data.Expression
sisc.exprs.LambdaExp
- All Implemented Interfaces:
- java.io.Externalizable, java.io.Serializable, Immediate, ExpressionVisitee, Version
public class LambdaExp
- extends Expression
- implements Immediate
- See Also:
- Serialized Form
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 |
Method Summary |
void |
deserialize(Deserializer s)
All Expressions must implement a default (no-argument) constructor. |
void |
eval(Interpreter r)
All expressions can be evaluated to some Scheme value. |
Value |
express()
A debugging function, express returns a Scheme value that describes
this expression. |
Value |
getValue(Interpreter r)
If an expression implements the Immediate interface, it must
override getValue, which returns as a Value, the immediate value
of this expression. |
void |
serialize(Serializer s)
All Expressions must implement a default (no-argument) constructor. |
boolean |
visit(ExpressionVisitor v)
|
Methods inherited from class sisc.data.Expression |
deserializeAnnotations, getAnnotation, getAnnotation, getAnnotationKeys, getAnnotations, getName, readExternal, readResolve, serializeAnnotations, setAnnotation, setAnnotation, setName, 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, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
infiniteArity
public boolean infiniteArity
fcount
public int fcount
lcount
public int lcount
localIndices
public int[] localIndices
lexicalIndices
public int[] lexicalIndices
boxes
public int[] boxes
body
public Expression body
LambdaExp
public LambdaExp(int s,
Expression body,
boolean arity,
int[] localids,
int[] lexids,
int[] boxes)
LambdaExp
public LambdaExp()
eval
public void eval(Interpreter r)
throws ContinuationException
- Description copied from class:
Expression
- All expressions can be evaluated to some Scheme value. This function
implements the exact manner in which an expression is evaluated.
An expression, when evaluated, performs some action that results
in its value being placed in the acc register of the given
Interpreter.
An expression that immediately evaluates to a value (i.e. does not
require that an additional expression be evaluated to obtain its
value) must clear the nxp register by setting it to
null.
Otherwise, nxp should be set to the expression that is to
be evaluated next before this method returns.
- Specified by:
eval
in class Expression
- Parameters:
r
- the Interpreter
- Throws:
ContinuationException
getValue
public Value getValue(Interpreter r)
throws ContinuationException
- Description copied from class:
Expression
- If an expression implements the Immediate interface, it must
override getValue, which returns as a Value, the immediate value
of this expression.
- Specified by:
getValue
in interface Immediate
- Overrides:
getValue
in class Expression
- Parameters:
r
- the Interpreter
- Returns:
- the immediate value of this expression, or null if the value
cannot be obtained immediately.
- Throws:
ContinuationException
express
public Value express()
- Description copied from class:
Expression
- A debugging function, express returns a Scheme value that describes
this expression. See examples in sisc.exprs.*
- Specified by:
express
in class Expression
serialize
public void serialize(Serializer s)
throws java.io.IOException
- Description copied from class:
Expression
- All Expressions must implement a default (no-argument) constructor.
Those that wish to be serialized to a heap must implement both this
and the deserialize method. The Expression may use any method of
the Serializer, which implements java.io.DataOutput
to write its state.
- Overrides:
serialize
in class Expression
- Parameters:
s
- the Serializer
- Throws:
java.io.IOException
deserialize
public void deserialize(Deserializer s)
throws java.io.IOException
- Description copied from class:
Expression
- All Expressions must implement a default (no-argument) constructor.
Those that wish to b serialized to a heap must implement both this
and the serialize method. The Expression may use any method of the
DataInput stream and the Deserializer serialization context
to read its state.
- Overrides:
deserialize
in class Expression
- Parameters:
s
- the Deserializer
- Throws:
java.io.IOException
visit
public boolean visit(ExpressionVisitor v)
- Specified by:
visit
in interface ExpressionVisitee
- Overrides:
visit
in class Expression