# File kwartz.rb, line 1815
        def translate_if_stmt(stmt_node, code='', level=0)
            node = stmt_node
            flag_first = true
            while node.token == :if do
                cond_expr     = node.condition
                then_nodelist = node.left
                else_node     = node.right            # StmtNode or NodeList
                #
                indent(code, level)
                code << (flag_first ? encode(:if) : encode(:elsif))
                translate(cond_expr, code)
                code << encode(:then)
                translate(then_nodelist, code, level+1)
                if encode(:endthen)
                    indent(code, level)
                    code << encode(:endthen)
                end
                #
                node = else_node
                break if node == nil
                flag_first = false
            end
            if node
                Kwartz::assert() unless node.is_a?(NodeList)
                indent(code, level)
                code << encode(:else)
                translate(node, code, level+1)
                if encode(:endelse)
                    indent(code, level)
                    code << encode(:endelse)
                end
            end
            indent(code, level)
            code << encode(:endif)
            return code
        end