class Prism::DotVisitor
def visit_index_operator_write_node(node)
def visit_index_operator_write_node(node) table = Table.new("IndexOperatorWriteNode") 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 table.field("operator", node.operator.inspect) # 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