Esempio n. 1
0
        public override AST.Type VisitMemberPointer(MemberPointerType type)
        {
            var _type = new CppSharp.AST.MemberPointerType();

            VisitType(type, _type);
            _type.Pointee = VisitQualified(type.Pointee).Type;
            return(_type);
        }
Esempio n. 2
0
        public virtual bool VisitMemberPointerType(MemberPointerType member,
                                                   TypeQualifiers quals)
        {
            if (!VisitType(member, quals))
            {
                return(false);
            }

            return(member.QualifiedPointee.Visit(this));
        }
Esempio n. 3
0
        public CSharpTypePrinterResult VisitMemberPointerType(MemberPointerType member,
                                                              TypeQualifiers quals)
        {
            FunctionType functionType;

            if (member.IsPointerTo(out functionType))
            {
                return(functionType.Visit(this, quals));
            }
            throw new InvalidOperationException("A function pointer not pointing to a function type.");
        }
Esempio n. 4
0
        public override bool VisitMemberPointerType(MemberPointerType member,
                                                    TypeQualifiers quals)
        {
            FunctionType functionType;

            if (!member.IsPointerTo(out functionType))
            {
                Ignore();
                return(false);
            }

            return(base.VisitMemberPointerType(member, quals));
        }
Esempio n. 5
0
        public CSharpTypePrinterResult VisitMemberPointerType(MemberPointerType member,
                                                              TypeQualifiers quals)
        {
            FunctionType functionType;

            if (member.IsPointerTo(out functionType))
            {
                return(functionType.Visit(this, quals));
            }

            // TODO: Non-function member pointer types are tricky to support.
            // Re-visit this.
            return(IntPtrType);
        }
Esempio n. 6
0
 public override bool VisitMemberPointerType(MemberPointerType member,
     TypeQualifiers quals)
 {
     FunctionType functionType;
     if (!member.IsPointerTo(out functionType))
     {
         Ignore();
         return false;
     }
     return base.VisitMemberPointerType(member, quals);
 }
Esempio n. 7
0
 public override TypePrinterResult VisitMemberPointerType(
     MemberPointerType member, TypeQualifiers quals)
 {
     return(member.QualifiedPointee.Visit(this));
 }
Esempio n. 8
0
 protected MemberPointerType(MemberPointerType.Internal* native, bool skipVTables = false)
     : base((CppSharp.Parser.AST.Type.Internal*) null)
 {
     __PointerAdjustment = 0;
     if (native == null)
         return;
     __Instance = new global::System.IntPtr(native);
 }
Esempio n. 9
0
 private MemberPointerType(MemberPointerType.Internal native, bool skipVTables = false)
     : this(__CopyValue(native), skipVTables)
 {
     __ownsNativeInstance = true;
     NativeToManagedMap[__Instance] = this;
 }
Esempio n. 10
0
 internal MemberPointerType(MemberPointerType.Internal native)
     : this(__CopyValue(native))
 {
 }
Esempio n. 11
0
 protected MemberPointerType(MemberPointerType.Internal* native, bool isInternalImpl = false)
     : base((CppSharp.Parser.AST.Type.Internal*) native)
 {
 }
Esempio n. 12
0
 private static MemberPointerType.Internal* __CopyValue(MemberPointerType.Internal native)
 {
     var ret = Marshal.AllocHGlobal(24);
     CppSharp.Parser.AST.MemberPointerType.Internal.cctor_2(ret, new global::System.IntPtr(&native));
     return (MemberPointerType.Internal*) ret;
 }
Esempio n. 13
0
 public override TypePrinterResult VisitMemberPointerType(MemberPointerType member,
                                                          TypeQualifiers quals)
 {
     return(string.Empty);
 }
Esempio n. 14
0
 public override bool VisitMemberPointerType(MemberPointerType member,
     TypeQualifiers quals)
 {
     return false;
 }
Esempio n. 15
0
        public TRet Visit(Parser.AST.Type type)
        {
            if (type.__Instance == IntPtr.Zero)
            {
                return(default(TRet));
            }

            switch (type.Kind)
            {
            case TypeKind.Tag:
            {
                var _type = new TagType(type.__Instance);
                return(VisitTag(_type));
            }

            case TypeKind.Array:
            {
                var _type = new ArrayType(type.__Instance);
                return(VisitArray(_type));
            }

            case TypeKind.Function:
            {
                var _type = new FunctionType(type.__Instance);
                return(VisitFunction(_type));
            }

            case TypeKind.Pointer:
            {
                var _type = new PointerType(type.__Instance);
                return(VisitPointer(_type));
            }

            case TypeKind.MemberPointer:
            {
                var _type = new MemberPointerType(type.__Instance);
                return(VisitMemberPointer(_type));
            }

            case TypeKind.Typedef:
            {
                var _type = new TypedefType(type.__Instance);
                return(VisitTypedef(_type));
            }

            case TypeKind.Attributed:
            {
                var _type = new AttributedType(type.__Instance);
                return(VisitAttributed(_type));
            }

            case TypeKind.Decayed:
            {
                var _type = new DecayedType(type.__Instance);
                return(VisitDecayed(_type));
            }

            case TypeKind.TemplateSpecialization:
            {
                var _type = new TemplateSpecializationType(type.__Instance);
                return(VisitTemplateSpecialization(_type));
            }

            case TypeKind.TemplateParameter:
            {
                var _type = new TemplateParameterType(type.__Instance);
                return(VisitTemplateParameter(_type));
            }

            case TypeKind.TemplateParameterSubstitution:
            {
                var _type = new TemplateParameterSubstitutionType(type.__Instance);
                return(VisitTemplateParameterSubstitution(_type));
            }

            case TypeKind.InjectedClassName:
            {
                var _type = new InjectedClassNameType(type.__Instance);
                return(VisitInjectedClassName(_type));
            }

            case TypeKind.DependentName:
            {
                var _type = new DependentNameType(type.__Instance);
                return(VisitDependentName(_type));
            }

            case TypeKind.Builtin:
            {
                var _type = new BuiltinType(type.__Instance);
                return(VisitBuiltin(_type));
            }
            }

            throw new ArgumentOutOfRangeException();
        }
Esempio n. 16
0
 public abstract TRet VisitMemberPointer(MemberPointerType type);
Esempio n. 17
0
 internal MemberPointerType(MemberPointerType.Internal native)
     : this(&native)
 {
 }
Esempio n. 18
0
 internal MemberPointerType(MemberPointerType.Internal* native)
     : this(new global::System.IntPtr(native))
 {
 }
Esempio n. 19
0
 private MemberPointerType(MemberPointerType.Internal native)
     : this(__CopyValue(native))
 {
     __ownsNativeInstance = true;
 }
Esempio n. 20
0
 public string VisitMemberPointerType(MemberPointerType member, TypeQualifiers quals)
 {
     return(string.Empty);
 }
Esempio n. 21
0
 public static MemberPointerType __CreateInstance(MemberPointerType.Internal native)
 {
     return new MemberPointerType(native);
 }
Esempio n. 22
0
 public virtual TypePrinterResult VisitMemberPointerType(
     MemberPointerType member, TypeQualifiers quals)
 {
     throw new NotImplementedException();
 }
Esempio n. 23
0
 private MemberPointerType(MemberPointerType.Internal native)
     : this(__CopyValue(native))
 {
     __ownsNativeInstance = true;
     NativeToManagedMap[__Instance] = this;
 }
Esempio n. 24
0
 public static MemberPointerType __CreateInstance(MemberPointerType.Internal native, bool skipVTables = false)
 {
     return new MemberPointerType(native, skipVTables);
 }
Esempio n. 25
0
 public string VisitMemberPointerType(MemberPointerType member,
                                      TypeQualifiers quals)
 {
     throw new NotImplementedException();
 }
Esempio n. 26
0
 public string VisitMemberPointerType(MemberPointerType member,
                                      TypeQualifiers quals)
 {
     return(member.Pointee.Visit(this));
 }
Esempio n. 27
0
 public override bool VisitMemberPointerType(MemberPointerType member,
                                             TypeQualifiers quals)
 {
     return(false);
 }
Esempio n. 28
0
 private static void* __CopyValue(MemberPointerType.__Internal native)
 {
     var ret = Marshal.AllocHGlobal(16);
     global::CppSharp.Parser.AST.MemberPointerType.__Internal.cctor_2(ret, new global::System.IntPtr(&native));
     return ret.ToPointer();
 }