SHELL_SCRIPT
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        GENERIC_COMMAND_DIRECTIVE
          LITERAL
            PsiElement(word)('a')
        PsiElement(\n)('\n')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('b')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('c')
          PsiElement(\n)('\n')
      PsiWhiteSpace(' ')
      ELIF_CLAUSE
        PsiElement(elif)('elif')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('d')
          PsiElement(\n)('\n')
        PsiWhiteSpace(' ')
        THEN_CLAUSE
          PsiElement(then)('then')
          PsiWhiteSpace(' ')
          COMPOUND_LIST
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('e')
            PsiWhiteSpace(' ')
            PsiElement(&)('&')
            PsiElement(\n)('\n')
      PsiWhiteSpace(' ')
      ELIF_CLAUSE
        PsiElement(elif)('elif')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('a')
          PsiElement(\n)('\n')
        PsiWhiteSpace(' ')
        THEN_CLAUSE
          PsiElement(then)('then')
          PsiWhiteSpace(' ')
          COMPOUND_LIST
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('b')
            PsiElement(\n)('\n')
      PsiWhiteSpace(' ')
      ELSE_CLAUSE
        PsiElement(else)('else')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('f')
          PsiElement(\n)('\n')
      PsiWhiteSpace('  ')
      PsiElement(fi)('fi')