JetFile: annotation.kt
  PACKAGE_DIRECTIVE
    <empty list>
  IMPORT_LIST
    <empty list>
  CLASS
    PsiComment(EOL_COMMENT)('// Annotations used for annotations :)')
    PsiWhiteSpace('\n')
    MODIFIER_LIST
      PsiElement(enum)('enum')
    PsiWhiteSpace(' ')
    PsiElement(class)('class')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('Target')
    PsiWhiteSpace(' ')
    CLASS_BODY
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      ENUM_ENTRY
        OBJECT_DECLARATION_NAME
          PsiElement(IDENTIFIER)('CLASSIFIER')
        PsiElement(COMMA)(',')
      PsiWhiteSpace('\n    ')
      ENUM_ENTRY
        OBJECT_DECLARATION_NAME
          PsiElement(IDENTIFIER)('FUNCTION')
      PsiWhiteSpace('\n')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  CLASS
    MODIFIER_LIST
      PsiElement(enum)('enum')
    PsiWhiteSpace(' ')
    PsiElement(class)('class')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('Retention')
    PsiWhiteSpace(' ')
    CLASS_BODY
      PsiElement(LBRACE)('{')
      PsiWhiteSpace('\n    ')
      ENUM_ENTRY
        OBJECT_DECLARATION_NAME
          PsiElement(IDENTIFIER)('SOURCE')
        PsiElement(COMMA)(',')
      PsiWhiteSpace('\n    ')
      ENUM_ENTRY
        OBJECT_DECLARATION_NAME
          PsiElement(IDENTIFIER)('BINARY')
        PsiElement(COMMA)(',')
      PsiWhiteSpace('\n    ')
      ENUM_ENTRY
        OBJECT_DECLARATION_NAME
          PsiElement(IDENTIFIER)('RUNTIME')
      PsiWhiteSpace('\n')
      PsiElement(RBRACE)('}')
  PsiWhiteSpace('\n\n')
  CLASS
    MODIFIER_LIST
      ANNOTATION_ENTRY
        CONSTRUCTOR_CALLEE
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('target')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            DOT_QUALIFIED_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('Target')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('CLASSIFIER')
          PsiElement(RPAR)(')')
      PsiWhiteSpace(' \n')
      PsiElement(public)('public')
      PsiWhiteSpace(' ')
      ANNOTATION_ENTRY
        CONSTRUCTOR_CALLEE
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('annotation')
    PsiWhiteSpace(' ')
    PsiElement(class)('class')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('target')
    PRIMARY_CONSTRUCTOR
      VALUE_PARAMETER_LIST
        PsiElement(LPAR)('(')
        VALUE_PARAMETER
          MODIFIER_LIST
            PsiElement(vararg)('vararg')
          PsiWhiteSpace(' ')
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('allowedTargets')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('Target')
        PsiElement(RPAR)(')')
  PsiWhiteSpace('\n\n')
  CLASS
    MODIFIER_LIST
      ANNOTATION_ENTRY
        CONSTRUCTOR_CALLEE
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('target')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            DOT_QUALIFIED_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('Target')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('CLASSIFIER')
          PsiElement(RPAR)(')')
      PsiWhiteSpace('\n')
      PsiElement(public)('public')
      PsiWhiteSpace(' ')
      ANNOTATION_ENTRY
        CONSTRUCTOR_CALLEE
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('annotation')
        VALUE_ARGUMENT_LIST
          PsiElement(LPAR)('(')
          VALUE_ARGUMENT
            DOT_QUALIFIED_EXPRESSION
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('Retention')
              PsiElement(DOT)('.')
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('SOURCE')
          PsiElement(RPAR)(')')
    PsiWhiteSpace(' ')
    PsiElement(class)('class')
    PsiWhiteSpace(' ')
    PsiElement(IDENTIFIER)('annotation')
    PRIMARY_CONSTRUCTOR
      VALUE_PARAMETER_LIST
        PsiElement(LPAR)('(')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('retention')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('Retention')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          DOT_QUALIFIED_EXPRESSION
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('Retention')
            PsiElement(DOT)('.')
            REFERENCE_EXPRESSION
              PsiElement(IDENTIFIER)('RUNTIME')
        PsiElement(COMMA)(',')
        PsiWhiteSpace('\n    ')
        VALUE_PARAMETER
          PsiElement(val)('val')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('repeatable')
          PsiElement(COLON)(':')
          PsiWhiteSpace(' ')
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION
                PsiElement(IDENTIFIER)('Boolean')
          PsiWhiteSpace(' ')
          PsiElement(EQ)('=')
          PsiWhiteSpace(' ')
          BOOLEAN_CONSTANT
            PsiElement(false)('false')
        PsiWhiteSpace('\n')
        PsiElement(RPAR)(')')