-
- if(sym.compare(0, 2, "_Z"))
- return result;
-
- string::const_iterator i=sym.begin()+2;
-
- bool nested=(*i=='N');
- bool first=true;
- while(first || (nested && *i!='E'))
- {
- unsigned len=0;
- for(; isdigit(*i); ++i)
- len=len*10+(*i-'0');
- string::const_iterator j=i+len;
-
- if(!first)
- result.append("::");
- result.append(i, j);
-
- first=false;
- }
-
- if(nested)
- ++i;
-
- for(; i!=sym.end(); ++i)
- {
- bool ref=(*i=='R');
- if(ref) ++i;
- }