# Hierarchy For Package jif.ast

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - polyglot.ast.AbstractDelFactory_c (implements polyglot.ast.DelFactory)
    - jif.ast.JifDelFactory_c (implements jif.ast.JifDelFactory)
  - polyglot.ast.AbstractExtFactory_c (implements polyglot.ast.ExtFactory)
    - jif.ast.AbstractJifExtFactory_c (implements jif.ast.JifExtFactory)
      - jif.ast.JifExtFactory_c
  - polyglot.ast.AbstractNodeFactory_c (implements polyglot.ast.NodeFactory)
    - polyglot.ast.NodeFactory_c
      - jif.ast.JifNodeFactory_c (implements jif.ast.JifNodeFactory)
  - polyglot.ast.Disamb_c (implements polyglot.ast.Disamb)
    - jif.ast.JifDisamb_c
  - polyglot.ast.Ext_c (implements polyglot.ast.Ext)
    - jif.ast.JifExt_c (implements jif.ast.JifExt)
  - jif.ast.JifInstantiator
  - jif.ast.JifUtil
  - polyglot.ast.Node_c (implements polyglot.ast.Node)
    - jif.ast.AmbExprParam_c (implements jif.ast.AmbExprParam)
    - jif.ast.AmbParam_c (implements jif.ast.AmbParam)
    - jif.ast.AmbParamTypeOrAccess_c (implements jif.ast.AmbParamTypeOrAccess)
    - jif.ast.ConstraintNode_c<Constraint> (implements jif.ast.ConstraintNode<Constraint>)
      - jif.ast.ActsForConstraintNode_c<Actor,Granter> (implements jif.ast.ActsForConstraintNode<Actor,Granter>)
        - jif.ast.LabelActsForLabelConstraintNode_c (implements jif.ast.LabelActsForLabelConstraintNode)
        - jif.ast.LabelActsForPrincipalConstraintNode_c (implements jif.ast.LabelActsForPrincipalConstraintNode)
        - jif.ast.PrincipalActsForPrincipalConstraintNode_c (implements jif.ast.PrincipalActsForPrincipalConstraintNode)
      - jif.ast.AuthConstraintNode_c (implements jif.ast.AuthConstraintNode)
      - jif.ast.AutoEndorseConstraintNode_c (implements jif.ast.AutoEndorseConstraintNode)
      - jif.ast.CallerConstraintNode_c (implements jif.ast.CallerConstraintNode)
      - jif.ast.CanonicalConstraintNode_c (implements jif.ast.CanonicalConstraintNode)
      - jif.ast.LabelLeAssertionNode_c (implements jif.ast.LabelLeAssertionNode)
    - jif.ast.LabelNode_c (implements jif.ast.LabelNode)
      - jif.ast.AmbLabelNode_c (implements polyglot.ast.Ambiguous, jif.ast.LabelNode)
        - jif.ast.AmbDynamicLabelNode_c (implements jif.ast.AmbDynamicLabelNode)
        - jif.ast.AmbProviderLabelNode_c (implements jif.ast.AmbProviderLabelNode)
        - jif.ast.AmbThisLabelNode_c (implements jif.ast.AmbThisLabelNode)
        - jif.ast.AmbVarLabelNode_c (implements jif.ast.AmbVarLabelNode)
        - jif.ast.JoinLabelNode_c (implements jif.ast.JoinLabelNode)
        - jif.ast.MeetLabelNode_c (implements jif.ast.MeetLabelNode)
      - jif.ast.CanonicalLabelNode_c (implements jif.ast.CanonicalLabelNode)
    - jif.ast.ParamDecl_c (implements jif.ast.ParamDecl)
    - jif.ast.PolicyNode_c (implements jif.ast.PolicyNode)
      - jif.ast.ReaderPolicyNode_c
      - jif.ast.WriterPolicyNode_c
    - polyglot.ast.Term_c (implements polyglot.ast.Term, polyglot.ast.TermOps)
      - polyglot.ast.ClassDecl_c (implements polyglot.ast.ClassDecl, polyglot.ast.ClassDeclOps)
        - jif.ast.JifClassDecl_c (implements jif.ast.JifClassDecl)
      - polyglot.ast.Expr_c (implements polyglot.ast.Expr, polyglot.ast.ExprOps)
        - jif.ast.AmbNewArray_c (implements jif.ast.AmbNewArray)
        - polyglot.ast.Assign_c (implements polyglot.ast.Assign)
          - polyglot.ast.ArrayAccessAssign_c (implements polyglot.ast.ArrayAccessAssign)
            - jif.ast.JifArrayAccessAssign_c
        - polyglot.ast.Binary_c (implements polyglot.ast.Binary)
          - jif.ast.JifBinary_c (implements polyglot.ast.Binary)
        - polyglot.ast.Call_c (implements polyglot.ast.Call, polyglot.ast.CallOps)
          - jif.ast.JifCall_c
        - jif.ast.DowngradeExpr_c (implements jif.ast.DowngradeExpr)
          - jif.ast.DeclassifyExpr_c (implements jif.ast.DeclassifyExpr)
          - jif.ast.EndorseExpr_c (implements jif.ast.EndorseExpr)
        - jif.ast.LabelExpr_c (implements jif.ast.LabelExpr)
          - jif.ast.NewLabel_c (implements jif.ast.NewLabel)
        - polyglot.ast.New_c (implements polyglot.ast.New, polyglot.ast.NewOps)
          - jif.ast.JifNew_c (implements polyglot.ast.New)
        - jif.ast.PrincipalExpr_c (implements jif.ast.PrincipalExpr)
        - jif.ast.PrincipalNode_c (implements jif.ast.PrincipalNode)
          - jif.ast.AmbJunctivePrincipalNode_c (implements jif.ast.AmbJunctivePrincipalNode)
          - jif.ast.AmbPrincipalNode_c (implements jif.ast.AmbPrincipalNode)
          - jif.ast.CanonicalPrincipalNode_c (implements jif.ast.CanonicalPrincipalNode)
      - polyglot.ast.Formal_c (implements polyglot.ast.Formal)
        - jif.ast.JifFormal_c
      - polyglot.ast.ProcedureDecl_c (implements polyglot.ast.ProcedureDecl, polyglot.ast.ProcedureDeclOps)
        - polyglot.ast.ConstructorDecl_c (implements polyglot.ast.ConstructorDecl)
          - jif.ast.JifConstructorDecl_c (implements jif.ast.JifConstructorDecl)
        - polyglot.ast.MethodDecl_c (implements polyglot.ast.MethodDecl)
          - jif.ast.JifMethodDecl_c (implements jif.ast.JifMethodDecl)
      - polyglot.ast.Stmt_c (implements polyglot.ast.Stmt)
        - polyglot.ast.AbstractBlock_c (implements polyglot.ast.Block)
          - polyglot.ast.Block_c
            - jif.ast.Prologue_c (implements jif.ast.Prologue)
        - polyglot.ast.Catch_c (implements polyglot.ast.Catch)
          - jif.ast.JifCatch_c
        - jif.ast.DowngradeStmt_c (implements jif.ast.DowngradeStmt)
          - jif.ast.DeclassifyStmt_c (implements jif.ast.DeclassifyStmt)
          - jif.ast.EndorseStmt_c (implements jif.ast.EndorseStmt)
            - jif.ast.CheckedEndorseStmt_c (implements jif.ast.CheckedEndorseStmt)
        - polyglot.ast.LocalDecl_c (implements polyglot.ast.LocalDecl)
          - jif.ast.JifLocalDecl_c
      - polyglot.ast.TypeNode_c (implements polyglot.ast.TypeNode)
        - polyglot.ast.ArrayTypeNode_c (implements polyglot.ast.ArrayTypeNode)
          - jif.ast.ConstArrayTypeNode_c (implements jif.ast.ConstArrayTypeNode)
        - polyglot.ast.CanonicalTypeNode_c (implements polyglot.ast.CanonicalTypeNode)
          - jif.ast.JifCanonicalTypeNode_c (implements jif.ast.JifCanonicalTypeNode)
        - jif.ast.InstTypeNode_c (implements polyglot.ast.Ambiguous, jif.ast.InstTypeNode)
        - jif.ast.LabeledTypeNode_c (implements polyglot.ast.Ambiguous, jif.ast.LabeledTypeNode)

## Interface Hierarchy

- java.lang.Cloneable
  - polyglot.util.Copy<T>
    - polyglot.ast.Ext (also extends polyglot.ast.NodeOps, java.io.Serializable)
      - jif.ast.JifExt
    - polyglot.ast.Node (also extends polyglot.ast.NodeOps, java.io.Serializable)
      - polyglot.ast.Ambiguous
        - jif.ast.AmbDynamicLabelNode (also extends jif.ast.LabelNode)
        - jif.ast.AmbNewArray (also extends polyglot.ast.Expr)
        - jif.ast.AmbParam (also extends jif.ast.ParamNode)
          - jif.ast.AmbExprParam
        - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Receiver)
        - jif.ast.AmbPrincipalNode (also extends jif.ast.PrincipalNode)
          - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.AmbProviderLabelNode (also extends jif.ast.LabelNode)
        - jif.ast.AmbThisLabelNode (also extends jif.ast.LabelNode)
        - jif.ast.AmbVarLabelNode (also extends jif.ast.LabelNode)
        - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.TypeNode)
          - jif.ast.ConstArrayTypeNode
      - jif.ast.ConstraintNode<Constraint>
        - jif.ast.ActsForConstraintNode<Actor,Granter>
          - jif.ast.LabelActsForLabelConstraintNode
          - jif.ast.LabelActsForPrincipalConstraintNode
          - jif.ast.PrincipalActsForPrincipalConstraintNode
        - jif.ast.AuthConstraintNode
        - jif.ast.AutoEndorseConstraintNode
        - jif.ast.CallerConstraintNode
        - jif.ast.CanonicalConstraintNode
        - jif.ast.LabelLeAssertionNode
      - polyglot.ast.Documentable
        - polyglot.ast.ProcedureDecl (also extends polyglot.ast.CodeDecl)
          - polyglot.ast.ConstructorDecl
            - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
          - jif.ast.JifProcedureDecl
            - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
            - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
          - polyglot.ast.MethodDecl
            - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
        - polyglot.ast.TopLevelDecl
          - polyglot.ast.ClassDecl (also extends polyglot.ast.ClassMember)
            - jif.ast.JifClassDecl
      - jif.ast.LabelComponentNode
        - jif.ast.LabelNode (also extends jif.ast.ActsForParamNode<Param>)
          - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.CanonicalLabelNode
          - jif.ast.JoinLabelNode
          - jif.ast.MeetLabelNode
        - jif.ast.PolicyNode
      - jif.ast.ParamDecl
      - jif.ast.ParamNode
        - jif.ast.ActsForParamNode<Param>
          - jif.ast.LabelNode (also extends jif.ast.LabelComponentNode)
            - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.CanonicalLabelNode
            - jif.ast.JoinLabelNode
            - jif.ast.MeetLabelNode
          - jif.ast.PrincipalNode (also extends polyglot.ast.Expr)
            - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.CanonicalPrincipalNode
        - jif.ast.AmbParam (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbExprParam
      - polyglot.ast.Prefix
        - polyglot.ast.QualifierNode
          - polyglot.ast.TypeNode (also extends polyglot.ast.Receiver, polyglot.ast.Term)
            - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.ConstArrayTypeNode
            - polyglot.ast.CanonicalTypeNode
              - jif.ast.JifCanonicalTypeNode
            - jif.ast.InstTypeNode
            - jif.ast.LabeledTypeNode
        - polyglot.ast.Receiver (also extends polyglot.ast.Typed)
          - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Ambiguous)
          - polyglot.ast.Expr (also extends polyglot.ast.Term)
            - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
            - jif.ast.DowngradeExpr
              - jif.ast.DeclassifyExpr
              - jif.ast.EndorseExpr
            - jif.ast.LabelExpr
              - jif.ast.NewLabel
            - jif.ast.PrincipalExpr
            - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
              - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
                - jif.ast.AmbJunctivePrincipalNode
              - jif.ast.CanonicalPrincipalNode
          - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Term)
            - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.ConstArrayTypeNode
            - polyglot.ast.CanonicalTypeNode
              - jif.ast.JifCanonicalTypeNode
            - jif.ast.InstTypeNode
            - jif.ast.LabeledTypeNode
      - polyglot.ast.Term
        - polyglot.ast.ClassMember
          - polyglot.ast.ClassDecl (also extends polyglot.ast.TopLevelDecl)
            - jif.ast.JifClassDecl
          - polyglot.ast.CodeDecl (also extends polyglot.ast.CodeBlock)
            - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
              - polyglot.ast.ConstructorDecl
                - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
              - jif.ast.JifProcedureDecl
                - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
                - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
              - polyglot.ast.MethodDecl
                - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
        - polyglot.ast.CodeNode
          - polyglot.ast.CodeBlock
            - polyglot.ast.CodeDecl (also extends polyglot.ast.ClassMember)
              - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
                - polyglot.ast.ConstructorDecl
                  - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
                - jif.ast.JifProcedureDecl
                  - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
                  - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
                - polyglot.ast.MethodDecl
                  - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
        - polyglot.ast.Expr (also extends polyglot.ast.Receiver)
          - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
          - jif.ast.DowngradeExpr
            - jif.ast.DeclassifyExpr
            - jif.ast.EndorseExpr
          - jif.ast.LabelExpr
            - jif.ast.NewLabel
          - jif.ast.PrincipalExpr
          - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
            - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.CanonicalPrincipalNode
        - polyglot.ast.Stmt
          - polyglot.ast.CompoundStmt
            - polyglot.ast.Block
              - jif.ast.Prologue
            - jif.ast.DowngradeStmt
              - jif.ast.DeclassifyStmt
              - jif.ast.EndorseStmt
                - jif.ast.CheckedEndorseStmt
        - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Receiver)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
- polyglot.ast.DelFactory
  - jif.ast.JifDelFactory
- java.lang.Iterable<T>
  - polyglot.ast.ExtFactory
    - jif.ast.JifExtFactory (also extends jif.ast.JifStmtExtFactory)
- jif.ast.JifStmtExtFactory
  - jif.ast.JifExtFactory (also extends polyglot.ast.ExtFactory)
- polyglot.ast.NodeFactory
  - jif.ast.JifNodeFactory
- polyglot.ast.NodeOps
  - polyglot.ast.Ext (also extends polyglot.util.Copy<T>, java.io.Serializable)
    - jif.ast.JifExt
  - polyglot.ast.Node (also extends polyglot.util.Copy<T>, java.io.Serializable)
    - polyglot.ast.Ambiguous
      - jif.ast.AmbDynamicLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbNewArray (also extends polyglot.ast.Expr)
      - jif.ast.AmbParam (also extends jif.ast.ParamNode)
        - jif.ast.AmbExprParam
      - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Receiver)
      - jif.ast.AmbPrincipalNode (also extends jif.ast.PrincipalNode)
        - jif.ast.AmbJunctivePrincipalNode
      - jif.ast.AmbProviderLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbThisLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbVarLabelNode (also extends jif.ast.LabelNode)
      - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.TypeNode)
        - jif.ast.ConstArrayTypeNode
    - jif.ast.ConstraintNode<Constraint>
      - jif.ast.ActsForConstraintNode<Actor,Granter>
        - jif.ast.LabelActsForLabelConstraintNode
        - jif.ast.LabelActsForPrincipalConstraintNode
        - jif.ast.PrincipalActsForPrincipalConstraintNode
      - jif.ast.AuthConstraintNode
      - jif.ast.AutoEndorseConstraintNode
      - jif.ast.CallerConstraintNode
      - jif.ast.CanonicalConstraintNode
      - jif.ast.LabelLeAssertionNode
    - polyglot.ast.Documentable
      - polyglot.ast.ProcedureDecl (also extends polyglot.ast.CodeDecl)
        - polyglot.ast.ConstructorDecl
          - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
        - jif.ast.JifProcedureDecl
          - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
          - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
        - polyglot.ast.MethodDecl
          - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.TopLevelDecl
        - polyglot.ast.ClassDecl (also extends polyglot.ast.ClassMember)
          - jif.ast.JifClassDecl
    - jif.ast.LabelComponentNode
      - jif.ast.LabelNode (also extends jif.ast.ActsForParamNode<Param>)
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.CanonicalLabelNode
        - jif.ast.JoinLabelNode
        - jif.ast.MeetLabelNode
      - jif.ast.PolicyNode
    - jif.ast.ParamDecl
    - jif.ast.ParamNode
      - jif.ast.ActsForParamNode<Param>
        - jif.ast.LabelNode (also extends jif.ast.LabelComponentNode)
          - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.CanonicalLabelNode
          - jif.ast.JoinLabelNode
          - jif.ast.MeetLabelNode
        - jif.ast.PrincipalNode (also extends polyglot.ast.Expr)
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.CanonicalPrincipalNode
      - jif.ast.AmbParam (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbExprParam
    - polyglot.ast.Prefix
      - polyglot.ast.QualifierNode
        - polyglot.ast.TypeNode (also extends polyglot.ast.Receiver, polyglot.ast.Term)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
      - polyglot.ast.Receiver (also extends polyglot.ast.Typed)
        - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Ambiguous)
        - polyglot.ast.Expr (also extends polyglot.ast.Term)
          - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
          - jif.ast.DowngradeExpr
            - jif.ast.DeclassifyExpr
            - jif.ast.EndorseExpr
          - jif.ast.LabelExpr
            - jif.ast.NewLabel
          - jif.ast.PrincipalExpr
          - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
            - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.CanonicalPrincipalNode
        - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Term)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
    - polyglot.ast.Term
      - polyglot.ast.ClassMember
        - polyglot.ast.ClassDecl (also extends polyglot.ast.TopLevelDecl)
          - jif.ast.JifClassDecl
        - polyglot.ast.CodeDecl (also extends polyglot.ast.CodeBlock)
          - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
            - polyglot.ast.ConstructorDecl
              - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
            - jif.ast.JifProcedureDecl
              - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
              - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
            - polyglot.ast.MethodDecl
              - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.CodeNode
        - polyglot.ast.CodeBlock
          - polyglot.ast.CodeDecl (also extends polyglot.ast.ClassMember)
            - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
              - polyglot.ast.ConstructorDecl
                - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
              - jif.ast.JifProcedureDecl
                - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
                - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
              - polyglot.ast.MethodDecl
                - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.Expr (also extends polyglot.ast.Receiver)
        - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
        - jif.ast.DowngradeExpr
          - jif.ast.DeclassifyExpr
          - jif.ast.EndorseExpr
        - jif.ast.LabelExpr
          - jif.ast.NewLabel
        - jif.ast.PrincipalExpr
        - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.CanonicalPrincipalNode
      - polyglot.ast.Stmt
        - polyglot.ast.CompoundStmt
          - polyglot.ast.Block
            - jif.ast.Prologue
          - jif.ast.DowngradeStmt
            - jif.ast.DeclassifyStmt
            - jif.ast.EndorseStmt
              - jif.ast.CheckedEndorseStmt
      - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Receiver)
        - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.ConstArrayTypeNode
        - polyglot.ast.CanonicalTypeNode
          - jif.ast.JifCanonicalTypeNode
        - jif.ast.InstTypeNode
        - jif.ast.LabeledTypeNode
- java.io.Serializable
  - polyglot.ast.Ext (also extends polyglot.util.Copy<T>, polyglot.ast.NodeOps)
    - jif.ast.JifExt
  - polyglot.ast.Node (also extends polyglot.util.Copy<T>, polyglot.ast.NodeOps)
    - polyglot.ast.Ambiguous
      - jif.ast.AmbDynamicLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbNewArray (also extends polyglot.ast.Expr)
      - jif.ast.AmbParam (also extends jif.ast.ParamNode)
        - jif.ast.AmbExprParam
      - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Receiver)
      - jif.ast.AmbPrincipalNode (also extends jif.ast.PrincipalNode)
        - jif.ast.AmbJunctivePrincipalNode
      - jif.ast.AmbProviderLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbThisLabelNode (also extends jif.ast.LabelNode)
      - jif.ast.AmbVarLabelNode (also extends jif.ast.LabelNode)
      - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.TypeNode)
        - jif.ast.ConstArrayTypeNode
    - jif.ast.ConstraintNode<Constraint>
      - jif.ast.ActsForConstraintNode<Actor,Granter>
        - jif.ast.LabelActsForLabelConstraintNode
        - jif.ast.LabelActsForPrincipalConstraintNode
        - jif.ast.PrincipalActsForPrincipalConstraintNode
      - jif.ast.AuthConstraintNode
      - jif.ast.AutoEndorseConstraintNode
      - jif.ast.CallerConstraintNode
      - jif.ast.CanonicalConstraintNode
      - jif.ast.LabelLeAssertionNode
    - polyglot.ast.Documentable
      - polyglot.ast.ProcedureDecl (also extends polyglot.ast.CodeDecl)
        - polyglot.ast.ConstructorDecl
          - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
        - jif.ast.JifProcedureDecl
          - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
          - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
        - polyglot.ast.MethodDecl
          - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.TopLevelDecl
        - polyglot.ast.ClassDecl (also extends polyglot.ast.ClassMember)
          - jif.ast.JifClassDecl
    - jif.ast.LabelComponentNode
      - jif.ast.LabelNode (also extends jif.ast.ActsForParamNode<Param>)
        - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.CanonicalLabelNode
        - jif.ast.JoinLabelNode
        - jif.ast.MeetLabelNode
      - jif.ast.PolicyNode
    - jif.ast.ParamDecl
    - jif.ast.ParamNode
      - jif.ast.ActsForParamNode<Param>
        - jif.ast.LabelNode (also extends jif.ast.LabelComponentNode)
          - jif.ast.AmbDynamicLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbProviderLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbThisLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbVarLabelNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.CanonicalLabelNode
          - jif.ast.JoinLabelNode
          - jif.ast.MeetLabelNode
        - jif.ast.PrincipalNode (also extends polyglot.ast.Expr)
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.CanonicalPrincipalNode
      - jif.ast.AmbParam (also extends polyglot.ast.Ambiguous)
        - jif.ast.AmbExprParam
    - polyglot.ast.Prefix
      - polyglot.ast.QualifierNode
        - polyglot.ast.TypeNode (also extends polyglot.ast.Receiver, polyglot.ast.Term)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
      - polyglot.ast.Receiver (also extends polyglot.ast.Typed)
        - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Ambiguous)
        - polyglot.ast.Expr (also extends polyglot.ast.Term)
          - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
          - jif.ast.DowngradeExpr
            - jif.ast.DeclassifyExpr
            - jif.ast.EndorseExpr
          - jif.ast.LabelExpr
            - jif.ast.NewLabel
          - jif.ast.PrincipalExpr
          - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
            - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
              - jif.ast.AmbJunctivePrincipalNode
            - jif.ast.CanonicalPrincipalNode
        - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Term)
          - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.ConstArrayTypeNode
          - polyglot.ast.CanonicalTypeNode
            - jif.ast.JifCanonicalTypeNode
          - jif.ast.InstTypeNode
          - jif.ast.LabeledTypeNode
    - polyglot.ast.Term
      - polyglot.ast.ClassMember
        - polyglot.ast.ClassDecl (also extends polyglot.ast.TopLevelDecl)
          - jif.ast.JifClassDecl
        - polyglot.ast.CodeDecl (also extends polyglot.ast.CodeBlock)
          - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
            - polyglot.ast.ConstructorDecl
              - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
            - jif.ast.JifProcedureDecl
              - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
              - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
            - polyglot.ast.MethodDecl
              - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.CodeNode
        - polyglot.ast.CodeBlock
          - polyglot.ast.CodeDecl (also extends polyglot.ast.ClassMember)
            - polyglot.ast.ProcedureDecl (also extends polyglot.ast.Documentable)
              - polyglot.ast.ConstructorDecl
                - jif.ast.JifConstructorDecl (also extends jif.ast.JifProcedureDecl)
              - jif.ast.JifProcedureDecl
                - jif.ast.JifConstructorDecl (also extends polyglot.ast.ConstructorDecl)
                - jif.ast.JifMethodDecl (also extends polyglot.ast.MethodDecl)
              - polyglot.ast.MethodDecl
                - jif.ast.JifMethodDecl (also extends jif.ast.JifProcedureDecl)
      - polyglot.ast.Expr (also extends polyglot.ast.Receiver)
        - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
        - jif.ast.DowngradeExpr
          - jif.ast.DeclassifyExpr
          - jif.ast.EndorseExpr
        - jif.ast.LabelExpr
          - jif.ast.NewLabel
        - jif.ast.PrincipalExpr
        - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
          - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
            - jif.ast.AmbJunctivePrincipalNode
          - jif.ast.CanonicalPrincipalNode
      - polyglot.ast.Stmt
        - polyglot.ast.CompoundStmt
          - polyglot.ast.Block
            - jif.ast.Prologue
          - jif.ast.DowngradeStmt
            - jif.ast.DeclassifyStmt
            - jif.ast.EndorseStmt
              - jif.ast.CheckedEndorseStmt
      - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Receiver)
        - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.ConstArrayTypeNode
        - polyglot.ast.CanonicalTypeNode
          - jif.ast.JifCanonicalTypeNode
        - jif.ast.InstTypeNode
        - jif.ast.LabeledTypeNode
- polyglot.ast.Typed
  - polyglot.ast.Receiver (also extends polyglot.ast.Prefix)
    - jif.ast.AmbParamTypeOrAccess (also extends polyglot.ast.Ambiguous)
    - polyglot.ast.Expr (also extends polyglot.ast.Term)
      - jif.ast.AmbNewArray (also extends polyglot.ast.Ambiguous)
      - jif.ast.DowngradeExpr
        - jif.ast.DeclassifyExpr
        - jif.ast.EndorseExpr
      - jif.ast.LabelExpr
        - jif.ast.NewLabel
      - jif.ast.PrincipalExpr
      - jif.ast.PrincipalNode (also extends jif.ast.ActsForParamNode<Param>)
        - jif.ast.AmbPrincipalNode (also extends polyglot.ast.Ambiguous)
          - jif.ast.AmbJunctivePrincipalNode
        - jif.ast.CanonicalPrincipalNode
    - polyglot.ast.TypeNode (also extends polyglot.ast.QualifierNode, polyglot.ast.Term)
      - polyglot.ast.ArrayTypeNode (also extends polyglot.ast.Ambiguous)
        - jif.ast.ConstArrayTypeNode
      - polyglot.ast.CanonicalTypeNode
        - jif.ast.JifCanonicalTypeNode
      - jif.ast.InstTypeNode
      - jif.ast.LabeledTypeNode