예제 #1
0
        public void SlLookupType()
        {
            var slib = new SerializedLibrary
            {
                Types = new SerializedType[]
                {
                    new SerializedTypedef {
                        Name     = "int",
                        DataType = new PrimitiveType_v1 {
                            Domain = Reko.Core.Types.Domain.SignedInt, ByteSize = 4
                        }
                    }
                }
            };
            var lib = TypeLibrary.Load(new IntelArchitecture(ProcessorMode.Protected32), slib);

            Assert.AreEqual(PrimitiveType.Int32, lib.LookupType("int"));
        }
예제 #2
0
        public TypeLibrary LoadLibrary(Platform platform, string name)
        {
            try
            {
                string libFileName = ImportFileLocation(name);
                if (!File.Exists(libFileName))
                {
                    return(null);
                }

                var lib = TypeLibrary.Load(platform, libFileName);
                lib.Filename = libFileName;
                return(lib);
            }
            catch
            {
                return(null);
            }
        }
예제 #3
0
        public TypeLibrary LoadLibrary(IProcessorArchitecture arch, string name)
        {
            try
            {
                string libFileName = ImportFileLocation(name);
                if (!File.Exists(libFileName))
                {
                    return(null);
                }

                var lib = TypeLibrary.Load(arch, libFileName);
                lib.Filename = libFileName;
                return(lib);
            }
            catch
            {
                return(null);
            }
        }
예제 #4
0
파일: Rewrite32.cs 프로젝트: feelworld/reko
        public void Setup()
        {
            mr = new MockRepository();
            var services  = mr.Stub <IServiceProvider>();
            var tlSvc     = mr.Stub <ITypeLibraryLoaderService>();
            var configSvc = mr.StrictMock <IConfigurationService>();
            var win32env  = new OperatingEnvironmentElement
            {
                TypeLibraries =
                {
                    new TypeLibraryElement {
                        Name = "msvcrt.xml"
                    },
                    new TypeLibraryElement {
                        Name = "windows32.xml"
                    },
                }
            };

            configSvc.Stub(c => c.GetEnvironment("win32")).Return(win32env);
            configSvc.Stub(c => c.GetPath(null)).IgnoreArguments()
            .Do(new Func <string, string>(s => s));
            services.Stub(s => s.GetService(typeof(ITypeLibraryLoaderService))).Return(tlSvc);
            services.Stub(s => s.GetService(typeof(IConfigurationService))).Return(configSvc);
            tlSvc.Stub(t => t.LoadLibrary(null, null)).IgnoreArguments()
            .Do(new Func <Platform, string, TypeLibrary>((p, n) =>
            {
                var lib = TypeLibrary.Load(p, Path.ChangeExtension(n, ".xml"));
                return(lib);
            }));
            services.Replay();
            tlSvc.Replay();
            configSvc.Replay();
            arch  = new IntelArchitecture(ProcessorMode.Protected32);
            win32 = new Reko.Environments.Win32.Win32Platform(services, arch);
        }