cs132.vapor.ast
Class VBranch

java.lang.Object
  extended by cs132.vapor.ast.Node
      extended by cs132.vapor.ast.VInstr
          extended by cs132.vapor.ast.VBranch

public class VBranch
extends VInstr

A branch instruction (if and if0).


Nested Class Summary
 
Nested classes/interfaces inherited from class cs132.vapor.ast.VInstr
VInstr.Visitor<E extends Throwable>, VInstr.VisitorP<P,E extends Throwable>, VInstr.VisitorPR<P,R,E extends Throwable>, VInstr.VisitorR<R,E extends Throwable>
 
Field Summary
 boolean positive
          For if branches, positive is true.
 VLabelRef<VCodeLabel> target
          The code label that will be executed next if the branch is taken.
 VOperand value
          The value being branched on.
 
Fields inherited from class cs132.vapor.ast.Node
sourcePos
 
Constructor Summary
VBranch(SourcePos sourcePos, boolean positive, VOperand value, VLabelRef<VCodeLabel> target)
           
 
Method Summary
<P,E extends Throwable>
void
accept(P p, VInstr.VisitorP<P,E> v)
          Relay for VInstr.VisitorP
<P,R,E extends Throwable>
R
accept(P p, VInstr.VisitorPR<P,R,E> v)
          Relay for VInstr.VisitorPR
<E extends Throwable>
void
accept(VInstr.Visitor<E> v)
          Relay for VInstr.Visitor
<R,E extends Throwable>
R
accept(VInstr.VisitorR<R,E> v)
          Relay for VInstr.VisitorR
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

positive

public final boolean positive
For if branches, positive is true. For if0 branches, positive is false.


value

public final VOperand value
The value being branched on. For if branches, the branch will be taken if value is non-zero. For if0 branches, the branch will be taken if value is zero.


target

public final VLabelRef<VCodeLabel> target
The code label that will be executed next if the branch is taken.

Constructor Detail

VBranch

public VBranch(SourcePos sourcePos,
               boolean positive,
               VOperand value,
               VLabelRef<VCodeLabel> target)
Method Detail

accept

public <E extends Throwable> void accept(VInstr.Visitor<E> v)
            throws E extends Throwable
Description copied from class: VInstr
Relay for VInstr.Visitor

Specified by:
accept in class VInstr
Throws:
E extends Throwable

accept

public <R,E extends Throwable> R accept(VInstr.VisitorR<R,E> v)
         throws E extends Throwable
Description copied from class: VInstr
Relay for VInstr.VisitorR

Specified by:
accept in class VInstr
Throws:
E extends Throwable

accept

public <P,E extends Throwable> void accept(P p,
                                           VInstr.VisitorP<P,E> v)
            throws E extends Throwable
Description copied from class: VInstr
Relay for VInstr.VisitorP

Specified by:
accept in class VInstr
Throws:
E extends Throwable

accept

public <P,R,E extends Throwable> R accept(P p,
                                          VInstr.VisitorPR<P,R,E> v)
         throws E extends Throwable
Description copied from class: VInstr
Relay for VInstr.VisitorPR

Specified by:
accept in class VInstr
Throws:
E extends Throwable