orc.ast.oil
Class Defs
java.lang.Object
orc.ast.oil.Expr
orc.ast.oil.Defs
public class Defs
- extends Expr
Constructor Summary |
Defs(java.util.List<Def> defs,
Expr body)
|
Method Summary |
|
accept(Visitor<E> visitor)
|
void |
addIndices(java.util.Set<java.lang.Integer> indices,
int depth)
If this expression has any indices which are >= depth,
add (index - depth) to the index set accumulator. |
Node |
compile(Node output)
Compiles an oil syntax tree into an execution graph. |
java.lang.String |
toString()
|
Type |
typesynth(Env<Type> ctx)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
defs
public java.util.List<Def> defs
body
public Expr body
Defs
public Defs(java.util.List<Def> defs,
Expr body)
compile
public Node compile(Node output)
- Description copied from class:
Expr
- Compiles an oil syntax tree into an execution graph.
Every node is compiled relative to an "output" node that represents
the "rest of the program". Thus the tree of compiled nodes is created bottom up.
- Specified by:
compile
in class Expr
- Parameters:
output
- This is the node to which output (publications) will be directed.
- Returns:
- A new node.
addIndices
public void addIndices(java.util.Set<java.lang.Integer> indices,
int depth)
- Description copied from class:
Expr
- 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 Expr
- 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 Expr
typesynth
public Type typesynth(Env<Type> ctx)
throws TypeException
- Specified by:
typesynth
in class Expr
- Throws:
TypeException