FILE
  LSSectionsCommandImpl(SECTIONS_COMMAND)
    PsiElement(SECTIONS)('SECTIONS')
    PsiWhiteSpace(' ')
    PsiElement({)('{')
    PsiWhiteSpace('\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.foo')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.foo.1')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(BYTE)('BYTE')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x11')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.foo.2')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(SHORT)('SHORT')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x1122')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.foo.3')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(LONG)('LONG')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x11223344')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.foo.4')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(QUAD)('QUAD')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(INT)('0x1122334455667788')
          PsiElement())(')')
        PsiWhiteSpace('\n  ')
        PsiElement(})('}')
        PsiWhiteSpace(' ')
        LSOutputSectionRegionImpl(OUTPUT_SECTION_REGION)
          PsiElement(>)('>')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('rom')
    PsiWhiteSpace('\n\n  ')
    LSSectionStmtImpl(SECTION_STMT)
      LSOutputSectionDescriptionImpl(OUTPUT_SECTION_DESCRIPTION)
        PsiElement(IDENTIFIER)('.bar')
        PsiWhiteSpace(' ')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        PsiElement({)('{')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.bar.1')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(BYTE)('BYTE')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSBinaryOperatorImpl(BINARY_OPERATOR)
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(IDENTIFIER)('a')
            PsiWhiteSpace(' ')
            PsiElement(+)('+')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('1')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.bar.2')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(SHORT)('SHORT')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(IDENTIFIER)('b')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.bar.3')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(LONG)('LONG')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSBinaryOperatorImpl(BINARY_OPERATOR)
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(IDENTIFIER)('c')
            PsiWhiteSpace(' ')
            PsiElement(+)('+')
            PsiWhiteSpace(' ')
            LSPrimaryExprImpl(PRIMARY_EXPR)
              PsiElement(INT)('2')
          PsiElement())(')')
        PsiWhiteSpace('\n    ')
        LSInputSectionDescriptionImpl(INPUT_SECTION_DESCRIPTION)
          LSInputSectionRuleImpl(INPUT_SECTION_RULE)
            PsiElement(*)('*')
            PsiElement(()('(')
            LSInputSectionsListImpl(INPUT_SECTIONS_LIST)
              PsiElement(IDENTIFIER)('.bar.4')
            PsiElement())(')')
        PsiWhiteSpace('\n    ')
        PsiElement(QUAD)('QUAD')
        LSParenExprImpl(PAREN_EXPR)
          PsiElement(()('(')
          LSPrimaryExprImpl(PRIMARY_EXPR)
            PsiElement(IDENTIFIER)('d')
          PsiElement())(')')
        PsiWhiteSpace('\n  ')
        PsiElement(})('}')
        PsiWhiteSpace(' ')
        LSOutputSectionRegionImpl(OUTPUT_SECTION_REGION)
          PsiElement(>)('>')
          PsiWhiteSpace(' ')
          PsiElement(IDENTIFIER)('rom')
    PsiWhiteSpace('\n')
    PsiElement(})('}')