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')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('  ')
          COMMAND
            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('      ')
                  SIMPLE_COMMAND
                    GENERIC_COMMAND_DIRECTIVE
                      LITERAL
                        PsiElement(word)('echo')
                    PsiWhiteSpace(' ')
                    NUMBER
                      PsiElement(int)('1')
                  PsiElement(\n)('\n')
              PsiWhiteSpace('  ')
              ELSE_CLAUSE
                PsiElement(else)('else')
                COMPOUND_LIST
                  PsiElement(\n)('\n')
                  PsiWhiteSpace('      ')
                  SIMPLE_COMMAND
                    GENERIC_COMMAND_DIRECTIVE
                      LITERAL
                        PsiElement(word)('echo')
                    PsiWhiteSpace(' ')
                    NUMBER
                      PsiElement(int)('0')
                  PsiElement(\n)('\n')
              PsiWhiteSpace('  ')
              PsiElement(fi)('fi')
            PsiWhiteSpace(' ')
            REDIRECTION
              PsiElement(>)('>')
              PsiWhiteSpace(' ')
              PsiElement(word)('a')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')