jltools.ext.jl.ast
Class Switch_c

java.lang.Object
  |
  +--jltools.ext.jl.ast.Node_c
        |
        +--jltools.ext.jl.ast.Stmt_c
              |
              +--jltools.ext.jl.ast.Switch_c
All Implemented Interfaces:
java.lang.Cloneable, Copy, Node, java.io.Serializable, Stmt, Switch

public class Switch_c
extends Stmt_c
implements Switch

A Switch is an immutable representation of a Java switch statement. Such a statement has an expression which is evaluated to determine where to branch to, an a list of labels and block statements which are conditionally evaluated. One of the labels, rather than having a constant expression, may be lablled default.

See Also:
Serialized Form

Inner classes inherited from class jltools.ext.jl.ast.Node_c
Node_c.StringCodeWriter
 
Field Summary
protected  java.util.List elements
           
protected  Expr expr
           
 
Fields inherited from class jltools.ext.jl.ast.Node_c
ext, position
 
Constructor Summary
Switch_c(Ext ext, Position pos, Expr expr, java.util.List elements)
           
 
Method Summary
 java.util.List elements()
          Get the switch elements of the statement.
 Switch elements(java.util.List elements)
          Set the switch elements of the statement.
 Expr expr()
          Get the expression to switch on.
 Switch expr(Expr expr)
          Set the expression to switch on.
protected  Switch_c reconstruct(Expr expr, java.util.List elements)
          Reconstruct the statement.
 java.lang.String toString()
           
 void translate_(CodeWriter w, Translator tr)
          Write the statement to an output file.
 Node typeCheck_(TypeChecker tc)
          Type check the statement.
 Node visitChildren(NodeVisitor v)
          Visit the children of the statement.
 
Methods inherited from class jltools.ext.jl.ast.Node_c
buildTypes_, buildTypes, buildTypesOverride_, buildTypesOverride, copy, disambiguate_, disambiguate, disambiguateOverride_, disambiguateOverride, disambiguateTypes_, disambiguateTypes, disambiguateTypesOverride_, disambiguateTypesOverride, dump, enterScope, exceptionCheck_, exceptionCheck, exceptionCheckOverride_, exceptionCheckOverride, ext, ext, foldConstants_, foldConstants, foldConstantsOverride_, foldConstantsOverride, leaveScope, position, position, reconstructTypes_, reconstructTypes, translate, translateBlock, translateSubstmt, typeCheck, typeCheckOverride_, typeCheckOverride, visit, visitList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface jltools.ast.Node
buildTypes_, buildTypesOverride_, copy, disambiguate_, disambiguateOverride_, disambiguateTypes_, disambiguateTypesOverride_, dump, enterScope, exceptionCheck_, exceptionCheckOverride_, ext, ext, foldConstants_, foldConstantsOverride_, leaveScope, position, position, reconstructTypes_, typeCheckOverride_, visit
 

Field Detail

expr

protected Expr expr

elements

protected java.util.List elements
Constructor Detail

Switch_c

public Switch_c(Ext ext,
                Position pos,
                Expr expr,
                java.util.List elements)
Method Detail

expr

public Expr expr()
Get the expression to switch on.
Specified by:
expr in interface Switch

expr

public Switch expr(Expr expr)
Set the expression to switch on.
Specified by:
expr in interface Switch

elements

public java.util.List elements()
Get the switch elements of the statement.
Specified by:
elements in interface Switch

elements

public Switch elements(java.util.List elements)
Set the switch elements of the statement.
Specified by:
elements in interface Switch

reconstruct

protected Switch_c reconstruct(Expr expr,
                               java.util.List elements)
Reconstruct the statement.

visitChildren

public Node visitChildren(NodeVisitor v)
Visit the children of the statement.
Specified by:
visitChildren in interface Node
Overrides:
visitChildren in class Node_c

typeCheck_

public Node typeCheck_(TypeChecker tc)
                throws SemanticException
Type check the statement.
Specified by:
typeCheck_ in interface Node
Overrides:
typeCheck_ in class Node_c

toString

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

translate_

public void translate_(CodeWriter w,
                       Translator tr)
Write the statement to an output file.
Specified by:
translate_ in interface Node
Overrides:
translate_ in class Node_c
Following copied from interface: jltools.ast.Node
Parameters:
w - The code writer to which to write.
tr - The translation pass. This is not a visitor.