def condop_to_ifstmt(stmt_node)
left = stmt_node.left
ifstmt_node = nil
if left && left.is_a?(ExprNode)
condop_expr, parent_expr = left.find_with_parent do |expr_node|
expr_node.token == '?'
end
if condop_expr
cond_expr = condop_expr.condition
true_expr = condop_expr.left
false_expr = condop_expr.right
parent_node = parent_expr || stmt_node
l_or_r = parent_node.left == condop_expr ? 'left' : 'right'
eval "parent_node.#{l_or_r} = true_expr"
true_stmt = stmt_node.deepcopy
eval "parent_node.#{l_or_r} = false_expr"
false_stmt = stmt_node.deepcopy
true_nodelist = NodeList.new([true_stmt])
false_nodelist = NodeList.new([false_stmt])
ifstmt_node = IfStmtNode.new(:if, true_nodelist, false_nodelist, cond_expr)
end
end
return ifstmt_node
end