sisc.exprs
Class AppExp
java.lang.Object
sisc.util.Util
sisc.data.Expression
sisc.exprs.AppExp
- All Implemented Interfaces:
- java.io.Externalizable, java.io.Serializable, OptimisticHost, ExpressionVisitee, Version
- Direct Known Subclasses:
- LetrecExp
public class AppExp
- extends Expression
- implements OptimisticHost
- 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 |
alter(Interpreter r,
int uexpPosition,
Expression replaceWith)
Instructs the host to replace the uExp referenced at the
given (Expression dependent) position, with the given
Expression. |
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. |
void |
serialize(Serializer s)
All Expressions must implement a default (no-argument) constructor. |
void |
setHosts()
|
boolean |
visit(ExpressionVisitor v)
|
Methods inherited from class sisc.data.Expression |
deserializeAnnotations, getAnnotation, getAnnotation, getAnnotationKeys, getAnnotations, getName, getValue, 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 |
POS_EXP
public static final int POS_EXP
- See Also:
- Constant Field Values
POS_NXP
public static final int POS_NXP
- See Also:
- Constant Field Values
exp
public Expression exp
rands
public Expression[] rands
nxp
public Expression nxp
allImmediate
public boolean allImmediate
l
protected int l
AppExp
public AppExp(Expression exp,
Expression[] rands,
Expression nxp,
boolean allImmediate)
AppExp
public AppExp()
setHosts
public void setHosts()
- Specified by:
setHosts
in interface OptimisticHost
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
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
alter
public void alter(Interpreter r,
int uexpPosition,
Expression replaceWith)
- Description copied from interface:
OptimisticHost
- Instructs the host to replace the uExp referenced at the
given (Expression dependent) position, with the given
Expression.
- Specified by:
alter
in interface OptimisticHost
uexpPosition
- Expression dependent uExp indexreplaceWith
- Expression to revert to