orc.ast.oil
Class Defs

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

public class Defs
extends Expr


Field Summary
 Expr body
           
 java.util.List<Def> defs
           
 
Constructor Summary
Defs(java.util.List<Def> defs, Expr body)
           
 
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.
 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

defs

public java.util.List<Def> defs

body

public Expr body
Constructor Detail

Defs

public Defs(java.util.List<Def> defs,
            Expr body)
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

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