instance method
Prism::DotVisitor#visit_match_write_node
visit_match_write_node(node)
lib/prism/dot_visitor.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/prism/dot_visitor.rb, line 3159
def visit_match_write_node(node)
table = Table.new("MatchWriteNode")
id = node_id(node)
# call
table.field("call", port: true)
digraph.edge("#{id}:call -> #{node_id(node.call)};")
# targets
if node.targets.any?
table.field("targets", port: true)
waypoint = "#{id}_targets"
digraph.waypoint("#{waypoint};")
digraph.edge("#{id}:targets -> #{waypoint};")
node.targets.each { |child| digraph.edge("#{waypoint} -> #{node_id(child)};") }
else
table.field("targets", "[]")
end
digraph.nodes << <<~DOT
#{id} [
label=<#{table.to_dot.gsub(/\n/, "\n ")}>
];
DOT
super
end
Visit a MatchWriteNode node.