FILE
  LSExternCommandImpl(EXTERN_COMMAND)
    PsiElement(EXTERN)('EXTERN')
    PsiElement(()('(')
    PsiElement(IDENTIFIER)('extern_defined')
    PsiElement())(')')
  PsiWhiteSpace('\n')
  LSSectionsCommandImpl(SECTIONS_COMMAND)
    PsiElement(SECTIONS)('SECTIONS')
    PsiWhiteSpace(' ')
    PsiElement({)('{')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSAssignmentExprImpl(ASSIGNMENT_EXPR)
        LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
          PsiElement(IDENTIFIER)('.')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSTernaryOperatorImpl(TERNARY_OPERATOR)
            LSDefinedExprImpl(DEFINED_EXPR)
              PsiElement(DEFINED)('DEFINED')
              PsiElement(()('(')
              PsiElement(IDENTIFIER)('defined')
              PsiElement())(')')
            PsiWhiteSpace(' ')
            PsiElement(?)('?')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('0x11000')
            PsiWhiteSpace(' ')
            PsiElement(:)(':')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(IDENTIFIER)('.')
    PsiElement(;)(';')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.foo')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.foo*')
            PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(})('}')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSAssignmentExprImpl(ASSIGNMENT_EXPR)
        LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
          PsiElement(IDENTIFIER)('.')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSTernaryOperatorImpl(TERNARY_OPERATOR)
            LSDefinedExprImpl(DEFINED_EXPR)
              PsiElement(DEFINED)('DEFINED')
              PsiElement(()('(')
              PsiElement(IDENTIFIER)('notdefined')
              PsiElement())(')')
            PsiWhiteSpace(' ')
            PsiElement(?)('?')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('0x12000')
            PsiWhiteSpace(' ')
            PsiElement(:)(':')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('0x13000')
    PsiElement(;)(';')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.bar')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.bar*')
            PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(})('}')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSAssignmentExprImpl(ASSIGNMENT_EXPR)
        LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
          PsiElement(IDENTIFIER)('.')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSTernaryOperatorImpl(TERNARY_OPERATOR)
            LSDefinedExprImpl(DEFINED_EXPR)
              PsiElement(DEFINED)('DEFINED')
              PsiElement(()('(')
              PsiElement(IDENTIFIER)('extern_defined')
              PsiElement())(')')
            PsiWhiteSpace(' ')
            PsiElement(?)('?')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('0x14000')
            PsiWhiteSpace(' ')
            PsiElement(:)(':')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('0x15000')
    PsiElement(;)(';')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.test')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.test*')
            PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(})('}')
    PsiWhiteSpace('\n')
    PsiElement(})('}')