interface a {
  def a ()
}
-----
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  ')
      Constructor
        Modifiers
          PsiElement(def)('def')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('a')
        PsiWhiteSpace(' ')
        PsiElement(()('(')
        Parameter list
          <empty list>
        PsiElement())(')')
        Throw clause
          <empty list>
      PsiElement(new line)('\n')
      PsiElement(})('}')