コード例 #1
0
ファイル: TypeLibrary.cs プロジェクト: mmyydd/reko
        public static TypeLibrary Load(IProcessorArchitecture arch, SerializedLibrary slib)
        {
            var tlldr = new TypeLibraryLoader(arch, true);
            var tlib  = tlldr.Load(slib);

            return(tlib);
        }
コード例 #2
0
        public static TypeLibrary Load(Platform platform, SerializedLibrary slib)
        {
            var tlldr = new TypeLibraryLoader(platform, true);
            var tlib  = tlldr.Load(slib);

            return(tlib);
        }
コード例 #3
0
        public void Tlldr_Empty()
        {
            Given_ArchitectureStub();
            mr.ReplayAll();

            var tlLdr = new TypeLibraryLoader(arch, true);
            TypeLibrary lib = tlLdr.Load(new SerializedLibrary());
        }
コード例 #4
0
        public void Tlldr_bothordinalandname()
        {
            Given_ArchitectureStub();
            mr.ReplayAll();
            var tlLDr = new TypeLibraryLoader(platform, true);
            var slib = new SerializedLibrary {
                Procedures = {
                    new Procedure_v1 {
                        Name="foo",
                        Ordinal=2,
                        Signature = new SerializedSignature {
                            ReturnValue = new Argument_v1 {
                                Type = new VoidType_v1()
                            }
                        }
                    }
                }
            };
            var lib = tlLDr.Load(slib);

            mr.VerifyAll();
            Assert.AreEqual(1, lib.ServicesByVector.Count);
            Assert.IsNotNull(lib.ServicesByVector[2]);
        }
コード例 #5
0
ファイル: TypeLibrary.cs プロジェクト: feelworld/reko
 public static TypeLibrary Load(Platform platform, SerializedLibrary slib)
 {
     var tlldr = new TypeLibraryLoader(platform, true);
     var tlib = tlldr.Load(slib);
     return tlib;
 }
コード例 #6
0
        public void Tlldr_typedef_ptr_int()
        {
            Given_ArchitectureStub();
            Given_Arch_PointerDataType(PrimitiveType.Pointer32);
            mr.ReplayAll();

            var tlLdr = new TypeLibraryLoader(arch, true);
            var slib = new SerializedLibrary
            {
                Types = new SerializedType[]
                {
                    new SerializedTypedef { 
                        Name="pint", 
                        DataType= new PointerType_v1
                        {
                            DataType = new PrimitiveType_v1 { Domain = Domain.SignedInt, ByteSize=4 } 
                        }
                    }
                }
            };
            var lib = tlLdr.Load(slib);

            Assert.AreEqual("(ptr int32)", lib.LookupType("pint").ToString());
        }
コード例 #7
0
        public void Tlldr_typedef_int()
        {
            Given_ArchitectureStub();
            mr.ReplayAll();

            var tlLdr = new TypeLibraryLoader(arch, true);
            var slib = new SerializedLibrary
            {
                Types = new SerializedType[]
                {
                    new SerializedTypedef { Name="int", DataType=new PrimitiveType_v1 { Domain = Domain.SignedInt, ByteSize=4 }}
                }
            };
            var lib = tlLdr.Load(slib);

            Assert.AreSame(PrimitiveType.Int32, lib.LookupType("int"));
        }
コード例 #8
0
        public void Tlldr_void_fn()
        {
            Given_ArchitectureStub();
            mr.ReplayAll();

            var tlLdr = new TypeLibraryLoader(arch, true);
            var slib = new SerializedLibrary
            {
                Procedures = {
                    new Procedure_v1 { 
                        Name="foo",
                        Signature = new SerializedSignature
                        {
                            Convention="__cdecl",
                            ReturnValue = new Argument_v1 {
                                Type = new VoidType_v1()
                            },
                        }
                    }
                }
            };
            var lib = tlLdr.Load(slib);

            mr.VerifyAll();
            Assert.AreEqual(
                "void foo()",
                lib.Lookup("foo").ToString("foo"));
        }
コード例 #9
0
ファイル: TypeLibrary.cs プロジェクト: gh0std4ncer/reko
 public static TypeLibrary Load(IProcessorArchitecture arch, SerializedLibrary slib)
 {
     var tlldr = new TypeLibraryLoader(arch, true);
     var tlib = tlldr.Load(slib);
     return tlib;
 }