SHELL_SCRIPT
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement(word)('-z')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement(word)('a')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement(word)('a')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        VARIABLE
          PsiElement(var)('$a')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      ASSIGNMENT_CONDITION
        LITERAL_CONDITION
          PsiElement($)('$')
          SUBSHELL_COMMAND
            PsiElement(()('(')
            COMPOUND_LIST
              GENERIC_COMMAND_DIRECTIVE
                LITERAL
                  PsiElement(word)('a')
            PsiElement())(')')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        LITERAL_CONDITION
          PsiElement(word)('a')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        COMMAND_SUBSTITUTION_COMMAND
          PsiElement(OPEN_BACKQUOTE)('`')
          COMPOUND_LIST
            SIMPLE_COMMAND
              GENERIC_COMMAND_DIRECTIVE
                LITERAL
                  PsiElement(word)('echo')
              PsiWhiteSpace(' ')
              LITERAL
                PsiElement(word)('a')
          PsiElement(CLOSE_BACKQUOTE)('`')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement(word)('\$')
      LITERAL_CONDITION
        BRACE_EXPANSION
          PsiElement({)('{')
          PsiElement(word)('a')
          PsiElement(})('}')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement(word)('a')
      PsiWhiteSpace('  ')
      PsiElement(])(']')
  PsiWhiteSpace(' ')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement(word)('a')
      PsiWhiteSpace('  ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([[)('[[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement($)('$')
        SUBSHELL_COMMAND
          PsiElement(()('(')
          COMPOUND_LIST
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('a')
          PsiElement())(')')
      PsiWhiteSpace('  ')
      PsiElement(]])(']]')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([[)('[[')
          PsiWhiteSpace(' ')
          EQUALITY_CONDITION
            LITERAL_CONDITION
              VARIABLE
                PsiElement(var)('$str')
            PsiWhiteSpace(' ')
            PsiElement(==)('==')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              PsiElement(word)('*condition*')
          PsiWhiteSpace(' ')
          PsiElement(]])(']]')
        PsiElement(\n)('\n')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('\t')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('String ')
              PsiElement(CLOSE_QUOTE)('"')
            VARIABLE
              PsiElement(var)('$str')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('has')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('the')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('word')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('\"condition\"')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([)('[')
          PsiWhiteSpace(' ')
          EQUALITY_CONDITION
            LITERAL_CONDITION
              COMMAND_SUBSTITUTION_COMMAND
                PsiElement(OPEN_BACKQUOTE)('`')
                COMPOUND_LIST
                  GENERIC_COMMAND_DIRECTIVE
                    LITERAL
                      PsiElement(word)('whoami')
                PsiElement(CLOSE_BACKQUOTE)('`')
            PsiWhiteSpace(' ')
            PsiElement(!=)('!=')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              STRING
                PsiElement(RAW_STRING)(''root'')
          PsiWhiteSpace(' ')
          PsiElement(])(']')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('\t')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('Executing the installer script')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([)('[')
          PsiWhiteSpace(' ')
          LITERAL_CONDITION
            VARIABLE
              PsiElement(var)('$?')
          PsiWhiteSpace(' ')
          LITERAL_CONDITION
            PsiElement(word)('-eq')
          PsiWhiteSpace(' ')
          LITERAL_CONDITION
            NUMBER
              PsiElement(int)('0')
          PsiWhiteSpace(' ')
          PsiElement(])(']')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('\t')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('Machine is giving ping response')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([)('[')
          PsiWhiteSpace(' ')
          LOGICAL_BITWISE_CONDITION
            PsiElement(!)('!')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND
              GENERIC_COMMAND_DIRECTIVE
                LITERAL
                  PsiElement(word)('-z')
              PsiWhiteSpace(' ')
              VARIABLE
                PsiElement(var)('$ip')
          PsiWhiteSpace(' ')
          PsiElement(])(']')
        PsiElement(\n)('\n')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('\t')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('IP Address is empty')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        PIPELINE_COMMAND_LIST
          CONDITIONAL_COMMAND
            PsiElement([)('[')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              VARIABLE
                PsiElement(var)('$first')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              PsiElement(word)('-eq')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              NUMBER
                PsiElement(int)('0')
            PsiWhiteSpace(' ')
            PsiElement(])(']')
          PsiWhiteSpace(' ')
          PsiElement(&&)('&&')
          PsiWhiteSpace(' ')
          CONDITIONAL_COMMAND
            PsiElement([)('[')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              VARIABLE
                PsiElement(var)('$second')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              PsiElement(word)('-eq')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              NUMBER
                PsiElement(int)('0')
            PsiWhiteSpace(' ')
            PsiElement(])(']')
        PsiElement(\n)('\n')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('\t')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              VARIABLE
                PsiElement(var)('$first')
              PsiElement(STRING_CONTENT)(' is lesser than ')
              VARIABLE
                PsiElement(var)('$second')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([[)('[[')
          PsiWhiteSpace(' ')
          ASSIGNMENT_CONDITION
            ASSIGNMENT_CONDITION
              LITERAL_CONDITION
                STRING
                  PsiElement(OPEN_QUOTE)('"')
                  VARIABLE
                    PsiElement(var)('$conf_branch')
                  PsiElement(CLOSE_QUOTE)('"')
              PsiWhiteSpace(' ')
              PsiElement(=)('=')
              PsiWhiteSpace(' ')
              LOGICAL_OR_CONDITION
                LITERAL_CONDITION
                  PsiElement(word)('r/*/*')
                PsiWhiteSpace(' ')
                PsiElement(||)('||')
                PsiWhiteSpace(' ')
                LOGICAL_AND_CONDITION
                  EQUALITY_CONDITION
                    LITERAL_CONDITION
                      STRING
                        PsiElement(OPEN_QUOTE)('"')
                        VARIABLE
                          PsiElement(var)('$conf_branch')
                        PsiElement(CLOSE_QUOTE)('"')
                    PsiWhiteSpace(' ')
                    PsiElement(!=)('!=')
                    PsiWhiteSpace(' ')
                    LITERAL_CONDITION
                      PsiElement(word)('r/*')
                  PsiWhiteSpace(' ')
                  PsiElement(&&)('&&')
                  PsiWhiteSpace(' ')
                  LITERAL_CONDITION
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      VARIABLE
                        PsiElement(var)('$conf_branch')
                      PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              PsiElement(word)('*/*')
          PsiWhiteSpace(' ')
          PsiElement(]])(']]')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('  ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('Test output')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')