public string ParseOperatorCode()
{
switch (str[i++])
{
case '0': return "{0}";
case '1': return "~{0}";
case '2': return "operator new";
case '3': return "operator delete";
case '4': return "operator =";
case '5': return "operator >>";
case '6': return "operator <<";
case '8': return "operator ==";
case '9': return "operator !=";
case 'A': return "operator []";
case 'B': return "operator returntype";
case 'C': return "operator ->";
case 'D': return "operator *";
case 'E': return "operator ++";
case 'F': return "operator --";
case 'G': return "operator -";
case 'H': return "operator + ";
case 'I': return "operator &";
case 'J': return "operator ->*";
case 'K': return "operator /";
case 'L': return "operator %";
case 'M': return "operator <";
case 'N': return "operator <=";
case 'O': return "operator >";
case 'P': return "operator >=";
case 'X': return "operator *=";
case 'Y': return "operator +=";
case 'Z': return "operator -=";
case '_':
switch (str[i++])
{
case '0': return "operator /=";
case '1': return "operator %=";
case '2': return "operator >>=";
case '3': return "operator <<=";
case '4': return "operator &=";
case '5': return "operator |=";
case '6': return "operator ^=";
case '7': return "`vftable'";
case '8': return "`vbtable'";
case '9': return "`vcall'";
case 'A': return "typeof";
case 'L': return "`eh vector constructor iterator'";
case 'M': return "`eh vector destructor iterator'";
case 'N': return "`eh vector vbase constructor iterator'";
case 'U': return "operator new[]";
case 'V': return "operator delete[]";
default: Error("Unknown operator code '_{0}'.", str[i - 1]);
return null;
}
default: Error("Unknown operator code '{0}'.", str[i - 1]);
return null;
}
}