SHELL_SCRIPT
  PsiComment(shebang)('#!/bin/bash')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(word)('i')
        PsiWhiteSpace(' ')
        PsiElement(in)('in')
        PsiWhiteSpace(' ')
        NUMBER
          PsiElement(int)('1')
        PsiWhiteSpace(' ')
        NUMBER
          PsiElement(int)('2')
        PsiWhiteSpace(' ')
        NUMBER
          PsiElement(int)('3')
        PsiWhiteSpace(' ')
        NUMBER
          PsiElement(int)('4')
        PsiWhiteSpace(' ')
        NUMBER
          PsiElement(int)('5')
        LIST_TERMINATOR
          PsiElement(\n)('\n')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('   ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('Welcome ')
              VARIABLE
                PsiElement(var)('$i')
              PsiElement(STRING_CONTENT)(' times')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        ASSIGNMENT_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('c')
          PsiElement(=)('=')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        COMPARISON_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('c')
          PsiElement(<=)('<=')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('5')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        POST_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('c')
          PsiElement(++)('++')
        PsiWhiteSpace(' ')
        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)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('Welcome ')
              VARIABLE
                PsiElement(var)('$c')
              PsiElement(STRING_CONTENT)(' times')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(word)('file')
        PsiWhiteSpace(' ')
        PsiElement(in)('in')
        PsiWhiteSpace(' ')
        PsiElement($)('$')
        SUBSHELL_COMMAND
          PsiElement(()('(')
          COMPOUND_LIST
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('ls')
          PsiElement())(')')
        LIST_TERMINATOR
          PsiElement(\n)('\n')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('\t')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('du')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$file')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        ASSIGNMENT_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('val')
          PsiElement(=)('=')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        COMPARISON_EXPRESSION
          LITERAL_EXPRESSION
            VARIABLE
              PsiElement(var)('$val')
          PsiWhiteSpace(' ')
          PsiElement(<)('<')
          PsiWhiteSpace(' ')
          LITERAL_EXPRESSION
            VARIABLE
              PsiElement(var)('$len')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        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)('echo')
            PsiWhiteSpace(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
        PsiWhiteSpace('  ')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
        LIST_TERMINATOR
          PsiElement(\n)('\n')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('      ')
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('break')
          PsiElement(;)(';')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
        PsiWhiteSpace('  ')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
        LIST_TERMINATOR
          PsiElement(\n)('\n')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
        PsiErrorElement:<pipeline command> or '\n' expected, got 'done'
          <empty list>
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
        PsiWhiteSpace('  ')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
        LIST_TERMINATOR
          PsiElement(\n)('\n')
      BLOCK
        PsiElement({)('{')
        COMPOUND_LIST
          PsiElement(\n)('\n')
        PsiErrorElement:<pipeline command> or '\n' expected, got '}'
          <empty list>
        PsiElement(})('}')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace('  ')
        ASSIGNMENT_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(=)('=')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
        PsiWhiteSpace('    ')
        PsiElement(;)(';')
        PsiElement(\n)('\n')
        PsiWhiteSpace('    ')
        COMPARISON_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiWhiteSpace(' ')
          PsiElement(<=)('<=')
          PsiWhiteSpace(' ')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('10')
        PsiElement(;)(';')
        PsiElement(\n)('\n')
        PsiWhiteSpace('    ')
        POST_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(++)('++')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
        PsiWhiteSpace(' ')
        LIST_TERMINATOR
          PsiElement(;)(';')
      PsiWhiteSpace(' ')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('Dummy text')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(word)('name')
        PsiWhiteSpace(' ')
        PsiElement(in)('in')
        PsiWhiteSpace(' ')
        PsiElement(word)('idea-ultimate')
        PsiWhiteSpace(' ')
        PsiElement(word)('idea-community')
        PsiWhiteSpace(' ')
        PsiElement(word)('idea-contrib')
        PsiWhiteSpace(' ')
        PsiElement(word)('idea-community-android')
        PsiWhiteSpace(' ')
        PsiElement(word)('idea-community-android-tools')
        PsiWhiteSpace(' ')
        PsiElement(word)('idea-cidr')
        PsiWhiteSpace(' ')
        PsiElement(word)('idea-appcode-testdata')
        PsiWhiteSpace(' ')
        PsiElement(word)('idea-gemsData')
        LIST_TERMINATOR
          PsiElement(;)(';')
      PsiWhiteSpace(' ')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('\t')
          ASSIGNMENT_COMMAND
            LITERAL
              PsiElement(word)('dir')
            PsiElement(=)('=')
            VARIABLE
              PsiElement(var)('$name')
            LITERAL
              PsiElement(word)('.git')
          PsiElement(\n)('\n')
          PsiWhiteSpace('\t')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              VARIABLE
                PsiElement(var)('$name')
              PsiElement(STRING_CONTENT)('.git = ')
              VARIABLE
                PsiElement(var)('$name')
              PsiElement(STRING_CONTENT)('.git')
              PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND_ELEMENT
              REDIRECTION
                PsiElement(>>)('>>')
                PsiWhiteSpace(' ')
                VARIABLE
                  PsiElement(var)('$GIT_DIR')
                PsiElement(word)('/map')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('//')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('todo:')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('fix')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('me')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(word)('i')
        PsiWhiteSpace(' ')
        PsiElement(in)('in')
        PsiWhiteSpace(' ')
        BRACE_EXPANSION
          PsiElement({)('{')
          PsiElement(word)('1..5')
          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)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('Welcome ')
              VARIABLE
                PsiElement(var)('$i')
              PsiElement(STRING_CONTENT)(' times')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('Bash version ')
        PsiElement($)('$')
        SHELL_PARAMETER_EXPANSION
          PsiElement({)('{')
          PsiElement(word)('BASH_VERSION')
          PsiElement(})('}')
        PsiElement(STRING_CONTENT)('...')
        PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(word)('i')
        PsiWhiteSpace(' ')
        PsiElement(in)('in')
        PsiWhiteSpace(' ')
        BRACE_EXPANSION
          PsiElement({)('{')
          PsiElement(word)('0..10..2')
          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)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('Welcome ')
              VARIABLE
                PsiElement(var)('$i')
              PsiElement(STRING_CONTENT)(' times')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(word)('i')
        PsiWhiteSpace(' ')
        PsiElement(in)('in')
        PsiWhiteSpace(' ')
        PsiElement($)('$')
        SUBSHELL_COMMAND
          PsiElement(()('(')
          COMPOUND_LIST
            SIMPLE_COMMAND
              GENERIC_COMMAND_DIRECTIVE
                LITERAL
                  PsiElement(word)('seq')
              PsiWhiteSpace(' ')
              NUMBER
                PsiElement(int)('1')
              PsiWhiteSpace(' ')
              NUMBER
                PsiElement(int)('2')
              PsiWhiteSpace(' ')
              NUMBER
                PsiElement(int)('20')
          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)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('Welcome ')
              VARIABLE
                PsiElement(var)('$i')
              PsiElement(STRING_CONTENT)(' times')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        ASSIGNMENT_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(=)('=')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('0')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        COMPARISON_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(<)('<')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        POST_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(++)('++')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
      PsiWhiteSpace('    ')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('     ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        ASSIGNMENT_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(=)('=')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('0')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        COMPARISON_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(<)('<')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('1')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        POST_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(++)('++')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
        LIST_TERMINATOR
          PsiElement(\n)('\n')
        PsiElement(\n)('\n')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('     ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
        PsiElement(done)('done')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        ASSIGNMENT_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(=)('=')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('0')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        COMPARISON_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(<)('<')
          LITERAL_EXPRESSION
            VARIABLE
              PsiElement(var)('$TOTAL_SOFTWARE_INDEXS')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        POST_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('i')
          PsiElement(++)('++')
        PsiElement())(')')
        PsiElement())(')')
      PsiWhiteSpace('     ')
      DO_BLOCK
        PsiElement(do)('do')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('     ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('-e')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('aSOFTWARE_INSTALL_STATE[')
              VARIABLE
                PsiElement(var)('$i')
              PsiElement(STRING_CONTENT)(']=0')
              PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND_ELEMENT
              REDIRECTION
                PsiElement(>>)('>>')
                PsiWhiteSpace(' ')
                STRING
                  PsiElement(OPEN_QUOTE)('"')
                  VARIABLE
                    PsiElement(var)('$fp_target')
                  PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
        PsiElement(done)('done')