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
           
 java.util.List<Type> typeArgs
           
 
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)
           
Call(Arg callee, java.util.List<Arg> args, java.util.List<Type> typeArgs)
           
 
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.
 Type noInferenceTypeSynth(Env<Type> ctx, Env<Type> typectx)
           
 java.lang.String toString()
           
 void typecheck(Type T, Env<Type> ctx, Env<Type> typectx)
           
 Type typesynth(Env<Type> ctx, Env<Type> typectx)
           
 
Methods inherited from class orc.ast.oil.Expr
freeVars
 
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

typeArgs

public java.util.List<Type> typeArgs
Constructor Detail

Call

public Call(Arg callee,
            java.util.List<Arg> args,
            java.util.List<Type> typeArgs)

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

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

noInferenceTypeSynth

public Type noInferenceTypeSynth(Env<Type> ctx,
                                 Env<Type> typectx)
                          throws TypeException
Throws:
TypeException

typesynth

public Type typesynth(Env<Type> ctx,
                      Env<Type> typectx)
               throws TypeException
Specified by:
typesynth in class Expr
Throws:
TypeException

typecheck

public void typecheck(Type T,
                      Env<Type> ctx,
                      Env<Type> typectx)
               throws TypeException
Overrides:
typecheck in class Expr
Throws:
TypeException