SHELL_SCRIPT
  COMMANDS_LIST
    CASE_COMMAND
      PsiElement(case)('case')
      PsiWhiteSpace(' ')
      PsiElement(word)('a')
      PsiWhiteSpace(' ')
      PsiElement(in)('in')
      CASE_CLAUSE
        PsiElement(\n)('\n')
        PsiWhiteSpace('  ')
        PATTERN
          PsiElement(word)('a')
        PsiElement())(')')
        PsiElement(\n)('\n')
        PsiWhiteSpace('    ')
        COMPOUND_LIST
          FUNCTION_DEFINITION
            PsiElement(word)('startup')
            PsiElement(()('(')
            PsiElement())(')')
            PsiWhiteSpace(' ')
            BLOCK
              PsiElement({)('{')
              COMPOUND_LIST
                PsiElement(\n)('\n')
                PsiWhiteSpace('        ')
                PIPELINE_COMMAND_LIST
                  CONDITIONAL_COMMAND
                    PsiElement([)('[')
                    PsiWhiteSpace(' ')
                    LITERAL_CONDITION
                      PsiElement(word)('-z')
                    PsiWhiteSpace(' ')
                    LITERAL_CONDITION
                      STRING
                        PsiElement(OPEN_QUOTE)('"')
                        PsiElement(CLOSE_QUOTE)('"')
                    PsiWhiteSpace(' ')
                    PsiElement(])(']')
                  PsiWhiteSpace(' ')
                  PsiElement(&&)('&&')
                  PsiWhiteSpace(' ')
                  GENERIC_COMMAND_DIRECTIVE
                    LITERAL
                      PsiElement(word)('echo')
                PsiElement(;)(';')
                PsiElement(\n)('\n')
              PsiWhiteSpace('    ')
              PsiElement(})('}')
      PsiWhiteSpace(' ')
      PsiElement(;;)(';;')
      PsiElement(\n)('\n')
      PsiElement(esac)('esac')