FILE
  LSSectionsCommandImpl(SECTIONS_COMMAND)
    PsiElement(SECTIONS)('SECTIONS')
    PsiWhiteSpace(' ')
    PsiElement({)('{')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSAssignmentExprImpl(ASSIGNMENT_EXPR)
        LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
          PsiElement(IDENTIFIER)('.')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x1000')
    PsiElement(;)(';')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.foo')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace('\n    ')
        PsiElement(BYTE)('BYTE')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x11')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(SHORT)('SHORT')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x1122')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(LONG)('LONG')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x11223344')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(QUAD)('QUAD')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x1122334455667788')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        LSProvideHiddenExprImpl(PROVIDE_HIDDEN_EXPR)
          PsiElement(PROVIDE_HIDDEN)('PROVIDE_HIDDEN')
          PsiElement(()('(')
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('sym4')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(IDENTIFIER)('.')
          PsiElement())(')')
        PsiElement(;)(';')
        PsiWhiteSpace('\n    ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('.')
            PsiWhiteSpace(' ')
            PsiElement(+=)('+=')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('0x1000')
        PsiElement(;)(';')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.foo.1')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        LSProvideExprImpl(PROVIDE_EXPR)
          PsiElement(PROVIDE)('PROVIDE')
          PsiElement(()('(')
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('unused1')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('0xff')
          PsiElement())(')')
        PsiElement(;)(';')
        PsiWhiteSpace('\n    ')
        LSHiddenExprImpl(HIDDEN_EXPR)
          PsiElement(HIDDEN)('HIDDEN')
          PsiElement(()('(')
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('sym6')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(IDENTIFIER)('.')
          PsiElement())(')')
        PsiElement(;)(';')
        PsiWhiteSpace('\n    ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('.')
            PsiWhiteSpace(' ')
            PsiElement(+=)('+=')
            PsiWhiteSpace(' ')
            LSBinaryOperatorImpl(BINARY_OPERATOR)
              LSPrimaryExprImpl(PRIMARY_EXPR)
                PsiElement(INT)('0x123')
              PsiWhiteSpace(' ')
              PsiElement(*)('*')
              PsiWhiteSpace('\n         ')
              LSParenExprImpl(PAREN_EXPR)
                PsiElement(()('(')
                LSBinaryOperatorImpl(BINARY_OPERATOR)
                  LSPrimaryExprImpl(PRIMARY_EXPR)
                    PsiElement(INT)('1')
                  PsiWhiteSpace(' ')
                  PsiElement(+)('+')
                  PsiWhiteSpace(' ')
                  LSPrimaryExprImpl(PRIMARY_EXPR)
                    PsiElement(INT)('1')
                PsiElement())(')')
        PsiElement(;)(';')
        PsiWhiteSpace('\n    ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('foo')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(IDENTIFIER)('.')
        PsiElement(;)(';')
        PsiWhiteSpace('\n    ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('bar')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSBinaryOperatorImpl(BINARY_OPERATOR)
              LSPrimaryExprImpl(PRIMARY_EXPR)
                PsiElement(INT)('0x42')
              PsiWhiteSpace(' ')
              PsiElement(-)('-')
              PsiWhiteSpace(' ')
              LSPrimaryExprImpl(PRIMARY_EXPR)
                PsiElement(INT)('0x26')
        PsiElement(;)(';')
        PsiWhiteSpace('\n  ')
        PsiElement(})('}')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSAssignmentExprImpl(ASSIGNMENT_EXPR)
        LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
          PsiElement(IDENTIFIER)('sym1')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(IDENTIFIER)('.')
    PsiElement(;)(';')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSAssignmentExprImpl(ASSIGNMENT_EXPR)
        LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
          PsiElement(IDENTIFIER)('.')
          PsiWhiteSpace(' ')
          PsiElement(+=)('+=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x500')
    PsiElement(;)(';')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSAssignmentExprImpl(ASSIGNMENT_EXPR)
        LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
          PsiElement(IDENTIFIER)('sym2')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(IDENTIFIER)('.')
    PsiElement(;)(';')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSProvideExprImpl(PROVIDE_EXPR)
        PsiElement(PROVIDE)('PROVIDE')
        PsiElement(()('(')
        LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
          PsiElement(IDENTIFIER)('unused2')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0xff')
        PsiElement())(')')
    PsiElement(;)(';')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSProvideExprImpl(PROVIDE_EXPR)
        PsiElement(PROVIDE)('PROVIDE')
        PsiElement(()('(')
        LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
          PsiElement(IDENTIFIER)('sym3')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('42')
        PsiElement())(')')
    PsiElement(;)(';')
    PsiWhiteSpace('\n')
    PsiElement(})('}')