SHELL_SCRIPT
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([[)('[[')
          PsiWhiteSpace(' ')
          LITERAL_CONDITION
            PsiElement(word)('-z')
          PsiWhiteSpace(' ')
          LITERAL_CONDITION
            VARIABLE
              PsiElement(var)('$a')
          PsiWhiteSpace(' ')
          PsiElement(]])(']]')
        PsiElement(\n)('\n')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('  ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('a')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([[)('[[')
          PsiWhiteSpace(' ')
          LITERAL_CONDITION
            PsiElement(word)('-z')
          PsiWhiteSpace(' ')
          LITERAL_CONDITION
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('a')
              PsiElement(CLOSE_QUOTE)('"')
          PsiWhiteSpace(' ')
          PsiElement(]])(']]')
        PsiElement(\n)('\n')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('  ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('a')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')