SHELL_SCRIPT
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        GENERIC_COMMAND_DIRECTIVE
          LITERAL
            PsiElement(word)('a')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          SIMPLE_COMMAND
            ASSIGNMENT_COMMAND
              LITERAL
                PsiElement(word)('PIDDIR')
              PsiElement(=)('=')
              LITERAL
                PsiElement(word)('a')
              PsiElement($)('$')
              SUBSHELL_COMMAND
                PsiElement(()('(')
                COMPOUND_LIST
                  GENERIC_COMMAND_DIRECTIVE
                    LITERAL
                      PsiElement(word)('a')
                PsiElement())(')')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('a')
          PsiElement(;)(';')
      PsiWhiteSpace(' ')
      PsiElement(fi)('fi')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CASE_COMMAND
      PsiElement(case)('case')
      PsiWhiteSpace(' ')
      PsiElement($)('$')
      SUBSHELL_COMMAND
        PsiElement(()('(')
        COMPOUND_LIST
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('a')
        PsiElement())(')')
      PsiWhiteSpace(' ')
      PsiElement(in)('in')
      PsiWhiteSpace(' ')
      CASE_CLAUSE
        PATTERN
          PsiElement(word)('a')
        PsiElement())(')')
      PsiWhiteSpace(' ')
      PsiElement(;;)(';;')
      PsiWhiteSpace(' ')
      PsiElement(esac)('esac')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        GENERIC_COMMAND_DIRECTIVE
          LITERAL
            PsiElement(word)('a')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('   ')
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('b')
          PsiWhiteSpace(' ')
          PsiComment(Comment)('#end')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')