SHELL_SCRIPT
  PsiComment(shebang)('#!/bin/bash')
  PsiElement(\n)('\n')
  COMMANDS_LIST
    FUNCTION_DEFINITION
      PsiElement(word)('find_decompressor')
      PsiElement(()('(')
      PsiElement())(')')
      PsiWhiteSpace(' ')
      BLOCK
        PsiElement({)('{')
        COMPOUND_LIST
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('set')
            PsiWhiteSpace(' ')
            LITERAL
              PsiElement(word)('+x')
          PsiElement(;)(';')
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)(' fd: \$FNAME=')
              PsiElement($)('$')
              SHELL_PARAMETER_EXPANSION
                PsiElement({)('{')
                PsiElement(word)('FNAME')
                PsiElement(})('}')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(;)(';')
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          CASE_COMMAND
            PsiElement(case)('case')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              VARIABLE
                PsiElement(var)('$FNAME')
              PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(in)('in')
            CASE_CLAUSE
              PsiElement(\n)('\n')
              PsiWhiteSpace('        ')
              PATTERN
                PsiElement(word)('*.+(z|Z|gz)')
              PsiElement())(')')
              PsiWhiteSpace('    ')
              COMPOUND_LIST
                PIPELINE_COMMAND_LIST
                  SIMPLE_COMMAND
                    GENERIC_COMMAND_DIRECTIVE
                      LITERAL
                        PsiElement(word)('echo')
                    PsiWhiteSpace(' ')
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement(STRING_CONTENT)('match .gz')
                      PsiElement(CLOSE_QUOTE)('"')
                  PsiElement(;)(';')
                  PsiWhiteSpace(' ')
                  ASSIGNMENT_COMMAND
                    LITERAL
                      PsiElement(word)('FNAME')
                    PsiElement(=)('=')
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement($)('$')
                      SHELL_PARAMETER_EXPANSION
                        PsiElement({)('{')
                        PsiElement(word)('FNAME')
                        PsiElement(param_separator)(':')
                        PsiElement(word)('%.')
                        PsiElement(param_separator)('+')
                        PsiElement(word)('(z|Z|gz)')
                        PsiElement(})('}')
                      PsiElement(CLOSE_QUOTE)('"')
                  PsiElement(;)(';')
                  PsiWhiteSpace(' ')
                  SIMPLE_COMMAND
                    GENERIC_COMMAND_DIRECTIVE
                      LITERAL
                        PsiElement(word)('echo')
                    PsiWhiteSpace(' ')
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement(STRING_CONTENT)('after fname')
                      PsiElement(CLOSE_QUOTE)('"')
                  PsiElement(;)(';')
                  PsiWhiteSpace(' ')
                  ASSIGNMENT_COMMAND
                    LITERAL
                      PsiElement(word)('DECOMPRESSOR')
                    PsiElement(=)('=')
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement(STRING_CONTENT)('gzip -dc')
                      PsiElement(CLOSE_QUOTE)('"')
                  PsiElement(;)(';')
                  PsiWhiteSpace(' ')
                  SIMPLE_COMMAND
                    GENERIC_COMMAND_DIRECTIVE
                      LITERAL
                        PsiElement(word)('echo')
                    PsiWhiteSpace(' ')
                    STRING
                      PsiElement(OPEN_QUOTE)('"')
                      PsiElement(STRING_CONTENT)('after decompresor')
                      PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(;;)(';;')
            CASE_CLAUSE
              PsiElement(\n)('\n')
              PsiWhiteSpace('        ')
              PATTERN
                PsiElement(word)('*.bz2')
              PsiElement())(')')
              PsiWhiteSpace('          ')
              COMPOUND_LIST
                ASSIGNMENT_COMMAND
                  LITERAL
                    PsiElement(word)('DECOMPRESSOR')
                  PsiElement(=)('=')
                  STRING
                    PsiElement(OPEN_QUOTE)('"')
                    PsiElement(STRING_CONTENT)('bzip2 -dc')
                    PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(;;)(';;')
            CASE_CLAUSE
              PsiElement(\n)('\n')
              PsiWhiteSpace('        ')
              PATTERN
                PsiElement(word)('*.xz')
                PsiElement(|)('|')
                PsiElement(word)('*.lzma')
              PsiElement())(')')
              PsiWhiteSpace('    ')
              COMPOUND_LIST
                ASSIGNMENT_COMMAND
                  LITERAL
                    PsiElement(word)('DECOMPRESSOR')
                  PsiElement(=)('=')
                  STRING
                    PsiElement(OPEN_QUOTE)('"')
                    PsiElement(STRING_CONTENT)('xz -dc')
                    PsiElement(CLOSE_QUOTE)('"')
            PsiWhiteSpace(' ')
            PsiElement(;;)(';;')
            PsiElement(\n)('\n')
            PsiWhiteSpace('    ')
            PsiElement(esac)('esac')
          PsiElement(;)(';')
          PsiElement(\n)('\n')
          PsiWhiteSpace('    ')
          SIMPLE_COMMAND
            GENERIC_COMMAND_DIRECTIVE
              LITERAL
                PsiElement(word)('echo')
            PsiWhiteSpace(' ')
            STRING
              PsiElement(OPEN_QUOTE)('"')
              PsiElement(STRING_CONTENT)('~fd: \$FNAME=')
              PsiElement($)('$')
              SHELL_PARAMETER_EXPANSION
                PsiElement({)('{')
                PsiElement(word)('FNAME')
                PsiElement(})('}')
              PsiElement(CLOSE_QUOTE)('"')
          PsiElement(;)(';')
          PsiElement(\n)('\n')
        PsiElement(})('}')