Class SubRoutineStatement

All Implemented Interfaces:
TypeConstants, TypeIds
Direct Known Subclasses:
SynchronizedStatement, TryStatement

public abstract class SubRoutineStatement extends Statement
Extra behavior for statements which are generating subroutines
  • Field Details

  • Constructor Details

    • SubRoutineStatement

      public SubRoutineStatement()
  • Method Details

    • reenterAllExceptionHandlers

      public static void reenterAllExceptionHandlers(SubRoutineStatement[] subroutines, int max, CodeStream codeStream)
    • enterAnyExceptionHandler

      public ExceptionLabel enterAnyExceptionHandler(CodeStream codeStream)
    • enterDeclaredExceptionHandlers

      public void enterDeclaredExceptionHandlers(CodeStream codeStream)
    • exitAnyExceptionHandler

      public void exitAnyExceptionHandler()
    • exitDeclaredExceptionHandlers

      public void exitDeclaredExceptionHandlers(CodeStream codeStream)
    • generateSubRoutineInvocation

      public abstract boolean generateSubRoutineInvocation(BlockScope currentScope, CodeStream codeStream, Object targetLocation, int stateIndex, LocalVariableBinding secretLocal)
      Generate an invocation of a subroutine (e.g. jsr finally) in current context.
      Returns:
      boolean, true if the generated code will abrupt completion
    • isSubRoutineEscaping

      public abstract boolean isSubRoutineEscaping()
    • placeAllAnyExceptionHandler

      public void placeAllAnyExceptionHandler()
    • getSwitchExpression

      public SwitchExpression getSwitchExpression()
    • setSwitchExpression

      public void setSwitchExpression(SwitchExpression switchExpression)