PsiJavaFile:Pines.java
  PsiJavaToken:LBRACE('{')
  PsiWhiteSpace(' ')
  PsiClass:A
    PsiModifierList:
      <empty list>
    PsiKeyword:class('class')
    PsiWhiteSpace(' ')
    PsiIdentifier:A('A')
    PsiTypeParameterList
      PsiJavaToken:LT('<')
      PsiTypeParameter:T
        PsiIdentifier:T('T')
        PsiWhiteSpace(' ')
        PsiElement(EXTENDS_BOUND_LIST)
          PsiKeyword:extends('extends')
          PsiWhiteSpace(' ')
          PsiJavaCodeReferenceElement:List<String>
            PsiIdentifier:List('List')
            PsiReferenceParameterList
              PsiJavaToken:LT('<')
              PsiTypeElement:String
                PsiJavaCodeReferenceElement:String
                  PsiIdentifier:String('String')
                  PsiReferenceParameterList
                    <empty list>
              PsiJavaToken:GT('>')
      PsiJavaToken:GT('>')
    PsiWhiteSpace(' ')
    PsiReferenceList
      PsiKeyword:extends('extends')
      PsiWhiteSpace(' ')
      PsiJavaCodeReferenceElement:List<List<Integer>>
        PsiIdentifier:List('List')
        PsiReferenceParameterList
          PsiJavaToken:LT('<')
          PsiTypeElement:List<Integer>
            PsiJavaCodeReferenceElement:List<Integer>
              PsiIdentifier:List('List')
              PsiReferenceParameterList
                PsiJavaToken:LT('<')
                PsiTypeElement:Integer
                  PsiJavaCodeReferenceElement:Integer
                    PsiIdentifier:Integer('Integer')
                    PsiReferenceParameterList
                      <empty list>
                PsiJavaToken:GT('>')
          PsiJavaToken:GT('>')
    PsiReferenceList
      <empty list>
    PsiWhiteSpace(' ')
    PsiJavaToken:LBRACE('{')
    PsiWhiteSpace(' ')
    PsiJavaToken:RBRACE('}')
  PsiWhiteSpace(' ')
  PsiJavaToken:RBRACE('}')