orc.ast.extended.expression
Class IfThenElse

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

public class IfThenElse
extends Expression

"if condition then consequent else alternative" desugars to "(if(c) >> consequent | if(~c) >> alternative) <c< condition"

Author:
quark

Nested Class Summary
 
Nested classes/interfaces inherited from class orc.ast.extended.expression.Expression
Expression.Arg
 
Field Summary
 Expression alternative
           
 Expression condition
           
 Expression consequent
           
 
Constructor Summary
IfThenElse(Expression condition, Expression consequent)
           
IfThenElse(Expression condition, Expression consequent, Expression alternative)
           
 
Method Summary
<E> E
accept(Visitor<E> visitor)
           
 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

condition

public Expression condition

consequent

public Expression consequent

alternative

public Expression alternative
Constructor Detail

IfThenElse

public IfThenElse(Expression condition,
                  Expression consequent,
                  Expression alternative)

IfThenElse

public IfThenElse(Expression condition,
                  Expression consequent)
Method Detail

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)