orc.ast.oil
Class Call

java.lang.Object
  extended by orc.ast.oil.Expr
      extended by orc.ast.oil.Call

public class Call
extends Expr


Field Summary
 java.util.List<Arg> args
           
 Arg callee
           
 
Constructor Summary
Call(Arg callee)
           
Call(Arg callee, Arg arg)
           
Call(Arg callee, Arg arga, Arg argb)
           
Call(Arg callee, java.util.List<Arg> args)
           
 
Method Summary
<E> E
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 orc.ast.oil.Expr
freeVars, typecheck
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

callee

public Arg callee

args

public java.util.List<Arg> args
Constructor Detail

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)
Method Detail

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