class Prism::DotVisitor

def visit_rescue_node(node)

Visit a RescueNode node.
def visit_rescue_node(node)
  table = Table.new("RescueNode")
  id = node_id(node)
  # keyword_loc
  table.field("keyword_loc", location_inspect(node.keyword_loc))
  # exceptions
  if node.exceptions.any?
    table.field("exceptions", port: true)
    waypoint = "#{id}_exceptions"
    digraph.waypoint("#{waypoint};")
    digraph.edge("#{id}:exceptions -> #{waypoint};")
    node.exceptions.each { |child| digraph.edge("#{waypoint} -> #{node_id(child)};") }
  else
    table.field("exceptions", "[]")
  end
  # operator_loc
  unless (operator_loc = node.operator_loc).nil?
    table.field("operator_loc", location_inspect(operator_loc))
  end
  # reference
  unless (reference = node.reference).nil?
    table.field("reference", port: true)
    digraph.edge("#{id}:reference -> #{node_id(reference)};")
  end
  # statements
  unless (statements = node.statements).nil?
    table.field("statements", port: true)
    digraph.edge("#{id}:statements -> #{node_id(statements)};")
  end
  # consequent
  unless (consequent = node.consequent).nil?
    table.field("consequent", port: true)
    digraph.edge("#{id}:consequent -> #{node_id(consequent)};")
  end
  digraph.nodes << <<~DOT
    #{id} [
      label=<#{table.to_dot.gsub(/\n/, "\n  ")}>
    ];
  DOT
  super
end