SHELL_SCRIPT
  COMMANDS_LIST
    GENERIC_COMMAND_DIRECTIVE
      LITERAL
        PsiElement(word)('a')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    WHILE_COMMAND
      PsiElement(while)('while')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        GENERIC_COMMAND_DIRECTIVE
          LITERAL
            PsiElement(word)('a')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      DO_BLOCK
        PsiElement(do)('do')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('b')
          PsiElement(;)(';')
        PsiWhiteSpace(' ')
        PsiElement(done)('done')
    PsiElement(;)(';')