FILE
  LSMemoryCommandImpl(MEMORY_COMMAND)
    PsiElement(MEMORY)('MEMORY')
    PsiWhiteSpace(' ')
    PsiElement({)('{')
    PsiWhiteSpace('\n  ')
    LSMemoryDeclarationImpl(MEMORY_DECLARATION)
      LSNamedMemoryDeclImpl(NAMED_MEMORY_DECL)
        PsiElement(IDENTIFIER)('FOO')
        PsiWhiteSpace('   ')
        LSMemoryDeclAttributesImpl(MEMORY_DECL_ATTRIBUTES)
          PsiElement(()('(')
          PsiElement(IDENTIFIER)('ax')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        LSOriginAssignmentImpl(ORIGIN_ASSIGNMENT)
          PsiElement(ORIGIN)('ORIGIN')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x1000')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        LSLengthAssignmentImpl(LENGTH_ASSIGNMENT)
          PsiElement(LENGTH)('LENGTH')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x100')
    PsiWhiteSpace('\n  ')
    LSMemoryDeclarationImpl(MEMORY_DECLARATION)
      LSNamedMemoryDeclImpl(NAMED_MEMORY_DECL)
        PsiElement(IDENTIFIER)('BAR')
        PsiWhiteSpace('   ')
        LSMemoryDeclAttributesImpl(MEMORY_DECL_ATTRIBUTES)
          PsiElement(()('(')
          PsiElement(IDENTIFIER)('ax')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        LSOriginAssignmentImpl(ORIGIN_ASSIGNMENT)
          PsiElement(ORIGIN)('ORIGIN')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x2000')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        LSLengthAssignmentImpl(LENGTH_ASSIGNMENT)
          PsiElement(LENGTH)('LENGTH')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x100')
    PsiWhiteSpace('\n  ')
    LSMemoryDeclarationImpl(MEMORY_DECLARATION)
      LSNamedMemoryDeclImpl(NAMED_MEMORY_DECL)
        PsiElement(IDENTIFIER)('ZED')
        PsiWhiteSpace('   ')
        LSMemoryDeclAttributesImpl(MEMORY_DECL_ATTRIBUTES)
          PsiElement(()('(')
          PsiElement(IDENTIFIER)('ax')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        LSOriginAssignmentImpl(ORIGIN_ASSIGNMENT)
          PsiElement(ORIGIN)('ORIGIN')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x3000')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        LSLengthAssignmentImpl(LENGTH_ASSIGNMENT)
          PsiElement(LENGTH)('LENGTH')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x100')
    PsiWhiteSpace('\n  ')
    LSMemoryDeclarationImpl(MEMORY_DECLARATION)
      LSNamedMemoryDeclImpl(NAMED_MEMORY_DECL)
        PsiElement(IDENTIFIER)('FLASH')
        PsiWhiteSpace(' ')
        LSMemoryDeclAttributesImpl(MEMORY_DECL_ATTRIBUTES)
          PsiElement(()('(')
          PsiElement(IDENTIFIER)('ax')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        LSOriginAssignmentImpl(ORIGIN_ASSIGNMENT)
          PsiElement(ORIGIN)('ORIGIN')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x6000')
        PsiElement(,)(',')
        PsiWhiteSpace(' ')
        LSLengthAssignmentImpl(LENGTH_ASSIGNMENT)
          PsiElement(LENGTH)('LENGTH')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x200')
    PsiWhiteSpace('\n')
    PsiElement(})('}')
  PsiWhiteSpace('\n\n')
  LSSectionsCommandImpl(SECTIONS_COMMAND)
    PsiElement(SECTIONS)('SECTIONS')
    PsiWhiteSpace(' ')
    PsiElement({)('{')
    PsiWhiteSpace('\n ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.foo1')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.foo1')
            PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(})('}')
        PsiWhiteSpace('            ')
        LSOutputSectionRegionImpl(OUTPUT_SECTION_REGION)
          PsiElement(>)('>')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('FOO')
        PsiWhiteSpace(' ')
        PsiElement(AT)('AT')
        LSOutputSectionRegionImpl(OUTPUT_SECTION_REGION)
          PsiElement(>)('>')
          PsiElement(IDENTIFIER)('FLASH')
    PsiWhiteSpace('\n ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.foo2')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.foo2')
            PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(BYTE)('BYTE')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x42')
          PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(})('}')
        PsiWhiteSpace(' ')
        LSOutputSectionRegionImpl(OUTPUT_SECTION_REGION)
          PsiElement(>)('>')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('BAR')
        PsiWhiteSpace(' ')
        PsiElement(AT)('AT')
        LSOutputSectionRegionImpl(OUTPUT_SECTION_REGION)
          PsiElement(>)('>')
          PsiElement(IDENTIFIER)('FLASH')
    PsiWhiteSpace('\n ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.foo3')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace(' ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.foo3')
            PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(})('}')
        PsiWhiteSpace('            ')
        LSOutputSectionRegionImpl(OUTPUT_SECTION_REGION)
          PsiElement(>)('>')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('ZED')
        PsiWhiteSpace(' ')
        PsiElement(AT)('AT')
        LSOutputSectionRegionImpl(OUTPUT_SECTION_REGION)
          PsiElement(>)('>')
          PsiElement(IDENTIFIER)('FLASH')
    PsiWhiteSpace('\n')
    PsiElement(})('}')