SHELL_SCRIPT
  PsiComment(shebang)('#!/bin/bash')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      STRING
        PsiElement(OPEN_QUOTE)('"')
        PsiElement(STRING_CONTENT)('foo: ')
        VARIABLE
          PsiElement(var)('$res')
        PsiElement(CLOSE_QUOTE)('"')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('echo')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('test')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('-a')
      PsiWhiteSpace(' ')
      LITERAL
        PsiElement(word)('foo.txt')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        TEST_COMMAND
          PsiElement(test)('test')
          PsiWhiteSpace(' ')
          LITERAL
            PsiElement(word)('-a')
          PsiWhiteSpace(' ')
          LITERAL
            PsiElement(word)('foo.txt')
        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)('foo')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
    PsiElement(;)(';')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([)('[')
          PsiWhiteSpace(' ')
          EQUALITY_CONDITION
            LOGICAL_BITWISE_CONDITION
              PsiElement(!)('!')
              GENERIC_COMMAND_DIRECTIVE
                LITERAL
                  PsiElement(word)('a')
            PsiWhiteSpace(' ')
            PsiElement(==)('==')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              VARIABLE
                PsiElement(var)('$a')
          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(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
    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
              NUMBER
                PsiElement(int)('1')
            PsiWhiteSpace(' ')
            PsiElement(==)('==')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              NUMBER
                PsiElement(int)('1')
          PsiWhiteSpace(' ')
          PsiElement(])(']')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace(' ')
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('echo')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
    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
              NUMBER
                PsiElement(int)('1')
            PsiWhiteSpace(' ')
            PsiElement(==)('==')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              NUMBER
                PsiElement(int)('1')
          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(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
    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
              STRING
                PsiElement(OPEN_QUOTE)('"')
                PsiElement(STRING_CONTENT)('1')
                PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(==)('==')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              STRING
                PsiElement(OPEN_QUOTE)('"')
                PsiElement(STRING_CONTENT)('1')
                PsiElement(CLOSE_QUOTE)('"')
          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(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
    PsiElement(;)(';')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([)('[')
          PsiWhiteSpace(' ')
          ASSIGNMENT_CONDITION
            LITERAL_CONDITION
              STRING
                PsiElement(OPEN_QUOTE)('"')
                PsiElement(STRING_CONTENT)('foo')
                PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              STRING
                PsiElement(OPEN_QUOTE)('"')
                PsiElement(STRING_CONTENT)('foo')
                PsiElement(CLOSE_QUOTE)('"')
          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(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
    PsiElement(;)(';')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        CONDITIONAL_COMMAND
          PsiElement([)('[')
          PsiWhiteSpace(' ')
          ASSIGNMENT_CONDITION
            LITERAL_CONDITION
              STRING
                PsiElement(OPEN_QUOTE)('"')
                PsiElement(STRING_CONTENT)('foo')
                PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(=)('=')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              STRING
                PsiElement(OPEN_QUOTE)('"')
                PsiElement(STRING_CONTENT)('foo')
                PsiElement(CLOSE_QUOTE)('"')
          PsiWhiteSpace(' ')
          PsiElement(])(']')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        PsiWhiteSpace(' ')
        COMPOUND_LIST
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            NUMBER
              PsiElement(int)('2')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
    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
              STRING
                PsiElement(OPEN_QUOTE)('"')
                VARIABLE
                  PsiElement(var)('$PACKER_BUILD_NAME')
                PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(==)('==')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              STRING
                PsiElement(OPEN_QUOTE)('"')
                PsiElement(STRING_CONTENT)('virtualbox')
                PsiElement(CLOSE_QUOTE)('"')
          PsiWhiteSpace(' ')
          PsiElement(])(']')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('  ')
          ASSIGNMENT_COMMAND
            LITERAL
              PsiElement(word)('SERVER_URL')
            PsiElement(=)('=')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement($)('$')
              SHELL_PARAMETER_EXPANSION
                PsiElement({)('{')
                PsiElement(word)('TEAMCITY_SERVER')
                PsiElement(})('}')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(\n)('\n')
      ELSE_CLAUSE
        PsiElement(else)('else')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('  ')
          ASSIGNMENT_COMMAND
            LITERAL
              PsiElement(word)('SERVER_URL')
            PsiElement(=)('=')
          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
              NUMBER
                PsiElement(int)('1')
            PsiWhiteSpace(' ')
            PsiElement(==)('==')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              NUMBER
                PsiElement(int)('1')
          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(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
      ELSE_CLAUSE
        PsiElement(else)('else')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            NUMBER
              PsiElement(int)('2')
          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
              STRING
                PsiElement(OPEN_QUOTE)('"')
                VARIABLE
                  PsiElement(var)('$PACKER_BUILD_NAME')
                PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(==)('==')
            PsiWhiteSpace(' ')
            LITERAL_CONDITION
              STRING
                PsiElement(OPEN_QUOTE)('"')
                PsiElement(STRING_CONTENT)('virtualbox')
                PsiElement(CLOSE_QUOTE)('"')
          PsiWhiteSpace(' ')
          PsiElement(])(']')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiComment(Comment)('#  SERVER_URL="${TEAMCITY_SERVER}"')
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            NUMBER
              PsiElement(int)('1')
          PsiElement(\n)('\n')
      ELSE_CLAUSE
        PsiElement(else)('else')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('  ')
          ASSIGNMENT_COMMAND
            LITERAL
              PsiElement(word)('SERVER_URL')
            PsiElement(=)('=')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('cat')
      PsiWhiteSpace(' ')
      VARIABLE
        PsiElement(var)('$0')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        REDIRECTION
          PsiElement(>)('>')
          PsiWhiteSpace(' ')
          PsiElement(word)('/dev/null')
    PsiWhiteSpace(' ')
    PsiElement(||)('||')
    PsiWhiteSpace(' ')
    SIMPLE_COMMAND
      GENERIC_COMMAND_DIRECTIVE
        LITERAL
          PsiElement(word)('cat')
      PsiWhiteSpace(' ')
      VARIABLE
        PsiElement(var)('$0')
      PsiWhiteSpace(' ')
      SIMPLE_COMMAND_ELEMENT
        REDIRECTION
          PsiElement(>)('>')
          PsiWhiteSpace(' ')
          PsiElement(word)('/dev/null')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      EQUALITY_CONDITION
        LITERAL_CONDITION
          NUMBER
            PsiElement(int)('1')
        PsiWhiteSpace(' ')
        PsiElement(==)('==')
        PsiWhiteSpace(' ')
        LITERAL_CONDITION
          NUMBER
            PsiElement(int)('1')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([[)('[[')
      PsiWhiteSpace(' ')
      EQUALITY_CONDITION
        LITERAL_CONDITION
          NUMBER
            PsiElement(int)('1')
        PsiWhiteSpace(' ')
        PsiElement(==)('==')
        PsiWhiteSpace(' ')
        LITERAL_CONDITION
          PsiElement(word)('1+1')
      PsiWhiteSpace(' ')
      PsiElement(]])(']]')
    PsiWhiteSpace(' ')
    PsiElement(|)('|')
    PsiWhiteSpace(' ')
    GENERIC_COMMAND_DIRECTIVE
      LITERAL
        PsiElement(word)('cat')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([[)('[[')
      PsiWhiteSpace(' ')
      EQUALITY_CONDITION
        LITERAL_CONDITION
          NUMBER
            PsiElement(int)('123')
        PsiWhiteSpace(' ')
        PsiElement(==)('==')
        PsiWhiteSpace(' ')
        LITERAL_CONDITION
          NUMBER
            PsiElement(int)('123')
      PsiWhiteSpace(' ')
      PsiElement(]])(']]')
    PsiWhiteSpace(' ')
    PsiElement(|)('|')
    PsiWhiteSpace(' ')
    GENERIC_COMMAND_DIRECTIVE
      LITERAL
        PsiElement(word)('echo')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    IF_COMMAND
      PsiElement(if)('if')
      PsiWhiteSpace(' ')
      COMPOUND_LIST
        PIPELINE_COMMAND_LIST
          CONDITIONAL_COMMAND
            PsiElement([)('[')
            PsiWhiteSpace(' ')
            PsiElement(])(']')
          PsiWhiteSpace(' ')
          PsiElement(||)('||')
          PsiWhiteSpace(' ')
          CONDITIONAL_COMMAND
            PsiElement([)('[')
            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(' ')
            NUMBER
              PsiElement(int)('1')
          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
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('cat')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$0')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND_ELEMENT
              REDIRECTION
                PsiElement(>)('>')
                PsiWhiteSpace(' ')
                PsiElement(word)('/dev/null')
          PsiWhiteSpace(' ')
          PsiElement(||)('||')
          PsiWhiteSpace(' ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('cat')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$0')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND_ELEMENT
              REDIRECTION
                PsiElement(>)('>')
                PsiWhiteSpace(' ')
                PsiElement(word)('/dev/null')
        PsiElement(\n)('\n')
        PsiWhiteSpace('   ')
        SIMPLE_COMMAND
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('echo')
          PsiWhiteSpace(' ')
          NUMBER
            PsiElement(int)('1')
        PsiWhiteSpace(' ')
        PsiElement(;)(';')
      PsiWhiteSpace(' ')
      THEN_CLAUSE
        PsiElement(then)('then')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace(' ')
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('echo')
          PsiElement(\n)('\n')
      PsiElement(fi)('fi')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      EQUALITY_CONDITION
        LOGICAL_BITWISE_CONDITION
          PsiElement(!)('!')
          PsiWhiteSpace(' ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              PsiElement(!)('!')
            PsiWhiteSpace(' ')
            SIMPLE_COMMAND_ELEMENT
              PsiElement(!)('!')
            PsiWhiteSpace('  ')
            NUMBER
              PsiElement(int)('1')
        PsiWhiteSpace(' ')
        PsiElement(==)('==')
        PsiWhiteSpace(' ')
        LITERAL_CONDITION
          NUMBER
            PsiElement(int)('1')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      LOGICAL_BITWISE_CONDITION
        PsiElement(!)('!')
        PsiWhiteSpace(' ')
        SIMPLE_COMMAND
          GENERIC_COMMAND_DIRECTIVE
            LITERAL
              PsiElement(word)('-d')
          PsiWhiteSpace(' ')
          STRING
            PsiElement(OPEN_QUOTE)('"')
            VARIABLE
              PsiElement(var)('$1')
            PsiElement(CLOSE_QUOTE)('"')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([[)('[[')
      PsiWhiteSpace(' ')
      ASSIGNMENT_CONDITION
        LITERAL_CONDITION
          STRING
            PsiElement(OPEN_QUOTE)('"')
            VARIABLE
              PsiElement(var)('$key')
            PsiElement(CLOSE_QUOTE)('"')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        LITERAL_CONDITION
          STRING
            PsiElement(OPEN_QUOTE)('"')
            PsiElement(CLOSE_QUOTE)('"')
      PsiWhiteSpace(' ')
      PsiElement(])(']')
      PsiErrorElement:Expected similar close bracket
        <empty list>
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([)('[')
      PsiWhiteSpace(' ')
      ASSIGNMENT_CONDITION
        LITERAL_CONDITION
          STRING
            PsiElement(OPEN_QUOTE)('"')
            VARIABLE
              PsiElement(var)('$key')
            PsiElement(CLOSE_QUOTE)('"')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        LITERAL_CONDITION
          STRING
            PsiElement(OPEN_QUOTE)('"')
            PsiElement(CLOSE_QUOTE)('"')
      PsiWhiteSpace(' ')
      PsiElement(]])(']]')
      PsiErrorElement:Expected similar close bracket
        <empty list>
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([[)('[[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement($)('$')
        SHELL_PARAMETER_EXPANSION
          PsiElement({)('{')
          PsiElement(word)('osvers')
          PsiElement(})('}')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement(word)('-ge')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        NUMBER
          PsiElement(int)('7')
      PsiWhiteSpace(' ')
      PsiElement(]])(']]')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([[)('[[')
      PsiWhiteSpace(' ')
      PARENTHESES_CONDITION
        PsiElement(()('(')
        LITERAL_CONDITION
          PsiElement(word)('pwd')
        PsiElement())(')')
      PsiWhiteSpace(' ')
      PsiElement(]])(']]')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    CONDITIONAL_COMMAND
      PsiElement([[)('[[')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement($)('$')
        SHELL_PARAMETER_EXPANSION
          PsiElement({)('{')
          PsiElement(word)('sss')
          PsiElement(})('}')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        PsiElement(word)('-ge')
      PsiWhiteSpace(' ')
      LITERAL_CONDITION
        NUMBER
          PsiElement(int)('7')
      PsiWhiteSpace(' ')
      PsiElement(]])(']]')
  PsiElement(\n)('\n')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FUNCTION_DEFINITION
      PsiElement(function)('function')
      PsiWhiteSpace(' ')
      PsiElement(word)('test')
      PsiElement(()('(')
      PsiElement())(')')
      PsiWhiteSpace(' ')
      BLOCK
        PsiElement({)('{')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('my')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('custom')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('test')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('function')
            PsiWhiteSpace(' ')
            VARIABLE
              PsiElement(var)('$3')
          PsiElement(\n)('\n')
        PsiElement(})('}')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    TEST_COMMAND
      PsiElement(test)('test')