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(' ')
          LSBinaryOperatorImpl(BINARY_OPERATOR)
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(IDENTIFIER)('.')
            PsiWhiteSpace(' ')
            PsiElement(+)('+')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('4')
    PsiElement(;)(';')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.text')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.text')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('foo1')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSBinaryOperatorImpl(BINARY_OPERATOR)
              LSAddrExprImpl(ADDR_EXPR)
                PsiElement(ADDR)('ADDR')
                PsiElement(()('(')
                PsiElement(IDENTIFIER)('.text')
                PsiElement())(')')
              PsiWhiteSpace(' ')
              PsiElement(+)('+')
              PsiWhiteSpace(' ')
              LSPrimaryExprImpl(PRIMARY_EXPR)
                PsiElement(INT)('1')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('bar1')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSBinaryOperatorImpl(BINARY_OPERATOR)
              LSPrimaryExprImpl(PRIMARY_EXPR)
                PsiElement(INT)('1')
              PsiWhiteSpace(' ')
              PsiElement(+)('+')
              PsiWhiteSpace(' ')
              LSAddrExprImpl(ADDR_EXPR)
                PsiElement(ADDR)('ADDR')
                PsiElement(()('(')
                PsiElement(IDENTIFIER)('.text')
                PsiElement())(')')
        PsiElement(;)(';')
        PsiWhiteSpace('\n    ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('foo2')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSBinaryOperatorImpl(BINARY_OPERATOR)
              LSAddrExprImpl(ADDR_EXPR)
                PsiElement(ADDR)('ADDR')
                PsiElement(()('(')
                PsiElement(IDENTIFIER)('.text')
                PsiElement())(')')
              PsiWhiteSpace(' ')
              PsiElement(&)('&')
              PsiWhiteSpace(' ')
              LSPrimaryExprImpl(PRIMARY_EXPR)
                PsiElement(INT)('1')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('bar2')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSBinaryOperatorImpl(BINARY_OPERATOR)
              LSPrimaryExprImpl(PRIMARY_EXPR)
                PsiElement(INT)('1')
              PsiWhiteSpace(' ')
              PsiElement(&)('&')
              PsiWhiteSpace(' ')
              LSAddrExprImpl(ADDR_EXPR)
                PsiElement(ADDR)('ADDR')
                PsiElement(()('(')
                PsiElement(IDENTIFIER)('.text')
                PsiElement())(')')
        PsiElement(;)(';')
        PsiWhiteSpace('\n    ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('foo3')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSBinaryOperatorImpl(BINARY_OPERATOR)
              LSAddrExprImpl(ADDR_EXPR)
                PsiElement(ADDR)('ADDR')
                PsiElement(()('(')
                PsiElement(IDENTIFIER)('.text')
                PsiElement())(')')
              PsiWhiteSpace(' ')
              PsiElement(|)('|')
              PsiWhiteSpace(' ')
              LSPrimaryExprImpl(PRIMARY_EXPR)
                PsiElement(INT)('1')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        LSAssignmentExprImpl(ASSIGNMENT_EXPR)
          LSSymbolAssignmentImpl(SYMBOL_ASSIGNMENT)
            PsiElement(IDENTIFIER)('bar3')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LSBinaryOperatorImpl(BINARY_OPERATOR)
              LSPrimaryExprImpl(PRIMARY_EXPR)
                PsiElement(INT)('1')
              PsiWhiteSpace(' ')
              PsiElement(|)('|')
              PsiWhiteSpace(' ')
              LSAddrExprImpl(ADDR_EXPR)
                PsiElement(ADDR)('ADDR')
                PsiElement(()('(')
                PsiElement(IDENTIFIER)('.text')
                PsiElement())(')')
        PsiElement(;)(';')
        PsiWhiteSpace('\n  ')
        PsiElement(})('}')
    PsiWhiteSpace('\n')
    PsiElement(})('}')
  PsiElement(;)(';')