interface a {
  static interface b {
  }
}
-----
Groovy script
  Interface definition
    Modifiers
      <empty list>
    PsiElement(interface)('interface')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('a')
    Extends clause
      <empty list>
    PsiWhiteSpace(' ')
    Type definition body
      PsiElement({)('{')
      PsiWhiteSpace('\n  ')
      Interface definition
        Modifiers
          PsiElement(static)('static')
        PsiWhiteSpace(' ')
        PsiElement(interface)('interface')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('b')
        Extends clause
          <empty list>
        PsiWhiteSpace(' ')
        Type definition body
          PsiElement({)('{')
          PsiWhiteSpace('\n  ')
          PsiElement(})('}')
      PsiElement(new line)('\n')
      PsiElement(})('}')