SHELL_SCRIPT
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        COMPARISON_EXPRESSION
          MUL_EXPRESSION
            LITERAL_EXPRESSION
              PsiElement(word)('a')
            PsiWhiteSpace(' ')
            PsiElement(*)('*')
            LITERAL_EXPRESSION
              NUMBER
                PsiElement(int)('2')
          PsiWhiteSpace(' ')
          PsiElement(<)('<')
          PsiWhiteSpace(' ')
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('4')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        COMPARISON_EXPRESSION
          LITERAL_EXPRESSION
            NUMBER
              PsiElement(int)('3')
          PsiWhiteSpace(' ')
          PsiElement(>=)('>=')
          PsiWhiteSpace(' ')
          LITERAL_EXPRESSION
            PsiElement(word)('a')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        ASSIGNMENT_EXPRESSION
          LITERAL_EXPRESSION
            PsiElement(word)('a')
          PsiWhiteSpace(' ')
          PsiElement(=)('=')
          PsiWhiteSpace(' ')
          MUL_EXPRESSION
            LITERAL_EXPRESSION
              PsiElement(word)('a')
            PsiElement(*)('*')
            LITERAL_EXPRESSION
              NUMBER
                PsiElement(int)('2')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
        PsiWhiteSpace(' ')
        LIST_TERMINATOR
          PsiElement(;)(';')
      PsiWhiteSpace(' ')
      DO_BLOCK
        PsiElement(do)('do')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('hey')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$a')
          PsiElement(;)(';')
        PsiWhiteSpace(' ')
        PsiElement(done)('done')
    PsiElement(;)(';')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
        PsiWhiteSpace(' ')
        LIST_TERMINATOR
          PsiElement(;)(';')
      PsiWhiteSpace(' ')
      DO_BLOCK
        PsiElement(do)('do')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('hey')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$a')
          PsiElement(;)(';')
        PsiWhiteSpace(' ')
        PsiElement(done)('done')
    PsiElement(;)(';')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FOR_COMMAND
      PsiElement(for)('for')
      PsiWhiteSpace(' ')
      FOR_CLAUSE
        PsiElement(()('(')
        PsiElement(()('(')
        PsiWhiteSpace(' ')
        LITERAL_EXPRESSION
          PsiElement(word)('a')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        LITERAL_EXPRESSION
          PsiElement(word)('b')
        PsiElement(;)(';')
        PsiWhiteSpace(' ')
        LITERAL_EXPRESSION
          PsiElement(word)('c')
        PsiWhiteSpace(' ')
        PsiElement())(')')
        PsiElement())(')')
        PsiWhiteSpace(' ')
        LIST_TERMINATOR
          PsiElement(;)(';')
      PsiWhiteSpace(' ')
      DO_BLOCK
        PsiElement(do)('do')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('hey')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$a')
          PsiElement(;)(';')
        PsiWhiteSpace(' ')
        PsiElement(done)('done')
    PsiElement(;)(';')