    # File temp/parsers/xpathparser.rb, line 33
          def abbreviate( path )
            path = path.kind_of?(String) ? parse( path ) : path
            string = ""
            document = false
            while path.size > 0
              op = path.shift
              case op
              when :node
              when :attribute
                                                    string << "/" if string.size > 0
                                                    string << "@"
              when :child
                                                    string << "/" if string.size > 0
              when :descendant_or_self
                string << "/"
              when :self
                string << "."
              when :parent
                string << ".."
              when :any
                string << "*"
                                            when :text
                                                    string << "text()"
              when :following, :following_sibling,
                    :ancestor, :ancestor_or_self, :descendant,
                    :namespace, :preceding, :preceding_sibling
                string << "/" unless string.size == 0
                string << op.to_s.tr("_", "-")
                string << "::"
              when :qname
                prefix = path.shift
                name = path.shift
                string << prefix+":" if prefix.size > 0
                string << name
              when :predicate
                string << '['
                string << predicate_to_string( path.shift ) {|x| abbreviate( x ) }
                string << ']'
              when :document
                document = true
                                            when :function
                                                    string << path.shift
                                                    string << "( "
                                                    string << predicate_to_string( path.shift[0] ) {|x| abbreviate( x )}
                                                    string << " )"
                                            when :literal
                                                    string << %Q{ "#{path.shift}" }
              else
                string << "/" unless string.size == 0
                string << "UNKNOWN("
                string << op.inspect
                string << ")"
              end
            end
                                    string = "/"+string if document
            return string
          end