SHELL_SCRIPT
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          LITERAL_OPERATION
            NUMBER
              PsiElement(int)('1')
            PsiWhiteSpace(' ')
            NUMBER
              PsiElement(int)('2')
            PsiWhiteSpace(' ')
            NUMBER
              PsiElement(int)('3')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          ASSIGNMENT_OPERATION
            ARRAY_OPERATION
              PsiElement([)('[')
              LITERAL_OPERATION
                NUMBER
                  PsiElement(int)('1')
              PsiElement(])(']')
            PsiElement(=)('=')
            LITERAL_OPERATION
              NUMBER
                PsiElement(int)('2')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          COMMA_OPERATION
            COMMA_OPERATION
              ASSIGNMENT_OPERATION
                ARRAY_OPERATION
                  PsiElement([)('[')
                  LITERAL_OPERATION
                    NUMBER
                      PsiElement(int)('1')
                  PsiElement(])(']')
                PsiElement(=)('=')
                LITERAL_OPERATION
                  NUMBER
                    PsiElement(int)('2')
              PsiElement(,)(',')
              LITERAL_OPERATION
                NUMBER
                  PsiElement(int)('2')
            PsiElement(,)(',')
            LITERAL_OPERATION
              NUMBER
                PsiElement(int)('3')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          LITERAL_OPERATION
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('a')
              PsiElement(CLOSE_QUOTE)('"')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          COMMA_OPERATION
            LITERAL_OPERATION
              PsiElement(word)('a')
            PsiElement(,)(',')
            PsiWhiteSpace(' ')
            LITERAL_OPERATION
              STRING
                PsiElement(OPEN_QUOTE)('"')
                PsiElement(STRING_CONTENT)('a')
                PsiElement(CLOSE_QUOTE)('"')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          LITERAL_OPERATION
            PsiElement(word)('a')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('a')
              PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('b')
              PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(word)('c')
            PsiWhiteSpace(' ')
            PsiElement(word)('d')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          PsiElement(\n)('\n')
          PsiWhiteSpace(' ')
          LITERAL_OPERATION
            PsiElement(word)('a')
          PsiElement(\n)('\n')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          PsiElement(\n)('\n')
          PsiWhiteSpace(' ')
          COMMA_OPERATION
            LITERAL_OPERATION
              PsiElement(word)('a')
            PsiElement(,)(',')
            PsiErrorElement:<operation> expected
              <empty list>
          PsiElement(\n)('\n')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          PsiElement(\n)('\n')
          PsiWhiteSpace(' ')
          ASSIGNMENT_OPERATION
            LITERAL_OPERATION
              PsiElement(word)('a')
            PsiElement(=)('=')
            LITERAL_OPERATION
              PsiElement(word)('a')
          PsiElement(\n)('\n')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          PsiElement(\n)('\n')
          PsiWhiteSpace(' ')
          LITERAL_OPERATION
            PsiElement($)('$')
            SUBSHELL_COMMAND
              PsiElement(()('(')
              COMPOUND_LIST
                SIMPLE_COMMAND
                  GENERIC_COMMAND_DIRECTIVE
                    LITERAL
                      PsiElement(word)('echo')
                  PsiWhiteSpace(' ')
                  NUMBER
                    PsiElement(int)('1')
              PsiElement())(')')
          PsiElement(\n)('\n')
        PsiElement())(')')
  PsiElement(\n)('\n')
  PsiComment(Comment)('#now test as simple command')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('a')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          ASSIGNMENT_OPERATION
            ARRAY_OPERATION
              PsiElement([)('[')
              LITERAL_OPERATION
                NUMBER
                  PsiElement(int)('1')
              PsiElement(])(']')
            PsiElement(=)('=')
            LITERAL_OPERATION
              NUMBER
                PsiElement(int)('2')
              PsiWhiteSpace(' ')
              NUMBER
                PsiElement(int)('2')
              PsiWhiteSpace(' ')
              NUMBER
                PsiElement(int)('3')
        PsiElement())(')')