orc.ast.oil.expression
Class Call

java.lang.Object
  extended by orc.ast.oil.expression.Expression
      extended by orc.ast.oil.expression.Call

public class Call
extends Expression


Field Summary
 java.util.List<Argument> args
           
 Argument callee
           
 java.util.List<Type> typeArgs
           
 
Constructor Summary
Call(Argument callee)
           
Call(Argument callee, Argument arg)
           
Call(Argument callee, Argument arga, Argument argb)
           
Call(Argument callee, java.util.List<Argument> args, java.util.List<Type> typeArgs)
           
 
Method Summary
<E,C> E
accept(ContextualVisitor<E,C> cvisitor, C initialContext)
           
<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.
 Expression marshal()
           
 Type noInferenceTypeSynth(TypingContext ctx)
           
 java.lang.String toString()
           
 void typecheck(TypingContext ctx, Type T)
           
 Type typesynth(TypingContext ctx)
           
 
Methods inherited from class orc.ast.oil.expression.Expression
freeVars, marshalAll
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

callee

public Argument callee

args

public java.util.List<Argument> args

typeArgs

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

Call

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

Call

public Call(Argument callee,
            Argument arga,
            Argument argb)

Call

public Call(Argument callee,
            Argument arg)

Call

public Call(Argument callee)
Method Detail

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

accept

public <E,C> E accept(ContextualVisitor<E,C> cvisitor,
                      C initialContext)

noInferenceTypeSynth

public Type noInferenceTypeSynth(TypingContext ctx)
                          throws TypeException
Throws:
TypeException

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