SHELL_SCRIPT
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      ARITHMETIC_EXPANSION
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        INDEX_EXPRESSION
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
          PsiElement([)('[')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
          PsiElement(])(']')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      PsiElement($)('$')
      ARITHMETIC_EXPANSION
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        ARRAY_EXPRESSION
          PsiElement([)('[')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
          PsiElement(])(']')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  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
            ASSIGNMENT_OPERATION
              ASSIGNMENT_OPERATION
                ARRAY_OPERATION
                  PsiElement([)('[')
                  LITERAL_OPERATION
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement(STRING_CONTENT)('a')
                      PsiElement(CLOSE_QUOTE)('"')
                  PsiElement(])(']')
                PsiElement(=)('=')
                INDEX_OPERATION
                  LITERAL_OPERATION
                    NUMBER
                      PsiElement(int)('1')
                  PsiWhiteSpace(' ')
                  PsiElement([)('[')
                  LITERAL_OPERATION
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement(STRING_CONTENT)('aa')
                      PsiElement(CLOSE_QUOTE)('"')
                  PsiElement(])(']')
              PsiElement(=)('=')
              INDEX_OPERATION
                LITERAL_OPERATION
                  NUMBER
                    PsiElement(int)('2')
                PsiWhiteSpace(' ')
                PsiElement([)('[')
                LITERAL_OPERATION
                  STRING
                    PsiElement(OPEN_QUOTE)('"')
                    PsiElement(STRING_CONTENT)('2')
                    PsiElement(CLOSE_QUOTE)('"')
                PsiElement(])(']')
            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
          ASSIGNMENT_OPERATION
            ASSIGNMENT_OPERATION
              EXP_OPERATION
                LITERAL_OPERATION
                  NUMBER
                    PsiElement(int)('1')
                PsiElement(**)('**')
                INDEX_OPERATION
                  LITERAL_OPERATION
                    NUMBER
                      PsiElement(int)('1')
                  PsiWhiteSpace(' ')
                  PsiElement([)('[')
                  LITERAL_OPERATION
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement(STRING_CONTENT)('aa')
                      PsiElement(CLOSE_QUOTE)('"')
                  PsiElement(])(']')
              PsiElement(=)('=')
              INDEX_OPERATION
                LITERAL_OPERATION
                  NUMBER
                    PsiElement(int)('2')
                PsiWhiteSpace(' ')
                PsiElement([)('[')
                LITERAL_OPERATION
                  STRING
                    PsiElement(OPEN_QUOTE)('"')
                    PsiElement(STRING_CONTENT)('2')
                    PsiElement(CLOSE_QUOTE)('"')
                PsiElement(])(']')
            PsiElement(=)('=')
            LITERAL_OPERATION
              NUMBER
                PsiElement(int)('3')
        PsiElement())(')')
  PsiElement(\n)('\n')
  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')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('A')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          ASSIGNMENT_OPERATION
            ARRAY_OPERATION
              PsiElement([)('[')
              LITERAL_OPERATION
                STRING
                  PsiElement(OPEN_QUOTE)('"')
                  PsiElement(STRING_CONTENT)('a')
                  PsiElement(CLOSE_QUOTE)('"')
              PsiElement(])(']')
            PsiElement(=)('=')
            LITERAL_OPERATION
              NUMBER
                PsiElement(int)('1')
        PsiElement())(')')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('A')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          ASSIGNMENT_OPERATION
            ASSIGNMENT_OPERATION
              ASSIGNMENT_OPERATION
                ARRAY_OPERATION
                  PsiElement([)('[')
                  LITERAL_OPERATION
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement(STRING_CONTENT)('a')
                      PsiElement(CLOSE_QUOTE)('"')
                  PsiElement(])(']')
                PsiElement(=)('=')
                INDEX_OPERATION
                  LITERAL_OPERATION
                    NUMBER
                      PsiElement(int)('1')
                  PsiWhiteSpace(' ')
                  PsiElement([)('[')
                  LITERAL_OPERATION
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement(STRING_CONTENT)('aa')
                      PsiElement(CLOSE_QUOTE)('"')
                  PsiElement(])(']')
              PsiElement(=)('=')
              INDEX_OPERATION
                LITERAL_OPERATION
                  NUMBER
                    PsiElement(int)('2')
                PsiWhiteSpace(' ')
                PsiElement([)('[')
                LITERAL_OPERATION
                  STRING
                    PsiElement(OPEN_QUOTE)('"')
                    PsiElement(STRING_CONTENT)('2')
                    PsiElement(CLOSE_QUOTE)('"')
                PsiElement(])(']')
            PsiElement(=)('=')
            LITERAL_OPERATION
              NUMBER
                PsiElement(int)('3')
        PsiElement())(')')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    ASSIGNMENT_COMMAND
      LITERAL
        PsiElement(word)('distrs')
      PsiElement(=)('=')
      ASSIGNMENT_LIST
        PsiElement(()('(')
        ARRAY_ASSIGNMENT
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          LITERAL_OPERATION
            PsiElement(word)('jdk-6.45-linux_i586.bin')
            PsiWhiteSpace('     \\n    ')
            PsiElement(word)('jdk-6.45-linux_x64.bin')
            PsiWhiteSpace('      \\n    ')
            PsiElement(word)('jdk-5.0.22-linux_x64.bin')
            PsiWhiteSpace('    \\n    ')
            PsiElement(word)('jdk-5.0.22-linux_i586.bin')
            PsiWhiteSpace('   \\n    ')
            PsiElement(word)('jdk-1.4.2.19-linux_i586.bin')
        PsiWhiteSpace(' \\n')
        PsiElement())(')')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(word)('FILE')
        PsiWhiteSpace(' ')
        PsiElement(in)('in')
        PsiWhiteSpace(' ')
        PsiElement($)('$')
        SHELL_PARAMETER_EXPANSION
          PsiElement({)('{')
          PsiElement(word)('distrs')
          ARRAY_EXPRESSION
            PsiElement([)('[')
            LITERAL_EXPRESSION
              PsiElement(word)('*')
            PsiElement(])(']')
          PsiElement(})('}')
        LIST_TERMINATOR
          PsiElement(\n)('\n')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('wget')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('-nv')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('https://repo.labs.intellij.net/download/oracle/')
            VARIABLE
              PsiElement(var)('$FILE')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('-O')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$FILE')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiComment(Comment)('# A=([1]=2 =2*${var}) // fixme')