orc.ast.simple.expression
Class Call

java.lang.Object
  extended by orc.ast.simple.expression.Expression
      extended by orc.ast.simple.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)
           
Call(Argument callee, java.util.List<Argument> args, java.util.List<Type> typeArgs)
           
 
Method Summary
 Expression convert(Env<Variable> vars, Env<TypeVariable> typevars)
          Converts abstract syntax tree into a serializable form, used to generate portable .oil (Orc Intermediate Language) files.
 Expression subst(Argument a, FreeVariable x)
          Performs the substitution [a/x], replacing occurrences of the free variable x with the new argument a (which could be any argument, including another variable).
 Expression subst(Type T, FreeTypeVariable X)
          Performs the substitution [T/X], replacing occurrences of the free type variable X with the type T (which could be any type, including another variable).
 java.lang.String toString()
           
 java.util.Set<Variable> vars()
          Find the set of all Variables (note: not FreeVariables) that are not bound within this expression.
 
Methods inherited from class orc.ast.simple.expression.Expression
convertAll, subMap, substAll, subvar, subvar
 
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,
            java.util.List<Argument> args)

Call

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

Call

public Call(Argument callee,
            Argument arg)

Call

public Call(Argument callee)
Method Detail

subst

public Expression subst(Argument a,
                        FreeVariable x)
Description copied from class: Expression
Performs the substitution [a/x], replacing occurrences of the free variable x with the new argument a (which could be any argument, including another variable).

Specified by:
subst in class Expression
Parameters:
a - The replacing variable or value
x - The free variable whose occurrences will be replaced
Returns:
A new copy of the expression with the substitution performed

subst

public Expression subst(Type T,
                        FreeTypeVariable X)
Description copied from class: Expression
Performs the substitution [T/X], replacing occurrences of the free type variable X with the type T (which could be any type, including another variable).

Specified by:
subst in class Expression
Parameters:
T - The replacing type
X - The free type variable whose occurrences will be replaced
Returns:
A new copy of the expression with the substitution performed

vars

public java.util.Set<Variable> vars()
Description copied from class: Expression
Find the set of all Variables (note: not FreeVariables) that are not bound within this expression.

Specified by:
vars in class Expression

convert

public Expression convert(Env<Variable> vars,
                          Env<TypeVariable> typevars)
                   throws CompilationException
Description copied from class: Expression
Converts abstract syntax tree into a serializable form, used to generate portable .oil (Orc Intermediate Language) files.

Specified by:
convert in class Expression
Parameters:
vars - The vars environment, used in content addressable mode to find the appropriate deBruijn index of a var.
typevars - The type vars environment, used in content addressable mode to find the appropriate deBruijn index of a type var.
Returns:
A new node.
Throws:
CompilationException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object