forge.transform
Class ExpressionDescender

java.lang.Object
  extended by forge.program.ExpressionVisitor<java.lang.Object>
      extended by forge.transform.ExpressionDescender

public abstract class ExpressionDescender
extends ExpressionVisitor<java.lang.Object>

Descends through a Forge expression graph without caching. Return variables of the visit methods are ignores, so they should all be null.

Author:
Greg Dennis (gdennis@mit.edu)

Constructor Summary
protected ExpressionDescender()
           
 
Method Summary
protected  void descend(BinaryExpression expr)
          Applies visitor to left and right subexpression.
protected  void descend(ConditionalExpression expr)
          Applies visitor to condition, then, and else expressions.
protected  void descend(ForgeLiteral expr)
          Does nothing.
protected  void descend(ForgeType expr)
          Does nothing.
protected  void descend(ForgeVariable expr)
          Does nothing.
protected  void descend(OldExpression expr)
          Applies visitor to variable.
protected  void descend(ProjectionExpression expr)
          Applies visitor to subexpression
protected  void descend(QuantifyExpression expr)
          Applies visitor to variable and subexpression.
protected  void descend(UnaryExpression expr)
          Applies visitor to subexpression.
protected  java.lang.Object visit(BinaryExpression expr)
          Visits a BinaryExpression.
protected  java.lang.Object visit(ConditionalExpression expr)
          Visits a ConditionalExpression.
protected  java.lang.Object visit(ForgeLiteral expr)
          Visits a ForgeConstant.
protected  java.lang.Object visit(ForgeType expr)
          Visits a ForgeType.
protected  java.lang.Object visit(ForgeVariable expr)
          Visits a ForgeVariable.
protected  java.lang.Object visit(OldExpression expr)
          Visits an OldExpression.
protected  java.lang.Object visit(ProjectionExpression expr)
          Visits a ProjectionExpression.
protected  java.lang.Object visit(QuantifyExpression expr)
          Visits a QuantifyExpression.
protected  java.lang.Object visit(UnaryExpression expr)
          Visits a UnaryExpression.
 
Methods inherited from class forge.program.ExpressionVisitor
getCache, isCached, putCache
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExpressionDescender

protected ExpressionDescender()
Method Detail

descend

protected void descend(BinaryExpression expr)
Applies visitor to left and right subexpression.


descend

protected void descend(UnaryExpression expr)
Applies visitor to subexpression.


descend

protected void descend(QuantifyExpression expr)
Applies visitor to variable and subexpression.


descend

protected void descend(ConditionalExpression expr)
Applies visitor to condition, then, and else expressions.


descend

protected void descend(ProjectionExpression expr)
Applies visitor to subexpression


descend

protected void descend(OldExpression expr)
Applies visitor to variable.


descend

protected void descend(ForgeVariable expr)
Does nothing.


descend

protected void descend(ForgeLiteral expr)
Does nothing.


descend

protected void descend(ForgeType expr)
Does nothing.


visit

protected final java.lang.Object visit(BinaryExpression expr)
Description copied from class: ExpressionVisitor
Visits a BinaryExpression.

Specified by:
visit in class ExpressionVisitor<java.lang.Object>

visit

protected final java.lang.Object visit(UnaryExpression expr)
Description copied from class: ExpressionVisitor
Visits a UnaryExpression.

Specified by:
visit in class ExpressionVisitor<java.lang.Object>

visit

protected final java.lang.Object visit(ConditionalExpression expr)
Description copied from class: ExpressionVisitor
Visits a ConditionalExpression.

Specified by:
visit in class ExpressionVisitor<java.lang.Object>

visit

protected final java.lang.Object visit(QuantifyExpression expr)
Description copied from class: ExpressionVisitor
Visits a QuantifyExpression.

Specified by:
visit in class ExpressionVisitor<java.lang.Object>

visit

protected final java.lang.Object visit(ProjectionExpression expr)
Description copied from class: ExpressionVisitor
Visits a ProjectionExpression.

Specified by:
visit in class ExpressionVisitor<java.lang.Object>

visit

protected final java.lang.Object visit(OldExpression expr)
Description copied from class: ExpressionVisitor
Visits an OldExpression.

Specified by:
visit in class ExpressionVisitor<java.lang.Object>

visit

protected final java.lang.Object visit(ForgeLiteral expr)
Description copied from class: ExpressionVisitor
Visits a ForgeConstant.

Specified by:
visit in class ExpressionVisitor<java.lang.Object>

visit

protected final java.lang.Object visit(ForgeType expr)
Description copied from class: ExpressionVisitor
Visits a ForgeType.

Specified by:
visit in class ExpressionVisitor<java.lang.Object>

visit

protected final java.lang.Object visit(ForgeVariable expr)
Description copied from class: ExpressionVisitor
Visits a ForgeVariable.

Specified by:
visit in class ExpressionVisitor<java.lang.Object>