    # File temp/parsers/xpathparser.rb, line 130
          def predicate_to_string( path, &block )
            string = ""
            case path[0]
            when :and, :or, :mult, :plus, :minus, :neq, :eq, :lt, :gt, :lteq, :gteq, :div, :mod, :union
              op = path.shift
              case op
              when :eq
                op = "="
              when :lt
                op = "<"
              when :gt
                op = ">"
              when :lteq
                op = "<="
              when :gteq
                op = ">="
              when :neq
                op = "!="
              when :union
                op = "|"
              end
              left = predicate_to_string( path.shift, &block )
              right = predicate_to_string( path.shift, &block )
              string << " "
              string << left
              string << " "
              string << op.to_s
              string << " "
              string << right
              string << " "
            when :function
              path.shift
              name = path.shift
              string << name
              string << "( "
              string << predicate_to_string( path.shift, &block )
              string << " )"
            when :literal
              path.shift
              string << " "
              string << path.shift.inspect
              string << " "
            else
              string << " "
              string << yield( path )
              string << " "
            end
            return string.squeeze(" ")
          end