class Parser::Builders::Default

def begin_body(compound_stmt, rescue_bodies=[],

def begin_body(compound_stmt, rescue_bodies=[],
               else_t=nil,    else_=nil,
               ensure_t=nil,  ensure_=nil)
  if rescue_bodies.any?
    if else_t
      compound_stmt =
        n(:rescue,
          [ compound_stmt, *(rescue_bodies + [ else_ ]) ],
          eh_keyword_map(compound_stmt, nil, rescue_bodies, else_t, else_))
    else
      compound_stmt =
        n(:rescue,
          [ compound_stmt, *(rescue_bodies + [ nil ]) ],
          eh_keyword_map(compound_stmt, nil, rescue_bodies, nil, nil))
    end
  end
  if ensure_t
    compound_stmt =
      n(:ensure,
        [ compound_stmt, ensure_ ],
        eh_keyword_map(compound_stmt, ensure_t, [ ensure_ ], nil, nil))
  end
  compound_stmt
end