Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jif.extension
Class JifStmtExt_c

    java.lang.Object
      polyglot.ast.Ext_c
          jif.ast.Jif_c
              jif.extension.JifStmtExt_c

All Implemented Interfaces:
  java.lang.Cloneable, Jif, JifStmtExt, polyglot.ast.Ext, polyglot.util.Copy

Direct Known Subclasses:
  JifBlockExt, JifBranchExt, JifCaseExt, JifConstructorCallExt, JifDoExt, JifDowngradeStmtExt, JifEmptyExt, JifEvalExt, JifForExt, JifIfExt, JifLabeledExt, JifLocalDeclExt, JifReturnExt, JifSwitchExt, JifSynchronizedExt, JifThrowExt, JifTryExt, JifWhileExt

    public abstract class JifStmtExt_c

extends Jif_c
implements JifStmtExt

The root of all kinds of Jif extensions for statements. It provides a generic labelCheck method, which will invoke the labelCheckStmt methods provided by the subclasses of this class.

Field Summary
`protected JifStmtExt` | `stmtDel`

Fields inherited from class jif.ast.Jif_c
`toJava, X`

Fields inherited from class polyglot.ast.Ext_c
`ext, node`

Constructor Summary
`JifStmtExt_c(JifStmtExt stmtDel, ToJavaExt toJava)`
`JifStmtExt_c(ToJavaExt toJava)`

Method Summary
`java.lang.Object` | `copy()`
`void` | `init(polyglot.ast.Node node)`
`polyglot.ast.Node` | `labelCheck(LabelChecker lc)` Label check a statement.
`abstract polyglot.ast.Node` | `labelCheckStmt(LabelChecker lc)`
`JifStmtExt` | `stmtDel()`
`JifStmtExt` | `stmtDel(JifStmtExt stmtDel)`

Methods inherited from class jif.ast.Jif_c
`checkAndRemoveThrowType, checkThrowTypes, getPathMap, integerBoundsCalculated, toJava, toJava, updatePathMap, X, X`

Methods inherited from class polyglot.ast.Ext_c
`dump, ext, ext, node, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface polyglot.ast.Ext
`dump, ext, ext, node`

Field Detail

### stmtDel

    protected JifStmtExt stmtDel

Constructor Detail

### JifStmtExt_c

    public JifStmtExt_c(JifStmtExt stmtDel,
                        ToJavaExt toJava)

### JifStmtExt_c

    public JifStmtExt_c(ToJavaExt toJava)

Method Detail

### stmtDel

    public JifStmtExt stmtDel()

  Specified by:
    `stmtDel` in interface `JifStmtExt`

### init

    public void init(polyglot.ast.Node node)

  Specified by:
    `init` in interface `polyglot.ast.Ext`
  Overrides:
    `init` in class `Jif_c`

### copy

    public java.lang.Object copy()

  Specified by:
    `copy` in interface `polyglot.util.Copy`
  Overrides:
    `copy` in class `Jif_c`

### stmtDel

    public JifStmtExt stmtDel(JifStmtExt stmtDel)

  Specified by:
    `stmtDel` in interface `JifStmtExt`

### labelCheckStmt

    public abstract polyglot.ast.Node labelCheckStmt(LabelChecker lc)
                                              throws polyglot.types.SemanticException

  Specified by:
    `labelCheckStmt` in interface `JifStmtExt`
  Throws:
    `polyglot.types.SemanticException`

### labelCheck

    public polyglot.ast.Node labelCheck(LabelChecker lc)
                                 throws polyglot.types.SemanticException

  Label check a statement. After invoking the overrided `labelCheckStmt` statement, this method will apply the "single path rule" (Figure 4.15): If the path map contains only one path and it is "N" or "R", then the PC label at the end is the same as at the beginning, so just set the path map to use the PC label.

  Specified by:
    `labelCheck` in interface `Jif`
  Overrides:
    `labelCheck` in class `Jif_c`
  Throws:
    `polyglot.types.SemanticException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD