code: protected JCClassDecl interfaceDeclaration(JCModifiers mods, Comment dc) {
          int pos = token.pos;
          accept(INTERFACE);
          Name name = ident();
  
          List<JCTypeParameter> typarams = typeParametersOpt();
  
          List<JCExpression> extending = List.nil();
          if (token.kind == EXTENDS) {
              nextToken();
              extending = typeList();
          }
          List<JCTree> defs = classOrInterfaceBody(name, true);
          JCClassDecl result = toP(F.at(pos).ClassDef(
              mods, name, typarams, null, extending, defs));
          attach(result, dc);
          return result;
      }
docs: InterfaceDeclaration = INTERFACE Ident TypeParametersOpt
  [EXTENDS TypeList] InterfaceBody
  @param mods    The modifiers starting the interface declaration
  @param dc       The documentation comment for the interface, or null.