コード例 #1
0
ファイル: Utility.cs プロジェクト: samuelGrahame/Sichem
        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());
        }
コード例 #2
0
ファイル: CursorInfo.cs プロジェクト: unitycoder/Sichem
        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);
        }
コード例 #3
0
ファイル: Utility.cs プロジェクト: unitycoder/Sichem
        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());
        }