class Prism::Translation::Parser::Compiler
def visit_if_node(node)
foo ? bar : baz
^^^^^^^^^^
bar if foo
^^^^^^^^^^^^^^^^^^^
if foo then bar end
def visit_if_node(node) if !node.if_keyword_loc builder.ternary( visit(node.predicate), token(node.then_keyword_loc), visit(node.statements), token(node.consequent.else_keyword_loc), visit(node.consequent) ) elsif node.if_keyword_loc.start_offset == node.location.start_offset builder.condition( token(node.if_keyword_loc), visit(node.predicate), if node.then_keyword_loc token(node.then_keyword_loc) else srange_find(node.predicate.location.end_offset, (node.statements&.location || node.consequent&.location || node.end_keyword_loc).start_offset, [";"]) end, visit(node.statements), case node.consequent when IfNode token(node.consequent.if_keyword_loc) when ElseNode token(node.consequent.else_keyword_loc) end, visit(node.consequent), if node.if_keyword != "elsif" token(node.end_keyword_loc) end ) else builder.condition_mod( visit(node.statements), visit(node.consequent), token(node.if_keyword_loc), visit(node.predicate) ) end end