class REXML::Parsers::XPathParser

def UnaryExpr path, parsed

| UnionExpr
| '-' UnaryExpr
def UnaryExpr path, parsed
  path =~ /^(\-*)/
  path = $'
  if $1 and (($1.size % 2) != 0)
    mult = -1
  else
    mult = 1
  end
  parsed << :neg if mult < 0
  n = []
  path = UnionExpr( path, n )
  parsed.concat( n )
  path
end