orc.ast.oil.expression
Class DeclareDefs
java.lang.Object
orc.ast.oil.expression.Expression
orc.ast.oil.expression.DeclareDefs
public class DeclareDefs
- extends Expression
A group of mutually recursive definitions,
and the expression to which they are scoped.
- Author:
- dkitchin
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
defs
public java.util.List<Def> defs
body
public Expression body
free
public java.util.Set<Variable> free
- Variables defined outside this node which appear in the bodies of
the defs. If the defs are all mutually recursive, this is correct,
otherwise this is overly pessimistic and may force some defs to wait
on variables which they won't use.
The compiler ensures that all def groups are mutually recursive
at this point in compilation.
DeclareDefs
public DeclareDefs(java.util.List<Def> defs,
Expression body)
hashCode
public int hashCode()
- Specified by:
hashCode
in class Expression
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equals
in class Expression
addIndices
public void addIndices(java.util.Set<java.lang.Integer> indices,
int depth)
- Description copied from class:
Expression
- If this expression has any indices which are >= depth,
add (index - depth) to the index set accumulator. The depth
increases each time this method recurses through a binder.
The default implementation is to assume the expression
has no free variables, and thus do nothing. Expressions
which contain variables or subexpressions override this
behavior.
- Specified by:
addIndices
in class Expression
- Parameters:
indices
- The index set accumulator.depth
- The minimum index for a free variable.
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
accept
public <E> E accept(Visitor<E> visitor)
- Specified by:
accept
in class Expression
typesynth
public Type typesynth(TypingContext ctx)
throws TypeException
- Specified by:
typesynth
in class Expression
- Throws:
TypeException
typecheck
public void typecheck(TypingContext ctx,
Type T)
throws TypeException
- Overrides:
typecheck
in class Expression
- Throws:
TypeException
marshal
public Expression marshal()
throws CompilationException
- Specified by:
marshal
in class Expression
- Throws:
CompilationException
populateContinuations
public void populateContinuations()
- Specified by:
populateContinuations
in class Expression
enter
public void enter(Token t)
- Specified by:
enter
in class Expression