private static string ProcessPointerType(this CXType type, bool treatArrayAsPointer) { type = type.Desugar(); if (type.kind == CXTypeKind.CXType_Void) { return(!Parameters.GenerateSafeCode ? "void *" : "FakePtr<byte>"); } var sb = new StringBuilder(); sb.Append(ToCSharpTypeString(type, treatArrayAsPointer)); RecordType recordType; string recordName; type.ResolveRecord(out recordType, out recordName); if (recordType != RecordType.Class) { if (!Parameters.GenerateSafeCode) { sb.Append("*"); } else { return("FakePtr<" + sb.ToString() + ">"); } } return(sb.ToString()); }
public CursorInfo(CXCursor cursor) { _cursor = cursor; _kind = clang.getCursorKind(cursor); _type = clang.getCursorType(cursor).Desugar(); _spelling = clang.getCursorSpelling(cursor).ToString(); CsType = _type.ToCSharpTypeString(); _type.ResolveRecord(out _recordType, out _recordName); }
private static string ProcessPointerType(this CXType type, bool treatArrayAsPointer) { type = type.Desugar(); if (type.kind == CXTypeKind.CXType_Void) { return("void *"); } var sb = new StringBuilder(); sb.Append(ToCSharpTypeString(type, treatArrayAsPointer)); RecordType recordType; string recordName; type.ResolveRecord(out recordType, out recordName); if (recordType != RecordType.Class) { sb.Append("*"); } return(sb.ToString()); }