class RDoc::Markdown

def external_invoke(other, rule, *args)

def external_invoke(other, rule, *args)
  old_pos = @pos
  old_string = @string
  set_string other.string, other.pos
  begin
    if val = __send__(rule, *args)
      other.pos = @pos
      other.result = @result
    else
      other.set_failed_rule "#{self.class}##{rule}"
    end
    val
  ensure
    set_string old_string, old_pos
  end
end