1*06c3fb27SDimitry Andric%define STRING_EXTENSION_LEVEL_OUTSIDE(Class, Level)
2*06c3fb27SDimitry Andric%extend lldb:: ## Class ## {
3*06c3fb27SDimitry Andric  std::string __repr__(){
4130d950cSDimitry Andric    lldb::SBStream stream;
5130d950cSDimitry Andric    $self->GetDescription (stream, Level);
6130d950cSDimitry Andric    const char *desc = stream.GetData();
7130d950cSDimitry Andric    size_t desc_len = stream.GetSize();
8130d950cSDimitry Andric    if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) {
9130d950cSDimitry Andric      --desc_len;
10130d950cSDimitry Andric    }
11130d950cSDimitry Andric    return std::string(desc, desc_len);
12130d950cSDimitry Andric  }
13130d950cSDimitry Andric}
14130d950cSDimitry Andric%enddef
15130d950cSDimitry Andric
16*06c3fb27SDimitry Andric%define STRING_EXTENSION_OUTSIDE(Class)
17*06c3fb27SDimitry Andric%extend lldb:: ## Class ## {
18*06c3fb27SDimitry Andric  std::string __repr__(){
19130d950cSDimitry Andric    lldb::SBStream stream;
20130d950cSDimitry Andric    $self->GetDescription (stream);
21130d950cSDimitry Andric    const char *desc = stream.GetData();
22130d950cSDimitry Andric    size_t desc_len = stream.GetSize();
23130d950cSDimitry Andric    if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) {
24130d950cSDimitry Andric      --desc_len;
25130d950cSDimitry Andric    }
26130d950cSDimitry Andric    return std::string(desc, desc_len);
27130d950cSDimitry Andric  }
28130d950cSDimitry Andric}
29130d950cSDimitry Andric%enddef
30