private void Given_X86ProcedureSerializer() { this.ser = new X86ProcedureSerializer( (IntelArchitecture) platform.Architecture, new TypeLibraryDeserializer(platform, true, new TypeLibrary()), "stdapi"); }
private void Given_X86ProcedureSerializer() { sser = new X86ProcedureSerializer( arch, new TypeLibraryDeserializer(platform, true, new TypeLibrary()), "stdapi"); }
public void ParseLine() { var tok = Peek(); if (tok.Type == TokenType.NUMBER) { tok = Get(); int ordinal = Convert.ToInt32(tok.Value); Expect(TokenType.ID); if (PeekAndDiscard(TokenType.MINUS)) { Expect(TokenType.ID); } tok = Get(); string fnName = tok.Value; var ssig = new SerializedSignature { Convention = "pascal" }; var args = new List<Argument_v1>(); if (PeekAndDiscard(TokenType.LPAREN)) { while (LoadParameter(ssig, args)) ; Expect(TokenType.RPAREN); } ssig.Arguments = args.ToArray(); var deser = new X86ProcedureSerializer((IntelArchitecture) platform.Architecture, tlLoader, "pascal"); var sig = deser.Deserialize(ssig, new Frame(PrimitiveType.Word16)); var svc = new SystemService { Name = fnName, Signature = sig }; tlLoader.LoadService(ordinal, svc); } for (;;) { // Discared entire line. var type = Get().Type; if (type == TokenType.EOF || type == TokenType.NL) return; } }
private void Given_ProcedureSerializer(string cConvention) { this.ser = new X86ProcedureSerializer(arch, new TypeLibraryLoader(arch, true), cConvention); }
private void Given_X86ProcedureSerializer() { this.ser = new X86ProcedureSerializer(arch, new TypeLibraryLoader(arch, true), "stdapi"); }
private void Given_ProcedureSerializer(string cConvention) { this.deserializer = new FakeTypeDeserializer(4); this.ser = new X86ProcedureSerializer(arch, deserializer, cConvention); }
private void Given_ProcedureSerializer(string cConvention) { this.deserializer = mockFactory.CreateDeserializer(); this.ser = new X86ProcedureSerializer(arch, deserializer, cConvention); }
public Tuple<int?, SystemService> ParseLine() { try { int? ordinal = ParseOrdinal(); string callconv = ParseCallingConvention(); var options = ParseOptions(); var tok = Get(); string fnName = tok.Value; var ssig = new SerializedSignature { Convention = callconv, }; ssig.Arguments = ParseParameters(ssig); SkipToEndOfLine(); var deser = new X86ProcedureSerializer((IntelArchitecture)platform.Architecture, tlLoader, callconv); var sig = deser.Deserialize(ssig, new Frame(platform.FramePointerType)); var svc = new SystemService { ModuleName = moduleName.ToUpper(), Name = fnName, Signature = sig }; return Tuple.Create(ordinal, svc); } catch { Services.RequireService<DecompilerEventListener>().Warn( new NullCodeLocation(moduleName), "Line {0} in the Wine spec file could not be read; skipping.", lexer.lineNumber); SkipToEndOfLine(); return null; } }
public void ParseLine() { int? ordinal = ParseOrdinal(); string callconv = ParseCallingConvention(); var options = ParseOptions(); var tok = Get(); string fnName = tok.Value; var ssig = new SerializedSignature { Convention = callconv, }; ssig.Arguments = ParseParameters(ssig); var deser = new X86ProcedureSerializer((IntelArchitecture)platform.Architecture, tlLoader, callconv); var sig = deser.Deserialize(ssig, new Frame(platform.FramePointerType)); var svc = new SystemService { ModuleName = moduleName.ToUpper(), Name = fnName, Signature = sig }; if (ordinal.HasValue) { tlLoader.LoadService(ordinal.Value, svc); } else { tlLoader.LoadService(fnName, svc); } for (;;) { // Discared entire line. var type = Get().Type; if (type == TokenType.EOF || type == TokenType.NL) return; } }