Class BlockStatement

All Implemented Interfaces:
AttributedObject, Node, Statement, CopyInterceptor
Direct Known Subclasses:
CaseBranch

public class BlockStatement extends StatementBase
Main factory for creating statements. Represents a block of statements which also defines a scope for local variable declarations.
  • Field Details

  • Constructor Details

    • BlockStatement

      BlockStatement(Node parent)
  • Method Details

    • getVar

      public Variable getVar(String ident)
      Look up the ident to see if it has an associated Variable in this block.
    • isEmpty

      public boolean isEmpty()
      Return true iff this BlockStatement contains no local variables or statements.
    • body

      public List<Statement> body()
      Return the list of Statements in this BlockStatement.
    • exprFactory

      public ExpressionFactory exprFactory()
      Return the ExpressionFactory that must be used to create any expressions occuring either in expressions added to the body, or in other statements immediately contained in this BlockStatement.
    • addBreak

      public void addBreak()
      Add a break statement to this BlockStatement.
    • addReturn

      public void addReturn()
      Add an empty return to this BlockStatement. The enclosing MethodGenerator must have a void return type.
    • addReturn

      public void addReturn(Expression expr)
      Add a return with an expression to this BlockStatement. The enclosing MethodGenerator must have a return type that is assignment compatible with the type of expr.
    • addIf

      public IfStatement addIf(Expression cond)
    • addTry

      public TryStatement addTry()
    • addThrow

      public void addThrow(Expression expr)
    • checkSwitchExpressionType

      private void checkSwitchExpressionType(Type type)
    • addSwitch

      public SwitchStatement addSwitch(Expression value)
    • addWhile

      public WhileStatement addWhile(Expression expr)
    • addExpression

      public void addExpression(Expression expr)
    • addAssign

      public void addAssign(Expression left, Expression right)
    • addDefinition

      public Expression addDefinition(Type type, String ident, Expression value)
    • accept

      public void accept(Visitor visitor)
      Description copied from interface: Node
      Accept the visitor and allow it to perform actions on this Node.
      Specified by:
      accept in interface Node
      Overrides:
      accept in class NodeBase