orc.ast.oil
Class Call
java.lang.Object
orc.ast.oil.Expr
orc.ast.oil.Call
public class Call
- extends Expr
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 |
callee
public Arg callee
args
public java.util.List<Arg> args
Call
public Call(Arg callee,
java.util.List<Arg> args)
Call
public Call(Arg callee,
Arg arga,
Arg argb)
Call
public Call(Arg callee,
Arg arg)
Call
public Call(Arg callee)
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