gnu.expr

Class LetExp

Implemented Interfaces:
org.xml.sax.Locator, Named, Printable, SourceLocator
Known Direct Subclasses:
FluidLetExp, PatternScope, TemplateScope

public class LetExp
extends ScopeExp

Class used to implement "let" syntax (and variants) for Scheme.

Field Summary

Expression
body
Expression[]
inits

Fields inherited from class gnu.expr.ScopeExp

frameSize, id, outer

Fields inherited from class gnu.expr.Expression

NEXT_AVAIL_FLAG, flags, noExpressions

Constructor Summary

LetExp(Expression[] i)

Method Summary

void
apply(CallContext ctx)
void
compile(Compilation comp, Target target)
Expression
getBody()
Type
getType()
protected boolean
mustCompile()
void
print(OutPort out)
void
print(OutPort out, String startTag, String endTag)
void
setBody(Expression body)
protected Expression
walk(ExpWalker walker)
protected void
walkChildren(ExpWalker walker)
void
walkInitializers(ExpWalker walker)

Methods inherited from class gnu.expr.ScopeExp

add, add, addDeclaration, addDeclaration, addDeclaration, countDecls, currentLambda, currentModule, duplicateDeclarationError, firstDecl, getDefine, getNoDefine, getVarScope, lookup, lookup, nesting, popScope, remove, remove, replaceFollowing, setIndexes, toString, walk

Methods inherited from class gnu.expr.Expression

apply, apply0, compile, compile, compile, compileButFirst, compileNotePosition, compileWithPosition, compileWithPosition, eval, eval, getColumnNumber, getFileName, getFlag, getFlags, getLineNumber, getPublicId, getSystemId, getType, inline, isStableSourceLocation, makeWhile, match0, mustCompile, print, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, setLocation, side_effects, toString, valueIfConstant, walk, walkChildren

Methods inherited from class gnu.mapping.Procedure0

apply0, apply1, apply2, apply3, apply4, applyN, numArgs

Methods inherited from class gnu.mapping.Procedure

apply, apply, apply0, apply1, apply2, apply3, apply4, applyN, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, match0, match1, match2, match3, match4, matchN, maxArgs, minArgs, numArgs, set0, set1, setN, setSetter, setSourceLocation, toString

Methods inherited from class gnu.mapping.PropertySet

getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol

Field Details

body

public Expression body

inits

public Expression[] inits

Constructor Details

LetExp

public LetExp(Expression[] i)

Method Details

apply

public void apply(CallContext ctx)
            throws Throwable
Overrides:
apply in interface Expression

compile

public void compile(Compilation comp,
                    Target target)
Overrides:
compile in interface Expression

getBody

public Expression getBody()

getType

public final Type getType()
Overrides:
getType in interface Expression

mustCompile

protected boolean mustCompile()
Overrides:
mustCompile in interface Expression

print

public void print(OutPort out)
Overrides:
print in interface Expression

print

public void print(OutPort out,
                  String startTag,
                  String endTag)

setBody

public void setBody(Expression body)

walk

protected Expression walk(ExpWalker walker)
Overrides:
walk in interface ScopeExp

walkChildren

protected void walkChildren(ExpWalker walker)
Overrides:
walkChildren in interface Expression

walkInitializers

public void walkInitializers(ExpWalker walker)