public class LetExp extends ScopeExp
Modifier and Type | Field and Description |
---|---|
Expression |
body |
Expression[] |
inits |
flags, NEXT_AVAIL_FLAG, noExpressions, VALIDATED
compilerKey, validateApplyKey
nameKey
Constructor and Description |
---|
LetExp(Expression[] i) |
Modifier and Type | Method and Description |
---|---|
void |
apply(CallContext ctx)
Evaluate the expression.
|
void |
compile(Compilation comp,
Target target) |
protected java.lang.Object |
evalVariable(int i,
CallContext ctx) |
Expression |
getBody() |
Type |
getType()
Return the Type used to represent the values of this Expression.
|
protected boolean |
mustCompile() |
void |
print(OutPort out) |
void |
print(OutPort out,
java.lang.String startTag,
java.lang.String endTag) |
void |
setBody(Expression body) |
protected <R,D> R |
visit(ExpVisitor<R,D> visitor,
D d) |
protected <R,D> void |
visitChildren(ExpVisitor<R,D> visitor,
D d) |
<R,D> void |
visitInitializers(ExpVisitor<R,D> visitor,
D d) |
add, add, addDeclaration, addDeclaration, addDeclaration, countDecls, countNonDynamicDecls, currentLambda, currentModule, duplicateDeclarationError, firstDecl, getDefine, getNoDefine, getVarScope, lookup, lookup, nestedIn, nesting, popScope, remove, remove, replaceFollowing, setIndexes, topLevel, toString
apply0, compile, compile, compileButFirst, compileNotePosition, compileWithPosition, compileWithPosition, deepCopy, deepCopy, deepCopy, deepCopy, eval, eval, getColumnNumber, getFileName, getFlag, getFlags, getLineNumber, getPublicId, getSystemId, isSingleValue, isStableSourceLocation, makeWhile, match0, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, setLocation, side_effects, validateApply, valueIfConstant
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getReturnType, getSetter, getSourceLocation, isSideEffectFree, match1, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
public Expression[] inits
public Expression body
public LetExp(Expression[] i)
public Expression getBody()
public void setBody(Expression body)
protected boolean mustCompile()
mustCompile
in class Expression
protected java.lang.Object evalVariable(int i, CallContext ctx) throws java.lang.Throwable
java.lang.Throwable
public void apply(CallContext ctx) throws java.lang.Throwable
Expression
apply
in class Expression
java.lang.Throwable
public void compile(Compilation comp, Target target)
compile
in class Expression
public final Type getType()
Expression
getType
in class Expression
protected <R,D> R visit(ExpVisitor<R,D> visitor, D d)
public <R,D> void visitInitializers(ExpVisitor<R,D> visitor, D d)
protected <R,D> void visitChildren(ExpVisitor<R,D> visitor, D d)
visitChildren
in class Expression
public void print(OutPort out)
print
in class Expression
public void print(OutPort out, java.lang.String startTag, java.lang.String endTag)