class Parser::Builders::Default

def eh_keyword_map(compstmt_e, keyword_t, body_es,

def eh_keyword_map(compstmt_e, keyword_t, body_es,
                   else_t, else_e)
  if compstmt_e.nil?
    if keyword_t.nil?
      begin_l = body_es.first.loc.expression
    else
      begin_l = loc(keyword_t)
    end
  else
    begin_l = compstmt_e.loc.expression
  end
  if else_t
    if else_e.nil?
      end_l = loc(else_t)
    else
      end_l = else_e.loc.expression
    end
  elsif !body_es.last.nil?
    end_l = body_es.last.loc.expression
  else
    end_l = loc(keyword_t)
  end
  Source::Map::Condition.new(loc(keyword_t), nil, loc(else_t), nil,
                             begin_l.join(end_l))
end