instance method
Prism::DotVisitor#visit_if_node
visit_if_node(node)
lib/prism/dot_visitor.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/prism/dot_visitor.rb, line 2118
def visit_if_node(node)
table = Table.new("IfNode")
id = node_id(node)
# if_keyword_loc
unless (if_keyword_loc = node.if_keyword_loc).nil?
table.field("if_keyword_loc", location_inspect(if_keyword_loc))
end
# predicate
table.field("predicate", port: true)
digraph.edge("#{id}:predicate -> #{node_id(node.predicate)};")
# then_keyword_loc
unless (then_keyword_loc = node.then_keyword_loc).nil?
table.field("then_keyword_loc", location_inspect(then_keyword_loc))
end
# statements
unless (statements = node.statements).nil?
table.field("statements", port: true)
digraph.edge("#{id}:statements -> #{node_id(statements)};")
end
# subsequent
unless (subsequent = node.subsequent).nil?
table.field("subsequent", port: true)
digraph.edge("#{id}:subsequent -> #{node_id(subsequent)};")
end
# end_keyword_loc
unless (end_keyword_loc = node.end_keyword_loc).nil?
table.field("end_keyword_loc", location_inspect(end_keyword_loc))
end
digraph.nodes << <<~DOT
#{id} [
label=<#{table.to_dot.gsub(/\n/, "\n ")}>
];
DOT
super
end
Visit a IfNode node.