Package gnu.expr
Class BeginExp
java.lang.Object
gnu.mapping.PropertySet
gnu.mapping.Procedure
gnu.expr.Expression
gnu.expr.BeginExp
- All Implemented Interfaces:
gnu.kawa.format.Printable,Named,SourceLocator,SourceLocator,Locator
This class represents a sequence of Expressions.
The expressions are evaluated for their side-effects,
and the value of the last Expression is the result.
A BeginExp may optionally have "compilation options"
which can be used to control various compile-time
aspects of Kawa, such as warning messages.
-
Nested Class Summary
Nested classes/interfaces inherited from interface gnu.text.SourceLocator
SourceLocator.Simple -
Field Summary
Fields inherited from class gnu.expr.Expression
applyMethodExpression, flags, NEXT_AVAIL_FLAG, noExpressions, type, VALIDATEDFields inherited from class gnu.mapping.Procedure
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKeyFields inherited from class gnu.mapping.PropertySet
nameKey -
Constructor Summary
ConstructorsConstructorDescriptionBeginExp()BeginExp(Expression[] ex) BeginExp(Expression exp0, Expression exp1) -
Method Summary
Modifier and TypeMethodDescriptionfinal voidadd(Expression exp) voidapply(CallContext ctx) Evaluate the expression.protected Typestatic final Expressioncanonicalize(Expression exp) Simplifies BeginExp.static final Expressioncanonicalize(Expression[] exps) voidcompile(Compilation comp, Target target) final intfinal Expression[]protected booleanvoidpopOptions(Compilation comp) voidprint(gnu.kawa.io.OutPort out) voidpushOptions(Compilation comp) voidsetCompileOptions(Vector options) final voidsetExpressions(Expression[] exps) protected <R,D> R visit(ExpVisitor<R, D> visitor, D d) protected <R,D> void visitChildren(ExpVisitor<R, D> visitor, D d) Methods inherited from class gnu.expr.Expression
applyMethodExpression, checkLiteralKeyword, compile, compile, compileWithPosition, compileWithPosition, deepCopy, deepCopy, deepCopy, deepCopy, eval, eval, getColumnNumber, getEndColumn, getEndLine, getFileName, getFlag, getFlags, getLineNumber, getPublicId, getStartColumn, getStartLine, getSystemId, getType, getTypeRaw, isSingleValue, isStableSourceLocation, makeWhile, maybeSetLine, neverReturns, numArgs, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, setLine, setLocation, setType, side_effects, toString, validateApply, valueIfConstantMethods inherited from class gnu.mapping.Procedure
apply0, apply1, apply2, apply3, apply4, applyL, applyN, applyToConsumerDefault, applyToObjectDefault, checkArgCount, checkBadCode, getApplyMethod, getApplyToConsumerMethod, getApplyToObjectMethod, getReturnType, getSetter, getSourceLocation, isSideEffectFree, lookupApplyHandle, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocationMethods inherited from class gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
-
Constructor Details
-
BeginExp
public BeginExp() -
BeginExp
-
BeginExp
-
-
Method Details
-
canonicalize
Simplifies BeginExp. (In the future, nested BeginExps may be "flattened" as well.) -
canonicalize
-
add
-
getExpressions
-
getExpressionCount
public final int getExpressionCount() -
setExpressions
-
setCompileOptions
-
mustCompile
protected boolean mustCompile()- Specified by:
mustCompilein classExpression
-
apply
Description copied from class:ExpressionEvaluate 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:
applyin classExpression- Throws:
Throwable
-
pushOptions
-
popOptions
-
compile
- Specified by:
compilein classExpression
-
visit
- Overrides:
visitin classExpression
-
visitChildren
- Overrides:
visitChildrenin classExpression
-
print
public void print(gnu.kawa.io.OutPort out) - Specified by:
printin classExpression
-
calculateType
- Overrides:
calculateTypein classExpression
-