PsiJavaFile:Complex.java
  PsiImportList
    <empty list>
  PsiClass:Fantasy
    PsiModifierList:
      <empty list>
    PsiKeyword:class('class')
    PsiWhiteSpace(' ')
    PsiIdentifier:Fantasy('Fantasy')
    PsiTypeParameterList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiWhiteSpace(' ')
    PsiJavaToken:LBRACE('{')
    PsiWhiteSpace('\n  ')
    PsiMethod:compose
      PsiModifierList:@Author(first="Eugene", second="Wampirchik")
        PsiAnnotation
          PsiJavaToken:AT('@')
          PsiJavaCodeReferenceElement:Author
            PsiIdentifier:Author('Author')
            PsiReferenceParameterList
              <empty list>
          PsiAnnotationParameterList
            PsiJavaToken:LPARENTH('(')
            PsiNameValuePair
              PsiIdentifier:first('first')
              PsiJavaToken:EQ('=')
              PsiLiteralExpression:"Eugene"
                PsiJavaToken:STRING_LITERAL('"Eugene"')
            PsiJavaToken:COMMA(',')
            PsiWhiteSpace(' ')
            PsiNameValuePair
              PsiIdentifier:second('second')
              PsiJavaToken:EQ('=')
              PsiLiteralExpression:"Wampirchik"
                PsiJavaToken:STRING_LITERAL('"Wampirchik"')
            PsiJavaToken:RPARENTH(')')
      PsiTypeParameterList
        <empty list>
      PsiWhiteSpace(' ')
      PsiTypeElement:void
        PsiKeyword:void('void')
      PsiWhiteSpace(' ')
      PsiIdentifier:compose('compose')
      PsiWhiteSpace(' ')
      PsiParameterList:()
        PsiJavaToken:LPARENTH('(')
        PsiJavaToken:RPARENTH(')')
      PsiReferenceList
        <empty list>
      PsiWhiteSpace(' ')
      PsiCodeBlock
        PsiJavaToken:LBRACE('{')
        PsiJavaToken:RBRACE('}')
    PsiWhiteSpace(' \n')
    PsiJavaToken:RBRACE('}')