orc.ast.extended.expression
Class Lambda

java.lang.Object
  extended by orc.ast.extended.expression.Expression
      extended by orc.ast.extended.expression.Lambda
All Implemented Interfaces:
ASTNode, Locatable, Located

public class Lambda
extends Expression


Nested Class Summary
 
Nested classes/interfaces inherited from class orc.ast.extended.expression.Expression
Expression.Arg
 
Field Summary
 Expression body
           
 java.util.List<java.util.List<Pattern>> formals
           
 Type resultType
           
 java.util.List<java.lang.String> typeFormals
           
 
Constructor Summary
Lambda(java.util.List<java.util.List<Pattern>> formals, Expression body, Type resultType, java.util.List<java.lang.String> typeFormals)
           
 
Method Summary
<E> E
accept(Visitor<E> visitor)
           
static Lambda makeThunk(Expression body)
           
 Expression simplify()
          Simplify an expression which occurs in a call (non-nested) position.
 java.lang.String toString()
           
 
Methods inherited from class orc.ast.extended.expression.Expression
argify, getSourceLocation, join, setSourceLocation, uncurry
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

formals

public java.util.List<java.util.List<Pattern>> formals

body

public Expression body

resultType

public Type resultType

typeFormals

public java.util.List<java.lang.String> typeFormals
Constructor Detail

Lambda

public Lambda(java.util.List<java.util.List<Pattern>> formals,
              Expression body,
              Type resultType,
              java.util.List<java.lang.String> typeFormals)
Method Detail

makeThunk

public static Lambda makeThunk(Expression body)

simplify

public Expression simplify()
                    throws CompilationException
Description copied from class: Expression
Simplify an expression which occurs in a call (non-nested) position.

Specified by:
simplify in class Expression
Returns:
The simplified expression
Throws:
CompilationException

toString

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

accept

public <E> E accept(Visitor<E> visitor)