jif.ast

## Interface JifProcedureDecl

- All Superinterfaces:
    polyglot.ast.ClassMember, java.lang.Cloneable, polyglot.ast.CodeBlock, polyglot.ast.CodeDecl, polyglot.ast.CodeNode, polyglot.util.Copy<polyglot.ast.Node>, polyglot.ast.Documentable, polyglot.ast.Node, polyglot.ast.NodeOps, polyglot.ast.ProcedureDecl, java.io.Serializable, polyglot.ast.Term
  All Known Subinterfaces:
    JifConstructorDecl, JifMethodDecl
  All Known Implementing Classes:
    JifConstructorDecl_c, JifMethodDecl_c

      public interface JifProcedureDecl
      extends polyglot.ast.ProcedureDecl

  An immutable representation of the Jif procedure declaration. It extends the Java procedure declaration with the start label, the return label, and various constraints, including the authority constraint, the caller constraint, and the acts-for constraint.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface polyglot.ast.Term

      `polyglot.ast.Term.Instance`

    - ### Nested classes/interfaces inherited from interface polyglot.util.Copy

      `polyglot.util.Copy.Util`

  - ### Field Summary

    - ### Fields inherited from interface polyglot.ast.Term

      `ENTRY, EXIT`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<ConstraintNode<Assertion>>` | `constraints()`
    `LabelNode` | `returnLabel()`
    `LabelNode` | `startLabel()`

    - ### Methods inherited from interface polyglot.ast.ProcedureDecl

      `flags, flags, formals, formals, id, name, name, procedureInstance, throwTypes, throwTypes`

    - ### Methods inherited from interface polyglot.ast.CodeBlock

      `body, body`

    - ### Methods inherited from interface polyglot.ast.CodeNode

      `codeBody, codeInstance`

    - ### Methods inherited from interface polyglot.ast.Term

      `exceptions, exceptions, reachable, reachable`

    - ### Methods inherited from interface polyglot.ast.Node

      `del, del, dump, error, error, ext, ext, ext, ext, isDisambiguated, isTypeChecked, position, position, visit, visitEdge`

    - ### Methods inherited from interface polyglot.ast.NodeOps

      `addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, extRewrite, extRewriteEnter, extRewriteOverride, lang, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList`

    - ### Methods inherited from interface polyglot.util.Copy

      `copy`

    - ### Methods inherited from interface polyglot.ast.ClassMember

      `memberInstance`

    - ### Methods inherited from interface polyglot.ast.Documentable

      `id, javadoc, javadoc`

- - ### Method Detail

    - #### startLabel

          LabelNode startLabel()

    - #### returnLabel

          LabelNode returnLabel()

    - #### constraints

          java.util.List<ConstraintNode<Assertion>> constraints()