public static void main (String[] args) {}
-----
Groovy script
  Method
    Modifiers
      PsiElement(public)('public')
      PsiWhiteSpace(' ')
      PsiElement(static)('static')
    PsiWhiteSpace(' ')
    Built in type
      PsiElement(void)('void')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('main')
    PsiWhiteSpace(' ')
    PsiElement(()('(')
    Parameter list
      Parameter
        Modifiers
          <empty list>
        Array type
          Type element
            Reference element
              PsiElement(identifier)('String')
          PsiElement([)('[')
          PsiElement(])(']')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('args')
    PsiElement())(')')
    Throw clause
      <empty list>
    PsiWhiteSpace(' ')
    Open block
      PsiElement({)('{')
      PsiElement(})('}')