gnu.expr

Class IfExp

Implemented Interfaces:
org.xml.sax.Locator, Named, Printable, SourceLocator

public class IfExp
extends Expression

This class represents a conditional.

Field Summary

Fields inherited from class gnu.expr.Expression

NEXT_AVAIL_FLAG, flags, noExpressions

Constructor Summary

IfExp(Expression i, Expression t, Expression e)

Method Summary

void
apply(CallContext ctx)
Evaluate the expression.
void
compile(Compilation comp, Target target)
static void
compile(Expression test, Expression then_clause, Expression else_clause, Compilation comp, Target target)
protected Language
getLanguage()
Type
getType()
Return the Type used to represent the values of this Expression.
protected boolean
mustCompile()
void
print(OutPort out)
protected Expression
walk(ExpWalker walker)
protected void
walkChildren(ExpWalker walker)

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

Constructor Details

IfExp

public IfExp(Expression i,
             Expression t,
             Expression e)

Method Details

apply

public void apply(CallContext ctx)
            throws Throwable
Evaluate the expression. This is named apply rather than eval so it is compatible with the full-tail-call calling convention, and we can stash an Expression in CallContext's proc field. FIXME - are we making use of this?
Overrides:
apply in interface Expression

compile

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

compile

public static void compile(Expression test,
                           Expression then_clause,
                           Expression else_clause,
                           Compilation comp,
                           Target target)

getLanguage

protected final Language getLanguage()

getType

public Type getType()
Return the Type used to represent the values of this Expression.
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

walk

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

walkChildren

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