public override void PrintLeft(OutputStream sb) { prefix.Print(sb); sb.Append(" ("); sb.Append(suffix); sb.Append(')'); }
public override void PrintLeft(OutputStream sb) { sb.Append("construction vtable for "); firstType.Print(sb); sb.Append("-in-"); secondType.Print(sb); }
public override void PrintLeft(OutputStream sb) { // FIXME: This should demangle as "vector pixel". sb.Append("pixel vector["); sb.Append(dimension.AsString()); sb.Append(']'); }
public override void PrintLeft(OutputStream sb) { sb.UsingParameterPack(int.MaxValue, int.MaxValue, () => { int oldLength = sb.Length; child.Print(sb); if (sb.CurrentPackMax == int.MaxValue) { sb.Append("..."); return; } if (sb.CurrentPackMax == 0) { sb.Length = oldLength; } for (int i = 1, e = sb.CurrentPackMax; i < e; i++) { sb.Append(", "); sb.CurrentPackIndex = i; child.Print(sb); } }); }
public override void PrintLeft(OutputStream sb) { ty.Print(sb); sb.Append('<'); sb.Append(Protocol); sb.Append('>'); }
public override void PrintLeft(OutputStream sb) { sb.Append("\'lambda"); sb.Append(count); sb.Append("\'("); @params.PrintWithComma(sb); sb.Append(')'); }
public override void PrintLeft(OutputStream sb) { if (isDtor) { sb.Append('~'); } sb.Append(baseName.BaseName); }
public string GetFunctionDeclContextName(string buf, ref int?n) { if (!IsFunction) { return(null); } Node name = ((FunctionEncoding)RootNode).Name; OutputStream sb = new OutputStream(); KeepGoingLocalFunction: while (true) { if (name.Kind == ItaniumDemangleNodeType.AbiTagAttr) { name = ((AbiTagAttr)name).BaseNode; continue; } if (name.Kind == ItaniumDemangleNodeType.NameWithTemplateArgs) { name = ((NameWithTemplateArgs)name).Name; continue; } break; } switch (name.Kind) { case ItaniumDemangleNodeType.StdQualifiedName: sb.Append("std"); break; case ItaniumDemangleNodeType.NestedName: ((NestedName)name).Qual.Print(sb); break; case ItaniumDemangleNodeType.LocalName: LocalName ln = ((LocalName)name); ln.Encoding.Print(sb); sb.Append("::"); name = ln.Entity; goto KeepGoingLocalFunction; default: break; } sb.Append('\0'); if (n != null) { n = sb.Length; } return(sb.ToString()); }
public override void PrintLeft(OutputStream sb) { baseType.Print(sb); sb.Append(" vector["); if (dimension.IsNode) { dimension.AsNode().Print(sb); } else if (dimension.IsString) { sb.Append(dimension.AsString()); } sb.Append(']'); }
public override void PrintLeft(OutputStream sb) { MemberType.PrintLeft(sb); if (MemberType.HasArray || MemberType.HasFunction) { sb.Append('('); } else { sb.Append(' '); } ClassType.Print(sb); sb.Append("::*"); }
public override void PrintLeft(OutputStream sb) { if (printing) return; SwapAndRestore.Execute(ref printing, true, () => { KeyValuePair<ReferenceKind, Node> collapsed = Collapse(sb); collapsed.Value.PrintLeft(sb); if (collapsed.Value.HasArray) sb.Append(' '); if (collapsed.Value.HasArray || collapsed.Value.HasFunction) sb.Append('('); sb.Append((collapsed.Key == ReferenceKind.LValue) ? "&" : "&&"); }); }
public override void PrintRight(OutputStream sb) { if (MemberType.HasArray || MemberType.HasFunction) { sb.Append(')'); } MemberType.PrintRight(sb); }
public void PrintQuals(OutputStream sb) { if (quals.HasFlag(Qualifiers.Const)) { sb.Append(" const"); } if (quals.HasFlag(Qualifiers.Volatile)) { sb.Append(" volatile"); } if (quals.HasFlag(Qualifiers.Restrict)) { sb.Append(" restrict"); } }
public string PrintNode(Node rootNode) { OutputStream sb = new OutputStream(); rootNode.Print(sb); sb.Append('\0'); return(sb.ToString()); }
public override void PrintRight(OutputStream sb) { if (Pointee.Kind != ItaniumDemangleNodeType.ObjCProtoName || !((ObjCProtoName)Pointee).IsObjCObject) { if (Pointee.HasArray || Pointee.HasFunction) { sb.Append(')'); Pointee.PrintRight(sb); } } }
public override void PrintLeft(OutputStream sb) { if (ReturnType != null) { ReturnType.PrintLeft(sb); if (!ReturnType.HasRHSComponent) { sb.Append(' '); } } Name.Print(sb); }
public string GetFunctionParameters(string buf, ref int?n) { if (!IsFunction) { return(null); } NodeArray Params = ((FunctionEncoding)RootNode).Params; OutputStream sb = new OutputStream(); sb.Append('('); Params.PrintWithComma(sb); sb.Append(')'); if (n != null) { n = sb.Length; } return(sb.ToString()); }
public override void PrintLeft(OutputStream sb) { switch (SSK) { case SpecialSubKind.allocator: sb.Append("std::allocator"); break; case SpecialSubKind.basic_string: sb.Append("std::basic_string"); break; case SpecialSubKind.@string: sb.Append("std::basic_string<char, std::char_traits<char>, std::allocator<char> >"); break; case SpecialSubKind.istream: sb.Append("std::basic_istream<char, std::char_traits<char> >"); break; case SpecialSubKind.ostream: sb.Append("std::basic_ostream<char, std::char_traits<char> >"); break; case SpecialSubKind.iostream: sb.Append("std::basic_iostream<char, std::char_traits<char> >"); break; } }
public override void PrintLeft(OutputStream sb) { switch (SSK) { case SpecialSubKind.allocator: sb.Append("std::allocator"); break; case SpecialSubKind.basic_string: sb.Append("std::basic_string"); break; case SpecialSubKind.@string: sb.Append("std::string"); break; case SpecialSubKind.istream: sb.Append("std::istream"); break; case SpecialSubKind.ostream: sb.Append("std::ostream"); break; case SpecialSubKind.iostream: sb.Append("std::iostream"); break; } }
public override void PrintRight(OutputStream sb) { if (printing) { return; } SwapAndRestore.Execute(ref printing, true, () => { KeyValuePair <ReferenceKind, Node> collapsed = Collapse(sb); if (collapsed.Value.HasArray || collapsed.Value.HasFunction) { sb.Append(')'); } collapsed.Value.PrintRight(sb); }); }
public override void PrintRight(OutputStream sb) { sb.Append('('); fparams.PrintWithComma(sb); sb.Append(')'); ret.PrintRight(sb); if (cvQuals.HasFlag(Qualifiers.Const)) { sb.Append(" const"); } if (cvQuals.HasFlag(Qualifiers.Volatile)) { sb.Append(" volatile"); } if (cvQuals.HasFlag(Qualifiers.Restrict)) { sb.Append(" restrict"); } switch (refQual) { case FunctionRefQual.LValue: sb.Append(" &"); break; case FunctionRefQual.RValue: sb.Append(" &&"); break; } if (exceptionSpec != null) { sb.Append(' '); exceptionSpec.Print(sb); } }
public string GetFunctionReturnType(string buf, ref int?n) { if (!IsFunction) { return(null); } OutputStream sb = new OutputStream(); Node ret = ((FunctionEncoding)RootNode).ReturnType; if (ret != null) { ret.Print(sb); } sb.Append('\0'); if (n != null) { n = sb.Length; } return(sb.ToString()); }
public override void PrintRight(OutputStream sb) { sb.Append('('); Params.PrintWithComma(sb); sb.Append(')'); if (ReturnType != null) { ReturnType.PrintRight(sb); } if (CVQuals.HasFlag(Qualifiers.Const)) { sb.Append(" const"); } if (CVQuals.HasFlag(Qualifiers.Volatile)) { sb.Append(" volatile"); } if (CVQuals.HasFlag(Qualifiers.Restrict)) { sb.Append(" restrict"); } if (RefQual.HasFlag(FunctionRefQual.LValue)) { sb.Append(" &"); } else if (RefQual.HasFlag(FunctionRefQual.RValue)) { sb.Append(" &&"); } if (attrs != null) { attrs.Print(sb); } }
public override void PrintLeft(OutputStream sb) { if (Pointee.Kind == ItaniumDemangleNodeType.ObjCProtoName && ((ObjCProtoName)Pointee).IsObjCObject) { ObjCProtoName objcProto = (ObjCProtoName)Pointee; sb.Append("id<"); sb.Append(objcProto.Protocol); sb.Append('>'); } else { Pointee.PrintLeft(sb); if (Pointee.HasArray) { sb.Append(' '); } if (Pointee.HasArray || Pointee.HasFunction) { sb.Append('('); } sb.Append('*'); } }
public override void PrintLeft(OutputStream sb) { ty.PrintLeft(sb); sb.Append(postfix); }
public override void PrintLeft(OutputStream sb) { ty.Print(sb); sb.Append(' '); sb.Append(ext); }
public override void PrintLeft(OutputStream sb) { sb.Append('['); bindings.PrintWithComma(sb); sb.Append(']'); }
public override void PrintLeft(OutputStream sb) { sb.Append(special); child.Print(sb); }
public override void PrintLeft(OutputStream sb) { sb.Append(Name); }
public override void PrintLeft(OutputStream sb) { Qual.Print(sb); sb.Append("::"); Name.Print(sb); }