PsiJavaFile:SeeTag10.java
  PsiImportList
    <empty list>
  PsiClass:C
    PsiDocComment
      PsiDocToken:DOC_COMMENT_START('/**')
      PsiWhiteSpace('\n ')
      PsiDocToken:DOC_COMMENT_LEADING_ASTERISKS('*')
      PsiDocToken:DOC_COMMENT_DATA(' ')
      PsiDocTag:@see
        PsiDocToken:DOC_TAG_NAME('@see')
        PsiWhiteSpace(' ')
        PsiElement(DOC_METHOD_OR_FIELD_REF)
          PsiElement(DOC_REFERENCE_HOLDER)
            PsiJavaCodeReferenceElement:com.foo.MyClass
              PsiJavaCodeReferenceElement:com.foo
                PsiJavaCodeReferenceElement:com
                  PsiIdentifier:com('com')
                  PsiReferenceParameterList
                    <empty list>
                PsiJavaToken:DOT('.')
                PsiIdentifier:foo('foo')
                PsiReferenceParameterList
                  <empty list>
              PsiJavaToken:DOT('.')
              PsiIdentifier:MyClass('MyClass')
              PsiReferenceParameterList
                <empty list>
          PsiDocToken:DOC_TAG_VALUE_SHARP_TOKEN('#')
          PsiDocToken:DOC_TAG_VALUE_TOKEN('equals')
          PsiDocToken:DOC_TAG_VALUE_LPAREN('(')
          PsiElement(DOC_TAG_VALUE_ELEMENT)
            PsiElement(DOC_TYPE_HOLDER)
              PsiTypeElement:java.lang.Object
                PsiJavaCodeReferenceElement:java.lang.Object
                  PsiJavaCodeReferenceElement:java.lang
                    PsiJavaCodeReferenceElement:java
                      PsiIdentifier:java('java')
                      PsiReferenceParameterList
                        <empty list>
                    PsiJavaToken:DOT('.')
                    PsiIdentifier:lang('lang')
                    PsiReferenceParameterList
                      <empty list>
                  PsiJavaToken:DOT('.')
                  PsiIdentifier:Object('Object')
                  PsiReferenceParameterList
                    <empty list>
            PsiDocToken:DOC_TAG_VALUE_COMMA(',')
            PsiWhiteSpace(' ')
            PsiElement(DOC_TYPE_HOLDER)
              PsiTypeElement:java.lang.Object
                PsiJavaCodeReferenceElement:java.lang.Object
                  PsiJavaCodeReferenceElement:java.lang
                    PsiJavaCodeReferenceElement:java
                      PsiIdentifier:java('java')
                      PsiReferenceParameterList
                        <empty list>
                    PsiJavaToken:DOT('.')
                    PsiIdentifier:lang('lang')
                    PsiReferenceParameterList
                      <empty list>
                  PsiJavaToken:DOT('.')
                  PsiIdentifier:Object('Object')
                  PsiReferenceParameterList
                    <empty list>
          PsiDocToken:DOC_TAG_VALUE_RPAREN(')')
      PsiWhiteSpace('\n ')
      PsiDocToken:DOC_COMMENT_END('*/')
    PsiWhiteSpace('\n')
    PsiModifierList:
      <empty list>
    PsiKeyword:class('class')
    PsiWhiteSpace(' ')
    PsiIdentifier:C('C')
    PsiTypeParameterList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiReferenceList
      <empty list>
    PsiJavaToken:LBRACE('{')
    PsiJavaToken:RBRACE('}')