avrora.core.isdl.ast
Class IfStmt

java.lang.Object
  extended byavrora.core.isdl.ast.Stmt
      extended byavrora.core.isdl.ast.IfStmt

public class IfStmt
extends Stmt

The IfStmt class represents a simple branch within the IR. Since loops and switch statements are not allowed, if statements (and subroutine calls) are the only form of control flow.


Field Summary
 Expr cond
          The cond field stores a reference to the expression that is evaluated as the condition determining which branch is executed.
 java.util.List falseBranch
          The falseBranch field stores a reference to the list of statements to be executed if the condition is false.
 java.util.List trueBranch
          The trueBranch field stores a reference to the list of statements to be executed if the condition is true.
 
Constructor Summary
IfStmt(Expr c, java.util.List t, java.util.List f)
          The constructor of the IfStmt class simply initializes the internal fields based on the parameters.
 
Method Summary
 Stmt accept(StmtRebuilder r, java.lang.Object env)
          The accept() method implements one half of the visitor pattern for visiting the abstract syntax trees representing the code of a particular instruction or subroutine.
 void accept(StmtVisitor v)
          The accept() method implements one half of the visitor pattern for visiting the abstract syntax trees representing the code of a particular instruction or subroutine.
 java.lang.String toString()
          The toString() method recursively converts this statement to a string.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cond

public final Expr cond
The cond field stores a reference to the expression that is evaluated as the condition determining which branch is executed.


trueBranch

public final java.util.List trueBranch
The trueBranch field stores a reference to the list of statements to be executed if the condition is true.


falseBranch

public final java.util.List falseBranch
The falseBranch field stores a reference to the list of statements to be executed if the condition is false.

Constructor Detail

IfStmt

public IfStmt(Expr c,
              java.util.List t,
              java.util.List f)
The constructor of the IfStmt class simply initializes the internal fields based on the parameters.

Parameters:
c - a reference to the expression representing the condition
t - a reference to the list of statements to execute if the condition evaluates to true
f - a reference to the list of statements to execute if the condition evaluates to false
Method Detail

accept

public void accept(StmtVisitor v)
The accept() method implements one half of the visitor pattern for visiting the abstract syntax trees representing the code of a particular instruction or subroutine.

Specified by:
accept in class Stmt
Parameters:
v - the visitor to accept

toString

public java.lang.String toString()
The toString() method recursively converts this statement to a string.

Returns:
a string representation of this statement

accept

public Stmt accept(StmtRebuilder r,
                   java.lang.Object env)
The accept() method implements one half of the visitor pattern for visiting the abstract syntax trees representing the code of a particular instruction or subroutine. The StmtRebuilder interface allows visitors to rearrange and rebuild the statements.

Specified by:
accept in class Stmt
Parameters:
r - the visitor to accept
Returns:
the result of calling the appropriate visit() of the rebuilder passed