instance method
Prism::DotVisitor#visit_index_or_write_node
visit_index_or_write_node(node)
lib/prism/dot_visitor.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/prism/dot_visitor.rb, line 2354
def visit_index_or_write_node(node)
table = Table.new("IndexOrWriteNode")
id = node_id(node)
# flags
table.field("flags", call_node_flags_inspect(node))
# receiver
unless (receiver = node.receiver).nil?
table.field("receiver", port: true)
digraph.edge("#{id}:receiver -> #{node_id(receiver)};")
end
# call_operator_loc
unless (call_operator_loc = node.call_operator_loc).nil?
table.field("call_operator_loc", location_inspect(call_operator_loc))
end
# opening_loc
table.field("opening_loc", location_inspect(node.opening_loc))
# arguments
unless (arguments = node.arguments).nil?
table.field("arguments", port: true)
digraph.edge("#{id}:arguments -> #{node_id(arguments)};")
end
# closing_loc
table.field("closing_loc", location_inspect(node.closing_loc))
# block
unless (block = node.block).nil?
table.field("block", port: true)
digraph.edge("#{id}:block -> #{node_id(block)};")
end
# operator_loc
table.field("operator_loc", location_inspect(node.operator_loc))
# value
table.field("value", port: true)
digraph.edge("#{id}:value -> #{node_id(node.value)};")
digraph.nodes << <<~DOT
#{id} [
label=<#{table.to_dot.gsub(/\n/, "\n ")}>
];
DOT
super
end
Visit a IndexOrWriteNode node.